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&);