Commit Graph

486 Commits

Author SHA1 Message Date
Andrew McCreight
179c12c3e5 Bug 1609815 - Remove Web Replay C++ implementation. r=jgilbert,jandem,gbrown
Patch by bhackett and jlaster. Also reviewed by mccr8.

Differential Revision: https://phabricator.services.mozilla.com/D60197
2020-02-27 04:43:48 +00:00
Sylvestre Ledru
230ce836cb Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan,kvark
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D63787
2020-02-24 15:33:38 +00:00
Michael Froman
e57c261849 Bug 1611290 - Windows sandbox for socket process. r=bobowen
Differential Revision: https://phabricator.services.mozilla.com/D62772
2020-02-21 15:49:54 +00:00
Dave Townsend
5b5455eebc Bug 1531475: Drop the greomni and appomni command line arguments. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D58851
2020-01-07 14:29:50 +00:00
David Teller
1ebfe67bf5 Bug 1605072 - Rewriting ContentParent::GetNewOrUsedBrowserProcess;r=nika
Differential Revision: https://phabricator.services.mozilla.com/D60499
2020-02-18 18:53:17 +00:00
Arthur Iakab
00deebd9ef Backed out 2 changesets (bug 1605072) for causing reftest failures with splitText-normalize.html.
CLOSED TREE

Backed out changeset f9d038830cda (bug 1605072)
Backed out changeset 9431489d2688 (bug 1605072)
2020-02-18 17:58:31 +02:00
David Teller
3a492cfdc0 Bug 1605072 - Rewriting ContentParent::GetNewOrUsedBrowserProcess;r=nika
Differential Revision: https://phabricator.services.mozilla.com/D60499
2020-02-18 14:02:01 +00:00
shindli
ce5bebbc3d Backed out 2 changesets (bug 1605072) for causing reftest failures in layout/reftests/selection/splitText-normalize-ref.html CLOSED TREE
Backed out changeset 973f1e5baebf (bug 1605072)
Backed out changeset 038b50303733 (bug 1605072)
2020-02-17 21:39:58 +02:00
David Teller
1b86937ce1 Bug 1605072 - Rewriting ContentParent::GetNewOrUsedBrowserProcess;r=nika
Differential Revision: https://phabricator.services.mozilla.com/D60499
2020-02-17 17:31:32 +00:00
Thinker Li
4d8b9cba25 Bug 1609881 - Part 1: put the fork server behind a preference. r=gsvelto
Differential Revision: https://phabricator.services.mozilla.com/D61141
2020-02-12 16:57:39 +00:00
Jed Davis
033ceeb8ca Bug 1611547 - Fix MacProcessLauncher to close the IPC client pipe. r=froydnj
MacProcessLauncher overrides DoFinishLaunch from PosixProcessLauncher,
but doesn't call the superclass method, so CloseClientFileDescriptor is
never called on the channel.

Currently this doesn't cause any obvious problems, because the channel
object redundantly closes the fd when it first reads data from the child
process; however, that extra close is thread-unsafe and being removed in
bug 1607153.

Trying to fix bug 1607153 without this patch caused a number of test
suites to fail by timing out, probably because the extra copy of the
client (child) end of the pipe causes the server (parent) end to never
get an end-of-file or broken pipe error during shutdown.

Differential Revision: https://phabricator.services.mozilla.com/D61050
2020-01-28 12:56:46 +00:00
Aaron Klotz
c5883a0281 Bug 1595834: Make GeckoProcessManager interface e10s-multi aware; r=snorp
This patch does not change any of the *internals* of process management in
`GeckoProcessManager`, however it upgrades the interface in preparation for
such changes.

* We add a java equivalent to Gecko's `GeckoProcessType` enumeration;
* We add the `GeckoProcessType.Selector` class which will be used for
  identifying running content processes;
* We update `ContentParent::MarkAsDead` to use `GeckoProcessType.Selector` for
  indicating which process should be marked.

Differential Revision: https://phabricator.services.mozilla.com/D60539
2020-01-23 18:12:51 +00:00
Sylvestre Ledru
36a1079e0f Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D58175
2020-01-09 21:50:11 +00:00
Thinker Li
11d615bf66 Bug 1470591 - Part 5: ForkServer to create new processes. r=gsvelto
Class ForkServer and class ForkServiceChild are implemented.  The
chrome process can ask the fork server process to create content
processes.  The requests are sent by MiniTransceiver over a socket.
The fork server replys with the process IDs/handles of created
processes.

