Title: [91895] trunk
Revision
91895
Author
morr...@google.com
Date
2011-07-27 20:44:57 -0700 (Wed, 27 Jul 2011)

Log Message

Source/WebCore: Inconsistent state of TreeScope reference.
https://bugs.webkit.org/show_bug.cgi?id=65235

The tree scope pointers on shadow tree nodes didn't cleared.
even when the tree scope (shadow root) is destroyed.
This change clear these poitners before detaching the shadow root.

Reviewed by Dimitri Glazkov.

Test: fast/dom/shadow/tree-scope-crash.html

* dom/Element.cpp:
(WebCore::Element::removeShadowRoot):

LayoutTests: Inconsistent state of TreeScope reference.
https://bugs.webkit.org/show_bug.cgi?id=65235

Reviewed by Dimitri Glazkov.

* fast/dom/shadow/tree-scope-crash-expected.txt: Added.
* fast/dom/shadow/tree-scope-crash.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (91894 => 91895)


--- trunk/LayoutTests/ChangeLog	2011-07-28 03:25:19 UTC (rev 91894)
+++ trunk/LayoutTests/ChangeLog	2011-07-28 03:44:57 UTC (rev 91895)
@@ -1,3 +1,13 @@
+2011-07-27  MORITA Hajime  <morr...@google.com>
+
+        Inconsistent state of TreeScope reference.
+        https://bugs.webkit.org/show_bug.cgi?id=65235
+
+        Reviewed by Dimitri Glazkov.
+
+        * fast/dom/shadow/tree-scope-crash-expected.txt: Added.
+        * fast/dom/shadow/tree-scope-crash.html: Added.
+
 2011-07-27  Rachel Blum  <gr...@chromium.org>
 
         Implement sizes attribute for link tag from HTML5

Added: trunk/LayoutTests/fast/dom/shadow/tree-scope-crash-expected.txt (0 => 91895)


--- trunk/LayoutTests/fast/dom/shadow/tree-scope-crash-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/dom/shadow/tree-scope-crash-expected.txt	2011-07-28 03:44:57 UTC (rev 91895)
@@ -0,0 +1,4 @@
+PASS unless crash
+
+
+

Added: trunk/LayoutTests/fast/dom/shadow/tree-scope-crash.html (0 => 91895)


--- trunk/LayoutTests/fast/dom/shadow/tree-scope-crash.html	                        (rev 0)
+++ trunk/LayoutTests/fast/dom/shadow/tree-scope-crash.html	2011-07-28 03:44:57 UTC (rev 91895)
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src=""
+<script>
+RELOAD_THRESHOULD = 10;
+
+if (window.layoutTestController)
+    layoutTestController.waitUntilDone();
+
+Markup.noAutoDump();
+    
+function assertMarkup(name, element, expected)
+{
+    var markup = Markup.get(element);
+}
+
+function currentCount()
+{
+   var match = /=(.*)/.exec(window.location.search)
+   if (!match)
+       return 0;
+   return parseInt(match[1]);
+}
+
+function runTest()
+{
+    var items = document.getElementsByTagName('li');
+    document.getElementById('testReplace').outerHTML = '<progress> node';
+    assertMarkup('replace', items[0], '| \n|   "Replaced"\n| " node using outerHTML."');
+
+    
+    var count = currentCount();
+    if (RELOAD_THRESHOULD <= count && window.layoutTestController) {
+        layoutTestController.notifyDone();
+        return;
+    }
+
+    document.getElementById("counter").value = (count + 1).toString();
+    document.getElementById("theForm").submit();
+}
+</script>
+</head>
+<body _onload_="runTest()">
+<h1>PASS unless crash</h1>
+<ul>
+  <li><span id="testReplace"></span></li>
+</ul>
+<form id="theForm">
+  <input id="counter" name="counter" value="">
+<form>
+</body>
+</html>

Modified: trunk/Source/WebCore/ChangeLog (91894 => 91895)


--- trunk/Source/WebCore/ChangeLog	2011-07-28 03:25:19 UTC (rev 91894)
+++ trunk/Source/WebCore/ChangeLog	2011-07-28 03:44:57 UTC (rev 91895)
@@ -1,3 +1,19 @@
+2011-07-27  MORITA Hajime  <morr...@google.com>
+
+        Inconsistent state of TreeScope reference.
+        https://bugs.webkit.org/show_bug.cgi?id=65235
+        
+        The tree scope pointers on shadow tree nodes didn't cleared.
+        even when the tree scope (shadow root) is destroyed.
+        This change clear these poitners before detaching the shadow root.
+
+        Reviewed by Dimitri Glazkov.
+
+        Test: fast/dom/shadow/tree-scope-crash.html
+
+        * dom/Element.cpp:
+        (WebCore::Element::removeShadowRoot):
+
 2011-07-27  Rachel Blum  <gr...@chromium.org>
 
         Implement sizes attribute for link tag from HTML5

Modified: trunk/Source/WebCore/dom/Element.cpp (91894 => 91895)


--- trunk/Source/WebCore/dom/Element.cpp	2011-07-28 03:25:19 UTC (rev 91894)
+++ trunk/Source/WebCore/dom/Element.cpp	2011-07-28 03:44:57 UTC (rev 91895)
@@ -1260,7 +1260,7 @@
             oldRoot->detach();
 
         oldRoot->setShadowHost(0);
-
+        oldRoot->setTreeScopeRecursively(document());
         if (oldRoot->inDocument())
             oldRoot->removedFromDocument();
         else
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to