Commit Graph

1119 Commits

Author SHA1 Message Date
Gabriele Svelto
44aa02b094 Bug 1402519 - Remove MOZ_CRASHREPORTER directives from dom; r=peterv
MozReview-Commit-ID: 4G2C9y6csvc
2017-10-10 12:43:09 +02:00
Nika Layzell
66aef5ded3 Bug 1418048 - Part 2: Pass callbacks by rvalue reference when possible, a=bustage
MozReview-Commit-ID: 4KsbRJ9AEdB
2017-11-20 18:12:21 -05:00
Nika Layzell
b43a1c73b0 Bug 1416728 - Process the CreateWindow reply message in order with other PContent IPC messages, r=bz
Previously we used the MozPromise interface for calling an async-message over
IPC with a reply. Unfortunately, MozPromise processes the reply asynchronously,
potentially allowing other IPC messages to be processed before the `->Then`
callback is processed.

In the original CreateWindow patch I tried to work around this by setting the
target of the `->Then` callback to be StableStateEventTarget. This worked,
however as it isn't safe to run scripts etc. in the stable state, we instead
tried to exit the nested event loop immediately after the runnable ran, and then
performed processing of the reply.

Unfortunately, this bug exposed a problem with that design. If we have multiple
nested event loops then we cannot guarantee that we'll exit the nested event
loop immediately after recieving the `->Then` callback, which meant that we
could still process other IPC messages before we processed the CreateWindow
reply.

The fix to this was to add a new API to allow passing callbacks directly into
IPC send methods, ensure that those callbacks are called in IPC order, and
fully process the CreateWindow reply in the callback, rather than waiting for
the nested event loop to exit.

MozReview-Commit-ID: D6zaMJRxhXd
2017-11-20 17:55:33 -05:00
Jonathan Kew
1fc835f8ed Bug 1412090 - patch 2 - Rework the fontconfig-based platform font list implementation to pass the list of available font patterns from chrome to content, instead of letting the content process get it directly from fontconfig. r=lsalzman 2017-11-02 20:29:33 +00:00
Jonathan Kew
96211f55a8 Bug 1412090 - patch 1 - Wrap the font family record used to pass font info from chrome to content on macOS in a union, in preparation for using the same mechanism with a different type of font record on Linux. (No functional change here, just the added union type and some renamings from 'font family list' to 'font list' to be more generic.) r=lsalzman 2017-11-02 17:23:16 +00:00
Jonathan Kew
5e73b7e0d0 Backed out changesets 75e7f32c3365, eec946b59360, 72a6f5f3512c, ea8ee40ed426 (bug 1412090) for apparently breaking all system-installed fonts on some Linux systems. r=backout 2017-11-10 16:05:33 +00:00
Jonathan Kew
b82e985f27 Bug 1412090 - patch 2 - Rework the fontconfig-based platform font list implementation to pass the list of available font patterns from chrome to content, instead of letting the content process get it directly from fontconfig. r=lsalzman 2017-11-02 20:29:33 +00:00
Jonathan Kew
06ab6b4835 Bug 1412090 - patch 1 - Wrap the font family record used to pass font info from chrome to content on macOS in a union, in preparation for using the same mechanism with a different type of font record on Linux. (No functional change here, just the added union type and some renamings from 'font family list' to 'font list' to be more generic.) r=lsalzman 2017-11-02 17:23:16 +00:00
Ben Kelly
c4e29b344b Bug 1415779 P1 Add the ClientManager class. r=baku 2017-11-08 21:19:59 -08:00
Ben Kelly
e5999f640d Bug 1413606 P2 Add IPC actor structure and boilerplate. r=baku 2017-11-01 13:19:38 -04:00
Martin Stransky
9b7102cefc Bug 1409716 - Don't use DetectDisplay() for child process, r=glandium
Don't retrieve parent display by DetectDisplay().
Utilize MOZ_GDK_DISPLAY when available, when it's missing query DISPLAY env variable for X11 only builds and standard gtk_init() for Wayland enabled builds.

