Title: [139675] trunk/Source/WebKit2
Revision
139675
Author
[email protected]
Date
2013-01-14 15:13:13 -0800 (Mon, 14 Jan 2013)

Log Message

[EFL] REGRESSION(r139189): MiniBrowser renders abnormally with -r option.
https://bugs.webkit.org/show_bug.cgi?id=106512

Patch by Huang Dongsung <[email protected]> on 2013-01-14
Reviewed by Kenneth Rohde Christiansen.

PageViewportController handles only pageScaleFactor after r139189. So
PageViewportControllerClientEFL calls EwkView::setScaleFactor() with
pageScaleFactor instead of pageScaleFactor * deviceScaleFactor.

This patch makes EwkView handle pageScaleFactor.
1. EwkView uses pageScaleFactor * deviceScaleFactor when drawing in
the device unit.
2. EwkView uses pageScaleFactor when notifying the scale to
PageViewportController.

* UIProcess/API/efl/EwkViewImpl.cpp:
(EwkViewImpl::EwkViewImpl):
(EwkViewImpl::deviceScaleFactor):
(EwkViewImpl::transformFromScene):
(EwkViewImpl::displayTimerFired):
* UIProcess/API/efl/EwkViewImpl.h:
(EwkViewImpl):
(EwkViewImpl::setPageScaleFactor):
(EwkViewImpl::pageScaleFactor):
* UIProcess/PageViewportController.cpp:
(WebKit::PageViewportController::didRenderFrame):
* UIProcess/PageViewportControllerClient.h:
(PageViewportControllerClient):
* UIProcess/efl/PageClientLegacyImpl.cpp:
(WebKit::PageClientLegacyImpl::updateViewportSize):
* UIProcess/efl/PageViewportControllerClientEfl.cpp:
(WebKit::PageViewportControllerClientEfl::setViewportPosition):
(WebKit::PageViewportControllerClientEfl::setPageScaleFactor):
(WebKit::PageViewportControllerClientEfl::didResumeContent):
* UIProcess/efl/PageViewportControllerClientEfl.h:
(PageViewportControllerClientEfl):
* UIProcess/qt/PageViewportControllerClientQt.cpp:
(WebKit::PageViewportControllerClientQt::setPageScaleFactor):
* UIProcess/qt/PageViewportControllerClientQt.h:
(PageViewportControllerClientQt):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (139674 => 139675)


--- trunk/Source/WebKit2/ChangeLog	2013-01-14 23:11:04 UTC (rev 139674)
+++ trunk/Source/WebKit2/ChangeLog	2013-01-14 23:13:13 UTC (rev 139675)
@@ -1,3 +1,46 @@
+2013-01-14  Huang Dongsung  <[email protected]>
+
+        [EFL] REGRESSION(r139189): MiniBrowser renders abnormally with -r option.
+        https://bugs.webkit.org/show_bug.cgi?id=106512
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        PageViewportController handles only pageScaleFactor after r139189. So
+        PageViewportControllerClientEFL calls EwkView::setScaleFactor() with
+        pageScaleFactor instead of pageScaleFactor * deviceScaleFactor.
+
+        This patch makes EwkView handle pageScaleFactor.
+        1. EwkView uses pageScaleFactor * deviceScaleFactor when drawing in
+        the device unit.
+        2. EwkView uses pageScaleFactor when notifying the scale to
+        PageViewportController.
+
+        * UIProcess/API/efl/EwkViewImpl.cpp:
+        (EwkViewImpl::EwkViewImpl):
+        (EwkViewImpl::deviceScaleFactor):
+        (EwkViewImpl::transformFromScene):
+        (EwkViewImpl::displayTimerFired):
+        * UIProcess/API/efl/EwkViewImpl.h:
+        (EwkViewImpl):
+        (EwkViewImpl::setPageScaleFactor):
+        (EwkViewImpl::pageScaleFactor):
+        * UIProcess/PageViewportController.cpp:
+        (WebKit::PageViewportController::didRenderFrame):
+        * UIProcess/PageViewportControllerClient.h:
+        (PageViewportControllerClient):
+        * UIProcess/efl/PageClientLegacyImpl.cpp:
+        (WebKit::PageClientLegacyImpl::updateViewportSize):
+        * UIProcess/efl/PageViewportControllerClientEfl.cpp:
+        (WebKit::PageViewportControllerClientEfl::setViewportPosition):
+        (WebKit::PageViewportControllerClientEfl::setPageScaleFactor):
+        (WebKit::PageViewportControllerClientEfl::didResumeContent):
+        * UIProcess/efl/PageViewportControllerClientEfl.h:
+        (PageViewportControllerClientEfl):
+        * UIProcess/qt/PageViewportControllerClientQt.cpp:
+        (WebKit::PageViewportControllerClientQt::setPageScaleFactor):
+        * UIProcess/qt/PageViewportControllerClientQt.h:
+        (PageViewportControllerClientQt):
+
 2013-01-14  Max Vujovic  <[email protected]>
 
         [ANGLE] Update ANGLE in WebKit

