Commit Graph

952 Commits

Author SHA1 Message Date
Nathan Froyd
f71c238411 Bug 1529942 - part 1 - move initialization of ExternalHelperAppParent into Recv*; r=qdot
Alloc methods can't take arguments by move reference, whereas Recv
methods can, and we'd like to take OptionalLoadInfoArgs (at least) by
move reference.  Since Init is infallible anyway, it doesn't really
matter where we do it, so move it to this separate method to pave the
way for rvalue reference OptionalLoadInfoArgs.
2019-02-25 13:13:43 -05:00
Christoph Kerschbaumer
7c441f1bcb Bug 1518454: Part 1, backend changes, add CSP to loadURIOptions dictionary and pass CSP explicitly from frontend to docshell. r=bz 2019-02-21 16:00:32 +01:00
Andreas Farre
1b8510f881 Bug 1523645 - Add transactions for syncing BrowsingContext fields. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D20187

--HG--
extra : moz-landing-system : lando
2019-02-21 20:14:28 +00:00
Makoto Kato
376eb1a4da Bug 1528665 - Remove GetAndroidSystemInfo sync IPC. r=geckoview-reviewers,mccr8,snorp
nsSystemInfo is initialzied at first page load. Actually, content process uses
sync IPC to get Android OS information. But now, we can use Java code even if
on content process, so we should use JNI directly instead of sync IPC.

Also, nsSystemInfo still has unused extern android_sdk_version that is for
HoneyComp's DNS hack.  So let's remote it.

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

--HG--
extra : moz-landing-system : lando
2019-02-19 21:19:14 +00:00
Christoph Kerschbaumer
05ad5a1c28 Bug 1528814: Serialize Loadinfo for PExternalHelperApp. r=mayhemer 2019-02-18 18:11:22 +01:00
Andreas Farre
1877793bdc Bug 1525887 - Add set of ContentParent subscribed to BrowsingContextGroup. r=nika
Add the origin ContentParent to a CanonicalBrowsingContext's group
when a CanonicalBrowsingContext is created from IPC. With this it is
possible to keep track of all child processes associated with a
BrowsingContextGroup.

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

--HG--
extra : moz-landing-system : lando
2019-02-15 11:35:48 +00:00
Bogdan Tara
e8d5e8fa11 Backed out changeset 70c5f8576e43 (bug 1525887) for PLDHashTable failures CLOSED TREE 2019-02-14 12:30:34 +02:00
Andreas Farre
4a8d21430f Bug 1525887 - Add set of ContentParent subscribed to BrowsingContextGroup. r=nika
Add the origin ContentParent to a CanonicalBrowsingContext's group
when a CanonicalBrowsingContext is created from IPC. With this it is
possible to keep track of all child processes associated with a
BrowsingContextGroup.

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

--HG--
extra : moz-landing-system : lando
2019-02-14 08:55:22 +00:00
Nika Layzell
330d9fd3a2 Bug 1516240 - Part 3: Directly pass BrowsingContext over IPC when possible, r=farre
This patch changes the logic such that we use the new direct
BrowsingContext ParamTraits implementation when possible, and avoids
doing manual lookups.

Depends on D19178

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

--HG--
extra : moz-landing-system : lando
2019-02-13 21:02:55 +00: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
Oana Pop Rus
f9cf535efc Backed out changeset 04eecadabb48 (bug 1525291) for build bustages at build/src/obj-firefox/ipc/ipdl/PSessionStorageObserverChild.cpp on a CLOSED TREE 2019-02-07 11:33:00 +02:00
Jan Varga
93f5a88427 Bug 1525291 - LSNG: Chrome observer notifications for session storage are not distributed to content processes; r=asuth
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
Blake Kaplan
3eed3c5f94 Bug 1517406 - Proxy these calls to the parent when required. r=asuth
Summary:

