void PageRuntimeAgent::didCreateScriptContext(LocalFrame* frame, ScriptState* scriptState, SecurityOrigin* origin, int worldId) { if (!m_enabled) return; ASSERT(frontend()); bool isMainWorld = worldId == MainWorldId; String originString = origin ? origin->toRawString() : ""; String frameId = IdentifiersFactory::frameId(frame); reportExecutionContext(scriptState, isMainWorld, originString, frameId); }
void PageRuntimeAgent::reportExecutionContextCreation() { Vector<std::pair<ScriptState*, SecurityOrigin*>> isolatedContexts; for (LocalFrame* frame : *m_inspectedFrames) { if (!frame->script().canExecuteScripts(NotAboutToExecuteScript)) continue; String frameId = IdentifiersFactory::frameId(frame); // Ensure execution context is created. // If initializeMainWorld returns true, then is registered by didCreateScriptContext if (!frame->script().initializeMainWorld()) reportExecutionContext(ScriptState::forMainWorld(frame), true, "", frameId); frame->script().collectIsolatedContexts(isolatedContexts); if (isolatedContexts.isEmpty()) continue; for (const auto& pair : isolatedContexts) { String originString = pair.second ? pair.second->toRawString() : ""; reportExecutionContext(pair.first, false, originString, frameId); } isolatedContexts.clear(); } }