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

Unified Diff: Source/core/frame/LocalFrame.cpp

Issue 317493002: Change FrameTree to return Frames instead of LocalFrames. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: dcheng's comment addressed 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
« no previous file with comments | « Source/core/frame/FrameView.cpp ('k') | Source/core/loader/DocumentLoader.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/frame/LocalFrame.cpp
diff --git a/Source/core/frame/LocalFrame.cpp b/Source/core/frame/LocalFrame.cpp
index 6ccdde05b9880b0ec9e205fa58f53f45a175f950..93cbd21748652acd0f570ff6c3d29431a2fcefaa 100644
--- a/Source/core/frame/LocalFrame.cpp
+++ b/Source/core/frame/LocalFrame.cpp
@@ -74,18 +74,18 @@ using namespace HTMLNames;
static inline float parentPageZoomFactor(LocalFrame* frame)
{
- LocalFrame* parent = frame->tree().parent();
- if (!parent)
+ Frame* parent = frame->tree().parent();
+ if (!parent || !parent->isLocalFrame())
return 1;
- return parent->pageZoomFactor();
+ return toLocalFrame(parent)->pageZoomFactor();
}
static inline float parentTextZoomFactor(LocalFrame* frame)
{
- LocalFrame* parent = frame->tree().parent();
- if (!parent)
+ Frame* parent = frame->tree().parent();
+ if (!parent || !parent->isLocalFrame())
return 1;
- return parent->textZoomFactor();
+ return toLocalFrame(parent)->textZoomFactor();
}
inline LocalFrame::LocalFrame(FrameLoaderClient* client, FrameHost* host, FrameOwner* owner)
@@ -178,8 +178,10 @@ void LocalFrame::sendOrientationChangeEvent()
// Notify subframes.
Vector<RefPtr<LocalFrame> > childFrames;
- for (LocalFrame* child = tree().firstChild(); child; child = child->tree().nextSibling())
- childFrames.append(child);
+ for (Frame* child = tree().firstChild(); child; child = child->tree().nextSibling()) {
+ if (child->isLocalFrame())
+ childFrames.append(toLocalFrame(child));
+ }
for (size_t i = 0; i < childFrames.size(); ++i)
childFrames[i]->sendOrientationChangeEvent();
@@ -203,15 +205,17 @@ void LocalFrame::setPrinting(bool printing, const FloatSize& pageSize, const Flo
}
// Subframes of the one we're printing don't lay out to the page size.
- for (RefPtr<LocalFrame> child = tree().firstChild(); child; child = child->tree().nextSibling())
- child->setPrinting(printing, FloatSize(), FloatSize(), 0);
+ for (RefPtr<Frame> child = tree().firstChild(); child; child = child->tree().nextSibling()) {
+ if (child->isLocalFrame())
+ toLocalFrame(child.get())->setPrinting(printing, FloatSize(), FloatSize(), 0);
+ }
}
bool LocalFrame::shouldUsePrintingLayout() const
{
// Only top frame being printed should be fit to page size.
// Subframes should be constrained by parents only.
- return document()->printing() && (!tree().parent() || !tree().parent()->document()->printing());
+ return document()->printing() && (!tree().parent() || !tree().parent()->isLocalFrame() || !toLocalFrame(tree().parent())->document()->printing());
}
FloatSize LocalFrame::resizePageRectsKeepingRatio(const FloatSize& originalSize, const FloatSize& expectedSize)
@@ -248,8 +252,10 @@ void LocalFrame::didChangeVisibilityState()
document()->didChangeVisibilityState();
Vector<RefPtr<LocalFrame> > childFrames;
- for (LocalFrame* child = tree().firstChild(); child; child = child->tree().nextSibling())
- childFrames.append(child);
+ for (Frame* child = tree().firstChild(); child; child = child->tree().nextSibling()) {
+ if (child->isLocalFrame())
+ childFrames.append(toLocalFrame(child));
+ }
for (size_t i = 0; i < childFrames.size(); ++i)
childFrames[i]->didChangeVisibilityState();
@@ -260,8 +266,9 @@ void LocalFrame::willDetachFrameHost()
// We should never be detatching the page during a Layout.
RELEASE_ASSERT(!m_view || !m_view->isInPerformLayout());
- if (LocalFrame* parent = tree().parent())
- parent->loader().checkLoadComplete();
+ Frame* parent = tree().parent();
+ if (parent && parent->isLocalFrame())
+ toLocalFrame(parent)->loader().checkLoadComplete();
Frame::willDetachFrameHost();
script().clearScriptObjects();
@@ -425,8 +432,10 @@ String LocalFrame::layerTreeAsText(LayerTreeFlags flags) const
TextStream textStream;
textStream << localLayerTreeAsText(flags);
- for (LocalFrame* child = tree().firstChild(); child; child = child->tree().traverseNext(this)) {
- String childLayerTree = child->localLayerTreeAsText(flags);
+ for (Frame* child = tree().firstChild(); child; child = child->tree().traverseNext(this)) {
+ if (!child->isLocalFrame())
+ continue;
+ String childLayerTree = toLocalFrame(child)->localLayerTreeAsText(flags);
if (!childLayerTree.length())
continue;
@@ -496,8 +505,10 @@ void LocalFrame::setPageAndTextZoomFactors(float pageZoomFactor, float textZoomF
m_pageZoomFactor = pageZoomFactor;
m_textZoomFactor = textZoomFactor;
- for (RefPtr<LocalFrame> child = tree().firstChild(); child; child = child->tree().nextSibling())
- child->setPageAndTextZoomFactors(m_pageZoomFactor, m_textZoomFactor);
+ for (RefPtr<Frame> child = tree().firstChild(); child; child = child->tree().nextSibling()) {
+ if (child->isLocalFrame())
+ toLocalFrame(child.get())->setPageAndTextZoomFactors(m_pageZoomFactor, m_textZoomFactor);
+ }
document->setNeedsStyleRecalc(SubtreeStyleChange);
document->updateLayoutIgnorePendingStylesheets();
@@ -506,8 +517,10 @@ void LocalFrame::setPageAndTextZoomFactors(float pageZoomFactor, float textZoomF
void LocalFrame::deviceOrPageScaleFactorChanged()
{
document()->mediaQueryAffectingValueChanged();
- for (RefPtr<LocalFrame> child = tree().firstChild(); child; child = child->tree().nextSibling())
- child->deviceOrPageScaleFactorChanged();
+ for (RefPtr<Frame> child = tree().firstChild(); child; child = child->tree().nextSibling()) {
+ if (child->isLocalFrame())
+ toLocalFrame(child.get())->deviceOrPageScaleFactorChanged();
+ }
}
bool LocalFrame::isURLAllowed(const KURL& url) const
@@ -517,8 +530,10 @@ bool LocalFrame::isURLAllowed(const KURL& url) const
if (page()->subframeCount() >= Page::maxNumberOfFrames)
return false;
bool foundSelfReference = false;
- for (const LocalFrame* frame = this; frame; frame = frame->tree().parent()) {
- if (equalIgnoringFragmentIdentifier(frame->document()->url(), url)) {
+ for (const Frame* frame = this; frame; frame = frame->tree().parent()) {
+ if (!frame->isLocalFrame())
+ continue;
+ if (equalIgnoringFragmentIdentifier(toLocalFrame(frame)->document()->url(), url)) {
if (foundSelfReference)
return false;
foundSelfReference = true;
@@ -642,7 +657,7 @@ LocalFrame* LocalFrame::localFrameRoot()
{
LocalFrame* curFrame = this;
while (curFrame && curFrame->tree().parent() && curFrame->tree().parent()->isLocalFrame())
- curFrame = curFrame->tree().parent();
+ curFrame = toLocalFrame(curFrame->tree().parent());
return curFrame;
}
« no previous file with comments | « Source/core/frame/FrameView.cpp ('k') | Source/core/loader/DocumentLoader.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698