Commit Graph

5243 Commits

Author SHA1 Message Date
Oana Pop Rus
03ebbdab95 Merge inbound to mozilla-central. a=merge 2019-02-08 11:53:37 +02:00
Chris Peterson
8e1848413c Bug 1507049 - Rename MOZ_CRASH_UNSAFE_OOL MOZ_CRASH_UNSAFE. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D18515

--HG--
extra : rebase_source : e8ef6eec0f7542bb381e2da81ae6431b2828aabc
extra : source : a8c262b4a2579e6def1b3a5a8220f5197b443e34
2019-02-03 00:09:37 -08:00
Chris Pearce
f1471711c9 Bug 1525813 - Ensure ipc::ShmemCreated message serializes shmem size as uint32_t. r=jld
Shmem sizes serialized in an ipc::ShmemCreated message should be sent as an
uint32_t rather than a size_t, as size_t is defined as different sizes in 64
and 32 bit builds. If the size isn't consistent, we won't be able to reliably
send this message between cross architecture processes.

Also, Shmem's have a limit of 32bit for their size anyway:
https://searchfox.org/mozilla-central/rev/e00ea598e52bbb35f8c45abf9c2eade17962bb5e/ipc/glue/Shmem.cpp#127

So this patch should not affect allocations of shmems.

Differential Revision: https://phabricator.services.mozilla.com/D18909

--HG--
extra : source : d7276bbcafafd5cb96ef498ef74629294483e002
extra : amend_source : 9e4b7721cfbef5f2caf34c22de106c3127628597
extra : intermediate-source : 57b88145a6357f2fd3d93a101952b22279a246f2
2019-02-07 16:25:37 +13:00
Jan Varga
01b23e7ba8 Bug 1517089 - Part 4: Send an async IPC message instead of dispatching a runnable to the PBackground thread when clearing private browsing; r=asuth 2019-02-07 19:51:16 +01:00
Jan Varga
d0270542f0 Bug 1525291 - LSNG: Chrome observer notifications for session storage are not distributed to content processes; r=asuth,froydnj
Differential Revision: https://phabricator.services.mozilla.com/D18809
2019-02-06 06:09:57 +01:00
Alex Gaynor
0f01791ffc Bug 1512990 - Part 4 - remove declarations of Recv/Answer methods from IPDL protocol base class; r=froydnj
For cases where the class has direct calls (that is, we cast `this` to the
subclass before making the call) no longer declare Recv/Answer methods on the
base class at all. This should ensure that slots for them are not generated in
vtables, and also allow the derived class to choose the method signature (e.g.
whether it wants to take something by reference or by value).

Differential Revision: https://phabricator.services.mozilla.com/D18132

--HG--
extra : moz-landing-system : lando
2019-02-06 15:58:43 +00:00
Alex Gaynor
984f0333ea Bug 1512990 - Part 3 - remove declarations of Alloc/Dealloc methods from IPDL protocol base class; r=froydnj
For cases where the class has direct calls (that is, we cast `this` to the
subclass before making the call) no longer declare Alloc/Dealloc methods on the
base class at all. This should ensure that slots for them are not generated in
vtables, and also allow the derived class to choose the method signature (e.g.
whether it wants to take something by reference or by value).

Differential Revision: https://phabricator.services.mozilla.com/D18131

--HG--
extra : moz-landing-system : lando
2019-02-06 15:58:07 +00:00
Alex Gaynor
75c7d1fa76 Bug 1512990 - Part 2 - implement direct calls in the IPDL compiler; r=froydnj
When calling a Recv/Alloc/Dealloc method on most types, cast `this` to the
derived class.

There is a heuristic to figure out what the correct derived type is. There is a
blacklist of types which we can't do direct calls on for the moment, as well as
an override for types that do work with direct calls but which don't match the
heuristic.

Differential Revision: https://phabricator.services.mozilla.com/D16492

--HG--
extra : moz-landing-system : lando
2019-02-06 15:57:37 +00:00
Alex Gaynor
65b8aa873a Bug 1512990 - Part 1 - refactor IPDL compiler to centralize all Recv/Alloc/Dealloc calls on this; r=nika
Differential Revision: https://phabricator.services.mozilla.com/D16491

--HG--
extra : moz-landing-system : lando
2019-02-06 15:57:08 +00:00
Christoph Diehl
71c9cfa479 Bug 1520873: Support IPC fuzzer Faulty to run on Windows r=Alex_Gaynor
This is a supplement to further increase coverage of IPC fuzzing and to fulfill support for Faulty on all platforms.

Differential Revision: https://phabricator.services.mozilla.com/D16888

