summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMoonchild <mcwerewolf@gmail.com>2018-09-26 13:55:38 +0200
committerGitHub <noreply@github.com>2018-09-26 13:55:38 +0200
commit326611aaaed36d4d6e44fa77e781ed3e2e43539d (patch)
treeab4388e807924f543d0d4a8ab58f7f5f25973ffc
parente3508f55bed8a463d298021633dbc7d079c9d764 (diff)
parent1c159bf4dc4885e85bcff4099168a35b18848a92 (diff)
downloadUXP-326611aaaed36d4d6e44fa77e781ed3e2e43539d.tar
UXP-326611aaaed36d4d6e44fa77e781ed3e2e43539d.tar.gz
UXP-326611aaaed36d4d6e44fa77e781ed3e2e43539d.tar.lz
UXP-326611aaaed36d4d6e44fa77e781ed3e2e43539d.tar.xz
UXP-326611aaaed36d4d6e44fa77e781ed3e2e43539d.zip
Merge pull request #788 from alaviss/apz-experimental
gfx: add pref for enabling APZ without e10s
-rw-r--r--gfx/thebes/gfxPlatform.cpp10
-rw-r--r--gfx/thebes/gfxPrefs.h1
-rw-r--r--modules/libpref/init/all.js4
3 files changed, 10 insertions, 5 deletions
diff --git a/gfx/thebes/gfxPlatform.cpp b/gfx/thebes/gfxPlatform.cpp
index d5af16a19..65227a8a7 100644
--- a/gfx/thebes/gfxPlatform.cpp
+++ b/gfx/thebes/gfxPlatform.cpp
@@ -2380,13 +2380,13 @@ gfxPlatform::AsyncPanZoomEnabled()
{
#if !defined(MOZ_WIDGET_ANDROID) && !defined(MOZ_WIDGET_UIKIT)
// For XUL applications (everything but Firefox on Android) we only want
- // to use APZ when E10S is enabled. If we ever get input events off the
- // main thread we can consider relaxing this requirement.
- if (!BrowserTabsRemoteAutostart()) {
+ // to use APZ when E10S is enabled or when the user explicitly enable it.
+ if (BrowserTabsRemoteAutostart() || gfxPrefs::APZDesktopEnabled()) {
+ return gfxPrefs::AsyncPanZoomEnabledDoNotUseDirectly();
+ } else {
return false;
}
-#endif
-#ifdef MOZ_WIDGET_ANDROID
+#elif defined(MOZ_WIDGET_ANDROID)
return true;
#else
return gfxPrefs::AsyncPanZoomEnabledDoNotUseDirectly();
diff --git a/gfx/thebes/gfxPrefs.h b/gfx/thebes/gfxPrefs.h
index 359a258c7..1253fdb48 100644
--- a/gfx/thebes/gfxPrefs.h
+++ b/gfx/thebes/gfxPrefs.h
@@ -310,6 +310,7 @@ private:
DECL_GFX_PREF(Live, "apz.y_stationary_size_multiplier", APZYStationarySizeMultiplier, float, 3.5f);
DECL_GFX_PREF(Live, "apz.zoom_animation_duration_ms", APZZoomAnimationDuration, int32_t, 250);
DECL_GFX_PREF(Live, "apz.scale_repaint_delay_ms", APZScaleRepaintDelay, int32_t, 500);
+ DECL_GFX_PREF(Once, "apz.desktop.enabled", APZDesktopEnabled, bool, false);
DECL_GFX_PREF(Live, "browser.ui.zoom.force-user-scalable", ForceUserScalable, bool, false);
DECL_GFX_PREF(Live, "browser.viewport.desktopWidth", DesktopViewportWidth, int32_t, 980);
diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js
index a4834e3ec..32c59e737 100644
--- a/modules/libpref/init/all.js
+++ b/modules/libpref/init/all.js
@@ -705,6 +705,10 @@ pref("apz.y_skate_size_multiplier", "1.5");
pref("apz.y_stationary_size_multiplier", "1.5");
#endif
+#if !defined(MOZ_WIDGET_ANDROID) && !defined(MOZ_WIDGET_UIKIT)
+pref("apz.desktop.enabled", false);
+#endif
+
#ifdef XP_MACOSX
// Whether to run in native HiDPI mode on machines with "Retina"/HiDPI display;
// <= 0 : hidpi mode disabled, display will just use pixel-based upscaling