Index: Source/core/rendering/RenderFullScreen.cpp |
diff --git a/Source/core/rendering/RenderFullScreen.cpp b/Source/core/rendering/RenderFullScreen.cpp |
index 17de280b271aa57575bcc120c45129da3836cbc0..27f4fa2954a71dcfd2376bfd11b847a63874aa55 100644 |
--- a/Source/core/rendering/RenderFullScreen.cpp |
+++ b/Source/core/rendering/RenderFullScreen.cpp |
@@ -26,8 +26,14 @@ |
#include "core/rendering/RenderFullScreen.h" |
#include "core/dom/Fullscreen.h" |
+#include "core/frame/FrameHost.h" |
+#include "core/frame/Settings.h" |
+#include "core/page/Chrome.h" |
+#include "core/page/Page.h" |
#include "core/rendering/RenderBlockFlow.h" |
+#include "public/platform/WebScreenInfo.h" |
+ |
using namespace blink; |
class RenderFullScreenPlaceholder final : public RenderBlockFlow { |
@@ -88,7 +94,7 @@ void RenderFullScreen::willBeDestroyed() |
RenderFlexibleBox::willBeDestroyed(); |
} |
-static PassRefPtr<RenderStyle> createFullScreenStyle() |
+void RenderFullScreen::updateStyle() |
{ |
RefPtr<RenderStyle> fullscreenStyle = RenderStyle::createDefaultStyle(); |
@@ -104,14 +110,20 @@ static PassRefPtr<RenderStyle> createFullScreenStyle() |
fullscreenStyle->setFlexDirection(FlowColumn); |
fullscreenStyle->setPosition(FixedPosition); |
- fullscreenStyle->setWidth(Length(100.0, Percent)); |
- fullscreenStyle->setHeight(Length(100.0, Percent)); |
fullscreenStyle->setLeft(Length(0, blink::Fixed)); |
fullscreenStyle->setTop(Length(0, blink::Fixed)); |
+ if (document().page()->settings().pinchVirtualViewportEnabled()) { |
+ IntSize viewportSize = document().page()->frameHost().pinchViewport().size(); |
+ fullscreenStyle->setWidth(Length(viewportSize.width(), blink::Fixed)); |
+ fullscreenStyle->setHeight(Length(viewportSize.height(), blink::Fixed)); |
+ } else { |
+ fullscreenStyle->setWidth(Length(100.0, Percent)); |
+ fullscreenStyle->setHeight(Length(100.0, Percent)); |
+ } |
fullscreenStyle->setBackgroundColor(StyleColor(Color::black)); |
- return fullscreenStyle.release(); |
+ setStyle(fullscreenStyle); |
} |
RenderObject* RenderFullScreen::wrapRenderer(RenderObject* object, RenderObject* parent, Document* document) |
@@ -121,7 +133,7 @@ RenderObject* RenderFullScreen::wrapRenderer(RenderObject* object, RenderObject* |
DeprecatedDisableModifyRenderTreeStructureAsserts disabler; |
RenderFullScreen* fullscreenRenderer = RenderFullScreen::createAnonymous(document); |
- fullscreenRenderer->setStyle(createFullScreenStyle()); |
+ fullscreenRenderer->updateStyle(); |
if (parent && !parent->isChildAllowed(fullscreenRenderer, fullscreenRenderer->style())) { |
fullscreenRenderer->destroy(); |
return 0; |