Title: [99725] trunk/Source/WebKit2
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);
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to