Modified: trunk/Source/WebKit2/UIProcess/API/efl/EwkViewImpl.cpp (139674 => 139675)


--- trunk/Source/WebKit2/UIProcess/API/efl/EwkViewImpl.cpp	2013-01-14 23:11:04 UTC (rev 139674)
+++ trunk/Source/WebKit2/UIProcess/API/efl/EwkViewImpl.cpp	2013-01-14 23:13:13 UTC (rev 139675)
@@ -131,7 +131,7 @@
 #endif
     , m_backForwardList(EwkBackForwardList::create(toAPI(m_pageProxy->backForwardList())))
 #if USE(TILED_BACKING_STORE)
-    , m_scaleFactor(1)
+    , m_pageScaleFactor(1)
 #endif
     , m_settings(EwkSettings::create(this))
     , m_cursorIdentifier(0)
@@ -297,13 +297,19 @@
     page()->setIntrinsicDeviceScaleFactor(scale);
 }
 
+float EwkViewImpl::deviceScaleFactor() const
+{
+    return m_pageProxy->deviceScaleFactor();
+}
+
 AffineTransform EwkViewImpl::transformFromScene() const
 {
     AffineTransform transform;
 
 #if USE(TILED_BACKING_STORE)
-    // Note that the scale factor incl page and device scale for now.
-    transform.scale(1 / m_scaleFactor);
+    // Note that we apply both page and device scale factors.
+    transform.scale(1 / pageScaleFactor());
+    transform.scale(1 / deviceScaleFactor());
     transform.translate(pagePosition().x(), pagePosition().y());
 #endif
 
@@ -404,7 +410,8 @@
 
         RefPtr<cairo_t> graphicsContext = adoptRef(cairo_create(surface.get()));
         cairo_translate(graphicsContext.get(), - pagePosition().x(), - pagePosition().y());
-        cairo_scale(graphicsContext.get(), m_scaleFactor, m_scaleFactor);
+        cairo_scale(graphicsContext.get(), pageScaleFactor(), pageScaleFactor());
+        cairo_scale(graphicsContext.get(), deviceScaleFactor(), deviceScaleFactor());
         renderer->paintToGraphicsContext(graphicsContext.get());
         evas_object_image_data_update_add(sd->image, 0, 0, viewport.width(), viewport.height());
     }

Modified: trunk/Source/WebKit2/UIProcess/API/efl/EwkViewImpl.h (139674 => 139675)


--- trunk/Source/WebKit2/UIProcess/API/efl/EwkViewImpl.h	2013-01-14 23:11:04 UTC (rev 139674)
+++ trunk/Source/WebKit2/UIProcess/API/efl/EwkViewImpl.h	2013-01-14 23:13:13 UTC (rev 139675)
@@ -122,6 +122,7 @@
     bool isVisible() const;
 
     void setDeviceScaleFactor(float scale);
