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();
    }
}