Title: [106043] trunk
Revision
106043
Author
[email protected]
Date
2012-01-26 14:24:10 -0800 (Thu, 26 Jan 2012)

Log Message

We shouldn't synchronously update styles on all documents after running script
https://bugs.webkit.org/show_bug.cgi?id=46761

Reviewed by Simon Fraser.

Currently we call Document::updateStyleForAllDocuments() after invoking any event or timeout handler. This is
slow since it iterates over the entire document tree and defeats our recalcStyle timer batching. It is
unnecessary as any code that depends on styles or the render tree being up to date must call
updateStyleIfNeeded() on the document it is accessing.

The first reference I can find to this code is in r798 in the file WebCore/khtml/xml/domnode_impl.cpp. It's been
cargo culted forward ever since.

* bindings/ScriptControllerBase.cpp:
(WebCore::ScriptController::executeScript):
* bindings/js/ScheduledAction.cpp:
(WebCore::ScheduledAction::execute):
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::ScriptController):
(WebCore::ScriptController::executeScriptInWorld):
* bindings/js/ScriptController.h:
* bindings/v8/ScheduledAction.cpp:
(WebCore::ScheduledAction::execute):
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::ScriptController):
* bindings/v8/ScriptController.h:
* dom/ScriptElement.cpp:
(WebCore::ScriptElement::executeScript):
* inspector/InspectorClient.cpp:
(WebCore::InspectorClient::doDispatchMessageOnFrontendPage):

Modified Paths

Removed Paths

Diff

Modified: trunk/LayoutTests/fast/canvas/resize-while-save-active-expected.txt (106042 => 106043)


--- trunk/LayoutTests/fast/canvas/resize-while-save-active-expected.txt	2012-01-26 22:21:18 UTC (rev 106042)
+++ trunk/LayoutTests/fast/canvas/resize-while-save-active-expected.txt	2012-01-26 22:24:10 UTC (rev 106043)
@@ -1 +1,3 @@
 If we got this far without an assertion, this test passed.
+
+

Modified: trunk/LayoutTests/fast/dom/title-directionality-expected.txt (106042 => 106043)


--- trunk/LayoutTests/fast/dom/title-directionality-expected.txt	2012-01-26 22:21:18 UTC (rev 106042)
+++ trunk/LayoutTests/fast/dom/title-directionality-expected.txt	2012-01-26 22:24:10 UTC (rev 106043)
@@ -3,3 +3,4 @@
 <html><title dir=rtl>foo</title></html> should have title direction "rtl". PASS
 <html dir=rtl><title>foo</title></html> should have title direction "rtl". PASS
 <html dir=rtl><title dir=ltr>foo</title></html> should have title direction "ltr". PASS
+

Modified: trunk/LayoutTests/fast/xsl/import-non-document-node-expected.txt (106042 => 106043)


--- trunk/LayoutTests/fast/xsl/import-non-document-node-expected.txt	2012-01-26 22:21:18 UTC (rev 106042)
+++ trunk/LayoutTests/fast/xsl/import-non-document-node-expected.txt	2012-01-26 22:24:10 UTC (rev 106043)
@@ -1,3 +1,5 @@
 Test importing an xsl:stylesheet node as stylesheet for XSLTProcessor.
 
 SUCCESS
+
+

Modified: trunk/LayoutTests/http/tests/cache/subresource-expiration-1-expected.txt (106042 => 106043)


--- trunk/LayoutTests/http/tests/cache/subresource-expiration-1-expected.txt	2012-01-26 22:21:18 UTC (rev 106042)
+++ trunk/LayoutTests/http/tests/cache/subresource-expiration-1-expected.txt	2012-01-26 22:24:10 UTC (rev 106043)
@@ -9,3 +9,4 @@
 Cache-control: max-age=0; (result=Uncached expected=Uncached) PASS
 Cache-control: max-age=1; [delay=1.5s] (result=Uncached expected=Uncached) PASS
 Cache-control: max-age=10, no-cache; (result=Uncached expected=Uncached) PASS
+

Modified: trunk/LayoutTests/http/tests/cache/subresource-expiration-2-expected.txt (106042 => 106043)


