Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1139)

Unified Diff: Source/core/page/Page.cpp

Issue 338993003: Cleanup various WebView/WebFrame APIs to properly handle remote frames. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Remove unneeded header. Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/page/Page.cpp
diff --git a/Source/core/page/Page.cpp b/Source/core/page/Page.cpp
index 38062ea89b384ce3888f78fa34ab4b64ce0b2be5..2956f711c0b999ab9a708c5b8c7a0623aba2503f 100644
--- a/Source/core/page/Page.cpp
+++ b/Source/core/page/Page.cpp
@@ -124,6 +124,7 @@ Page::Page(PageClients& pageClients)
, m_inspectorController(InspectorController::create(this, pageClients.inspectorClient))
, m_pointerLockController(PointerLockController::create(this))
, m_undoStack(UndoStack::create())
+ , m_mainFrame(0)
, m_backForwardClient(pageClients.backForwardClient)
, m_editorClient(pageClients.editorClient)
, m_spellCheckerClient(pageClients.spellCheckerClient)
@@ -197,7 +198,7 @@ PassRefPtrWillBeRawPtr<ClientRectList> Page::nonFastScrollableRects(const LocalF
return ClientRectList::create(quads);
}
-void Page::setMainFrame(PassRefPtr<Frame> mainFrame)
+void Page::setMainFrame(Frame* mainFrame)
{
ASSERT(!m_mainFrame); // Should only be called during initialization
m_mainFrame = mainFrame;
@@ -382,7 +383,7 @@ void Page::allVisitedStateChanged()
HashSet<Page*>::iterator pagesEnd = ordinaryPages().end();
for (HashSet<Page*>::iterator it = ordinaryPages().begin(); it != pagesEnd; ++it) {
Page* page = *it;
- for (Frame* frame = page->m_mainFrame.get(); frame; frame = frame->tree().traverseNext()) {
+ for (Frame* frame = page->m_mainFrame; frame; frame = frame->tree().traverseNext()) {
if (frame->isLocalFrame())
toLocalFrame(frame)->document()->visitedLinkState().invalidateStyleForAllLinks();
}
@@ -394,7 +395,7 @@ void Page::visitedStateChanged(LinkHash linkHash)
HashSet<Page*>::iterator pagesEnd = ordinaryPages().end();
for (HashSet<Page*>::iterator it = ordinaryPages().begin(); it != pagesEnd; ++it) {
Page* page = *it;
- for (Frame* frame = page->m_mainFrame.get(); frame; frame = frame->tree().traverseNext()) {
+ for (Frame* frame = page->m_mainFrame; frame; frame = frame->tree().traverseNext()) {
if (frame->isLocalFrame())
toLocalFrame(frame)->document()->visitedLinkState().invalidateStyleForLink(linkHash);
}
@@ -603,17 +604,19 @@ void Page::trace(Visitor* visitor)
void Page::willBeDestroyed()
{
- if (m_mainFrame && m_mainFrame->isLocalFrame())
- deprecatedLocalMainFrame()->loader().frameDetached();
+ RefPtr<Frame> mainFrame = m_mainFrame;
+
+ if (mainFrame->isLocalFrame())
+ toLocalFrame(mainFrame.get())->loader().frameDetached();
// Disable all agents prior to resetting the frame view.
m_inspectorController->willBeDestroyed();
- if (m_mainFrame->isLocalFrame()) {
- toLocalFrame(m_mainFrame.get())->setView(nullptr);
+ if (mainFrame->isLocalFrame()) {
+ toLocalFrame(mainFrame.get())->setView(nullptr);
} else {
ASSERT(m_mainFrame->isRemoteFrame());
- toRemoteFrame(m_mainFrame.get())->setView(nullptr);
+ toRemoteFrame(mainFrame.get())->setView(nullptr);
}
allPages().remove(this);
@@ -628,7 +631,7 @@ void Page::willBeDestroyed()
#endif
m_chrome->willBeDestroyed();
- m_mainFrame.clear();
+ m_mainFrame = 0;
if (m_validationMessageClient)
m_validationMessageClient->willBeDestroyed();
WillBeHeapSupplementable<Page>::willBeDestroyed();

Powered by Google App Engine
This is Rietveld 408576698