Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org> | 2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org> |
| 3 * 1999 Lars Knoll <knoll@kde.org> | 3 * 1999 Lars Knoll <knoll@kde.org> |
| 4 * 1999 Antti Koivisto <koivisto@kde.org> | 4 * 1999 Antti Koivisto <koivisto@kde.org> |
| 5 * 2000 Simon Hausmann <hausmann@kde.org> | 5 * 2000 Simon Hausmann <hausmann@kde.org> |
| 6 * 2000 Stefan Schimanski <1Stein@gmx.de> | 6 * 2000 Stefan Schimanski <1Stein@gmx.de> |
| 7 * 2001 George Staikos <staikos@kde.org> | 7 * 2001 George Staikos <staikos@kde.org> |
| 8 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r ights reserved. | 8 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r ights reserved. |
| 9 * Copyright (C) 2005 Alexey Proskuryakov <ap@nypop.com> | 9 * Copyright (C) 2005 Alexey Proskuryakov <ap@nypop.com> |
| 10 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) | 10 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 86 Frame* parent = frame->tree().parent(); | 86 Frame* parent = frame->tree().parent(); |
| 87 if (!parent || !parent->isLocalFrame()) | 87 if (!parent || !parent->isLocalFrame()) |
| 88 return 1; | 88 return 1; |
| 89 return toLocalFrame(parent)->textZoomFactor(); | 89 return toLocalFrame(parent)->textZoomFactor(); |
| 90 } | 90 } |
| 91 | 91 |
| 92 inline LocalFrame::LocalFrame(FrameLoaderClient* client, FrameHost* host, FrameO wner* owner) | 92 inline LocalFrame::LocalFrame(FrameLoaderClient* client, FrameHost* host, FrameO wner* owner) |
| 93 : Frame(client, host, owner) | 93 : Frame(client, host, owner) |
| 94 , m_loader(this) | 94 , m_loader(this) |
| 95 , m_navigationScheduler(this) | 95 , m_navigationScheduler(this) |
| 96 , m_script(adoptPtr(new ScriptController(this))) | 96 , m_script(ScriptController::create(this)) |
| 97 , m_editor(Editor::create(*this)) | 97 , m_editor(Editor::create(*this)) |
| 98 , m_spellChecker(SpellChecker::create(*this)) | 98 , m_spellChecker(SpellChecker::create(*this)) |
| 99 , m_selection(FrameSelection::create(this)) | 99 , m_selection(FrameSelection::create(this)) |
| 100 , m_eventHandler(adoptPtrWillBeNoop(new EventHandler(this))) | 100 , m_eventHandler(adoptPtrWillBeNoop(new EventHandler(this))) |
| 101 , m_console(FrameConsole::create(*this)) | 101 , m_console(FrameConsole::create(*this)) |
| 102 , m_inputMethodController(InputMethodController::create(*this)) | 102 , m_inputMethodController(InputMethodController::create(*this)) |
| 103 , m_pageZoomFactor(parentPageZoomFactor(this)) | 103 , m_pageZoomFactor(parentPageZoomFactor(this)) |
| 104 , m_textZoomFactor(parentTextZoomFactor(this)) | 104 , m_textZoomFactor(parentTextZoomFactor(this)) |
| 105 , m_inViewSourceMode(false) | 105 , m_inViewSourceMode(false) |
| 106 { | 106 { |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 138 (*it)->frameDestroyed(); | 138 (*it)->frameDestroyed(); |
| 139 #endif | 139 #endif |
| 140 } | 140 } |
| 141 | 141 |
| 142 void LocalFrame::trace(Visitor* visitor) | 142 void LocalFrame::trace(Visitor* visitor) |
| 143 { | 143 { |
| 144 #if ENABLE(OILPAN) | 144 #if ENABLE(OILPAN) |
| 145 visitor->trace(m_destructionObservers); | 145 visitor->trace(m_destructionObservers); |
| 146 visitor->trace(m_loader); | 146 visitor->trace(m_loader); |
| 147 visitor->trace(m_navigationScheduler); | 147 visitor->trace(m_navigationScheduler); |
| 148 visitor->trace(m_view); | |
| 148 visitor->trace(m_pagePopupOwner); | 149 visitor->trace(m_pagePopupOwner); |
| 149 visitor->trace(m_editor); | 150 visitor->trace(m_editor); |
| 150 visitor->trace(m_spellChecker); | 151 visitor->trace(m_spellChecker); |
| 151 visitor->trace(m_selection); | 152 visitor->trace(m_selection); |
| 152 visitor->trace(m_eventHandler); | 153 visitor->trace(m_eventHandler); |
| 153 visitor->trace(m_console); | 154 visitor->trace(m_console); |
| 154 visitor->trace(m_inputMethodController); | 155 visitor->trace(m_inputMethodController); |
| 155 HeapSupplementable<LocalFrame>::trace(visitor); | 156 HeapSupplementable<LocalFrame>::trace(visitor); |
| 156 #endif | 157 #endif |
| 157 Frame::trace(visitor); | 158 Frame::trace(visitor); |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 189 { | 190 { |
| 190 // We detach the FrameView's custom scroll bars as early as | 191 // We detach the FrameView's custom scroll bars as early as |
| 191 // possible to prevent m_doc->detach() from messing with the view | 192 // possible to prevent m_doc->detach() from messing with the view |
| 192 // such that its scroll bars won't be torn down. | 193 // such that its scroll bars won't be torn down. |
| 193 // | 194 // |
| 194 // FIXME: We should revisit this. | 195 // FIXME: We should revisit this. |
| 195 if (m_view) | 196 if (m_view) |
| 196 m_view->prepareForDetach(); | 197 m_view->prepareForDetach(); |
| 197 } | 198 } |
| 198 | 199 |
| 199 void LocalFrame::setView(PassRefPtr<FrameView> view) | 200 void LocalFrame::setView(PassRefPtrWillBeRawPtr<FrameView> view) |
| 200 { | 201 { |
| 201 detachView(); | 202 detachView(); |
| 202 | 203 |
| 203 // Prepare for destruction now, so any unload event handlers get run and the LocalDOMWindow is | 204 // Prepare for destruction now, so any unload event handlers get run and the LocalDOMWindow is |
| 204 // notified. If we wait until the view is destroyed, then things won't be ho oked up enough for | 205 // notified. If we wait until the view is destroyed, then things won't be ho oked up enough for |
| 205 // these calls to work. | 206 // these calls to work. |
| 206 if (!view && document() && document()->isActive()) { | 207 if (!view && document() && document()->isActive()) { |
| 207 // FIXME: We don't call willRemove here. Why is that OK? | 208 // FIXME: We don't call willRemove here. Why is that OK? |
| 208 document()->prepareForDestruction(); | 209 document()->prepareForDestruction(); |
| 209 } | 210 } |
| 210 | 211 |
| 211 eventHandler().clear(); | 212 eventHandler().clear(); |
| 212 | 213 |
| 214 if (m_view && !view) | |
| 215 m_view->dispose(); | |
|
haraken
2014/09/26 09:19:25
Just help me understand: Why is it OK to promptly
sof
2014/09/28 08:05:53
A key question. I think it would be safer if the d
sof
2014/09/28 08:20:32
Forgot to say -- no tests exercise code paths that
| |
| 216 | |
| 213 m_view = view; | 217 m_view = view; |
| 214 | 218 |
| 215 if (m_view && isMainFrame()) { | 219 if (m_view && isMainFrame()) { |
| 216 if (settings()->pinchVirtualViewportEnabled()) | 220 if (settings()->pinchVirtualViewportEnabled()) |
| 217 m_host->pinchViewport().mainFrameDidChangeSize(); | 221 m_host->pinchViewport().mainFrameDidChangeSize(); |
| 218 else | 222 else |
| 219 m_view->setVisibleContentScaleFactor(page()->pageScaleFactor()); | 223 m_view->setVisibleContentScaleFactor(page()->pageScaleFactor()); |
| 220 } | 224 } |
| 221 } | 225 } |
| 222 | 226 |
| (...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 430 ASSERT(this); | 434 ASSERT(this); |
| 431 ASSERT(page()); | 435 ASSERT(page()); |
| 432 | 436 |
| 433 bool isLocalRoot = this->isLocalRoot(); | 437 bool isLocalRoot = this->isLocalRoot(); |
| 434 | 438 |
| 435 if (isLocalRoot && view()) | 439 if (isLocalRoot && view()) |
| 436 view()->setParentVisible(false); | 440 view()->setParentVisible(false); |
| 437 | 441 |
| 438 setView(nullptr); | 442 setView(nullptr); |
| 439 | 443 |
| 440 RefPtr<FrameView> frameView; | 444 RefPtrWillBeRawPtr<FrameView> frameView = nullptr; |
| 441 if (isLocalRoot) { | 445 if (isLocalRoot) { |
| 442 frameView = FrameView::create(this, viewportSize); | 446 frameView = FrameView::create(this, viewportSize); |
| 443 | 447 |
| 444 // The layout size is set by WebViewImpl to support @viewport | 448 // The layout size is set by WebViewImpl to support @viewport |
| 445 frameView->setLayoutSizeFixedToFrameSize(false); | 449 frameView->setLayoutSizeFixedToFrameSize(false); |
| 446 } else | 450 } else |
| 447 frameView = FrameView::create(this); | 451 frameView = FrameView::create(this); |
| 448 | 452 |
| 449 frameView->setScrollbarModes(horizontalScrollbarMode, verticalScrollbarMode, horizontalLock, verticalLock); | 453 frameView->setScrollbarModes(horizontalScrollbarMode, verticalScrollbarMode, horizontalLock, verticalLock); |
| 450 | 454 |
| (...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 730 | 734 |
| 731 return curFrame; | 735 return curFrame; |
| 732 } | 736 } |
| 733 | 737 |
| 734 void LocalFrame::setPagePopupOwner(Element& owner) | 738 void LocalFrame::setPagePopupOwner(Element& owner) |
| 735 { | 739 { |
| 736 m_pagePopupOwner = &owner; | 740 m_pagePopupOwner = &owner; |
| 737 } | 741 } |
| 738 | 742 |
| 739 } // namespace blink | 743 } // namespace blink |
| OLD | NEW |