Commit Graph

2198 Commits

Author SHA1 Message Date
Razvan Maries
1fcf888246 Backed out changeset 15f8b27f1305 (bug 1511557) for build bustages on a CLOSED TREE.
--HG--
extra : rebase_source : a1303dfa4c9475ea43f2fedfa2031c455d8bab7a
extra : amend_source : d11c65e735d78a8d7b70c1be52439ad61904ccd5
2018-12-14 11:54:33 +02:00
Gabriele Svelto
b177dcc7d5 Bug 1511557 - Do not leak the pipe used for sending crash annotations when hitting errors during startup r=jld
Differential Revision: https://phabricator.services.mozilla.com/D13999

--HG--
extra : moz-landing-system : lando
2018-12-14 02:47:03 +00:00
Jean-Yves Avenard
48517afae6 Bug 1512298 - Make IPDL MozPromise exclusive. r=gerald,froydnj
MozPromise most common use is to have an single or exclusive listener. By making the MozPromise generated by IPDL exclusive we can also use move semantics.

While at it, we also use move semantics for the ResponseRejectReason and via the callback's reject method so that the lambda used with the MozPromise::Then can be identical to the one used by the IPDL callback.
As it currently is, it provides no advantage over a copy as it's just an enum; however, this will facilitate future changes where it may not be.

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

--HG--
extra : moz-landing-system : lando
2018-12-11 19:22:26 +00:00
Sylvestre Ledru
ad75e912fb Bug 1512961 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

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

--HG--
extra : moz-landing-system : lando
2018-12-10 19:23:16 +00:00
Nika Layzell
e1e08d3d11 Bug 1512085 - Don't overlap IDs between content and middleman process, r=bhackett
Differential Revision: https://phabricator.services.mozilla.com/D13763
2018-12-05 10:18:46 -05:00
Nika Layzell
b4954ede43 Bug 1500944 - Part 1: Store the set of active WindowGlobalParent objects in ChromeBrowsingContext, r=farre
This allows getting the set of all window globals for a given browsing context.
This is less useful at the moment as the active window global is not exposed as
such. That will be added as a follow-up.

Differential Revision: https://phabricator.services.mozilla.com/D9393
2018-12-05 10:18:33 -05:00
Nika Layzell
4e07a0c5f9 Bug 1487249 - Part 3: Add the WindowGlobal actor representing a single window global, r=bzbarsky
This actor can be used for communicating with individual frames, without
depending on walking the tree in the content process.

This is not yet complete. No tests have been written for it, the
WindowGlobalParent objects need to be exposed to chrome JS, and a form of JS
actors should be installed under them.

In addition, BrowsingContextChrome objects should be updated to allow access to
the current WindowGlobalParent in that context.

Differential Revision: https://phabricator.services.mozilla.com/D4623
2018-12-05 10:18:31 -05:00
Nika Layzell
8791515adb Bug 1487249 - Part 2: Add a new PInProcess actor to manage intra-thread actors, r=mccr8
This will be useful as a basis for asynchronous actors which would like to exist
both when crossing the process boundary (managed by PContent), and when
displaying an in-process window.

Differential Revision: https://phabricator.services.mozilla.com/D4622
2018-12-05 10:18:29 -05:00
Nika Layzell
54f24a9804 Bug 1487249 - Part 1: Allow MessageChannel objects to be created within a thread, r=mccr8
To create a more generic interface for interacting both within the main thread
of the parent process and between the parent and child processes, it would be
nice to support IPDL actors within the main thread of the parent process. This
requires the underlying MessageChannel actor to support intra-thread links.

This change adds support for intra-thread links to the underlying MessageChannel
object using ThreadLink, and an extra boolean flag.

Differential Revision: https://phabricator.services.mozilla.com/D4620
2018-12-05 10:18:28 -05:00
Andrea Marchesini
7f4916b08b Bug 1508310 - Implement Report-to header support - part 6 - Remove endpoints, r=smaug 2018-12-01 21:26:09 +01:00
Andrea Marchesini
ace9fa800a Bug 1508310 - Implement Report-to header support - part 4 - IPC to get endpoint from content process, r=smaug 2018-12-01 21:26:09 +01:00
Jan Varga
811dea257a Bug 1511468 - make OnChannelReceivedMessage unconditionally defined; r=froydnj 2018-11-30 22:23:30 +01:00
Tooru Fujisawa
7983faeb5d Bug 1511393 - Use c-basic-offset: 2 in Emacs mode line for C/C++ code. r=nbp 2018-12-01 04:52:05 +09:00
Benjamin Bouvier
a7f1d173a0 Bug 1511383: Update vim modelines after clang-format; r=sylvestre
- modify line wrap up to 80 chars; (tw=80)
- modify size of tab to 2 chars everywhere; (sts=2, sw=2)

