Title: [108035] trunk
Revision
108035
Author
[email protected]
Date
2012-02-16 22:42:02 -0800 (Thu, 16 Feb 2012)

Log Message

[v8] v8 doesn't assume to do 'new WebKitShadowRoot(host)'
https://bugs.webkit.org/show_bug.cgi?id=78875

Reviewed by Kentaro Hara.

Source/WebCore:

Since v8 does not assume that we do 'new WebkitShadowRoot(host)', a wrapper object for new WebKitShadowRoot(host)
was saved in DOMObject storage instead of DOMNode storage.

CodeGenerator should handle with DOMNode correctly to solve the problem.

Test: fast/dom/shadow/shadow-root-new.html

* bindings/scripts/CodeGeneratorV8.pm:
(GenerateConstructorCallback):

LayoutTests:

Skip non-chromium ports since SHADOW_DOM flag is not enabled in their ports.

* fast/dom/shadow/shadow-root-new.html: Added.
* fast/dom/shadow/shadow-root-new-expected.txt: Added.
* platform/efl/Skipped:
* platform/gtk/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 (108034 => 108035)


--- trunk/LayoutTests/ChangeLog	2012-02-17 06:35:46 UTC (rev 108034)
+++ trunk/LayoutTests/ChangeLog	2012-02-17 06:42:02 UTC (rev 108035)
@@ -1,3 +1,22 @@
+2012-02-16  Shinya Kawanaka  <[email protected]>
+
+        [v8] v8 doesn't assume to do 'new WebKitShadowRoot(host)'
+        https://bugs.webkit.org/show_bug.cgi?id=78875
+
+        Reviewed by Kentaro Hara.
+
+        Skip non-chromium ports since SHADOW_DOM flag is not enabled in their ports.
+
+        * fast/dom/shadow/shadow-root-new.html: Added.
+        * fast/dom/shadow/shadow-root-new-expected.txt: Added.
+        * platform/efl/Skipped:
+        * platform/gtk/Skipped:
+        * platform/mac/Skipped:
+        * platform/qt/Skipped:
+        * platform/win/Skipped:
+        * platform/wincairo/Skipped:
+        * platform/wk2/Skipped:
+
 2012-02-16  Ilya Tikhonovsky  <[email protected]>
 
         Unreviewed rollout r107952 because it broke shadow-boundary-events.html and related-target-focusevent.html on mac. 

Added: trunk/LayoutTests/fast/dom/shadow/shadow-root-new-expected.txt (0 => 108035)


--- trunk/LayoutTests/fast/dom/shadow/shadow-root-new-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/dom/shadow/shadow-root-new-expected.txt	2012-02-17 06:42:02 UTC (rev 108035)
@@ -0,0 +1,7 @@
+This test checks the object 'new WebKitShadowRoot(host)' and internals.shadowRoot(div) are the same.
+
+PASS root1 is root2
+PASS successfullyParsed is true
+
+TEST COMPLETE
+

Added: trunk/LayoutTests/fast/dom/shadow/shadow-root-new.html (0 => 108035)


--- trunk/LayoutTests/fast/dom/shadow/shadow-root-new.html	                        (rev 0)
+++ trunk/LayoutTests/fast/dom/shadow/shadow-root-new.html	2012-02-17 06:42:02 UTC (rev 108035)
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src=""
+</head>
+<body>
+<p>This test checks the object 'new WebKitShadowRoot(host)' and internals.shadowRoot(div) are the same.</p>
+<pre id="console"></pre>
+
+<script>
+function doTest() {
+    if (!window.internals) {
+        debug('This test runs on DRT only');
+        return;
+    }
+
+    div = document.createElement('div');
+    // we should call new WebKitShadowRoot first.
+    root1 = new WebKitShadowRoot(div);
+    root2 = internals.shadowRoot(div);
+
+    shouldBe('root1', 'root2');
+}
+
+doTest();
+var successfullyParsed = true;
+</script>
+<script src=""
+</body>
+</html>

Modified: trunk/LayoutTests/platform/efl/Skipped (108034 => 108035)


--- trunk/LayoutTests/platform/efl/Skipped	2012-02-17 06:35:46 UTC (rev 108034)
+++ trunk/LayoutTests/platform/efl/Skipped	2012-02-17 06:42:02 UTC (rev 108035)
@@ -1974,6 +1974,7 @@
 # ENABLE(SHADOW_DOM) is disabled.
 fast/dom/shadow/shadow-root-js-api.html
 fast/dom/shadow/shadow-disable.html
+fast/dom/shadow/shadow-root-new.html
 
 # CSS Filters support not yet enabled (needs ENABLE_CSS_FILTERS).
 # https://bugs.webkit.org/show_bug.cgi?id=68469

Modified: trunk/LayoutTests/platform/gtk/Skipped (108034 => 108035)


--- trunk/LayoutTests/platform/gtk/Skipped	2012-02-17 06:35:46 UTC (rev 108034)
+++ trunk/LayoutTests/platform/gtk/Skipped	2012-02-17 06:42:02 UTC (rev 108035)
@@ -357,6 +357,7 @@
 # ENABLE(SHADOW_DOM) is disabled.
 fast/dom/shadow/shadow-root-js-api.html
 fast/dom/shadow/shadow-disable.html
+fast/dom/shadow/shadow-root-new.html
 
 # CSS Regions support not yet enabled. http://webkit.org/b/57312
 fast/regions

Modified: trunk/LayoutTests/platform/mac/Skipped (108034 => 108035)