The push notifier needs to proxy its calls to the proper process in order to
notify service workers. With parent-intercept enabled, that means making sure
we notify in the parent and without it, that we notify in the content process.
Fortunately, we already have to do this proxying for the observer
notifications, so we can just piggyback on top of that code to make things
work for service workers.

Reviewers: asuth

Reviewed By: asuth

Bug #: 1517406

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

--HG--
extra : rebase_source : a29216f3a6638592a784e7e830fe9f7842cce7e9
2019-01-29 15:27:03 -05:00
Dimi Lee
632a821b8a Bug 1501458 - Remove unused tracking protection code from nsUrlClassifierDBService. r=baku
No one is using the aUseTrackingProtection parameter and also tracking
protection related preference in Classify API. And we shouldn't use it
that way in the future.

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

--HG--
extra : moz-landing-system : lando
2019-01-17 21:24:43 +00:00
Alastor Wu
0b67992fb9 Bug 1516482 - part2 : update user gesture activation flag across IPC. r=nika
Everytime we set the flag on top level BrowsingContext, it would automatically be sync to its corresponding ChromeBrowsingContext.

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

--HG--
extra : moz-landing-system : lando
2019-01-14 16:08:06 +00: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
Cosmin Sabou
af0ac088e5 Backed out changeset 8d953c25fdef (bug 1514874) for windows asan mda failures on RemoteDecoderModule.cpp. 2019-01-11 02:03:38 +02:00
Michael Froman
1a75356195 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-10 18:35:06 +00:00
Andrea Marchesini
647b040b0f Bug Bug 1515272 - Get rid of nsIURIClassifier.classifyLocal(), r=dimi, r=froydnj 2019-01-04 14:46:30 +01:00
Peter Van der Beken
066d891adb Bug 1353867 - Add cross-process proxies for WindowProxy. r=bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D12656

--HG--
extra : moz-landing-system : lando
2019-01-02 13:29:18 +00:00
Blake Kaplan
e131893a41 Bug 1514844 - Fix notification events in service workers. r=asuth
The current code assumes that it can get the ServiceWorkerManager in the child
process to send a message to the proper service worker. That isn't true, we
need to ask the parent to do it for us.

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

--HG--
extra : moz-landing-system : lando
2018-12-18 00:42:53 +00:00
Ehsan Akhgari
e8796fe60d Bug 1512625 - Ensure that the allow-mode argument in the PContent::FirstPartyStorageAccessGrantedForOrigin() IPC call doesn't get converted down to 0/1 r=baku
Differential Revision: https://phabricator.services.mozilla.com/D14478

--HG--
extra : moz-landing-system : lando
2018-12-17 16:19:43 +00:00
Jed Davis
d845f69798 Bug 1510934 - Ensure that pref changes during content process launch are delivered to the process. r=njn
Some prefs need to be available before IPC is started, so we serialize a
snapshot when we start launching the process, and then stream further
changes over IPC messages.  However, async launch introduces a window
between the snapshot and when the parent can start sending messages,
during which other code can run on the main thread and change prefs.

In order to not lose those updates, they're queued and sent when the
launch is complete.

Depends on D14089

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

--HG--
extra : moz-landing-system : lando
2018-12-14 05:28:56 +00:00
Jed Davis
4213a3e9b6 Bug 1510934 - Change ContentParent's alive/dead tracking to launching/alive/dead. r=mrbkap
We need content processes that are created but not finished launching
(not "alive" yet) to be treated differently from ones that have exited
(no longer "alive"), so the boolean mIsAlive is expanded to a 3-state
enumeration, which could be expanded more in the future if needed.

(This is similar to GeckoChildProcessHost::mProcessState, but it's
synchronized with the rest of the ContentParent's state, which can lag
the GeckoChildProcessHost state due to runnable dispatch.)

This patch also removes mIsAvailable/IsAvailable/MarkAsTroubled, which
are unused as of bug 1459212.

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

