Commit graph

76 commits

Author SHA1 Message Date
Andreas Farre
97fadb7f9e Bug 1373536 - Clean up static API of TimeoutBudgetManager. r=smaug
--HG--
extra : rebase_source : aaaf54c48d480473569bdc87c58bd1c1d88966fc
2017-06-19 10:11:47 +02:00
Andreas Farre
8d5f7ca0b5 Bug 1373536 - Move TimeoutBudgetManager to its own file. r=bkelly
--HG--
extra : rebase_source : bde692176b4cf01dd6d6aaf167a91acf6c92e504
2017-06-16 09:17:09 +02:00
Andreas Farre
4b620e2aca Bug 1373536 - Unify execution measurements. r=bkelly
Expose the utility framework for computing runnable execution time for
telemetry to be able to use it for managing budget times.

--HG--
extra : rebase_source : c7aba3d039116ed10597e7b58e2c6e7911cb493d
2017-05-30 13:08:11 +02:00
Sebastian Hengst
f38c7cdfa2 Backed out changeset 10676fd9e6ad (bug 1373536) for failing asan-fuzzing at dom/base/TimeoutHandler.h:26 with unknown type name 'NS_DECL_CYCLE_COLLECTION_CLASS' and more. r=backout 2017-06-20 17:47:54 +02:00
Sebastian Hengst
d569b67fe6 Backed out changeset 5bde0b2dd768 (bug 1373536) 2017-06-20 17:46:22 +02:00
Sebastian Hengst
9e2c8a5ab0 Backed out changeset d377000dbcc9 (bug 1373536) 2017-06-20 17:46:18 +02:00
Andreas Farre
7525173e5b Bug 1373536 - Clean up static API of TimeoutBudgetManager. r=smaug 2017-06-20 00:40:00 +02:00
Andreas Farre
3739a32604 Bug 1373536 - Move TimeoutBudgetManager to its own file. r=bkelly 2017-06-19 01:18:00 +02:00
Andreas Farre
094c0d5ecd Bug 1373536 - Unify execution measurements. r=bkelly
Expose the utility framework for computing runnable execution time for
telemetry to be able to use it for managing budget times.
2017-06-16 07:40:00 +02:00
Ben Kelly
4deac3f186 Bug 1371787 P8 Change Timeout::mInterval member to a TimeDuration. r=ehsan 2017-06-15 17:30:48 -07:00
Ben Kelly
310e665654 Bug 1371787 P7 Make CalculateDelay() return a TimeDuration. r=ehsan 2017-06-15 17:30:48 -07:00
Ben Kelly
36211ea11b Bug 1371787 P6 Move the std::max() calculation into DOMMinTimeoutValue() and rename the method to CalculateDelay(). r=ehsan 2017-06-15 17:30:47 -07:00
Ben Kelly
a0d3a469e4 Bug 1371787 P5 Move the Timeout conditional checking into DOMMinTimeoutValue(). r=ehsan 2017-06-15 17:30:47 -07:00
Ben Kelly
a720c757a3 Bug 1371787 P4 Pass Timeout to DOMMinTimeoutValue(). r=ehsan 2017-06-15 17:30:47 -07:00
Ben Kelly
9e7089aee3 Bug 1371787 P3 Move some Timeout initialization earlier. r=ehsan 2017-06-15 17:30:47 -07:00
Ben Kelly
36f2e5562d Bug 1371787 P2 Don't adjust Timeout::When() values in TimeoutManager::Resume(). r=ehsan 2017-06-15 17:30:47 -07:00
Ben Kelly
f4263c76a4 Bug 1371787 P1 Rename TimeoutManager "min timeout" values to "min clamp timeout" for clarity. r=ehsan 2017-06-15 17:30:47 -07:00
Ben Kelly
a3c8156b38 Bug 1371664 P4 Remove old TimeoutManager code that adjusted Timeout::When() while in background. r=ehsan 2017-06-13 18:08:28 -07:00
Ben Kelly
2771b377cb Bug 1371664 P3 Pass a minimum delay to TimeoutExecutor::MaybeSchedule() based on TimeoutManager::IsBackground(). r=ehsan 2017-06-13 18:08:27 -07:00
Ben Kelly
d959a50dfa Bug 1371664 P2 Make nsGlobalWindow::SetIsBackground() call new TimeoutManager::UpdateBackgroundState(). r=ehsan 2017-06-13 18:08:27 -07:00
Ben Kelly
b0069d1478 Bug 1371020 P3 Cleanup some IsFrozen()/IsSuspended() checking in TimeoutManager. r=ehsan 2017-06-08 19:13:37 -07:00
Ben Kelly
f120eee48f Bug 1371020 P2 Avoid scheduling TimeoutExecutor if the window becomes suspended in RunTimeout. r=ehsan 2017-06-08 19:13:37 -07:00
Ben Kelly
cef34aad9d Bug 1371020 P1 Avoid rescheduling the TimeoutExecutor in ClearTimeout() in some cases. r=ehsan 2017-06-08 19:13:36 -07:00
Ben Kelly
89441f5ad6 Bug 1370537 P2 Remove TimeoutManager::RunTimeout()'s last expired timeout reference. r=ehsan 2017-06-08 05:51:59 -07:00
Ben Kelly
f323cc363c Bug 1370537 P1 Stop iterating in TimeoutManager::RunTimeout() when we see an invalid firing ID. r=ehsan 2017-06-08 05:51:58 -07:00
Ben Kelly
cf2f97c065 Bug 1370025 P5 Remove the old TimeoutManager insertion point logic. r=ehsan 2017-06-05 12:42:33 -07:00
Ben Kelly
c2b540895d Bug 1370025 P4 Use FiringId validity in TimeoutManager::Timeouts::Insert() and ::ResetTimersForThrottleReduction(). r=ehsan 2017-06-05 12:42:33 -07:00
Ben Kelly
1cacde3284 Bug 1370025 P3 Give the Timeouts structure a reference back to its owning TimeoutManager. r=ehsan 2017-06-05 12:42:33 -07:00
Ben Kelly
c5ee173aaa Bug 1370025 P2 Add TimeoutManager::IsValidFiringId() helper routine. r=ehsan 2017-06-05 12:42:33 -07:00
Ben Kelly
dd9bba778b Bug 1370025 P1 Better optimize the single mFiringIdStack case in IsInvalidFiringId(). r=ehsan 2017-06-05 12:42:33 -07:00
Ben Kelly
9a57bd14ec Bug 1363829 P8 Remove TimeoutManager back pressure mechanism. r=smaug 2017-05-31 17:13:19 -07:00
Ben Kelly
f698e87bfb Bug 1363829 P6 Use the TimeoutExecutor in TimeoutManager. r=ehsan 2017-05-31 17:13:19 -07:00
Ben Kelly
e9e20536c7 Bug 1363829 P5 Add an executor class to represent the single timer executing timers for a window. r=ehsan 2017-05-31 17:13:19 -07:00
Ben Kelly
9c58cbc4d3 Bug 1363829 P4 Store the scheduled delay on Timeout instead of relying on the nsITimer to hold it. r=ehsan 2017-05-31 17:13:18 -07:00
Ben Kelly
5a9cd2b6fb Bug 1363829 P3 Improve Timeout ref counting to avoide bare AddRef/Release calls. r=ehsan 2017-05-31 17:13:18 -07:00
Ben Kelly
953ad6f162 Bug 1363829 P2 Removing the Timeout argument to TimeoutManager::RunTimeout(). r=ehsan 2017-05-31 17:13:18 -07:00
Ben Kelly
055afe6bd3 Bug 1363829 P1 Remove some deadcode in TimeoutManager related to processing pending timers. r=ehsan 2017-05-31 17:13:18 -07:00
Ehsan Akhgari
9e272b0923 Bug 1366812 - Account for the fact that the load event may fire even though mIsDocumentLoaded is true in TimeoutManager; r=cpearce a=topcrasher 2017-05-26 01:11:39 -04:00
Ehsan Akhgari
dfaa48605d Bug 1366812 - Initialize TimeoutManager::mThrottleTrackingTimeouts to false; r=smaug
This way we won't rely on code which may have potentially not run yet.
2017-05-24 14:48:53 -04:00
Andreas Farre
32f9f451fa Bug 1367025 - Don't start throttling delay timers while suspended. r=bkelly
From c350a6db4069d1a33a21546a287714bfe07e0590 Mon Sep 17 00:00:00 2001
---
 dom/base/TimeoutManager.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
