JSDOMWindowShell* ScriptController::initScript(DOMWrapperWorld& world) { ASSERT(!m_windowShells.contains(&world)); JSLockHolder lock(world.vm()); JSDOMWindowShell* windowShell = createWindowShell(world); windowShell->window()->updateDocument(); if (m_frame.document()) { bool shouldBypassMainWorldContentSecurityPolicy = !world.isNormal(); if (shouldBypassMainWorldContentSecurityPolicy) windowShell->window()->setEvalEnabled(true); else windowShell->window()->setEvalEnabled(m_frame.document()->contentSecurityPolicy()->allowEval(0, shouldBypassMainWorldContentSecurityPolicy, ContentSecurityPolicy::ReportingStatus::SuppressReport), m_frame.document()->contentSecurityPolicy()->evalDisabledErrorMessage()); } if (Page* page = m_frame.page()) { attachDebugger(windowShell, page->debugger()); windowShell->window()->setProfileGroup(page->group().identifier()); windowShell->window()->setConsoleClient(&page->console()); } m_frame.loader().dispatchDidClearWindowObjectInWorld(world); return windowShell; }
JSDOMWindowShell* ScriptController::initScript(DOMWrapperWorld* world) { ASSERT(!m_windowShells.contains(world)); JSLock lock(SilenceAssertionsOnly); JSDOMWindowShell* windowShell = createWindowShell(world); windowShell->window()->updateDocument(); if (Page* page = m_frame->page()) { attachDebugger(windowShell, page->debugger()); windowShell->window()->setProfileGroup(page->group().identifier()); } m_frame->loader()->dispatchDidClearWindowObjectInWorld(world); return windowShell; }
JSDOMWindowShell* ScriptController::initScript(DOMWrapperWorld* world) { ASSERT(!m_windowShells.contains(world)); JSLockHolder lock(world->globalData()); JSDOMWindowShell* windowShell = createWindowShell(world); windowShell->window()->updateDocument(); if (m_frame->document()) windowShell->window()->setEvalEnabled(m_frame->document()->contentSecurityPolicy()->allowEval(0, ContentSecurityPolicy::SuppressReport)); if (Page* page = m_frame->page()) { attachDebugger(windowShell, page->debugger()); windowShell->window()->setProfileGroup(page->group().identifier()); } m_frame->loader()->dispatchDidClearWindowObjectInWorld(world); return windowShell; }
JSDOMWindowShell* ScriptController::initScript(DOMWrapperWorld& world) { ASSERT(!m_windowShells.contains(&world)); JSLockHolder lock(world.vm()); JSDOMWindowShell& windowShell = createWindowShell(world); windowShell.window()->updateDocument(); if (Document* document = m_frame.document()) document->contentSecurityPolicy()->didCreateWindowShell(windowShell); if (Page* page = m_frame.page()) { attachDebugger(&windowShell, page->debugger()); windowShell.window()->setProfileGroup(page->group().identifier()); windowShell.window()->setConsoleClient(&page->console()); } m_frame.loader().dispatchDidClearWindowObjectInWorld(world); return &windowShell; }