--HG--
extra : rebase_source : 7eedce0311b340c9a5a1265dc42d3121cc0f32a0
extra : amend_source : 9cb4ffdd5005f5c4c14172390dd00b04b2066cd7
2018-11-30 16:39:55 +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
Razvan Maries
d696b8eb57 Merge mozilla-central to mozilla-inbound. a=merge on a CLOSED TREE 2018-11-29 23:46:52 +02:00
Michael Froman
b6e960b34c Bug 1498624 - pt2 - Implement Win sandbox for RDD process. r=bobowen
Differential Revision: https://phabricator.services.mozilla.com/D13101

--HG--
extra : moz-landing-system : lando
2018-11-29 17:02:16 +00: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
Sylvestre Ledru
ef05004811 Bug 1503537 - Get rid of the pdfium & mortar code r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D10352

--HG--
extra : moz-landing-system : lando
2018-11-28 19:31:21 +00:00
Ehsan Akhgari
ca162bee20 Bug 1508472 - Part 4: Fourth batch of comment fix-ups in preparation for the tree reformat r=sylvestre
This is a best effort attempt at ensuring that the adverse impact of
reformatting the entire tree over the comments would be minimal.  I've used a
combination of strategies including disabling of formatting, some manual
formatting and some changes to formatting to work around some clang-format
limitations.

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

--HG--
extra : moz-landing-system : lando
2018-11-28 09:16:55 +00:00
Ehsan Akhgari
e8df714b7c Bug 1509555 - Part 3: Remove reporting of tracker statistics to docshell which was added for fastblock r=valentin,baku
Depends on D12829

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

--HG--
extra : moz-landing-system : lando
2018-11-27 08:55:36 +00:00
Ehsan Akhgari
15bf246249 Bug 1509555 - Part 1: Remove the telemetry probe for measuring the rate at which popular analytics providers get blocked by fastblock r=baku,valentin
Differential Revision: https://phabricator.services.mozilla.com/D12828

--HG--
extra : moz-landing-system : lando
2018-11-27 08:50:36 +00:00
Gabriele Svelto
566f669d07 Bug 1509450 - Remove unnecessary inclusions of ContentParent.h and ContentChild.h r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D12728

--HG--
extra : moz-landing-system : lando
2018-11-26 14:49: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
15e4267fae 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.

Depends on D8945

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

--HG--
extra : moz-landing-system : lando
2018-11-22 00:06:22 +00:00
Jed Davis
8782927375 Bug 1487287 - Set profiler env vars in child processes without side-effecting the parent process. r=mstange
We can directly set environment variables for the child process on
all platforms now, instead of changing the parent's environment and
inheriting the changes.  This simplifies memory management, but more
importantly it's necessary for thread safety to allow launching
processes from a thread pool.

Depends on D8944

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

--HG--
extra : moz-landing-system : lando
2018-11-22 00:06:20 +00: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
Valentin Gosu
e823bab3cc Bug 1487964 - Do not report resource-timing subdocument loads triggered by that subdocument r=bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D9503

--HG--
extra : moz-landing-system : lando
2018-11-21 16:28:20 +00:00
Cosmin Sabou
79b7d9fe91 Backed out changeset 395b95afd795 (bug 1487964) for mochitest failures on test_resource_timing_nocors. 2018-11-21 17:14:29 +02:00
Valentin Gosu
a80d7bf63e Bug 1487964 - Do not report resource-timing subdocument loads triggered by that subdocument r=bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D9503

--HG--
extra : moz-landing-system : lando
2018-11-17 19:30:36 +00:00
Boris Zbarsky
9691e7ba88 Bug 1507540 part 3. Use more notxpcom attributes in netwerk/. r=valentin 2018-11-19 20:17:53 -05:00
Andrew Sutherland
6c6e230a77 Bug 1286798 - Part 53: Review code comments; r=janv,mrbkap,mccr8 2018-11-05 14:04:39 -05:00
Jan Varga
1812608353 Bug 1286798 - Part 27: Share database actors; r=asuth
If a database actor already exists for given origin, reuse it instead of creating a new one. This improves memory footprint a bit and also eliminates some round trips to the parent process.
2018-11-29 21:48:41 +01:00
Jan Varga
a5c446d3d9 Bug 1286798 - Part 23: Fix GetOrCreateForCurrentThread() when the runnable for calling SendInitBackground() on the main thread was already dispatched, but the main thread then entered a nested event loop; r=asuth
See the big comment in the code for more details.
2018-11-29 21:48:28 +01:00
Jan Varga
81c542fbe6 Bug 1286798 - Part 19: Implement a helper method for datastore preloading verification; r=asuth
A new type of request is introduced, PBackgroundLSSimpleRequest. This protocol is much simpler than PBackgroundLSRequest which needs to be cancelable.
2018-11-29 21:48:15 +01:00
Jan Varga
be167c5e0b Bug 1286798 - Part 10: Support for storage events; r=asuth,janv
Storage events are fired either directly after getting response from synchronous SetItem call or through observers. When a new onstorage event listener is added, we sycnhronously register an observer in the parent process. There's always only one observer actor per content process.
PBackgroundLSDatabase is now managed by a new PBackgroundLSObject protocol. PBackgroundLSObject is needed to eliminate the need to pass the principal info and document URI everytime a write operation occurs.
Preparation of an observer shares some states with preparation of a datastore, so common stuff now lives in LSRequestBase and preparation of a datastore now implements a nested state machine.

