Title: [111500] trunk
Revision
111500
Author
[email protected]
Date
2012-03-20 22:12:51 -0700 (Tue, 20 Mar 2012)

Log Message

[Crash] RenderMenuList::addChild() in Shadow DOM.
https://bugs.webkit.org/show_bug.cgi?id=81201

Reviewed by Dimitri Glazkov.

Source/WebCore:

<audio>, <video>, <meter>, <progress>, and <select> are implemented using
Shadow DOM having HTMLContentElement. Their renderer children basically should not
create a renderer unless they are on the upper shadow encapsulation boundary,
which means they are the direct children of the shadow root.

However, current implementation allows their renderer children to create a renderer
even if they are on a lower shadow encapsulation boundary, which means
they are distributed elements of HTMLContentElement.

This patch makes there renderer children not to create a renderer if they are on a lower shadow
encapsulation boudary.

Tests: fast/dom/shadow/content-element-in-media-element.html
       fast/dom/shadow/content-element-in-meter-element.html
       fast/dom/shadow/content-element-in-progress-element.html
       fast/dom/shadow/content-element-in-select-element.html

* dom/NodeRenderingContext.h:
(NodeRenderingContext):
(WebCore::NodeRenderingContext::isOnUpperEncapsulationBoundary):
(WebCore):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::childShouldCreateRenderer):
* html/HTMLMeterElement.cpp:
(WebCore::HTMLMeterElement::childShouldCreateRenderer):
* html/HTMLProgressElement.cpp:
(WebCore::HTMLProgressElement::childShouldCreateRenderer):
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::childShouldCreateRenderer):

LayoutTests:

Skipped these tests in non-chromium port since SHADOW_DOM flag is not enabled.

Marked 2 new tests FAIL. Their behavior is affected by this patch, but this patch
won't fix them completely. They have another bugs. See Bug 81310 and Bug 81311.

* fast/dom/shadow/content-element-in-media-element-expected.txt: Added.
* fast/dom/shadow/content-element-in-media-element.html: Added.
* fast/dom/shadow/content-element-in-meter-element-expected.txt: Added.
* fast/dom/shadow/content-element-in-meter-element.html: Added.
* fast/dom/shadow/content-element-in-progress-element-expected.txt: Added.
* fast/dom/shadow/content-element-in-progress-element.html: Added.
* fast/dom/shadow/content-element-in-select-element-expected.txt: Added.
* fast/dom/shadow/content-element-in-select-element.html: Added.
* platform/chromium/test_expectations.txt:
* platform/efl/Skipped:
* platform/mac/Skipped:
* platform/qt/Skipped:
* platform/win/Skipped:
* platform/wincairo/Skipped:
* platform/wk2/Skipped:

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (111499 => 111500)


--- trunk/LayoutTests/ChangeLog	2012-03-21 05:02:57 UTC (rev 111499)
+++ trunk/LayoutTests/ChangeLog	2012-03-21 05:12:51 UTC (rev 111500)
@@ -1,3 +1,31 @@
+2012-03-19  Shinya Kawanaka  <[email protected]>
+
+        [Crash] RenderMenuList::addChild() in Shadow DOM.
+        https://bugs.webkit.org/show_bug.cgi?id=81201
+
+        Reviewed by Dimitri Glazkov.
+
+        Skipped these tests in non-chromium port since SHADOW_DOM flag is not enabled.
+
+        Marked 2 new tests FAIL. Their behavior is affected by this patch, but this patch
+        won't fix them completely. They have another bugs. See Bug 81310 and Bug 81311.
+
+        * fast/dom/shadow/content-element-in-media-element-expected.txt: Added.
+        * fast/dom/shadow/content-element-in-media-element.html: Added.
+        * fast/dom/shadow/content-element-in-meter-element-expected.txt: Added.
+        * fast/dom/shadow/content-element-in-meter-element.html: Added.
+        * fast/dom/shadow/content-element-in-progress-element-expected.txt: Added.
+        * fast/dom/shadow/content-element-in-progress-element.html: Added.
+        * fast/dom/shadow/content-element-in-select-element-expected.txt: Added.
+        * fast/dom/shadow/content-element-in-select-element.html: Added.
+        * platform/chromium/test_expectations.txt:
+        * platform/efl/Skipped:
+        * platform/mac/Skipped:
+        * platform/qt/Skipped:
+        * platform/win/Skipped:
+        * platform/wincairo/Skipped:
+        * platform/wk2/Skipped:
+
 2012-03-20  Dan Bernstein  <[email protected]>
 
         Skipped editing/selection/move-by-word-visually-crash-test-5.html in WebKit2 because of

