We'll want to make some changes to this test when we enable e10s-multi by
default, but for now we just need to update the name of the single content
process to reflect the naming changes that were done in part 1 of this
patch series.
Differential Revision: https://phabricator.services.mozilla.com/D65641
--HG--
extra : moz-landing-system : lando
We change a lot of things in this patch:
* `ChildConnection` now inherits from `ServiceAllocator.InstanceInfo`, which
imbues the former with service allocation superpowers.
* We remove the `IBinder.linkToDeath` call and the `IBinder.DeathRecipient`
callback; a close review of the service binding APIs (and the actual
Android source code) clearly shows that
`ServiceConnection.onServiceDisconnected` already performs that role.
* We also greatly simplify unbinding, as a successful `Context.unbindService`
call does not require a subsequent `onServiceDisconnected` notification;
The `ServiceConnection` callbacks should be thought of as pertaining to
the acquisition and loss of `Binder` connections. On that note, to improve
the clarity of what those callbacks do, we now implement them as
`onBinderConnected` and `onBinderConnectionLost` overrides originating from
`ServiceAllocator.InstanceInfo`.
* We add the `ConnectionManager` class which handles the organization of
tracking which processes exist with which pid. Its public methods are named
such that it should be very clear what their purposes are.
* This patch adds a minimal amount of priority management code to
`ConnectionManager`. Right now we assume that everything is running at
`PriorityLevel.FOREGROUND` (i.e. `Context.BIND_IMPORTANT`). This will be
further improved in bug 1620145.
Differential Revision: https://phabricator.services.mozilla.com/D65640
--HG--
extra : moz-landing-system : lando
For testing purposes, we'll only support 3 at the moment.
Note that this does not materially affect our test builds, as e10s-multi is
still govered by the `dom.ipc.processCount` Gecko pref.
Differential Revision: https://phabricator.services.mozilla.com/D65639
--HG--
extra : moz-landing-system : lando
`ServiceAllocator` wraps the various `Context.bindService` APIs and manages
the allocation of service names (in the case of non-isolated services) or
instance names (in the case of isolated services on Android 10+).
During the first allocation of a content process, we construct a policy that
is used for all content process allocations.
The `DefaultContentPolicy` computes the maximum number of content processes
and then allocates those names using a `BitSet`.
The `IsolatedContentPolicy` tracks the number of live content processes, but
simply uses a monotonically-increasing counter for generating instance IDs.
This patch also adds a `ServiceUtils` class that contains numerous functions
relating to generating service names and retrieving information about
service definitions in this package.
* Content processes are now named `tab0` through `tabN`. When a single content
process name is used (either for single-e10s or for the process name
used by isolated services), we always use `tab0`.
* I am not wedded to the names of the priorities used in the `PriorityLevel`
enum -- suggestions welcome!
* Some of the `ServiceUtils` functions could arguably go into `ContextUtils`
instead, but I thought that this was fine since they are fairly specific
to this use case.
* Further modifications will need to be made to support multiple priorities.
This patch is enough to get everything up and running for testing, with
further prioritization work being done in bug 1620145.
Differential Revision: https://phabricator.services.mozilla.com/D65636
--HG--
extra : moz-landing-system : lando
We'll want to make some changes to this test when we enable e10s-multi by
default, but for now we just need to update the name of the single content
process to reflect the naming changes that were done in part 1 of this
patch series.
Differential Revision: https://phabricator.services.mozilla.com/D65641
--HG--
extra : moz-landing-system : lando
We change a lot of things in this patch:
* `ChildConnection` now inherits from `ServiceAllocator.InstanceInfo`, which
imbues the former with service allocation superpowers.
* We remove the `IBinder.linkToDeath` call and the `IBinder.DeathRecipient`
callback; a close review of the service binding APIs (and the actual
Android source code) clearly shows that
`ServiceConnection.onServiceDisconnected` already performs that role.
* We also greatly simplify unbinding, as a successful `Context.unbindService`
call does not require a subsequent `onServiceDisconnected` notification;
The `ServiceConnection` callbacks should be thought of as pertaining to
the acquisition and loss of `Binder` connections. On that note, to improve
the clarity of what those callbacks do, we now implement them as
`onBinderConnected` and `onBinderConnectionLost` overrides originating from
`ServiceAllocator.InstanceInfo`.
* We add the `ConnectionManager` class which handles the organization of
tracking which processes exist with which pid. Its public methods are named
such that it should be very clear what their purposes are.
* This patch adds a minimal amount of priority management code to
`ConnectionManager`. Right now we assume that everything is running at
`PriorityLevel.FOREGROUND` (i.e. `Context.BIND_IMPORTANT`). This will be
further improved in bug 1620145.
Differential Revision: https://phabricator.services.mozilla.com/D65640
--HG--
extra : moz-landing-system : lando
For testing purposes, we'll only support 3 at the moment.
Note that this does not materially affect our test builds, as e10s-multi is
still govered by the `dom.ipc.processCount` Gecko pref.
Differential Revision: https://phabricator.services.mozilla.com/D65639
--HG--
extra : moz-landing-system : lando
`ServiceAllocator` wraps the various `Context.bindService` APIs and manages
the allocation of service names (in the case of non-isolated services) or
instance names (in the case of isolated services on Android 10+).
During the first allocation of a content process, we construct a policy that
is used for all content process allocations.
The `DefaultContentPolicy` computes the maximum number of content processes
and then allocates those names using a `BitSet`.
The `IsolatedContentPolicy` tracks the number of live content processes, but
simply uses a monotonically-increasing counter for generating instance IDs.
This patch also adds a `ServiceUtils` class that contains numerous functions
relating to generating service names and retrieving information about
service definitions in this package.
* Content processes are now named `tab0` through `tabN`. When a single content
process name is used (either for single-e10s or for the process name
used by isolated services), we always use `tab0`.
* I am not wedded to the names of the priorities used in the `PriorityLevel`
enum -- suggestions welcome!
* Some of the `ServiceUtils` functions could arguably go into `ContextUtils`
instead, but I thought that this was fine since they are fairly specific
to this use case.
* Further modifications will need to be made to support multiple priorities.
This patch is enough to get everything up and running for testing, with
further prioritization work being done in bug 1620145.
Differential Revision: https://phabricator.services.mozilla.com/D65636
--HG--
extra : moz-landing-system : lando
Add GeckoSession.PermissionDelegate.PERMISSION_MEDIA_KEY_SYSTEM_ACCESS
for when media.eme.require-app-approval=true
Differential Revision: https://phabricator.services.mozilla.com/D65423
--HG--
extra : moz-landing-system : lando
Currently the preferences for remote profiling are stored on the debuggee. This leads
to a negative user experience, as oftentimes phones do not persist the preferences.
This patch changes the strategy to store one set of preferences for local profiling,
and a second set of preferences for remote profiling.
Differential Revision: https://phabricator.services.mozilla.com/D65148
--HG--
extra : moz-landing-system : lando
This removes the obsolete backend. Notes on some of the less obvious changes
made as part of this patch:
- some of the gFoo style getters in Blocklist.jsm were only used by the XML
version of the blocklist; I've removed them and tried to remove spurious
settings of those properties in the remaining tests.
- some utility methods (e.g. distribution information getters) were also only
used for the XML version (for the update URL).
- it's no longer necessary to test switching implementations.
- in browser/base/content/test/plugins/, we ran some tests from two manifests
in order to run them with both blocklist backends. The simplest way of
reducing this back down to one was to remove the remote-settings one. If I'd
been more future-oriented when I created the duplication, perhaps I would
have moved the XML version out into a different manifest instead, but I
didn't, so now it looks like we're removing the modern one, whereas really
we're going to be running the modern one as part of the "normal" tests and
we're no longer running the "old" tests.
- removed all mentions I could see of extensions.blocklist.url which is no
longer used for anything.
- per https://bugzilla.mozilla.org/show_bug.cgi?id=1016555#c23, updated
references for the OneCRL timing and how it relates to blocklist updates.
Differential Revision: https://phabricator.services.mozilla.com/D64933
--HG--
extra : moz-landing-system : lando
We won't need these suspend states anymore which were used for media control and audio focus on Fennec.
Differential Revision: https://phabricator.services.mozilla.com/D65265
--HG--
extra : moz-landing-system : lando
Mistakenly removed these lines which are still needed until we remove the
deprecated API.
Differential Revision: https://phabricator.services.mozilla.com/D65594
--HG--
extra : moz-landing-system : lando
An extension with an onUpdateAvailable listener should delay automatic
updating of the extension until the app is restarted. Add support for this
state and reject the update result with a new install error code.
Differential Revision: https://phabricator.services.mozilla.com/D65228
--HG--
extra : moz-landing-system : lando
Before this patch, the TabDelegate was "special" as in it had just one global
delegate that receives events for all extensions and sessions. This was done to
allow mochitests to call tabs.create and tabs.remove.
This hack is no longer needed as now we can notify the embedding layer that a
new extension has been installed and we have a way to list currently installed
extensions.
This patch makes TabDelegate behave the same as the other delegates
(ActionDelegate and MessageDelegate) and will allow further simplications of
the WebExtension Delegate code.
Differential Revision: https://phabricator.services.mozilla.com/D64799
--HG--
extra : moz-landing-system : lando
Android does not currently have anything similar to a 'required' state
to indicate that a field or input is required before submission. In this
patch we append a localized "required" string onto the node's hint.
The hint typically has the description of the node. If the node is an
entry the hint will have its label followed by the description.
Differential Revision: https://phabricator.services.mozilla.com/D65215
--HG--
extra : moz-landing-system : lando