MozReview-Commit-ID: 9yebsISeNjc
2017-10-25 14:53:15 +02:00
Chris Peterson
4434deda7a Bug 1412048 - Replace NS_RUNTIMEABORT("...") with MOZ_CRASH("..."). r=froydnj
And remove unreachable code after MOZ_CRASH().

MozReview-Commit-ID: 6ShBtPRKYlF
2017-10-24 23:30:31 -07:00
Andrea Marchesini
9e34ee5a40 Bug 1411257 - No MOZ_CRASH if BackgroundChild::GetOrCreateForCurrentThread() fails - part 9 - ContentChild, r=asuth 2017-10-25 08:45:53 +02:00
Andrea Marchesini
62535124d1 Bug 1408333 Get rid of nsIIPCBackgroundChildCreateCallback - part 19 - ContentChild, r=billm, r=asuth 2017-10-24 12:02:41 +02:00
Nicholas Nethercote
e7cd5cec20 Bug 1405541 (attempt 2) - Split AUTO_PROFILER_LABEL_DYNAMIC into three macros. r=mstange.
It's easy to mess up the scoping so that (a) the label is pushed and then
immediately popped, and/or (b) the string doesn't live long enough. It's also
easy to do a utf16-to-utf8 conversion unnecessarily when the profiler is
inactive. This patch splits that macro into three new ones that are harder to
mess up.

- AUTO_PROFILER_LABEL_DYNAMIC_CSTR: same as current.
- AUTO_PROFILER_LABEL_DYNAMIC_NSCSTRING: for nsCStrings.
- AUTO_PROFILER_LABEL_DYNAMIC_LOSSY_NSSTRING: for nsStrings.
2017-10-13 16:12:57 +11:00
Tom Ritter
bf3423ddea Bug 1404035 Address unused result warnings in dom/ipc/ r=smaug
In come cases, we can fail the IPC message, but in one we can't really do anything.

MozReview-Commit-ID: 4vdKIRUOJNN
2017-09-28 12:46:37 -05:00
Kris Maglione
7cdbf75d48 Bug 1404198: Part 2i - Switch to NS_NewTimer* in dom. r=njn
MozReview-Commit-ID: 8Oei6TuXNbu
2017-10-15 23:15:40 -07:00
Andrew Osmond
76d95e11e1 Bug 1406442 - Improve IPCShutdownState annotation for SendFinishShutdown state to know message status. r=ehsan 2017-10-06 14:50:58 -04:00
cku
0d8c45cbd5 Bug 1351190 - Revert the change we made in this bug, since it causes a crash in bug 1404681. r=me
MozReview-Commit-ID: 87CBqK6upIU
2017-10-06 16:31:35 +08:00
Gabor Krizsanits
056563e620 Bug 1404383 - Delay nsStringBundle preloading in content processes. r=smaug
Early in the startup the channel creation might fail,
in nsStringBundle load and any further attempts are prevented which
leads to broken ocaization support for the process. Let's wait until
the child process learns about the chrome URLs registered on the parent
side with the preloads.
2017-09-29 17:54:06 +02:00
Eugen Sawin
b732ac6ad1 Bug 1394520 - [1.2] Extend nsIBrowserDOMWindow to support content window creation without URI loading with e10s. r=smaug 2017-09-28 22:45:24 +02:00
Alessio Placitelli
e24412e896 Bug 1393801 - Enable dynamic scalar registration. f=gfritzsche,r=billm,chutten
MozReview-Commit-ID: JlRk7hLV5QD
2017-08-29 13:05:40 +02:00
Mats Palmgren
e39ddbac4d Bug 1400623 - Add missing ClearOnShutdown.h #include. r=aosmond
MozReview-Commit-ID: 7AY4eGIOdv
2017-09-17 17:21:32 +02:00
Andrew Osmond
d2649a57cb Bug 1397214 - Prevent ContentChild::RecvSetXPCOMProcessAttributes from running after shutdown. r=ehsan
Since ContentChild itself may be created before the observer service is
started, we cannot create an observer to simply listen for the
xpcom-shutdown event. Thankfully we do not need to do anything special
upon receiving the event -- we just need to know if it has been fired
when we called RecvSetXPCOMProcessAttributes. As such, this patch
creates a canary using ClearOnShutdown. If the canary is cleared, then
we know xpcom-shutdown has been issued, and we should abort the
initialization process.