Added: trunk/LayoutTests/fast/dom/shadow/content-element-in-media-element-expected.txt (0 => 111500)


--- trunk/LayoutTests/fast/dom/shadow/content-element-in-media-element-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/dom/shadow/content-element-in-media-element-expected.txt	2012-03-21 05:12:51 UTC (rev 111500)
@@ -0,0 +1,4 @@
+contentElementInVideoElement
+PASS
+TEST COMPLETED
+

Added: trunk/LayoutTests/fast/dom/shadow/content-element-in-media-element.html (0 => 111500)


--- trunk/LayoutTests/fast/dom/shadow/content-element-in-media-element.html	                        (rev 0)
+++ trunk/LayoutTests/fast/dom/shadow/content-element-in-media-element.html	2012-03-21 05:12:51 UTC (rev 111500)
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html>
+<head>
+<style>
+/* relative positioning ensures underlying RenderLayer */
+.container {
+    position: relative;
+}
+
+.span {
+    display: boxed-inline;
+    margin: 2px;
+    border: solid;
+}
+</style>
+<script src=""
+<script src=""
+<script>
+
+var testFuncs = [];
+
+testFuncs.push(function contentElementInVideoElement(callIfDone) {
+    document.getElementById('expect-container').innerHTML = "<div><video><div></div></video></div>";
+
+    var div = document.createElement('div');
+    div.appendChild(document.createElement('div'));
+
+    document.getElementById('actual-container').appendChild(div);
+
+    var sr = new WebKitShadowRoot(div);
+
+    var f = (function(sr, callIfDone) {
+        return function() {
+            var video = document.createElement('video');
+            var content = document.createElement('content');
+            video.appendChild(content);
+            sr.appendChild(video);
+            callIfDone();
+        };
+    })(sr, callIfDone);
+
+    setTimeout(f, 0);
+});
+
+</script>
+</head>
+<body _onload_="doTest(testFuncs)">
+
+<div id="actual-container" class="container"></div>
+<div id="expect-container" class="container"></div>
+<pre id="console"></pre>
+
+</body>
+</html>

Added: trunk/LayoutTests/fast/dom/shadow/content-element-in-meter-element-expected.txt (0 => 111500)


--- trunk/LayoutTests/fast/dom/shadow/content-element-in-meter-element-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/dom/shadow/content-element-in-meter-element-expected.txt	2012-03-21 05:12:51 UTC (rev 111500)
@@ -0,0 +1,4 @@
+contentElementInMeterElement
+PASS
+TEST COMPLETED
+

Added: trunk/LayoutTests/fast/dom/shadow/content-element-in-meter-element.html (0 => 111500)


--- trunk/LayoutTests/fast/dom/shadow/content-element-in-meter-element.html	                        (rev 0)
+++ trunk/LayoutTests/fast/dom/shadow/content-element-in-meter-element.html	2012-03-21 05:12:51 UTC (rev 111500)
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html>
+<head>
+<style>
+/* relative positioning ensures underlying RenderLayer */
+.container {
+    position: relative;
+}
+
+.span {
+    display: boxed-inline;
+    margin: 2px;
+    border: solid;
+}
+</style>
+<script src=""
+<script src=""
+<script>
+
+var testFuncs = [];
+
+testFuncs.push(function contentElementInMeterElement(callIfDone) {
+    document.getElementById('expect-container').innerHTML = "<div><meter><div></div></meter></div>";
+
+    var div = document.createElement('div');
+    div.appendChild(document.createElement('div'));
+
+    document.getElementById('actual-container').appendChild(div);
+
+    var sr = new WebKitShadowRoot(div);
+
+    var f = (function(sr, callIfDone) {
+        return function() {
+            var meter = document.createElement('meter');
+            var content = document.createElement('content');
+            meter.appendChild(content);
+            sr.appendChild(meter);
+            callIfDone();
+        };
+    })(sr, callIfDone);
+
+    setTimeout(f, 0);
+});
+
+</script>
+</head>
+<body _onload_="doTest(testFuncs)">
+
+<div id="actual-container" class="container"></div>
+<div id="expect-container" class="container"></div>
+<pre id="console"></pre>
+
+</body>
+</html>

