It would otherwise triggers browser/base/content/test/performance/browser_preferences_usage.js
That pref would have been checked with every single load, a staticpref is O-1 .
Differential Revision: https://phabricator.services.mozilla.com/D76317
The moves all decisions to perform a process switch into the DocumentLoadListerner. This removes the unnecessary need to go via a content process to start the load.
Differential Revision: https://phabricator.services.mozilla.com/D76315
This patch separates SceneBuilderRequest into two enums: One we'll be able to send from the api, and containing types that shouldn't move to the webrender_api crate. For example LoadScene depends on the Scene struct and at this point a quarter of webrender's types would need to move to webrender_api.
This solution is a bit iffy but I'm not sure how to better do this. If we don't need strict ordering, moving to crossbeam's queue which support select would let us at least avoid sending dummy BackendMessage to instruct the scene builder thread to look into the other queue.
This patch should not change the current behavior except for one (important) detail: all messages that use BackendSceneBuilderMessage have to go through the low priority scene queue instead of the high priority one. This affects the capture stuff, I think that it's still correct but I'm not familiar enough with it to be sure.
Differential Revision: https://phabricator.services.mozilla.com/D72717
One of the last steps towards letting the api send scene building requests directly. I'll clean up the names after everything is in place.
Differential Revision: https://phabricator.services.mozilla.com/D74054
Things are better and we don't tend to be shader execution bound.
Let's find out if there's a reason to not be on gt1
Differential Revision: https://phabricator.services.mozilla.com/D76479
This makes it more obvious that we are using the same scrollDelta for adjusting
the displayport as we are for populating the callback transform. Instead of
computing the same value inside a helper, we just provide the helper with the
already-computed delta that is used for the callback transform too.
Differential Revision: https://phabricator.services.mozilla.com/D76297
This patch changes over all of the logging to use the structured mozlog package.
I also ensured that the messages were logged in a way to be useful for end users
of mochitests. This means there were a few small changes in methods in order to
accommodate the logging. The behavior outside of logging should be the same.
Differential Revision: https://phabricator.services.mozilla.com/D74291
I need to add symbolication support for the mochitest Gecko Profiler command line
option. These profiles also need to be symbolicated. Unfortunately, there is not
a common place where I could use these files. Talos and Raptor each had their
own copy of the snappy symbolication server.
This commit consolidates these packages into a re-usable mozbase package that can
be used in mochitests, and eventually in other places like xpcshell tests.
I stubbed out a test file, but it doesn't do anything quite yet. This commit makes
it so that the tests still work in Raptor and Talos, but doesn't add any features.
It also doesn't try too hard to make the files look like a mozbase package.
Differential Revision: https://phabricator.services.mozilla.com/D74289
This commit adds the option to profile a mochitest run, and then open
the profile automatically in the users browser.
Differential Revision: https://phabricator.services.mozilla.com/D70090
The current implementation opens the built Firefox in the objdir. This is not
optimal as the built Firefox is not really great for viewing files in. The build
could be broken. With this patch, the profiles will instead be opened in the users
default browser.
Differential Revision: https://phabricator.services.mozilla.com/D70089
Milliseconds after landing the parent patch, I realized that I had not actually uploaded the changes to address the review comments.
Differential Revision: https://phabricator.services.mozilla.com/D76380
This changes the urlbar to always generate a result and then confirm it through
pickResult. This way we obtain a consistent behavior independently from whether
the view has a result or an action like Paste&Go happened.
Before this we used to go through getShortcutOrURIAndPostData, that implements
only a part of the urlbar logic, often causing different behavior depending on
the view state, and thus requiring constant maintenance to sync it up.
In a follow-up bug we will evaluate the complete removal of
getShortcutOrURIAndPostData in favor of direct calls to
UrlbarUtils.getHeuristicResultFor().
This also moves up a bit closer to always pass a final url to the docshell, and
stop trying to do complex URIFixup calls in it. For now we still rely
on its fix-ups for browser.fixup.dns_first_for_single_words, where we pass a
url, and if it's invalid it will instead search. See UrlbarUtils.RESULT_TYPE.URL
handling in pickResult().
Differential Revision: https://phabricator.services.mozilla.com/D75911
This changes both the spellchecker parent code that interfaces with the
InlineSpellCheckerParent actor, and the child code interfacing with the
ContextMenuChild actor, to ensure they get notified when either actor
goes away.
It maintains the "uninit" messages to clear out spellcheck data when the
context menu goes away (while the window / actors remain intact).
It also adds some belts-and-suspenders type checks that allow us to
recover if we ever get in a bad state again, instead of stubbornly
throwing exceptions and breaking the UI for users.
Differential Revision: https://phabricator.services.mozilla.com/D75228
This also uses MakeUniqueForOverwrite* in two places where we immediately copy
over the Buffer from a Span.
Adds move assignment operator as well.
Differential Revision: https://phabricator.services.mozilla.com/D75510
These are the equivalent of std::make_unique_for_overwrite and std::make_unique_for_overwrite with fallible allocation.
Differential Revision: https://phabricator.services.mozilla.com/D75509
Our ETP backend adds the storage permission asynchronously when adding
storage access. So, we have to wait the permission is ready in the
parent process before cleaning up. Otherwise, we will have a incorrect
state after the test.
Differential Revision: https://phabricator.services.mozilla.com/D76372
Some pages created nesting levels of scroll roots where the outer
scroll frames are redundant (the scrollable size is zero if the
content rect is the same as the frame rect).
In these cases, it is of no benefit to select these as a scroll
root for picture cache tiles.
Differential Revision: https://phabricator.services.mozilla.com/D75451