fixup
2017-09-15 18:48:37 -04:00
Andrea Marchesini
8d48e742d5 Bug 1376794 - Label blob IPC messages, r=billm 2017-09-15 18:20:08 +02:00
Jonathan Kew
705e3ad0f8 Bug 1399503 - Use font family list passed from the chrome process to initialize the platform font family list on macOS, to avoid expensive Core Text font iteration code path. r=mconley 2017-09-14 22:15:27 +01:00
Andrew Osmond
8d54a48d1f Backed out changeset e66c8d65d0f1 (bug 1389021) because it did not reduce the crash volume. 2017-09-13 11:19:06 -04:00
Andrew Osmond
7918c50aee Bug 1389021 - Explicitly shutdown the CompositorManagerChild during ContentChild::ActorDestroy. r=me
It has been observed on nightly and beta that the compositer thread
fails to shutdown gracefully due to lingering references. From what
can be determined, it appears as if the content process references
are what are keeping it alive. The shutdown of CompositorBridgeChild
was altered because a top level protocol was added above it in a
previous change in bug 1365927. This protocol tree is ultimately
what is keeping the thread alive. As such, this patch adds an
explicit shutdown of the protocol, to ensure it gets released in a
timely manner.

This change will be backed out if it appears to have no effect on
the crash rate in nightly 57.
2017-09-11 18:32:44 -04:00
Michael Layzell
722862e0bf Bug 1378281 - Take 2: Also check if the child is destroyed during ProvideWindowCommon, r=catalinb 2017-09-01 12:51:48 -04:00
Bevis Tseng
45edbc24b6 Bug 1394357 - Label PContent::Msg_BlobURL(Re|Unre)gistration with SystemGroup. r=billm 2017-08-28 17:54:48 +08:00
Bevis Tseng
cf3ef2dbcd Bug 1394350 - Label PContent::Msg_PIPCBlobInputStreamConstructor with SystemGroup. r=billm 2017-08-28 17:27:31 +08:00
Michael Layzell
0230475b84 Bug 1394596 - Support window.open(undefined, undefined, "noopener") in the child process, r=smaug 2017-08-29 13:17:48 -04:00
Michael Layzell
a72ac820e5 Bug 1393912 - Register the pending input event annotator on the main thread, r=smaug 2017-08-25 15:31:54 -04:00
Bevis Tseng
44f030b5c8 Bug 1393319 - Label PContent::Msg_DataStorage(Put|Remove|Clear). r=billm
Label these 3 messages with SystemGroup since they only touch an internal
hashtable instead of any web contents.
2017-08-24 10:16:05 +08:00
Bevis Tseng
236b3f9bb7 Bug 1390424 - Move ParentActivated message from PContent/PContentBridge back to PBrowser. r=billm 2017-08-23 17:02:57 +08:00
Stone Shih
c3615a35b6 Bug 1389314 Part2: Support enabling and disabling the input priority events in runtime. r=smaug.
MozReview-Commit-ID: 3a2TNVqguVb
2017-07-28 15:14:54 +08:00
Nicholas Nethercote
b7346a7502 Bug 1390428 (part 1) - Remove many nsXPIDLCString local variables. r=erahm.
These are all easy cases where an nsXPIDLCString local variable is set via
getter_Copies() and then is only used in ways that nsCStrings can also be used
(i.e. no null checks or implicit conversions to |char*|).