Added: trunk/LayoutTests/fast/dom/shadow/content-element-in-progress-element-expected.txt (0 => 111500)


--- trunk/LayoutTests/fast/dom/shadow/content-element-in-progress-element-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/dom/shadow/content-element-in-progress-element-expected.txt	2012-03-21 05:12:51 UTC (rev 111500)
@@ -0,0 +1,4 @@
+contentElementInProgressElement
+PASS
+TEST COMPLETED
+

Added: trunk/LayoutTests/fast/dom/shadow/content-element-in-progress-element.html (0 => 111500)


--- trunk/LayoutTests/fast/dom/shadow/content-element-in-progress-element.html	                        (rev 0)
+++ trunk/LayoutTests/fast/dom/shadow/content-element-in-progress-element.html	2012-03-21 05:12:51 UTC (rev 111500)
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html>
+<head>
+<style>
+/* relative positioning ensures underlying RenderLayer */
+.container {
+    position: relative;
+}
+
+.span {
+    display: boxed-inline;
+    margin: 2px;
+    border: solid;
+}
+</style>
+<script src=""
+<script src=""
+<script>
+
+var testFuncs = [];
+
+testFuncs.push(function contentElementInProgressElement(callIfDone) {
+    document.getElementById('expect-container').innerHTML = "<div><progress><div></div></progress></div>";
+
+    var div = document.createElement('div');
+    div.appendChild(document.createElement('div'));
+
+    document.getElementById('actual-container').appendChild(div);
+
+    var sr = new WebKitShadowRoot(div);
+
+    var f = (function(sr, callIfDone) {
+        return function() {
+            var progress = document.createElement('progress');
+            var content = document.createElement('content');
+            progress.appendChild(content);
+            sr.appendChild(progress);
+            callIfDone();
+        };
+    })(sr, callIfDone);
+
+    setTimeout(f, 0);
+});
+
+</script>
+</head>
+<body _onload_="doTest(testFuncs)">
+
+<div id="actual-container" class="container"></div>
+<div id="expect-container" class="container"></div>
+<pre id="console"></pre>
+
+</body>
+</html>

Added: trunk/LayoutTests/fast/dom/shadow/content-element-in-select-element-expected.txt (0 => 111500)


--- trunk/LayoutTests/fast/dom/shadow/content-element-in-select-element-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/dom/shadow/content-element-in-select-element-expected.txt	2012-03-21 05:12:51 UTC (rev 111500)
@@ -0,0 +1,4 @@
+contentElementInSelectElement
+PASS
+TEST COMPLETED
+

Added: trunk/LayoutTests/fast/dom/shadow/content-element-in-select-element.html (0 => 111500)


--- trunk/LayoutTests/fast/dom/shadow/content-element-in-select-element.html	                        (rev 0)
+++ trunk/LayoutTests/fast/dom/shadow/content-element-in-select-element.html	2012-03-21 05:12:51 UTC (rev 111500)
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html>
+<head>
+<style>
+/* relative positioning ensures underlying RenderLayer */
+.container {
+    position: relative;
+}
+
+.span {
+    display: boxed-inline;
+    margin: 2px;
+    border: solid;
+}
+</style>
+<script src=""
+<script src=""
+<script>
+
+var testFuncs = [];
+
+testFuncs.push(function contentElementInSelectElement(callIfDone) {
+    document.getElementById('expect-container').innerHTML = "<div><select><div></div></select></div>";
+
+    var div = document.createElement('div');
+    div.appendChild(document.createElement('div'));
+
+    document.getElementById('actual-container').appendChild(div);
+
+    var sr = new WebKitShadowRoot(div);
+
+    var f = (function(sr, callIfDone) {
+        return function() {
+            var select = document.createElement('select');
+            var content = document.createElement('content');
+            select.appendChild(content);
+            sr.appendChild(select);
+            callIfDone();
+        };
+    })(sr, callIfDone);
+
+    setTimeout(f, 0);
+});
+
+</script>
+</head>
+<body _onload_="doTest(testFuncs)">
+
+<div id="actual-container" class="container"></div>
+<div id="expect-container" class="container"></div>
+<pre id="console"></pre>
+
+</body>
+</html>

