Commit Graph

334 Commits

Author SHA1 Message Date
Bevis Tseng
d05ffe5ac0 Bug 1352401 - Part 1: Define IndexedDB Counters in TabGroup and nsGlobalWindow. r=smaug
MozReview-Commit-ID: 4UCPvNv1paD
2017-04-18 18:21:34 +08:00
Olli Pettay
b52ee413c5 Bug 1374416 - don't dispatch the selectionchange event for pages that don't have such a listener registered, r=mystor 2017-06-22 21:01:27 +03:00
Bevis Tseng
38b75abc22 Backed out changeset 70d068cc946d (Bug 1374675) 2017-06-21 11:02:48 +08:00
Bevis Tseng
56add7c29b Bug 1352401 - Part 1: Define IndexedDB Counters in TabGroup and nsGlobalWindow. r=smaug
MozReview-Commit-ID: 4UCPvNv1paD
2017-04-18 18:21:34 +08:00
Bill McCloskey
85355b4f89 Bug 1372733 - EventTargetFor should return an nsISerialEventTarget (r=bkelly)
MozReview-Commit-ID: Kchg4kqBERt
2017-06-15 20:16:25 -07:00
Ryan Hunt
8647454930 Bug 1373285 - Remove keyboard apz telemetry probes. r=smaug
These are no longer needed as we have the data we were looking for.

MozReview-Commit-ID: 3WlPng3mAwt
2017-06-15 13:55:26 -05:00
Michael Layzell
0cf1b46232 Bug 1367458 - Manage TabGroup::IsBackground passively to avoid Runnable overhead, r=ehsan
MozReview-Commit-ID: 9HVvV1omF8G
2017-06-13 12:49:30 -04:00
Carsten "Tomcat" Book
2fc015db6f Backed out changeset be04f96bf78b (bug 1347791) 2017-05-17 08:11:09 +02:00
Alastor Wu
2f0347a5b4 Bug 1347791 - part2 : the tab would always be resumed when it goes to foreground first time. r=baku
Since now we move the block/resume logic to front-end side, we can remove
the changing from bug1319771 and other related bugs which are used to ensure the
pinned tab should be blocked successfully after session restore.

MozReview-Commit-ID: Ixe7tOvCEhv
2017-05-17 11:56:03 +08:00
Andrea Marchesini
5af136db77 Bug 1363395 - nsGlobalWindow::GetLocation should support to be called on the outer window, r=smaug 2017-05-09 22:41:19 +02:00
Andrea Marchesini
43341968d2 Bug 1362003 - nsGlobalWindow::GetLocation doesn't need to receive an ErrorResult param, r=bz
Renaming nsGlobalWindow::GetLocation() to Location().
2017-05-08 15:49:31 +02:00
Ryan Hunt
760eb21393 Bug 1357880 - Add a telemetry probe for mousemove event listeners r=smaug, data-review=bsmedberg
This commit adds a telemetry probe to determine the percentage of pages
that ever have a 'mousemove' event listener added to the DOM. This is for
determining how often APZ key scrolling could handle interleaved mousemove
events.

A flag is added to nsPIDOMWindow to track whether a qualifying event
listener was ever added to the DOM for this window, and is updated by
EventListenerManager. There are several other similar flags to this.

The probe is reported in nsGlobalWindow::FreeInnerObjects() so that it
can be compared exactly with the non-passive keyboard listener APZ probe.

MozReview-Commit-ID: DqqCfrdRCGp
2017-04-26 18:56:51 -04:00
Andreas Farre
341eb7be49 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.
2017-04-25 05:20:00 -04:00
L. David Baron
d1b825be2d Bug 1307134 - Rename nsGlobalWindow::EnsureSizeUpToDate to EnsureSizeAndPositionUpToDate. r=tnikkel
This is because it does ensure both, and some of the callers care about
size and some care about position.

MozReview-Commit-ID: 3e8II6Lf72X
2017-04-18 11:28:52 +09:00
L. David Baron
97cf276734 Bug 1307134 - Only flush in ancestor documents for window.mozInnerScreenX/Y. r=tnikkel
This reduces the amount of flushing we do when these APIs are called on
the root document, but increases the amount of flushing we do (probably
fixing existing bugs) when these APIs are called in a document at depth
three or more (if you consider the root depth one).

