diff options
-rw-r--r-- | JavaScriptCore/Android.mk | 1 | ||||
-rw-r--r-- | V8Binding/V8Binding.derived.mk | 8 | ||||
-rw-r--r-- | WebKit/android/WebCoreSupport/ChromeClientAndroid.cpp | 24 |
3 files changed, 22 insertions, 11 deletions
diff --git a/JavaScriptCore/Android.mk b/JavaScriptCore/Android.mk index ca6a792..89273b4 100644 --- a/JavaScriptCore/Android.mk +++ b/JavaScriptCore/Android.mk @@ -52,7 +52,6 @@ LOCAL_SRC_FILES := \ API/JSCallbackObject.cpp \ API/OpaqueJSString.cpp \ \ - assembler/ARMAssembler.cpp \ bytecode/CodeBlock.cpp \ bytecode/JumpTable.cpp \ bytecode/Opcode.cpp \ diff --git a/V8Binding/V8Binding.derived.mk b/V8Binding/V8Binding.derived.mk index 2d9e1e7..9291443 100644 --- a/V8Binding/V8Binding.derived.mk +++ b/V8Binding/V8Binding.derived.mk @@ -648,14 +648,6 @@ GEN := \ $(intermediates)/bindings/V8XMLHttpRequestProgressEvent.h \ $(intermediates)/bindings/V8XMLHttpRequestUpload.h \ $(intermediates)/bindings/V8XMLSerializer.h - - -# $(intermediates)/bindings/V8XPathEvaluator.h \ - $(intermediates)/bindings/V8XPathException.h \ - $(intermediates)/bindings/V8XPathExpression.h \ - $(intermediates)/bindings/V8XPathNSResolver.h \ - $(intermediates)/bindings/V8XPathResult.h \ - $(intermediates)/bindings/V8XSLTProcessor.h $(GEN): PRIVATE_CUSTOM_TOOL = SOURCE_ROOT=$(WEBCORE_PATH) perl -I$(WEBCORE_PATH)/bindings/scripts $(WEBCORE_PATH)/bindings/scripts/generate-bindings.pl --defines "$(FEATURE_DEFINES) LANGUAGE_JAVASCRIPT" --generator V8 --include dom --include html --outputdir $(dir $@) $< $(GEN): $(intermediates)/bindings/V8%.h : $(WEBCORE_PATH)/xml/%.idl $(js_binding_scripts) diff --git a/WebKit/android/WebCoreSupport/ChromeClientAndroid.cpp b/WebKit/android/WebCoreSupport/ChromeClientAndroid.cpp index dd608b6..015f9a0 100644 --- a/WebKit/android/WebCoreSupport/ChromeClientAndroid.cpp +++ b/WebKit/android/WebCoreSupport/ChromeClientAndroid.cpp @@ -81,8 +81,28 @@ FloatRect ChromeClientAndroid::pageRect() { notImplemented(); return FloatRect() float ChromeClientAndroid::scaleFactor() { - ASSERT(m_webFrame); - return m_webFrame->density(); + /* Conceptually, we should return the density of the device's screen, + except that we don't really model webkit's notion of drawing. Webkit + expects the drawing context's matrix (plus scale-factor) to reflect the + actually transformation to the pixels, and thus it uses scaleFactor to + perform some pre-rounding in a few places (e.g. HTMLCanvasElement). + + ASSERT(m_webFrame); + return m_webFrame->density(); + + However, 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. + + Given Android's device-independent drawing model, we always return 1.0 + for this function, and we implement roundToDevicePixels() to be a no-op + so that we don't introduce pre-rounding artifacts during record. + */ + return 1.0f; } void ChromeClientAndroid::focus() { |