Make RenderIFrame::flattenFrame() return earlier, when frame flattening is disabled.
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 14 Mar 2012 18:29:32 +0000 (18:29 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 14 Mar 2012 18:29:32 +0000 (18:29 +0000)
https://bugs.webkit.org/show_bug.cgi?id=80301

Patch by Zalan Bujtas <zbujtas@gmail.com> on 2012-03-14
Reviewed by Antti Koivisto.

Reorganize RenderIFrame flattenFrame() code, so that it returns
earlier for the normal use case, when frame flattening is disabled.
It also removes leftover null check.

No new tests, since there's no new functionality.

* rendering/RenderIFrame.cpp:
(WebCore::RenderIFrame::flattenFrame):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@110718 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/rendering/RenderIFrame.cpp

index bc353f4..b46acd3 100644 (file)
@@ -1,3 +1,19 @@
+2012-03-14  Zalan Bujtas  <zbujtas@gmail.com>
+
+        Make RenderIFrame::flattenFrame() return earlier, when frame flattening is disabled.
+        https://bugs.webkit.org/show_bug.cgi?id=80301
+
+        Reviewed by Antti Koivisto.
+
+        Reorganize RenderIFrame flattenFrame() code, so that it returns
+        earlier for the normal use case, when frame flattening is disabled.
+        It also removes leftover null check.
+
+        No new tests, since there's no new functionality.
+
+        * rendering/RenderIFrame.cpp:
+        (WebCore::RenderIFrame::flattenFrame):
+
 2012-03-14  James Robinson  <jamesr@chromium.org>
 
         [chromium] Provide explicit polling API to check if the platform is capable of accelerated 2d canvas
index 743e3f4..19ca9c8 100644 (file)
@@ -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();