author | Kartikaya Gupta <kgupta@mozilla.com> |
Fri, 08 Aug 2014 17:41:51 -0400 | |
changeset 198679 | 9ff86c2ca0642c857ea3a88079ae8582b25508f0 |
parent 198678 | c5594b478826412b8a34e5125ddd894fcc42b1fa |
child 198680 | 3cb6a9651e0a2e4d37b25f2278392450c5898a1b |
push id | 27284 |
push user | ryanvm@gmail.com |
push date | Sat, 09 Aug 2014 15:25:31 +0000 |
treeherder | mozilla-central@ad8cb646fad6 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | snorp |
bugs | 1046344 |
milestone | 34.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/configure.in +++ b/configure.in @@ -3812,16 +3812,17 @@ MOZ_PLACES=1 MOZ_SOCIAL=1 MOZ_PREF_EXTENSIONS=1 MOZ_PROFILELOCKING=1 MOZ_REFLOW_PERF= MOZ_SAFE_BROWSING= MOZ_HELP_VIEWER= MOZ_SPELLCHECK=1 MOZ_ANDROID_OMTC= +MOZ_ANDROID_APZ= MOZ_TOOLKIT_SEARCH=1 MOZ_UI_LOCALE=en-US MOZ_UNIVERSALCHARDET=1 MOZ_URL_CLASSIFIER= MOZ_XUL=1 MOZ_ZIPWRITER=1 NS_PRINTING=1 MOZ_PDF_PRINTING= @@ -4815,16 +4816,28 @@ dnl ==================================== dnl = Build with the Android compositor dnl ======================================================== if test -n "$MOZ_ANDROID_OMTC"; then dnl Do this if defined in confvars.sh AC_DEFINE(MOZ_ANDROID_OMTC) fi dnl ======================================================== +dnl = Enable the C++ async pan/zoom code instead of the Java version +dnl ======================================================== +MOZ_ARG_ENABLE_BOOL(android-apz, +[ --enable-android-apz Switch to C++ pan/zoom code], + MOZ_ANDROID_APZ=1, + MOZ_ANDROID_APZ=) +if test -n "$MOZ_ANDROID_APZ"; then + dnl Do this if defined in confvars.sh + AC_DEFINE(MOZ_ANDROID_APZ) +fi + +dnl ======================================================== dnl = Disable WebSMS backend dnl ======================================================== MOZ_ARG_DISABLE_BOOL(websms-backend, [ --disable-websms-backend Disable WebSMS backend], MOZ_WEBSMS_BACKEND=, MOZ_WEBSMS_BACKEND=1) @@ -8392,16 +8405,17 @@ AC_SUBST(KEYTOOL) AC_SUBST(MOZ_PROFILELOCKING) AC_SUBST(ENABLE_TESTS) AC_SUBST(MOZ_UNIVERSALCHARDET) AC_SUBST(ACCESSIBILITY) AC_SUBST(MOZ_SPELLCHECK) AC_SUBST(MOZ_ANDROID_OMTC) +AC_SUBST(MOZ_ANDROID_APZ) AC_SUBST(MOZ_ANDROID_ANR_REPORTER) AC_SUBST(MOZ_CRASHREPORTER) AC_SUBST(MOZ_CRASHREPORTER_INJECTOR) AC_SUBST(MOZ_CRASHREPORTER_UPLOAD_FULL_SYMBOLS) AC_SUBST(MOZ_MAINTENANCE_SERVICE) AC_SUBST(MOZ_STUB_INSTALLER) AC_SUBST(MOZ_VERIFY_MAR_SIGNATURE) AC_SUBST(MOZ_ENABLE_SIGNMAR)
--- a/mobile/android/app/mobile.js +++ b/mobile/android/app/mobile.js @@ -559,16 +559,19 @@ pref("editor.singleLine.pasteNewlines", // threshold where a tap becomes a drag, in 1/240" reference pixels // The names of the preferences are to be in sync with EventStateManager.cpp pref("ui.dragThresholdX", 25); pref("ui.dragThresholdY", 25); pref("layers.acceleration.disabled", false); pref("layers.offmainthreadcomposition.enabled", true); pref("layers.async-video.enabled", true); +#ifdef MOZ_ANDROID_APZ +pref("layers.async-pan-zoom.enabled", true); +#endif pref("layers.progressive-paint", true); pref("layers.low-precision-buffer", true); pref("layers.low-precision-resolution", "0.25"); pref("layers.low-precision-opacity", "1.0"); // We want to limit layers for two reasons: // 1) We can't scroll smoothly if we have to many draw calls // 2) Pages that have too many layers consume too much memory and crash. // By limiting the number of layers on mobile we're making the main thread
--- a/mobile/android/base/AppConstants.java.in +++ b/mobile/android/base/AppConstants.java.in @@ -191,16 +191,23 @@ public class AppConstants { // it if this APK doesn't include API14 support. public static final boolean MOZ_ANDROID_BEAM = #ifdef MOZ_ANDROID_BEAM Versions.feature14Plus; #else false; #endif + public static final boolean MOZ_ANDROID_APZ = +#ifdef MOZ_ANDROID_APZ + true; +#else + false; +#endif + // See this wiki page for more details about channel specific build defines: // https://wiki.mozilla.org/Platform/Channel-specific_build_defines public static final boolean RELEASE_BUILD = #ifdef RELEASE_BUILD true; #else false; #endif
--- a/mobile/android/base/gfx/PanZoomController.java +++ b/mobile/android/base/gfx/PanZoomController.java @@ -18,17 +18,21 @@ public interface PanZoomController { // between the touch-down and touch-up of a click). In units of density-independent pixels. public static final float PAN_THRESHOLD = 1/16f * GeckoAppShell.getDpi(); // Threshold for sending touch move events to content public static final float CLICK_THRESHOLD = 1/50f * GeckoAppShell.getDpi(); static class Factory { static PanZoomController create(PanZoomTarget target, View view, EventDispatcher dispatcher) { - return new JavaPanZoomController(target, view, dispatcher); + if (org.mozilla.gecko.AppConstants.MOZ_ANDROID_APZ) { + return new NativePanZoomController(target, view, dispatcher); + } else { + return new JavaPanZoomController(target, view, dispatcher); + } } } public void destroy(); public boolean onTouchEvent(MotionEvent event); public boolean onMotionEvent(MotionEvent event); public boolean onKeyEvent(KeyEvent event);