Modified: trunk/LayoutTests/platform/chromium/test_expectations.txt (111499 => 111500)


--- trunk/LayoutTests/platform/chromium/test_expectations.txt	2012-03-21 05:02:57 UTC (rev 111499)
+++ trunk/LayoutTests/platform/chromium/test_expectations.txt	2012-03-21 05:12:51 UTC (rev 111500)
@@ -3277,6 +3277,9 @@
 
 BUGCR85293 LINUX : svg/text/foreignObject-text-clipping-bug.xml = PASS IMAGE
 
+BUGWK81310 : fast/dom/shadow/content-element-in-media-element.html = TEXT
+BUGWK81311 : fast/dom/shadow/content-element-in-meter-element.html = TEXT
+
 // CSS Grid Layout is not enabled yet.
 BUGWK60731 SKIP : fast/css-grid-layout = PASS
 

Modified: trunk/LayoutTests/platform/efl/Skipped (111499 => 111500)


--- trunk/LayoutTests/platform/efl/Skipped	2012-03-21 05:02:57 UTC (rev 111499)
+++ trunk/LayoutTests/platform/efl/Skipped	2012-03-21 05:12:51 UTC (rev 111500)
@@ -1938,6 +1938,8 @@
 fast/dom/shadow/content-element-api.html
 fast/dom/shadow/content-element-outside-shadow.html
 fast/dom/shadow/content-element-outside-shadow-style.html
+fast/dom/shadow/content-element-in-media-element.html
+fast/dom/shadow/content-element-in-meter-element.html
 fast/dom/shadow/get-element-by-id-in-shadow-root.html
 fast/dom/shadow/shadow-root-js-api.html
 fast/dom/shadow/shadow-disable.html

Modified: trunk/LayoutTests/platform/qt/Skipped (111499 => 111500)


--- trunk/LayoutTests/platform/qt/Skipped	2012-03-21 05:02:57 UTC (rev 111499)
+++ trunk/LayoutTests/platform/qt/Skipped	2012-03-21 05:12:51 UTC (rev 111500)
@@ -167,6 +167,8 @@
 fast/dom/shadow/content-element-move.html
 fast/dom/shadow/content-element-outside-shadow.html
 fast/dom/shadow/content-element-outside-shadow-style.html
+fast/dom/shadow/content-element-in-media-element.html
+fast/dom/shadow/content-element-in-meter-element.html
 fast/dom/shadow/get-element-by-id-in-shadow-root.html
 fast/dom/shadow/iframe-shadow.html
 fast/dom/shadow/multiple-shadowroot.html

Modified: trunk/LayoutTests/platform/win/Skipped (111499 => 111500)


--- trunk/LayoutTests/platform/win/Skipped	2012-03-21 05:02:57 UTC (rev 111499)
+++ trunk/LayoutTests/platform/win/Skipped	2012-03-21 05:12:51 UTC (rev 111500)
@@ -1007,6 +1007,7 @@
 fast/dom/shadow/tree-scope-crash.html
 fast/forms/form-attribute.html
 
+
 # view mode media feature
 fast/media/view-mode-media-feature.html
 fast/media/media-query-list-02.html
@@ -1460,6 +1461,8 @@
 fast/dom/shadow/content-element-api.html
 fast/dom/shadow/content-element-outside-shadow.html
 fast/dom/shadow/content-element-outside-shadow-style.html
+fast/dom/shadow/content-element-in-media-element.html
+fast/dom/shadow/content-element-in-meter-element.html
 fast/dom/shadow/get-element-by-id-in-shadow-root.html
 fast/dom/shadow/shadow-root-js-api.html
 fast/dom/shadow/shadow-disable.html