2017-05-23 15:36:08 +02:00
Ben Kelly
0c0a1ef46b Bug 1343912 P5 Removed the fixed limit on consecutive Timeout callbacks. r=ehsan 2017-05-19 13:45:55 -07:00
Ben Kelly
07eac0b288 Bug 1343912 P4 Only execute consecutive timeout handlers for a limit period of time. r=ehsan 2017-05-19 13:45:55 -07:00
Ben Kelly
d642ac9124 Bug 1343912 P2 Change TimeoutManager firing depth to a unique ID that can be expired to optimize cleanup. r=ehsan 2017-05-19 13:45:55 -07:00
Ben Kelly
845f88bba1 Bug 1343912 P1 Cleanup logic in TimeoutManager::RunTimeout() to keep firing depth and other data consistent. r=ehsan 2017-05-19 13:45:55 -07:00
Andreas Farre
1494e1d3e8 Bug 1364858 - Make sure throttle timer isn't recreated. r=smaug
MozReview-Commit-ID: DU8ukd9JqI6
2017-05-19 16:07:52 +02:00
Andreas Farre
3ce44dbcc6 Bug 1355480 - Add telemetry for measuring timeout execution. r=smaug, data-r=bsmedberg
Measure execution time by adding telemetry probes for tracking
foreground, tracking background, non-tracking foreground and
non-tracking background timeouts.

--HG--
extra : source : 69439c0cd3e6d118681d1bb6586cb0a7b4bb85fc
2017-05-02 07:23:00 -04:00
Sebastian Hengst
2ed9a7bb99 Backed out changeset 69439c0cd3e6 (bug 1355480) on suspicion of triggering assertion CompositorThreadHolder::IsInCompositorThread() on Windows 8 x64 M-e10s. r=backout 2017-05-02 23:41:44 +02:00
Andreas Farre
0205fac807 Bug 1355480 - Add telemetry for measuring timeout execution. r=smaug, data-r=bsmedberg
Measure execution time by adding telemetry probes for tracking
foreground, tracking background, non-tracking foreground and
non-tracking background timeouts.

--HG--
extra : rebase_source : f638cc4422a777bbd093d5bbb2d5852c19b1c9d1
2017-05-02 07:23:00 -04:00
Andreas Farre
d91399fada Bug 1339909 - More eagarly clear throttle tracking timer. r=bkelly
Clear the throttle tracking timer in ClearAllTimeouts. Also clear it
in Suspend, and if mThrottleTrackingTimeouts isn't set restart the
timer if the document hasn't loaded.

--HG--
extra : rebase_source : 8be5570265adda22775f6bf7528e39dde855429f
2017-04-25 05:20:00 -04:00
Ben Kelly
ded5d4f5c4 Bug 1346426 Don't crash if a window is frozen while there is a dummy timer in the list. r=ehsan 2017-03-13 15:26:22 -04:00