| 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;
|
|
|