Modified: trunk/LayoutTests/platform/wincairo/Skipped (111499 => 111500)


--- trunk/LayoutTests/platform/wincairo/Skipped	2012-03-21 05:02:57 UTC (rev 111499)
+++ trunk/LayoutTests/platform/wincairo/Skipped	2012-03-21 05:12:51 UTC (rev 111500)
@@ -1972,6 +1972,8 @@
 # ENABLE(SHADOW_DOM) is disabled.
 fast/dom/shadow/content-element-api.html
 fast/dom/shadow/content-element-outside-shadow.html
+fast/dom/shadow/content-element-in-media-element.html
+fast/dom/shadow/content-element-in-meter-element.html
 fast/dom/shadow/get-element-by-id-in-shadow-root.html
 fast/dom/shadow/shadow-root-js-api.html
 fast/dom/shadow/shadow-disable.html

Modified: trunk/LayoutTests/platform/wk2/Skipped (111499 => 111500)


--- trunk/LayoutTests/platform/wk2/Skipped	2012-03-21 05:02:57 UTC (rev 111499)
+++ trunk/LayoutTests/platform/wk2/Skipped	2012-03-21 05:12:51 UTC (rev 111500)
@@ -1083,6 +1083,8 @@
 fast/dom/shadow/content-element-api.html
 fast/dom/shadow/content-element-outside-shadow.html
 fast/dom/shadow/content-element-outside-shadow-style.html
+fast/dom/shadow/content-element-in-media-element.html
+fast/dom/shadow/content-element-in-meter-element.html
 fast/dom/shadow/shadow-root-js-api.html
 fast/dom/shadow/shadow-disable.html
 fast/dom/shadow/shadow-root-activeElement.html

Modified: trunk/Source/WebCore/ChangeLog (111499 => 111500)


--- trunk/Source/WebCore/ChangeLog	2012-03-21 05:02:57 UTC (rev 111499)
+++ trunk/Source/WebCore/ChangeLog	2012-03-21 05:12:51 UTC (rev 111500)
@@ -1,3 +1,40 @@
+2012-03-19  Shinya Kawanaka  <[email protected]>
+
+        [Crash] RenderMenuList::addChild() in Shadow DOM.
+        https://bugs.webkit.org/show_bug.cgi?id=81201
+
+        Reviewed by Dimitri Glazkov.
+
+        <audio>, <video>, <meter>, <progress>, and <select> are implemented using
+        Shadow DOM having HTMLContentElement. Their renderer children basically should not
+        create a renderer unless they are on the upper shadow encapsulation boundary,
+        which means they are the direct children of the shadow root.
+
+        However, current implementation allows their renderer children to create a renderer
+        even if they are on a lower shadow encapsulation boundary, which means
+        they are distributed elements of HTMLContentElement.
+
+        This patch makes there renderer children not to create a renderer if they are on a lower shadow
+        encapsulation boudary.
+
+        Tests: fast/dom/shadow/content-element-in-media-element.html
+               fast/dom/shadow/content-element-in-meter-element.html
+               fast/dom/shadow/content-element-in-progress-element.html
+               fast/dom/shadow/content-element-in-select-element.html
+
+        * dom/NodeRenderingContext.h:
+        (NodeRenderingContext):
+        (WebCore::NodeRenderingContext::isOnUpperEncapsulationBoundary):
+        (WebCore):
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::childShouldCreateRenderer):
+        * html/HTMLMeterElement.cpp:
+        (WebCore::HTMLMeterElement::childShouldCreateRenderer):
+        * html/HTMLProgressElement.cpp:
+        (WebCore::HTMLProgressElement::childShouldCreateRenderer):
+        * html/HTMLSelectElement.cpp:
+        (WebCore::HTMLSelectElement::childShouldCreateRenderer):
+
 2012-03-20  Dana Jansens  <[email protected]>
 
         [chromium] Store origin/screen space transforms for surface and replica in the surface

Modified: trunk/Source/WebCore/dom/NodeRenderingContext.h (111499 => 111500)