LaunchOptions::use_forkserver is a boolean.  With use_forkserver being
true, the chrome process sends a request to the fork server instead of
forking directly.

Depends on D46881

Differential Revision: https://phabricator.services.mozilla.com/D46883
2019-12-05 00:05:21 +00:00
Bogdan Tara
d189c284d3 Backed out 6 changesets (bug 1470591) for test_punycodeURIs & test_nsIProcess* crashes CLOSED TREE
Backed out changeset 3ca19f8f388e (bug 1470591)
Backed out changeset f80db6e63169 (bug 1470591)
Backed out changeset cbac2d7dfe42 (bug 1470591)
Backed out changeset daad4d736ec0 (bug 1470591)
Backed out changeset ca1b804d404a (bug 1470591)
Backed out changeset a10772f780f7 (bug 1470591)
2019-12-04 00:53:14 +02:00
Thinker Li
c149e05d27 Bug 1470591 - Part 5: ForkServer to create new processes. r=gsvelto
Class ForkServer and class ForkServiceChild are implemented.  The
chrome process can ask the fork server process to create content
processes.  The requests are sent by MiniTransceiver over a socket.
The fork server replys with the process IDs/handles of created
processes.

LaunchOptions::use_forkserver is a boolean.  With use_forkserver being
true, the chrome process sends a request to the fork server instead of
forking directly.

Depends on D46881

Differential Revision: https://phabricator.services.mozilla.com/D46883
2019-12-03 19:27:32 +00:00
Sylvestre Ledru
0f8c6db00f Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D54686
2019-11-26 14:35:02 +00:00
Andrew McCreight
1880f405e2 Bug 1598787 - Rename XRE_ChildProcessTypeToString to XRE_GeckoProcessTypeToString. r=froydnj
This function works on all GeckoProcessTypes, not just those for child
processes.

Differential Revision: https://phabricator.services.mozilla.com/D54375
2019-11-25 22:45:31 +00:00
Coroiu Cristina
db1bc576f3 Backed out changeset 8f52344661fe (bug 1598787) for build bustages at build/src/tools/fuzzing/faulty/Faulty.cpp on a CLOSED TREE 2019-11-26 00:22:28 +02:00
Andrew McCreight
eee8ed540a Bug 1598787 - Rename XRE_ChildProcessTypeToString to XRE_GeckoProcessTypeToString. r=froydnj
This function works on all GeckoProcessTypes, not just those for child
processes.

Differential Revision: https://phabricator.services.mozilla.com/D54375
2019-11-25 17:24:46 +00:00
Haik Aftandilian
fd74f4c4ae Bug 1589809 - [macOS] Use OS_ACTIVITY_MODE=disable for child processes r=spohl
Set the environment variable OS_ACTIVITY_MODE=disable on sandboxed Mac child processes.

Differential Revision: https://phabricator.services.mozilla.com/D49972
2019-11-09 00:27:48 +00:00
Bobby Holley
6795b1a6e0 Bug 1562761 - Add support for dispatching java runnables to Gecko event targets. r=snorp
Differential Revision: https://phabricator.services.mozilla.com/D52197
2019-11-08 18:08:03 +00:00
Brindusan Cristian
3e2da3c609 Backed out changeset efc82f89a7c7 (bug 1562761) for linting failure on XPCOMEventTarget.java. CLOSED TREE 2019-11-08 19:36:27 +02:00
Bobby Holley
2ca38b9167 Bug 1562761 - Add support for dispatching java runnables to Gecko event targets. r=snorp
Differential Revision: https://phabricator.services.mozilla.com/D52197
2019-11-08 14:32:59 +00:00
Haik Aftandilian
027cd45809 Bug 1567209 - CleanupForPid locking r=jld
Differential Revision: https://phabricator.services.mozilla.com/D45093
2019-10-25 05:17:54 +00:00
Gijs Kruitbosch
96272cb981 Bug 1163079 - ensure we fetch app/profile dir information on the main thread in GeckoChildProcessHost r=jld,bryce,haik
Differential Revision: https://phabricator.services.mozilla.com/D42860
2019-09-04 12:04:52 +00:00
Honza Bambas
45f6e2526a Bug 1574882 - Always add .moz_log to target logging filenames, r=erahm
Differential Revision: https://phabricator.services.mozilla.com/D42487
2019-08-23 16:51:40 +00:00
Bobby Holley
b6842300a2 Bug 1571092 - Add missing return statement. r=jld
Differential Revision: https://phabricator.services.mozilla.com/D40527
2019-08-05 20:08:59 +00:00
Bobby Holley
3d3addeeb9 Bug 1566583 - Bridge GeckoResult to MozPromise and return a GeckoResult from GeckoProcessManager::start. r=snorp
Differential Revision: https://phabricator.services.mozilla.com/D38436
2019-07-24 21:10:14 +00:00
Coroiu Cristina
03890076ce Backed out 4 changesets (bug 1566583) for apilint and checkstyle failure at geckoview/src/main/java/org/mozilla/gecko/GeckoAppShell.java on a CLOSED TREE
Backed out changeset 3700ef585384 (bug 1566583)
Backed out changeset fbc829be6c4f (bug 1566583)
Backed out changeset 14ea9c84bb0e (bug 1566583)
Backed out changeset 92f3b1bb34a4 (bug 1566583)
2019-07-24 22:59:54 +03:00
Bobby Holley
ce1567f88d Bug 1566583 - Bridge GeckoResult to MozPromise and return a GeckoResult from GeckoProcessManager::start. r=snorp
Differential Revision: https://phabricator.services.mozilla.com/D38436
2019-07-24 19:19:40 +00:00
Bobby Holley
4494a94b0e Bug 1566592 - Use a dedicated thread for launching on android. r=jld
At the moment, this shouldn't make any difference because we only ever
launch one child process on android.

