Commit Graph

101 Commits

Author SHA1 Message Date
Ben Kelly
6b24f05f06 Bug 1450266 P3 Remove nsGlobalWindowInner::InnerObjectsFreed() in favor of IsDying(). r=smaug 2018-04-03 17:10:16 -07:00
Miko Mynttinen
86800aa3f1 Bug 1445302 - Replace TArray.RemoveElementAt(TArray.Length() - 1) pattern with TArray.RemoveLastElement() or TArray.PopLastElement() r=froydnj
MozReview-Commit-ID: rGjabnP2iz
2018-03-13 14:51:33 +01:00
Andreas Pehrson
ade94aca5e Bug 1299515 - Include nsContentUtils in TimeoutManager. r=mystor
The build is failing without this. Assuming I did something in an earlier patch
that either removed an nsContentUtils include or changed the order so it's not
available here.

MozReview-Commit-ID: Lsm8yhRbtFC
2017-12-06 12:56:32 +01:00
Nika Layzell
20ee9a4927 Bug 1419597 - Part 18: Remove IsInnerWindow and IsOuterWindow methods, r=smaug
MozReview-Commit-ID: DAAm6tLubhJ
2017-11-23 13:12:13 -05:00
Nika Layzell
c2a2aa6fc5 Bug 1419144 - Part 15: Move PopupControlState into nsContentUtils, r=smaug
MozReview-Commit-ID: Kt2moF5nsDg
2017-11-23 13:11:34 -05:00
Nika Layzell
d8c117bc28 Bug 1414974 - Part 2: Switch many consumers to nsGlobalWindow{Inner,Outer}, r=smaug
This is a large patch which tries to switch many of the external consumers of
nsGlobalWindow to instead use the new Inner or Outer variants.

MozReview-Commit-ID: 99648Lm46T5
2017-11-09 10:44:47 -05:00
Kris Maglione
7cdbf75d48 Bug 1404198: Part 2i - Switch to NS_NewTimer* in dom. r=njn
MozReview-Commit-ID: 8Oei6TuXNbu
2017-10-15 23:15:40 -07:00
Andreas Farre
c0153ce59d Bug 1403586 - Don't disble budget throttling due to gUM. r=smaug,padenot 2017-09-29 15:21:45 +02:00
Andreas Farre
f912b82fb5 Bug 1393359 - Register active user media on top level window. r=smaug,jib 2017-09-04 14:40:30 +02:00
Andreas Farre
0478fbfcb2 Bug 1393056 - Make it possible to count open WebSockets on the main thread. r=smaug 2017-09-01 10:36:49 +02:00
Andreas Farre
ccc9ffe1f1 Bug 1393764 - Reset execution budget if BudgetThrottlingEnabled returns false. r=bkelly
When BudgetThrottlingEnabled transitions from true to false, the
execution budget can be negative which will have the unfortunate
effect of limiting the number of timeouts run by
TimeoutManager::RunTimeout to zero. By resetting the execution budget
in UpdateBudget, when BudgetThrottlingEnabled returns false, we
prevent this loop from happening.
2017-08-29 16:44:24 +02:00
Andreas Farre
c24a0f0e19 Bug 1391602 - Clamp execution budget to a minimum value. r=bkelly 2017-08-24 10:35:45 +02:00
Henri Sivonen
e3e3eb5695 Bug 1378123 - Make inner window track whether there is an active PeerConnection. r=jib
MozReview-Commit-ID: 98Hwhnxtt1T
2017-08-04 13:28:15 +03:00
Kestrel
cb30f12dc8 Bug 918780 - Add new PopupControlState for permitting file/color picker popup regardless of dom_allowed_events. r=smaug
MozReview-Commit-ID: 1GbjQ6IkMsv
2016-04-24 04:49:00 +01:00
Andreas Farre
b5d4b07b1b Bug 1385238 - Reset execution budget when background state changes. r=bkelly 2017-07-28 09:31:00 -04:00
Bevis Tseng
59627df038 Bug 1382172 - Name nsITimerCallback instances in native implementation. r=billm 2017-07-27 02:18:20 +08:00
Andreas Farre
90477bf60f Bug 1382254 - Only disallow budget throttling. r=ehsan
Don't consider WebSockets, IndexedDB, etc when considering background
tabs for ordinary throttling since that makes us throttle way less
than we used to.
2017-07-26 13:37:08 +02:00
Bevis Tseng
85d5fa0e48 Bug 1384037 - Label ThrottleTimeoutsCallback. r=billm 2017-07-25 18:04:58 +08:00
Ben Kelly
b00eac146d Bug 1378586 P5 Don't force setInterval() to a min 1ms delay. r=farre 2017-07-25 08:35:12 -07:00
Ben Kelly
b237d4e7d9 Bug 1378586 P4 Clamp setInterval() based on nesting value instead of always. r=farre 2017-07-25 08:35:12 -07:00
Ben Kelly
8554a40e7c Bug 1378586 P2 Avoid Timeout mNestingLevel rollover by just limiting the value to the values we care about. r=farre 2017-07-25 08:35:12 -07:00
Ben Kelly
505bd948b7 Bug 1378586 P1 Track the nesting level on interval Timeout objects. r=farre 2017-07-25 08:35:12 -07:00
Ben Kelly
d0441a47ea Bug 1378394 P1 Calculate next setInterval() time from start of previous callback. r=farre 2017-07-06 07:01:40 -07:00
Andreas Farre
e8e3c685ac Bug 1362322 - Throttle background timeouts using budget. r=bkelly
Deduct timeout execution time from a continuously regenerating
execution budget. Then throttle timeouts by using that budget in
TimeoutManager::MinSchedulingDelay to adjust the minimum value if
the budget is negative. The minimum value is adjusted to be a
value where the budget would have regenerated to be +0 ms.

