Includes a configured max rid length, since it is not very reasonable to assume
that rids of length 255 are supported by the RTP engine, regardless of what
the IETF specs say.
Differential Revision: https://phabricator.services.mozilla.com/D156832
JsepTrack used to be in charge of this, but because JSEP doesn't negotiate
encoding constraints, it did not make sense to delegate this to the JSEP code.
Differential Revision: https://phabricator.services.mozilla.com/D156831
The spec has settled on not allowing these constraints to be negotiated, so all
that is left is the negotiation of the set of rids.
Also, add an include to eliminate some bot spam.
Differential Revision: https://phabricator.services.mozilla.com/D156830
Most of the member types in the data structure for [Serializable],
[Transferable], and `FrameData` are the same. They should be reused as
much as possible to lower the maintenance effort.
Depends on D163196
Differential Revision: https://phabricator.services.mozilla.com/D163197
Add a same-origin check to ensure transferring VideoFrame from one
origin to another doesn't work. Without the check, VideoFrames can be
transferred across the origins when e10s is disabled.
Depends on D163194
Differential Revision: https://phabricator.services.mozilla.com/D163195
On the build types where child processes need to go through full
shutdown to write some kind of logs or data (debug / refcount logging,
sanitizers, code coverage), the parent process currently waits forever
for them to exit and blocks its own shutdown to do so. If we were to
time out and kill the child processes, test runs would fail due to
missing the log files they were expected to write; instead, they fail
and blame the parent process for not exiting, which is not especially
helpful.
What we'd like is to know the state of the child process that's failing
to exit. This patch attempts to get a crash report in that situation; on
Unix we send SIGABRT, and on Windows we inject a thread that calls
DbgBreakPoint, both of which result in invoking our crash reporter.
Differential Revision: https://phabricator.services.mozilla.com/D161098
When we're writing to the crash annotation pipe in a child process
exception handler, it can fail if the parent process has already closed
the reading end during the `GeckoChildProcessHost` destructor (i.e., if
the crash happens late in shutdown), and probably for other reasons.
This patch checks for that error case and stops writing; previously we'd
get into an infinite loop.
Differential Revision: https://phabricator.services.mozilla.com/D163297
Note: NSPagesAcross/NSPagesDown is internal API to Apple and is basically
unknown to the Internet. I discovered it by digging through printing structs in
a debugger while trying to find out how the pages-per-sheet information was
being communicated internally in Cocoa. However, after finding it, I see Google
knows about a grand total of 18 pages on the Internet that mention it, all as
part of debug info dumps. That's still helpful though, since it shows that
these two dictionary entries have been in use since at least 2008, giving some
confidence about backwards compatibility and that it will likely remain in use.
Related to these dictionary keys, Apple's official documentation claims that
there are similarly named keys called NSPrintPagesAcross/NSPrintPagesDown:
https://developer.apple.com/documentation/appkit/nsprintpagesacrosshttps://developer.apple.com/documentation/appkit/nsprintpagesdown
However, I couldn't get those to work, either to read values or to set values.
The references I could find to them on the Internet were in debug output and
people also stating they couldn't get them to work. I have to wonder if someone
at Apple changed the names at some point and forgot to update the
documentation?!
Finally, note that NSPrintPagesPerSheet is long deprecated and nowadays just
has a dummy value of "1" hardcoded.
https://developer.apple.com/documentation/appkit/nsprintpagespersheet
Differential Revision: https://phabricator.services.mozilla.com/D164317
This includes some key metrics from the default profile targeting
state in the background update Glean telemetry. It will allow us to
measure the incidence of missing and malformed targeting state JSON,
and how many background update clients have been lapsed for how long.
This in turn will help us understand if the lapsed experiment
targeting is working correctly.
Differential Revision: https://phabricator.services.mozilla.com/D164026
Including the Glean client ID allows to join the background update
`metrics` ping to Glean `events` pings, something we can't currently
do.
This allows to differentiate pings sent as part of the task and pings
queued and sent by Glean, potentially on a different schedule. This
might have helped debug some incoming data issues a while back.
Including the Legacy client ID allows us to more easily join `events`
pings to Legacy telemetry. `background_update.client_id` could as
well _be_ `legacy.telemetry.client_id`, but the background update
`client_id` is that of the *default* profile, not the background task
profile, so conflating the two would likely cause confusion.
Differential Revision: https://phabricator.services.mozilla.com/D164025
This patch implements the async shutdown blocker for
CookieBannerDomainPrefService. The shutdwon blocker blocks the shutdown
phase 'profile-before-change', ensuring the writing operation of content
pref completes before we shutdown. We will remove the blocker once
writing finishes.
Differential Revision: https://phabricator.services.mozilla.com/D164242
Unfortunately, since NSS can prompt for PKCS#11 authentication on the main
thread, the prompt in question results in a nested event loop, which means that
the prompt code can be re-entered and another prompt can appear before the
first is dealt with. As long as NSS can run on the main thread, this will
continue to be the case. Recently we've done a lot of work to prevent NSS
running on the main thread, but that work is by no means complete. In the
meantime, we can paper over this situation by cancelling any prompts that come
after one that is still in progress. This will cause some NSS operations to
fail in a way that should be recoverable by simply retrying them (e.g. the user
can refresh the page or close and re-open it).
Differential Revision: https://phabricator.services.mozilla.com/D164280
The previous implementation used some heavyweight, outdated, and unnecessary
components to achieve its effect. This patch greatly simplifies the
implementation.
Differential Revision: https://phabricator.services.mozilla.com/D164279
Resolving a regression caused by the bug 1676068 where NumLock state is inverted for `<input type=date>`, `<input type=time>`, and `<input type=datetime-local>` input boxes.
The code removed was introduced as a remediation to the bug 1314544 with the `keyCode` attribute used which was since deprecated.
Differential Revision: https://phabricator.services.mozilla.com/D164515
Currently we are sending some values, such as principals, from the content
process when handling clicks from the ClickHandler actor. This information is
already available in the parent process on WindowGlobalParent, so changes the
code to fetch the values from there instead.
Differential Revision: https://phabricator.services.mozilla.com/D161836
Currently we are sending some values, such as principals, from the content
process when creating a nsContextMenu. This information is already available in
the parent process on WindowGlobalParent, so changes the code to fetch the
values from there instead.
Differential Revision: https://phabricator.services.mozilla.com/D161835
These interfaces are already disabled by prefs, but they are ironically
probably not well tested, so just add an extra check.
Differential Revision: https://phabricator.services.mozilla.com/D164496
This removes a custom version of AutoSuppressGCAnalysis that wasn't really
needed and replaces increment with assignment in gbd-tests.cpp.
Differential Revision: https://phabricator.services.mozilla.com/D164576
The problem is that marking the test mark queue goes wrong when computing
non-incremental marking state because the current sweep group index is still
set from the last collection.
The patch clears the previous state at the start of collection.
This only affects incremental marking validation.
Differential Revision: https://phabricator.services.mozilla.com/D164463
This doesn't fix the failing test case, although it does survive two more GC
slices with this patch.
This saves and restores state related to the test mark queue while doing
non-incremental marking for later marking validation. Without this we do the
test queue marking as part of non-incremental marking and then don't do it for
the actual marking, leading to a discrepancy.
Differential Revision: https://phabricator.services.mozilla.com/D164246