Bug 1266799 - Increase DOM fullscreen timeout length to 1000ms. r=xidorn, a=sylvestre
authorMike Conley <mconley@mozilla.com>
Thu, 02 Jun 2016 14:49:56 -0400
changeset 333281 1ca54e2ea78a0527d778be7f7e852e9083fb3494
parent 333280 4c6311b611e9262cf36613c2a61e55d1e7ac9d04
child 333282 9c547e1686c8275f34171e0c4a0156c1a183bb06
push id6048
push userkmoir@mozilla.com
push dateMon, 06 Jun 2016 19:02:08 +0000
treeherdermozilla-beta@46d72a56c57d [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersxidorn, sylvestre
bugs1266799, 1271160
milestone48.0a2
Bug 1266799 - Increase DOM fullscreen timeout length to 1000ms. r=xidorn, a=sylvestre According to the Telemetry probes added in Bug 1271160, 1000ms should account for ~94% of fullscreen transitions. The remaining ~6% tail is where users might see the transition end and then content re-organize itself. I think this is a big improvement over the original 500ms, which covers only about ~80% of cases, according to Telemetry. MozReview-Commit-ID: 3Vb9qQ7yDx5
dom/base/nsGlobalWindow.cpp
modules/libpref/init/all.js
--- a/dom/base/nsGlobalWindow.cpp
+++ b/dom/base/nsGlobalWindow.cpp
@@ -6032,17 +6032,17 @@ FullscreenTransitionTask::Run()
     // should rarely happen, it probably isn't worth to fix. Hence we
     // simply add a timeout here to ensure we never hang forever.
     // In addition, if the page is complicated or the machine is less
     // powerful, layout could take a long time, in which case, staying
     // in black screen for that long could hurt user experience even
     // more than exposing an intermediate state.
     mTimer = do_CreateInstance(NS_TIMER_CONTRACTID);
     uint32_t timeout =
-      Preferences::GetUint("full-screen-api.transition.timeout", 500);
+      Preferences::GetUint("full-screen-api.transition.timeout", 1000);
     mTimer->Init(observer, timeout, nsITimer::TYPE_ONE_SHOT);
   } else if (stage == eAfterToggle) {
     Telemetry::AccumulateTimeDelta(Telemetry::FULLSCREEN_TRANSITION_BLACK_MS,
                                    mFullscreenChangeStartTime);
     mWidget->PerformFullscreenTransition(nsIWidget::eAfterFullscreenToggle,
                                          mDuration.mFadeOut, mTransitionData,
                                          this);
   }
--- a/modules/libpref/init/all.js
+++ b/modules/libpref/init/all.js
@@ -4585,17 +4585,17 @@ pref("full-screen-api.unprefix.enabled",
 pref("full-screen-api.unprefix.enabled", true);
 #endif
 pref("full-screen-api.allow-trusted-requests-only", true);
 pref("full-screen-api.pointer-lock.enabled", true);
 // transition duration of fade-to-black and fade-from-black, unit: ms
 pref("full-screen-api.transition-duration.enter", "200 200");
 pref("full-screen-api.transition-duration.leave", "200 200");
 // timeout for black screen in fullscreen transition, unit: ms
-pref("full-screen-api.transition.timeout", 500);
+pref("full-screen-api.transition.timeout", 1000);
 // time for the warning box stays on the screen before sliding out, unit: ms
 pref("full-screen-api.warning.timeout", 3000);
 // delay for the warning box to show when pointer stays on the top, unit: ms
 pref("full-screen-api.warning.delay", 500);
 
 // DOM idle observers API
 pref("dom.idle-observers-api.enabled", true);