Title: [91531] trunk
Revision
91531
Author
[email protected]
Date
2011-07-21 16:53:30 -0700 (Thu, 21 Jul 2011)

Log Message

Extend the protector of a CSS style sheet.  Because checkLoaded() can recursively delete
parent style elements, the protector should be extended to include the parent call.

https://bugs.webkit.org/show_bug.cgi?id=64736

Reviewed by Simon Fraser.

Source/WebCore:

Test: fast/css/css-imports-2.html

* css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::checkLoaded):

LayoutTests:

* fast/css/css-imports-2-expected.txt: Added.
* fast/css/css-imports-2.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (91530 => 91531)


--- trunk/LayoutTests/ChangeLog	2011-07-21 23:29:00 UTC (rev 91530)
+++ trunk/LayoutTests/ChangeLog	2011-07-21 23:53:30 UTC (rev 91531)
@@ -1,3 +1,15 @@
+2011-07-21  Gavin Peters  <[email protected]>
+
+        Extend the protector of a CSS style sheet.  Because checkLoaded() can recursively delete
+        parent style elements, the protector should be extended to include the parent call.
+
+        https://bugs.webkit.org/show_bug.cgi?id=64736
+
+        Reviewed by Simon Fraser.
+
+        * fast/css/css-imports-2-expected.txt: Added.
+        * fast/css/css-imports-2.html: Added.
+
 2011-07-21  Ryosuke Niwa  <[email protected]>
 
         Temporarily add failing test expectation for multi column tests after r91497.

Added: trunk/LayoutTests/fast/css/css-imports-2-expected.txt (0 => 91531)


--- trunk/LayoutTests/fast/css/css-imports-2-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/css/css-imports-2-expected.txt	2011-07-21 23:53:30 UTC (rev 91531)
@@ -0,0 +1 @@
+PASS

Added: trunk/LayoutTests/fast/css/css-imports-2.html (0 => 91531)


--- trunk/LayoutTests/fast/css/css-imports-2.html	                        (rev 0)
+++ trunk/LayoutTests/fast/css/css-imports-2.html	2011-07-21 23:53:30 UTC (rev 91531)
@@ -0,0 +1,9 @@
+<p><style>
+    @import url('resources/css-imports.css');
+</style>
+<script>
+if (window.layoutTestController)
+    layoutTestController.dumpAsText();
+document.body.innerHTML = "PASS";
+</script>
+

Modified: trunk/Source/WebCore/ChangeLog (91530 => 91531)


--- trunk/Source/WebCore/ChangeLog	2011-07-21 23:29:00 UTC (rev 91530)
+++ trunk/Source/WebCore/ChangeLog	2011-07-21 23:53:30 UTC (rev 91531)
@@ -1,3 +1,17 @@
+2011-07-21  Gavin Peters  <[email protected]>
+
+        Extend the protector of a CSS style sheet.  Because checkLoaded() can recursively delete
+        parent style elements, the protector should be extended to include the parent call.
+
+        https://bugs.webkit.org/show_bug.cgi?id=64736
+
+        Reviewed by Simon Fraser.
+
+        Test: fast/css/css-imports-2.html
+
+        * css/CSSStyleSheet.cpp:
+        (WebCore::CSSStyleSheet::checkLoaded):
+
 2011-07-21  Kenneth Russell  <[email protected]>
 
         Update webglcontextlost / webglcontextrestored delivery to match spec changes

Modified: trunk/Source/WebCore/css/CSSStyleSheet.cpp (91530 => 91531)


--- trunk/Source/WebCore/css/CSSStyleSheet.cpp	2011-07-21 23:29:00 UTC (rev 91530)
+++ trunk/Source/WebCore/css/CSSStyleSheet.cpp	2011-07-21 23:53:30 UTC (rev 91531)
@@ -220,13 +220,13 @@
 {
     if (isLoading())
         return;
-    if (parent())
-        parent()->checkLoaded();
 
     // Avoid |this| being deleted by scripts that run via
     // ScriptableDocumentParser::executeScriptsWaitingForStylesheets().
     // See <rdar://problem/6622300>.
     RefPtr<CSSStyleSheet> protector(this);
+    if (parent())
+        parent()->checkLoaded();
     m_loadCompleted = ownerNode() ? ownerNode()->sheetLoaded() : true;
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to