Commit Graph

127 Commits

Author SHA1 Message Date
Jed Davis
a6cb3c4d18 Bug 1475382 - Turn off async content process launching, pending better error handling. r=spohl
At the moment this isn't actually async because we immediately require
the pid and block on launch anyway.  It also crashes the entire browser
on otherwise recoverable launch errors, because code that wants the pid
isn't set up to handle that operation failing.

MozReview-Commit-ID: 5favGu34QCv

--HG--
extra : rebase_source : 3c81c53e1eb8ead353ef3477ed3ceea0f5edcbbe
2018-07-13 15:20:25 -06:00
Jed Davis
b0a1468c01 Bug 1456911 - Rewrite the fd shuffling to be simpler & handle identity mappings correctly. r=froydnj
This replaces some old Chromium code that tries to minimally disentangle
an arbitrary file descriptor mapping with simpler algorithm, for several
reasons:

1. Do something appropriate when a file descriptor is mapped to the same
fd number in the child; currently they're ignored, which means they'll
be closed if they were close-on-exec.  This implementation duplicates
the fd twice in that case, which seems to be uncommon in practice; this
isn't maximally efficient but avoids special-case code.

2. Make this more generally applicable; the previous design is
specialized for arbitrary code running between fork and exec, but we
also want to use this on OS X with posix_spawn, which exposes a very
limited set of operations.

3. Avoid the use of C++ standard library iterators in async signal safe
code; the Chromium developers mention that this is a potential problem in
some debugging implementations that take locks.

4. In general the algorithm is simpler and should be more "obviously
correct"; more concretely, it should get complete coverage just by being
run normally in a debug build.

As a convenient side benefit, CloseSuperfluousFds now takes an arbitrary
predicate for which fds to leave open, which means it can be used in
other code that needs it without creating a fake fd mapping.

MozReview-Commit-ID: EoiRttrbrKL

--HG--
extra : rebase_source : 336e0ba9f56dc80f7347dc62617b4ad1efea7e7e
2018-04-25 17:44:08 -06:00
Alex Gaynor
b174206e6f Bug 1451859 - Part 2: Add sanitizer coverage to a handful of places relevant to IPC. r=posidron 2018-04-05 15:48:11 -04:00
Cosmin Sabou
18d0742c9b Backed out 3 changesets (bug 1451859) for causing Spidermonkey bustages on Linux x64 opt.
Backed out changeset 8f5a9e18e953 (bug 1451859)
Backed out changeset 950fa584ec8e (bug 1451859)
Backed out changeset f1f42726f1ec (bug 1451859)
2018-06-07 09:10:35 +03:00
Alex Gaynor
76b53de450 Bug 1451859 - Part 2: Add sanitizer coverage to a handful of places relevant to IPC. r=posidron 2018-04-05 15:48:11 -04:00
Stephen A Pohl
447ec53dcd Bug 1461459: Enable bug 1348361 (async process launching) on nightly only. r=ted 2018-05-21 13:53:34 -04:00
Stephen A Pohl
5b81adc6a2 Backout f266f3f133a9 (bug 1446900, bug 1461459) for referencing incorrect bug number in commit message. r=backout DONTBUILD 2018-05-21 13:51:59 -04:00
Stephen A Pohl
c466cf329f Bug 1446900: Enable bug 1348361 (async process launching) on nightly only. r=ted 2018-05-21 13:46:04 -04:00
Christoph Diehl
d5091638e8 Bug 777067 - Fuzzing: IPC Protocol Definition Language (IPDL) Protocols. r=jld
--HG--
rename : ipc/glue/Faulty.cpp => tools/fuzzing/faulty/Faulty.cpp
rename : ipc/glue/Faulty.h => tools/fuzzing/faulty/Faulty.h
2018-04-24 20:10:15 +02:00
Nika Layzell
36059eb187 Bug 1440511 - Part 3: Add IPDLParamTraits which supports passing in an actor when {un,}pickling, r=froydnj
MozReview-Commit-ID: JTsQJ292A09
2018-03-05 16:00:01 -05:00
Andrea Marchesini
26352bfee1 Bug 1432963 - Fixing workers headers - part 17 - no LIBS=[workers] in moz.build files, r=smaug 2018-01-31 08:25:30 +01:00
Mike Hommey
bb2afff5c1 Bug 1425381 - Always enable PIE on Android now that we support only >= 4.1. r=froydnj
--HG--
extra : rebase_source : c73d77ab1274b2dd54a3785a6d77c6e8dcb69f87
2018-01-11 10:42:15 +09:00
Gian-Carlo Pascutto
61cf15cc85 Bug 1297740. r=jld 2018-01-08 10:07:16 +01:00
Coroiu Cristina
ebae541f60 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
3178a4003d Bug 1297740. r=jld
--HG--
extra : rebase_source : 1d7bd987eed365bf442ed7eb856d8413af3205dc
2018-01-04 15:37:33 +01:00
Csoregi Natalia
c88d4f8c83 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
6821480454 Bug 1297740. r=jld
--HG--
extra : rebase_source : 5531d3902fc5916d9d205ed13d7d5c062bef8b27
2017-12-07 16:36:10 +01:00
Sylvestre Ledru
5de63ef061 Bug 1394734 - Replace CONFIG['MSVC'] by CONFIG['CC_TYPE'] r=glandium
MozReview-Commit-ID: 5orfnoude7h

