[Gecko iOS] Use BrowserEngineKit to start content processes
Categories
(Firefox for iOS :: General, enhancement)
Tracking
()
People
(Reporter: nika, Assigned: nika)
References
(Blocks 2 open bugs)
Details
Attachments
(3 files, 2 obsolete files)
Apple has released new APIs to allow building alternative browser engines for iOS in the EU. This patch is to track an initial prototype implementation of launching child processes in Gecko-iOS's ExampleBrowser using these new BrowserEngineKit APIs.
Documentation: https://developer.apple.com/documentation/browserenginekit
Assignee | ||
Comment 1•7 months ago
|
||
This is a helper smart pointer type for working with Darwin OS data structures.
The code has been directly adapted from WebKit's OSObjectPtr type. This will be
used on iOS to manage the lifecycles of xpc objects.
Assignee | ||
Comment 2•7 months ago
|
||
The existing behaviour attempted to access UIKit from within a content process,
which would not work correctly. After some testing, it turned out the existing
code also always returned a null string, so it's been hard-coded to a temporary value.
Depends on D202522
Assignee | ||
Comment 3•7 months ago
|
||
This new logic is based on the regex from android-components, and allows
entering internal URLs like about:about
into the URL bar, which can be useful
when testing.
Depends on D202523
Assignee | ||
Comment 4•7 months ago
|
||
These changes switch Gecko-iOS to using BrowserEngineKit's ExtensionKit-based
processes to start content processes on iOS. These processes are started with
an initial xpc connection, which is then used to communicate a command line,
initial file descriptors and environment variables before invoking
content_process_main.
The XPC connection is not used further after the bootstrap message, which seems
to roughly match how WebKit uses these APIs.
3 separate extensions have been added for Networking, Rendering and WebContent,
as is required by iOS. Currently these appear to fully duplicate XUL and its
resources between each extension, despite the code being all bundled into a
shared framework.
Depends on D202524
Updated•7 months ago
|
Updated•7 months ago
|
Updated•7 months ago
|
Updated•7 months ago
|
Comment 6•7 months ago
|
||
Updated•7 months ago
|
Updated•7 months ago
|
Updated•7 months ago
|
Comment 8•6 months ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/a8260a45c5c9
https://hg.mozilla.org/mozilla-central/rev/71179f624966
https://hg.mozilla.org/mozilla-central/rev/5079ead12099
https://hg.mozilla.org/mozilla-central/rev/babb5943701f
Description
•