--HG--
extra : moz-landing-system : lando
2018-12-15 01:38:27 +00:00
Andrea Marchesini
71b120ca17 Bug 1511436 - Cleanup URL-Classifier code - part 2 - nsUrlClassifierDBService::AsyncClassifyLocalWithFeatures, r=dimi 2018-12-14 12:40:17 +01:00
Sylvestre Ledru
265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Jed Davis
42c1262dfd Bug 1474991 - Add new and improved performance telemetry for child process launching. r=mccr8,mconley,janerik
This patch adds some telemetry histograms:

* CONTENT_PROCESS_LAUNCH_IS_SYNC - boolean, true if the content process
was launched synchronously (blocking the main thread)

* CONTENT_PROCESS_SYNC_LAUNCH_MS - the time consumed by sync launch;
the main thread will be busy or blocked for this entire time

* CONTENT_PROCESS_LAUNCH_TOTAL_MS - the total time elapsed from the
start of async content process launch until the launch promise is
resolved and the ContentParent can be sent IPDL messages

* CONTENT_PROCESS_LAUNCH_MAINTHREAD_MS - the time consumed on the parent
process main thread during async content process launch; typically this
is due to ContentParent::Init.

* CHILD_PROCESS_LAUNCH_MS - for any kind of Gecko child process
(including plugins, GPU, etc.), the time taken in the common process
launch code (which is run off-main-thread)

The probes restricted to async content process launch don't have "async"
in the name because that will eventually become the only kind of content
process launch.

Depends on D8943

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

--HG--
extra : moz-landing-system : lando
2018-11-28 20:42:33 +00:00
Jed Davis
4fe96e3d18 Bug 1446161 - Asynchronously launch preallocated content processes using MozPromise. r=mccr8
There are several layers to this patch:

1. GeckoChildProcessHost now exposes a promise that's resolved when
the process handle is available (or rejected if launch failed), as a
nonblocking alternative to LaunchAndWaitForProcessHandle.

2. ContentParent builds on this with the private method
LaunchSubprocessAsync and the public method PreallocateProcessAsync;
synchronous launch continues to exist for the regular on-demand launch
path, for the time being.

3. PreallocatedProcessManager now uses async launch, and handles the new
"launch in progress" state appropriately.

Depends on D8942

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

--HG--
extra : moz-landing-system : lando
2018-11-28 20:42:31 +00:00
Jed Davis
231d5adb97 Bug 1446161 - Remove the earlier attempt at async launch. r=spohl,mccr8
The first attempt at async launch tried to hide the asynchrony inside
IPC, by making the process seem to be launched enough to construct new
channels and send it messages, and lazily blocking on the pid/handle.
Unfortunately, in practice we wind up needing the pid/handle immediately,
and this requirement is too deeply embedded in IPC for that to be viable.

(The alternative that will be used instead -- exposing process launch via
an explicitly asynchronous promise interface -- is made simpler by
Project Fission's upcoming rewrite of how the DOM requests new content
processes.)

Depends on D8941

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

--HG--
extra : moz-landing-system : lando
2018-11-28 20:42:24 +00:00
Andreas Farre
3ccff85cdd Bug 1502330 - Create BrowsingContext with passed opener. r=qdot
By replacing nsWebBrowser's implementation of the
nsIBaseWindow.initWindow and nsIBaseWindow.create with a new static
nsWebBrowser::Create method we make it possible to pass arguments
directly when creating an nsWebBrowser, for example the opener
BrowsingContext. As a bonus we can do away with
nsWebBrowser::mInitInfo!

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

