Commit Graph

107 Commits

Author SHA1 Message Date
Stephen A Pohl
a7e561f5ea Bug 1348361 - Part 3 - Do not block the thread when spawning a gecko child process; r=jld
They are not yet fully async because ContentParent::InitInternal calls
OtherPid(), which will block until the process is spawned. Deferring the calls
to OtherPid() will be a subject of a follow up patch.

MozReview-Commit-ID: 4TFkMpdQtRw
2018-02-16 10:24:21 -05:00
Nicholas Nethercote
d911a57ece Bug 1438678 - Pass early prefs via shared memory instead of the command line. r=bobowen,jld,glandium.
This patch replaces the large -intPrefs/-boolPrefs/-stringPrefs flags with
a short-lived, anonymous, shared memory segment that is used to pass the early
prefs.

Removing the bloat from the command line is nice, but more important is the
fact that this will let us pass more prefs at content process start-up, which
will allow us to remove the early/late prefs split (bug 1436911).

Although this mechanism is only used for prefs, it's conceivable that it could
be used for other data that must be received very early by children, and for
which the command line isn't ideal.

Notable details:

- Much of the patch deals with the various platform-specific ways of passing
  handles/fds to children.

  - Linux and Mac: we use a fixed fd (8) in combination with the new
    GeckoChildProcessHost::AddFdToRemap() function (which ensures the child
    won't close the fd).

  - Android: like Linux and Mac, but the handles get passed via "parcels" and
    we use the new SetPrefsFd() function instead of the fixed fd.

  - Windows: there is no need to duplicate the handle because Windows handles
    are system-wide. But we do use the new
    GeckoChildProcessHost::AddHandleToShare() function to add it to the list of
    inheritable handles. We also ensure that list is processed on all paths
    (MOZ_SANDBOX with sandbox, MOZ_SANDBOX without sandbox, non-MOZ_SANDBOX) so
    that the handles are marked as inheritable. The handle is passed via the
    -prefsHandle flag.

  The -prefsLen flag is used on all platforms to indicate the size of the
  shared memory segment.

- The patch also moves the serialization/deserialization of the prefs in/out of
  the shared memory into libpref, which is a better spot for it. (This means
  Preferences::MustSendToContentProcesses() can be removed.)

MozReview-Commit-ID: 8fREEBiYFvc
2018-02-16 17:54:16 +11:00
Gian-Carlo Pascutto
f1a2c4e973 Bug 1386404 - Enable content-process specific tmpdir on Linux. r=jld
MozReview-Commit-ID: 6Hijq0to9MG
2018-01-09 16:29:40 +01:00
Chris Peterson
677bf4030c Bug 1428535 - Add missing override specifiers to overridden virtual functions. r=froydnj
MozReview-Commit-ID: DCPTnyBooIe
2017-11-05 19:37:28 -08:00
Csoregi Natalia
d37fa5489a Backed out 6 changesets (bug 1386404) for failing /webdriver/test/ tests on Linux. r=backout on a CLOSED TREE
Backed out changeset be1441859e8b (bug 1386404)
Backed out changeset 8dca7ef74c4a (bug 1386404)
Backed out changeset b7ca6ae185f2 (bug 1386404)
Backed out changeset 2c007d385ce4 (bug 1386404)
Backed out changeset fbe717b9a664 (bug 1386404)
Backed out changeset 14f1fbe5263a (bug 1386404)
2018-01-10 14:08:51 +02:00
Gian-Carlo Pascutto
b566e58c46 Bug 1386404 - Enable content-process specific tmpdir on Linux. r=haik,jld
MozReview-Commit-ID: 6Hijq0to9MG
2018-01-09 16:29:40 +01:00
Gian-Carlo Pascutto
cae2ebb8b3 Bug 1297740. r=jld 2018-01-08 10:07:16 +01:00
Coroiu Cristina
3acd5101a3 Backed out 1 changesets (bug 1297740) for mingw32 build failure at src/ipc/chromium/src/base/process_util_win.cc r=backout on a CLOSED TREE
Backed out changeset e2501f2e295e (bug 1297740)
2018-01-06 00:59:25 +02:00
Gian-Carlo Pascutto
1b9e824053 Bug 1297740. r=jld 2018-01-04 15:37:33 +01:00
Csoregi Natalia
eac58d4d90 Backed out changeset 3bdd7743f057 (bug 1297740) for Build Bustage. r=backout on a CLOSED TREE 2017-12-21 16:21:48 +02:00
Gian-Carlo Pascutto
0d28f9ac6e Bug 1297740. r=jld 2017-12-07 16:36:10 +01:00
Jed Davis
878739a808 Bug 1401786 - Move base::LaunchApp options into a LaunchOptions struct, like upstream Chromium. r=billm
MozReview-Commit-ID: 74IXV4oGeWR
2017-09-08 20:35:06 -06:00
Sebastian Hengst
1a6eddd72f Backed out 6 changesets (bug 1386404) for XPCshell failures, at least on Linux. r=backout on a CLOSED TREE
Backed out changeset c80acdea24c1 (bug 1386404)
Backed out changeset 6224ffae752a (bug 1386404)
Backed out changeset 9eba087cf64a (bug 1386404)
Backed out changeset eac6eb517096 (bug 1386404)
Backed out changeset 802a00ea50e7 (bug 1386404)
Backed out changeset d7f697bac6ef (bug 1386404)
2017-11-03 20:28:00 +01:00
Gian-Carlo Pascutto
1ad099ac08 Bug 1386404 - The environment has to live forever. r=jld
MozReview-Commit-ID: Lux9D8Ss8fK
2017-10-31 15:06:53 +01:00
Gian-Carlo Pascutto
44affe1daf Bug 1386404 - Enable content-process specific tmpdir on Linux. r=haik
MozReview-Commit-ID: 6Hijq0to9MG
2017-10-12 11:18:25 +02:00
Sebastian Hengst
344300a4da Backed out 4 changesets (bug 1386404) for mass failures, e.g. in browser-chrome's dom/tests/browser/browser_xhr_sandbox.js. r=backout on a CLOSED TREE
Backed out changeset 36556e1a5ac7 (bug 1386404)
Backed out changeset b136f90dc49f (bug 1386404)
Backed out changeset 4600c2d575f9 (bug 1386404)
Backed out changeset c2c40e4d9815 (bug 1386404)
2017-10-30 19:10:01 +01:00
Gian-Carlo Pascutto
31197e29dc Bug 1386404 - Enable content-process specific tmpdir on Linux. r=haik
MozReview-Commit-ID: 6Hijq0to9MG
2017-10-12 11:18:25 +02:00
Jed Davis
7ec762e47d Bug 1401790 - Remove ProcessArchitecture from IPC. r=billm,jimm
This was used to support cross-architecture NPAPI plugins on OS X, but
we stopped supporting that in 54 (bug 1339182).

MozReview-Commit-ID: 2BcWYD6mguY
2017-10-04 20:31:12 -06:00
Jed Davis
00ce2f564f Bug 1316153 - Remove base::ChildPrivileges from IPC. r=billm,bobowen
ChildPrivileges is a leftover from the B2G process model; it's now
mostly unused, except for the Windows sandbox using it to carry whether
a content process has file:/// access.

In general, when sandboxing needs to interact with process launch, the
inputs are some subset of: the GeckoProcessType, the subtype if content,
various prefs and even GPU configuration; and the resulting launch
adjustments are platform-specific.  And on some platforms (e.g., OS X)
it's all done after launch.  So a simple enum used cross-platform isn't
a good fit.

MozReview-Commit-ID: K31OHOpJzla
2017-09-08 16:16:50 -06:00
J. Ryan Stinnett
07ce9296fa Bug 1390736 - Add RUST_LOG_CHILD for child-only logging. r=froydnj
For certain use cases, it's nice to be able to target Rust debug logging to only
child processes (so you focus on web content vs. chrome running in the parent).

This adds `RUST_LOG_CHILD` which is copied to `RUST_LOG` when launching child
processes.

MozReview-Commit-ID: BWAZ4f51AW
2017-05-01 16:42:15 -05:00
Bob Owen
1e97e302e9 Bug 1339105 Part 3: Move NPAPI windows process sandbox file rules into SandboxBroker. r=jimm
This also removes a rule that was added for sandboxing the Java plugin,
which we never did and we now only allow Flash anyway.

MozReview-Commit-ID: Jn6pCkLoGNM
2017-05-22 20:41:28 +01:00
Wes Kocher
f39f2cccd5 Backed out 3 changesets (bug 1339105) for plugin process leaks a=backout
Backed out changeset 431267ab28de (bug 1339105)
Backed out changeset 445875fbf13b (bug 1339105)
Backed out changeset c3fb60fbc326 (bug 1339105)

MozReview-Commit-ID: 4HYUQbHHnox
2017-05-22 15:14:23 -07:00
Bob Owen
af598b058e Bug 1339105 Part 3: Move NPAPI windows process sandbox file rules into SandboxBroker. r=jimm
This also removes a rule that was added for sandboxing the Java plugin,
which we never did and we now only allow Flash anyway.
2017-05-22 20:41:28 +01:00
Sebastian Hengst
1fbf953916 Backed out changeset 367734cc9370 (bug 1339105) 2017-05-22 16:14:27 +02:00
Bob Owen
26e640b167 Bug 1339105 Part 3: Move NPAPI windows process sandbox file rules into SandboxBroker. r=jimm
This also removes a rule that was added for sandboxing the Java plugin,
which we never did and we now only allow Flash anyway.
2017-05-22 14:29:06 +01:00
Randall Barker
10b09ea2de Bug 1314466 - part 4, update GeckoChildProcessHost to call LaunchAndroidService r=billm 2016-11-14 16:45:23 -08:00
David Anderson
c9d420360d Use firefox.exe for launching the GPU process on Windows. (bug 1309890, r=jld) 2016-10-13 23:55:07 -07:00
Alexandre Lissy
b2834a3543 Bug 1284674 - Remove NUWA r=cyu
MozReview-Commit-ID: GyMRNzOBKw6
2016-08-02 14:54:00 +02:00
Cervantes Yu
6aab14a9f3 Bug 1253575 - Fallback to DuplicateHandle() when base::OpenPrivilegedProcessHandle() fails when starting a child process. r=krizsa
MozReview-Commit-ID: 2nglWFJgfja
2016-06-23 17:50:37 +08:00
Bill McCloskey
5c0499ab88 Bug 1277705 - Remove waitable_event_watcher (r=dvander) 2016-06-24 13:15:41 -07:00
Bill McCloskey
1f1db1f0e1 Bug 1268559 - Go back to ContentParent controlling process shutdown (i.e., backout bug 1262898) (r=dvander) 2016-06-24 13:13:45 -07:00
Jed Davis
48dd26ae20 Bug 1114647 - Use firefox for child processes instead of plugin-container. r=ted
Disabled on Mac (content processes need to use plugin-container.app for
UI reasons) and on Linux unless --disable-sandboxing (build issues).

Based on work by George Wright <george@mozilla.com>.
2016-06-03 12:49:39 -07:00
Honza Bambas
061eaf305c Bug 1275117 - Fix static strings leaks when mozlogging is on. r=jduell 2016-05-31 08:11:00 -04:00
Andrew McCreight
0514236009 Bug 1276318, part 2 - Fix mode lines in ipc/glue. r=billm
MessageChannel.{h,cpp}, MessageLink.{h,cpp}, and ProtocolUtils.h are
using 4-space indent so I left those alone.
2016-05-27 14:54:31 -07:00
Andrew McCreight
b600e22f3e Bug 1276318, part 1 - Fix leading tabs in ipc/glue. r=billm
Also remove a weird mode line so the script can fix it more easily in
the next part.
2016-05-27 14:54:30 -07:00
Honza Bambas
5095d3a1e2 Bug 1270752 - Fix lifetime of buffer passed to PR_SetEnv(). r=jduell 2016-05-26 03:18:00 -04:00
Bas Schouten
2d102ed23e Bug 1262898: Keep the GeckoChildProcessHost alive for the lifetime of the CompositorBridge and ImageBridge parent actors. r=jimm r=nical
MozReview-Commit-ID: 1rsWqRpbhgN
2016-04-25 03:54:07 +00:00
George Wright
89316736c1 Revert "Bug 1261416 - Rename firefox-plugin-container back to plugin-container to satisfy Flash's protected mode checks, and ensure that we launch the correct binary r=ted" because of widespread breakage due to whitelisted executable names in third parties
This reverts commit 2d44e8ffaf63a32292f8e5b8fdd1485d0a462afc.
2016-04-08 13:33:27 -04:00
Bill McCloskey
5dbc026b0c Bug 1235633 - IPC OOM mitigation by eliminating buffer copying (r=jld) 2016-04-07 17:15:26 -07:00
George Wright
2b21d6e072 Bug 1261416 - Rename firefox-plugin-container back to plugin-container to satisfy Flash's protected mode checks, and ensure that we launch the correct binary r=ted 2016-04-04 18:03:33 -04:00
Honza Bambas
a358f0e3ef Bug 1248565 - Let child processes have its own MOZ_LOG_FILE. r=erahm 2016-03-11 08:24:00 -05:00
Bob Owen
9c23c5d99e Bug 1225023: Allow Flash Player to create Adobe\Flash Player and Macromedia\Flash Player directories. r=bbondy 2015-11-17 07:24:34 +00:00
Mike Conley
16367a6360 Bug 1146955 - Unify pluginID for GMP and runID for NPAPI plugins to use the same internal incrementor. r=jesup, mrbkap. 2015-04-27 15:09:45 -04:00
Andrea Marchesini
18b38ad706 Bug 1156632 - Remove unused forward class declarations - patch 4 - netwerk image and dom, r=ehsan 2015-04-22 08:29:20 +02:00
Bob Owen
7517f0b07d Bug 1119878 Part 2: Change IPC code to hold ProcessID instead of ProcessHandle. r=billm, r=dvander, r=aklotz, r=cpearce 2015-04-01 09:40:35 +01:00
Ehsan Akhgari
ea41d8de48 Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj
This patch was automatically generated using the following script:

function convert() {
echo "Converting $1 to $2..."
find . \
       ! -wholename "*/.git*" \
       ! -wholename "obj-ff-dbg*" \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert MOZ_OVERRIDE override
convert MOZ_FINAL final
2015-03-21 12:28:04 -04:00
Bob Owen
3ec652be22 Bug 1137166: Change the Content moreStrict sandbox pref to an integer to indicate the level of sandboxing. r=tabraldes 2015-03-10 08:03:12 +00:00
Bob Owen
919ea04738 Bug 1132021 - Add a new sandbox level for Windows NPAPI to use USER_LIMITED access token level. r=bsmedberg, r=bbondy 2015-02-11 16:25:43 +00:00
Bob Owen
4811c84eb6 Bug 1127230: Change the NPAPI sandbox prefs to integers to indicate the level of sandboxing. r=bsmedberg 2015-01-30 17:48:15 +00:00
Bob Owen
3c47ad15a2 Bug 1126402: Add a pref to enable a more strict version of the Windows NPAPI process sandbox. r=bsmedberg, r=bbondy 2015-01-29 08:13:07 +00:00