Commit Graph

926 Commits

Author SHA1 Message Date
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
Narcis Beleuzu
a2990eb898 Backed out 7 changesets (bug 1431441) as per haik`s request.
Backed out changeset 1dfdc7ba998d (bug 1431441)
Backed out changeset fb1a4ddbf9bf (bug 1431441)
Backed out changeset b59b1651fc15 (bug 1431441)
Backed out changeset 1e2bb579b824 (bug 1431441)
Backed out changeset 2a635530dfa3 (bug 1431441)
Backed out changeset 262da0be2fed (bug 1431441)
Backed out changeset b9cfda58fed3 (bug 1431441)

--HG--
extra : rebase_source : 7baf60c49683b419c0603979b0dff3befb2fbaf0
2018-10-14 18:20:01 +03:00
Haik Aftandilian
b9bdcdedb1 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. Limited to Nightly
until confirmed to be stable and ready to ride the trains.

Enable early sandbox startup by default on Nightly and use
pref "security.sandbox.content.mac.earlyinit" to disable
early startup for debugging purposes.

Once early startup is 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-11 22:44:25 +00:00
Brian Hackett
10209c0ccc Bug 1497057 - Remove ability to restart replaying children, r=mccr8.
--HG--
extra : rebase_source : 76e00d5e4330cfe375f70f2037f00e8d65eb91b6
2018-10-09 14:24:14 -10:00
Tiberius Oros
3edd9afbe3 Backed out 5 changesets (bug 1431441) for failing devtools at client/debugger/new/test/mochitest/browser_dbg_rr_breakpoints-01.js on OSX opt a=backout
Backed out changeset 94a1d1d67191 (bug 1431441)
Backed out changeset be7ec7438701 (bug 1431441)
Backed out changeset db6b7ee04187 (bug 1431441)
Backed out changeset f61ec0f140c2 (bug 1431441)
Backed out changeset ac51f86f5cac (bug 1431441)
2018-10-03 09:39:01 +03:00
Haik Aftandilian
ef9150c083 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. Limited to Nightly
until confirmed to be stable and ready to ride the trains.

Enable early sandbox startup by default on Nightly and use
pref "security.sandbox.content.mac.earlyinit" to disable
early startup for debugging purposes.

Once early startup is 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-02 20:29:46 +00:00
Andrea Marchesini
9968406ccc Bug 1491835 - Store User-Interaction for AntiTracking purposes - part 2 - storing user-interaction, r=ehsan 2018-09-24 12:54:54 +02:00
Gabriele Svelto
a1f6255102 Bug 1463048 - Remove asynchronous minidump generation r=ted
This reverts the changes in bug 1360308, bug 1390143 and bug 1469603. Minidump
generation will now only happen on the main process' main thread which might
lead to hangs but is known to be fairly robust. Asynchronous generation proved
too brittle and enormously increased the complexity of this already
hard-to-read code.

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

--HG--
extra : moz-landing-system : lando
2018-09-17 20:51:45 +00:00
Gabriele Svelto
afec91a1db Bug 1459212 - Save memory reports for use in crash reports when low on memory r=dmajor,mccr8
This moves the code that detects very low memory scenarios and grabs memory
reports from the main thread event-loop to the available memory tracker.
Besides removing the overhead of the check from the event-loop code this
increases the likeliness of the reports being gathered by sampling at a
higher frequency but only when we already detected a low-memory scenario. Last
but not least this add checks for low commit-space detection alongside low
virtual-memory detection.

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

--HG--
extra : moz-landing-system : lando
2018-08-20 21:53:27 +00:00
Brian Hackett
a11ac30030 Bug 1481009 Part 8 - Remove unused RecordReplayFatalError message, r=froydnj.
--HG--
extra : rebase_source : e1fa0a6d34af127c2b92a9206e5c10829b3af358
2018-08-13 20:48:31 +00:00
Cosmin Sabou
ca86972424 Backed out 8 changesets (bug 1481009) for causing devtools crashes @XUL + 0x37bba19. a=backout
Backed out changeset 11ee868c5903 (bug 1481009)
Backed out changeset 4a0c7dd5e1ac (bug 1481009)
Backed out changeset 4e6908123a97 (bug 1481009)
Backed out changeset 6869ea5ebd32 (bug 1481009)
Backed out changeset 85eec9cfc3d9 (bug 1481009)
Backed out changeset f7f4127aa9d8 (bug 1481009)
Backed out changeset 58598aa3cf0c (bug 1481009)
Backed out changeset 1ec7f635f4f3 (bug 1481009)
2018-08-12 14:50:41 +03:00
Brian Hackett
5484f6f04f Bug 1481009 Part 8 - Remove unused RecordReplayFatalError message, r=froydnj.
--HG--
extra : rebase_source : 38ca1b32f80897713c099d74f4e4a029b631948d
2018-08-08 16:51:35 +00:00
Kartikaya Gupta
3faf3e38d9 Bug 1478016 - Add a strongly-typed LayersObserverEpoch type. r=mattwoodrow
MozReview-Commit-ID: 6fELexXRYeV

--HG--
extra : rebase_source : 0eb028ee9b98199d18421f7ff28433189940fdca
2018-07-30 09:24:50 -04:00
Andreas Farre
cbc727cdcf Bug 1445659 - Make BrowsingContext interact with bfcache. r=peterv
Have BrowsingContext keep its own cache to enable caching of
BrowsingContexts, especially in the parent process.

This isn't really optimal, since it effectively duplicates the
cache in the child process. BFcache keeps a list of strong pointers to
the list of cached nsDocShells, where each nsDocShell in turn keeps a
reciprocated strong pointer to its BrowsingContext, which in turn is
held in the BrowsingContexts list of cached contexts. Ideally these
caches should be merged.

--HG--
extra : histedit_source : 094370f6d54d83728e8433ec5c47003086146476
2018-06-28 05:40:00 +03:00
Andreas Farre
1d151a57c8 Bug 1445659 - Create basic Browsing Context in Content Parent and Child. r=peterv
Add BrowsingContext to allow the tree structure of docshells to exist
in several processes simultaneously. This is a first step towards
allowing a tree structure preserving separation of docshells across
processes.

--HG--
extra : histedit_source : d3c7f6ab4b9ae76f170c126d669ebd570e52f348
2018-07-26 10:31:00 +03:00
Brian Hackett
3b2167ce37 Bug 1465466 Part 5 - Don't use APZ in recording/replaying processes, r=kats,mconley.
--HG--
extra : rebase_source : 01a76161037131e0df626f591543bf9316016597
2018-07-23 21:51:24 +00:00
Brian Hackett
3354a96d8d Bug 1465287 Part 8 - Allow spawning recording/replaying child processes and saving recordings, r=jld,mrbkap.
--HG--
extra : rebase_source : 1da4b1a7e485cfdafb38318860546ce3d0552815
2018-07-22 11:52:42 +00:00
Brian Hackett
d138090586 Bug 1465287 Part 7 - Add IPDL and IDL for record/replay directives and fatal errors, r=mccr8.
--HG--
extra : rebase_source : 5f938acb994cf777cfd0630980f29aa03045789c
2018-07-22 11:51:55 +00:00
Bogdan Tara
97830f0e63 Merge mozilla-central to mozilla-inbound. a=merge CLOSED TREE 2018-07-20 00:55:33 +03:00
Ehsan Akhgari
3441526820 Bug 1476796 - Enable AntiTrackingCommon::AddFirstPartyStorageAccessGrantedFor() to notify consumers about completion of asynchronous results; r=baku
Right now consumers can't know when the parent process has finished talking
to the permission manager.  It would be nice to enable consumers to depend
on the status of the asynchronous task using a promise.
2018-07-19 17:04:56 -04:00
Coroiu Cristina
edada2f46b Backed out changeset bc6d7dc3f10f (bug 1476796) for build bustage on a CLOSED TREE 2018-07-19 23:51:35 +03:00
Ehsan Akhgari
7c156959da Bug 1476796 - Enable AntiTrackingCommon::AddFirstPartyStorageAccessGrantedFor() to notify consumers about completion of asynchronous results; r=baku
Right now consumers can't know when the parent process has finished talking
to the permission manager.  It would be nice to enable consumers to depend
on the status of the asynchronous task using a promise.
2018-07-19 16:20:20 -04:00
Haik Aftandilian
59a99c8595 Bug 1350642 - Keep the tabCountResizable property in sync; r=dao
Differential Revision: https://phabricator.services.mozilla.com/D2197

--HG--
extra : moz-landing-system : lando
2018-07-19 18:05:35 +00:00
Andrea Marchesini
1498612e1b Bug 1474812 - No needs to store granted storage access in nsILoadInfo and in the inner window, r=ehsan 2018-07-13 12:02:19 +02:00
Andrea Marchesini
2227a5e089 Bug 1469993 - Grant storage access to a 3rd party, tracking resource if a opened document has user-interaction - part 3 - using permissions, r=ehsan 2018-07-10 10:09:59 +02:00
Margareta Eliza Balazs
c37b51f523 Backed out 9 changesets (bug 1469993) for causing bustage in build/srcdom/base/nsGlobalWindowInner.cpp on a CLOSED TREE
Backed out changeset e89192032fe2 (bug 1469993)
Backed out changeset 4b261595099d (bug 1469993)
Backed out changeset 37182cfe869c (bug 1469993)
Backed out changeset 5b9870995c73 (bug 1469993)
Backed out changeset 55499fcd9738 (bug 1469993)
Backed out changeset 8c1c838d54ba (bug 1469993)
Backed out changeset 12b9c8bfa41f (bug 1469993)
Backed out changeset 04ab7d6c169a (bug 1469993)
Backed out changeset 53885d61244e (bug 1469993)
2018-07-10 11:32:34 +03:00
Andrea Marchesini
f34232490a Bug 1469993 - Grant storage access to a 3rd party, tracking resource if a opened document has user-interaction - part 3 - using permissions, r=ehsan 2018-07-10 10:09:59 +02:00