There are a few wrinkles here:
1. Embedded langpack XPI files have central and local directory mismatches,
and `mozjar.py` and `UnpackFinder` don't read such files correctly, so we
need to use `unzip{.exe}` to unpack them. It's much faster to use
this approach than `mozjar.py` anyway.
2. Some accommodations are needed for multiple overlapping
distribution directories and in particular recognizing langpacks from
the existing MSIX package directory.
Differential Revision: https://phabricator.services.mozilla.com/D127583
Signed langpack XPI files produced by automation are ZIP files that
have central and local directory mismatches, which `mozjar.py` and
therefore `UnpackFinder` do not handle at this time. This flag, which
defaults to unpacking, allows to not unpack the embedded XPI files.
Differential Revision: https://phabricator.services.mozilla.com/D127582
I'm not sure this is the appropriate fix for this, honestly. This hits a crash
in some urlbar work on a different branch, and this change avoids that. If we
don't do this, then we end up with a popup in mPopups which never actually
opened, which seems to create problems. Alternatively, we could try to fix
the frame's state so that it can be opened? I don't know if that's sane or not.
It presently doesn't open because of the check on mPopupState inside
nsMenuPopupFrame::ShowPopup. I don't know if there's more state than that to
get it to appropriately open.
Differential Revision: https://phabricator.services.mozilla.com/D127758
This adds a workaround in the `browser_parsable_css.js` test for the autocomplete item stylesheets.
These stylesheets are loaded via chrome:// and so are privileged stylesheets, but in automation they are loaded as non-privileged stylesheets.
Since color-mix requires chrome privileges outside of Nightly, we need this workaround in order to not permanently fail when migrating from central to beta/release.
Differential Revision: https://phabricator.services.mozilla.com/D127314
The purpose of this patch is to remove LineBreaker::Prev(), and audit
the deprecated LineBreaker::DeprecatedNext() (added in bug 1733872).
Add blockquotecite gtest to make sure short line wrapping with
blockquote citation still works. The testcase's behavior is not changed.
Differential Revision: https://phabricator.services.mozilla.com/D127385
With this edge case explicitly considered, it will be easier for the
following patches to simplify logic in `FindWrapIndexForContent()`.
Differential Revision: https://phabricator.services.mozilla.com/D127382
This does a couple of things:
* Instead of using the `not_now` telemetry event object for the cases where the
dialog is closed by the Escape key or some other atypical way, reserve
`not_now` -- renamed `not_now_link` -- specifically for clicks on the "Not
now" link and add two new objects: `dismissed_escape_key` and
`dismissed_other`. That should give us a little better understanding of how
the dialog is being dismissed. The new `not_now_link` name is to avoid
conflation with the previous meaning of `not_now`.
* Add a new `browser.urlbar.quicksuggest.onboardingDialogChoice` pref that
stores exactly the same values as the telemetry event. e.g., if the dialog is
accepted, then we'll record a telemetry event whose object is `accept` and
we'll also store `accept` in the pref.
I figure if we decide to show the onboarding again for people who have already
seen it, (1) we'll use this pref to decide the flow for any given user, and (2)
we'll need to add another pref for the user's response to the "v2" dialog, or
maybe we could morph this one into an array of responses or something more
complex like that.
Differential Revision: https://phabricator.services.mozilla.com/D127354
2h is a bit short for video.
Percentage need to be linear and between 0 and 100. 50 buckets are good enough,
having 100 buckets doesn't work, it needs to be lower than the `high` value.
Differential Revision: https://phabricator.services.mozilla.com/D125846
The counter was paused, but `mIsMuted` was getting desynchronized. It's best to
reset the media element muted state, visibility and media content when paused,
they are set again properly in ::Play, preventing any issue.
It is necessary to reset the media content after reporting telemetry, because a
media content of MEDIA_HAS_NOTHING isn't reported.
Differential Revision: https://phabricator.services.mozilla.com/D125845
This was failing locally sometimes. Resolving a Promise is not very
deterministic: it can take some time, or be almost instantaneous. It's simpler
to block the main thread for a time duration longer than the clock resolution of
the OS. Generally, the worst clock resolution is on Windows, it's by default
16ms, and resolving a Promise is often a lot faster than 16ms, so we could have
had the same value here, but the code was correct. The reason that it passed was
because of this code. This is currently changing a lot in Windows, but 30ms is a
good middle ground I thought. The clock resolution on macOS/Linux
desktop/Android/anything else such as BSDs is a lot better than 16ms (in the
microsecond/nanosecond range depending on the kernel), so we're good there.
Differential Revision: https://phabricator.services.mozilla.com/D125082