Diff
Modified: trunk/Source/WebKit/chromium/ChangeLog (135458 => 135459)
--- trunk/Source/WebKit/chromium/ChangeLog 2012-11-22 00:50:26 UTC (rev 135458)
+++ trunk/Source/WebKit/chromium/ChangeLog 2012-11-22 01:06:26 UTC (rev 135459)
@@ -1,5 +1,30 @@
2012-11-21 Tien-Ren Chen <trc...@chromium.org>
+ [chromium] Device scale factor should be no-op when applyDeviceScaleFactorInCompositor == 0
+ https://bugs.webkit.org/show_bug.cgi?id=100061
+
+ Reviewed by Adam Barth.
+
+ On Android we're using a different pixel scaling implementation
+ (WebCore::Settings::applyDefaultDeviceScaleFactorInCompositor() == 0) than other
+ platforms. In this mode, we don't make use of device-independent pixels. Device
+ scale factor is provided to WebKit and get merged into page scale factor. Other
+ than that device scale factor should have no effects on rendering.
+
+ * src/PageWidgetDelegate.cpp:
+ (WebKit::PageWidgetDelegate::paint):
+ * src/PageWidgetDelegate.h:
+ * src/WebPagePopupImpl.cpp:
+ (WebKit::WebPagePopupImpl::paint):
+ * src/WebViewImpl.cpp:
+ (WebKit::WebViewImpl::paint):
+ (WebKit::WebViewImpl::shouldApplyDeviceScaleFactorInCompositor):
+ (WebKit):
+ * src/WebViewImpl.h:
+ (WebViewImpl):
+
+2012-11-21 Tien-Ren Chen <trc...@chromium.org>
+
Use m_webView->size() for viewport update
https://bugs.webkit.org/show_bug.cgi?id=102764
Modified: trunk/Source/WebKit/chromium/src/PageWidgetDelegate.cpp (135458 => 135459)
--- trunk/Source/WebKit/chromium/src/PageWidgetDelegate.cpp 2012-11-22 00:50:26 UTC (rev 135458)
+++ trunk/Source/WebKit/chromium/src/PageWidgetDelegate.cpp 2012-11-22 01:06:26 UTC (rev 135459)
@@ -81,15 +81,17 @@
view->updateLayoutAndStyleIfNeededRecursive();
}
-void PageWidgetDelegate::paint(Page* page, PageOverlayList* overlays, WebCanvas* canvas, const WebRect& rect, CanvasBackground background)
+void PageWidgetDelegate::paint(Page* page, PageOverlayList* overlays, WebCanvas* canvas, const WebRect& rect, CanvasBackground background, bool applyDeviceScale)
{
if (rect.isEmpty())
return;
GraphicsContextBuilder builder(canvas);
GraphicsContext& gc = builder.context();
gc.platformContext()->setDrawingToImageBuffer(background == Opaque ? false : true);
- gc.applyDeviceScaleFactor(page->deviceScaleFactor());
- gc.platformContext()->setDeviceScaleFactor(page->deviceScaleFactor());
+ if (applyDeviceScale) {
+ gc.applyDeviceScaleFactor(page->deviceScaleFactor());
+ gc.platformContext()->setDeviceScaleFactor(page->deviceScaleFactor());
+ }
IntRect dirtyRect(rect);
gc.save();
FrameView* view = mainFrameView(page);
Modified: trunk/Source/WebKit/chromium/src/PageWidgetDelegate.h (135458 => 135459)
--- trunk/Source/WebKit/chromium/src/PageWidgetDelegate.h 2012-11-22 00:50:26 UTC (rev 135458)
+++ trunk/Source/WebKit/chromium/src/PageWidgetDelegate.h 2012-11-22 01:06:26 UTC (rev 135459)
@@ -79,7 +79,7 @@
};
static void animate(WebCore::Page*, double monotonicFrameBeginTime);
static void layout(WebCore::Page*);
- static void paint(WebCore::Page*, PageOverlayList*, WebCanvas*, const WebRect&, CanvasBackground);
+ static void paint(WebCore::Page*, PageOverlayList*, WebCanvas*, const WebRect&, CanvasBackground, bool applyDeviceScale);
static bool handleInputEvent(WebCore::Page*, PageWidgetEventHandler&, const WebInputEvent&);
private:
Modified: trunk/Source/WebKit/chromium/src/WebPagePopupImpl.cpp (135458 => 135459)
--- trunk/Source/WebKit/chromium/src/WebPagePopupImpl.cpp 2012-11-22 00:50:26 UTC (rev 135458)
+++ trunk/Source/WebKit/chromium/src/WebPagePopupImpl.cpp 2012-11-22 01:06:26 UTC (rev 135459)
@@ -44,6 +44,7 @@
#include "Settings.h"
#include "WebInputEventConversion.h"
#include "WebPagePopup.h"
+#include "WebSettingsImpl.h"
#include "WebViewClient.h"
#include "WebViewImpl.h"
#include "WebWidgetClient.h"
@@ -242,7 +243,7 @@
void WebPagePopupImpl::paint(WebCanvas* canvas, const WebRect& rect, PaintOptions)
{
- PageWidgetDelegate::paint(m_page.get(), 0, canvas, rect, PageWidgetDelegate::Opaque);
+ PageWidgetDelegate::paint(m_page.get(), 0, canvas, rect, PageWidgetDelegate::Opaque, m_webView->settingsImpl()->applyDeviceScaleFactorInCompositor());
}
void WebPagePopupImpl::resize(const WebSize& newSize)
Modified: trunk/Source/WebKit/chromium/src/WebViewImpl.cpp (135458 => 135459)
--- trunk/Source/WebKit/chromium/src/WebViewImpl.cpp 2012-11-22 00:50:26 UTC (rev 135458)
+++ trunk/Source/WebKit/chromium/src/WebViewImpl.cpp 2012-11-22 01:06:26 UTC (rev 135459)
@@ -1834,7 +1834,7 @@
}
double paintStart = currentTime();
- PageWidgetDelegate::paint(m_page.get(), pageOverlays(), canvas, rect, isTransparent() ? PageWidgetDelegate::Translucent : PageWidgetDelegate::Opaque);
+ PageWidgetDelegate::paint(m_page.get(), pageOverlays(), canvas, rect, isTransparent() ? PageWidgetDelegate::Translucent : PageWidgetDelegate::Opaque, m_webSettings->applyDeviceScaleFactorInCompositor());
double paintEnd = currentTime();
double pixelsPerSec = (rect.width * rect.height) / (paintEnd - paintStart);
WebKit::Platform::current()->histogramCustomCounts("Renderer4.SoftwarePaintDurationMS", (paintEnd - paintStart) * 1000, 0, 120, 30);
Modified: trunk/Source/WebKit/chromium/src/WebViewImpl.h (135458 => 135459)
--- trunk/Source/WebKit/chromium/src/WebViewImpl.h 2012-11-22 00:50:26 UTC (rev 135458)
+++ trunk/Source/WebKit/chromium/src/WebViewImpl.h 2012-11-22 01:06:26 UTC (rev 135459)
@@ -599,6 +599,7 @@
LinkHighlight* linkHighlight() { return m_linkHighlight.get(); }
#endif
+ WebSettingsImpl* settingsImpl();
private:
bool computePageScaleFactorLimits();
@@ -678,8 +679,6 @@
virtual bool handleKeyEvent(const WebKeyboardEvent&) OVERRIDE;
virtual bool handleCharEvent(const WebKeyboardEvent&) OVERRIDE;
- WebSettingsImpl* settingsImpl();
-
WebViewClient* m_client;
WebAutofillClient* m_autofillClient;
WebPermissionClient* m_permissionClient;
Modified: trunk/Tools/ChangeLog (135458 => 135459)
--- trunk/Tools/ChangeLog 2012-11-22 00:50:26 UTC (rev 135458)
+++ trunk/Tools/ChangeLog 2012-11-22 01:06:26 UTC (rev 135459)
@@ -1,3 +1,19 @@
+2012-11-21 Tien-Ren Chen <trc...@chromium.org>
+
+ [chromium] Device scale factor should be no-op when applyDeviceScaleFactorInCompositor == 0
+ https://bugs.webkit.org/show_bug.cgi?id=100061
+
+ Reviewed by Adam Barth.
+
+ On Android we're using a different pixel scaling implementation
+ (WebCore::Settings::applyDefaultDeviceScaleFactorInCompositor() == 0) than other
+ platforms. In this mode, we don't make use of device-independent pixels. Device
+ scale factor is provided to WebKit and get merged into page scale factor. Other
+ than that device scale factor should have no effects on rendering.
+
+ * DumpRenderTree/chromium/WebPreferences.cpp:
+ (WebPreferences::applyTo):
+
2012-11-21 Fady Samuel <fsam...@chromium.org>
Clear MousePressed state on context menu to avoid initiating a drag
Modified: trunk/Tools/DumpRenderTree/chromium/WebPreferences.cpp (135458 => 135459)
--- trunk/Tools/DumpRenderTree/chromium/WebPreferences.cpp 2012-11-22 00:50:26 UTC (rev 135458)
+++ trunk/Tools/DumpRenderTree/chromium/WebPreferences.cpp 2012-11-22 01:06:26 UTC (rev 135459)
@@ -238,7 +238,6 @@
settings->setDeferredImageDecodingEnabled(deferredImageDecodingEnabled);
settings->setMediaPlaybackRequiresUserGesture(mediaPlaybackRequiresUserGesture);
settings->setMockScrollbarsEnabled(mockScrollbarsEnabled);
- settings->setApplyDeviceScaleFactorInCompositor(forceCompositingMode);
settings->setShouldRespectImageOrientation(shouldRespectImageOrientation);
// Fixed values.
@@ -258,4 +257,5 @@
settings->setValidationMessageTimerMagnification(-1);
settings->setVisualWordMovementEnabled(false);
settings->setPasswordEchoEnabled(false);
+ settings->setApplyDeviceScaleFactorInCompositor(true);
}