--HG--
extra : moz-landing-system : lando
2018-11-27 09:59:44 +00:00
Andreea Pavel
74cd2bf73e Backed out 8 changesets (bug 1446161, bug 1487287, bug 1488993, bug 1474991, bug 1496608) for very frequent automation.py crashes on a CLOSED TREE
Backed out changeset 8b1f88d7bfeb (bug 1487287)
Backed out changeset 8fa5e81ad801 (bug 1487287)
Backed out changeset 7a480161fa0f (bug 1474991)
Backed out changeset 80116391b7fe (bug 1446161)
Backed out changeset 1bdf64b29121 (bug 1446161)
Backed out changeset 37bf52f0e9cf (bug 1446161)
Backed out changeset 8ede2ebe6b7a (bug 1496608)
Backed out changeset cea43bc88c7a (bug 1488993)
2018-11-27 08:53:18 +02:00
Jed Davis
4a53512dbe Bug 1474991 - Add new and improved performance telemetry for child process launching. r=mccr8,mconley,janerik
This patch adds some telemetry histograms:

* CONTENT_PROCESS_LAUNCH_IS_SYNC - boolean, true if the content process
was launched synchronously (blocking the main thread)

* CONTENT_PROCESS_SYNC_LAUNCH_MS - the time consumed by sync launch;
the main thread will be busy or blocked for this entire time

* CONTENT_PROCESS_LAUNCH_TOTAL_MS - the total time elapsed from the
start of async content process launch until the launch promise is
resolved and the ContentParent can be sent IPDL messages

* CONTENT_PROCESS_LAUNCH_MAINTHREAD_MS - the time consumed on the parent
process main thread during async content process launch; typically this
is due to ContentParent::Init.

* CHILD_PROCESS_LAUNCH_MS - for any kind of Gecko child process
(including plugins, GPU, etc.), the time taken in the common process
launch code (which is run off-main-thread)

The probes restricted to async content process launch don't have "async"
in the name because that will eventually become the only kind of content
process launch.

Depends on D8943

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

--HG--
extra : moz-landing-system : lando
2018-11-22 00:06:17 +00:00
Jed Davis
dececcae11 Bug 1446161 - Asynchronously launch preallocated content processes using MozPromise. r=mccr8
There are several layers to this patch:

1. GeckoChildProcessHost now exposes a promise that's resolved when
the process handle is available (or rejected if launch failed), as a
nonblocking alternative to LaunchAndWaitForProcessHandle.

2. ContentParent builds on this with the private method
LaunchSubprocessAsync and the public method PreallocateProcessAsync;
synchronous launch continues to exist for the regular on-demand launch
path, for the time being.

3. PreallocatedProcessManager now uses async launch, and handles the new
"launch in progress" state appropriately.

Depends on D8942

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

--HG--
extra : moz-landing-system : lando
2018-11-22 00:35:53 +00:00
Jed Davis
5379e8a375 Bug 1446161 - Remove the earlier attempt at async launch. r=spohl,mccr8
The first attempt at async launch tried to hide the asynchrony inside
IPC, by making the process seem to be launched enough to construct new
channels and send it messages, and lazily blocking on the pid/handle.
Unfortunately, in practice we wind up needing the pid/handle immediately,
and this requirement is too deeply embedded in IPC for that to be viable.

(The alternative that will be used instead -- exposing process launch via
an explicitly asynchronous promise interface -- is made simpler by
Project Fission's upcoming rewrite of how the DOM requests new content
processes.)

Depends on D8941

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

--HG--
extra : moz-landing-system : lando
2018-11-22 00:06:14 +00:00
Ehsan Akhgari
cc714b7adc Bug 1490811 - Part 1: Add a permission doorhanger for the storage access API r=baku,johannh
Differential Revision: https://phabricator.services.mozilla.com/D12467

--HG--
extra : moz-landing-system : lando
2018-11-26 21:23:16 +00:00
Andreea Pavel
d8849bad00 Merge mozilla-central to autoland. a=merge on a CLOSED TREE 2018-11-20 07:12:30 +02:00
Ehsan Akhgari
68a4d46702 Bug 1507677 - Add nsIContentPermissionRequest.topLevelPrincipal r=baku
This is required for the storage access API permission prompt.

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

--HG--
extra : moz-landing-system : lando
2018-11-20 01:52:47 +00:00
Lina Cambridge
69ee079fa0 Bug 1494713 - Pass the widget for the DocShell to IHistory::VisitURI. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D11287

