void ScriptCachedFrameData::restore(Frame* frame) { JSLockHolder lock(JSDOMWindowBase::commonJSGlobalData()); ScriptController* scriptController = frame->script(); ScriptController::ShellMap& windowShells = scriptController->m_windowShells; ScriptController::ShellMap::iterator windowShellsEnd = windowShells.end(); for (ScriptController::ShellMap::iterator iter = windowShells.begin(); iter != windowShellsEnd; ++iter) { DOMWrapperWorld* world = iter->first.get(); JSDOMWindowShell* windowShell = iter->second.get(); if (JSDOMWindow* window = m_windows.get(world).get()) windowShell->setWindow(window->globalData(), window); else { DOMWindow* domWindow = frame->document()->domWindow(); if (windowShell->window()->impl() == domWindow) continue; windowShell->setWindow(domWindow); if (Page* page = frame->page()) { scriptController->attachDebugger(windowShell, page->debugger()); windowShell->window()->setProfileGroup(page->group().identifier()); } } } }
ScriptCachedFrameData::ScriptCachedFrameData(Frame* frame) { JSLock lock(SilenceAssertionsOnly); ScriptController* scriptController = frame->script(); if (scriptController->haveWindowShell()) { m_window = scriptController->windowShell()->window(); scriptController->attachDebugger(0); } }
ScriptCachedFrameData::ScriptCachedFrameData(Frame* frame) { JSLockHolder lock(JSDOMWindowBase::commonJSGlobalData()); ScriptController* scriptController = frame->script(); ScriptController::ShellMap& windowShells = scriptController->m_windowShells; ScriptController::ShellMap::iterator windowShellsEnd = windowShells.end(); for (ScriptController::ShellMap::iterator iter = windowShells.begin(); iter != windowShellsEnd; ++iter) { JSDOMWindow* window = iter->second->window(); m_windows.add(iter->first.get(), Strong<JSDOMWindow>(window->globalData(), window)); } scriptController->attachDebugger(0); }
ScriptCachedFrameData::ScriptCachedFrameData(Frame* frame) : m_domWindow(0) { JSLock lock(SilenceAssertionsOnly); ScriptController* scriptController = frame->script(); ScriptController::ShellMap& windowShells = scriptController->m_windowShells; ScriptController::ShellMap::iterator windowShellsEnd = windowShells.end(); for (ScriptController::ShellMap::iterator iter = windowShells.begin(); iter != windowShellsEnd; ++iter) { JSDOMWindow* window = iter->second->window(); m_windows.add(iter->first.get(), window); m_domWindow = window->impl(); } scriptController->attachDebugger(0); }
void ScriptCachedPageData::restore(Page* page) { Frame* mainFrame = page->mainFrame(); JSLock lock(false); ScriptController* scriptController = mainFrame->script(); if (scriptController->haveWindowShell()) { JSDOMWindowShell* windowShell = scriptController->windowShell(); if (m_window) { windowShell->setWindow(m_window.get()); } else { windowShell->setWindow(mainFrame->domWindow()); scriptController->attachDebugger(page->debugger()); windowShell->window()->setProfileGroup(page->group().identifier()); } } }
void ScriptCachedFrameData::restore(Frame* frame) { Page* page = frame->page(); JSLock lock(SilenceAssertionsOnly); ScriptController* scriptController = frame->script(); if (scriptController->haveWindowShell()) { JSDOMWindowShell* windowShell = scriptController->windowShell(); if (m_window) { windowShell->setWindow(m_window.get()); } else { windowShell->setWindow(frame->domWindow()); scriptController->attachDebugger(page->debugger()); windowShell->window()->setProfileGroup(page->group().identifier()); } } }
void CachedPage::restore(Page* page) { ASSERT(m_document->view() == m_view); Frame* mainFrame = page->mainFrame(); JSLock lock(false); ScriptController* proxy = mainFrame->script(); if (proxy->haveWindowShell()) { JSDOMWindowShell* windowShell = proxy->windowShell(); if (m_window) { windowShell->setWindow(m_window.get()); windowShell->window()->resumeTimeouts(m_pausedTimeouts); } else { windowShell->setWindow(mainFrame->domWindow()); proxy->attachDebugger(page->debugger()); windowShell->window()->setProfileGroup(page->group().identifier()); } } #if ENABLE(SVG) if (m_document && m_document->svgExtensions()) m_document->accessSVGExtensions()->unpauseAnimations(); #endif mainFrame->animation()->resumeAnimations(m_document.get()); mainFrame->eventHandler()->setMousePressNode(mousePressNode()); // Restore the focus appearance for the focused element. // FIXME: Right now we don't support pages w/ frames in the b/f cache. This may need to be tweaked when we add support for that. Document* focusedDocument = page->focusController()->focusedOrMainFrame()->document(); if (Node* node = focusedDocument->focusedNode()) { if (node->isElementNode()) static_cast<Element*>(node)->updateFocusAppearance(true); } }
void ScriptCachedFrameData::restore(Frame* frame) { JSLock lock(SilenceAssertionsOnly); ScriptController* scriptController = frame->script(); ScriptController::ShellMap& windowShells = scriptController->m_windowShells; ScriptController::ShellMap::iterator windowShellsEnd = windowShells.end(); for (ScriptController::ShellMap::iterator iter = windowShells.begin(); iter != windowShellsEnd; ++iter) { DOMWrapperWorld* world = iter->first.get(); JSDOMWindowShell* windowShell = iter->second.get(); if (JSDOMWindow* window = m_windows.get(world)) windowShell->setWindow(window->globalData(), window); else { windowShell->setWindow(frame->domWindow()); if (Page* page = frame->page()) { scriptController->attachDebugger(windowShell, page->debugger()); windowShell->window()->setProfileGroup(page->group().identifier()); } } } }