After this patch, the testcase still triggers soft assertions like
ASSERTION: Placeholder relationship should have been torn down already;
this might mean we have a stray placeholder in the tree.
We have multiple bugs filed for this assertions such as bug 856269.
Differential Revision: https://phabricator.services.mozilla.com/D90760
The CI environment doesn't bootstrap/`create-mach-environment`, so
native modules (such as zstandard) aren't installed.
`./mach artifact install` is run in CI and needs `zstandard`, so we
must install it ad-hoc.
Differential Revision: https://phabricator.services.mozilla.com/D98794
A comma will separate the list of ranges, and a dash indicates a page range.
If the print preview returns an empty page, we send an update event
to display all pages and invalidate the form.
This patch also changes how we create deferred tasks and instead has the
PrintEventHandler create them. Depending on the type of setting changed,
the PrintEventHandler either immediately handles the event or arms the
delayed settings change task. If the input is invalid, we cancel the settings
change and disarm the task. We finalize any pending tasks when the user prints
and recreate them in case the print was "unsuccessful," meaning the form
is now invalid or the user cnacelled saving as a pdf.
Differential Revision: https://phabricator.services.mozilla.com/D95222
This adds Locale to MozIntl and uses it to replaces some instances where we
used regular expressions to parse language tags. It is based on work done by
André Bargull in Bug 1639515.
Differential Revision: https://phabricator.services.mozilla.com/D98393
Keeping MozIntl in sync with Intl will allow people to use MozIntl consistently
until we're ready to remove it completely. This is based on work done by André
Bargull for Bug 1639515.
Differential Revision: https://phabricator.services.mozilla.com/D98392
Not that we use RegionalPrefLocales rather than AppLocale in
xpc_LocalizeRuntime, the wrappers in MozIntl to set this up are no longer
needed.
Differential Revision: https://phabricator.services.mozilla.com/D98391
Aside from on Windows, we do not appear to handle device resets properly
without the GPU process. This patch adds in the necessary plumbing to
handle the device reset properly. It also ensures that whenever we check
for a device reset reason, we handle all of the reasons (e.g. not just
the NV video memory purge reset reason) to ensure they are not lost, and
handles them all consistently in the same manner.
It also tracks the number of device resets for thresholding purposes
with an in process compositor. While it will only disable WebRender on
Linux at this time, it will put a note in the critical log if the
threshold was exceeded on all platforms. This may prove useful in
evaluating whether or not we should do the same everywhere.
Differential Revision: https://phabricator.services.mozilla.com/D98705
If there is still a listener remaining when the reference count drops to 0,
HttpChannelChild::Release() dispatches a runnable to call DoNotifyListener.
This runnable will get an additional reference to the channel.
However, stabilization has already occurred, even though we decided to
not destroy the object. We need to take care to release that reference
in order to prevent a leak.
Along similar lines, we should not call NS_LOG_RELEASE with 0 as the
refcount in this case, because the refcount is not yet 0. In order to
deal with this, I pushed the single NS_LOG_RELEASE into the various
cases and then changed the way it worked for the DoNotifyListener case.
Differential Revision: https://phabricator.services.mozilla.com/D98532
Remove usage of the implicit prev pass alpha and color texture
samplers from batching / renderer / shader code. They are replaced
by explicit references to the texture ID for the source task.
Differential Revision: https://phabricator.services.mozilla.com/D98872
For debug builds, it seems we'd unexpectedly hit the AboutHomeStartupCache shutdown
timer when simulating shutdowns, which would put the cache entry into a half-written
state that risked confusing later tests.
This patch now makes sure that only tests that exercise/expect the timeout will hit it.
We also make sure to clear the cache of any half-written state after the
browser_shutdown_timeout.js test runs.
Differential Revision: https://phabricator.services.mozilla.com/D98828
TSan found races on these flags that are ostensibly benign but this way there's no UB.
This code is a bit weird. These bitfields are seemingly pointless as
they're squeezed between a uint64_t and an Atomic<bool>. There's plenty
of space for 2 more bools there.
Also the Atomic<bool> could theoretically be merged into the flags. For
now, here's the version of this patch that preserves the semantics of
this code as closely as possible, for review by the code owners.
Differential Revision: https://phabricator.services.mozilla.com/D93416
TSan found races between mResolveAgain and mGetTtl. This makes them non-UB.
The code is a bit weird. Although the values are typed as uint16_t's, they're
used as bools (even assigned true/false). In addition, the atomic bool mTRRUsed
could be folded into these fields, as there is a spare bit. I decided not to
change these things, as network code can have weird representation requirements
that I'd prefer the owners of the code chime in on first.
Differential Revision: https://phabricator.services.mozilla.com/D93417
clang 12 (specifically https://reviews.llvm.org/D91379) made some refactorings to libc++ that exposed a problem in the MinGW headers. That has now been fixed upstream.
In the meantime the headers also gained definitions for ProcessPayloadRestrictionPolicy, so we can remove our workaround for that.
Differential Revision: https://phabricator.services.mozilla.com/D98945
Telemetry indicated that setting various security state (in particular, CRLite
state) was causing main thread hangs due to base64 decoding. This patch
rearranges cert_storage slightly to do these decodings off the main thread.
Differential Revision: https://phabricator.services.mozilla.com/D98691
This matches the other paths further down in the same document.
I'm also adding some quotes because I was getting an "unknown target" error without them, but I'm not sure if the missing quotes were the reason or whether it just happened to succeed on the next try.
Depends on D98673
Differential Revision: https://phabricator.services.mozilla.com/D98674
Add the permission to the geckoview manifest, as previously attempted. Also disable failing tests
to enable a green test run. Add permission to adb.py grants list for good measure.
Differential Revision: https://phabricator.services.mozilla.com/D98809