Title: [143474] trunk/Source/WebKit2
Revision
143474
Author
commit-qu...@webkit.org
Date
2013-02-20 10:23:42 -0800 (Wed, 20 Feb 2013)

Log Message

[WK2] Remove m_viewportSize in WebPage.
https://bugs.webkit.org/show_bug.cgi?id=110311

Patch by Huang Dongsung <luxte...@company100.net> on 2013-02-20
Reviewed by Anders Carlsson.

EFL and Qt use m_viewSize as a contents size while Apple use it as a viewport
size, so EFL and Qt introduced m_viewportSize to make WebPage know a viewport
size.

EFL and Qt use m_viewSize as a contents size because the size of non compositing
layer is contents size, and EFL and Qt mark whole non compositing layer as dirty
using m_viewSize. Bug 110299 (http://webkit.org/b/110299) changes that it is not
necessary to know m_viewSize when marking whole non compositing layer as dirty.
So we can make EFL and Qt use m_viewSize as a viewport size also.

This patch removes m_viewportSize and related methods to increase readability.

* UIProcess/API/qt/raw/qrawwebview.cpp:
(QRawWebView::setSize):
* UIProcess/PageViewportController.cpp:
(WebKit::PageViewportController::didChangeViewportSize):
* UIProcess/WebPageProxy.cpp:
(WebKit):
* UIProcess/WebPageProxy.h:
(WebPageProxy):
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::pageRect):
(WebKit::WebChromeClient::contentsSizeChanged):
* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::updateBackingStoreState):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setSize):
(WebKit::WebPage::sendViewportAttributesChanged):
* WebProcess/WebPage/WebPage.h:
(WebPage):
* WebProcess/WebPage/WebPage.messages.in:

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (143473 => 143474)


--- trunk/Source/WebKit2/ChangeLog	2013-02-20 18:21:39 UTC (rev 143473)
+++ trunk/Source/WebKit2/ChangeLog	2013-02-20 18:23:42 UTC (rev 143474)
@@ -1,5 +1,44 @@
 2013-02-20  Huang Dongsung  <luxte...@company100.net>
 
+        [WK2] Remove m_viewportSize in WebPage.
+        https://bugs.webkit.org/show_bug.cgi?id=110311
+
+        Reviewed by Anders Carlsson.
+
+        EFL and Qt use m_viewSize as a contents size while Apple use it as a viewport
+        size, so EFL and Qt introduced m_viewportSize to make WebPage know a viewport
+        size.
+
+        EFL and Qt use m_viewSize as a contents size because the size of non compositing
+        layer is contents size, and EFL and Qt mark whole non compositing layer as dirty
+        using m_viewSize. Bug 110299 (http://webkit.org/b/110299) changes that it is not
+        necessary to know m_viewSize when marking whole non compositing layer as dirty.
+        So we can make EFL and Qt use m_viewSize as a viewport size also.
+
+        This patch removes m_viewportSize and related methods to increase readability.
+
+        * UIProcess/API/qt/raw/qrawwebview.cpp:
+        (QRawWebView::setSize):
+        * UIProcess/PageViewportController.cpp:
+        (WebKit::PageViewportController::didChangeViewportSize):
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit):
+        * UIProcess/WebPageProxy.h:
+        (WebPageProxy):
+        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+        (WebKit::WebChromeClient::pageRect):
+        (WebKit::WebChromeClient::contentsSizeChanged):
+        * WebProcess/WebPage/DrawingAreaImpl.cpp:
+        (WebKit::DrawingAreaImpl::updateBackingStoreState):
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::setSize):
+        (WebKit::WebPage::sendViewportAttributesChanged):
+        * WebProcess/WebPage/WebPage.h:
+        (WebPage):
+        * WebProcess/WebPage/WebPage.messages.in:
+
+2013-02-20  Huang Dongsung  <luxte...@company100.net>
+
         [WK2] add setNeedsDisplay in DrawingArea to mark whole layer as dirty.
         https://bugs.webkit.org/show_bug.cgi?id=110299
 

Modified: trunk/Source/WebKit2/UIProcess/API/qt/raw/qrawwebview.cpp (143473 => 143474)


--- trunk/Source/WebKit2/UIProcess/API/qt/raw/qrawwebview.cpp	2013-02-20 18:21:39 UTC (rev 143473)
+++ trunk/Source/WebKit2/UIProcess/API/qt/raw/qrawwebview.cpp	2013-02-20 18:23:42 UTC (rev 143474)
@@ -344,7 +344,7 @@
         return;
 
     if (d->m_webPageProxy->useFixedLayout())
-        d->m_webPageProxy->setViewportSize(size);
+        drawingArea->setSize(size, WebCore::IntSize());
 
     d->m_size = size;
 

Modified: trunk/Source/WebKit2/UIProcess/PageViewportController.cpp (143473 => 143474)


