☠☠ backed out by f77644a7da56 ☠ ☠ | |
author | Ben Kelly <ben@wanderview.com> |
Mon, 15 May 2017 11:58:51 -0700 | |
changeset 358528 | 69a33656f4a3b69840c0d7a663e6c892b7bb83c5 |
parent 358527 | f370c47abb1437981cedbbfb9c215f9de8a27f28 |
child 358529 | b2a7fe15c578d666346a25b9879ab7fd6fcef9f7 |
push id | 31828 |
push user | cbook@mozilla.com |
push date | Tue, 16 May 2017 13:05:08 +0000 |
treeherder | mozilla-central@b9a4a6e2292e [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | ehsan |
bugs | 1343912 |
milestone | 55.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/dom/base/TimeoutManager.cpp +++ b/dom/base/TimeoutManager.cpp @@ -184,21 +184,16 @@ uint32_t TimeoutManager::sNestingLevel = namespace { // The maximum number of milliseconds to allow consecutive timer callbacks // to run in a single event loop runnable. #define DEFAULT_MAX_CONSECUTIVE_CALLBACK_MILLISECONDS 4 uint32_t gMaxConsecutiveCallbackMilliseconds; -// The maximum number of timer callbacks we will try to run in a single event -// loop runnable. -#define DEFAULT_TARGET_MAX_CONSECUTIVE_CALLBACKS 5 -uint32_t gTargetMaxConsecutiveCallbacks; - // The number of queued runnables within the TabGroup ThrottledEventQueue // at which to begin applying back pressure to the window. #define DEFAULT_THROTTLED_EVENT_QUEUE_BACK_PRESSURE 5000 static uint32_t gThrottledEventQueueBackPressure; // The amount of delay to apply to timers when back pressure is triggered. // As the length of the ThrottledEventQueue grows delay is increased. The // delay is scaled such that every kThrottledEventQueueBackPressure runnables @@ -301,20 +296,16 @@ TimeoutManager::Initialize() DEFAULT_BACK_PRESSURE_DELAY_MS); Preferences::AddUintVarCache(&gBackPressureDelayReductionThresholdMS, "dom.timeout.back_pressure_delay_reduction_threshold_ms", DEFAULT_BACK_PRESSURE_DELAY_REDUCTION_THRESHOLD_MS); Preferences::AddUintVarCache(&gBackPressureDelayMinimumMS, "dom.timeout.back_pressure_delay_minimum_ms", DEFAULT_BACK_PRESSURE_DELAY_MINIMUM_MS); - Preferences::AddUintVarCache(&gTargetMaxConsecutiveCallbacks, - "dom.timeout.max_consecutive_callbacks", - DEFAULT_TARGET_MAX_CONSECUTIVE_CALLBACKS); - Preferences::AddUintVarCache(&gMaxConsecutiveCallbackMilliseconds, "dom.timeout.max_consecutive_callback_ms", DEFAULT_MAX_CONSECUTIVE_CALLBACK_MILLISECONDS); } uint32_t TimeoutManager::GetTimeoutId(Timeout::Reason aReason) { @@ -571,59 +562,32 @@ TimeoutManager::RunTimeout(Timeout* aTim { // Use a nested scope in order to make sure the strong references held by // the iterator are freed after the loop. OrderedTimeoutIterator expiredIter(mNormalTimeouts, mTrackingTimeouts, nullptr, nullptr); - uint32_t numTimersToRun = 0; - bool targetTimerSeen = false; - while (true) { Timeout* timeout = expiredIter.Next(); if (!timeout || timeout->When() > deadline) { break; } if (timeout->mFiringDepth == 0) { // Mark any timeouts that are on the list to be fired with the // firing depth so that we can reentrantly run timeouts timeout->mFiringDepth = firingDepth; last_expired_timeout_is_normal = expiredIter.PickedNormalIter(); if (last_expired_timeout_is_normal) { last_expired_normal_timeout = timeout; } else { last_expired_tracking_timeout = timeout; } - - numTimersToRun += 1; - - // Note that we have seen our target timer. This means we can now - // stop processing timers once we hit our threshold below. - if (timeout == aTimeout) { - targetTimerSeen = true; - } - - // Run only a limited number of timers based on the configured - // maximum. Note, we must always run our target timer however. - // Further timers that are ready will get picked up by their own - // nsITimer runnables when they execute. - // - // For chrome windows, however, we do coalesce all timers and - // do not yield the main thread. This is partly because we - // trust chrome windows not to misbehave and partly because a - // number of browser chrome tests have races that depend on this - // coalescing. - if (targetTimerSeen && - numTimersToRun >= gTargetMaxConsecutiveCallbacks && - !mWindow.IsChromeWindow()) { - break; - } } expiredIter.UpdateIterator(); } } // Maybe the timeout that the event was fired for has been deleted // and there are no others timeouts with deadlines that make them
--- a/mobile/android/app/mobile.js +++ b/mobile/android/app/mobile.js @@ -874,20 +874,16 @@ pref("dom.push.debug", false); // the App's sender ID; we bake this assumption directly into the URL. pref("dom.push.serverURL", "https://updates.push.services.mozilla.com/v1/gcm/@MOZ_ANDROID_GCM_SENDERID@"); pref("dom.push.maxRecentMessageIDsPerSubscription", 0); #ifdef MOZ_ANDROID_GCM pref("dom.push.enabled", true); #endif -// Maximum number of setTimeout()/setInterval() callbacks to run in a single -// event loop runnable. Minimum value of 1. -pref("dom.timeout.max_consecutive_callbacks", 3); - // The remote content URL where FxAccountsWebChannel messages originate. Must use HTTPS. pref("identity.fxaccounts.remote.webchannel.uri", "https://accounts.firefox.com"); // The remote URL of the Firefox Account profile server. pref("identity.fxaccounts.remote.profile.uri", "https://profile.accounts.firefox.com/v1"); // The remote URL of the Firefox Account oauth server. pref("identity.fxaccounts.remote.oauth.uri", "https://oauth.accounts.firefox.com/v1");
--- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js @@ -5692,20 +5692,16 @@ pref("browser.storageManager.pressureNot // when the page is reloaded. To turn this feature off, just set the limit to 0. pref("prompts.authentication_dialog_abuse_limit", 3); pref("dom.IntersectionObserver.enabled", true); // Whether module scripts (<script type="module">) are enabled for content. pref("dom.moduleScripts.enabled", false); -// Maximum number of setTimeout()/setInterval() callbacks to run in a single -// event loop runnable. Minimum value of 1. -pref("dom.timeout.max_consecutive_callbacks", 5); - // Maximum amount of time in milliseconds consecutive setTimeout()/setInterval() // callback are allowed to run before yielding the event loop. pref("dom.timeout.max_consecutive_callback_ms", 4); #ifdef FUZZING pref("fuzzing.enabled", false); #endif