--- trunk/Source/WebCore/dom/NodeRenderingContext.h	2012-03-21 05:02:57 UTC (rev 111499)
+++ trunk/Source/WebCore/dom/NodeRenderingContext.h	2012-03-21 05:12:51 UTC (rev 111500)
@@ -62,6 +62,7 @@
 
     void hostChildrenChanged();
 
+    bool isOnUpperEncapsulationBoundary() const;
     bool isOnEncapsulationBoundary() const;
     bool hasFlowThreadParent() const { return m_parentFlowRenderer; }
     RenderFlowThread* parentFlowRenderer() const { return m_parentFlowRenderer; }
@@ -117,6 +118,11 @@
             || m_phase == AttachingFallbacked);
 }
 
+inline bool NodeRenderingContext::isOnUpperEncapsulationBoundary() const
+{
+    return m_phase == AttachingShadowChild;
+}
+
 class NodeRendererFactory {
     WTF_MAKE_NONCOPYABLE(NodeRendererFactory);
     WTF_MAKE_FAST_ALLOCATED;

Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (111499 => 111500)


--- trunk/Source/WebCore/html/HTMLMediaElement.cpp	2012-03-21 05:02:57 UTC (rev 111499)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp	2012-03-21 05:12:51 UTC (rev 111500)
@@ -468,7 +468,7 @@
 
 bool HTMLMediaElement::childShouldCreateRenderer(const NodeRenderingContext& childContext) const
 {
-    return childContext.isOnEncapsulationBoundary() && HTMLElement::childShouldCreateRenderer(childContext);
+    return childContext.isOnUpperEncapsulationBoundary() && HTMLElement::childShouldCreateRenderer(childContext);
 }
 
 void HTMLMediaElement::insertedIntoDocument()

Modified: trunk/Source/WebCore/html/HTMLMeterElement.cpp (111499 => 111500)


--- trunk/Source/WebCore/html/HTMLMeterElement.cpp	2012-03-21 05:02:57 UTC (rev 111499)
+++ trunk/Source/WebCore/html/HTMLMeterElement.cpp	2012-03-21 05:12:51 UTC (rev 111500)
@@ -63,7 +63,7 @@
 
 bool HTMLMeterElement::childShouldCreateRenderer(const NodeRenderingContext& childContext) const
 {
-    return childContext.isOnEncapsulationBoundary() && HTMLElement::childShouldCreateRenderer(childContext);
+    return childContext.isOnUpperEncapsulationBoundary() && HTMLElement::childShouldCreateRenderer(childContext);
 }
 
 bool HTMLMeterElement::supportsFocus() const

Modified: trunk/Source/WebCore/html/HTMLProgressElement.cpp (111499 => 111500)


--- trunk/Source/WebCore/html/HTMLProgressElement.cpp	2012-03-21 05:02:57 UTC (rev 111499)
+++ trunk/Source/WebCore/html/HTMLProgressElement.cpp	2012-03-21 05:12:51 UTC (rev 111500)
@@ -65,7 +65,7 @@
 
 bool HTMLProgressElement::childShouldCreateRenderer(const NodeRenderingContext& childContext) const
 {
-    return childContext.isOnEncapsulationBoundary() && HTMLElement::childShouldCreateRenderer(childContext);
+    return childContext.isOnUpperEncapsulationBoundary() && HTMLElement::childShouldCreateRenderer(childContext);
 }
 
 bool HTMLProgressElement::supportsFocus() const

Modified: trunk/Source/WebCore/html/HTMLSelectElement.cpp (111499 => 111500)


--- trunk/Source/WebCore/html/HTMLSelectElement.cpp	2012-03-21 05:02:57 UTC (rev 111499)
+++ trunk/Source/WebCore/html/HTMLSelectElement.cpp	2012-03-21 05:12:51 UTC (rev 111500)
@@ -328,7 +328,7 @@
 
 bool HTMLSelectElement::childShouldCreateRenderer(const NodeRenderingContext& childContext) const
 {
-    return childContext.isOnEncapsulationBoundary() && HTMLFormControlElementWithState::childShouldCreateRenderer(childContext);
+    return childContext.isOnUpperEncapsulationBoundary() && HTMLFormControlElementWithState::childShouldCreateRenderer(childContext);
 }
 
 HTMLCollection* HTMLSelectElement::selectedOptions()
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to