diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-05-07 11:21:11 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-05-07 11:21:11 +0200 |
commit | 2cf6c8816a73e0132bd8fa3b509d62d7c51b6e47 (patch) | |
tree | 988e8c5b116dd0466244ae2fe5af8ee9be926d76 /Source/WebCore/rendering/RenderIFrame.cpp | |
parent | dd91e772430dc294e3bf478c119ef8d43c0a3358 (diff) | |
download | qtwebkit-2cf6c8816a73e0132bd8fa3b509d62d7c51b6e47.tar.gz |
Imported WebKit commit 7e538425aa020340619e927792f3d895061fb54b (http://svn.webkit.org/repository/webkit/trunk@116286)
Diffstat (limited to 'Source/WebCore/rendering/RenderIFrame.cpp')
-rw-r--r-- | Source/WebCore/rendering/RenderIFrame.cpp | 24 |
1 files changed, 10 insertions, 14 deletions
diff --git a/Source/WebCore/rendering/RenderIFrame.cpp b/Source/WebCore/rendering/RenderIFrame.cpp index 743e3f4c2..ffd50aeb8 100644 --- a/Source/WebCore/rendering/RenderIFrame.cpp +++ b/Source/WebCore/rendering/RenderIFrame.cpp @@ -57,7 +57,7 @@ void RenderIFrame::computeLogicalHeight() if (!view) return; int border = borderTop() + borderBottom(); - setHeight(max(height(), view->contentsHeight() + border)); + setHeight(max<LayoutUnit>(height(), view->contentsHeight() + border)); } } @@ -75,7 +75,7 @@ void RenderIFrame::computeLogicalWidth() if (!view) return; LayoutUnit border = borderLeft() + borderRight(); - setWidth(max(width(), view->contentsWidth() + border)); + setWidth(max<LayoutUnit>(width(), view->contentsWidth() + border)); } } @@ -85,24 +85,20 @@ bool RenderIFrame::flattenFrame() return false; HTMLIFrameElement* element = static_cast<HTMLIFrameElement*>(node()); - bool isScrollable = element->scrollingMode() != ScrollbarAlwaysOff; - - if (style()->width().isFixed() && style()->height().isFixed()) { - if (!isScrollable) - return false; - if (style()->width().value() <= 0 || style()->height().value() <= 0) - return false; - } - Frame* frame = element->document()->frame(); + bool enabled = frame && frame->settings() && frame->settings()->frameFlatteningEnabled(); if (!enabled || !frame->page()) return false; - FrameView* view = frame->page()->mainFrame()->view(); - if (!view) - return false; + if (style()->width().isFixed() && style()->height().isFixed()) { + // Do not flatten iframes with scrolling="no". + if (element->scrollingMode() == ScrollbarAlwaysOff) + return false; + if (style()->width().value() <= 0 || style()->height().value() <= 0) + return false; + } // Do not flatten offscreen inner frames during frame flattening, as flattening might make them visible. IntRect boundingRect = absoluteBoundingBoxRectIgnoringTransforms(); |