+    float deviceScaleFactor() const;
 
     WebCore::AffineTransform transformToScene() const;
     WebCore::AffineTransform transformFromScene() const;
@@ -199,8 +200,8 @@
 #if USE(TILED_BACKING_STORE)
     WebKit::PageClientBase* pageClient() { return m_pageClient.get(); }
 
-    void setScaleFactor(float scaleFactor) { m_scaleFactor = scaleFactor; }
-    float scaleFactor() const { return m_scaleFactor; }
+    void setPageScaleFactor(float scaleFactor) { m_pageScaleFactor = scaleFactor; }
+    float pageScaleFactor() const { return m_pageScaleFactor; }
 
     void setPagePosition(const WebCore::FloatPoint& position) { m_pagePosition = position; }
     const WebCore::FloatPoint pagePosition() const { return m_pagePosition; }
@@ -263,7 +264,7 @@
 #endif
     OwnPtr<EwkBackForwardList> m_backForwardList;
 #if USE(TILED_BACKING_STORE)
-    float m_scaleFactor;
+    float m_pageScaleFactor;
     WebCore::FloatPoint m_pagePosition;
 #endif
     OwnPtr<EwkSettings> m_settings;

Modified: trunk/Source/WebKit2/UIProcess/PageViewportController.cpp (139674 => 139675)


--- trunk/Source/WebKit2/UIProcess/PageViewportController.cpp	2013-01-14 23:11:04 UTC (rev 139674)
+++ trunk/Source/WebKit2/UIProcess/PageViewportController.cpp	2013-01-14 23:13:13 UTC (rev 139675)
@@ -190,7 +190,7 @@
 
     if (m_pendingScaleChange) {
         m_pendingScaleChange = false;
-        m_client->setContentsScale(m_pageScaleFactor);
+        m_client->setPageScaleFactor(m_pageScaleFactor);
 
         // The scale changed, we have to re-pixel align.
         m_pendingPositionChange = true;

Modified: trunk/Source/WebKit2/UIProcess/PageViewportControllerClient.h (139674 => 139675)


--- trunk/Source/WebKit2/UIProcess/PageViewportControllerClient.h	2013-01-14 23:11:04 UTC (rev 139674)
+++ trunk/Source/WebKit2/UIProcess/PageViewportControllerClient.h	2013-01-14 23:13:13 UTC (rev 139675)
@@ -39,7 +39,7 @@
     virtual ~PageViewportControllerClient() { }
 
     virtual void setViewportPosition(const WebCore::FloatPoint& contentsPoint) = 0;
-    virtual void setContentsScale(float) = 0;
+    virtual void setPageScaleFactor(float) = 0;
 
     virtual void didResumeContent() = 0;
     virtual void didChangeContentsSize(const WebCore::IntSize&) = 0;

Modified: trunk/Source/WebKit2/UIProcess/efl/PageClientLegacyImpl.cpp (139674 => 139675)


--- trunk/Source/WebKit2/UIProcess/efl/PageClientLegacyImpl.cpp	2013-01-14 23:11:04 UTC (rev 139674)
+++ trunk/Source/WebKit2/UIProcess/efl/PageClientLegacyImpl.cpp	2013-01-14 23:13:13 UTC (rev 139675)
@@ -50,7 +50,7 @@
 void PageClientLegacyImpl::updateViewportSize()
 {
 #if USE(TILED_BACKING_STORE)
-    m_viewImpl->page()->drawingArea()->setVisibleContentsRect(IntRect(roundedIntPoint(m_viewImpl->pagePosition()), m_viewImpl->size()), m_viewImpl->scaleFactor(), FloatPoint());
+    m_viewImpl->page()->drawingArea()->setVisibleContentsRect(IntRect(roundedIntPoint(m_viewImpl->pagePosition()), m_viewImpl->size()), m_viewImpl->pageScaleFactor(), FloatPoint());
 #endif
 }
 

Modified: trunk/Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.cpp (139674 => 139675)


--- trunk/Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.cpp	2013-01-14 23:11:04 UTC (rev 139674)
+++ trunk/Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.cpp	2013-01-14 23:13:13 UTC (rev 139675)
@@ -79,21 +79,22 @@
     m_contentPosition = contentsPoint;
 
     FloatPoint pos(contentsPoint);
-    pos.scale(scaleFactor(), scaleFactor());
+    pos.scale(m_viewImpl->pageScaleFactor(), m_viewImpl->pageScaleFactor());
+    pos.scale(m_viewImpl->deviceScaleFactor(), m_viewImpl->deviceScaleFactor());
     m_viewImpl->setPagePosition(pos);
 
-    m_controller->didChangeContentsVisibility(m_contentPosition, scaleFactor());
+    m_controller->didChangeContentsVisibility(m_contentPosition, m_viewImpl->pageScaleFactor());
 }
 
