summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--JavaScriptCore/Android.mk1
-rw-r--r--V8Binding/V8Binding.derived.mk8
-rw-r--r--WebKit/android/WebCoreSupport/ChromeClientAndroid.cpp24
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() {