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

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

Issue 302213002: Convert page-level classes to handle RemoteFrames from FrameTree (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: bug fix Created 6 years, 7 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
« no previous file with comments | « Source/core/page/InjectedStyleSheets.cpp ('k') | Source/core/page/PageAnimator.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/page/Page.cpp
diff --git a/Source/core/page/Page.cpp b/Source/core/page/Page.cpp
index 29ea89b83a2a13bf5a9eda18cf2e16c3c946ef18..0c1f0fa1de23ca3fbd4134b2349ee01f1f11e438 100644
--- a/Source/core/page/Page.cpp
+++ b/Source/core/page/Page.cpp
@@ -87,8 +87,11 @@ void Page::networkStateChanged(bool online)
// Get all the frames of all the pages in all the page groups
HashSet<Page*>::iterator end = allPages().end();
for (HashSet<Page*>::iterator it = allPages().begin(); it != end; ++it) {
- for (LocalFrame* frame = (*it)->mainFrame(); frame; frame = frame->tree().traverseNext())
- frames.append(frame);
+ for (Frame* frame = (*it)->mainFrame(); frame; frame = frame->tree().traverseNext()) {
+ // FIXME: There is currently no way to dispatch events to out-of-process frames.
+ if (frame->isLocalFrame())
+ frames.append(toLocalFrame(frame));
+ }
InspectorInstrumentation::networkStateChanged(*it, online);
}
@@ -222,20 +225,26 @@ void Page::scheduleForcedStyleRecalcForAllPages()
{
HashSet<Page*>::iterator end = allPages().end();
for (HashSet<Page*>::iterator it = allPages().begin(); it != end; ++it)
- for (LocalFrame* frame = (*it)->mainFrame(); frame; frame = frame->tree().traverseNext())
- frame->document()->setNeedsStyleRecalc(SubtreeStyleChange);
+ for (Frame* frame = (*it)->mainFrame(); frame; frame = frame->tree().traverseNext()) {
+ if (frame->isLocalFrame())
+ toLocalFrame(frame)->document()->setNeedsStyleRecalc(SubtreeStyleChange);
+ }
}
void Page::setNeedsRecalcStyleInAllFrames()
{
- for (LocalFrame* frame = mainFrame(); frame; frame = frame->tree().traverseNext())
- frame->document()->styleResolverChanged();
+ for (Frame* frame = mainFrame(); frame; frame = frame->tree().traverseNext()) {
+ if (frame->isLocalFrame())
+ toLocalFrame(frame)->document()->styleResolverChanged();
+ }
}
void Page::setNeedsLayoutInAllFrames()
{
- for (LocalFrame* frame = mainFrame(); frame; frame = frame->tree().traverseNext()) {
- if (FrameView* view = frame->view()) {
+ for (Frame* frame = mainFrame(); frame; frame = frame->tree().traverseNext()) {
+ if (!frame->isLocalFrame())
+ continue;
+ if (FrameView* view = toLocalFrame(frame)->view()) {
view->setNeedsLayout();
view->scheduleRelayout();
}
@@ -262,9 +271,9 @@ void Page::refreshPlugins(bool reload)
if (!reload)
continue;
- for (LocalFrame* frame = (*it)->mainFrame(); frame; frame = frame->tree().traverseNext()) {
- if (frame->document()->containsPlugins())
- framesNeedingReload.append(frame);
+ for (Frame* frame = (*it)->mainFrame(); frame; frame = frame->tree().traverseNext()) {
+ if (frame->isLocalFrame() && toLocalFrame(frame)->document()->containsPlugins())
+ framesNeedingReload.append(toLocalFrame(frame));
}
}
@@ -281,7 +290,7 @@ PluginData* Page::pluginData() const
return m_pluginData.get();
}
-static LocalFrame* incrementFrame(LocalFrame* curr, bool forward, bool wrapFlag)
+static Frame* incrementFrame(Frame* curr, bool forward, bool wrapFlag)
{
return forward
? curr->tree().traverseNextWithWrap(wrapFlag)
@@ -293,9 +302,10 @@ void Page::unmarkAllTextMatches()
if (!mainFrame())
return;
- LocalFrame* frame = mainFrame();
+ Frame* frame = mainFrame();
do {
- frame->document()->markers().removeMarkers(DocumentMarker::TextMatch);
+ if (frame->isLocalFrame())
+ toLocalFrame(frame)->document()->markers().removeMarkers(DocumentMarker::TextMatch);
frame = incrementFrame(frame, true, false);
} while (frame);
}
@@ -311,8 +321,10 @@ void Page::setDefersLoading(bool defers)
return;
m_defersLoading = defers;
- for (LocalFrame* frame = mainFrame(); frame; frame = frame->tree().traverseNext())
- frame->loader().setDefersLoading(defers);
+ for (Frame* frame = mainFrame(); frame; frame = frame->tree().traverseNext()) {
+ if (frame->isLocalFrame())
+ toLocalFrame(frame)->loader().setDefersLoading(defers);
+ }
}
void Page::setPageScaleFactor(float scale, const IntPoint& origin)
@@ -365,8 +377,10 @@ void Page::allVisitedStateChanged()
HashSet<Page*>::iterator pagesEnd = ordinaryPages().end();
for (HashSet<Page*>::iterator it = ordinaryPages().begin(); it != pagesEnd; ++it) {
Page* page = *it;
- for (LocalFrame* frame = page->m_mainFrame.get(); frame; frame = frame->tree().traverseNext())
- frame->document()->visitedLinkState().invalidateStyleForAllLinks();
+ for (Frame* frame = page->m_mainFrame.get(); frame; frame = frame->tree().traverseNext()) {
+ if (frame->isLocalFrame())
+ toLocalFrame(frame)->document()->visitedLinkState().invalidateStyleForAllLinks();
+ }
}
}
@@ -375,8 +389,10 @@ 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 (LocalFrame* frame = page->m_mainFrame.get(); frame; frame = frame->tree().traverseNext())
- frame->document()->visitedLinkState().invalidateStyleForLink(linkHash);
+ for (Frame* frame = page->m_mainFrame.get(); frame; frame = frame->tree().traverseNext()) {
+ if (frame->isLocalFrame())
+ toLocalFrame(frame)->document()->visitedLinkState().invalidateStyleForLink(linkHash);
+ }
}
}
@@ -393,9 +409,9 @@ void Page::setTimerAlignmentInterval(double interval)
return;
m_timerAlignmentInterval = interval;
- for (LocalFrame* frame = mainFrame(); frame; frame = frame->tree().traverseNextWithWrap(false)) {
- if (frame->document())
- frame->document()->didChangeTimerAlignmentInterval();
+ for (Frame* frame = mainFrame(); frame; frame = frame->tree().traverseNextWithWrap(false)) {
+ if (frame->isLocalFrame() && toLocalFrame(frame)->document())
+ toLocalFrame(frame)->document()->didChangeTimerAlignmentInterval();
}
}
@@ -410,7 +426,7 @@ void Page::checkSubframeCountConsistency() const
ASSERT(m_subframeCount >= 0);
int subframeCount = 0;
- for (LocalFrame* frame = mainFrame(); frame; frame = frame->tree().traverseNext())
+ for (Frame* frame = mainFrame(); frame; frame = frame->tree().traverseNext())
++subframeCount;
ASSERT(m_subframeCount + 1 == subframeCount);
@@ -470,8 +486,10 @@ void Page::settingsChanged(SettingsDelegate::ChangeType changeType)
setNeedsRecalcStyleInAllFrames();
break;
case SettingsDelegate::DNSPrefetchingChange:
- for (LocalFrame* frame = mainFrame(); frame; frame = frame->tree().traverseNext())
- frame->document()->initDNSPrefetch();
+ for (Frame* frame = mainFrame(); frame; frame = frame->tree().traverseNext()) {
+ if (frame->isLocalFrame())
+ toLocalFrame(frame)->document()->initDNSPrefetch();
+ }
break;
case SettingsDelegate::MultisamplingChange: {
WillBeHeapHashSet<RawPtrWillBeWeakMember<MultisamplingChangedObserver> >::iterator stop = m_multisamplingChangedObservers.end();
@@ -480,9 +498,11 @@ void Page::settingsChanged(SettingsDelegate::ChangeType changeType)
break;
}
case SettingsDelegate::ImageLoadingChange:
- for (LocalFrame* frame = mainFrame(); frame; frame = frame->tree().traverseNext()) {
- frame->document()->fetcher()->setImagesEnabled(settings().imagesEnabled());
- frame->document()->fetcher()->setAutoLoadImages(settings().loadsImagesAutomatically());
+ for (Frame* frame = mainFrame(); frame; frame = frame->tree().traverseNext()) {
+ if (frame->isLocalFrame()) {
+ toLocalFrame(frame)->document()->fetcher()->setImagesEnabled(settings().imagesEnabled());
+ toLocalFrame(frame)->document()->fetcher()->setAutoLoadImages(settings().loadsImagesAutomatically());
+ }
}
break;
case SettingsDelegate::TextAutosizingChange:
@@ -491,8 +511,10 @@ void Page::settingsChanged(SettingsDelegate::ChangeType changeType)
if (FastTextAutosizer* textAutosizer = mainFrame()->document()->fastTextAutosizer()) {
textAutosizer->updatePageInfoInAllFrames();
} else {
- for (LocalFrame* frame = mainFrame(); frame; frame = frame->tree().traverseNext()) {
- if (TextAutosizer* textAutosizer = frame->document()->textAutosizer())
+ for (Frame* frame = mainFrame(); frame; frame = frame->tree().traverseNext()) {
+ if (!frame->isLocalFrame())
+ continue;
+ if (TextAutosizer* textAutosizer = toLocalFrame(frame)->document()->textAutosizer())
textAutosizer->recalculateMultipliers();
}
// TextAutosizing updates RenderStyle during layout phase (via TextAutosizer::processSubtree).
@@ -504,8 +526,10 @@ void Page::settingsChanged(SettingsDelegate::ChangeType changeType)
m_inspectorController->scriptsEnabled(settings().scriptEnabled());
break;
case SettingsDelegate::FontFamilyChange:
- for (LocalFrame* frame = mainFrame(); frame; frame = frame->tree().traverseNext())
- frame->document()->styleEngine()->updateGenericFontFamilySettings();
+ for (Frame* frame = mainFrame(); frame; frame = frame->tree().traverseNext()) {
+ if (frame->isLocalFrame())
+ toLocalFrame(frame)->document()->styleEngine()->updateGenericFontFamilySettings();
+ }
setNeedsRecalcStyleInAllFrames();
break;
case SettingsDelegate::AcceleratedCompositingChange:
@@ -516,8 +540,10 @@ void Page::settingsChanged(SettingsDelegate::ChangeType changeType)
void Page::updateAcceleratedCompositingSettings()
{
- for (LocalFrame* frame = mainFrame(); frame; frame = frame->tree().traverseNext()) {
- if (FrameView* view = frame->view())
+ for (Frame* frame = mainFrame(); frame; frame = frame->tree().traverseNext()) {
+ if (!frame->isLocalFrame())
+ continue;
+ if (FrameView* view = toLocalFrame(frame)->view())
view->updateAcceleratedCompositingSettings();
}
}
@@ -560,8 +586,10 @@ void Page::willBeDestroyed()
if (ordinaryPages().contains(this))
ordinaryPages().remove(this);
- for (LocalFrame* frame = mainFrame(); frame; frame = frame->tree().traverseNext())
- frame->loader().frameDetached();
+ for (Frame* frame = mainFrame(); frame; frame = frame->tree().traverseNext()) {
+ if (frame->isLocalFrame())
+ toLocalFrame(frame)->loader().frameDetached();
+ }
if (m_scrollingCoordinator)
m_scrollingCoordinator->willBeDestroyed();
« no previous file with comments | « Source/core/page/InjectedStyleSheets.cpp ('k') | Source/core/page/PageAnimator.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698