--HG--
extra : rebase_source : 1ed9a6b56e1d27221a07624767a7fb0e6147117f
2017-12-08 13:46:13 +01:00
Sylvestre Ledru
9bfe27d903 Bug 1394734 - Replace CONFIG['GNU_C*'] by CONFIG['CC_TYPE'] r=glandium
MozReview-Commit-ID: 7duJk2gSd4m

--HG--
extra : rebase_source : 7312fe276e561e8c034a5f6749774ae812727f9c
2017-12-07 22:09:15 +01:00
Jeff Muizelaar
fba16646be Bug 1379680. Add an ipc ByteBuf type. r=billm
This adds a ByteBuf type that can be sent by taking
ownership of its buffer instead of having to make a copy.
2017-11-29 10:11:15 -05:00
Andrea Marchesini
9a7c9c7e95 Bug 1408333 Get rid of nsIIPCBackgroundChildCreateCallback - part 20 - main part, r=asuth 2017-10-24 12:02:41 +02:00
Dan Minor
30d76b125c Bug 1382182 - Build jsep using moz.build; r=ted,jesup
MozReview-Commit-ID: 9UhlBZi0yO0

--HG--
extra : rebase_source : 7ad69af2dfb61ad88fc5f87f4d17a09abbf23edc
2017-07-20 11:24:08 -04:00
Jan Varga
ceff0f7d8f Bug 1350637 - Part 1: Move PStorage stubs from PContent to PBackground; r=asuth r=billm
--HG--
rename : dom/storage/PStorage.ipdl => dom/storage/PBackgroundStorage.ipdl
2017-08-08 22:56:49 +02:00
Marco Castelluccio
9ca39b7d11 Bug 1380659 - Introduce code coverage component to dump/reset coverage counters. r=erahm
--HG--
rename : ipc/glue/CodeCoverageHandler.cpp => tools/code-coverage/CodeCoverageHandler.cpp
rename : ipc/glue/CodeCoverageHandler.h => tools/code-coverage/CodeCoverageHandler.h
extra : rebase_source : 77b2f698d9120d3fadcae65b3d22831a9e5429f9
2017-07-14 10:58:56 +02:00
Marco Castelluccio
42f83ca8dc Bug 1363469 - Define signal handlers to dump and reset coverage counters. r=froydnj,kanru
--HG--
extra : rebase_source : 8fa73f2bfd1eab95caee891d6d68090b58c3ba67
extra : histedit_source : 7b7c633ebecc71508e4c0a4d1161104a511869c5%2C61fefafbedb869fffddb8182d8bfac29108ee1bb
2017-06-14 09:50:44 +01:00
Eric Rahm
b99305007f Bug 1351910 - Build more files as unified in ipc/glue. r=billm
One file was excluded for using plarena which it did not. The other was
excluded for "clashes with strdup," it does not use strdup.

MozReview-Commit-ID: 5X5H9S4j903
2017-04-10 14:50:00 -07:00
Ryan VanderMeulen
3b1ac29a33 Backed out changeset 6933cdfb5186 (bug 1351910) for OSX bustage. 2017-04-05 21:26:47 -04:00
Eric Rahm
3b034fca72 Bug 1351910 - Build more files as unified in ipc/glue. r=billm
One file was excluded for using plarena which it did not. The other was
excluded for "clashes with strdup," it does not use strdup.