--- trunk/LayoutTests/platform/mac/Skipped	2012-02-17 06:35:46 UTC (rev 108034)
+++ trunk/LayoutTests/platform/mac/Skipped	2012-02-17 06:42:02 UTC (rev 108035)
@@ -418,6 +418,7 @@
 # ENABLE(SHADOW_DOM) is disabled.
 fast/dom/shadow/shadow-root-js-api.html
 fast/dom/shadow/shadow-disable.html
+fast/dom/shadow/shadow-root-new.html
 
 # JSC does not support setIsolatedWorldSecurityOrigin (http://webkit.org/b/61540)
 http/tests/security/isolatedWorld/cross-origin-xhr.html

Modified: trunk/LayoutTests/platform/qt/Skipped (108034 => 108035)


--- trunk/LayoutTests/platform/qt/Skipped	2012-02-17 06:35:46 UTC (rev 108034)
+++ trunk/LayoutTests/platform/qt/Skipped	2012-02-17 06:42:02 UTC (rev 108035)
@@ -161,6 +161,7 @@
 # ENABLE(SHADOW_DOM) is disabled.
 fast/dom/shadow/shadow-root-js-api.html
 fast/dom/shadow/shadow-disable.html
+fast/dom/shadow/shadow-root-new.html
 
 # CSS Regions support not yet enabled. http://webkit.org/b/57312
 fast/regions

Modified: trunk/LayoutTests/platform/win/Skipped (108034 => 108035)


--- trunk/LayoutTests/platform/win/Skipped	2012-02-17 06:35:46 UTC (rev 108034)
+++ trunk/LayoutTests/platform/win/Skipped	2012-02-17 06:42:02 UTC (rev 108035)
@@ -1450,6 +1450,7 @@
 # ENABLE(SHADOW_DOM) is disabled.
 fast/dom/shadow/shadow-root-js-api.html
 fast/dom/shadow/shadow-disable.html
+fast/dom/shadow/shadow-root-new.html
 
 # CSS Regions support not yet enabled. http://webkit.org/b/57312
 fast/regions

Modified: trunk/LayoutTests/platform/wincairo/Skipped (108034 => 108035)


--- trunk/LayoutTests/platform/wincairo/Skipped	2012-02-17 06:35:46 UTC (rev 108034)
+++ trunk/LayoutTests/platform/wincairo/Skipped	2012-02-17 06:42:02 UTC (rev 108035)
@@ -1965,6 +1965,7 @@
 # ENABLE(SHADOW_DOM) is disabled.
 fast/dom/shadow/shadow-root-js-api.html
 fast/dom/shadow/shadow-disable.html
+fast/dom/shadow/shadow-root-new.html
 
 # CSS Regions support not yet enabled. http://webkit.org/b/57312
 fast/regions

Modified: trunk/LayoutTests/platform/wk2/Skipped (108034 => 108035)


--- trunk/LayoutTests/platform/wk2/Skipped	2012-02-17 06:35:46 UTC (rev 108034)
+++ trunk/LayoutTests/platform/wk2/Skipped	2012-02-17 06:42:02 UTC (rev 108035)
@@ -1077,6 +1077,11 @@
 # missing window.internals.createShadowContentElement
 fast/dom/shadow/create-content-element.html
 
+# ENABLE(SHADOW_DOM) is disabled.
+fast/dom/shadow/shadow-root-js-api.html
+fast/dom/shadow/shadow-disable.html
+fast/dom/shadow/shadow-root-new.html
+
 # WTR needs an implementation for eventSender.continuousMouseScrollBy
 # https://bugs.webkit.org/show_bug.cgi?id=69417
 fast/events/wheelevent-direction-inverted-from-device.html

Modified: trunk/Source/WebCore/ChangeLog (108034 => 108035)


--- trunk/Source/WebCore/ChangeLog	2012-02-17 06:35:46 UTC (rev 108034)
+++ trunk/Source/WebCore/ChangeLog	2012-02-17 06:42:02 UTC (rev 108035)
@@ -1,3 +1,20 @@
+2012-02-16  Shinya Kawanaka  <[email protected]>
+
+        [v8] v8 doesn't assume to do 'new WebKitShadowRoot(host)'
+        https://bugs.webkit.org/show_bug.cgi?id=78875
+
+        Reviewed by Kentaro Hara.
+
+        Since v8 does not assume that we do 'new WebkitShadowRoot(host)', a wrapper object for new WebKitShadowRoot(host)
+        was saved in DOMObject storage instead of DOMNode storage.
+
+        CodeGenerator should handle with DOMNode correctly to solve the problem.
+
+        Test: fast/dom/shadow/shadow-root-new.html
+
+        * bindings/scripts/CodeGeneratorV8.pm:
+        (GenerateConstructorCallback):
+
 2012-02-16  Ilya Tikhonovsky  <[email protected]>
 
         Unreviewed rollout r107952 because it broke shadow-boundary-events.html and related-target-focusevent.html on mac.

Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm (108034 => 108035)


--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm	2012-02-17 06:35:46 UTC (rev 108034)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm	2012-02-17 06:42:02 UTC (rev 108035)
@@ -1682,7 +1682,13 @@
         push(@implContent, "        goto fail;\n");
     }
 
-    my $DOMObject = $dataNode->extendedAttributes->{"ActiveDOMObject"} ? "ActiveDOMObject" : "DOMObject";
+    my $DOMObject = "DOMObject";
+    if (IsNodeSubType($dataNode)) {
+        $DOMObject = "DOMNode";
+    } elsif ($dataNode->extendedAttributes->{"ActiveDOMObject"}) {
+        $DOMObject = "ActiveDOMObject";
+    }
+
     push(@implContent, <<END);
 
     V8DOMWrapper::setDOMWrapper(wrapper, &info, impl.get());
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to