--- trunk/Source/WebKit2/UIProcess/PageViewportController.cpp	2013-02-20 18:21:39 UTC (rev 143473)
+++ trunk/Source/WebKit2/UIProcess/PageViewportController.cpp	2013-02-20 18:23:42 UTC (rev 143474)
@@ -251,7 +251,7 @@
 
     // Let the WebProcess know about the new viewport size, so that
     // it can resize the content accordingly.
-    m_webPageProxy->setViewportSize(roundedIntSize(newSize));
+    m_webPageProxy->drawingArea()->setSize(roundedIntSize(newSize), IntSize());
 }
 
 void PageViewportController::didChangeContentsVisibility(const FloatPoint& position, float scale, const FloatPoint& trajectoryVector)

Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp (143473 => 143474)


--- trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp	2013-02-20 18:21:39 UTC (rev 143473)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp	2013-02-20 18:23:42 UTC (rev 143474)
@@ -1007,14 +1007,6 @@
 }
     
 #if USE(TILED_BACKING_STORE)
-void WebPageProxy::setViewportSize(const IntSize& size)
-{
-    if (!isValid())
-        return;
-
-    m_process->send(Messages::WebPage::SetViewportSize(size), m_pageID);
-}
-
 void WebPageProxy::commitPageTransitionViewport()
 {
     if (!isValid())

Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.h (143473 => 143474)


--- trunk/Source/WebKit2/UIProcess/WebPageProxy.h	2013-02-20 18:21:39 UTC (rev 143473)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.h	2013-02-20 18:23:42 UTC (rev 143474)
@@ -419,7 +419,6 @@
     PlatformWidget viewWidget();
 #endif
 #if USE(TILED_BACKING_STORE)
-    void setViewportSize(const WebCore::IntSize&);
     void commitPageTransitionViewport();
 #endif
 

Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp (143473 => 143474)


--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp	2013-02-20 18:21:39 UTC (rev 143473)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp	2013-02-20 18:23:42 UTC (rev 143474)
@@ -119,11 +119,7 @@
 
 FloatRect WebChromeClient::pageRect()
 {
-#if USE(TILED_BACKING_STORE)
-    return FloatRect(FloatPoint(), m_page->viewportSize());
-#else
     return FloatRect(FloatPoint(), m_page->size());
-#endif
 }
 
 void WebChromeClient::focus()
@@ -446,14 +442,11 @@
     if (frame->page()->mainFrame() != frame)
         return;
 
-#if PLATFORM(QT) || PLATFORM(EFL)
-    if (m_page->useFixedLayout()) {
-        // The below method updates the size().
-        m_page->resizeToContentsIfNeeded();
-        m_page->drawingArea()->layerTreeHost()->sizeDidChange(m_page->size());
-    }
+#if USE(COORDINATED_GRAPHICS)
+    if (m_page->useFixedLayout())
+        m_page->drawingArea()->layerTreeHost()->sizeDidChange(size);
 
-    m_page->send(Messages::WebPageProxy::DidChangeContentsSize(m_page->size()));
+    m_page->send(Messages::WebPageProxy::DidChangeContentsSize(size));
 #endif
 
     m_page->drawingArea()->mainFrameContentSizeChanged(size);

Modified: trunk/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp (143473 => 143474)


--- trunk/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp	2013-02-20 18:21:39 UTC (rev 143473)
+++ trunk/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp	2013-02-20 18:23:42 UTC (rev 143474)
@@ -394,9 +394,11 @@
         m_webPage->scrollMainFrameIfNotAtMaxScrollPosition(scrollOffset);
 
         if (m_layerTreeHost) {
-            // Use the previously set page size instead of the argument.
-            // It gets adjusted properly when using the fixed layout mode.
-            m_layerTreeHost->sizeDidChange(m_webPage->size());
+#if USE(COORDINATED_GRAPHICS)
+            // Coordinated Graphics sets the size of the root layer to contents size.
+            if (!m_webPage->useFixedLayout())
+#endif
+                m_layerTreeHost->sizeDidChange(m_webPage->size());
         } else
             m_dirtyRegion = m_webPage->bounds();
     } else {

Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (143473 => 143474)


--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2013-02-20 18:21:39 UTC (rev 143473)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2013-02-20 18:23:42 UTC (rev 143474)
@@ -979,12 +979,6 @@
 {
     FrameView* view = m_page->mainFrame()->view();
 
-#if USE(TILED_BACKING_STORE)
-    // If we are resizing to content ignore external attempts.
-    if (view->useFixedLayout())
-        return;
-#endif
-
     if (m_viewSize == viewSize)
         return;
 
@@ -993,6 +987,11 @@
     m_drawingArea->setNeedsDisplay();
     
     m_viewSize = viewSize;
+
+#if USE(TILED_BACKING_STORE)
+    if (view->useFixedLayout())
+        sendViewportAttributesChanged();
+#endif
 }
 
 #if USE(TILED_BACKING_STORE)
@@ -1003,43 +1002,24 @@
     m_page->mainFrame()->view()->setFixedVisibleContentRect(rect);
 }
 