MozReview-Commit-ID: 5X5H9S4j903
2017-04-05 18:01:45 -07:00
Andrea Marchesini
f9cbf66dfd Bug 1274343 - Add parent-to-child pipe streaming to IPCStream - part 2 - PParentToChild, r=smuag
--HG--
rename : ipc/glue/SendStreamAlloc.h => ipc/glue/IPCStreamAlloc.h
rename : ipc/glue/SendStreamChild.cpp => ipc/glue/IPCStreamChild.cpp
rename : ipc/glue/SendStreamParent.cpp => ipc/glue/IPCStreamDestination.cpp
rename : ipc/glue/SendStream.h => ipc/glue/IPCStreamDestination.h
rename : ipc/glue/SendStreamParent.cpp => ipc/glue/IPCStreamParent.cpp
rename : ipc/glue/SendStreamChild.cpp => ipc/glue/IPCStreamSource.cpp
rename : ipc/glue/SendStream.h => ipc/glue/IPCStreamSource.h
rename : ipc/glue/PChildToParentStream.ipdl => ipc/glue/PParentToChildStream.ipdl
2017-03-14 12:29:43 +01:00
Andrea Marchesini
6ced9f8a25 Bug 1274343 - Add parent-to-child pipe streaming to IPCStream - part 1 - renaming PSendStream to PChildToParentStream, r=smaug
--HG--
rename : ipc/glue/PSendStream.ipdl => ipc/glue/PChildToParentStream.ipdl
2017-03-14 12:28:58 +01:00
Jan Beich
9bb83bbaeb Bug 1342843 - Enable CrossProcessSemaphore on all BSDs. r=mattwoodrow
MozReview-Commit-ID: AawHoWsctp2

--HG--
extra : rebase_source : 73eeb995d6529b2c76f8ad35e8602537fbc6021e
2017-02-27 05:23:52 +00:00
Christoph Diehl
e7b945296c Bug 1339306 - Faulty: Use --enable-fuzzing instead of --enable-ipc-fuzzing. r=billm
--HG--
extra : rebase_source : ea691b454f4b89ab3bda903b7c4636caf6e1a245
2017-02-14 03:12:10 +01:00
Matt Woodrow
c4faebc457 Bug 1325227 - Part 8: Add CrossProcessSemaphore. r=billm 2017-02-14 21:10:35 +13:00
David Anderson
45fe47d352 Add a PCrashReporter alternative that uses shmem instead of IPDL. (bug 1278717 part 1, r=billm) 2016-10-11 14:25:17 -07:00
Ehsan Akhgari
3cc4749e5d Bug 1309028 - Remove PProcLoader; r=baku
The code using this protocol was removed in bug 1284674.
2016-10-11 09:37:46 -04:00
Tom Tromey
5538d692d3 Bug 1286877 - do not set c-basic-offset for python-mode; r=gps
This removes the unnecessary setting of c-basic-offset from all
python-mode files.

This was automatically generated using

    perl -pi -e 's/; *c-basic-offset: *[0-9]+//'

... on the affected files.

The bulk of these files are moz.build files but there a few others as
well.

MozReview-Commit-ID: 2pPf3DEiZqx

--HG--
extra : rebase_source : 0a7dcac80b924174a2c429b093791148ea6ac204
2016-07-14 10:16:42 -06:00
David Anderson
910f73265e Move TaskFactory from dom/plugins to ipc/glue. (bug 1271180 part 1, r=aklotz)
--HG--
rename : dom/plugins/ipc/TaskFactory.h => ipc/glue/TaskFactory.h
extra : rebase_source : 96b02ead0afb82a27d668927dd53d722b77e488b
2016-06-10 15:43:35 -04:00
Phil Ringnalda
5e0adb7d56 Back out 5 changesets (bug 1271180) for static analysis bustage
CLOSED TREE

Backed out changeset cfb53b780b18 (bug 1271180)
Backed out changeset 204b084385f8 (bug 1271180)
Backed out changeset 353da876be33 (bug 1271180)
Backed out changeset 4472dfbc1dc6 (bug 1271180)
Backed out changeset 81079e787b8a (bug 1271180)

