summaryrefslogtreecommitdiff
path: root/Source/WebCore/rendering/RenderIFrame.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2012-05-07 11:21:11 +0200
committerSimon Hausmann <simon.hausmann@nokia.com>2012-05-07 11:21:11 +0200
commit2cf6c8816a73e0132bd8fa3b509d62d7c51b6e47 (patch)
tree988e8c5b116dd0466244ae2fe5af8ee9be926d76 /Source/WebCore/rendering/RenderIFrame.cpp
parentdd91e772430dc294e3bf478c119ef8d43c0a3358 (diff)
downloadqtwebkit-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.cpp24
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();