Guard against nullptr access of missing p.impl.
Also change LinkStatus so is_initialized is no longer true and calling
code can early out if bind_program fails.
Differential Revision: https://phabricator.services.mozilla.com/D81421
The clones appear to be so that access for the tree view in preferences is quick. However, they don't need to clone the entire engine object - they just need three fields.
Additionally, this fixes reloading icons which was attempting to use 'uri' but that isn't defined, and so icons would fail to load if preferences was opened when a search engine is added.
Differential Revision: https://phabricator.services.mozilla.com/D80496
This patch additionally makes the search cache responsible for listening to notifications rather than being directly told by the search service to write the cache.
It also makes writes after init/reinit/maybeReloadEngines into delayed writes as they don't need to be immediate - the code already ensures we write any pending cache before reading, and that we write it before shutdown. Therefore, it doesn't matter if we wait a second or so.
Differential Revision: https://phabricator.services.mozilla.com/D80472
This patch makes it so whenever we encounter a corrupt database file we recrate
it and backup the corrupt file to a folder in the profile.
Differential Revision: https://phabricator.services.mozilla.com/D80051
Apparently I added these in the initial commit for RecursiveMutex. I'm
not quite sure what I was thinking, but we don't need them for the
RecursiveMutex itself. (We have them on the corresponding `*Auto*Lock`
classes, which are also `MOZ_RAII`.)
Differential Revision: https://phabricator.services.mozilla.com/D81345
When parsing frames, we only need to retrieve the first "@" index to split
the frame string and get the function name on one side, and the location on the
other side.
This patch removes the regex-based search we were doing for a simpler character
search. A test is added to ensure this works as expected, and snapshots that were
highlighting the issue are updated.
Differential Revision: https://phabricator.services.mozilla.com/D81519
Rather than sending the strings down to the content process and back up instead
have the content process just send the media type which when prefixed with
`media-` gives us the fluent ID for the string. Ideally this would allow us to
just set that as the `data-l10n-id` for the items but since this tree is
generated by a custom `nsITreeView` implementation that isn't an option so this
still caches the strings on load.
A single formatValues call will be more performant.
Differential Revision: https://phabricator.services.mozilla.com/D77897
Optional Chain had two cases where, on failure, instead of returning false we were returning true. This patch fixes the issue.
Differential Revision: https://phabricator.services.mozilla.com/D79682
Errors during async generator operations can close the generator but leave
entries in the Debugger::generatorFrames map. This trips up asserts in the
single-step code. Since a closed generator will not match the targettedScript
we simply ignore such entries while checking the assert.
Differential Revision: https://phabricator.services.mozilla.com/D81552
Right now we are running `Coverity Static Analysis` for each merge to `mozilla-central`,
this is suboptimal since the resources required to do so are very expensive. It's
enough to run it once a day.
Differential Revision: https://phabricator.services.mozilla.com/D81510
It seems the window location isn't the issue here at all.
Rather, we never get the expected a11y events.
So, let's try to find out what events we *do* get.
Differential Revision: https://phabricator.services.mozilla.com/D81478
Previously, this returned a value if the ARIA value rule was not eNoValue, which covered eHasValueMinMaxIfFocusable.
However, eHasValueMinMaxIfFocusable needs the focusable state to be checked.
Rather than checking the value rule directly, just use HasNumericValue(), which already knows how to handle this.
Differential Revision: https://phabricator.services.mozilla.com/D81483
We were only checking a number of received resources, and as we're listening to
the parent process, any error messages emitted by the platform would hinder the
test. This patch changes the test to expect specific resources instead.
Differential Revision: https://phabricator.services.mozilla.com/D81354
This is a partial step towards a larger change. The goal of this and the
follow up patches is to move the tile cache instances to be stored in
the render backend, rather than inside the picture / primitive tree.
This will allow better caching of dependency and visibility state
across both frame and scene builds for primitives. This has the potential
to significantly reduce or eliminate the amount of work we do per-frame
to track per-primitive visibility, clip-chain state and tile assignments.
A longer term goal is to allow correlating up-to-date tile caches with
pipeline display lists that haven't changed. This would allow WR to
skip scene building for content display lists that haven't changed, if
only the outer pipeline content has changed.
Differential Revision: https://phabricator.services.mozilla.com/D81284
In various parts of the picture and mask code, we were casting
the `clipped` rect to i32 (after rounding out). However, this
can cause overflow panics when the origin of the rect is too big.
Instead, treat the origin as f32 (which it was generally being
converted to anyway), and only cast the size part to be i32 as
required. This is safe since we know that the size has been
clipped to the visible screen, so will always be safe to cast
to i32.
Differential Revision: https://phabricator.services.mozilla.com/D80968
Thunderbird is not in the collected products, but the test runs. Avoid the failure by collecting data during the test.
Differential Revision: https://phabricator.services.mozilla.com/D81450