--HG--
rename : ipc/glue/TaskFactory.h => dom/plugins/ipc/TaskFactory.h
2016-06-11 00:46:09 -07:00
David Anderson
995cadf738 Move TaskFactory from dom/plugins to ipc/glue. (bug 1271180 part 1, r=aklotz)
--HG--
rename : dom/plugins/ipc/TaskFactory.h => ipc/glue/TaskFactory.h
extra : rebase_source : 485012c5a08eb0ce2a4225ddfe9cbfb454fc4302
2016-06-10 15:43:35 -04:00
Christoph Diehl
053c555889 Bug 777067 - "Fuzzing: IPC Protocol Definition Language (IPDL) Protocols". r=wmccloskey
--HG--
extra : rebase_source : f256b70d6f81f82339e52ab4f6bc2d9b4b751c08
2016-05-30 16:33:00 +02:00
Ben Kelly
4c8ab874ba Bug 1093357 P2 Add an RAII type to safely handle serialized stream actors. r=jld
* * *
Bug 1093357 P2 interdiff 001 address review feedback
* * *
Bug 1093357 P2 interdiff 002 refactor to IPCStream type
2016-05-15 10:32:09 -07:00
Ben Kelly
749d2c1626 Bug 1093357 P1 Implement an actor for streaming pipes from child to parent. r=jld
* * *
Bug 1093357 P1 interdiff 001 address review feedback
2016-05-15 10:32:09 -07:00
Chris Peterson
353ee65255 Bug 1272513 - Part 1: Suppress -Wshadow warnings-as-errors in some directories. r=glandium 2016-05-11 00:00:01 -07:00
Andrew McCreight
17fc7463dd Bug 1268130, part 1 - Reimplement ByteLengthIsValid using CheckedInt. r=froydnj
The first check in ByteLengthIsValid() says "nsTArray only handles
sizes up to INT32_MAX", but the actual requirement is that the
capacity is no larger than UINT32_MAX. The check is overly restrictive
if sizeof(E) is 1 byte, and overly permissive if sizeof(E) is greater
than 2 bytes. I removed this check. Internal nsTArray invariants
should be enforced by nsTArray methods.

The second check is trying to check for overflow, but that should just
be done using CheckedInt.
2016-04-28 10:00:46 -07:00
George Wright
e75c590407 Revert "Bug 1114647 - Rename "plugin-container" to "firefox-webcontent" and create a new executable target for Win32 called "firefox-plugin-container" r=ted,jhamer" because of widespread breakage due to whitelisted executable names in third parties
This reverts commit a94b5f861bd0d25043a3bb7a0c3128acf8c0b93a.


--HG--
rename : ipc/contentproc/firefox-webcontent.cpp => ipc/contentproc/plugin-container.cpp
2016-04-08 13:34:40 -04:00
George Wright
5c454494ce Bug 1114647 - Rename "plugin-container" to "firefox-webcontent" and create a new executable target for Win32 called "firefox-plugin-container" r=ted,jhamer
--HG--
rename : ipc/app/module.ver => ipc/app/plugin-container/module.ver
rename : ipc/contentproc/plugin-container.cpp => ipc/contentproc/firefox-webcontent.cpp
2016-04-01 02:12:59 -04:00
Gregory Szorc
6a9168778b Bug 1124033 - Disable C4311 and C4312 in directories exhibiting warnings; r=ehsan
There are a long tail of C4311 and C4312 warnings in VS2015. Rather than
wait until all of them are fixed to land VS2015, we're taking the easy
way out and disabling these warnings in every directory currently
exhibiting a warning. This is evil. But it is a lesser evil than
globally disabling C4311 and C4312. At least with this approach new
C4311 and C4312 warnings in directories that aren't suppressing them
shouldn't be introduced.

MozReview-Commit-ID: 2cwWrjMD6B9

--HG--
extra : rebase_source : 3e7b8ea042765fdf138f5ca93a0f9dab75a95fcd
2016-03-23 17:19:20 -07:00
Jan Beich
8d1716d194 Bug 1252246 - Try to use PTHREAD_PROCESS_SHARED for CrossProcessMutex on more Unices. r=glandium f=kats 2016-02-29 21:34:46 +00:00
Lee Salzman
05c95317a9 Bug 1245241 - part 4 - move SharedMemorySysV details into nsShmImage. r=nical 2016-02-18 10:56:15 -05:00
Randell Jesup
9c83bc8f96 Bug 1198458: Rollup of changes previously applied to media/webrtc/trunk/webrtc and fixes to those rs=jesup r=froyd,jib,bwc,jesup,gcp,sotaro,pkerr,pehrsons
Landing as one rolled-up patch to avoid breaking regression tests, and in
keeping with previous WebRTC imports.  Broken out parts that needed review
are on the bug.
2015-11-18 15:03:25 -05:00