--HG--
extra : moz-landing-system : lando
2019-01-30 19:08:48 +00:00
Cosmin Sabou
018bd4cbe2 Backed out changeset 300334bd78b3 (bug 1512990) for landing only the first part from a 4 part patch. CLOSED TREE 2019-02-05 23:20:49 +02:00
Alex Gaynor
d4e764ec98 Bug 1512990 - Part 1 - refactor IPDL compiler to centralize all Recv/Alloc/Dealloc calls on this; r=nika
Differential Revision: https://phabricator.services.mozilla.com/D16491

--HG--
extra : moz-landing-system : lando
2019-02-05 18:46:17 +00:00
Razvan Maries
f86459d5dc Merge mozilla-central to autoland. a=merge on a CLOSED TREE 2019-02-05 18:59:13 +02:00
Nathan Froyd
0724cee7fb Bug 1525031 - part 4 - remove nsILabelableRunnable; r=mccr8
This class is now a no-op class, and we don't need it anymore.
2019-02-04 15:33:49 -05:00
Nathan Froyd
c073d37828 Bug 1525031 - part 3 - remove IToplevelProtocol::GetMessageSchedulerGroups; r=mccr8
The previous patch removed the only caller of this method, so now we can
remove the method itself.
2019-02-04 15:33:49 -05:00
Nathan Froyd
6bab6786bf Bug 1525031 - part 2 - remove nsILabelableRunnable::GetAffectedSchedulerGroups; r=mccr8
The previous patch removed the only caller of this method, so we can now
remove the method itself.
2019-02-04 15:33:49 -05:00
Alex Gaynor
9022c68576 Bug 1524129 - don't allow accidentally passing actors via the wrong managing actor in IPDL messages; r=nika
Differential Revision: https://phabricator.services.mozilla.com/D18263

--HG--
extra : moz-landing-system : lando
2019-02-01 22:06:59 +00:00
Jed Davis
0c72babf4f Bug 1487287 - Move child process launch off the I/O thread. r=mccr8
Launching processes takes enough time that we should avoid blocking the
parent process's IPC I/O thread for it; it's less bad for responsiveness
than blocking the main thread, but it's not good.

On Windows we need to use a dedicated thread, because the sandbox isn't
thread-safe and it asserts that the same thread is used for every
launch.  Otherwise, a thread pool is used.  (Or, in the Web Replay
middleman process, where there isn't enough of XPCOM for any of this,
launching the actual content processes remains on the I/O thread.)

Depends on D18011

Differential Revision: https://phabricator.services.mozilla.com/D8946

--HG--
extra : moz-landing-system : lando
2019-02-05 00:15:22 +00:00
Jed Davis
bcff2dd108 Bug 1487287 - Synchronize GeckoChildProcessHost destruction with launching. r=mccr8
In order to enable asynchronous launch, destruction of
GeckoChildProcessHost (and its subclasses) has to be delayed until after
launching (or anything else that might be made asynchronous in the
future) has completed, to prevent use-after-free.  However, there are
other dependencies on process hosts always being destroyed on the I/O
thread, so refcounting would be difficult to use.

Instead, GeckoChildProcessHost now may not be destroyed directly, but
must go through a method that handles the scheduling.

There are also some minor cleanups to the affected headers (removed
duplicate access modifiers, and made PluginProcessParent final).

Depends on D18010

Differential Revision: https://phabricator.services.mozilla.com/D18011

--HG--
extra : moz-landing-system : lando
2019-02-05 00:15:20 +00:00
Jed Davis
8881b3994e Bug 1521003 - Fix the IPDL unit test build after auto-reformatting broke it. r=Ehsan
This file has text-substitution placeholders that aren't part of normal
C++ syntax; they were broken by auto-inserted whitespace.  This patch
restores the original formatting and protects them from further change.

Differential Revision: https://phabricator.services.mozilla.com/D18010

--HG--
extra : moz-landing-system : lando
2019-02-05 00:15:12 +00:00
Andrea Marchesini
be2551ab2c Bug 1523702 - Max IPC message size for InputStream serialization, r=smaug
The total size of an IPC inputStream message must be less than 1mb. When we
compose the message for the multiplex stream, each sub stream collaborates with
its own size, deciding if it's better to be a pipe stream (IPCRemoteStream) or
a full serialized one.

Differential Revision: https://phabricator.services.mozilla.com/D18543

--HG--
extra : moz-landing-system : lando
2019-02-04 22:50:51 +00:00
Sylvestre Ledru
14486004b6 Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D18488

--HG--
extra : moz-landing-system : lando
2019-02-04 19:10:18 +00:00
Alex Gaynor
ab9183b396 Bug 1513687 - remove chromium's random code from IPC in favor of our own; r=froydnj
This includes deleting several unused functions. Our own code does a better job
of using the preferred platform APIs for random numbers.

Differential Revision: https://phabricator.services.mozilla.com/D18120