-void PageViewportControllerClientEfl::setContentsScale(float newScale)
+void PageViewportControllerClientEfl::setPageScaleFactor(float newScale)
 {
-    m_viewImpl->setScaleFactor(newScale);
+    m_viewImpl->setPageScaleFactor(newScale);
 }
 
 void PageViewportControllerClientEfl::didResumeContent()
 {
     ASSERT(m_controller);
-    m_controller->didChangeContentsVisibility(m_contentPosition, scaleFactor());
+    m_controller->didChangeContentsVisibility(m_contentPosition, m_viewImpl->pageScaleFactor());
 }
 
 void PageViewportControllerClientEfl::didChangeVisibleContents()

Modified: trunk/Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.h (139674 => 139675)


--- trunk/Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.h	2013-01-14 23:11:04 UTC (rev 139674)
+++ trunk/Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.h	2013-01-14 23:13:13 UTC (rev 139675)
@@ -45,14 +45,13 @@
 
     DrawingAreaProxy* drawingArea() const;
     WebCore::IntSize viewSize() { return m_viewportSize; }
-    float scaleFactor() const { return m_viewImpl->scaleFactor(); }
     WebCore::FloatPoint contentPosition() const { return m_contentPosition; }
 
     void updateViewportSize();
     void setRendererActive(bool);
 
     virtual void setViewportPosition(const WebCore::FloatPoint& contentsPoint);
-    virtual void setContentsScale(float);
+    virtual void setPageScaleFactor(float);
 
     virtual void didResumeContent();
     virtual void didChangeContentsSize(const WebCore::IntSize&);

Modified: trunk/Source/WebKit2/UIProcess/qt/PageViewportControllerClientQt.cpp (139674 => 139675)


--- trunk/Source/WebKit2/UIProcess/qt/PageViewportControllerClientQt.cpp	2013-01-14 23:11:04 UTC (rev 139674)
+++ trunk/Source/WebKit2/UIProcess/qt/PageViewportControllerClientQt.cpp	2013-01-14 23:13:13 UTC (rev 139675)
@@ -322,7 +322,7 @@
     updateViewportController();
 }
 
-void PageViewportControllerClientQt::setContentsScale(float localScale)
+void PageViewportControllerClientQt::setPageScaleFactor(float localScale)
 {
     scaleContent(localScale);
 }

Modified: trunk/Source/WebKit2/UIProcess/qt/PageViewportControllerClientQt.h (139674 => 139675)


--- trunk/Source/WebKit2/UIProcess/qt/PageViewportControllerClientQt.h	2013-01-14 23:11:04 UTC (rev 139674)
+++ trunk/Source/WebKit2/UIProcess/qt/PageViewportControllerClientQt.h	2013-01-14 23:13:13 UTC (rev 139675)
@@ -48,7 +48,7 @@
     ~PageViewportControllerClientQt();
 
     virtual void setViewportPosition(const WebCore::FloatPoint& contentsPoint);
-    virtual void setContentsScale(float);
+    virtual void setPageScaleFactor(float);
 
     virtual void didResumeContent();
     virtual void didChangeContentsSize(const WebCore::IntSize&);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to