This patch was enhanced by asuth to drop observers only when the last storage listener is removed.
EventListenerRemoved is invoked on any removal, not just the final removal, so we need to make sure it's the final removal before dropping observer.
2018-11-29 21:47:45 +01:00
Jan Varga
60831f2e38 Bug 1286798 - Part 3: New basic (memory only) implementation of LocalStorage; r=asuth,mccr8
The implementation is based on a cache (datastore) living in the parent process and sync IPC calls initiated from content processes.
IPC communication is done using per principal/origin database actors which connect to the datastore.
The synchronous blocking of the main thread is done by creating a nested event target and spinning the event loop.
2018-11-29 21:47:20 +01:00
Jan Varga
33208bfd8e Bug 1286798 - Part 1: Allow BackgroundChild::GetOrCreateForCurrentThread() to use a custom main event target; r=mccr8,asuth 2018-11-29 21:47:14 +01:00
Andrea Marchesini
c292b31a93 Bug 1438945 - Part 9: RemoteWorker in SharedWorkerManager. r=asuth
--HG--
extra : rebase_source : 07a23a3f76ef06d76a456ba785186018e6fb77f1
2018-11-19 15:18:33 -08:00
Andrea Marchesini
7c7e94be60 Bug 1438945 - Part 8: RemoteWorker IPC. r=asuth
--HG--
extra : rebase_source : 06a8e3a2e60d6ff9596fcbacbd4356368475d3d4
2018-11-19 15:18:32 -08:00
Andrea Marchesini
0640b7884f Bug 1438945 - Part 3: SharedWorkerService and SharedWorkerManager. r=asuth
--HG--
extra : rebase_source : d6b247d0c6a1eb4074010c8b6baaff9fc1e01d87
2018-11-19 15:18:21 -08:00
Andrea Marchesini
1bf562b370 Bug 1438945 - Part 2: PSharedWorker protocol. r=asuth
--HG--
extra : rebase_source : 1ec6d2c9fc8dcffb9aa4958d81784408090df534
2018-11-19 15:18:20 -08:00
Michael Froman
2e78f7f1a1 Bug 1471535 - pt12 - Hook up RDD process and Remote decoding. r=jya,spohl
Depends on D8493

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

--HG--
extra : moz-landing-system : lando
2018-11-14 18:07:28 +00:00
Michael Froman
5502525cc3 Bug 1471535 - pt11 - Handle crash reporting for RDD. r=jya,gsvelto
Depends on D8492

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

--HG--
extra : moz-landing-system : lando
2018-11-14 18:07:10 +00:00
Michael Froman
cbe501f173 Bug 1471535 - pt9 - Add Windows sandbox pref and Win sandboxBroker code for RDD process. r=bobowen
Depends on D8490

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

--HG--
extra : moz-landing-system : lando
2018-11-14 18:06:37 +00:00
Bogdan Tara
fc8134a16a Backed out 12 changesets (bug 1471535) for VideoDecoderChild failures CLOSED TREE
Backed out changeset 3d8a11458d79 (bug 1471535)
Backed out changeset 2176010bc1fe (bug 1471535)
Backed out changeset dfb4d3462b22 (bug 1471535)
Backed out changeset ea6b73ded74d (bug 1471535)
Backed out changeset 404d760a9e82 (bug 1471535)
Backed out changeset 28ae4b6fab68 (bug 1471535)
Backed out changeset af91e1f04c2d (bug 1471535)
Backed out changeset d39fef4334b3 (bug 1471535)
Backed out changeset a038821cd8ae (bug 1471535)
Backed out changeset 5dcc74a938c6 (bug 1471535)
Backed out changeset 53aff7e699b4 (bug 1471535)
Backed out changeset f3f6abc052f0 (bug 1471535)

--HG--
rename : dom/media/ipc/GpuDecoderModule.cpp => dom/media/ipc/RemoteVideoDecoder.cpp
rename : dom/media/ipc/GpuDecoderModule.h => dom/media/ipc/RemoteVideoDecoder.h
2018-11-13 23:31:56 +02:00