summaryrefslogtreecommitdiffstats
path: root/WebCore/dom/CanvasSurface.cpp
diff options
context:
space:
mode:
authorSteve Block <steveblock@google.com>2010-04-25 23:41:36 -0700
committerSteve Block <steveblock@google.com>2010-05-11 14:42:12 +0100
commiteebae91469b8f225fe78e97ce6dae26efcf6da43 (patch)
treeb1d1189684ad999f6339a3f7f941c5bbbcaeac3c /WebCore/dom/CanvasSurface.cpp
parentdcc8cf2e65d1aa555cce12431a16547e66b469ee (diff)
downloadexternal_webkit-eebae91469b8f225fe78e97ce6dae26efcf6da43.zip
external_webkit-eebae91469b8f225fe78e97ce6dae26efcf6da43.tar.gz
external_webkit-eebae91469b8f225fe78e97ce6dae26efcf6da43.tar.bz2
Merge webkit.org at r58033 : Resolve merge conflicts
- CanvasRenderingContext2D.cpp - Take upstream, conflict due to cherry-pick of security fix, see 285b474734e82bc42b25e48ea4824f8050badb4f - CanvasSurface.cpp, HTMLCanvasElement.cpp - convertLogicalToDevice has been refactored. See http://trac.webkit.org/changeset/56447 - Chrome.cpp/h, ChromeClient.h - Take upstream, conflict due to cherry-pick of cancelling Geolocation permission request - Document.h - Take both, conflicts due to ANDROID_META_SUPPORT - DragImage.h - Take both, conflict due to Android addition - EmptyClients.h - Take upstream, conflicts due to Geo cancel permission request - EventHandler.cpp - Take both, conflicts due to recently upstreamed touch events and ANDROID_PLUGINS - EventHandler.cpp - Keep ours, conflict due to touch event bug fixes not yet upstreamed. See 7f034a1734d634dd1fdb3b64817d5828b5e46922 and 73adc26dba4be1d9da34a7f0907cb7b12f10c909 - FileSystemPOSIX - Take both, conflict due to ANDROID_PLUGINS - FrameLoader.cpp - Take both, conflct due to ANDROID_BLOCK_NETWORK_IMAGE - FrameView.cpp - Take both, conflict due to Android frame flattening - Geolocation.h - Merge conflicts due to Android-specific changes - Geolocation.cpp - Take upstream, conflict due to addition of Geolocation maximumAge - GeolocationPositionCache.cpp - Take upstream, conflict due to addition of ENABLE_GEOLOCATION guards - Gradient.h - Take both, conflict due to Android addition - HTMLLinkElement.cpp, DocLoader.cpp - Take both, conflict due to new link prefetching not yet upstreamed. See f91ac8eab3399adb5325701bebe0590a77e49df7 - HTMLMetaElement.cpp - Take both, conflict due to recently upstreamed meta element - JavaInstanceJSC.cpp - Take both, conflict due to Android additional logging - MediaPlayer.cpp/h - Take both, conflict due to Android-specific change - PlatformTouchPoint.h - Take upstream, conflict due to recently upstreamed unsigned stuff - RenderFrame.cpp, RenderFrameSet.h - Take both, conflict due to Android frameset flattening - RenderLayerCompositor.cpp - Take both, conflicts due to Android layers code - Settings.cpp/h - Conflict due to ANDROID_PLUGINS - TextInputController.h - Take upstream, git got confused - V8DOMWindowShell.cpp - Take upstream, conflict due to cherry-pick of method to add V8 bindings for page cache, see 8fecd9c9a62aa89fb44ed3142ba583dc7b8cbe29 - V8DOMWraper.cpp - Take upstream, conflict due to recently upstreamed WORKERS guards - WebCore.xcodeproj - Take upstream, conflict due to addition of Geolocation maximumAge - Widget.h - Take both, conflict due to Android addition - jsc/JNIUtilityPrivate.cpp - Take upstream, conflict due to switching from bzero to memset - mac/WebCoreSupport/WebChromeCient.h - Take upstream, conflicts due to Geo cancel permission request Change-Id: I1b75eac220faddf2f84c7fd4fd3436a5e07edf64
Diffstat (limited to 'WebCore/dom/CanvasSurface.cpp')
-rw-r--r--WebCore/dom/CanvasSurface.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/WebCore/dom/CanvasSurface.cpp b/WebCore/dom/CanvasSurface.cpp
index dc7e4e1..3b0f397 100644
--- a/WebCore/dom/CanvasSurface.cpp
+++ b/WebCore/dom/CanvasSurface.cpp
@@ -47,7 +47,20 @@ const float CanvasSurface::MaxCanvasArea = 32768 * 8192; // Maximum canvas area
CanvasSurface::CanvasSurface(float pageScaleFactor)
: m_size(DefaultWidth, DefaultHeight)
+#if PLATFORM(ANDROID)
+ /* In Android we capture the drawing into a displayList, and then replay
+ * that list at various scale factors (sometimes zoomed out, other times
+ * zoomed in for "normal" reading, yet other times at arbitrary zoom values
+ * based on the user's choice). In all of these cases, we do not re-record
+ * the displayList, hence it is usually harmful to perform any pre-rounding,
+ * since we just don't know the actual drawing resolution at record time.
+ */
+ // TODO - may be better to move the ifdef to the call site of this
+ // constructor
+ , m_pageScaleFactor(1.0f)
+#else
, m_pageScaleFactor(pageScaleFactor)
+#endif
, m_originClean(true)
, m_hasCreatedImageBuffer(false)
{