--HG--
extra : moz-landing-system : lando
2018-11-16 17:29:57 +00:00
Gabriele Svelto
6e6968af84 Bug 1498942 - Don't attempt to take minidumps of hung content processes when shutting down r=Ehsan
This patch also takes the timeout for killing a content process back to its
original value and removes a related but long unused field.

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

--HG--
extra : moz-landing-system : lando
2018-11-13 15:34:49 +00:00
Haik Aftandilian
36f8930040 Bug 1498750 - [Mac] Cache content process sandbox params setup in ContentParent::AppendSandboxParams() r=Alex_Gaynor
Cache the sandboxing command line parameters used when starting a new content process, avoiding calls to realpath(3) on the main thread in the parent process for each content process that is started.

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

--HG--
extra : moz-landing-system : lando
2018-11-09 17:21:36 +00:00
Andreas Farre
af6942ecbc Bug 1502328 - Add opener member to BrowsingContext and expose through webidl. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D10580

--HG--
extra : moz-landing-system : lando
2018-11-09 08:53:53 +00:00
Andrea Marchesini
c2d9fd8153 Bug 1438945 - Part 13: keeping ContentProcess alive. r=asuth,mrbkap
--HG--
extra : rebase_source : 10f03713c5f31f3a41e4f45cde367f5daaa5ebd8
2018-11-19 15:18:33 -08:00
Ryan Hunt
076d1e73a3 Bug 1503655 part 3 - Remove PRenderFrame protocol without functional changes. r=kats
This commit removes the PRenderFrame protocol, while keeping the same ordering
and semantics of graphics IPC initialization.

To do this, some messages are added to PBrowser to simulate the constructor
and destructor of PRenderFrame. Messages that expected a nullable PRenderFrame
are updated to get a boolean instead.

One tricky area is the destruction of PRenderFrame. I've tried to keep it the
same as much as possible, but it's possible it might be slightly semantically
different than IPDL destruction. Destruction will be touched up in a later
patch, so I'm not too concerned.

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

--HG--
extra : rebase_source : bb8a7896bb4aefb6e9957d8808b755fa76cc00ed
extra : histedit_source : 6377819a946b5b6bc18b15f748229360e42a6f3a
2018-11-05 12:45:06 -06:00
Ryan Hunt
535b26ac9c Bug 1503655 part 1 - Remove nested-oop support from RenderFrameParent. r=kats,froydnj
Differential Revision: https://phabricator.services.mozilla.com/D10593

--HG--
extra : rebase_source : c38238f2fa07f7a196ba9c14f745832ef7ad3cd5
extra : histedit_source : 02897684f5400f157973d5aa6bc4a6f6908697a4
2018-11-01 12:23:37 -05:00
Makoto Kato
90f9f1ea2a Bug 1500876 - Remove PContent::GetSystemColors sync IPC. r=snorp,mccr8
Content process of Android uses sync IPC when initializing LookAndFeel. But
current e10s has LookAndFeel cache for start up of content process.
So we should use it, then remove sync IPC for start up performance

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

--HG--
extra : moz-landing-system : lando
2018-10-29 01:35:47 +00:00
Haik Aftandilian
81b56d13a8 Bug 1431441 - Part 3 - Start the Mac content sandbox earlier r=Alex_Gaynor
Pass sandbox parameters to content processes on the command line allowing for early sandbox startup.

Pref'd off behind "security.sandbox.content.mac.earlyinit" until it's ready to be enabled by default.

Once early startup is enabled by default and considered stable, the original sandbox startup code can be removed.

Depends on D6719

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

--HG--
extra : moz-landing-system : lando
2018-10-19 18:23:16 +00:00
Jed Davis
859f503587 Bug 1498765 - Clean up ContentParent::KillHard handling. r=mccr8
MessageChannel shouldn't need to care about PContent-specific details.
2018-10-19 15:29:34 -06:00