[chromium] Remove WebLayerTreeView::setViewportSize call
authoraelias@chromium.org <aelias@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 3 Mar 2013 22:15:46 +0000 (22:15 +0000)
committeraelias@chromium.org <aelias@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 3 Mar 2013 22:15:46 +0000 (22:15 +0000)
https://bugs.webkit.org/show_bug.cgi?id=110727

Reviewed by James Robinson.

After https://codereview.chromium.org/12328080 lands,
setViewportSize is called from the Chromium side. The multiplication
by deviceScaleFactor here was prone to off-by-one errors.
The layoutSize() function was only used here so delete it as well.

DumpRenderTree WebViewHost must now call this method as well.

Source/WebKit/chromium:

* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::updateLayerTreeViewport):
* src/WebViewImpl.h:
(WebViewImpl):

Tools:

* DumpRenderTree/chromium/WebViewHost.cpp:
(WebViewHost::initializeLayerTreeView):
(WebViewHost::setWindowRect):
(WebViewHost::setDeviceScaleFactor):
(WebViewHost::updateViewportSize):
* DumpRenderTree/chromium/WebViewHost.h:
(WebViewHost):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@144581 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit/chromium/ChangeLog
Source/WebKit/chromium/src/WebViewImpl.cpp
Source/WebKit/chromium/src/WebViewImpl.h
Tools/ChangeLog
Tools/DumpRenderTree/chromium/WebViewHost.cpp
Tools/DumpRenderTree/chromium/WebViewHost.h

index a84b938..6643a35 100644 (file)
@@ -1,3 +1,22 @@
+2013-03-03  Alexandre Elias  <aelias@chromium.org>
+
+        [chromium] Remove WebLayerTreeView::setViewportSize call
+        https://bugs.webkit.org/show_bug.cgi?id=110727
+
+        Reviewed by James Robinson.
+
+        After https://codereview.chromium.org/12328080 lands,
+        setViewportSize is called from the Chromium side. The multiplication
+        by deviceScaleFactor here was prone to off-by-one errors.
+        The layoutSize() function was only used here so delete it as well.
+
+        DumpRenderTree WebViewHost must now call this method as well.
+
+        * src/WebViewImpl.cpp:
+        (WebKit::WebViewImpl::updateLayerTreeViewport):
+        * src/WebViewImpl.h:
+        (WebViewImpl):
+
 2013-03-03  Sheriff Bot  <webkit.review.bot@gmail.com>
 
         Unreviewed, rolling out r144567.
index 6d227e9..9cfd6b9 100644 (file)
@@ -3148,20 +3148,6 @@ IntSize WebViewImpl::contentsSize() const
     return root->documentRect().size();
 }
 
-IntSize WebViewImpl::layoutSize() const
-{
-    if (!isFixedLayoutModeEnabled())
-        return m_size;
-
-    IntSize contentSize = contentsSize();
-
-    if (fixedLayoutSize().width >= contentSize.width())
-        return fixedLayoutSize();
-
-    float aspectRatio = static_cast<float>(m_size.height) / m_size.width;
-    return IntSize(contentSize.width(), contentSize.width() * aspectRatio);
-}
-
 void WebViewImpl::computePageScaleFactorLimits()
 {
     if (!mainFrame() || !page() || !page()->mainFrame() || !page()->mainFrame()->view())
@@ -4292,15 +4278,7 @@ void WebViewImpl::updateLayerTreeViewport()
         return;
 
     FrameView* view = page()->mainFrame()->view();
-
-    IntSize layoutViewportSize = layoutSize();
-    IntSize deviceViewportSize = m_size;
-    if (m_webSettings->applyDeviceScaleFactorInCompositor())
-        deviceViewportSize.scale(deviceScaleFactor());
-
-    m_nonCompositedContentHost->setViewport(deviceViewportSize, view->contentsSize(), view->scrollPosition(), view->scrollOrigin());
-
-    m_layerTreeView->setViewportSize(layoutViewportSize, deviceViewportSize);
+    m_nonCompositedContentHost->setViewport(m_size, view->contentsSize(), view->scrollPosition(), view->scrollOrigin());
     m_layerTreeView->setPageScaleFactorAndLimits(pageScaleFactor(), m_minimumPageScaleFactor, m_maximumPageScaleFactor);
 }
 
