Title: [191081] trunk/Source/_javascript_Core
Revision
191081
Author
commit-qu...@webkit.org
Date
2015-10-14 20:53:49 -0700 (Wed, 14 Oct 2015)

Log Message

REGRESSION: Web Inspector hangs for many seconds when trying to reload page
https://bugs.webkit.org/show_bug.cgi?id=150065

Patch by Joseph Pecoraro <pecor...@apple.com> on 2015-10-14
Reviewed by Mark Lam.

When debugging Web Pages, the same Debugger (PageScriptDebugServer) is
attached to each of the different JSGlobalObjects on the page. This could
mean multiple frames or isolated scripting contexts. Therefore we should
only need to send sourceParsed events to the frontend for scripts within
this new JSGlobalObject, not any JSGlobalObject that has this debugger.

* debugger/Debugger.cpp:
(JSC::Debugger::attach):
Only send sourceParsed events for Scripts in this JSGlobalObject.

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (191080 => 191081)


--- trunk/Source/_javascript_Core/ChangeLog	2015-10-15 01:21:19 UTC (rev 191080)
+++ trunk/Source/_javascript_Core/ChangeLog	2015-10-15 03:53:49 UTC (rev 191081)
@@ -1,5 +1,22 @@
 2015-10-14  Joseph Pecoraro  <pecor...@apple.com>
 
+        REGRESSION: Web Inspector hangs for many seconds when trying to reload page
+        https://bugs.webkit.org/show_bug.cgi?id=150065
+
+        Reviewed by Mark Lam.
+
+        When debugging Web Pages, the same Debugger (PageScriptDebugServer) is
+        attached to each of the different JSGlobalObjects on the page. This could
+        mean multiple frames or isolated scripting contexts. Therefore we should
+        only need to send sourceParsed events to the frontend for scripts within
+        this new JSGlobalObject, not any JSGlobalObject that has this debugger.
+
+        * debugger/Debugger.cpp:
+        (JSC::Debugger::attach):
+        Only send sourceParsed events for Scripts in this JSGlobalObject.
+
+2015-10-14  Joseph Pecoraro  <pecor...@apple.com>
+
         Remove unimplemented methods in CopiedSpace
         https://bugs.webkit.org/show_bug.cgi?id=150143
 

Modified: trunk/Source/_javascript_Core/debugger/Debugger.cpp (191080 => 191081)


--- trunk/Source/_javascript_Core/debugger/Debugger.cpp	2015-10-15 01:21:19 UTC (rev 191080)
+++ trunk/Source/_javascript_Core/debugger/Debugger.cpp	2015-10-15 03:53:49 UTC (rev 191081)
@@ -41,10 +41,10 @@
 
 struct GatherSourceProviders : public MarkedBlock::VoidFunctor {
     HashSet<SourceProvider*> sourceProviders;
-    JSC::Debugger* m_debugger;
+    JSGlobalObject* m_globalObject;
 
-    GatherSourceProviders(JSC::Debugger* debugger)
-        : m_debugger(debugger) { }
+    GatherSourceProviders(JSGlobalObject* globalObject)
+        : m_globalObject(globalObject) { }
 
     IterationStatus operator()(JSCell* cell)
     {
@@ -52,7 +52,7 @@
         if (!function)
             return IterationStatus::Continue;
 
-        if (function->scope()->globalObject()->debugger() != m_debugger)
+        if (function->scope()->globalObject() != m_globalObject)
             return IterationStatus::Continue;
 
         if (!function->executable()->isFunctionExecutable())
@@ -143,8 +143,8 @@
     globalObject->setDebugger(this);
     m_globalObjects.add(globalObject);
 
-    // Call sourceParsed() because it will execute _javascript_ in the inspector.
-    GatherSourceProviders gatherSourceProviders(this);
+    // Call sourceParsed because it will execute _javascript_ in the inspector.
+    GatherSourceProviders gatherSourceProviders(globalObject);
     {
         HeapIterationScope iterationScope(m_vm.heap);
         m_vm.heap.objectSpace().forEachLiveCell(iterationScope, gatherSourceProviders);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to