--- trunk/LayoutTests/http/tests/cache/subresource-expiration-2-expected.txt	2012-01-26 22:21:18 UTC (rev 106042)
+++ trunk/LayoutTests/http/tests/cache/subresource-expiration-2-expected.txt	2012-01-26 22:24:10 UTC (rev 106043)
@@ -9,3 +9,4 @@
 Last-modified: [now-3600s]; [delay=1.5s] (result=Cached expected=Cached) PASS
 Last-modified: [now-10s]; [delay=1.5s] (result=Uncached expected=Uncached) PASS
 Last-modified: [now+10s]; (result=Uncached expected=Uncached) PASS
+

Modified: trunk/LayoutTests/http/tests/xmlhttprequest/send-array-buffer-expected.txt (106042 => 106043)


--- trunk/LayoutTests/http/tests/xmlhttprequest/send-array-buffer-expected.txt	2012-01-26 22:21:18 UTC (rev 106042)
+++ trunk/LayoutTests/http/tests/xmlhttprequest/send-array-buffer-expected.txt	2012-01-26 22:24:10 UTC (rev 106043)
@@ -1,2 +1,3 @@
 Tests sending an array buffer.
 0 1 2 48 49 50 128 129 130 253 254 255
+

Modified: trunk/LayoutTests/http/tests/xmlhttprequest/send-undefined-and-null-expected.txt (106042 => 106043)


--- trunk/LayoutTests/http/tests/xmlhttprequest/send-undefined-and-null-expected.txt	2012-01-26 22:21:18 UTC (rev 106042)
+++ trunk/LayoutTests/http/tests/xmlhttprequest/send-undefined-and-null-expected.txt	2012-01-26 22:24:10 UTC (rev 106043)
@@ -1,3 +1,4 @@
 Tests that sending undefined or null results in an empty request body.
 PASS for undefined
 PASS for null
+

Deleted: trunk/LayoutTests/platform/chromium/http/tests/xmlhttprequest/send-array-buffer-expected.txt (106042 => 106043)


--- trunk/LayoutTests/platform/chromium/http/tests/xmlhttprequest/send-array-buffer-expected.txt	2012-01-26 22:21:18 UTC (rev 106042)
+++ trunk/LayoutTests/platform/chromium/http/tests/xmlhttprequest/send-array-buffer-expected.txt	2012-01-26 22:24:10 UTC (rev 106043)
@@ -1,2 +0,0 @@
-Tests sending an array buffer.
-0 1 2 48 49 50 128 129 130 253 254 255

Modified: trunk/LayoutTests/platform/chromium/test_expectations.txt (106042 => 106043)


--- trunk/LayoutTests/platform/chromium/test_expectations.txt	2012-01-26 22:21:18 UTC (rev 106042)
+++ trunk/LayoutTests/platform/chromium/test_expectations.txt	2012-01-26 22:24:10 UTC (rev 106043)
@@ -3871,6 +3871,9 @@
 BUGWK65711 : svg/custom/js-late-pattern-and-object-creation.svg = IMAGE+TEXT IMAGE
 BUGWK65711 : svg/text/append-text-node-to-tspan.html = IMAGE+TEXT IMAGE
 
+BUGWK76727 : fast/multicol/span/span-as-immediate-child-property-removal.html = IMAGE+TEXT
+BUGWK76727 : fast/multicol/span/span-as-immediate-columns-child-removal.html = IMAGE+TEXT
+
 // Text layout should have changed, kerning should look more natural. We previously didn't relayout
 // the text when moving to a new view target, and thus didn't update the scaledFont.
 BUGWK76446 : svg/custom/linking-a-03-b-all.svg = IMAGE+TEXT

Modified: trunk/LayoutTests/platform/chromium-win/editing/selection/caret-ltr-2-expected.txt (106042 => 106043)