Differential Revision: https://phabricator.services.mozilla.com/D38244
2019-07-16 22:52:48 +00:00
Bobby Holley
b2fd1aa411 Bug 1562762 - Return a Promise from DoLaunch. r=jld
Differential Revision: https://phabricator.services.mozilla.com/D37602
2019-07-12 04:48:44 +00:00
Bogdan Tara
4c9c02be8e Backed out changeset a82b17a644d7 (bug 1562762) for geckoview crashes on Android 4.3 CLOSED TREE 2019-07-12 02:40:19 +03:00
Bobby Holley
e2f8351353 Bug 1562762 - Return a Promise from DoLaunch. r=jld
Differential Revision: https://phabricator.services.mozilla.com/D37602
2019-07-11 15:28:00 +00:00
Bobby Holley
f1b2caa334 Bug 1563832 - Decompose PerformAsyncLaunch into the platform hierarchy. r=jld
Differential Revision: https://phabricator.services.mozilla.com/D37306
2019-07-11 15:27:58 +00:00
Bobby Holley
e1e429d8bd Bug 1563832 - Move a few things into BaseProcessLauncher. r=jld
I'm not convinced the current comment about being race-free is accurate
in context of the launcher pool. It probably _is_ correct under this
patch, because ProcessLaunchers should only be constructed on a single
thread, but it's easy enough just to make it atomic.

Hopefully moving the timestamp doesn't perturb telemetry too much.

Differential Revision: https://phabricator.services.mozilla.com/D37305
2019-07-11 15:27:51 +00:00
Bobby Holley
62101ff2c1 Bug 1563832 - Create an inheritance hierarchy for the platform-specific bits of process launching. r=jld
Differential Revision: https://phabricator.services.mozilla.com/D37304
2019-07-11 15:27:47 +00:00
Bobby Holley
edefb6333e Bug 1562763 - Factor process launching into a helper class, and use more promises. r=jld
This is intended to facilitate future work to break up
PerformAsyncLaunch into asynchronous pieces. It also aims to fix some
raciness around access to state in the GeckoChildProcessHost instance.
There appears to be at least one data race in the existing code, in which
OpenPrivilegedHandle are run on both the launcher thread and the IO
thread without synchronization.

Differential Revision: https://phabricator.services.mozilla.com/D36539
2019-07-10 22:37:37 +00:00
Bobby Holley
6cb8dacf00 Bug 1562763 - Move some types around. r=jld
Having to namespace these into GeckoChildProcessHost is annoying. The
|using| declarations help to some extent, but it's easier to just put
them in mozilla::ipc.

Differential Revision: https://phabricator.services.mozilla.com/D36538
2019-07-10 22:37:35 +00:00
Tarek Ziadé
3e7f6d7c34 Bug 1529022 - Add a GeckoChildProcessHosts iterator r=jld
Adds GeckoChildProcessHost::GetAll() and use it in ChromeUtils::GetProcInfo()

Differential Revision: https://phabricator.services.mozilla.com/D33920
2019-06-21 01:33:47 +00:00
Oana Pop Rus
7cad71b4fd Backed out changeset f79736d79ee1 (bug 1529022) for build bustages in GeckoChildProcessHost.cpp a=backout 2019-06-20 01:57:00 +03:00
Tarek Ziadé
da5f56b2f9 Bug 1529022 - Add a GeckoChildProcessHosts iterator r=jld
Adds GeckoChildProcessHost::GetAll() and use it in ChromeUtils::GetProcInfo()

