- Revision
- 99725
- Author
- [email protected]
- Date
- 2011-11-09 09:01:49 -0800 (Wed, 09 Nov 2011)
Log Message
[WebKit2] Prepare viewport meta handling for desktop usage
https://bugs.webkit.org/show_bug.cgi?id=71907
Reviewed by Simon Hausmann.
This is only used by Qt so far. Now we don't always layout pages
without the viewport meta tag, using 980 as the layout width, but
instead we use that value (it is a setting) as a minimum value, or
else we use the viewport width.
* UIProcess/API/qt/qtouchwebview.cpp:
(QTouchWebViewPrivate::updateViewportSize):
(QTouchWebViewPrivate::updateViewportConstraints):
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::dispatchViewportPropertiesDidChange):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setViewportSize):
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (99724 => 99725)
--- trunk/Source/WebKit2/ChangeLog 2011-11-09 16:31:48 UTC (rev 99724)
+++ trunk/Source/WebKit2/ChangeLog 2011-11-09 17:01:49 UTC (rev 99725)
@@ -1,3 +1,23 @@
+2011-11-09 Kenneth Rohde Christiansen <[email protected]>
+
+ [WebKit2] Prepare viewport meta handling for desktop usage
+ https://bugs.webkit.org/show_bug.cgi?id=71907
+
+ Reviewed by Simon Hausmann.
+
+ This is only used by Qt so far. Now we don't always layout pages
+ without the viewport meta tag, using 980 as the layout width, but
+ instead we use that value (it is a setting) as a minimum value, or
+ else we use the viewport width.
+
+ * UIProcess/API/qt/qtouchwebview.cpp:
+ (QTouchWebViewPrivate::updateViewportSize):
+ (QTouchWebViewPrivate::updateViewportConstraints):
+ * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+ (WebKit::WebChromeClient::dispatchViewportPropertiesDidChange):
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::setViewportSize):
+
2011-11-09 Simon Hausmann <[email protected]>
Unreviewed, rolling out r99701.
Modified: trunk/Source/WebKit2/UIProcess/API/qt/qtouchwebview.cpp (99724 => 99725)
--- trunk/Source/WebKit2/UIProcess/API/qt/qtouchwebview.cpp 2011-11-09 16:31:48 UTC (rev 99724)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qtouchwebview.cpp 2011-11-09 17:01:49 UTC (rev 99725)
@@ -76,9 +76,11 @@
return;
WebPageProxy* wkPage = toImpl(pageProxy->pageRef());
+
// Let the WebProcess know about the new viewport size, so that
// it can resize the content accordingly.
wkPage->setViewportSize(viewportSize);
+
updateViewportConstraints();
_q_viewportUpdated();
}
@@ -99,7 +101,9 @@
wkPrefs->setDeviceWidth(480);
wkPrefs->setDeviceHeight(720);
- WebCore::ViewportAttributes attr = WebCore::computeViewportAttributes(viewportArguments, wkPrefs->layoutFallbackWidth(), wkPrefs->deviceWidth(), wkPrefs->deviceHeight(), wkPrefs->deviceDPI(), availableSize);
+ int minimumLayoutFallbackWidth = qMax<int>(wkPrefs->layoutFallbackWidth(), availableSize.width());
+
+ WebCore::ViewportAttributes attr = WebCore::computeViewportAttributes(viewportArguments, minimumLayoutFallbackWidth, wkPrefs->deviceWidth(), wkPrefs->deviceHeight(), wkPrefs->deviceDPI(), availableSize);
WebCore::restrictMinimumScaleFactorToViewportSize(attr, availableSize);
WebCore::restrictScaleFactorToInitialScaleIfNotUserScalable(attr);
Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp (99724 => 99725)
--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp 2011-11-09 16:31:48 UTC (rev 99724)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp 2011-11-09 17:01:49 UTC (rev 99725)
@@ -751,7 +751,9 @@
Page* page = m_page->corePage();
Settings* settings = page->settings();
- IntSize targetLayoutSize = computeViewportAttributes(page->viewportArguments(), settings->layoutFallbackWidth(), settings->deviceWidth(), settings->deviceHeight(),
+ int minimumLayoutFallbackWidth = std::max(settings->layoutFallbackWidth(), m_page->viewportSize().width());
+
+ IntSize targetLayoutSize = computeViewportAttributes(page->viewportArguments(), minimumLayoutFallbackWidth, settings->deviceWidth(), settings->deviceHeight(),
settings->deviceDPI(), m_page->viewportSize()).layoutSize;
m_page->setResizesToContentsUsingLayoutSize(targetLayoutSize);
}
Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (99724 => 99725)
--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp 2011-11-09 16:31:48 UTC (rev 99724)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp 2011-11-09 17:01:49 UTC (rev 99725)
@@ -749,7 +749,10 @@
// Recalculate the recommended layout size, when the available size (device pixel) changes.
Settings* settings = m_page->settings();
- IntSize targetLayoutSize = computeViewportAttributes(m_page->viewportArguments(), settings->layoutFallbackWidth(), settings->deviceWidth(), settings->deviceHeight(), settings->deviceDPI(), size).layoutSize;
+
+ int minimumLayoutFallbackWidth = std::max(settings->layoutFallbackWidth(), size.width());
+
+ IntSize targetLayoutSize = computeViewportAttributes(m_page->viewportArguments(), minimumLayoutFallbackWidth, settings->deviceWidth(), settings->deviceHeight(), settings->deviceDPI(), size).layoutSize;
setResizesToContentsUsingLayoutSize(targetLayoutSize);
}