--HG--
extra : moz-landing-system : lando
2019-01-30 21:37:11 +00:00
Bob Owen
2f9e2d054c Bug 1511438 Part 1: Replace ProcessTypeRequiresWinEventHook with XRE_Win32kCallsAllowed. r=froydnj
ProcessTypeRequiresWinEventHook was added when attempting to turn on win32k
lockdown for GMP processes. Having a less specific, but globally accessible,
function will make it more useful while applying win32k lockdown to other
process types.
2019-01-29 08:49:13 +00:00
Andrea Marchesini
931c1560cf Bug 1520150 - Single InputStreams can serialize themselves as IPCRemoteStreams (pipe) - part 3 - pipe for string and storage streams, r=smaug 2019-01-28 10:49:28 +01:00
Andrea Marchesini
c0dfa196ce Bug 1520150 - Single InputStreams can serialize themselves as IPCRemoteStreams (pipe) - part 2 - IPCRemoteSteam part of InputStreamParams union, r=smaug
Before this patch, IPCStream was an union containing IPCRemoteSteam or an
InputStreamParamsWithFds. Now InputStreamParamsWithFds is renamed IPCStream and
IPCRemoteSteam is one of the possible InputStreamParams structs.
2019-01-28 10:49:13 +01:00
Andrea Marchesini
0499bad916 Bug 1520150 - Single InputStreams can serialize themselves as IPCRemoteStreams (pipe) - part 1 - Passing IPC managers around, r=smaug
Before this set of patches, the decision of exposing the stream as a pipe was
centralized in IPCStreamUtils, based on the total expectation size of the IPC
message. This triggers issues when multiplex inputStreams contain something
that cannot be sent as a pipe (IPCBlobInputStream, for instance), or something
that it's better to do not set as a pipe (nsFileInputStream), together with
memory streams (nsStringInputStream), which could make the IPC message greater
then what accepted (1mb).

These patches move the "pipe vs non-pipe" choice into the single inputStream
implementation.
2019-01-28 10:48:35 +01:00
Ehsan Akhgari
7426dccfc0 Bug 1522596 - Remove nsIIPCSerializableURI and move its only member to nsIURI; r=valentin
Differential Revision: https://phabricator.services.mozilla.com/D17531

--HG--
extra : moz-landing-system : lando
2019-01-25 13:32:36 +00:00
Nathan Froyd
8ab00b3379 Bug 1522599 - make the logic for cxxTypeNeedsMove more straightforward; r=Alex_Gaynor
Nested conditionals are hard to read; separating things out should make
the flow somewhat more obvious.
2019-01-24 16:31:59 -05:00
Andrew Halberstadt
01ca807367 Bug 1515746 - [flake8] Unsupport subdir .flake8 files and use new 'per-file-ignores' config instead, r=egao
This removes all .flake8 files except for the one at the root of the repo.
Instead we use the new 'per-file-ignores' config introduced in 3.7. To ignore
specific errors in a subdirectory, add a line like this to the root .flake8:

