| Index: third_party/WebKit/Source/core/inspector/InspectorSession.cpp
|
| diff --git a/third_party/WebKit/Source/core/inspector/InspectorSession.cpp b/third_party/WebKit/Source/core/inspector/InspectorSession.cpp
|
| index 2e30e895f5030f09c87311a3d03f86bdc1f5260e..4957a490f7bf3a4ed95b43ef1d21d7a2a63d2da9 100644
|
| --- a/third_party/WebKit/Source/core/inspector/InspectorSession.cpp
|
| +++ b/third_party/WebKit/Source/core/inspector/InspectorSession.cpp
|
| @@ -6,6 +6,7 @@
|
|
|
| #include "bindings/core/v8/ScriptController.h"
|
| #include "core/frame/LocalFrame.h"
|
| +#include "core/frame/Settings.h"
|
| #include "core/frame/UseCounter.h"
|
| #include "core/inspector/InspectedFrames.h"
|
| #include "core/inspector/InspectorBaseAgent.h"
|
| @@ -75,7 +76,6 @@ void InspectorSession::dispose()
|
| m_agents[i - 1]->dispose();
|
| m_agents.clear();
|
| m_v8Session.reset();
|
| - DCHECK(!isInstrumenting());
|
| InspectorInstrumentation::frontendDeleted();
|
| }
|
|
|
| @@ -129,38 +129,22 @@ void InspectorSession::flushProtocolNotifications()
|
| m_notificationQueue.clear();
|
| }
|
|
|
| -void InspectorSession::scriptExecutionBlockedByCSP(const String& directiveText)
|
| +void InspectorSession::runtimeEnabled()
|
| {
|
| - DCHECK(isInstrumenting());
|
| - std::unique_ptr<protocol::DictionaryValue> directive = protocol::DictionaryValue::create();
|
| - directive->setString("directiveText", directiveText);
|
| - m_v8Session->breakProgramOnException(protocol::Debugger::Paused::ReasonEnum::CSPViolation, std::move(directive));
|
| -}
|
| -
|
| -void InspectorSession::didStartProvisionalLoad(LocalFrame* frame)
|
| -{
|
| - DCHECK(isInstrumenting());
|
| - if (m_inspectedFrames && m_inspectedFrames->root() == frame)
|
| - m_v8Session->resume();
|
| -}
|
| -
|
| -void InspectorSession::didClearDocumentOfWindowObject(LocalFrame* frame)
|
| -{
|
| - DCHECK(isInstrumenting());
|
| - frame->script().initializeMainWorld();
|
| -}
|
| -
|
| -void InspectorSession::startInstrumenting()
|
| -{
|
| - DCHECK(!isInstrumenting());
|
| - m_instrumentingAgents->addInspectorSession(this);
|
| - forceContextsInAllFrames();
|
| + if (!m_inspectedFrames)
|
| + return;
|
| + m_inspectedFrames->root()->settings()->setForceMainWorldInitialization(true);
|
| + if (m_inspectedFrames->root()->loader().stateMachine()->committedFirstRealDocumentLoad()) {
|
| + for (const LocalFrame* frame : *m_inspectedFrames)
|
| + frame->script().initializeMainWorld();
|
| + }
|
| }
|
|
|
| -void InspectorSession::stopInstrumenting()
|
| +void InspectorSession::runtimeDisabled()
|
| {
|
| - DCHECK(isInstrumenting());
|
| - m_instrumentingAgents->removeInspectorSession(this);
|
| + if (!m_inspectedFrames)
|
| + return;
|
| + m_inspectedFrames->root()->settings()->setForceMainWorldInitialization(false);
|
| }
|
|
|
| void InspectorSession::resumeStartup()
|
| @@ -193,21 +177,6 @@ void InspectorSession::consoleCleared()
|
| m_client->consoleCleared();
|
| }
|
|
|
| -void InspectorSession::forceContextsInAllFrames()
|
| -{
|
| - if (!m_inspectedFrames)
|
| - return;
|
| - if (!m_inspectedFrames->root()->loader().stateMachine()->committedFirstRealDocumentLoad())
|
| - return;
|
| - for (const LocalFrame* frame : *m_inspectedFrames)
|
| - frame->script().initializeMainWorld();
|
| -}
|
| -
|
| -bool InspectorSession::isInstrumenting()
|
| -{
|
| - return m_instrumentingAgents->inspectorSessions().contains(this);
|
| -}
|
| -
|
| DEFINE_TRACE(InspectorSession)
|
| {
|
| visitor->trace(m_instrumentingAgents);
|
|
|