Index: Source/web/WebViewImpl.cpp |
diff --git a/Source/web/WebViewImpl.cpp b/Source/web/WebViewImpl.cpp |
index f386bf5e02d5a79d2bfe6bb60eaef6a213dcf79d..0020ac0700fa540fd795c3a7b7168e853501024e 100644 |
--- a/Source/web/WebViewImpl.cpp |
+++ b/Source/web/WebViewImpl.cpp |
@@ -1659,6 +1659,12 @@ void WebViewImpl::resize(const WebSize& newSize) |
FloatSize(viewportAnchorXCoord, viewportAnchorYCoord)); |
} |
+ // If we're on a desktop style platform, we want to keep the page's layout |
+ // size fixed to the size of the WebViewImpl. Desktop-style is indicated |
+ // by layoutFallbackWidth == 0 |
+ if (page() && !page()->settings().layoutFallbackWidth()) |
kenneth.r.christiansen
2013/09/05 07:54:24
With the move to using @viewport rules internally,
|
+ view->setLayoutSize(m_size); |
+ |
// Set the fixed layout size from the viewport constraints before resizing. |
updatePageDefinedPageScaleConstraints(mainFrameImpl()->frame()->document()->viewportArguments()); |
@@ -2868,18 +2874,6 @@ void WebViewImpl::setDeviceScaleFactor(float scaleFactor) |
m_layerTreeView->setDeviceScaleFactor(scaleFactor); |
} |
-bool WebViewImpl::isFixedLayoutModeEnabled() const |
-{ |
- if (!page()) |
- return false; |
- |
- Frame* frame = page()->mainFrame(); |
- if (!frame || !frame->view()) |
- return false; |
- |
- return frame->view()->useFixedLayout(); |
-} |
- |
void WebViewImpl::enableFixedLayoutMode(bool enable) |
{ |
if (!page()) |
@@ -2889,7 +2883,7 @@ void WebViewImpl::enableFixedLayoutMode(bool enable) |
if (!frame || !frame->view()) |
return; |
- frame->view()->setUseFixedLayout(enable); |
+ page()->settings().setLayoutFallbackWidth(enable ? 980 : 0); |
kenneth.r.christiansen
2013/09/05 08:03:07
Hmm... I hope noone are overriding it then. This i
bokan
2013/09/05 20:03:36
Yes, this is a hack to keep the tests working. I'l
|
if (m_isAcceleratedCompositingActive) |
updateLayerTreeViewport(); |
@@ -2989,7 +2983,7 @@ void WebViewImpl::refreshPageScaleFactorAfterLayout() |
void WebViewImpl::updatePageDefinedPageScaleConstraints(const ViewportArguments& arguments) |
{ |
- if (!settings()->viewportEnabled() || !isFixedLayoutModeEnabled() || !page() || !m_size.width || !m_size.height) |
+ if (!settings()->viewportEnabled() || !page() || !m_size.width || !m_size.height) |
return; |
ViewportArguments adjustedArguments = arguments; |
@@ -3002,10 +2996,10 @@ void WebViewImpl::updatePageDefinedPageScaleConstraints(const ViewportArguments& |
WebSize layoutSize = flooredIntSize(m_pageScaleConstraintsSet.pageDefinedConstraints().layoutSize); |
- if (page()->settings().textAutosizingEnabled() && page()->mainFrame() && layoutSize.width != fixedLayoutSize().width) |
+ if (page()->settings().textAutosizingEnabled() && page()->mainFrame() && layoutSize.width != page()->mainFrame()->view()->layoutSize().width()) |
page()->mainFrame()->document()->textAutosizer()->recalculateMultipliers(); |
- setFixedLayoutSize(layoutSize); |
+ setLayoutSize(layoutSize); |
} |
IntSize WebViewImpl::contentsSize() const |
@@ -3076,19 +3070,12 @@ void WebViewImpl::resetScrollAndScaleState() |
resetSavedScrollAndScaleState(); |
} |
-WebSize WebViewImpl::fixedLayoutSize() const |
+void WebViewImpl::setFixedLayoutSize(const WebSize& layoutSize) |
{ |
- if (!page()) |
- return WebSize(); |
- |
- Frame* frame = page()->mainFrame(); |
- if (!frame || !frame->view()) |
- return WebSize(); |
- |
- return frame->view()->fixedLayoutSize(); |
+ setLayoutSize(layoutSize); |
} |
-void WebViewImpl::setFixedLayoutSize(const WebSize& layoutSize) |
+void WebViewImpl::setLayoutSize(const WebSize& layoutSize) |
{ |
if (!page()) |
return; |
@@ -3097,7 +3084,7 @@ void WebViewImpl::setFixedLayoutSize(const WebSize& layoutSize) |
if (!frame || !frame->view()) |
return; |
- frame->view()->setFixedLayoutSize(layoutSize); |
+ frame->view()->setLayoutSize(layoutSize); |
} |
void WebViewImpl::performMediaPlayerAction(const WebMediaPlayerAction& action, |