[per-file-ignores]
    path/to/subdir/*: E100, F200, ...

The reasons for this change are:

1. Unblock flake8 blacklist (bug 1367092).
2. Simplify configuration and code.
3. Encourage more consistent styling.
4. Improve performance.
5. Greater editor consistency.

Differential Revision: https://phabricator.services.mozilla.com/D18354

--HG--
extra : moz-landing-system : lando
2019-02-07 20:17:02 +00:00
Andrew Halberstadt
a10eff76fa Bug 1515746 - [flake8] Upgrade flake8 and dependencies, r=egao
This bumps flake8 to version 3.7.5.

This also ignores the new lint rules that were added in the new versions.
These rules are de-marked via comment so we know that they should be enabled at
some point (as opposed to the other rules that are (presumably) ignored
intentionally.

Differential Revision: https://phabricator.services.mozilla.com/D18353

--HG--
extra : moz-landing-system : lando
2019-02-07 20:16:45 +00:00
Ciure Andrei
c035ee7d3a Merge inbound to mozilla-central. a=merge 2019-01-24 05:44:33 +02:00
Nika Layzell
9b4bbc17fd Bug 1467223 - Part 2: Add BrowsingContextID to LoadInfo, r=valentin
This is handy when performing process swaps, as it provides useful & important
information to parent-process callers.

Depends on D15608

Differential Revision: https://phabricator.services.mozilla.com/D15609

--HG--
extra : moz-landing-system : lando
2019-01-23 21:06:59 +00:00
Nathan Froyd
54d71bdb59 Bug 1521801 - fix process type annotation for content process crashes; r=gsvelto 2019-01-23 08:51:32 -05:00
Sylvestre Ledru
0b4021fcad Bug 1521460 - Also reformat objective-c files r=mstange,ehsan,spohl
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D17139

--HG--
extra : histedit_source : 084f340503d2e1a2d9e1753c38b2c4ee9c7819f3
2019-01-21 18:18:16 +01:00
Cosmin Sabou
7ccc9d8b0b Merge mozilla-inbound to mozilla-central. a=merge 2019-01-19 11:57:49 +02:00
Gijs Kruitbosch
bc65d4cf7f Bug 1519074 - delay deserializing some CSP info until necessary, r=bzbarsky,ckerschb
Differential Revision: https://phabricator.services.mozilla.com/D16794

--HG--
extra : moz-landing-system : lando
2019-01-19 00:15:13 +00:00
Andreea Pavel
600eb759a4 Backed out changeset a69c1a1dc6fe (bug 1519074) for build bustages on a CLOSED TREE 2019-01-19 00:08:59 +02:00
Gijs Kruitbosch
8e2cad84f0 Bug 1519074 - delay deserializing some CSP info until necessary, r=bzbarsky,ckerschb
Differential Revision: https://phabricator.services.mozilla.com/D16794

--HG--
extra : moz-landing-system : lando
2019-01-18 17:17:32 +00:00
Greg Tatum
7042c8f1c3 Bug 1520526 - Add categories to all profiler markers; r=mstange
This commit adds categories to all markers. This way the profiler's
marker categories and frame label categories agree. There are a few
duplicate category properties on some of the marker payloads, but
this could be cleaned up in a follow-up if needed.

Differential Revision: https://phabricator.services.mozilla.com/D16864

--HG--
extra : moz-landing-system : lando
2019-01-18 15:40:15 +00:00
Sylvestre Ledru
47a5dd1fb8 Bug 1519636 - Reformat everything to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D16388

--HG--
extra : moz-landing-system : lando
2019-01-16 08:50:07 +00:00
Ehsan Akhgari
e5e885ae31 Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre
# ignore-this-changeset

--HG--
extra : amend_source : 7221c8d15a765df71171099468e7c7faa648f37c
extra : histedit_source : a0cce6015636202bff09e35a13f72e03257a7695
2019-01-18 10:16:18 +01:00
Nathan Froyd
221438b032 Bug 1518923 - simplify subprocess handle duplication logic in PerformAsyncLaunch; r=bobowen
Avoiding handle duplication for certain kinds of processes and allowing
it for everything else seems to be what we're already doing, so let's
make it easier to add new process types with that scheme in mind.
2019-01-14 11:01:48 -05:00
Brian Hackett
c78acc3d0e Bug 1519728 - Fix problem passing file handles to recording process, r=kershaw.
--HG--
extra : rebase_source : 4bc58da9257790ac83c56941e3f836c9039917fb
2019-01-14 05:12:40 -10:00
Michael Froman
c475e5754c Bug 1514874 - start RDD process on-demand r=jya,jld
Differential Revision: https://phabricator.services.mozilla.com/D15775

--HG--
extra : moz-landing-system : lando
2019-01-12 04:51:20 +00:00
Kershaw Chang
621b98340a Bug 1513057 - P6: Create Background between content process and socket process r=dragana,mayhemer
Differential Revision: https://phabricator.services.mozilla.com/D14348

--HG--
extra : moz-landing-system : lando
2019-01-11 20:56:39 +00:00
Kershaw Chang
9973068a10 Bug 1513057 - P1.1: Create a reusable class to pass prefs to child processes r=dragana
Differential Revision: https://phabricator.services.mozilla.com/D14970

--HG--
extra : moz-landing-system : lando
2019-01-11 18:39:22 +00:00
Kershaw Chang
0b336d5545 Bug 1513057 - P1: Start the new socket process basics (prefs, full xpcom init, logging, no sandboxing) r=mayhemer,dragana
Differential Revision: https://phabricator.services.mozilla.com/D14148

--HG--
extra : moz-landing-system : lando
2019-01-11 18:57:23 +00:00
Andreea Pavel
21ad33d612 Backed out 10 changesets (bug 1513057) for build bustages on a CLOSED TREE
Backed out changeset 56329b5f1844 (bug 1513057)
Backed out changeset 46411c5de3da (bug 1513057)
Backed out changeset de65c456aad6 (bug 1513057)
Backed out changeset f648b5f1a7c2 (bug 1513057)
Backed out changeset 460bbf0849e1 (bug 1513057)
Backed out changeset 86032a14d26f (bug 1513057)
Backed out changeset a81f83df08d5 (bug 1513057)
Backed out changeset edbda5ee5fd5 (bug 1513057)
Backed out changeset c900ac2519f5 (bug 1513057)
Backed out changeset 4e94bbb90315 (bug 1513057)
2019-01-11 17:02:44 +02:00
Kershaw Chang
1c5e5caaaf Bug 1513057 - P6: Create Background between content process and socket process r=dragana,mayhemer
Differential Revision: https://phabricator.services.mozilla.com/D14348

--HG--
extra : moz-landing-system : lando
2019-01-11 13:30:09 +00:00