Chromium Code Reviews| Index: third_party/WebKit/Source/core/page/Page.cpp |
| diff --git a/third_party/WebKit/Source/core/page/Page.cpp b/third_party/WebKit/Source/core/page/Page.cpp |
| index 0fb749217d8d06e6504136175415ac9bfb220106..49b054f6f50e87d2a90b8310bfdead61725c6342 100644 |
| --- a/third_party/WebKit/Source/core/page/Page.cpp |
| +++ b/third_party/WebKit/Source/core/page/Page.cpp |
| @@ -63,13 +63,13 @@ namespace blink { |
| // Set of all live pages; includes internal Page objects that are |
| // not observable from scripts. |
| static Page::PageSet& allPages() { |
| - DEFINE_STATIC_LOCAL(Page::PageSet, allPages, ()); |
| - return allPages; |
| + DEFINE_STATIC_LOCAL(Page::PageSet, pages, ()); |
| + return pages; |
| } |
| Page::PageSet& Page::ordinaryPages() { |
| - DEFINE_STATIC_LOCAL(Page::PageSet, ordinaryPages, ()); |
| - return ordinaryPages; |
| + DEFINE_STATIC_LOCAL(Page::PageSet, pages, ()); |
| + return pages; |
| } |
| void Page::networkStateChanged(bool online) { |
| @@ -150,6 +150,17 @@ Page::~Page() { |
| ASSERT(!m_mainFrame); |
| } |
| +void Page::closeSoon() { |
| + // Make sure this Page can no longer be found by JS. |
| + m_isClosing = true; |
| + |
| + // TODO(dcheng): Try to remove this in a followup, it's not obviously needed. |
| + if (m_mainFrame->isLocalFrame()) |
| + 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
|
| + |
| + chromeClient().closeWindowSoon(); |
| +} |
| + |
| ViewportDescription Page::viewportDescription() const { |
| return mainFrame() && mainFrame()->isLocalFrame() && |
| deprecatedLocalMainFrame()->document() |
| @@ -511,10 +522,6 @@ void Page::willCloseLayerTreeView(WebLayerTreeView& layerTreeView) { |
| m_scrollingCoordinator->willCloseLayerTreeView(layerTreeView); |
| } |
| -void Page::willBeClosed() { |
| - ordinaryPages().remove(this); |
| -} |
| - |
| void Page::willBeDestroyed() { |
| Frame* mainFrame = m_mainFrame; |