index c45dcfa..d46a375 100644 (file)
@@ -454,7 +454,6 @@ public:
     }
 
     WebCore::IntSize dipSize() const;
-    WebCore::IntSize layoutSize() const;
     WebCore::IntSize scaledSize(float) const;
 
     // Set the disposition for how this webview is to be initially shown.
index ff8d0fa..de2d3c2 100644 (file)
@@ -1,3 +1,25 @@
+2013-03-03  Alexandre Elias  <aelias@chromium.org>
+
+        [chromium] Remove WebLayerTreeView::setViewportSize call
+        https://bugs.webkit.org/show_bug.cgi?id=110727
+
+        Reviewed by James Robinson.
+
+        After https://codereview.chromium.org/12328080 lands,
+        setViewportSize is called from the Chromium side. The multiplication
+        by deviceScaleFactor here was prone to off-by-one errors.
+        The layoutSize() function was only used here so delete it as well.
+
+        DumpRenderTree WebViewHost must now call this method as well.
+
+        * DumpRenderTree/chromium/WebViewHost.cpp:
+        (WebViewHost::initializeLayerTreeView):
+        (WebViewHost::setWindowRect):
+        (WebViewHost::setDeviceScaleFactor):
+        (WebViewHost::updateViewportSize):
+        * DumpRenderTree/chromium/WebViewHost.h:
+        (WebViewHost):
+
 2013-02-27  Darin Adler  <darin@apple.com>
 
         StringHasher functions require alignment that call sites do not all guarantee
index 8c2ae4f..e06d4e4 100644 (file)
@@ -284,6 +284,7 @@ void WebViewHost::initializeLayerTreeView(WebLayerTreeViewClient* client, const
         m_layerTreeView = adoptPtr(webkit_support::CreateLayerTreeView3d(m_layerTreeViewClient.get()));
 
     ASSERT(m_layerTreeView);
+    updateViewportSize();
     m_layerTreeView->setRootLayer(rootLayer);
     m_layerTreeView->setSurfaceReady();
 }
@@ -366,6 +367,7 @@ void WebViewHost::setWindowRect(const WebRect& rect)
     int width = m_windowRect.width - border2;
     int height = m_windowRect.height - border2;
     webWidget()->resize(WebSize(width, height));
+    updateViewportSize();
 }
 
 WebRect WebViewHost::rootWindowRect()
@@ -617,6 +619,7 @@ void WebViewHost::setDatabaseQuota(int quota)
 void WebViewHost::setDeviceScaleFactor(float deviceScaleFactor)
 {
     webView()->setDeviceScaleFactor(deviceScaleFactor);
+    updateViewportSize();
 }
 
 void WebViewHost::setFocus(bool focused)
@@ -941,6 +944,16 @@ void WebViewHost::updateSessionHistory(WebFrame* frame)
     entry->setContentState(historyItem);
 }
 
+void WebViewHost::updateViewportSize()
+{
+    if (!m_layerTreeView)
+        return;
+
+    WebSize deviceViewportSize(webWidget()->size().width * webView()->deviceScaleFactor(),
+        webWidget()->size().height * webView()->deviceScaleFactor());
+    m_layerTreeView->setViewportSize(webWidget()->size(), deviceViewportSize);
+}
+
 void WebViewHost::printFrameDescription(WebFrame* webframe)
 {
     string name8 = webframe->uniqueName().utf8();
index 9756cf2..9df9e02 100644 (file)
@@ -234,6 +234,8 @@ private:
 
     bool hasWindow() const { return m_hasWindow; }
 
+    void updateViewportSize();
+
 #if ENABLE(MEDIA_STREAM)
     webkit_support::TestMediaStreamClient* testMediaStreamClient();
 #endif