The execution budget is clamped by values in ms defined in prefs:

* dom.timeout.background_throttling_max_budget: 50
* dom.timeout.foreground_throttling_max_budget: -1

A value equal or less than 0 means that the budget is infinite.

The regeneration rate can be controlled by the following prefs:

* dom.timeout.background_budget_regeneration_rate
* dom.timeout.foreground_budget_regeneration_rate

one each for foreground and background throttling.

To not starve timeouts indefinitely we clamp the minimum delay using
the pref:

* dom.timeout.budget_throttling_max_delay: 15000

The feature is behind the pref:

* dom.timeout.enable_budget_timer_throttling
2017-07-02 18:02:38 +02:00
Ben Kelly
785a9817a4 Bug 1375287 Make TimeoutManager use a pref cache variable for dom.disable_open_click_delay. r=ehsan 2017-06-23 07:03:30 -07:00
Andreas Farre
7fba5882dd Bug 1373536 - Clean up static API of TimeoutBudgetManager. r=smaug 2017-06-19 10:11:47 +02:00
Andreas Farre
50c5a42af5 Bug 1373536 - Move TimeoutBudgetManager to its own file. r=bkelly 2017-06-16 09:17:09 +02:00
Andreas Farre
eb63589149 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-05-30 13:08:11 +02:00
Sebastian Hengst
b879d28128 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
f1aeafe17b Backed out changeset 5bde0b2dd768 (bug 1373536) 2017-06-20 17:46:22 +02:00
Sebastian Hengst
27a8e9ef06 Backed out changeset d377000dbcc9 (bug 1373536) 2017-06-20 17:46:18 +02:00
Andreas Farre
5a246772d0 Bug 1373536 - Clean up static API of TimeoutBudgetManager. r=smaug 2017-06-20 00:40:00 +02:00
Andreas Farre
8b8b571592 Bug 1373536 - Move TimeoutBudgetManager to its own file. r=bkelly 2017-06-19 01:18:00 +02:00
Andreas Farre
d7e4c73d5f 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
b7abc9fed8 Bug 1371787 P8 Change Timeout::mInterval member to a TimeDuration. r=ehsan 2017-06-15 17:30:48 -07:00
Ben Kelly
13b51e0da8 Bug 1371787 P7 Make CalculateDelay() return a TimeDuration. r=ehsan 2017-06-15 17:30:48 -07:00
Ben Kelly
a3a0824f2a 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
0b0cff3742 Bug 1371787 P5 Move the Timeout conditional checking into DOMMinTimeoutValue(). r=ehsan 2017-06-15 17:30:47 -07:00
Ben Kelly
0f8eebc74c Bug 1371787 P4 Pass Timeout to DOMMinTimeoutValue(). r=ehsan 2017-06-15 17:30:47 -07:00
Ben Kelly
ff37f2bc4c Bug 1371787 P3 Move some Timeout initialization earlier. r=ehsan 2017-06-15 17:30:47 -07:00
Ben Kelly
e92b8bfdb1 Bug 1371787 P2 Don't adjust Timeout::When() values in TimeoutManager::Resume(). r=ehsan 2017-06-15 17:30:47 -07:00
Ben Kelly
4a074d4186 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
7ad41638d7 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
b1f901e58b 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
25f85897ab Bug 1371664 P2 Make nsGlobalWindow::SetIsBackground() call new TimeoutManager::UpdateBackgroundState(). r=ehsan 2017-06-13 18:08:27 -07:00
Ben Kelly
79f927f616 Bug 1371020 P3 Cleanup some IsFrozen()/IsSuspended() checking in TimeoutManager. r=ehsan 2017-06-08 19:13:37 -07:00
Ben Kelly
1b3820e042 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
f0c4ee45a7 Bug 1371020 P1 Avoid rescheduling the TimeoutExecutor in ClearTimeout() in some cases. r=ehsan 2017-06-08 19:13:36 -07:00
Ben Kelly
3dad53eb71 Bug 1370537 P2 Remove TimeoutManager::RunTimeout()'s last expired timeout reference. r=ehsan 2017-06-08 05:51:59 -07:00
Ben Kelly
52ac523931 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