OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. All | 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. All |
3 * Rights Reserved. | 3 * Rights Reserved. |
4 * Copyright (C) 2008 Torch Mobile Inc. All rights reserved. | 4 * Copyright (C) 2008 Torch Mobile Inc. All rights reserved. |
5 * (http://www.torchmobile.com/) | 5 * (http://www.torchmobile.com/) |
6 * | 6 * |
7 * This library is free software; you can redistribute it and/or | 7 * This library is free software; you can redistribute it and/or |
8 * modify it under the terms of the GNU Library General Public | 8 * modify it under the terms of the GNU Library General Public |
9 * License as published by the Free Software Foundation; either | 9 * License as published by the Free Software Foundation; either |
10 * version 2 of the License, or (at your option) any later version. | 10 * version 2 of the License, or (at your option) any later version. |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
56 #include "platform/WebFrameScheduler.h" | 56 #include "platform/WebFrameScheduler.h" |
57 #include "platform/graphics/GraphicsLayer.h" | 57 #include "platform/graphics/GraphicsLayer.h" |
58 #include "platform/plugins/PluginData.h" | 58 #include "platform/plugins/PluginData.h" |
59 #include "public/platform/Platform.h" | 59 #include "public/platform/Platform.h" |
60 | 60 |
61 namespace blink { | 61 namespace blink { |
62 | 62 |
63 // Set of all live pages; includes internal Page objects that are | 63 // Set of all live pages; includes internal Page objects that are |
64 // not observable from scripts. | 64 // not observable from scripts. |
65 static Page::PageSet& allPages() { | 65 static Page::PageSet& allPages() { |
66 DEFINE_STATIC_LOCAL(Page::PageSet, allPages, ()); | 66 DEFINE_STATIC_LOCAL(Page::PageSet, pages, ()); |
67 return allPages; | 67 return pages; |
68 } | 68 } |
69 | 69 |
70 Page::PageSet& Page::ordinaryPages() { | 70 Page::PageSet& Page::ordinaryPages() { |
71 DEFINE_STATIC_LOCAL(Page::PageSet, ordinaryPages, ()); | 71 DEFINE_STATIC_LOCAL(Page::PageSet, pages, ()); |
72 return ordinaryPages; | 72 return pages; |
73 } | 73 } |
74 | 74 |
75 void Page::networkStateChanged(bool online) { | 75 void Page::networkStateChanged(bool online) { |
76 HeapVector<Member<LocalFrame>> frames; | 76 HeapVector<Member<LocalFrame>> frames; |
77 | 77 |
78 // Get all the frames of all the pages in all the page groups | 78 // Get all the frames of all the pages in all the page groups |
79 for (Page* page : allPages()) { | 79 for (Page* page : allPages()) { |
80 for (Frame* frame = page->mainFrame(); frame; | 80 for (Frame* frame = page->mainFrame(); frame; |
81 frame = frame->tree().traverseNext()) { | 81 frame = frame->tree().traverseNext()) { |
82 // FIXME: There is currently no way to dispatch events to out-of-process | 82 // FIXME: There is currently no way to dispatch events to out-of-process |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
143 | 143 |
144 ASSERT(!allPages().contains(this)); | 144 ASSERT(!allPages().contains(this)); |
145 allPages().add(this); | 145 allPages().add(this); |
146 } | 146 } |
147 | 147 |
148 Page::~Page() { | 148 Page::~Page() { |
149 // willBeDestroyed() must be called before Page destruction. | 149 // willBeDestroyed() must be called before Page destruction. |
150 ASSERT(!m_mainFrame); | 150 ASSERT(!m_mainFrame); |
151 } | 151 } |
152 | 152 |
153 void Page::closeSoon() { | |
154 // Make sure this Page can no longer be found by JS. | |
155 m_isClosing = true; | |
156 | |
157 // TODO(dcheng): Try to remove this in a followup, it's not obviously needed. | |
158 if (m_mainFrame->isLocalFrame()) | |
159 toLocalFrame(m_mainFrame)->loader().stopAllLoaders(); | |
kinuko
2016/12/21 13:38:17
Is the TODO the reason you replaced mainFrame->sto
dcheng
2016/12/22 08:39:11
Yes: we were calling generically through mainFrame
| |
160 | |
161 chromeClient().closeWindowSoon(); | |
162 } | |
163 | |
153 ViewportDescription Page::viewportDescription() const { | 164 ViewportDescription Page::viewportDescription() const { |
154 return mainFrame() && mainFrame()->isLocalFrame() && | 165 return mainFrame() && mainFrame()->isLocalFrame() && |
155 deprecatedLocalMainFrame()->document() | 166 deprecatedLocalMainFrame()->document() |
156 ? deprecatedLocalMainFrame()->document()->viewportDescription() | 167 ? deprecatedLocalMainFrame()->document()->viewportDescription() |
157 : ViewportDescription(); | 168 : ViewportDescription(); |
158 } | 169 } |
159 | 170 |
160 ScrollingCoordinator* Page::scrollingCoordinator() { | 171 ScrollingCoordinator* Page::scrollingCoordinator() { |
161 if (!m_scrollingCoordinator && m_settings->acceleratedCompositingEnabled()) | 172 if (!m_scrollingCoordinator && m_settings->acceleratedCompositingEnabled()) |
162 m_scrollingCoordinator = ScrollingCoordinator::create(this); | 173 m_scrollingCoordinator = ScrollingCoordinator::create(this); |
(...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
504 void Page::layerTreeViewInitialized(WebLayerTreeView& layerTreeView) { | 515 void Page::layerTreeViewInitialized(WebLayerTreeView& layerTreeView) { |
505 if (scrollingCoordinator()) | 516 if (scrollingCoordinator()) |
506 scrollingCoordinator()->layerTreeViewInitialized(layerTreeView); | 517 scrollingCoordinator()->layerTreeViewInitialized(layerTreeView); |
507 } | 518 } |
508 | 519 |
509 void Page::willCloseLayerTreeView(WebLayerTreeView& layerTreeView) { | 520 void Page::willCloseLayerTreeView(WebLayerTreeView& layerTreeView) { |
510 if (m_scrollingCoordinator) | 521 if (m_scrollingCoordinator) |
511 m_scrollingCoordinator->willCloseLayerTreeView(layerTreeView); | 522 m_scrollingCoordinator->willCloseLayerTreeView(layerTreeView); |
512 } | 523 } |
513 | 524 |
514 void Page::willBeClosed() { | |
515 ordinaryPages().remove(this); | |
516 } | |
517 | |
518 void Page::willBeDestroyed() { | 525 void Page::willBeDestroyed() { |
519 Frame* mainFrame = m_mainFrame; | 526 Frame* mainFrame = m_mainFrame; |
520 | 527 |
521 mainFrame->detach(FrameDetachType::Remove); | 528 mainFrame->detach(FrameDetachType::Remove); |
522 | 529 |
523 ASSERT(allPages().contains(this)); | 530 ASSERT(allPages().contains(this)); |
524 allPages().remove(this); | 531 allPages().remove(this); |
525 ordinaryPages().remove(this); | 532 ordinaryPages().remove(this); |
526 | 533 |
527 if (m_scrollingCoordinator) | 534 if (m_scrollingCoordinator) |
(...skipping 11 matching lines...) Expand all Loading... | |
539 : chromeClient(nullptr), | 546 : chromeClient(nullptr), |
540 contextMenuClient(nullptr), | 547 contextMenuClient(nullptr), |
541 editorClient(nullptr), | 548 editorClient(nullptr), |
542 spellCheckerClient(nullptr) {} | 549 spellCheckerClient(nullptr) {} |
543 | 550 |
544 Page::PageClients::~PageClients() {} | 551 Page::PageClients::~PageClients() {} |
545 | 552 |
546 template class CORE_TEMPLATE_EXPORT Supplement<Page>; | 553 template class CORE_TEMPLATE_EXPORT Supplement<Page>; |
547 | 554 |
548 } // namespace blink | 555 } // namespace blink |
OLD | NEW |