I considered the idea of adding a EnsurePositionUpToDate alias, but it
seems that some of the existing users of EnsureSizeUpToDate actually
care about position (e.g.,
nsLayoutUtils::GetDeviceContextForScreenInfo), so I just added a comment
instead.

MozReview-Commit-ID: B3L5DDQ5krc
2017-04-18 11:28:50 +09:00
Alastor Wu
c49d1c3d44 Bug 1347758 - part1 : window should know whehter there is any alive media component and decide to resume the tab or not. r=Ehsan
We should let window decide whether resume the media component, not document.
Because we might have media component which is not in DOM tree, but we still
want to play it.

Window should be resumed when all following conditions are true,
(1) the tab is in the foreground
(2) there is any alive media component (MediaElement/WebAudio/PlugIn...)
(3) the window is blocked (nsISuspendedTypes::SUSPENDED_BLOCK)

MozReview-Commit-ID: JXw5MA4FCxF
2017-03-24 14:43:26 +08:00
Iris Hsiao
a501d530f1 Backed out 6 changesets (bug 1347758) for eslint failure
Backed out changeset 9becd55242c1 (bug 1347758)
Backed out changeset 2abce19f5001 (bug 1347758)
Backed out changeset 80232d4c85d5 (bug 1347758)
Backed out changeset 1fd084ec34d4 (bug 1347758)
Backed out changeset cafb3c12027b (bug 1347758)
Backed out changeset 85846edfe957 (bug 1347758)
2017-03-24 16:58:08 +08:00
Alastor Wu
70f4131dc4 Bug 1347758 - part1 : window should know whehter there is any alive media component and decide to resume the tab or not. r=Ehsan
We should let window decide whether resume the media component, not document.
Because we might have media component which is not in DOM tree, but we still
want to play it.

Window should be resumed when all following conditions are true,
(1) the tab is in the foreground
(2) there is any alive media component (MediaElement/WebAudio/PlugIn...)
(3) the window is blocked (nsISuspendedTypes::SUSPENDED_BLOCK)

MozReview-Commit-ID: JXw5MA4FCxF
2017-03-24 12:01:43 +08:00
Ben Kelly
9d775ade42 Bug 1340201 Expose IsTopLevelWindow() and HadOriginalOpener() on nsPIDOMWindowOuter. r=bz 2017-02-16 14:39:28 -05:00
Bill McCloskey
4a1cd90b0e Bug 1337537 - Move Dispatcher.{cpp,h} to xpcom/threads (r=froydnj)
MozReview-Commit-ID: AYyKynUv4bX
2017-02-13 17:02:48 -08:00
Ehsan Akhgari
2a63a861b1 Bug 1336484 - Don't throttle timeouts in background tabs that are playing audio; r=baku
In websites such as Facebook Live, timeout chains are used to drive the
playback of a video or something similar in JavaScript.  Throttling the
minimum timeout values a tab playing a video from such websites in the
background could make the timeout based scheduling of video playback to
not work correctly, and cause audio buffer under-runs that are audible.

