void RemoteWebInspectorUI::windowObjectCleared() { if (m_frontendHost) m_frontendHost->disconnectClient(); m_frontendHost = InspectorFrontendHost::create(this, m_page.corePage()); ScriptGlobalObject::set(*execStateFromPage(mainThreadNormalWorld(), m_page.corePage()), ASCIILiteral("InspectorFrontendHost"), *m_frontendHost); }
void InspectorFrontendClientLocal::windowObjectCleared() { if (m_frontendHost) m_frontendHost->disconnectClient(); JSC::ExecState* frontendExecState = execStateFromPage(debuggerWorld(), m_frontendPage); m_frontendHost = InspectorFrontendHost::create(this, m_frontendPage); ScriptGlobalObject::set(frontendExecState, "InspectorFrontendHost", m_frontendHost.get()); }
JSC::ExecState* ScriptExecutionContext::execState() { if (is<Document>(*this)) { Document& document = downcast<Document>(*this); return execStateFromPage(mainThreadNormalWorld(), document.page()); } WorkerGlobalScope* workerGlobalScope = static_cast<WorkerGlobalScope*>(this); return execStateFromWorkerGlobalScope(workerGlobalScope); }
void InspectorFrontendHost::showContextMenu(Event* event, const Vector<ContextMenuItem>& items) { if (!event) return; ASSERT(m_frontendPage); JSC::ExecState* frontendExecState = execStateFromPage(debuggerWorld(), m_frontendPage); ScriptObject frontendApiObject; if (!ScriptGlobalObject::get(frontendExecState, "InspectorFrontendAPI", frontendApiObject)) { ASSERT_NOT_REACHED(); return; } RefPtr<FrontendMenuProvider> menuProvider = FrontendMenuProvider::create(this, frontendApiObject, items); m_frontendPage->contextMenuController().showContextMenu(event, menuProvider); m_menuProvider = menuProvider.get(); }
void InspectorFrontendHost::showContextMenu(Event* event, const Vector<ContextMenuItem>& items) { if (!event) return; ASSERT(m_frontendPage); auto& state = *execStateFromPage(debuggerWorld(), m_frontendPage); JSC::JSObject* frontendApiObject; if (!ScriptGlobalObject::get(state, "InspectorFrontendAPI", frontendApiObject)) { ASSERT_NOT_REACHED(); return; } auto menuProvider = FrontendMenuProvider::create(this, { &state, frontendApiObject }, items); m_frontendPage->contextMenuController().showContextMenu(event, menuProvider.ptr()); m_menuProvider = menuProvider.ptr(); }