It would be good for us to know how many websites actually use MediaSession API to control (play/pause/stop) their media playback, an how many websites use our default handler.
Differential Revision: https://phabricator.services.mozilla.com/D93283
Each platform has different ways to allow users to use media control, adding a telemetry probe to detect that would be good for us to know the usage among different platforms.
Differential Revision: https://phabricator.services.mozilla.com/D93282
By not re-using the "remote-listening" observer topic in Marionette
allows us to send different data through the observer notification.
This also prevents a crash in the Remote Agent component, which
expects a string, and not a boolean value to receive in data.
Differential Revision: https://phabricator.services.mozilla.com/D93513
This fixes bug 1542660 for the usual case (no direct eval, less than
ParseContext::GeneratorFixedSlotLimit locals), so this adds a unit test
contributed by Mathieu Hofman in that bug.
Differential Revision: https://phabricator.services.mozilla.com/D93386
Without these changes, the tests fail because the engine returns
`{optimizedOut: true}` for some uses of `frame.environment.getVariable` and
`frame.this`. The right solution involves teaching
`DebugEnvironmentProxyHandler::handleUnaliasedAccess` how to access suspended
`GeneratorObject` state.
Differential Revision: https://phabricator.services.mozilla.com/D93388
No effect yet, since there are no stack locals to copy. Without this change,
storing generator locals in the stack would cause several debugger tests to
fail.
Differential Revision: https://phabricator.services.mozilla.com/D93387
No immediate effect, but when we start optimizing generator locals into stack
slots later in this stack, we do not want to optimize `.generator`, as e.g.
js::GetGeneratorObjectForFrame assumes it is stored in the CallObject.
Before this patch, there was no way in the frontend to force binding to be
closed-over.
Previously reviewed by jandem as part of D93381.
Depends on D93381
Differential Revision: https://phabricator.services.mozilla.com/D93647
See the comment.
https://phabricator.services.mozilla.com/D90808 made it so that we
reused the print document (and thus <browser>) to do the actual print
job.
When a print job finishes, we call window.close(), which is used as a
signal to the front-end to clean up the <browser> element. Before that
patch we sent that signal to the browser created in printUtils.js, but
afterwards we send it to the preview window which causes this badness
when the event bubbles up.
Ignoring it effectively restores the previous behavior, so let's do it.
Differential Revision: https://phabricator.services.mozilla.com/D93499
`toolkit/components/pictureinpicture/tests/browser_fullscreen.js` is
no longer intermittently failing to `requestFullscreen()` after this
change. The test was creating the PiP window with
`triggerPictureInPicture` and then immediately moving focus to the
original window where fullscreen is requested. It's possible that
the browser had not given focus to the PiP window yet and would do
so after the test had changed the focus. This would cause
`requestFullscreen()` to be called without focus on the proper
window.
We now wait for the PiP window to recieve focus before resolving
the promise returned by `triggerPictureInPicture`. This might
fix other intermittent tests if they rely on specific focus and
make use of this function.
Differential Revision: https://phabricator.services.mozilla.com/D93595
This adds a FormatDateTime method that takes a skeleton as an argument and
returns the localized date and time according to the skeleton. In the future,
we'll add an overload that allows taking an DateTimeOptions property bag, but
for now, this will provide enough functionality to allow us to remove the
kDateFormatYearMonth and kDateFormatYearMonthLong selectors as well as the code
for handling skeletons from FormatPRExplodedTime.
Differential Revision: https://phabricator.services.mozilla.com/D93012
This renames kTimeFormatSeconds to kTimeFormatLong and kTimeFormatNoSeconds to
kTimeFormatShort. This is consistent with the naming used for date format
selectors.
Differential Revision: https://phabricator.services.mozilla.com/D93011