--- trunk/LayoutTests/platform/chromium-win/editing/selection/caret-ltr-2-expected.txt	2012-01-26 22:21:18 UTC (rev 106042)
+++ trunk/LayoutTests/platform/chromium-win/editing/selection/caret-ltr-2-expected.txt	2012-01-26 22:24:10 UTC (rev 106043)
@@ -14,4 +14,5 @@
         RenderText {#text} at (0,0) size 38x19
           text run at (0,0) width 38: "PASS"
         RenderBR {BR} at (38,0) size 0x19
+        RenderText {#text} at (0,0) size 0x0
 caret: position 0 of child 0 {#text} of child 3 {DIV} of body

Modified: trunk/LayoutTests/platform/chromium-win/editing/selection/caret-ltr-2-left-expected.txt (106042 => 106043)


--- trunk/LayoutTests/platform/chromium-win/editing/selection/caret-ltr-2-left-expected.txt	2012-01-26 22:21:18 UTC (rev 106042)
+++ trunk/LayoutTests/platform/chromium-win/editing/selection/caret-ltr-2-left-expected.txt	2012-01-26 22:24:10 UTC (rev 106043)
@@ -14,4 +14,5 @@
         RenderText {#text} at (0,0) size 38x19
           text run at (0,0) width 38: "PASS"
         RenderBR {BR} at (38,0) size 0x19
+        RenderText {#text} at (0,0) size 0x0
 caret: position 7 of child 0 {#text} of child 3 {DIV} of body

Modified: trunk/LayoutTests/platform/chromium-win/editing/selection/caret-ltr-expected.txt (106042 => 106043)


--- trunk/LayoutTests/platform/chromium-win/editing/selection/caret-ltr-expected.txt	2012-01-26 22:21:18 UTC (rev 106042)
+++ trunk/LayoutTests/platform/chromium-win/editing/selection/caret-ltr-expected.txt	2012-01-26 22:24:10 UTC (rev 106043)
@@ -14,4 +14,5 @@
         RenderText {#text} at (0,0) size 38x19
           text run at (0,0) width 38: "PASS"
         RenderBR {BR} at (38,0) size 0x19
+        RenderText {#text} at (0,0) size 0x0
 caret: position 0 of child 0 {#text} of child 3 {DIV} of body

Modified: trunk/LayoutTests/platform/chromium-win/editing/selection/caret-ltr-right-expected.txt (106042 => 106043)


--- trunk/LayoutTests/platform/chromium-win/editing/selection/caret-ltr-right-expected.txt	2012-01-26 22:21:18 UTC (rev 106042)
+++ trunk/LayoutTests/platform/chromium-win/editing/selection/caret-ltr-right-expected.txt	2012-01-26 22:24:10 UTC (rev 106043)
@@ -14,4 +14,5 @@
         RenderText {#text} at (0,0) size 38x19
           text run at (0,0) width 38: "PASS"
         RenderBR {BR} at (38,0) size 0x19
+        RenderText {#text} at (0,0) size 0x0
 caret: position 7 of child 0 {#text} of child 3 {DIV} of body

Modified: trunk/LayoutTests/platform/chromium-win/editing/selection/caret-rtl-2-expected.txt (106042 => 106043)


--- trunk/LayoutTests/platform/chromium-win/editing/selection/caret-rtl-2-expected.txt	2012-01-26 22:21:18 UTC (rev 106042)
+++ trunk/LayoutTests/platform/chromium-win/editing/selection/caret-rtl-2-expected.txt	2012-01-26 22:24:10 UTC (rev 106043)
@@ -14,4 +14,5 @@
         RenderText {#text} at (0,0) size 38x19
           text run at (0,0) width 38: "PASS"
         RenderBR {BR} at (38,0) size 0x19
+        RenderText {#text} at (0,0) size 0x0
 caret: position 7 of child 0 {#text} of child 3 {DIV} of body

Modified: trunk/LayoutTests/platform/chromium-win/editing/selection/caret-rtl-2-left-expected.txt (106042 => 106043)


--- trunk/LayoutTests/platform/chromium-win/editing/selection/caret-rtl-2-left-expected.txt	2012-01-26 22:21:18 UTC (rev 106042)
+++ trunk/LayoutTests/platform/chromium-win/editing/selection/caret-rtl-2-left-expected.txt	2012-01-26 22:24:10 UTC (rev 106043)
@@ -14,4 +14,5 @@
         RenderText {#text} at (0,0) size 38x19
           text run at (0,0) width 38: "PASS"
         RenderBR {BR} at (38,0) size 0x19
+        RenderText {#text} at (0,0) size 0x0
 caret: position 0 of child 0 {#text} of child 3 {DIV} of body

Modified: trunk/LayoutTests/platform/chromium-win/editing/selection/caret-rtl-expected.txt (106042 => 106043)


--- trunk/LayoutTests/platform/chromium-win/editing/selection/caret-rtl-expected.txt	2012-01-26 22:21:18 UTC (rev 106042)
+++ trunk/LayoutTests/platform/chromium-win/editing/selection/caret-rtl-expected.txt	2012-01-26 22:24:10 UTC (rev 106043)
@@ -14,4 +14,5 @@
         RenderText {#text} at (0,0) size 38x19
           text run at (0,0) width 38: "PASS"
         RenderBR {BR} at (38,0) size 0x19
+        RenderText {#text} at (0,0) size 0x0
 caret: position 7 of child 0 {#text} of child 3 {DIV} of body

Modified: trunk/LayoutTests/platform/chromium-win/editing/selection/caret-rtl-right-expected.txt (106042 => 106043)


--- trunk/LayoutTests/platform/chromium-win/editing/selection/caret-rtl-right-expected.txt	2012-01-26 22:21:18 UTC (rev 106042)
+++ trunk/LayoutTests/platform/chromium-win/editing/selection/caret-rtl-right-expected.txt	2012-01-26 22:24:10 UTC (rev 106043)
@@ -14,4 +14,5 @@
         RenderText {#text} at (0,0) size 38x19
           text run at (0,0) width 38: "PASS"
         RenderBR {BR} at (38,0) size 0x19
+        RenderText {#text} at (0,0) size 0x0
 caret: position 0 of child 0 {#text} of child 3 {DIV} of body

Modified: trunk/LayoutTests/platform/mac/editing/selection/caret-ltr-2-expected.txt (106042 => 106043)


--- trunk/LayoutTests/platform/mac/editing/selection/caret-ltr-2-expected.txt	2012-01-26 22:21:18 UTC (rev 106042)
+++ trunk/LayoutTests/platform/mac/editing/selection/caret-ltr-2-expected.txt	2012-01-26 22:24:10 UTC (rev 106043)
@@ -14,4 +14,5 @@
         RenderText {#text} at (0,0) size 39x18
           text run at (0,0) width 39: "PASS"
         RenderBR {BR} at (39,0) size 0x18
+        RenderText {#text} at (0,0) size 0x0
 caret: position 0 of child 0 {#text} of child 3 {DIV} of body

Modified: trunk/LayoutTests/platform/mac/editing/selection/caret-ltr-2-left-expected.txt (106042 => 106043)


--- trunk/LayoutTests/platform/mac/editing/selection/caret-ltr-2-left-expected.txt	2012-01-26 22:21:18 UTC (rev 106042)
+++ trunk/LayoutTests/platform/mac/editing/selection/caret-ltr-2-left-expected.txt	2012-01-26 22:24:10 UTC (rev 106043)
@@ -14,4 +14,5 @@
         RenderText {#text} at (0,0) size 39x18
           text run at (0,0) width 39: "PASS"
         RenderBR {BR} at (39,0) size 0x18
+        RenderText {#text} at (0,0) size 0x0
 caret: position 7 of child 0 {#text} of child 3 {DIV} of body

Modified: trunk/LayoutTests/platform/mac/editing/selection/caret-ltr-expected.txt (106042 => 106043)


--- trunk/LayoutTests/platform/mac/editing/selection/caret-ltr-expected.txt	2012-01-26 22:21:18 UTC (rev 106042)
+++ trunk/LayoutTests/platform/mac/editing/selection/caret-ltr-expected.txt	2012-01-26 22:24:10 UTC (rev 106043)
@@ -14,4 +14,5 @@
         RenderText {#text} at (0,0) size 39x18
           text run at (0,0) width 39: "PASS"
         RenderBR {BR} at (39,0) size 0x18
+        RenderText {#text} at (0,0) size 0x0
 caret: position 0 of child 0 {#text} of child 3 {DIV} of body

Modified: trunk/LayoutTests/platform/mac/editing/selection/caret-ltr-right-expected.txt (106042 => 106043)


--- trunk/LayoutTests/platform/mac/editing/selection/caret-ltr-right-expected.txt	2012-01-26 22:21:18 UTC (rev 106042)
+++ trunk/LayoutTests/platform/mac/editing/selection/caret-ltr-right-expected.txt	2012-01-26 22:24:10 UTC (rev 106043)
@@ -14,4 +14,5 @@
         RenderText {#text} at (0,0) size 39x18
           text run at (0,0) width 39: "PASS"
         RenderBR {BR} at (39,0) size 0x18
+        RenderText {#text} at (0,0) size 0x0
 caret: position 7 of child 0 {#text} of child 3 {DIV} of body

Modified: trunk/LayoutTests/platform/mac/editing/selection/caret-rtl-2-expected.txt (106042 => 106043)


--- trunk/LayoutTests/platform/mac/editing/selection/caret-rtl-2-expected.txt	2012-01-26 22:21:18 UTC (rev 106042)
+++ trunk/LayoutTests/platform/mac/editing/selection/caret-rtl-2-expected.txt	2012-01-26 22:24:10 UTC (rev 106043)
@@ -14,4 +14,5 @@
         RenderText {#text} at (0,0) size 39x18
           text run at (0,0) width 39: "PASS"
         RenderBR {BR} at (39,0) size 0x18
+        RenderText {#text} at (0,0) size 0x0
 caret: position 7 of child 0 {#text} of child 3 {DIV} of body

Modified: trunk/LayoutTests/platform/mac/editing/selection/caret-rtl-2-left-expected.txt (106042 => 106043)


--- trunk/LayoutTests/platform/mac/editing/selection/caret-rtl-2-left-expected.txt	2012-01-26 22:21:18 UTC (rev 106042)
+++ trunk/LayoutTests/platform/mac/editing/selection/caret-rtl-2-left-expected.txt	2012-01-26 22:24:10 UTC (rev 106043)
@@ -14,4 +14,5 @@
         RenderText {#text} at (0,0) size 39x18
           text run at (0,0) width 39: "PASS"
         RenderBR {BR} at (39,0) size 0x18
+        RenderText {#text} at (0,0) size 0x0
 caret: position 0 of child 0 {#text} of child 3 {DIV} of body

Modified: trunk/LayoutTests/platform/mac/editing/selection/caret-rtl-expected.txt (106042 => 106043)


--- trunk/LayoutTests/platform/mac/editing/selection/caret-rtl-expected.txt	2012-01-26 22:21:18 UTC (rev 106042)
+++ trunk/LayoutTests/platform/mac/editing/selection/caret-rtl-expected.txt	2012-01-26 22:24:10 UTC (rev 106043)
@@ -14,4 +14,5 @@
         RenderText {#text} at (0,0) size 39x18
           text run at (0,0) width 39: "PASS"
         RenderBR {BR} at (39,0) size 0x18
+        RenderText {#text} at (0,0) size 0x0
 caret: position 7 of child 0 {#text} of child 3 {DIV} of body

Modified: trunk/LayoutTests/platform/mac/editing/selection/caret-rtl-right-expected.txt (106042 => 106043)


--- trunk/LayoutTests/platform/mac/editing/selection/caret-rtl-right-expected.txt	2012-01-26 22:21:18 UTC (rev 106042)
+++ trunk/LayoutTests/platform/mac/editing/selection/caret-rtl-right-expected.txt	2012-01-26 22:24:10 UTC (rev 106043)
@@ -14,4 +14,5 @@
         RenderText {#text} at (0,0) size 39x18
           text run at (0,0) width 39: "PASS"
         RenderBR {BR} at (39,0) size 0x18
+        RenderText {#text} at (0,0) size 0x0
 caret: position 0 of child 0 {#text} of child 3 {DIV} of body

Modified: trunk/Source/WebCore/ChangeLog (106042 => 106043)


--- trunk/Source/WebCore/ChangeLog	2012-01-26 22:21:18 UTC (rev 106042)
+++ trunk/Source/WebCore/ChangeLog	2012-01-26 22:24:10 UTC (rev 106043)
@@ -1,3 +1,36 @@
+2012-01-26  James Robinson  <[email protected]>
+
+        We shouldn't synchronously update styles on all documents after running script
+        https://bugs.webkit.org/show_bug.cgi?id=46761
+
+        Reviewed by Simon Fraser.
+
+        Currently we call Document::updateStyleForAllDocuments() after invoking any event or timeout handler. This is
+        slow since it iterates over the entire document tree and defeats our recalcStyle timer batching. It is
+        unnecessary as any code that depends on styles or the render tree being up to date must call
+        updateStyleIfNeeded() on the document it is accessing.
+
+        The first reference I can find to this code is in r798 in the file WebCore/khtml/xml/domnode_impl.cpp. It's been
+        cargo culted forward ever since.
+
+        * bindings/ScriptControllerBase.cpp:
+        (WebCore::ScriptController::executeScript):
+        * bindings/js/ScheduledAction.cpp:
+        (WebCore::ScheduledAction::execute):
+        * bindings/js/ScriptController.cpp:
+        (WebCore::ScriptController::ScriptController):
+        (WebCore::ScriptController::executeScriptInWorld):
+        * bindings/js/ScriptController.h:
+        * bindings/v8/ScheduledAction.cpp:
+        (WebCore::ScheduledAction::execute):
+        * bindings/v8/ScriptController.cpp:
+        (WebCore::ScriptController::ScriptController):
+        * bindings/v8/ScriptController.h:
+        * dom/ScriptElement.cpp:
+        (WebCore::ScriptElement::executeScript):
+        * inspector/InspectorClient.cpp:
+        (WebCore::InspectorClient::doDispatchMessageOnFrontendPage):
+
 2012-01-26  Anders Carlsson  <[email protected]>
 
         Get rid of ScrollElasticityController::beginScrollGesture()

Modified: trunk/Source/WebCore/bindings/ScriptControllerBase.cpp (106042 => 106043)


--- trunk/Source/WebCore/bindings/ScriptControllerBase.cpp	2012-01-26 22:21:18 UTC (rev 106042)
+++ trunk/Source/WebCore/bindings/ScriptControllerBase.cpp	2012-01-26 22:24:10 UTC (rev 106043)
@@ -63,19 +63,9 @@
     if (!canExecuteScripts(AboutToExecuteScript) || isPaused())
         return ScriptValue();
 
-    bool wasInExecuteScript = m_inExecuteScript;
-    m_inExecuteScript = true;
-
     RefPtr<Frame> protect(m_frame); // Script execution can destroy the frame, and thus the ScriptController.
 
-    ScriptValue result = evaluate(sourceCode);
-
-    if (!wasInExecuteScript) {
-        m_inExecuteScript = false;
-        Document::updateStyleForAllDocuments();
-    }
-
-    return result;
+    return evaluate(sourceCode);
 }
 
 bool ScriptController::executeIfJavaScriptURL(const KURL& url, ShouldReplaceDocumentIfJavaScriptURL shouldReplaceDocumentIfJavaScriptURL)

Modified: trunk/Source/WebCore/bindings/js/ScheduledAction.cpp (106042 => 106043)


--- trunk/Source/WebCore/bindings/js/ScheduledAction.cpp	2012-01-26 22:21:18 UTC (rev 106042)
+++ trunk/Source/WebCore/bindings/js/ScheduledAction.cpp	2012-01-26 22:24:10 UTC (rev 106043)
@@ -126,10 +126,9 @@
     if (!frame || !frame->script()->canExecuteScripts(AboutToExecuteScript))
         return;
 
-    if (m_function) {
+    if (m_function)
         executeFunctionInContext(window, window->shell(), document);
-        Document::updateStyleForAllDocuments();
-    } else
+    else
         frame->script()->executeScriptInWorld(m_isolatedWorld.get(), m_code);
 }
 

Modified: trunk/Source/WebCore/bindings/js/ScriptController.cpp (106042 => 106043)


--- trunk/Source/WebCore/bindings/js/ScriptController.cpp	2012-01-26 22:21:18 UTC (rev 106042)
+++ trunk/Source/WebCore/bindings/js/ScriptController.cpp	2012-01-26 22:24:10 UTC (rev 106043)
@@ -64,7 +64,6 @@
 ScriptController::ScriptController(Frame* frame)
     : m_frame(frame)
     , m_sourceURL(0)
-    , m_inExecuteScript(false)
     , m_paused(false)
 #if ENABLE(NETSCAPE_PLUGIN_API)
     , m_windowScriptNPObject(0)
@@ -438,17 +437,7 @@
     if (!canExecuteScripts(AboutToExecuteScript) || isPaused())
         return ScriptValue();
 
-    bool wasInExecuteScript = m_inExecuteScript;
-    m_inExecuteScript = true;
-
-    ScriptValue result = evaluateInWorld(sourceCode, world);
-
-    if (!wasInExecuteScript) {
-        m_inExecuteScript = false;
-        Document::updateStyleForAllDocuments();
-    }
-
-    return result;
+    return evaluateInWorld(sourceCode, world);
 }
 
 } // namespace WebCore

Modified: trunk/Source/WebCore/bindings/js/ScriptController.h (106042 => 106043)


--- trunk/Source/WebCore/bindings/js/ScriptController.h	2012-01-26 22:21:18 UTC (rev 106042)
+++ trunk/Source/WebCore/bindings/js/ScriptController.h	2012-01-26 22:24:10 UTC (rev 106043)
@@ -168,8 +168,6 @@
     Frame* m_frame;
     const String* m_sourceURL;
 
-    bool m_inExecuteScript;
-
     bool m_paused;
 
     // The root object used for objects bound outside the context of a plugin, such

Modified: trunk/Source/WebCore/bindings/v8/ScheduledAction.cpp (106042 => 106043)


--- trunk/Source/WebCore/bindings/v8/ScheduledAction.cpp	2012-01-26 22:21:18 UTC (rev 106042)
+++ trunk/Source/WebCore/bindings/v8/ScheduledAction.cpp	2012-01-26 22:24:10 UTC (rev 106043)
@@ -126,10 +126,9 @@
     v8::Context::Scope scope(v8Context);
 
     // FIXME: Need to implement timeouts for preempting a long-running script.
-    if (!m_function.IsEmpty() && m_function->IsFunction()) {
+    if (!m_function.IsEmpty() && m_function->IsFunction())
         proxy->callFunction(v8::Persistent<v8::Function>::Cast(m_function), v8Context->Global(), m_argc, m_argv);
-        Document::updateStyleForAllDocuments();
-    } else
+    else
         proxy->evaluate(m_code, 0);
 
     // The 'proxy' may be invalid at this point since JS could have released the owning Frame.

Modified: trunk/Source/WebCore/bindings/v8/ScriptController.cpp (106042 => 106043)


--- trunk/Source/WebCore/bindings/v8/ScriptController.cpp	2012-01-26 22:21:18 UTC (rev 106042)
+++ trunk/Source/WebCore/bindings/v8/ScriptController.cpp	2012-01-26 22:24:10 UTC (rev 106043)
@@ -105,7 +105,6 @@
 ScriptController::ScriptController(Frame* frame)
     : m_frame(frame)
     , m_sourceURL(0)
-    , m_inExecuteScript(false)
     , m_paused(false)
     , m_proxy(adoptPtr(new V8Proxy(frame)))
 #if ENABLE(NETSCAPE_PLUGIN_API)

Modified: trunk/Source/WebCore/bindings/v8/ScriptController.h (106042 => 106043)


--- trunk/Source/WebCore/bindings/v8/ScriptController.h	2012-01-26 22:21:18 UTC (rev 106042)
+++ trunk/Source/WebCore/bindings/v8/ScriptController.h	2012-01-26 22:24:10 UTC (rev 106043)
@@ -187,8 +187,6 @@
     Frame* m_frame;
     const String* m_sourceURL;
 
-    bool m_inExecuteScript;
-
     bool m_paused;
 
     OwnPtr<V8Proxy> m_proxy;

Modified: trunk/Source/WebCore/dom/ScriptElement.cpp (106042 => 106043)


--- trunk/Source/WebCore/dom/ScriptElement.cpp	2012-01-26 22:21:18 UTC (rev 106042)
+++ trunk/Source/WebCore/dom/ScriptElement.cpp	2012-01-26 22:24:10 UTC (rev 106043)
@@ -287,8 +287,6 @@
             // Note: This is where the script is compiled and actually executed.
             frame->script()->evaluate(sourceCode);
         }
-
-        Document::updateStyleForAllDocuments();
     }
 }
 

Modified: trunk/Source/WebCore/inspector/InspectorClient.cpp (106042 => 106043)


--- trunk/Source/WebCore/inspector/InspectorClient.cpp	2012-01-26 22:21:18 UTC (rev 106042)
+++ trunk/Source/WebCore/inspector/InspectorClient.cpp	2012-01-26 22:24:10 UTC (rev 106043)
@@ -58,8 +58,7 @@
     dispatchToFrontend += message;
     dispatchToFrontend += ");";
 
-    // Do not call executeInWorld here since it will end up calling Document::updateStyleForAllDocuments().
-    // As a result we might re-enter CSSStyleSelector::styleForElement() which is terrible.
+    // FIXME: This should execute the script in the appropriate world.
     scriptController->evaluate(ScriptSourceCode(dispatchToFrontend));
     return true;
 }
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to