This also removes some tests of `MOZ_SELECTABLE_PROFILES` from `browser/components/profiles` files
where the test is pointless because that test is excluded from the build if `MOZ_SELECTABLE_PROFILES`
is unset.
Differential Revision: https://phabricator.services.mozilla.com/D227372
This also removes some tests of `MOZ_SELECTABLE_PROFILES` from `browser/components/profiles` files
where the test is pointless because that test is excluded from the build if `MOZ_SELECTABLE_PROFILES`
is unset.
Differential Revision: https://phabricator.services.mozilla.com/D227372
This also removes some tests of `MOZ_SELECTABLE_PROFILES` from `browser/components/profiles` files
where the test is pointless because that test is excluded from the build if `MOZ_SELECTABLE_PROFILES`
is unset.
Differential Revision: https://phabricator.services.mozilla.com/D227372
This also removes some tests of `MOZ_SELECTABLE_PROFILES` from `browser/components/profiles` files
where the test is pointless because that test is excluded from the build if `MOZ_SELECTABLE_PROFILES`
is unset.
Differential Revision: https://phabricator.services.mozilla.com/D227372
This also removes some tests of `MOZ_SELECTABLE_PROFILES` from `browser/components/profiles` files
where the test is pointless because that test is excluded from the build if `MOZ_SELECTABLE_PROFILES`
is unset.
Differential Revision: https://phabricator.services.mozilla.com/D227372
* Fix various z-index/paint order issues by making the urlbar a popover - which moves the open
urlbar to the top layer, outside the toolbox
* Adjust the urlbar position when the autohide menubar shows and hides
* Temporarily disable the browser_urlbar_keyed_search.js which needs revisiting to measure reflows under regular, non-test-specific conditions
Combines work from nsharpley and sfoster on top of emilio's original popover patch
Differential Revision: https://phabricator.services.mozilla.com/D224201
The message timings that were modified in this test are sent by the
GPUProcessManager, and this test was using WIN and !WIN as a proxy for
whether or not a GPU process was in place. The modifications here make
that more explicit, although they remain approximate. Anything that is
conditioned on GPUPROCESS needs to "ignoreIfUnused" because those
markers will be sent or not sent depending on the presence of the GPU
process, which has complex controls not completely covered by the logic
in this test.
Differential Revision: https://phabricator.services.mozilla.com/D225565
The message timings that were modified in this test are sent by the
GPUProcessManager, and this test was using WIN and !WIN as a proxy for
whether or not a GPU process was in place. The modifications here make
that more explicit, although they remain approximate. Anything that is
conditioned on GPUPROCESS needs to "ignoreIfUnused" because those
markers will be sent or not sent depending on the presence of the GPU
process, which has complex controls not completely covered by the logic
in this test.
Differential Revision: https://phabricator.services.mozilla.com/D225565
Due to changes in how processes are selected when doing BFCached
navigations, the process will be re-used for the navigation meaning we
no longer need to add logic explicitly keeping it alive.
This also tweaks the code which checks this to explicitly stop checking
any keepProcessesAlive prefs for these origin-specific remote types.
Differential Revision: https://phabricator.services.mozilla.com/D220191
1. Modify nsToolkitProfileService to support roaming profiles passed in
via the "-profile /path/to/profile/" command line option but not
present in profiles.ini.
With this patch, when a profile is supplied via the "-profile
/path/to/profile/" command line option, if the root dir path is not found
in profiles.ini, and if its path is a relative path, then we either use or
create a corresponding local dir.
Previously for unmanaged profiles, we would not look for a local dir,
instead just using the root dir to hold the various local ephemeral
caches. This change is necessary to prevent degraded filesystem
performance for roaming / enterprise users who adopt selectable
profiles.
This patch also adds roaming profile support for profiles passed in
via XRE_PROFILE_PATH, finding/creating a local dir if the root dir is
relative, event if XRE_PROFILE_LOCAL_PATH is null or does not exist.
These environment variables are typically set as part of an app-managed
restart, for example, after choosing a profile in the Profile Manager.
2. Add a new method to the SelectableProfileService to launch a new
Firefox instance, using --profile to pass an unmanaged profile path.
This is necessary because selectable profiles will not be listed in
profiles.ini, but users will need to launch them by selecting them in
UI entries (like menu items).
3. Refactor some duplicated code into `EnsureDirExists` and
`GetLocalDirFromRootDir` helpers in nsToolkitProfileService.
See also bug 1913383 for further planned cleanup work.
4. Add a groupProfile property to nsToolkitProfileService.
This ensures SelectableProfileService.#groupToolkitProfile will always
be set, so that we can set or unset rootDir and StoreID as users upgrade
to multiple profiles, launch Firefox from a selectable profile, or
downgrade back to a single profile.
Differential Revision: https://phabricator.services.mozilla.com/D218149
gNotificationBox doesn't go there anymore (it goes inside the toolbox),
so we have really no use for that.
Simplify how the devtools theme is set on the browser, so that it is set
on the root.
Differential Revision: https://phabricator.services.mozilla.com/D220769
Hopefully this comment and marker will make it so that we don't have to
chase any ghosts in rr in the future to understand what dirtyFrame is
doing!
Differential Revision: https://phabricator.services.mozilla.com/D215794
This is a fairly significant patch, however it would be difficult to break it
down into smaller patches:
1) The various mechanisms used to manage ContentParent lifecycles have been
merged together into a common "KeepAlive" system. A process will
begin shutdown when its keepalive count reaches 0. (though it will
still wait for all BrowserParents to also be dead before sending the
actual shutdown message as before).
This replaces a number of bespoke systems for tracking BrowserParent
instances in different lifecycle states, remote workers, ongoing
process switches, and preallocated processes.
2) KeepAlives are now managed automatically by a UniquePtr variant
(Unique[Threadsafe]ContentParentKeepAlive). This makes the hand-off
over KeepAlive lifecycles explicit, even for workers.
3) All KeepAlives are now keyed by a BrowserId, which will be 0 for keepalives
not associated with a specific tab. This allows the new process
selection logic to count all tabs other than the one being navigated
when deciding which process to use.
4) The process switching logic now tracks it's KeepAlive with a BrowserId,
meaning that ongoing process switches are considered when performing
process selection, even if the BrowserParent hasn't been created yet.
Differential Revision: https://phabricator.services.mozilla.com/D213338
This is a fairly significant patch, however it would be difficult to break it
down into smaller patches:
1) The various mechanisms used to manage ContentParent lifecycles have been
merged together into a common "KeepAlive" system. A process will
begin shutdown when its keepalive count reaches 0. (though it will
still wait for all BrowserParents to also be dead before sending the
actual shutdown message as before).
This replaces a number of bespoke systems for tracking BrowserParent
instances in different lifecycle states, remote workers, ongoing
process switches, and preallocated processes.
2) KeepAlives are now managed automatically by a UniquePtr variant
(Unique[Threadsafe]ContentParentKeepAlive). This makes the hand-off
over KeepAlive lifecycles explicit, even for workers.
3) All KeepAlives are now keyed by a BrowserId, which will be 0 for keepalives
not associated with a specific tab. This allows the new process
selection logic to count all tabs other than the one being navigated
when deciding which process to use.
4) The process switching logic now tracks it's KeepAlive with a BrowserId,
meaning that ongoing process switches are considered when performing
process selection, even if the BrowserParent hasn't been created yet.
Differential Revision: https://phabricator.services.mozilla.com/D213338
This is a fairly significant patch, however it would be difficult to break it
down into smaller patches:
1) The various mechanisms used to manage ContentParent lifecycles have been
merged together into a common "KeepAlive" system. A process will
begin shutdown when its keepalive count reaches 0. (though it will
still wait for all BrowserParents to also be dead before sending the
actual shutdown message as before).
This replaces a number of bespoke systems for tracking BrowserParent
instances in different lifecycle states, remote workers, ongoing
process switches, and preallocated processes.
2) KeepAlives are now managed automatically by a UniquePtr variant
(Unique[Threadsafe]ContentParentKeepAlive). This makes the hand-off
over KeepAlive lifecycles explicit, even for workers.
3) All KeepAlives are now keyed by a BrowserId, which will be 0 for keepalives
not associated with a specific tab. This allows the new process
selection logic to count all tabs other than the one being navigated
when deciding which process to use.
4) The process switching logic now tracks it's KeepAlive with a BrowserId,
meaning that ongoing process switches are considered when performing
process selection, even if the BrowserParent hasn't been created yet.
Differential Revision: https://phabricator.services.mozilla.com/D213338
If there is at least one record for expected I/O, but all of them have
`ignoreIfUnused: true`, and no I/O is reported, then the tests should
succeed (they are all unused and thus ignored). There's a check which
expects to see I/O markers in that case, so this patch conditionally
skips it. (Also: fix some pre-existing typos pointed out in review.)
Differential Revision: https://phabricator.services.mozilla.com/D212632