In every case the patch trivially replaces the nsXPIDLCString with an
nsCString. (Also, there are a couple of unused nsXPIDLCString variables that
the patch simply removes.)
2017-08-16 13:58:35 +10:00
Michael Layzell
1f743a917c Bug 1384238 - Annotate BHR hangs which occur while there is a pending input event, r=smaug
MozReview-Commit-ID: HRPMw2IfEKB
2017-08-15 16:36:28 -04:00
Stone Shih
419a19e980 Bug 1351148 Part2: Add a priority queue for input events. r=smaug.
MozReview-Commit-ID: 5ud1Ex9UNVo
2017-03-21 15:44:12 +08:00
Michael Layzell
23713b702a Bug 1372433 - Label the PContent::Msg_NotifyVisited runnable, r=billm
I don't bother to label the runnables in the parent process being fired by
VisitedQuery, as we are not planning to perform scheduling in the parent process
if I remember correctly. It would be possible to label those runnables as well.

MozReview-Commit-ID: EosNOu62fEV
2017-08-11 18:07:58 -04:00
Stone Shih
cb61054c6c Backed out changeset 46d8f42863af (bug 1351148) 2017-08-11 15:19:44 +08:00
Stone Shih
9477e7b2db Bug 1351148 Part2: Add a priority queue for input events. r=smaug.
MozReview-Commit-ID: 5ud1Ex9UNVo
2017-03-21 15:44:12 +08:00
Sebastian Hengst
c7240206e3 merge mozilla-central to mozilla-inbound. r=merge a=merge 2017-08-10 17:41:11 +02:00
Bill McCloskey
6a779dcdbc Bug 1384336 - Stop using OS-level event loop in content process (r=mstange)
MozReview-Commit-ID: 1ouSlgGchWl
2017-08-09 21:24:20 -07:00
Haik Aftandilian
b00b849b27 Bug 1386832 - Part 1 - Move non-sandbox-specific routines out of SandboxSettings. r=jimm
Moves IsDevelopmentBuild(), GetRepoDir(), and GetObjectDir() out of
SandboxSettings because they also need to be used by ExtensionProtocolHandler
to do security checks on developer builds as a result of how developer builds
rely on symlinks to the repo dir from system extension directories.

Remove the Linux-implementation of GetRepoDir() and GetObjectDir()
because the Linux content sandbox implementation and the
ExtensionProtocolHandler checks don't need them.

MozReview-Commit-ID: KwBFUnh6Cml
2017-08-09 16:09:55 -07:00
Eric Rahm
0c7237960f Bug 1386825 - Part 1: Remove MOZ_B2G from dom. r=bkelly
MozReview-Commit-ID: 1zzP2r01B7U
2017-08-08 14:41:05 -07:00
Jan Varga
71b9ef19b0 Bug 1350637 - Part 9: Move Local Storage event broadcasting from PContent to PBackground; r=asuth 2017-08-08 23:02:28 +02:00
Jan Varga
2b0c0e39f2 Bug 1350637 - Part 1: Move PStorage stubs from PContent to PBackground; r=asuth r=billm 2017-08-08 22:56:49 +02:00
Andrew Sutherland
bddac8bb5f Bug 1383978 - Update child process names based on remote type. r=billm
Without this patch, all remote process types share a process name of
"Web Content".  With this patch, specific names are added for "file",
"extension", and "webLargeAllocationTypes", with the default of "web"
left as the default "Web Content".

This patch also eliminates undocumented b2g-era legacy logic that had a
notion of whether it's acceptable to override the process name.  In the
b2g era, I believe processes were named based on the "app" that was
running.  It would have made sense to have the process initially named
the preallocated process, then to change the process to its app name
when specialized, trying to make it hard/impossible for the process to
rename itself so it couldn't masquerade as another app if it became
compromised.
2017-07-24 23:27:40 -04:00
Nicholas Nethercote
d24ecfe191 Bug 1387381 - Remove nsXPIDLString local variables. r=erahm.
nsXPIDLStrings are marked as VOIDED upon initialization. Most of these local
nsXPIDLString variables are immediately set via getter_Copies(), which will
either assign a string value (using Adopt()) or do SetIsVoid(). These can be
trivially converted to nsString, which will get the same treatment.

The patch suitably converts the remaining nsXPIDLString local variable as well.
2017-08-08 16:07:55 +10:00