-void WebPage::resizeToContentsIfNeeded()
-{
-    ASSERT(m_useFixedLayout);
-
-    FrameView* view = m_page->mainFrame()->view();
-
-    if (!view->useFixedLayout())
-        return;
-
-    IntSize newSize = view->contentsSize().expandedTo(view->fixedLayoutSize());
-
-    if (newSize == m_viewSize)
-        return;
-
-    m_viewSize = newSize;
-    view->resize(newSize);
-    view->setNeedsLayout();
-}
-
 void WebPage::sendViewportAttributesChanged()
 {
     ASSERT(m_useFixedLayout);
 
     // Viewport properties have no impact on zero sized fixed viewports.
-    if (m_viewportSize.isEmpty())
+    if (m_viewSize.isEmpty())
         return;
 
     // Recalculate the recommended layout size, when the available size (device pixel) changes.
     Settings* settings = m_page->settings();
 
-    int minimumLayoutFallbackWidth = std::max(settings->layoutFallbackWidth(), m_viewportSize.width());
+    int minimumLayoutFallbackWidth = std::max(settings->layoutFallbackWidth(), m_viewSize.width());
 
     // If unset  we use the viewport dimensions. This fits with the behavior of desktop browsers.
-    int deviceWidth = (settings->deviceWidth() > 0) ? settings->deviceWidth() : m_viewportSize.width();
-    int deviceHeight = (settings->deviceHeight() > 0) ? settings->deviceHeight() : m_viewportSize.height();
+    int deviceWidth = (settings->deviceWidth() > 0) ? settings->deviceWidth() : m_viewSize.width();
+    int deviceHeight = (settings->deviceHeight() > 0) ? settings->deviceHeight() : m_viewSize.height();
 
-    ViewportAttributes attr = computeViewportAttributes(m_page->viewportArguments(), minimumLayoutFallbackWidth, deviceWidth, deviceHeight, 1, m_viewportSize);
+    ViewportAttributes attr = computeViewportAttributes(m_page->viewportArguments(), minimumLayoutFallbackWidth, deviceWidth, deviceHeight, 1, m_viewSize);
 
     FrameView* view = m_page->mainFrame()->view();
 
@@ -1048,7 +1028,7 @@
 
     // Put the width and height to the viewport width and height. In css units however.
     // Use FloatSize to avoid truncated values during scale.
-    FloatSize contentFixedSize = m_viewportSize;
+    FloatSize contentFixedSize = m_viewSize;
 
 #if ENABLE(CSS_DEVICE_ADAPTATION)
     // CSS viewport descriptors might be applied to already affected viewport size
@@ -1066,19 +1046,6 @@
 
     send(Messages::WebPageProxy::DidChangeViewportProperties(attr));
 }
-
-void WebPage::setViewportSize(const IntSize& size)
-{
-    ASSERT(m_useFixedLayout);
-
-    if (m_viewportSize == size)
-        return;
-
-    m_viewportSize = size;
-
-    sendViewportAttributesChanged();
-}
-
 #endif
 
 void WebPage::scrollMainFrameIfNotAtMaxScrollPosition(const IntSize& scrollOffset)

Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h (143473 => 143474)


--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h	2013-02-20 18:21:39 UTC (rev 143473)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h	2013-02-20 18:23:42 UTC (rev 143474)
@@ -377,10 +377,7 @@
 #if USE(TILED_BACKING_STORE)
     void pageDidRequestScroll(const WebCore::IntPoint&);
     void setFixedVisibleContentRect(const WebCore::IntRect&);
-    void resizeToContentsIfNeeded();
     void sendViewportAttributesChanged();
-    void setViewportSize(const WebCore::IntSize&);
-    WebCore::IntSize viewportSize() const { return m_viewportSize; }
 #endif
 
 #if ENABLE(CONTEXT_MENUS)
@@ -874,10 +871,6 @@
 #endif
     InjectedBundlePageDiagnosticLoggingClient m_logDiagnosticMessageClient;
 
-#if USE(TILED_BACKING_STORE)
-    WebCore::IntSize m_viewportSize;
-#endif
-
     FindController m_findController;
 #if ENABLE(TOUCH_EVENTS) && PLATFORM(QT)
     TapHighlightController m_tapHighlightController;

Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in (143473 => 143474)


--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in	2013-02-20 18:21:39 UTC (rev 143473)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in	2013-02-20 18:23:42 UTC (rev 143474)
@@ -116,10 +116,6 @@
     SuspendActiveDOMObjectsAndAnimations()
     ResumeActiveDOMObjectsAndAnimations()
 
-#if USE(TILED_BACKING_STORE)
-    SetViewportSize(WebCore::IntSize size)
-#endif
-
     Close()
     TryClose()
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to