Differential Revision: https://phabricator.services.mozilla.com/D33920
2019-06-19 06:13:50 +00:00
Gurzau Raul
e38fd50dda Backed out changeset 11c118fa5f2b (bug 1529022) for build bustages at GeckoChildProcessHost.cpp a=backout 2019-06-19 09:07:19 +03:00
Tarek Ziadé
2cecfbeed5 Bug 1529022 - Add a GeckoChildProcessHosts iterator r=jld
Adds GeckoChildProcessHost::GetAll() and use it in ChromeUtils::GetProcInfo()

Differential Revision: https://phabricator.services.mozilla.com/D33920
2019-06-18 16:36:52 +00:00
Haik Aftandilian
ee979552b4 Bug 1498742 - Part 2 - Start the GMP sandbox earlier during process startup r=jya,cpearce
Change the Mac GMP process launch to include sandboxing params on the command line to allow the sandbox to be started earlier during GMP process launch. Content, extension, and RDD processes have already been changed to start the sandbox earlier.

Update GMPProcessParent to override GeckoChildProcessHost methods used to construct sandboxing parameters. Pass the plugin path as a sandbox parameter so that the sandbox rules can whitelist the plugin directory which is now read after the sandbox is enabled in the plugin process. On development builds, pass "testingReadPath" params so directories needed during automated tests can be whitelisted.

Update Mac sandboxing code to detect GMP sandbox params on the command line and enable the sandbox with additional arguments needed for early sandbox start.

Allow reverting to the old implementation by setting security.sandbox.gmp.mac.earlyinit to false.

Differential Revision: https://phabricator.services.mozilla.com/D34085
2019-06-14 22:55:27 +00:00
Dorel Luca
ed5da050d2 Backed out 2 changesets (bug 1498742) for OSX build bustages. CLOSED TREE
Backed out changeset f6da94d90350 (bug 1498742)
Backed out changeset 4f3e83d8de59 (bug 1498742)
2019-06-15 00:13:05 +03:00
Haik Aftandilian
c312ee1b90 Bug 1498742 - Part 2 - Start the GMP sandbox earlier during process startup r=jya,cpearce
Change the Mac GMP process launch to include sandboxing params on the command line to allow the sandbox to be started earlier during GMP process launch. Content, extension, and RDD processes have already been changed to start the sandbox earlier.

Update GMPProcessParent to override GeckoChildProcessHost methods used to construct sandboxing parameters. Pass the plugin path as a sandbox parameter so that the sandbox rules can whitelist the plugin directory which is now read after the sandbox is enabled in the plugin process. On development builds, pass "testingReadPath" params so directories needed during automated tests can be whitelisted.

Update Mac sandboxing code to detect GMP sandbox params on the command line and enable the sandbox with additional arguments needed for early sandbox start.

Allow reverting to the old implementation by setting security.sandbox.gmp.mac.earlyinit to false.

Differential Revision: https://phabricator.services.mozilla.com/D34085
2019-06-14 20:12:01 +00:00
Bogdan Tara
fdeab5aac8 Backed out 2 changesets (bug 1498742) for nsMacUtilsImpl.cpp related build bustage a=backout
Backed out changeset 6729dc168afd (bug 1498742)
Backed out changeset e5eed57a9111 (bug 1498742)
2019-06-14 12:50:04 +03:00
Haik Aftandilian
2888b620ba Bug 1498742 - Part 2 - Start the GMP sandbox earlier during process startup r=jya,cpearce
Change the Mac GMP process launch to include sandboxing params on the command line to allow the sandbox to be started earlier during GMP process launch. Content, extension, and RDD processes have already been changed to start the sandbox earlier.

Update GMPProcessParent to override GeckoChildProcessHost methods used to construct sandboxing parameters. Pass the plugin path as a sandbox parameter so that the sandbox rules can whitelist the plugin directory which is now read after the sandbox is enabled in the plugin process. On development builds, pass "testingReadPath" params so directories needed during automated tests can be whitelisted.

Update Mac sandboxing code to detect GMP sandbox params on the command line and enable the sandbox with additional arguments needed for early sandbox start.

Allow reverting to the old implementation by setting security.sandbox.gmp.mac.earlyinit to false.

Differential Revision: https://phabricator.services.mozilla.com/D34085
2019-06-13 06:32:37 +00:00