Changeset 189834 in webkit
- Timestamp:
- Sep 15, 2015 6:03:35 PM (9 years ago)
- Location:
- trunk/Source
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r189822 r189834 1 2015-09-15 Joseph Pecoraro <pecoraro@apple.com> 2 3 Web Inspector: Paused Debugger prevents page reload 4 https://bugs.webkit.org/show_bug.cgi?id=148174 5 6 Reviewed by Brian Burg. 7 8 * debugger/Debugger.h: 9 (JSC::Debugger::suppressAllPauses): 10 (JSC::Debugger::setSuppressAllPauses): 11 * debugger/Debugger.cpp: 12 (JSC::Debugger::Debugger): 13 (JSC::Debugger::pauseIfNeeded): 14 * inspector/agents/InspectorDebuggerAgent.h: 15 * inspector/agents/InspectorDebuggerAgent.cpp: 16 (Inspector::InspectorDebuggerAgent::setSuppressAllPauses): 17 Provide a way to suppress pauses. 18 1 19 2015-09-15 Sukolsak Sakshuwong <sukolsak@gmail.com> 2 20 -
trunk/Source/JavaScriptCore/debugger/Debugger.cpp
r189123 r189834 119 119 , m_hasHandlerForExceptionCallback(false) 120 120 , m_isInWorkerThread(isInWorkerThread) 121 , m_suppressAllPauses(false) 121 122 , m_steppingMode(SteppingModeDisabled) 122 123 , m_reasonForPause(NotPaused) … … 586 587 return; 587 588 589 if (m_suppressAllPauses) 590 return; 591 588 592 JSGlobalObject* vmEntryGlobalObject = callFrame->vmEntryGlobalObject(); 589 593 if (!needPauseHandling(vmEntryGlobalObject)) -
trunk/Source/JavaScriptCore/debugger/Debugger.h
r188841 r189834 111 111 bool isStepping() const { return m_steppingMode == SteppingModeEnabled; } 112 112 113 bool suppressAllPauses() const { return m_suppressAllPauses; } 114 void setSuppressAllPauses(bool suppress) { m_suppressAllPauses = suppress; } 115 113 116 virtual void sourceParsed(ExecState*, SourceProvider*, int errorLineNumber, const WTF::String& errorMessage) = 0; 114 117 … … 197 200 bool m_hasHandlerForExceptionCallback : 1; 198 201 bool m_isInWorkerThread : 1; 202 bool m_suppressAllPauses : 1; 199 203 unsigned m_steppingMode : 1; // SteppingMode 200 204 -
trunk/Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.cpp
r189438 r189834 133 133 { 134 134 return scriptDebugServer().isPaused(); 135 } 136 137 void InspectorDebuggerAgent::setSuppressAllPauses(bool suppress) 138 { 139 scriptDebugServer().setSuppressAllPauses(suppress); 135 140 } 136 141 -
trunk/Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.h
r189438 r189834 89 89 90 90 bool isPaused(); 91 91 92 void setSuppressAllPauses(bool); 93 92 94 void handleConsoleAssert(const String& message); 93 95 -
trunk/Source/WebCore/ChangeLog
r189833 r189834 1 2015-09-15 Joseph Pecoraro <pecoraro@apple.com> 2 3 Web Inspector: Paused Debugger prevents page reload 4 https://bugs.webkit.org/show_bug.cgi?id=148174 5 6 Reviewed by Brian Burg. 7 8 When navigating the page while paused, suppress any pausing until the page 9 has completed navigation. If not paused and navigating, you can still pause 10 in pagehide and unload handlers or other late page events. 11 12 Could not write a reliable test for this at the moment. 13 InspectorTest.reloadPage has multiple issues with the output, 14 so I'll investigate making reload tests more reliable later. 15 16 * inspector/InspectorController.h: 17 * inspector/InspectorController.cpp: 18 (WebCore::InspectorController::resume): Deleted. 19 * loader/FrameLoader.cpp: 20 (WebCore::FrameLoader::continueLoadAfterNavigationPolicy): 21 We now use existing InspectorInstrumentation functions instead of a method 22 on InspectorController during load. In dropping the method InspectorController 23 can drop a member variable no longer used. 24 25 * inspector/InspectorInstrumentation.h: 26 (WebCore::InspectorInstrumentation::willStartProvisionalLoad): 27 Add a new instrumentation hook. 28 29 * inspector/InspectorInstrumentation.cpp: 30 (WebCore::InspectorInstrumentation::willStartProvisionalLoadImpl): 31 (WebCore::InspectorInstrumentation::didCommitLoadImpl): 32 When starting or completing main frame navigations, let the PageDebuggerAgent do some work. 33 34 * inspector/PageDebuggerAgent.h: 35 * inspector/PageDebuggerAgent.cpp: 36 (WebCore::PageDebuggerAgent::mainFrameStartedLoading): 37 (WebCore::PageDebuggerAgent::mainFrameStoppedLoading): 38 (WebCore::PageDebuggerAgent::mainFrameNavigated): 39 Suppress pausing if navigating while paused. Otherwise behave as normal. 40 1 41 2015-09-15 Brent Fulgham <bfulgham@apple.com> 2 42 -
trunk/Source/WebCore/inspector/InspectorController.cpp
r189654 r189834 164 164 165 165 auto debuggerAgentPtr = std::make_unique<PageDebuggerAgent>(pageContext, pageAgent, m_overlay.get()); 166 m_debuggerAgent = debuggerAgentPtr.get();166 PageDebuggerAgent* debuggerAgent = debuggerAgentPtr.get(); 167 167 m_agents.append(WTF::move(debuggerAgentPtr)); 168 168 169 auto domDebuggerAgentPtr = std::make_unique<InspectorDOMDebuggerAgent>(pageContext, m_domAgent, m_debuggerAgent);169 auto domDebuggerAgentPtr = std::make_unique<InspectorDOMDebuggerAgent>(pageContext, m_domAgent, debuggerAgent); 170 170 m_domDebuggerAgent = domDebuggerAgentPtr.get(); 171 171 m_agents.append(WTF::move(domDebuggerAgentPtr)); … … 185 185 } 186 186 187 runtimeAgent->setScriptDebugServer(& m_debuggerAgent->scriptDebugServer());188 m_timelineAgent->setPageScriptDebugServer(& m_debuggerAgent->scriptDebugServer());187 runtimeAgent->setScriptDebugServer(&debuggerAgent->scriptDebugServer()); 188 m_timelineAgent->setPageScriptDebugServer(&debuggerAgent->scriptDebugServer()); 189 189 } 190 190 … … 424 424 } 425 425 426 void InspectorController::resume()427 {428 if (m_debuggerAgent) {429 ErrorString unused;430 m_debuggerAgent->resume(unused);431 }432 }433 434 426 bool InspectorController::developerExtrasEnabled() const 435 427 { -
trunk/Source/WebCore/inspector/InspectorController.h
r189375 r189834 122 122 WEBCORE_EXPORT void setProfilerEnabled(bool); 123 123 124 void resume();125 126 124 InspectorClient* inspectorClient() const { return m_inspectorClient; } 127 125 InspectorPageAgent* pageAgent() const { return m_pageAgent; } … … 157 155 InspectorResourceAgent* m_resourceAgent { nullptr }; 158 156 InspectorPageAgent* m_pageAgent { nullptr }; 159 PageDebuggerAgent* m_debuggerAgent { nullptr };160 157 InspectorDOMDebuggerAgent* m_domDebuggerAgent { nullptr }; 161 158 InspectorTimelineAgent* m_timelineAgent { nullptr }; -
trunk/Source/WebCore/inspector/InspectorInstrumentation.cpp
r189438 r189834 799 799 if (InspectorLayerTreeAgent* layerTreeAgent = instrumentingAgents.inspectorLayerTreeAgent()) 800 800 layerTreeAgent->reset(); 801 802 if (PageDebuggerAgent* pageDebuggerAgent = instrumentingAgents.pageDebuggerAgent()) 803 pageDebuggerAgent->mainFrameNavigated(); 801 804 } 802 805 … … 829 832 void InspectorInstrumentation::frameStartedLoadingImpl(InstrumentingAgents& instrumentingAgents, Frame& frame) 830 833 { 834 if (frame.isMainFrame()) { 835 if (PageDebuggerAgent* pageDebuggerAgent = instrumentingAgents.pageDebuggerAgent()) 836 pageDebuggerAgent->mainFrameStartedLoading(); 837 } 838 831 839 if (InspectorPageAgent* inspectorPageAgent = instrumentingAgents.inspectorPageAgent()) 832 840 inspectorPageAgent->frameStartedLoading(frame); … … 835 843 void InspectorInstrumentation::frameStoppedLoadingImpl(InstrumentingAgents& instrumentingAgents, Frame& frame) 836 844 { 845 if (frame.isMainFrame()) { 846 if (PageDebuggerAgent* pageDebuggerAgent = instrumentingAgents.pageDebuggerAgent()) 847 pageDebuggerAgent->mainFrameStoppedLoading(); 848 } 849 837 850 if (InspectorPageAgent* inspectorPageAgent = instrumentingAgents.inspectorPageAgent()) 838 851 inspectorPageAgent->frameStoppedLoading(frame); -
trunk/Source/WebCore/inspector/PageDebuggerAgent.cpp
r189438 r189834 148 148 } 149 149 150 void PageDebuggerAgent::mainFrameStartedLoading() 151 { 152 if (isPaused()) { 153 setSuppressAllPauses(true); 154 ErrorString unused; 155 resume(unused); 156 } 157 } 158 159 void PageDebuggerAgent::mainFrameStoppedLoading() 160 { 161 setSuppressAllPauses(false); 162 } 163 164 void PageDebuggerAgent::mainFrameNavigated() 165 { 166 setSuppressAllPauses(false); 167 } 168 150 169 } // namespace WebCore -
trunk/Source/WebCore/inspector/PageDebuggerAgent.h
r189438 r189834 52 52 void didClearMainFrameWindowObject(); 53 53 54 void mainFrameStartedLoading(); 55 void mainFrameStoppedLoading(); 56 void mainFrameNavigated(); 57 54 58 virtual PageScriptDebugServer& scriptDebugServer() override; 55 59 -
trunk/Source/WebCore/loader/FrameLoader.cpp
r189252 r189834 2984 2984 return; 2985 2985 2986 if (Page* page = m_frame.page()) {2987 if (m_frame.isMainFrame())2988 page->inspectorController().resume();2989 }2990 2991 2986 setProvisionalDocumentLoader(m_policyDocumentLoader.get()); 2992 2987 m_loadType = type;
Note: See TracChangeset
for help on using the changeset viewer.