In order to address this, other major browsers don't throttle timeouts
in tabs that are playing audio.  This brings us to parity to other
browsers (even though we already do this for websites that use Web Audio
since we've had similar bug reports using the Web Audio API.)

The current audio agent setup that drives the tab audio notification
icons is currently tracking whether a Window is playing audio.  We use
this setup to decide whether to throttle timeouts when a window goes
into background.
2017-02-10 12:08:25 -05:00
Alastor Wu
f221f7b8c8 Bug 1328058 - part1 : notify block-stop event when the tab was resumed. r=baku
In present design, the tab would hide the unblocking icon when receives
the audio-playback event, but it means we can't hide the icon if the media isn't
audible.

For example, we won't show the unblocking icon for audio with audio track, but
we show the icon for audio with silent audio track which can only be detected
after starting decoding.

In this case, we can't receive the audio-playback after resuming that media.
Therefore, we should dispatch the different event to notify tab UI that the
tab has already been resumed.

MozReview-Commit-ID: 3xCWQU7nVCl
2017-02-03 14:47:08 +08:00
Phil Ringnalda
54d1f898e0 Backed out 5 changesets (bug 1328058) for timing out in browser_block_silentAudioTrack_media.js
CLOSED TREE

Backed out changeset 0c48cff3db5d (bug 1328058)
Backed out changeset 37d35ca95b1f (bug 1328058)
Backed out changeset 0c177bdf5ec3 (bug 1328058)
Backed out changeset b369d9999b8a (bug 1328058)
Backed out changeset 61dbcbe35565 (bug 1328058)
2017-02-02 20:59:34 -08:00
Alastor Wu
e88f65c8de Bug 1328058 - part1 : notify block-stop event when the tab was resumed. r=baku
In present design, the tab would hide the unblocking icon when receives
the audio-playback event, but it means we can't hide the icon if the media isn't
audible.

For example, we won't show the unblocking icon for audio with audio track, but
we show the icon for audio with silent audio track which can only be detected
after starting decoding.

In this case, we can't receive the audio-playback after resuming that media.
Therefore, we should dispatch the different event to notify tab UI that the
tab has already been resumed.

MozReview-Commit-ID: 3xCWQU7nVCl
2017-02-03 11:25:04 +08:00
Alastor Wu
9b3c33d251 Bug 1319771 - part2 : resume foreground window if it was still be blocked. r=baku
In previous patch, we modify the behavior of nsDocument, now it would only resume
window when document has active media components.

However, it causes another issue. If the tab really goes to foreground, but
there is no active media component, the tab would still be blocked and it won't
be resumed anymore.

Therefore, we need to resume it by ourself if the tab is on the foreground but
doesn't be resumed yet.

MozReview-Commit-ID: EdnQ7sRkSJK
2017-02-03 10:50:07 +08:00
Michael Layzell
f41da1d9f2 Bug 1331087 - Part 1: Disable the largeAllocation header by default outside of Win32 builds, r=ehsan
MozReview-Commit-ID: 4jUFLv4fMZa
2017-01-31 14:08:20 -05:00
Bill McCloskey
be49fc768f Bug 1332494 - Move TaskCategory definition to xpcom/threads/TaskCategory.h (r=froydnj)
MozReview-Commit-ID: ET43PbGRgxl
2017-01-26 14:45:58 -08:00
Kate McKinley
0277b62d89 Bug 1329940 - Ignore window.opener for password manager warnings r=baku,jwatt,MattN
MozReview-Commit-ID: KiIR6WEddgO
2017-01-12 16:57:44 -08:00
Michael Layzell
578b151b40 Bug 1331525 - Send the Large-Allocation success message to the correct document, r=ehsan
MozReview-Commit-ID: E44hlMI2EE3
2017-01-19 15:26:28 -05:00
Bill McCloskey
d34d4e1c67 Bug 1320753 - Make TabGroup event target be a ThrottledEventQueue for timers, workers (r=bkelly)
MozReview-Commit-ID: FCfYz02r8yI
2016-12-23 11:48:13 -08:00
Boris Zbarsky
3873abb4ad Bug 1320801 part 5. Switch from ShouldResistFingerprinting to ResistFingerprinting (use the caller type, not the document principal) in nsGlobalWindow's devicePixelRatio getter. r=bkelly 2016-12-22 11:05:54 -08:00
Ehsan Akhgari
3684e4e8de Bug 1323203 - Devirtualize nsPIDOMWindow::IsRunningTimeout(); r=bkelly 2016-12-13 14:27:03 -05:00
Ehsan Akhgari
ba45de7747 Bug 1321903 - Refactor the timeout/interval management code out of nsGlobalWindow; r=bkelly
This code now lives in TimeoutManager.  Note that this is a transition
state, the Timeout list management code also needs to be refactored out
later.

In order to simplify the lifetime management of the new class, its
lifetime is equal to the lifetime of its containing nsGlobalWindow.  In
a few places where we need to dispatch runnables to do asynchronous work
on this object, we hold the containing window alive to guarantee safety.

This patch also removes a bit of dead code that was left over from the
code removed in bug 1281793. See:
https://hg.mozilla.org/mozilla-central/rev/0ac748f4d677#l1.63
2016-12-13 14:08:47 -05:00
Andrea Marchesini
e9eb01bb25 Bug 1321270 - Get rid of nsIWindowCreator2::PARENT_IS_LOADING_OR_RUNNING_TIMEOUT, r=smaug 2016-12-01 08:49:46 +01:00
Bill McCloskey
85fe8298e7 Bug 1320753 - Refactor for new event target idea (r=ehsan)
MozReview-Commit-ID: AyhemNqBedb
2016-11-30 18:01:59 -08:00
Carsten "Tomcat" Book
3e625cc406 Backed out changeset 7c0ca61c3552 (bug 1321270) for bustage 2016-11-30 16:46:25 +01:00
Andrea Marchesini
ad75482c53 Bug 1321270 - Get rid of nsIWindowCreator2::PARENT_IS_LOADING_OR_RUNNING_TIMEOUT, r=smaug 2016-11-30 16:26:27 +01:00
Ben Kelly
5d7c863dbe Bug 1300659 P2 Expose a ThrottledEventQueue on TabGroup and nsPIDOMWindow. r=smaug 2016-11-07 12:30:17 -08:00
Andreas Farre
95c440b772 Bug 1198381 - Move/rename nsTimeout to Timeout, r=smaug
MozReview-Commit-ID: 1WrH2ZbOuzj
2016-08-22 14:52:19 +02:00
Michael Layzell
beeb5c8509 Bug 1310778 - Move TabGroup and GetDocGroup accessors onto nsPIDOMWindow{Inner,Outer}, r=smaug
MozReview-Commit-ID: Hl0QVktr0Lw
2016-10-28 15:38:28 -04:00
Ben Kelly
3140345d73 Bug 1303167 P6 Rename new suspend and freeze methods to final names. r=smaug 2016-10-26 10:20:16 -07:00
Ben Kelly
10cbf7084c Bug 1303167 P3 Remove old window suspend and freeze methods. r=smaug 2016-10-26 10:20:15 -07:00
Ben Kelly
45fce3ebba Bug 1303167 P1 Add new window suspend and freeze methods. r=smaug
* * *
Bug 1303167 P1 Interdiff 001 Address review feedback
2016-10-26 10:20:15 -07:00
Carsten "Tomcat" Book
be05d6bf8b Backed out changeset 228cc133fe6b (bug 1198381) for causing increased number of hangs in navigate() in marionette tests 2016-10-25 12:34:22 +02:00
Andreas Farre
f291dc880c Bug 1198381 - Move/rename nsTimeout to Timeout, r=smaug
MozReview-Commit-ID: 1WrH2ZbOuzj
2016-08-22 14:52:19 +02:00
Boris Zbarsky
f869bdf12e Bug 1222516 part 2. Add a window API for opening a window passing through a boolean indicating that no opener should be set on the result. r=mconley 2016-10-20 16:52:38 -04:00
Boris Zbarsky
c955e0d4e5 Bug 1222516 part 1. Add a window API for opening a window with navigation and a given docshell loadinfo to use for the navigation. r=mconley
This will be used to pass through information like the triggering principal and
whatnot, as well as the boolean for not sending a referrer, for rel=noreferrer
links.
2016-10-20 16:52:38 -04:00
John Dai
3aaae2af88 Bug 1309140 - Rename CustomElementsRegistry to CustomElementRegistry. r=wchen, r=smaug
MozReview-Commit-ID: 3gYTaRVcV0y
2016-10-12 15:26:02 +08:00
Boris Zbarsky
04f9a09ee5 Bug 1269052 part 2. Add IsSecureContext on nsPIDOMWindowInner. r=bkelly 2016-10-10 15:09:00 -04:00
Andrea Marchesini
4156a8473d Bug 1306232 - Use NeedsSubjectPrincipal in Window, r=ehsan 2016-09-29 16:14:42 +02:00