Граф коммитов

1412 Коммитов

Автор SHA1 Сообщение Дата
Peter Van der Beken 7e9586a484 Bug 1546356 - Allow ManagedEndPoints as members of unions/structs. Part 4: Forward declare the inner type of a ManagedEndpoint. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D28551

--HG--
extra : source : 5d6a6518fd988535c869f94b2f3dbc02eef546a7
2019-04-23 19:30:01 +02:00
Peter Van der Beken 963a983ee8 Bug 1546356 - Allow ManagedEndPoints as members of unions/structs. Part 3: don't generate code that copies members of unions and structs if they contain a ManagedEndpoint. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D28550

--HG--
extra : source : 0f5bfffa449f1845c591146b2f62c3ffcb809f61
2019-04-19 14:35:30 +02:00
Peter Van der Beken ffd3e84760 Bug 1546356 - Allow ManagedEndPoints as members of unions/structs. Part 2: add a typedef for ManagedEndpoint if it's used in a struct or union. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D28549

--HG--
extra : source : a989da45e5386db183fc44b92ca0be6689890ac9
2019-04-19 14:56:48 +02:00
Peter Van der Beken e9208b01f8 Bug 1546356 - Allow ManagedEndPoints as members of unions/structs. Part 1: Include headers for parent and child actors. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D28548

--HG--
extra : source : 534f55dc3b864de991c481bddbdb36081547fdbf
2019-04-19 14:13:27 +02:00
Jim Porter 9354dfda4a Bug 1557447 - Profiler support for IPC information; r=nika,smaug
This adds the ability to add profile markers for both the sender and recipient
sides of IPC messages. These can then be correlated with one another in the
profile visualization. For the UI component of this patch, see
<https://github.com/firefox-devtools/profiler/pull/2172>.

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

--HG--
extra : moz-landing-system : lando
2019-10-21 20:51:07 +00:00
Daniel Varga 8fdca46bc7 Backed out changeset 2923afce519a (bug 1557447) for browser chrome failure at tools/profiler/tests/browser/browser_test_feature_preferencereads.js. On a CLOSED TREE 2019-10-18 07:54:09 +03:00
Jim Porter 80bfcd6e57 Bug 1557447 - Profiler support for IPC information; r=nika
This adds the ability to add profile markers for both the sender and recipient
sides of IPC messages. These can then be correlated with one another in the
profile visualization. For the UI component of this patch, see
<https://github.com/firefox-devtools/profiler/pull/2172>.

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

--HG--
extra : moz-landing-system : lando
2019-10-18 02:56:02 +00:00
Dorel Luca efd52379da Backed out changeset cd4dc0ae3364 (bug 1557447) for Browser-chrome failures in build/src/obj-firefox/dist/include/mozilla/BlocksRingBuffer.h 2019-10-18 03:59:06 +03:00
Jim Porter 641b95fb72 Bug 1557447 - Profiler support for IPC information; r=nika
This adds the ability to add profile markers for both the sender and recipient
sides of IPC messages. These can then be correlated with one another in the
profile visualization. For the UI component of this patch, see
<https://github.com/firefox-devtools/profiler/pull/2172>.

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

--HG--
extra : moz-landing-system : lando
2019-10-17 23:39:42 +00:00
Aaron Klotz ff13f9f2cc Bug 1583581: Make promise-based async senders generated by IPDL use std::move to pass its arguments to the callback-based sender; r=nika
Differential Revision: https://phabricator.services.mozilla.com/D46968

--HG--
extra : moz-landing-system : lando
2019-09-25 17:14:49 +00:00
Byron Campen [:bwc] fec8b0d807 Bug 1569183: Stop doing a proxy lookup to determine whether we're configured to use a proxy (for the proxy_only_if_behind_proxy pref), and instead look at whether we loaded the doc using a proxy. r=mjf,mayhemer,jld
Differential Revision: https://phabricator.services.mozilla.com/D45289

--HG--
extra : moz-landing-system : lando
2019-09-18 14:27:42 +00:00
Byron Campen [:bwc] ffa09cee72 Bug 1569183: Rename PWebrtcProxyChannel to PWebrtcTCPSocket. r=mjf
Differential Revision: https://phabricator.services.mozilla.com/D45098

--HG--
rename : media/mtransport/WebrtcProxyChannelWrapper.cpp => media/mtransport/WebrtcTCPSocketWrapper.cpp
rename : media/mtransport/WebrtcProxyChannelWrapper.h => media/mtransport/WebrtcTCPSocketWrapper.h
rename : media/mtransport/ipc/PWebrtcProxyChannel.ipdl => media/mtransport/ipc/PWebrtcTCPSocket.ipdl
rename : media/mtransport/ipc/WebrtcProxyChannel.cpp => media/mtransport/ipc/WebrtcTCPSocket.cpp
rename : media/mtransport/ipc/WebrtcProxyChannel.h => media/mtransport/ipc/WebrtcTCPSocket.h
rename : media/mtransport/ipc/WebrtcProxyChannelCallback.h => media/mtransport/ipc/WebrtcTCPSocketCallback.h
rename : media/mtransport/ipc/WebrtcProxyChannelChild.cpp => media/mtransport/ipc/WebrtcTCPSocketChild.cpp
rename : media/mtransport/ipc/WebrtcProxyChannelChild.h => media/mtransport/ipc/WebrtcTCPSocketChild.h
rename : media/mtransport/ipc/WebrtcProxyLog.cpp => media/mtransport/ipc/WebrtcTCPSocketLog.cpp
rename : media/mtransport/ipc/WebrtcProxyLog.h => media/mtransport/ipc/WebrtcTCPSocketLog.h
rename : media/mtransport/ipc/WebrtcProxyChannelParent.cpp => media/mtransport/ipc/WebrtcTCPSocketParent.cpp
rename : media/mtransport/ipc/WebrtcProxyChannelParent.h => media/mtransport/ipc/WebrtcTCPSocketParent.h
extra : moz-landing-system : lando
2019-09-17 18:15:41 +00:00
Nika Layzell e738c764e1 Bug 1578398 - Check 'CanSend()' when calling Send__delete__(), r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D44856

--HG--
extra : moz-landing-system : lando
2019-09-05 18:08:58 +00:00
Jed Davis 952ed3dac9 Bug 1568047. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D41466

--HG--
extra : moz-landing-system : lando
2019-08-12 18:50:09 +00:00
Nika Layzell 5f47039328 Bug 1523638 - Part 3: Construct WindowGlobal actors using ManagedEndpoint, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D37650

--HG--
extra : moz-landing-system : lando
2019-08-08 16:06:56 +00:00
Nika Layzell 0a2e2e5949 Bug 1570367 - Don't generate pure virtual unused AllocPFoo, r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D40066

--HG--
extra : moz-landing-system : lando
2019-07-31 21:59:52 +00:00
Nika Layzell efac1124a9 Bug 1550560 - Part 4: Don't generate helper ctors for refcounted actors, r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D39535

--HG--
extra : moz-landing-system : lando
2019-07-29 19:54:20 +00:00
Nika Layzell 5853ed26e9 Bug 1550560 - Part 2: Generate logic for refcounted IPDL actors, r=mccr8
This takes the approach of directly tying the `AddRef()` and `Release()` calls
on the underlying actor object to the lifecycle of the ActorLifecycleProxy
object, by adding another virtual `ActorAlloc()` method as the counterpart to
`ActorDealloc()`.

The changes to the methods called from C++ are relatively minimal:

1. The `SendPFooConstructor(...)` methods have the same signature, but now will
   AddRef() internally (through `ActorAlloc()`), so an `do_AddRef(foo).take()`
   isn't needed. Same with the `{Bind,Open}PFooEndpoint` methods.

   This was done to reduce the number of invasive internal changes in the
   codegen which were required to pipe a passed-in `already_AddRefed` to the
   underlying `ActorLifecycleProxy` which is created by generic code.

2. The `AllocPFoo{Parent,Child}` methods have been modified to return an
   `already_AddRefed` by default, and the callsites will store the result in a
   `RefPtr<T>` if the type is refcounted.

3. No `DeallocPFoo...` method is called anymore. Unfortunately due to
   devirtualization, it won't be an error if an unused method is still present,
   though it won't be called.

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

--HG--
extra : moz-landing-system : lando
2019-07-29 19:54:16 +00:00
Nika Layzell 17ed6763d2 Bug 1550560 - Part 1: Parse refcounted protocols in IPDL, r=mccr8
The syntax for the new construct looks like the following, and re-uses the
refcounted keyword from refcounted using statements:

async refcounted protocol PFoo { ... }

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

--HG--
extra : moz-landing-system : lando
2019-07-29 19:54:14 +00:00
Nika Layzell 7d9769c5e3 Bug 1565405 - Fail async ctor call if `!Manager()->CanSend()`, r=froydnj
The previous behaviour of failing unconditionally was performed as, during
shutdown, the channel could become unable to send without worker threads having
a chance to react. This change keeps that behaviour, isolating async message
senders from impending IPC shutdown, while performing expected actor teardown if
the manager actor has already been destroyed, and should no longer send messages.

An alternate behaviour here could be to crash if !Manager()->CanSend(). That
behaviour may be preferable if a sufficient number of callsites don't check the
return value of the `SendPFooConstructor()` method.

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

--HG--
extra : moz-landing-system : lando
2019-07-29 16:37:40 +00:00
Andrea Marchesini cef26c06c6 Bug 1567892 - PeerConnectionMedia should use nsIProtocolProxyService on the parent process - PProxyConfigLookup IPC protocol, r=bwc,kershaw,jld
Differential Revision: https://phabricator.services.mozilla.com/D39010

--HG--
extra : moz-landing-system : lando
2019-07-29 12:27:59 +00:00
Ciure Andrei c0756f3389 Backed out 10 changesets (bug 1523638) for causing high frequency Android 7.0 mochitests failures CLOSED TREE
Backed out changeset 644ceb2fe568 (bug 1523638)
Backed out changeset 27647ee7a927 (bug 1523638)
Backed out changeset 96f1ccb95570 (bug 1523638)
Backed out changeset b60a17ea716a (bug 1523638)
Backed out changeset 507e63186c5f (bug 1523638)
Backed out changeset 33255408ca61 (bug 1523638)
Backed out changeset d97b2d223616 (bug 1523638)
Backed out changeset eba2a0514cde (bug 1523638)
Backed out changeset d7065174c5c4 (bug 1523638)
Backed out changeset c21b361e175d (bug 1523638)
2019-07-23 05:13:32 +03:00
Nika Layzell b1f124f20a Bug 1523638 - Part 3: Construct WindowGlobal actors using ManagedEndpoint, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D37650

--HG--
extra : moz-landing-system : lando
2019-07-18 19:38:10 +00:00
Bogdan Tara ca45889546 Backed out 9 changesets (bug 1523638) for browser_contextmenu.js failures CLOSED TREE
Backed out changeset 0a584a07b696 (bug 1523638)
Backed out changeset 8c5af2289900 (bug 1523638)
Backed out changeset 40ed1bd64b09 (bug 1523638)
Backed out changeset 9a99a0391979 (bug 1523638)
Backed out changeset 07fb4748b91a (bug 1523638)
Backed out changeset 49047c3ebae9 (bug 1523638)
Backed out changeset d606d072126c (bug 1523638)
Backed out changeset 76dc1937fc77 (bug 1523638)
Backed out changeset c784c14b5d5d (bug 1523638)
2019-07-16 23:40:47 +03:00
Nika Layzell a711231390 Bug 1523638 - Part 3: Construct WindowGlobal actors using ManagedEndpoint, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D37650

--HG--
extra : moz-landing-system : lando
2019-07-16 18:47:39 +00:00
Barret Rennie 0b66a71420 Bug 1289211 - Rename InfallibleTArray to nsTArray in ipc/ r=nika
Differential Revision: https://phabricator.services.mozilla.com/D36961

--HG--
extra : moz-landing-system : lando
2019-07-10 03:31:24 +00:00
Jonathan Kingston a5ba216f93 Bug 1315460 - Removal of keygen element r=keeler,baku,jld,hsivonen
Differential Revision: https://phabricator.services.mozilla.com/D22810

--HG--
extra : moz-landing-system : lando
2019-06-13 08:58:07 +00:00
Matt Woodrow 15fec19828 Bug 1555891 - Merge PVideoDecoder into PRemoteDecoder. r=jya,jld
Differential Revision: https://phabricator.services.mozilla.com/D33587

--HG--
extra : moz-landing-system : lando
2019-06-11 02:01:51 +00:00
Matt Woodrow 4908a84df2 Bug 1555891 - Merge PVideoDecoderManager into PRemoteDecoderManager. r=jya,jld
Differential Revision: https://phabricator.services.mozilla.com/D33586

--HG--
extra : moz-landing-system : lando
2019-06-11 02:01:34 +00:00
Nika Layzell 03a2f40528 Bug 1553272 - Eliminate the unnecessary ProtocolState object, r=froydnj
The vast majority of the virtual methods which were used on ProtocolState were
actually methods which only had meaningful implementations on the toplevel
protocol. This patch adds a new field to IProtocol holding a direct pointer to
the protocol's `IToplevelProtocol`, and the methods formerly implemented with
ProtocolState now directly call the corresponding method on IToplevelProtocol.
IToplevelProtocol then shadows these methods with the toplevel protocol
implementation, meaning that the right code is run in the right places.

In addition, some state was maintained for protocols inside of the separate
ProtocolState allocation, and this patch moves that state back into the actor
itself.

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

--HG--
extra : moz-landing-system : lando
2019-06-06 14:57:34 +00:00
sotaro 3d0c73c202 Bug 1537586 - Address build failure with --disable-printing r=bobowen,froydnj
Make nsIWebBrowserPrint included unconditionally for addressing nsIDocShell.rs build failure.

Remove direct_call of PPrinting and PRemotePrintJob. Their ipdl are built unconditionally, but their derived classes are not built with --disable-printing.

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

--HG--
extra : moz-landing-system : lando
2019-06-05 01:25:36 +00:00
Nika Layzell 77532c1fa6 Bug 1553270 - Part 2: Allow getting a protocol's name from its ProtocolID, r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D32043

--HG--
extra : moz-landing-system : lando
2019-05-24 22:36:49 +00:00
Nika Layzell 406f5cc2d8 Bug 1553270 - Part 1: Store the protocol ID on IProtocol directly, r=froydnj
This allows for the getter to be used in IProtocol's destructor, and generally
brings IProtocol more in line with IToplevelProtocol.

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

--HG--
extra : moz-landing-system : lando
2019-05-24 20:21:35 +00:00
Nika Layzell 259a8f1974 Bug 1511161 - Part 2: Use Code throughout IPDL codegen, r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D30234

--HG--
extra : moz-landing-system : lando
2019-05-21 17:04:43 +00:00
Nika Layzell c2a887bfba Bug 1511161 - Part 1: Add new Code object to IPDL codegen, r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D13467

--HG--
extra : moz-landing-system : lando
2019-05-21 17:04:41 +00:00
Nika Layzell e71da28e87 Bug 1547218 - Part 2: Stop special casing pointer types in ParamTraits specialization, r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D29779

--HG--
extra : moz-landing-system : lando
2019-05-21 17:04:39 +00:00
Nika Layzell 45a2a8e839 Bug 1548717 - Part 2: Check CanSend before trying to send, r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D30236

--HG--
extra : moz-landing-system : lando
2019-05-21 17:04:35 +00:00
Nika Layzell 833e7d5780 Bug 1548717 - Part 1: Remove the unnecessary internal liveness state value, r=froydnj
These values were only being used for assertions within IPDL send
methods. They had no positive impact beyond causing crashes when sending
a message over a dead actor.

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

--HG--
extra : moz-landing-system : lando
2019-05-21 17:04:27 +00:00
Nika Layzell 1bd8912413 Bug 1547085 - Discard messages sent to dead actors, r=jld
Historically we've failed very loudly when receiving a message which was
destined for an actor which had already been destroyed. This had the
effect of requiring manual teardown for most actors, as work would need
to be done to ensure messages weren't sent when the target actor might
be about to tear itself down.

In addition, due to this teardown work being done outside of IPDL, this
work would have to manually be checked in subactors, and involved the
addition of new flags, such as `mIPCOpen`, in order to track whether IPC
had begun to be shut down, and discard messages manually if it had.

It is an ongoing issue that we occasionally miss places where we need to
discard messages, and it is easy to not remember to perform async
destruction when building a new actor, meaning that extra work is
required to correctly discard messages when the actor is being torn
down. Due to the correct decision, almost all of the time, being to
discard the message, this patch takes the approach of transforming the
crash which was previously performed into a message discard.

The hope is that this will reduce the burden on actor implementors, by
allowing the use of `Send__delete__` without first synchronizing with
the remote actor, as well as reduce unintentional crashes.

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

--HG--
extra : moz-landing-system : lando
2019-05-21 17:04:25 +00:00
Nika Layzell c293c9007f Bug 1540731 - Part 1: Manage actor object lifecycles within IPC, r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D28572

--HG--
extra : moz-landing-system : lando
2019-05-21 17:04:14 +00:00
Jan Varga 2d3ff6b0f5 Bug 1534882 - Don't crash when synchronously constructing actor during content shutdown, r=nika
This patch changes the way how we handle sync ctor send errors. They are now
ignored and treated like messages which successfully were queued to send, but
got lost due to the other side hanging up.
For more details, see bug 1509362 which originally did it for async ctors.
The main differences here are that we destroy the actor and we return null when
the send fails.

Differential Revision: https://phabricator.services.mozilla.com/D31517
2019-05-16 21:09:18 +02:00
Ryan Hunt c2729d0df1 Bug 1548939 - Remove direct_call overrides for PBrowser. r=nika
This isn't needed now that BrowserParent has the same name
as the protocol.

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

--HG--
extra : rebase_source : dbfc1722a43e1f8fbbe01f1766a397b570fa7d6a
extra : source : 792b49f269bb6308e152290ed0dfa03efbffa536
extra : histedit_source : e001669549af547f5387a3b010ad52ebee6eea3f
2019-04-25 15:28:44 -05:00
Ryan Hunt 1751a8ddbf Bug 1548939 - Devirtualize BrowserChild IPDL methods. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D30150

--HG--
extra : rebase_source : d657164153889209adfe4b946c56bcbb8f7c858b
extra : histedit_source : b5df9ab9ec8202f5c00c166baf7029e6290da728
2019-05-06 14:29:29 -05:00
Bas Schouten cf839e9e77 Bug 1545787: Make EndRecording occur synchronously so it only returns once all files are written. r=mstange r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D28199

--HG--
extra : rebase_source : 6288d2e56a7deed64b29e052c7f179ac09392717
2019-04-19 16:59:43 +02:00
Jan Varga 864dcf0703 Bug 1513915 - LSNG: LoadItem could return more items (up to the prefill limit); r=asuth,jld
Differential Revision: https://phabricator.services.mozilla.com/D26476
2019-04-08 10:56:19 +02:00
Sylvestre Ledru e226046cb8 Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan
# ignore-this-changeset

Depends on D28954

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

--HG--
extra : moz-landing-system : lando
2019-05-01 08:47:10 +00:00
Jonathan Kew 64c9983c83 Bug 1514869 - patch 8 - Make the SetCharacterMap message async, and use the unshared gfxCharacterMap in the content process until the shared one is in place. r=jwatt,jld
Differential Revision: https://phabricator.services.mozilla.com/D24137

--HG--
extra : moz-landing-system : lando
2019-04-29 14:39:05 +00:00
Jonathan Kew 9811ca8336 Bug 1514869 - patch 1 - Basic implementation of a cross-process sharable font list, using shared memory to store the list of families & faces, and per-font character maps. r=jwatt,jld
Differential Revision: https://phabricator.services.mozilla.com/D22937

--HG--
extra : moz-landing-system : lando
2019-04-27 15:37:29 +00:00
Andrea Marchesini 1739e25925 Bug 1545758 - Move dom/file IPC components into mozilla::dom namespace - IPCBlobInputStream actors, r=qdot
Differential Revision: https://phabricator.services.mozilla.com/D28191

--HG--
extra : moz-landing-system : lando
2019-04-26 18:04:02 +00:00
Andrea Marchesini 7d30a9996e Bug 1545758 - Move dom/file IPC components into mozilla::dom namespace - TemporaryIPCBlob actors, r=qdot
Differential Revision: https://phabricator.services.mozilla.com/D28190

--HG--
extra : moz-landing-system : lando
2019-04-26 18:01:53 +00:00
Andrea Marchesini 69fd7c57d7 Bug 1545758 - Move dom/file IPC components into mozilla::dom namespace - PendingIPCBlob actors, r=qdot
Differential Revision: https://phabricator.services.mozilla.com/D28189

--HG--
extra : moz-landing-system : lando
2019-04-26 18:01:08 +00:00
Andrea Marchesini de9252905e Bug 1545758 - Move dom/file IPC components into mozilla::dom namespace - FileCreator actors, r=qdot
Differential Revision: https://phabricator.services.mozilla.com/D28188

--HG--
extra : moz-landing-system : lando
2019-04-26 18:00:33 +00:00
Andrea Marchesini 35bde55efd Bug 1534712 - Port FileCreatorHelper to PBackground, r=smaug
FileCreatorHelper creates a FileBlobImpl on the main-thread and, because of
this, we end up executing I/O operations on that thread, slowing down other
components.  With this patch, FileCreatorHelper logic is moved to PBackground.

That the 'type' getter is still called on the main-thread because FileBlobImpl
uses nsIMIMEService which is a non thread-safe component.

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

--HG--
extra : moz-landing-system : lando
2019-04-26 17:53:07 +00:00
Bogdan Tara 240b24fbe1 Backed out 5 changesets (bug 1534712, bug 1545758) for test_ext_webrequest_upload.html failures CLOSED TREE
Backed out changeset 447b0f5a5802 (bug 1545758)
Backed out changeset 0528f8f11814 (bug 1545758)
Backed out changeset d85c68071b54 (bug 1545758)
Backed out changeset 10b380bc5b0c (bug 1545758)
Backed out changeset 57136f4e7b54 (bug 1534712)
2019-04-25 12:36:51 +03:00
Andrea Marchesini 3512672cd3 Bug 1545758 - Move dom/file IPC components into mozilla::dom namespace - IPCBlobInputStream actors, r=qdot
Differential Revision: https://phabricator.services.mozilla.com/D28191

--HG--
extra : moz-landing-system : lando
2019-04-25 07:44:47 +00:00
Andrea Marchesini 6bbc401f45 Bug 1545758 - Move dom/file IPC components into mozilla::dom namespace - TemporaryIPCBlob actors, r=qdot
Differential Revision: https://phabricator.services.mozilla.com/D28190

--HG--
extra : moz-landing-system : lando
2019-04-25 07:44:29 +00:00
Andrea Marchesini 50fa1de562 Bug 1545758 - Move dom/file IPC components into mozilla::dom namespace - PendingIPCBlob actors, r=qdot
Differential Revision: https://phabricator.services.mozilla.com/D28189

--HG--
extra : moz-landing-system : lando
2019-04-25 07:44:03 +00:00
Andrea Marchesini f39753b4b8 Bug 1545758 - Move dom/file IPC components into mozilla::dom namespace - FileCreator actors, r=qdot
Differential Revision: https://phabricator.services.mozilla.com/D28188

--HG--
extra : moz-landing-system : lando
2019-04-25 07:43:38 +00:00
Andrea Marchesini cbdda85d6e Bug 1534712 - Port FileCreatorHelper to PBackground, r=smaug
FileCreatorHelper creates a FileBlobImpl on the main-thread and, because of
this, we end up executing I/O operations on that thread, slowing down other
components.  With this patch, FileCreatorHelper logic is moved to PBackground.

That the 'type' getter is still called on the main-thread because FileBlobImpl
uses nsIMIMEService which is a non thread-safe component.

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

--HG--
extra : moz-landing-system : lando
2019-04-25 07:41:10 +00:00
Brindusan Cristian b3b1ca15aa Merge mozilla-central to autoland. a=merge CLOSED TREE
--HG--
rename : dom/ipc/TabChild.cpp => dom/ipc/BrowserChild.cpp
rename : dom/ipc/TabParent.cpp => dom/ipc/BrowserParent.cpp
rename : dom/ipc/TabParent.h => dom/ipc/BrowserParent.h
2019-04-25 01:43:17 +03:00
Andrew McCreight 74534d3cbc Bug 1545299 - Make UniquePtr work more like the other types with a base type. r=nika
This consolidates array, maybe and unique ptrs in IPDL into a single
"has base type" qualifier, for types that wrap another type. I'm not
sure this patch fixes everything, but I think it is at least more
correct.

It also adds checking for the stuff inside the UniquePtr<>, because
the intent seems to be to allow things like protocol types in there.

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

--HG--
extra : moz-landing-system : lando
2019-04-24 20:19:49 +00:00
Andrew McCreight 87ae116d7f Bug 1545306 - Add some tests for using moveonly. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D28562

--HG--
extra : moz-landing-system : lando
2019-04-23 21:57:48 +00:00
Jed Davis f045c4ef58 Bug 1544825 - Use IPDL type names instead of truncated C++ names in deserialization error messages. r=nika
Currently, when deserialization fails, the error message contains the base
name of the C++ type, without template parameters; this means we can get
unhelpfully vague errors about `RefPtr` or `Maybe` or `nsTArray`.  (The
identical error cases are then merged by the compiler, so the execution
path can't be recovered from the crash dump.)

This patch uses the IPDL type instead.  It would be possible to invoke
the code generator to use the full C++ type, but more complicated for no
real benefit.

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

--HG--
extra : moz-landing-system : lando
2019-04-23 14:40:48 +00:00
Ciure Andrei d753cf6b80 Merge mozilla-central to mozilla-inbound. a=merge CLOSED TREE 2019-04-24 07:30:32 +03:00
Ryan Hunt 0eeced87be Bug 1534395 - Rename TabParent to BrowserParent. r=nika
This commit renames TabParent to BrowserParent.

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

--HG--
rename : dom/ipc/TabParent.cpp => dom/ipc/BrowserParent.cpp
rename : dom/ipc/TabParent.h => dom/ipc/BrowserParent.h
extra : rebase_source : d2706b9f42177d8de16068b7b1d088a44b8720a4
extra : histedit_source : a617ddac45c58050ef799116a67d2d983f2a8f6d%2C1d1dabd8761a32d548a6fbf1027be960698f6a5e
2019-04-09 16:38:15 -05:00
Ciure Andrei d13f7bbf24 Backed out changeset 22c00a19e267 (bug 1534712) for causing test_bug536567_perwindowpb.html, browser_jsonview_save_json.js, browser_bookmark_backup_export_import.js to perma fail CLOSED TREE 2019-04-19 05:57:19 +03:00
Andrea Marchesini 98dc92353c Bug 1534712 - Port FileCreatorHelper to PBackground, r=smaug
FileCreatorHelper creates a FileBlobImpl on the main-thread and, because of
this, we end up executing I/O operations on that thread, slowing down other
components.  With this patch, FileCreatorHelper logic is moved to PBackground.

That the 'type' getter is still called on the main-thread because FileBlobImpl
uses nsIMIMEService which is a non thread-safe component.

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

--HG--
extra : moz-landing-system : lando
2019-04-18 21:28:16 +00:00
Kyle Machulis e71632b0fc Bug 1540002 - Remove intr __delete__ from PPluginInstance; r=nika,mccr8
PPluginInstance's __delete__ was ported from rpc to intr, and is the
only non-async IPDL deletion in the codebase. We should be able to
align this with the rest of the IPDL interfaces and remove the need
for specialized intr __delete__ handling.

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

--HG--
extra : moz-landing-system : lando
2019-04-02 21:10:20 +00:00
Nika Layzell a33a880625 Bug 1537977 - Add a ManagedEndpoint IPDL type for manually constructing actors, r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D24425

--HG--
extra : moz-landing-system : lando
2019-03-28 20:02:50 +00:00
Alex Gaynor 0d4f2d8f33 Bug 1539542 - removed PAsmJSCacheEntry from the IPC direct call exclusions list; r=mccr8
This protocol no longer exists.

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

--HG--
extra : moz-landing-system : lando
2019-03-28 16:36:08 +00:00
Haik Aftandilian 77b79862cf Bug 1452278 - Part 1 - Make macOS nsOSHelperAppService::GetFromTypeAndExtension() not call OS MIME API's in content r=bzbarsky,froydnj
Add a new nsExternalHelperAppService derived class named nsOSHelperAppServiceChild to be used for the MIME service, external helper app service, and external protocol service interfaces in child processes. nsOSHelperAppServiceChild overrides some methods used to get MIME and external protocol handler information from the OS and implements these methods by remoting the calls to the parent process.

This is necessary because, on Mac, querying the OS for helper application info from sandboxed content processes is unreliable and has buggy side effects.

For now, only use the new class on Mac.

Android and unix file changes r+ by gcp.
Windows files changes r+ by bobowen.
Sync messages review r+ by nfroyd.

MozReview-Commit-ID: 63BiS6VCxfn

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

--HG--
extra : moz-landing-system : lando
2019-03-27 22:49:33 +00:00
arthur.iakab 7654bfed1e Backed out 2 changesets (bug 1452278) for mingwclang build bustages on win/nsOSHelperAppService.h CLOSED TREE
Backed out changeset f11d78387bd9 (bug 1452278)
Backed out changeset 656f17a2553b (bug 1452278)
2019-03-27 22:03:07 +02:00
Haik Aftandilian b8118af581 Bug 1452278 - Part 1 - Make macOS nsOSHelperAppService::GetFromTypeAndExtension() not call OS MIME API's in content r=bzbarsky,froydnj
Add a new nsExternalHelperAppService derived class named nsOSHelperAppServiceChild to be used for the MIME service, external helper app service, and external protocol service interfaces in child processes. nsOSHelperAppServiceChild overrides some methods used to get MIME and external protocol handler information from the OS and implements these methods by remoting the calls to the parent process.

This is necessary because, on Mac, querying the OS for helper application info from sandboxed content processes is unreliable and has buggy side effects.

For now, only use the new class on Mac.

Android and unix file changes r+ by gcp.
Windows files changes r+ by bobowen.
Sync messages review r+ by nfroyd.

MozReview-Commit-ID: 63BiS6VCxfn

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

--HG--
extra : moz-landing-system : lando
2019-03-27 19:23:32 +00:00
Alex Gaynor 6039e80432 Bug 1513911 - Part 3 - replace PIndexedDBPermissionRequest with async returns in IPC; r=asuth
This removes the only case of an IPDL protocol which has two implementors.

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

--HG--
extra : moz-landing-system : lando
2019-03-22 19:14:01 +00:00
Alex Gaynor 6f04c635d8 Bug 1513911 - Part 2 - fixed a missing include; r=mccr8
Depends on D18995

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

--HG--
extra : moz-landing-system : lando
2019-02-27 20:00:58 +00:00
Chris Pearce de686d23c1 Bug 1530245 - Launch sandbox from new remote sandbox broker process. r=jld,bobowen
Depends on D22051

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

--HG--
extra : moz-landing-system : lando
2019-03-13 09:24:52 +00:00
Nathan Froyd 14c0cbba56 Bug 1523996 - part 5 - bulk-read/write adjacent POD fields in IPDL-defined structs; r=Alex_Gaynor
Now that fields are packed nicely, we can take advantage of the
contiguous layout of POD fields and read/write all the POD fields of a
given size in a single read/write call.  For many structs, this should
have little or no effect, but for large structs such as LoadInfoArgs,
this reduces the number of function calls by ~50%.

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

--HG--
extra : moz-landing-system : lando
2019-03-06 13:59:57 +00:00
Nathan Froyd c5829037f6 Bug 1523996 - part 4 - add static assertions for member layout; r=Alex_Gaynor
We're about to start depending on how the fields are packed in a future
patch, so we should add some compile-time checking that our assertions
are correct.

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

--HG--
extra : moz-landing-system : lando
2019-03-06 13:59:48 +00:00
Nathan Froyd f1a050db9b Bug 1523996 - part 3 - factor out reading/writing sentinels; r=Alex_Gaynor
We're going to read and write sentinels slightly differently for
bulk-writing adjacent fields, so let's factor out some reusable code for
doing so.

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

--HG--
extra : moz-landing-system : lando
2019-03-06 13:59:43 +00:00
Nathan Froyd aace5317f4 Bug 1523996 - part 2 - pack IPDL-defined struct members better; r=Alex_Gaynor
This patch changes the layout of IPDL-defined structs to order the POD
members by decreasing size, which ensures everything is packed well.
This optimization is only applied to the internal representation; the
external interface (e.g. constructors) is entirely unchaged.

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

--HG--
extra : moz-landing-system : lando
2019-03-06 13:59:39 +00:00
Nathan Froyd e1246d9446 Bug 1523996 - part 1 - compute a packed ordering for structure fields; r=Alex_Gaynor
This patch computes an ordering for the fields of an IPDL structure decl
such that they are packed well in memory.  We'll take advantage of this
ordering in future patches.

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

--HG--
extra : moz-landing-system : lando
2019-03-06 13:59:35 +00:00
Alex Gaynor 38a2064d1e Bug 1441651 - Part 2 - pass Shmem and ByteBuf by rvalref to Send* IPC methods; r=nika,jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D19954

--HG--
extra : moz-landing-system : lando
2019-03-04 16:35:30 +00:00
Alex Gaynor 82df5a3cd4 Bug 1441651 - Part 1 - pass Shmem and ByteBuf by rvalref to ParamTraits; r=nika
Differential Revision: https://phabricator.services.mozilla.com/D19953

--HG--
extra : moz-landing-system : lando
2019-03-04 16:07:37 +00:00
Boris Zbarsky 9c5da5f234 Bug 1489308 part 9. Remove now-unused wyciwyg bits. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D17327

--HG--
rename : dom/html/test/browser_refresh_wyciwyg_url.js => dom/html/test/browser_refresh_after_document_write.js
rename : dom/html/test/file_refresh_wyciwyg_url.html => dom/html/test/file_refresh_after_document_write.html
extra : moz-landing-system : lando
2019-02-28 01:09:48 +00:00
Alex Gaynor e2c32f5404 Bug 1529686 - Part 2 - fixed IPC test protocols to build with devirtualization; r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D21067

--HG--
extra : moz-landing-system : lando
2019-02-26 15:37:22 +00:00
Alex Gaynor fb6b626563 Bug 1529686 - Part 1 - fixed ipdl unittests for devirtualization, which requires protocol names to start with 'P'; r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D21066

--HG--
rename : ipc/ipdl/test/ipdl/error/asyncMessageListed.ipdl => ipc/ipdl/test/ipdl/error/PasyncMessageListed.ipdl
rename : ipc/ipdl/test/ipdl/ok/AsyncReturn.ipdl => ipc/ipdl/test/ipdl/ok/PAsyncReturn.ipdl
rename : ipc/ipdl/test/ipdl/ok/Delete.ipdl => ipc/ipdl/test/ipdl/ok/PDelete.ipdl
rename : ipc/ipdl/test/ipdl/ok/DeleteSub.ipdl => ipc/ipdl/test/ipdl/ok/PDeleteSub.ipdl
rename : ipc/ipdl/test/ipdl/ok/EndpointDecl.ipdl => ipc/ipdl/test/ipdl/ok/PEndpointDecl.ipdl
rename : ipc/ipdl/test/ipdl/ok/EndpointUse.ipdl => ipc/ipdl/test/ipdl/ok/PEndpointUse.ipdl
rename : ipc/ipdl/test/ipdl/ok/Nullable.ipdl => ipc/ipdl/test/ipdl/ok/PNullable.ipdl
rename : ipc/ipdl/test/ipdl/ok/Struct.ipdl => ipc/ipdl/test/ipdl/ok/PStruct.ipdl
rename : ipc/ipdl/test/ipdl/ok/SyncSyncManagee.ipdl => ipc/ipdl/test/ipdl/ok/PSyncSyncManagee.ipdl
rename : ipc/ipdl/test/ipdl/ok/SyncSyncManager.ipdl => ipc/ipdl/test/ipdl/ok/PSyncSyncManager.ipdl
rename : ipc/ipdl/test/ipdl/ok/actorparam.ipdl => ipc/ipdl/test/ipdl/ok/Pactorparam.ipdl
rename : ipc/ipdl/test/ipdl/ok/actorreturn.ipdl => ipc/ipdl/test/ipdl/ok/Pactorreturn.ipdl
rename : ipc/ipdl/test/ipdl/ok/array_Basic.ipdl => ipc/ipdl/test/ipdl/ok/Parray_Basic.ipdl
rename : ipc/ipdl/test/ipdl/ok/array_OfActors.ipdl => ipc/ipdl/test/ipdl/ok/Parray_OfActors.ipdl
rename : ipc/ipdl/test/ipdl/ok/array_OfActorsSub.ipdl => ipc/ipdl/test/ipdl/ok/Parray_OfActorsSub.ipdl
rename : ipc/ipdl/test/ipdl/ok/array_Union.ipdl => ipc/ipdl/test/ipdl/ok/Parray_Union.ipdl
rename : ipc/ipdl/test/ipdl/ok/basicUsing.ipdl => ipc/ipdl/test/ipdl/ok/PbasicUsing.ipdl
rename : ipc/ipdl/test/ipdl/ok/builtins.ipdl => ipc/ipdl/test/ipdl/ok/Pbuiltins.ipdl
rename : ipc/ipdl/test/ipdl/ok/bytebuf.ipdl => ipc/ipdl/test/ipdl/ok/Pbytebuf.ipdl
rename : ipc/ipdl/test/ipdl/ok/empty.ipdl => ipc/ipdl/test/ipdl/ok/Pempty.ipdl
rename : ipc/ipdl/test/ipdl/ok/emptyStruct.ipdl => ipc/ipdl/test/ipdl/ok/PemptyStruct.ipdl
rename : ipc/ipdl/test/ipdl/ok/headerProto.ipdl => ipc/ipdl/test/ipdl/ok/PheaderProto.ipdl
rename : ipc/ipdl/test/ipdl/ok/intrProtocol.ipdl => ipc/ipdl/test/ipdl/ok/PintrProtocol.ipdl
rename : ipc/ipdl/test/ipdl/ok/jetpack.ipdl => ipc/ipdl/test/ipdl/ok/Pjetpack.ipdl
rename : ipc/ipdl/test/ipdl/ok/manageSelf.ipdl => ipc/ipdl/test/ipdl/ok/PmanageSelf.ipdl
rename : ipc/ipdl/test/ipdl/ok/manageSelf_Toplevel.ipdl => ipc/ipdl/test/ipdl/ok/PmanageSelf_Toplevel.ipdl
rename : ipc/ipdl/test/ipdl/ok/managedProtocol.ipdl => ipc/ipdl/test/ipdl/ok/PmanagedProtocol.ipdl
rename : ipc/ipdl/test/ipdl/ok/managerProtocol.ipdl => ipc/ipdl/test/ipdl/ok/PmanagerProtocol.ipdl
rename : ipc/ipdl/test/ipdl/ok/maybe_Basic.ipdl => ipc/ipdl/test/ipdl/ok/Pmaybe_Basic.ipdl
rename : ipc/ipdl/test/ipdl/ok/maybe_OfActors.ipdl => ipc/ipdl/test/ipdl/ok/Pmaybe_OfActors.ipdl
rename : ipc/ipdl/test/ipdl/ok/maybe_OfActorsSub.ipdl => ipc/ipdl/test/ipdl/ok/Pmaybe_OfActorsSub.ipdl
rename : ipc/ipdl/test/ipdl/ok/maybe_Union.ipdl => ipc/ipdl/test/ipdl/ok/Pmaybe_Union.ipdl
rename : ipc/ipdl/test/ipdl/ok/media.ipdl => ipc/ipdl/test/ipdl/ok/Pmedia.ipdl
rename : ipc/ipdl/test/ipdl/ok/messageCompress.ipdl => ipc/ipdl/test/ipdl/ok/PmessageCompress.ipdl
rename : ipc/ipdl/test/ipdl/ok/messageVerify.ipdl => ipc/ipdl/test/ipdl/ok/PmessageVerify.ipdl
rename : ipc/ipdl/test/ipdl/ok/messageVerifyTopLevel.ipdl => ipc/ipdl/test/ipdl/ok/PmessageVerifyTopLevel.ipdl
rename : ipc/ipdl/test/ipdl/ok/multiManaged.ipdl => ipc/ipdl/test/ipdl/ok/PmultiManaged.ipdl
rename : ipc/ipdl/test/ipdl/ok/multiManager1.ipdl => ipc/ipdl/test/ipdl/ok/PmultiManager1.ipdl
rename : ipc/ipdl/test/ipdl/ok/multiManager2.ipdl => ipc/ipdl/test/ipdl/ok/PmultiManager2.ipdl
rename : ipc/ipdl/test/ipdl/ok/multipleUsingCxxTypes.ipdl => ipc/ipdl/test/ipdl/ok/PmultipleUsingCxxTypes.ipdl
rename : ipc/ipdl/test/ipdl/ok/mutualRecStructUnion.ipdl => ipc/ipdl/test/ipdl/ok/PmutualRecStructUnion.ipdl
rename : ipc/ipdl/test/ipdl/ok/mutualRecUnion.ipdl => ipc/ipdl/test/ipdl/ok/PmutualRecUnion.ipdl
rename : ipc/ipdl/test/ipdl/ok/namespace_Basic.ipdl => ipc/ipdl/test/ipdl/ok/Pnamespace_Basic.ipdl
rename : ipc/ipdl/test/ipdl/ok/noRedeclCrossMessage.ipdl => ipc/ipdl/test/ipdl/ok/PnoRedeclCrossMessage.ipdl
rename : ipc/ipdl/test/ipdl/ok/plugin.ipdl => ipc/ipdl/test/ipdl/ok/Pplugin.ipdl
rename : ipc/ipdl/test/ipdl/ok/selfRecUnion.ipdl => ipc/ipdl/test/ipdl/ok/PselfRecUnion.ipdl
rename : ipc/ipdl/test/ipdl/ok/shmem.ipdl => ipc/ipdl/test/ipdl/ok/Pshmem.ipdl
rename : ipc/ipdl/test/ipdl/ok/syncProtocol.ipdl => ipc/ipdl/test/ipdl/ok/PsyncProtocol.ipdl
rename : ipc/ipdl/test/ipdl/ok/threeDirections.ipdl => ipc/ipdl/test/ipdl/ok/PthreeDirections.ipdl
rename : ipc/ipdl/test/ipdl/ok/union_Basic.ipdl => ipc/ipdl/test/ipdl/ok/Punion_Basic.ipdl
rename : ipc/ipdl/test/ipdl/ok/union_Namespaced.ipdl => ipc/ipdl/test/ipdl/ok/Punion_Namespaced.ipdl
extra : moz-landing-system : lando
2019-02-26 16:54:04 +00:00
Nika Layzell f3274c2fd2 Bug 1522579 - Part 1: Remove PContentBridge, r=mccr8
This actor won't be being used anymore, and acts only as a maintenance burden
for people working on this code (which we're doing pretty often these days!).

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

--HG--
extra : moz-landing-system : lando
2019-02-25 20:04:45 +00:00
Andreea Pavel cd1b27ad4d Backed out 6 changesets (bug 1522579) for build bustages on a CLOSED TREE
Backed out changeset 3c8320baa230 (bug 1522579)
Backed out changeset 0a288a3d85cd (bug 1522579)
Backed out changeset ecfd27e7d150 (bug 1522579)
Backed out changeset eda40fca0758 (bug 1522579)
Backed out changeset 5c7aafa32a0a (bug 1522579)
Backed out changeset a3c5a2c16411 (bug 1522579)
2019-02-25 18:19:38 +02:00
Nika Layzell 7924bfa435 Bug 1522579 - Part 1: Remove PContentBridge, r=mccr8
This actor won't be being used anymore, and acts only as a maintenance burden
for people working on this code (which we're doing pretty often these days!).

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

--HG--
extra : moz-landing-system : lando
2019-02-25 15:51:10 +00:00
Nika Layzell fa6f0c132c Bug 1528493 - Part 1: Add support for maybe types to IPDL, r=mccr8,froydnj
Differential Revision: https://phabricator.services.mozilla.com/D20067

--HG--
extra : moz-landing-system : lando
2019-02-22 18:46:12 +00:00
Chris Peterson ee7a3f7cca Bug 1528452 - Part 2: Rename _splitMethodDefn() to _splitMethodDeclDefn(). r=froydnj
This follows the naming convention of the related functions _splitClassDeclDefn() and _splitFuncDeclDefn().

Depends on D20056

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

--HG--
extra : moz-landing-system : lando
2019-02-20 11:20:27 +00:00
Chris Peterson 44a9ea3410 Bug 1528452 - Part 1: Don't emit method definitions for pure methods. r=froydnj
Bug 1428984 caused a regression where ipdlc will emit (empty) method definitions for pure methods. C++ allows a pure member function to have a definition (in case a derived class wants to call a default implementation in the base class), but we don't want this for ipdl's generated code.

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

--HG--
extra : moz-landing-system : lando
2019-02-20 11:19:43 +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
Michael Froman 3429848591 Bug 1500596 - pt1 - modify IPC sync message name for making remote decoders. r=jld
Differential Revision: https://phabricator.services.mozilla.com/D18639

--HG--
extra : moz-landing-system : lando
2019-02-14 19:07:08 +00:00
Mike Hommey ef3ad686ee Bug 1512504 - Remove support for MSVC. r=froydnj
Consequently, this removes:
- MOZ_LIBPRIO, which is now always enabled.
- non_msvc_compiler, which is now always true.
- The cl.py wrapper, since it's not used anymore.
- CL_INCLUDES_PREFIX, which was only used for the cl.py wrapper.
- NONASCII, which was only there to ensure CL_INCLUDES_PREFIX still
  worked in non-ASCII cases.

This however keeps a large part of detecting and configuring for MSVC,
because we still do need it for at least headers, libraries, and midl.

Depends on D19614

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

--HG--
extra : moz-landing-system : lando
2019-02-14 21:45:27 +00:00
Alex Gaynor 9549d19893 Bug 1479930 - std::move() almost all arguments to Recv/Answer methods in IPC; r=froydnj
The one exception is refcounted types, because std::move(RefPtr<T>) does not
coerce to T*, which is what the current IPC methods accept.

This does not rewrite all Recv/Answer methods to take advantage of move
semantics.

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

--HG--
extra : moz-landing-system : lando
2019-02-13 17:49:17 +00:00
Michael Froman 8b42c45ed4 Bug 1527472 - devirtualize IPC methods in PVideoDecoder and PRemoteVideoDecoder. r=Alex_Gaynor
Differential Revision: https://phabricator.services.mozilla.com/D19578

--HG--
extra : moz-landing-system : lando
2019-02-13 14:11:45 +00:00
Makoto Kato eb0becd162 Bug 1503491 - Part 2. Remove PRemoteSpellcheckEngine::Check. r=mccr8,masayuki
Let's going away due to unused.

Depends on D19303

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

--HG--
extra : moz-landing-system : lando
2019-02-10 22:28:45 +00:00
Alex Gaynor 58e271b183 Bug 1525199 - Part 4 - removed size_t support from IPDL messages; r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D19196

--HG--
extra : moz-landing-system : lando
2019-02-08 21:57:32 +00: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
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
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
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
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
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
Cosmin Sabou 7ccc9d8b0b Merge mozilla-inbound to mozilla-central. a=merge 2019-01-19 11:57:49 +02: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
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
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
Andrea Marchesini 647b040b0f Bug Bug 1515272 - Get rid of nsIURIClassifier.classifyLocal(), r=dimi, r=froydnj 2019-01-04 14:46:30 +01:00
Alex Gaynor 4c0405ba26 Bug 1515770 - don't generate commented-out skeleton implementations of IPDL protocols; r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D15141

--HG--
extra : moz-landing-system : lando
2018-12-21 15:03:26 +00:00
Alex Gaynor 1adfd46980 Bug 1514320 - delete dead code in the IPDL compiler based on coverage; r=nika
Differential Revision: https://phabricator.services.mozilla.com/D14600

--HG--
extra : moz-landing-system : lando
2018-12-19 18:01:44 +00:00
Alex Gaynor bf8eaa16e8 Bug 1515170 - in the IPDL compiler, don't use 'is' for comparing strings; r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D14889

--HG--
extra : moz-landing-system : lando
2018-12-18 20:58:09 +00:00
Alex Gaynor b132b348d1 Bug 1514884 - Part 2 - convert the remaining fields in the IPDL compiler from ints to bools; r=nika
Depends on D14790

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

--HG--
extra : moz-landing-system : lando
2018-12-18 18:47:11 +00:00
Alex Gaynor 1fced99467 Bug 1514884 - Part 1 - clarify refs vs. rvalrefs in the IPDL compiler; r=nika
Differential Revision: https://phabricator.services.mozilla.com/D14790

--HG--
extra : moz-landing-system : lando
2018-12-18 18:45:33 +00:00
Alex Gaynor 9ab68ebc8e Bug 1514225 - remove unused functionality from ExprCast AST node in IPDL; r=nika
Differential Revision: https://phabricator.services.mozilla.com/D14551

--HG--
extra : moz-landing-system : lando
2018-12-14 20:59:45 +00:00
Sylvestre Ledru 6f45c666bc Bug 1513205 - Also update the tests to match the Google coding style r=Ehsan
# ignore-this-changeset

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

--HG--
extra : moz-landing-system : lando
2018-12-14 18:10:35 +00:00
Alex Gaynor 56e2d0f48d Bug 1512673 - convert several fields in the IPDL compiler from integers to bools; r=nika
Differential Revision: https://phabricator.services.mozilla.com/D13981

--HG--
extra : moz-landing-system : lando
2018-12-13 15:45:25 +00:00
Alex Gaynor 483d20764e Bug 1513034 - delete dead code from IPDL's lower.py identified by coverage; r=nika
Differential Revision: https://phabricator.services.mozilla.com/D14091

--HG--
extra : moz-landing-system : lando
2018-12-12 14:59:37 +00:00
Dorel Luca cbad78f7c3 Backed out changeset 985505cc1347 (bug 1512673) for build bustage. CLOSED TREE
--HG--
extra : amend_source : 42af9870b9a3d5aa78290b79c8c93c39ca2738db
2018-12-12 00:14:25 +02:00
Alex Gaynor effad83dac Bug 1512673 - convert several fields in the IPDL compiler from integers to bools; r=nika
Differential Revision: https://phabricator.services.mozilla.com/D13981

--HG--
extra : moz-landing-system : lando
2018-12-11 21:16:11 +00:00
Alex Gaynor 79c450dbdb Bug 1513073 - make the IPDL compiler's code python3 syntax friendly; r=nika
Differential Revision: https://phabricator.services.mozilla.com/D14102

--HG--
extra : moz-landing-system : lando
2018-12-11 18:12:22 +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
Alex Gaynor 80387730b1 Bug 1512455 - removed some dead code from the IPDL compiler; r=nika
Differential Revision: https://phabricator.services.mozilla.com/D13922

--HG--
extra : moz-landing-system : lando
2018-12-06 20:27:04 +00:00
Nika Layzell c82214c322 Bug 1509362 - Don't crash when constructing actor during content shutdown, r=jld
When shutting down a content process, we call `Close` on the
`IToplevelProtocol`. This causes the MessageChannel to be `Close`-ed,
which in turn sends a `GOODBYE_MESSAGE`:
https://searchfox.org/mozilla-central/rev/876022232b15425bb9efde189caf747823b39567/ipc/glue/MessageChannel.cpp#2852

This message is intercepted on the I/O thread in the content process,
before any code is informed in content, and used to set the
`mChannelState` property to `ChannelClosing`:
https://searchfox.org/mozilla-central/rev/876022232b15425bb9efde189caf747823b39567/ipc/glue/MessageChannel.cpp#1176

Once this state has been set, which is performed as soon as the
message is received, whether or not other messages have been processed
yet, no messages can be sent back to the parent process. This is
usually what causes the 'Too late to send/recv' message spam in the
console, as we're still trying to send messages at this time.

Usually this is fine - the message send fails, but we gracefully
recover, and the process begins shutting down like normal.
Unfortunately, child actor constructors currently have code
automatically generated in them which causes a process crash if the
send fails. As it's impossible for the main thread to know that the
channel has been closed ahead of time (due to this happening
out-of-band), we can then cause random content process crashes
during shutdown due to actor construction.

Unfortunately, we can't just destroy the actor, as our caller may
(and often do) depend on the actor reference they gave us still being valid
after calling Send*Constructor. Fortunately, if a message send failed, it means
we're in the process of being shut down.

This patch handles this by ignoring ctor send errors, and treating them like
messages which successfully were queued to send, but got lost due to the other
side hanging up. The actor will be gracefully destroyed in DestroySubtree when
its manager is destroyed.

Differential Revision: https://phabricator.services.mozilla.com/D12695
2018-12-05 10:18:41 -05: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
Andrew Sutherland 6c6e230a77 Bug 1286798 - Part 53: Review code comments; r=janv,mrbkap,mccr8 2018-11-05 14:04:39 -05:00
Jan Varga d87888fe25 Bug 1286798 - Part 31: Support for lazy loading of items; r=asuth,mrbkap,mccr8
There's now an upper limit for snapshot prefilling. The value is configurable and is currently set to 4096 bytes.
Snapshots can operate in multiple modes depending on if all items have been loaded or all keys have been received. This should provide the best performance for each specific state.
This patch also adds support for creating explicit snapshots which can be used for testing.
2018-11-29 21:48:54 +01:00
Jan Varga c4f55013cf Bug 1286798 - Part 29: Implement implicit snapshotting of databases; r=asuth,mccr8
This improves performance a lot in cases when multiple operations are invoked by a single JS function (number of sync IPC calls is reduced to a minimum). It also improves correctness since changes are not visible to other content processes until a JS function finishes.
The patch implements core infrastructure, all items are sent to content when a snapshot is initialized and everything is fully working. However, sending of all items at once is not optimal for bigger databases. Support for lazy loading of items is implemented in a following patch.
2018-11-29 21:48:47 +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
arthur.iakab af07f9b9d4 Backed out 13 changesets (bug 1500948, bug 1509362, bug 1509591, bug 1448426, bug 1500949, bug 1487249, bug 1509930, bug 1500950, bug 1500944) for causing crashes and assertion failures on PBackgroundParent.cpp:696 CLOSED TREE
Backed out changeset c3fe435e473a (bug 1509362)
Backed out changeset 6494840edc17 (bug 1509591)
Backed out changeset 123b5d5a3637 (bug 1509591)
Backed out changeset bce195f98895 (bug 1509930)
Backed out changeset 66db13126408 (bug 1500950)
Backed out changeset 3b5fffae2d2b (bug 1500949)
Backed out changeset 71c3b3677db8 (bug 1500948)
Backed out changeset 784b3b56e2ab (bug 1500944)
Backed out changeset 0bad27401ddb (bug 1500944)
Backed out changeset e0f95dd96d54 (bug 1448426)
Backed out changeset c60fa11538db (bug 1487249)
Backed out changeset 0190d4ffa54f (bug 1487249)
Backed out changeset 3cd10aba9130 (bug 1487249)
2018-11-28 02:57:32 +02:00
Nika Layzell a2ba7bfc01 Bug 1509362 - Don't crash when constructing actor during content shutdown, r=jld
When shutting down a content process, we call `Close` on the
`IToplevelProtocol`. This causes the MessageChannel to be `Close`-ed,
which in turn sends a `GOODBYE_MESSAGE`:
https://searchfox.org/mozilla-central/rev/876022232b15425bb9efde189caf747823b39567/ipc/glue/MessageChannel.cpp#2852

This message is intercepted on the I/O thread in the content process,
before any code is informed in content, and used to set the
`mChannelState` property to `ChannelClosing`:
https://searchfox.org/mozilla-central/rev/876022232b15425bb9efde189caf747823b39567/ipc/glue/MessageChannel.cpp#1176

Once this state has been set, which is performed as soon as the
message is received, whether or not other messages have been processed
yet, no messages can be sent back to the parent process. This is
usually what causes the 'Too late to send/recv' message spam in the
console, as we're still trying to send messages at this time.

Usually this is fine - the message send fails, but we gracefully
recover, and the process begins shutting down like normal.
Unfortunately, child actor constructors currently have code
automatically generated in them which causes a process crash if the
send fails. As it's impossible for the main thread to know that the
channel has been closed ahead of time (due to this happening
out-of-band), we can then cause random content process crashes
during shutdown due to actor construction.

Unfortunately, we can't just destroy the actor, as our caller may
(and often do) depend on the actor reference they gave us still being valid
after calling Send*Constructor. Fortunately, if a message send failed, it means
we're in the process of being shut down.

This patch handles this by ignoring ctor send errors, and treating them like
messages which successfully were queued to send, but got lost due to the other
side hanging up. The actor will be gracefully destroyed in DestroySubtree when
its manager is destroyed.

Differential Revision: https://phabricator.services.mozilla.com/D12695
2018-11-27 18:09:54 -05:00
Nika Layzell 0f1b2fff2a Bug 1509591 - Part 1: Maintain an IPCOpen variable in IProtocol, r=mccr8
Previously there were many different inconsistent implementations of this
variable across many different actors. This adds a unified implementation of
this variable inside of IProtocol.

Differential Revision: https://phabricator.services.mozilla.com/D12956
2018-11-27 18:09:49 -05:00
Michael Froman 4e520483b8 Bug 1471535 - pt7 - Add remote decoding in dom/media/ipc alongside gpu decoding. r=jya,mattwoodrow,jld
Depends on D8488

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

--HG--
extra : moz-landing-system : lando
2018-11-14 18:06:11 +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
Michael Froman 9643048b75 Bug 1471535 - pt7 - Add remote decoding in dom/media/ipc alongside gpu decoding. r=jya,mattwoodrow,jld
Depends on D8488

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

--HG--
extra : moz-landing-system : lando
2018-11-13 17:35:31 +00:00
Dorel Luca cb089b0bc4 Backed out 9 changesets (bug 1471535) for Mochitest failures in build/src/dom/media/ipc/VideoDecoderChild.cpp
Backed out changeset 1342e21cf613 (bug 1471535)
Backed out changeset 8dc9b4d59f90 (bug 1471535)
Backed out changeset 8082f226b52d (bug 1471535)
Backed out changeset f53e1e7bd538 (bug 1471535)
Backed out changeset 1a991ac2e1f8 (bug 1471535)
Backed out changeset a32288737e57 (bug 1471535)
Backed out changeset a094c1ac3afe (bug 1471535)
Backed out changeset fe9b5cdf78f9 (bug 1471535)
Backed out changeset 3a8a75389c42 (bug 1471535)
2018-11-09 12:14:50 +02:00
Michael Froman 95000decd4 Bug 1471535 - pt7 - Add remote decoding in dom/media/ipc alongside gpu decoding. r=jya,mattwoodrow,jld
Depends on D8488

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

--HG--
extra : moz-landing-system : lando
2018-11-09 00:12:46 +00: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
David Parks 41d439e4e4 Bug 1500219: Part 2 - Test UniquePtr integration with IPDL (r=jld)
Tests that pass UniquePtrs in IPDL messages.

Depends on D9143

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

--HG--
extra : moz-landing-system : lando
2018-10-24 21:04:44 +00:00
David Parks 6e9cde0e13 Bug 1500219: Part 1 - Add ability to send and receive UniquePtr<T> with IPDL (r=jld)
This patch adds the ability to use UniquePtr<T> in IPDL messages if T is serializable.  The behavior works as expected -- a UniquePtr in a Send is cleared and is passed by move.

Some design points:

* The UniquePtr identification is done in the parser.  This is because the parser immediately normalizes CxxTemplateInst -- an old version of the patch did hacky string-parsing to pull it apart.  I, instead, created CxxUniquePtrInst.

* The implementation allows passing to Send... by move or by reference.  This is valid UniquePtr API behavior but passing by reference is not really useful in this case (but not harmful).  This could probably piggy-back on the "moveonly" IPDL work but that is newer than this work and will require some refactoring.

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

--HG--
extra : moz-landing-system : lando
2018-10-26 17:09:19 +00:00
Ryan Hunt e8c15a9c36 Bug 1475139 part 2 - Add 'moveonly' qualifier to IPDL using statements. r=jld
I'd like to use a struct over IPDL which is move only. This patch adds a modifier to
usings statements to indicate the C++ type should always be moved, similar to refcounted.

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

--HG--
extra : rebase_source : 492309e2ec4f4cc6a6ffe639e3c6e4adfb6ecf08
2018-09-24 21:24:24 -05:00
sotaro 28923c3278 Bug 1496003 - Add sync ipc WebRenderBridgeChild::SendEnsureConnected() r=mattwoodrow,froydnj 2018-10-05 16:35:29 +09:00
David Parks 1a3c571150 Bug 1493649: Fix IPDL test compilation (r=jld)
This patch allows IPDL tests to compile -- in other words, it fixes the build when the --enable-ipdl-tests flag is present.  Most of the fixes are simple API updates but we also needed to fix an issue with the constness of nsTArray<Shmem> parameters that are defined in IPDL structs.

This patch does not fix the tests themselves -- some IPDL tests will still fail when run.

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

--HG--
extra : moz-landing-system : lando
2018-10-02 22:32:17 +00:00
sotaro f79bc9e186 Bug 1492745 - Remove PWebRenderBridge::Create() r=mattwoodrow,froydnj 2018-09-26 10:19:18 +09:00
Diego Pino Garcia 0f11b0a3d3 Bug 1483986 - Remove sync versions of document.cookie getter/setter; r=ehsan,froydnj 2018-09-21 23:01:32 -04:00
Hiroyuki Ikezoe 5f958f80c7 Bug 1486971 - Test for dynamically change of the prefers-reduced-motion setting on MacOSX. r=froydnj,mstange
The framework to simulate the setting change works as following;

 - nsIDOMWindowUtils.setPrefersReducedMotion() calls an IPC function which ends
   up calling nsChildView::SetPrefersReducedMotion() in the parent process

 - nsChildView::SetPrefersReducedMotion() sets the given value into
   nsLookAndFeel::mPrefersReducedMotionCached just like we set the value queried
   via NSWorkspace.accessibilityDisplayShouldReduceMotion in the parent process
   and send a notification which is the same notification MacOSX sends when the
   system setting changed

 - Normally the cached value is cleared before quering new values since the
   cache value is stale, but in this case the value is up-to-date one, so
   nsChildView::SetPrefersReducedMotion() tells that we don't need to clear the
   cache, and nsIDOMWindowUtils.resetPrefersReducedMotion() resets that state
   of 'we don't need to clear the cache'

There are two test cases with the framework in this commit, one is just setting
the value and checking the value queried by window.matchMedia.  The other one is
receiving 'change' event and checking the value of the event target.

Note that to make this test works the patch for bug 1478212 is necessary since
the test runs in an iframe.

Depends on D5003

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

--HG--
extra : moz-landing-system : lando
2018-09-15 01:00:07 +00:00
Alex Gaynor 5bf3453bc2 Bug 1486547 - renamed the mState field on generated protocol classes; r=froydnj
There's also a field named mState on IProtocol, and this reduces confusion.

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

--HG--
extra : moz-landing-system : lando
2018-08-27 18:20:17 +00:00
Hiroyuki Ikezoe 61a6f8e3f2 Bug 1478576 - A mochitest for system font change notification. r=froydnj,jimm,karlt
The test case in this patch fails without the proper fix in the first patch
in this patch series.

In this patch two new nsIDOMWindowUtils APIs are introduced to change the
system font settins in tests.  Currently the APIs work only on GTK+ platform.

Also to work the test case properly we need to open a new XUL window because we
don't propagate font changes into descendant documents yet (bug 1478212).

MozReview-Commit-ID: 4OLxEkEuF8d

--HG--
extra : rebase_source : 683e64f07c4d8820e5499d8c15b90975618559b8
2018-08-07 11:58:36 +09:00
Tom Schuster 2e69f796e1 Bug 1468774 - Remove getPropertyDescriptor from CPOWs. r=mrbkap r=mccr8
--HG--
extra : rebase_source : 39bba6564c89e50ef8faf0b9dca4c0c4a67df510
extra : histedit_source : f572166d28a784135429916b07a1ac398d7a99cb
2018-04-03 18:21:40 +02:00
Hiroyuki Ikezoe 221a08d59e Bug 1479234 - Drop GetAnimationOpacity and GetAnimationTransform ipc calls. r=boris,froydnj
They are no longer used.

MozReview-Commit-ID: 1SaIkj4ryUF

--HG--
extra : rebase_source : 0666e3f297e9c12f8a024e96944d99c2c301820c
2018-07-31 06:13:15 +09:00
Hiroyuki Ikezoe 94f5f622eb Bug 1479234 - Introduce a generic function to get an animation value on the compositor. r=boris,froydnj
On the compositor we store animation values in a hash table and the hash is
the compositor animation id which is a unique id for each property respectively.
So we can get the corresponding animation value for the given property.

In this patch there are lots of duplicated code, but they will be removed in the
next patch.

MozReview-Commit-ID: 7EboVcculcg

--HG--
extra : rebase_source : 304ea80849af8af72a07437736041aeabbe47eeb
2018-07-31 06:13:15 +09:00
Coroiu Cristina 7634333ced Backed out 4 changesets (bug 1479234) for build bustage at build/src/gfx/vr/ipc/VRLayerChild.cpp on a CLOSED TREE
Backed out changeset 6ecc1666f571 (bug 1479234)
Backed out changeset c3bab1bc97cf (bug 1479234)
Backed out changeset c8c2625a33ba (bug 1479234)
Backed out changeset 2ffc8e9d5686 (bug 1479234)
2018-07-31 00:32:04 +03:00
Hiroyuki Ikezoe 697a9da7aa Bug 1479234 - Drop GetAnimationOpacity and GetAnimationTransform ipc calls. r=boris,froydnj
They are no longer used.

MozReview-Commit-ID: 1SaIkj4ryUF

--HG--
extra : rebase_source : 0666e3f297e9c12f8a024e96944d99c2c301820c
2018-07-31 06:13:15 +09:00
Hiroyuki Ikezoe 23a4443de4 Bug 1479234 - Introduce a generic function to get an animation value on the compositor. r=boris,froydnj
On the compositor we store animation values in a hash table and the hash is
the compositor animation id which is a unique id for each property respectively.
So we can get the corresponding animation value for the given property.

In this patch there are lots of duplicated code, but they will be removed in the
next patch.

MozReview-Commit-ID: 7EboVcculcg

--HG--
extra : rebase_source : 304ea80849af8af72a07437736041aeabbe47eeb
2018-07-31 06:13:15 +09:00
Blake Kaplan e4a0da7d25 Bug 1477343 - Remove PBrowser::IsParentWindowMainWidgetVisible. r=mccr8,bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D2347

--HG--
extra : moz-landing-system : lando
2018-07-26 19:26:02 +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
Haik Aftandilian e2f970d134 Bug 1350642 - Remove the PBrowser::Msg_GetTabCount sync IPC; r=mccr8
Bug 1350642 - Keep the tabCountResizable property in sync; r?dao

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

--HG--
extra : moz-landing-system : lando
2018-07-17 19:41:16 +00:00
Sylvestre Ledru 909b0caf78 Bug 1468273 - Fix flake8/pep8 issue by hand in ipc/ r=froydnj
MozReview-Commit-ID: JMX7ecYXzHn

--HG--
extra : rebase_source : ef283d9875973913cb24fc5f76e27068e293a762
2018-07-12 12:03:02 +02:00
Sylvestre Ledru eb7d846340 Bug 1468273 - autopep8 on ipc/ r=froydnj
MozReview-Commit-ID: 63pBUqmDlkZ

--HG--
extra : rebase_source : 6570b1b12e56c2ae1009b00d1cf9a70fb3f651d8
2018-06-10 14:29:07 +02:00
Anny Gakhokidze 535e3c83a1 Bug 1470540 - Improve performance of DataTransfer::CacheExternalClipboardFormats, r=baku,mccr8
Currently, in order to retrieve supported clipboard formats
DataTransfer::CacheExternalClipboardFormats repeatedly makes the same calls to
clipboard->HasDataMatchingFlavors.

In the case when aPlainTextOnly == true only 1 call is made -
clipboard->HasDataMatchingFlavors(kUnicodeMime, ...), and when
aPlainTextOnly == false we have 1 call made for every member of the list
{ kCustomTypesMime, kFileMime, kHTMLMime, kRTFMime, kURLMime, kURLDataMime,
kUnicodeMime, kPNGImageMime } - a total of 8 calls.

We can see that in nsClipboardProxy::HasDataMatchingFlavors, there is a call to
ContentChild::GetSingleton()->SendClipboardHasType.
So when aPlainTextOnly == true, we will have 1 sync message, and when
aPlainTextOnly == false, we will have 8 sync messages.

With the proposed solution, in DataTransfer::CacheExternalClipboardFormats
we will only have 1 sync message regardless of the case because
GetExternalClipboardFormats() will retrieve all supported clipboard
formats at once.

MozReview-Commit-ID: CAmBfqB459v

--HG--
extra : rebase_source : 27f1b420f2613e6a747ed63762f1583ab71ba3e0
2018-06-22 14:28:27 -04:00
Sylvestre Ledru 7c352fb5ff Bug 1468272 - Get rid of the codedir usage as it doesn't exist since 2009 r=froydnj
MozReview-Commit-ID: JX0rqoetgN8

--HG--
extra : rebase_source : e8e66b14f06ca37e5e9a4530f8ef657a531e885a
2018-06-11 17:27:34 -07:00
Alex Gaynor b174206e6f Bug 1451859 - Part 2: Add sanitizer coverage to a handful of places relevant to IPC. r=posidron 2018-04-05 15:48:11 -04:00
Cosmin Sabou 18d0742c9b Backed out 3 changesets (bug 1451859) for causing Spidermonkey bustages on Linux x64 opt.
Backed out changeset 8f5a9e18e953 (bug 1451859)
Backed out changeset 950fa584ec8e (bug 1451859)
Backed out changeset f1f42726f1ec (bug 1451859)
2018-06-07 09:10:35 +03:00
Alex Gaynor 76b53de450 Bug 1451859 - Part 2: Add sanitizer coverage to a handful of places relevant to IPC. r=posidron 2018-04-05 15:48:11 -04:00
Hiroyuki Ikezoe 2dffa2305c Bug 1464568 - Add an IPC call to get transform value for a given element on the compositor. r=froydnj,kats
This function returns the transform value modified by both OMTA and APZC.
Note that the transform conversion code is almost the same as the code dropped
in https://hg.mozilla.org/mozilla-central/rev/415811f3804f .

MozReview-Commit-ID: HmsMQp3O4n4

--HG--
extra : rebase_source : ac3994359d646dedaa5ff2f664b20787be8a75f6
2018-06-05 09:18:22 +09:00
Emilio Cobos Álvarez fffb25b74f Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj
This was done automatically replacing:

  s/mozilla::Move/std::move/
  s/ Move(/ std::move(/
  s/(Move(/(std::move(/

Removing the 'using mozilla::Move;' lines.

And then with a few manual fixups, see the bug for the split series..

MozReview-Commit-ID: Jxze3adipUh
2018-06-01 10:45:27 +02:00
Kartikaya Gupta 1832f1798c Bug 1417784 - Properly implement SyncWithCompositor for WebRender. r=froydnj,sotaro
This defines three flushing functions that flush different parts of the
WR pipeline. Using all three guarantees that everything sent to WR will
have been flushed. This is what we need to do in SyncWithCompositor to
ensure that it meets the API contract.

In addition, this patch updates the existing FlushRendering function to
use the new functions (no functional changes intended here).

MozReview-Commit-ID: GzxwpF4JT04

--HG--
extra : rebase_source : 1a8cf434d1280902906da257ae63751da7ffd114
2018-05-28 11:29:52 -04:00
Alex Gaynor d64dccaf76 Bug 1459270 - fixed a regression where IPC was not correctly checking for transitions to actors being dead; r=froydnj
MozReview-Commit-ID: HzhUna0mVpB

--HG--
extra : rebase_source : 495d4f70f0e9d648bfc36b84921cbfb79881f289
2018-05-04 13:51:22 -04:00
Alex Gaynor 8fbe3c2f2a Bug 1457536 - refactor Transition in IPC to make it more amenable to fuzing; r=froydnj
Instead of crashing the process inside Transition on a bad state transition,
propagate an error up the stack (and crash higher up).

MozReview-Commit-ID: JJmAeq6xSfe

--HG--
extra : rebase_source : caba8a53603f7b0ad841b657aa3d00e827e3c68c
2018-05-03 12:08:48 -04:00
Chris Manchester 26b3ffad58 Bug 1455892 - Use a tracking stub file rather than a phony target to speed up ipdl in incremental builds. r=froydnj
This commit removes some mtime checking logic in ipdl.py that is made redundant
with make's logic to re-invoke ipdl.py when dependencies have changed.


MozReview-Commit-ID: FJuYIZv5uym

--HG--
extra : rebase_source : 5e250cd2dd57b8591db700a3d79ec36c88fa4dd4
2018-05-03 12:54:21 -07:00
Bogdan Tara 474a05018a Backed out changeset 23400e395408 (bug 1455892) for linux build bustages on ContentBridgeParent.h CLOSED TREE 2018-05-03 23:34:54 +03:00
Chris Manchester 5b50d3c787 Bug 1455892 - Use a tracking stub file rather than a phony target to speed up ipdl in incremental builds. r=froydnj
This commit removes some mtime checking logic in ipdl.py that is made redundant
with make's logic to re-invoke ipdl.py when dependencies have changed.


MozReview-Commit-ID: FJuYIZv5uym

--HG--
extra : rebase_source : 9e11ead04bd69eb1f30160fdb15b8ac74b183f87
2018-05-03 12:54:21 -07:00
Alex Gaynor 8dbb80ef3d Bug 1323532 - Part 2 - don't codegen Transition functions in ipdl, just statically define the two variants we need; r=froydnj
MozReview-Commit-ID: GdATc0Wdsxi

--HG--
extra : rebase_source : 315b6d21d5bccac8335869790c0ce9fe7a1d78b7
2018-04-30 17:10:27 -04:00
Alex Gaynor 33a10861a4 Bug 1323532 - Part 1 - don't codegen State enums in ipdl, just statically define the two types we need; r=froydnj
MozReview-Commit-ID: CSfCBiQnKxZ

--HG--
extra : rebase_source : 9b1968ba812eed8f9e6b31a5a7cbf773970282d6
2018-04-30 15:22:18 -04:00
Andrew McCreight 1481f95980 Bug 1456942, part 6 - Add a test for ByteBuf. r=Nika
ByteBuf is a new IPDL built in type, so I wrote a very basic test for
it, based on shmem.ipdl. It was added in bug 1379680.

MozReview-Commit-ID: 4tbnljpUqCh

--HG--
extra : rebase_source : 6f423d7d9cf132aba4498be96548684e551b8e2c
2018-04-25 14:16:51 -07:00
Andrew McCreight 6d031ffbb6 Bug 1456942, part 5 - Add test for inconsistent refcounted types. r=Nika
MozReview-Commit-ID: F8WuWQ5n5yk

--HG--
extra : rebase_source : 9620bdfec42b561190a6902a479331c66aadd671
2018-04-25 13:23:46 -07:00
Andrew McCreight aad458668f Bug 1456942, part 4 - Add a new test for |using|. r=Nika
Bug 1443954 added some new syntax to using, but I noticed that there
was not very much existing test coverage, so I wrote a new test that
covers all of the possible cases.

MozReview-Commit-ID: JRgHCtXHDLZ

--HG--
extra : rebase_source : caacc05ae5b1de0841f73e5fdba4891bfc0ee4bf
2018-04-25 11:25:24 -07:00
Andrew McCreight 5a9bc43157 Bug 1456942, part 3 - Specify the error messages for a few tests. r=Nika
Failing IPDL parser tests require that the error message is specified.

MozReview-Commit-ID: IGNTVAb5r0Q

--HG--
extra : rebase_source : 54e75ae8820f4e9ae2083b1f5382ff4151c8d59e
2018-04-25 11:23:18 -07:00
Andrew McCreight a132bfb872 Bug 1456942, part 2 - Pass in a blank message-metadata file. r=Nika
The IPDL parser now expects a valid message-metadata to be passed in,
even though we don't need it for parser tests. Fix this by creating
and specifying a blank one. This fixes a regression from bug 1348591.

MozReview-Commit-ID: HJ34mqBdUyP

--HG--
extra : rebase_source : d444e5346f40399f1f1cf71b3d86b6dc15a4b731
2018-04-25 11:14:41 -07:00
Andrew McCreight 05b66f4baf Bug 1456942, part 1 - Always build the IPDL parser test directory. r=Nika
The ipc/ipdl/test/cxx/ subdirectory is only built when MOZ_IPDL_TESTS
is set, because it needs special code to be built into the
binary. ipdl/ should always be built, because it does not need special
support. This gating is already done in the ipc/ipdl/test/ directory,
so it shouldn't be done in ipc/ipdl/, because this stops us from
building it in a regular build.

MozReview-Commit-ID: Jpp0CeXEenR

--HG--
extra : rebase_source : 3dbb6a5c9b7f6ec8cbe9840bff240a63342ecd49
2018-04-25 11:02:33 -07:00
Yura Zenevich 55fe960cc1 Bug 1450927 - add getBoundsInCSSPixels XPCOM method. r=surkov r=jld
MozReview-Commit-ID: CTANPVQw1sG
2018-04-25 14:51:09 -04:00
Tiberius Oros 2fffa00bb3 Backed out 2 changesets (bug 1450927) for failing on ProxyAccessible.cpp(247) on a CLOSED TREE
Backed out changeset ca285aed3926 (bug 1450927)
Backed out changeset d7dd8b0d2473 (bug 1450927)
2018-04-25 19:31:50 +03:00
Yura Zenevich db18588465 Bug 1450927 - add getBoundsInCSSPixels XPCOM method. r=surkov r=jld
MozReview-Commit-ID: CTANPVQw1sG
2018-04-25 11:45:47 -04:00
Nathan Froyd 53f1900f29 Bug 1451363 - part 6 - move GetIPCChannel into ProtocolState; r=mccr8
We can move this information into ProtocolState and save having two
virtual functions for every protocol.  Moving some bits out of the
codegen'd IPC code is a nice bonus, though we keep the strange setup
where toplevel protocols have two mChannel member variables.
2018-04-23 14:13:36 -04:00
Nathan Froyd dbc53de3d9 Bug 1451363 - part 5 - remove ProtocolName virtual function; r=mccr8
ProtocolName() is only used for producing error messages and annotating
crash reports.  But examining actual crash reports that would have used
the result of ProtocolName() indicates that we can always tell what the
erroring protocol is due to the stack backtrace.  So having this virtual
function around just provides duplicate information, and it takes up too
much space in the vtable besides.  Let's get rid of it.
2018-04-23 14:13:36 -04:00
Nathan Froyd e77f1868f1 Bug 1451363 - part 4 - consolidate generated code into IProtocol; r=mccr8
lower.py generates repetitious:

  SetManager(...);
  Register(...); // Or RegisterID.
  SetIPCChannel(...);

calls, which are moderately sized, given that the above call sequence
requires virtual calls in several places.  Instead of codegenning this
sequence, let's consolidate the sequence into IProtocol and change the
code generator to call into the consolidated function instead.
2018-04-23 14:13:37 -04:00
Nika Layzell 952f6a915a Bug 1443954 - Part 3: Add support for RefCounted types to IPDL, r=bz,froydnj,baku
This patch was reviewed in parts, however the intermediate states would not build:

Bug 1443954 - Part 3A: Strip pointers from the argument to WriteParam and WriteIPDLParam before selecting the ParamTraits impl, r=froydnj

Bug 1443954 - Part 3B: Move nsIAlertNotification serialization to the refcounted system, r=bz

Bug 1443954 - Part 3C: Move geolocation serialization to the refcounted system, r=bz

Bug 1443954 - Part 3D: Move nsIInputStream serialization to the refcounted system, r=baku

Bug 1443954 - Part 3E: Move BlobImpl serialization to the refcounted system, r=baku

Bug 1443954 - Part 3F: Correctly implement ParamTraits for actors after the ParamTraits changes, r=froydnj
2018-04-10 17:49:48 -04:00
Nika Layzell 15aae6a990 Bug 1443954 - Part 2: Support parsing `using refcounted class` imports in IPDL, r=froydnj 2018-04-10 17:49:48 -04:00
Nika Layzell 854c39c514 Bug 1443954 - Part 1: Only Move() arguments when necessary, r=froydnj 2018-04-10 17:49:47 -04:00
Ted Mielczarek 4b813d4c4a bug 1255485 - Remove NSDISTMODE=copy from Makefiles. r=nalexander
MozReview-Commit-ID: GJV2O6zvEx2
2017-11-22 15:30:06 -05:00
Kartikaya Gupta c864e00967 Bug 1441324 - Move the input event messages from PAPZCTreeManager to PAPZInputBridge. r=froydnj,rhunt
This remotes the APZInputBridge interface over the PAPZInputBridge
protocol in the case of the GPU process, and makes the GPU process'
main thread act as the APZ controller thread in that process. If
there is no GPU process we continue as before and the APZInputBridge
interface implementation is the concrete APZCTreeManager instance
in the UI process.

The main changes in this patch are moving all the code associated with
these messages out of APZCTreeManager{Parent,Child} and into
APZInputBridge{Parent,Child}. APZCTreeManagerChild now returns an
APZInputBridgeChild instance via InputBridge(), instead of returning
itself. The SetControllerThread call in the GPU process is also updated.

MozReview-Commit-ID: M4AaIW1Q0h

--HG--
extra : rebase_source : e5a8f14e23be34229fe80a47f6789d19b19e0a9f
2018-03-16 16:28:19 -04:00
Ryan Hunt 691f20afd2 Remove ReadLockHandle and ReadLockInit code (bug 1445008, r=aosmond)
This code is unused now that ReadLockDescriptors are not sent in layer transactions.

--HG--
extra : rebase_source : 8cd25541b22c3151e2dbd2f8ea6d1119e2f26c94
extra : source : 99a2d26d1ba82ad34a6c27641500a424cda015c3
2018-03-13 17:00:18 -05:00
Nika Layzell e282bb0ee4 Bug 1440511 - Part 12: Remove the now-unused per-actor pickling code, r=froydnj
MozReview-Commit-ID: 5ASQu4ly0od
2018-03-05 16:00:04 -05:00
Nika Layzell b8ffcd26b0 Bug 1440511 - Part 11: Switch to calling IPDLParamTraits directly when pickling and unpickling messages, r=froydnj
MozReview-Commit-ID: 1t4oIp5JWcU
2018-03-05 16:00:04 -05:00
Nika Layzell 4cfd1b17fa Bug 1440511 - Part 10: Implement IPDLParamTraits for IPDL generated types, r=froydnj
MozReview-Commit-ID: 2ljPFJKM9Fg
2018-03-05 16:00:04 -05:00
Nika Layzell 68cee68ee8 Bug 1440511 - Part 9: Correct serialization and deserialization of arrays of Shmem objects, r=froydnj
MozReview-Commit-ID: KEFduw2Pn8r
2018-03-05 16:00:03 -05:00
Nika Layzell ea516e7fbb Bug 1440511 - Part 7: Include c++ includes in ipdlh generated .cpp files, r=froydnj
This is important as these includes are often used to define ParamTraits
implementations which are needed to serialize struct members and
parameters. The place where the code which uses these implementations
will be moving from the protocol where they are used to the file where
the structs are defined, which means we need to includes these files
there.

MozReview-Commit-ID: H1wqgyv5mel
2018-03-05 16:00:03 -05:00
Nika Layzell 50056699b1 Bug 1440511 - Part 6: Support passing the fq flag to _cxxBareType in more places, r=froydnj
MozReview-Commit-ID: K1lkVr6KdZo
2018-03-05 16:00:02 -05:00
Nika Layzell 351767a407 Bug 1440511 - Part 2: Support specializations in _splitMethodDefn, r=froydnj
MozReview-Commit-ID: JFYgyUr4I4G
2018-03-05 16:00:01 -05:00
Nathan Froyd 062f6d980e Bug 1443236 - remove static init and shutdown nsRegion routines; r=kats
These routines are no-ops; let's get rid of them.
2018-03-05 14:06:50 -05:00
Nika Layzell 785a14270e Bug 1431867 - Part 2: Add move constructors and assignment operators to IPDL unions, r=mccr8
MozReview-Commit-ID: IQVODEfMGi9
2018-02-01 11:30:50 -05:00
Nika Layzell a1e4513e2a Bug 1431867 - Part 1: Remove some unnecessary complexity from generated IPDL structs, r=mccr8
MozReview-Commit-ID: HvX4ZF8t9Eg
2018-02-01 11:30:49 -05:00
Noemi Erli 7df180b6ad Backed out 2 changesets (bug 1431867) for build bustages on ClientSourceOpChild.cpp:57:12 on a CLOSED TREE
Backed out changeset 4cdb114a46f9 (bug 1431867)
Backed out changeset b5a46d76193b (bug 1431867)
2018-01-31 22:15:54 +02:00
Nika Layzell 08119d282a Bug 1431867 - Part 2: Add move constructors and assignment operators to IPDL unions, r=mccr8
MozReview-Commit-ID: IQVODEfMGi9
2018-01-31 14:40:36 -05:00
Nika Layzell c9e0af69b6 Bug 1431867 - Part 1: Remove some unnecessary complexity from generated IPDL structs, r=mccr8
MozReview-Commit-ID: HvX4ZF8t9Eg
2018-01-31 14:40:35 -05:00
David Parks cc15f3d517 Bug 1382251: Part 8 - Migrate some previously hooked functions to FunctionHook/Broker; r=jimm,froydnj
Moves GetWindowInfo, GetKeyState, SetCursorPos, GetSaveFileNameW and GetOpenFileNameW to the new FunctionHook and FunctionBroker systems.
2017-11-06 11:07:16 -08:00
David Parks 93bbbac8e4 Bug 1382251: Part 6 - Start/stop new top-level brokering actors on their own threads; r=jld
The FunctionBroker actors allow the NPAPI process (child) to run methods on the main process (parent).  Both the parent and the child run dedicated threads for this task -- this is a top-level protocol.
2017-11-06 10:29:15 -08:00
Chris Peterson 1a33f28694 Bug 1428984 - Part 3: Remove unused inline flag. r=froydnj
inline is never set so cgen never emits inline.

MozReview-Commit-ID: BDL6BV8906t

--HG--
extra : rebase_source : aa51cda34db36ba08622d9940402cea14617c74a
2018-01-12 21:14:53 -08:00
Chris Peterson caaf1b568c Bug 1428984 - Part 2: Remove unused never_inline flag. r=froydnj
never_inline is never set so cgen never emits MOZ_NEVER_INLINE.

MozReview-Commit-ID: HS7qw7D4lBC

--HG--
extra : rebase_source : 2eae9e3a7a0c95d94986283fabe670d5decec3c3
2018-01-12 21:12:07 -08:00
Chris Peterson 428b284e8d Bug 1428984 - Part 1: Consolidate virtual, pure, override, and static MethodDecl types into an MethodSpec enum. r=froydnj
pure or override implies virtual. static is mutually exclusive with virtual (and pure and override). Combining these types into a "method specifier" enum simplifies the code and prevents bogus states like virtual=0 and pure=1.

MozReview-Commit-ID: IFeuvbp1RIo

--HG--
extra : rebase_source : d423d168a8b3a3d60cabd0f5e58fd03c6f655baf
2018-01-09 00:10:02 -08:00
Chris Peterson 32cf7b1a07 Bug 1428535 - Part 3: Emit override specifiers in generated ipc/ipdl code. r=froydnj
MozReview-Commit-ID: 2mpQcRKzfCo

--HG--
extra : rebase_source : 70844a95a8dfbb9e1d3a9bd177987f32e57a22b2
extra : intermediate-source : eba2f29350c39acede276e505ef6aa7337ba7f2a
extra : source : fafaa4d1e1a4cf2da4459c55927e5bd67f870cb0
2017-10-12 00:07:35 -07:00
Sylvestre Ledru 5de63ef061 Bug 1394734 - Replace CONFIG['MSVC'] by CONFIG['CC_TYPE'] r=glandium
MozReview-Commit-ID: 5orfnoude7h

--HG--
extra : rebase_source : 1ed9a6b56e1d27221a07624767a7fb0e6147117f
2017-12-08 13:46:13 +01:00
Eric Rahm 07c97a5afe Bug 1423773 - Part 1: Remove usage of nsStringGlue.h. r=glandium
This removes an unnecessary level of indirection by replacing all
nsStringGlue.h instances with just nsString.h.

--HG--
extra : rebase_source : 340989240af4018f3ebfd92826ae11b0cb46d019
2017-12-06 16:52:51 -08:00
Ben Kelly fb38b7b228 Bug 1423412 P1 Actually mark window/worker ClientSource objects controlled when loaded with a controlling service worker. r=baku r=jld 2017-12-05 20:45:22 -05:00
Andrew McCreight f69cf04a33 Bug 1419455, part 3 - Remove the unused return value for the upgrade() methods. r=kanru
Also ensure we're more consistent about having two blank lines after these methods.

MozReview-Commit-ID: 2SXXjDuMW4u

--HG--
extra : rebase_source : 05279ceab3aa32d1e577ea02ccd113180bb55792
2017-11-21 08:45:20 -08:00
Andrew McCreight 65015439d9 Bug 1419455, part 2 - Clean up standardTypedefs. r=kanru
There's already a typedef for MessageChannel, so use that instead of
Channel. Also, use IProtocol and not ProtocolBase or ChannelListener,
for simplicity.

MozReview-Commit-ID: 2zCjTpPTW4L

--HG--
extra : rebase_source : eed8d6d51a512ac85f6b4962fc12591bf81c2981
2017-11-21 08:27:32 -08:00
Andrew McCreight 1bae204066 Bug 1419455, part 1 - Inline _semsToChannelParts. r=kanru
This method is now trivial, so we can inline a few things.  This
removes the only callers of sendSems(), so remove that, too.

MozReview-Commit-ID: Bb4EF9M56ut

--HG--
extra : rebase_source : dedf31aa225361e31122362aefc76940edbf25f3
2017-11-21 08:15:51 -08:00
Jeff Muizelaar fba16646be Bug 1379680. Add an ipc ByteBuf type. r=billm
This adds a ByteBuf type that can be sent by taking
ownership of its buffer instead of having to make a copy.
2017-11-29 10:11:15 -05:00
Gabriele Svelto ef3b2f88cc Bug 1402519 - Remove MOZ_CRASHREPORTER directives from ipc; r=billm
MozReview-Commit-ID: 4mDW7cJqHDn

--HG--
extra : rebase_source : 17c51ed796733d4a512e1d6f47273318dcc26b11
2017-10-10 12:06:35 +02:00
shindli fb855aa7ba Backed out 16 changesets (bug 1402519) for conflicts during merge r=backout on a CLOSED TREE
Backed out changeset 07fcf163241a (bug 1402519)
Backed out changeset c6d2ad45d8e2 (bug 1402519)
Backed out changeset 8a3caca61294 (bug 1402519)
Backed out changeset 01425eae2c48 (bug 1402519)
Backed out changeset cf298d3815de (bug 1402519)
Backed out changeset e1964f4389cd (bug 1402519)
Backed out changeset f405337f3569 (bug 1402519)
Backed out changeset a76356fd3359 (bug 1402519)
Backed out changeset d3bb350d1c34 (bug 1402519)
Backed out changeset 9d3bfd9f932c (bug 1402519)
Backed out changeset e3dd6e5b073f (bug 1402519)
Backed out changeset e801b0c00134 (bug 1402519)
Backed out changeset 8a4139fa5dca (bug 1402519)
Backed out changeset 8d01c14ac1ca (bug 1402519)
Backed out changeset 24e0dcd01898 (bug 1402519)
Backed out changeset f8fdf450613f (bug 1402519)
2017-11-23 00:11:44 +02:00
Gabriele Svelto f0b9eb9ff9 Bug 1402519 - Remove MOZ_CRASHREPORTER directives from ipc; r=billm
MozReview-Commit-ID: 4mDW7cJqHDn

--HG--
extra : rebase_source : a13301f4faea301cd528179790f2430171f59a48
2017-10-10 12:06:35 +02:00
Andrew McCreight f966d52048 Bug 1417657 - Add basic test for prio(). r=bkelly
MozReview-Commit-ID: AigSKc2EKGr

--HG--
extra : rebase_source : c2580693dcacf97fb8701d28e5d20cba3508997e
2017-11-15 13:29:56 -08:00
Nika Layzell b4c0dcb142 Bug 1418048 - Part 3: Accept callbacks passed to async-returning SendXXX methods as rvalue references on a CLOSED TREE, a=bustage
MozReview-Commit-ID: 7M1uuWr0fMM
2017-11-20 19:11:48 -05:00
Nika Layzell 8c139d50a6 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 a7666fd8fe Bug 1418048 - Add a callback-based Send API to async returning IPDL methods, r=billm
Currently if you write an async IPDL method which has a return value, we expose
a SendXXX method which returns a MozPromise. This MozPromise can then be
->Then-ed to run code when it is resolved or rejected.

Unfortunately, using this API loses ordering guarantees which IPDL provides.
MozPromise::Then takes an event target, which the resolve runnable is dispatched
to. This means that the resolve callback's code doesn't have any ordering
guarantees relative to the processing of other IPC messages coming over the same
protocol.

This adds a new overload to SendXXX with two additional arguments, a lambda
callback which is called if the call succeeds, and a lambda callback which is
called if the call fails. These will be called in order with other IPC messages
sent over the same protocol.

MozReview-Commit-ID: FZHJJaSDoZy
2017-11-20 17:55:32 -05:00
sotaro 551a052a4a Bug 1410766 - Re-acquireDevices in gpu process when SimulateDeviceReset() is called r=dvander 2017-11-03 17:06:37 +09:00
Chris Peterson 1df202b177 Bug 1412048 - Replace NS_RUNTIMEABORT("...") with MOZ_CRASH("..."). r=froydnj
And remove unreachable code after MOZ_CRASH().

MozReview-Commit-ID: 6ShBtPRKYlF

--HG--
extra : rebase_source : 0fe45a59411bda663828336e2686707b550144ae
extra : source : 8473fd7333d2abe1ea1cc176510c292a5b34df45
2017-10-24 23:30:31 -07:00
sotaro 8d85c3d52b Bug 1405952 - Remove PWebRenderBridge::SetDisplayListSync r=kats,kanru 2017-10-20 19:48:57 +09:00
Nicholas Nethercote 8a68e6fb83 Bug 1403868 (part 4) - Reduce tools/profiler/public/*.h to almost nothing in non-MOZ_GECKO_PROFILER builds. r=mstange.
Currently the Gecko Profiler defines a moderate amount of stuff when
MOZ_GECKO_PROFILER is undefined. It also #includes various headers, including
JS ones. This is making it difficult to separate Gecko's media stack for
inclusion in Servo.

This patch greatly simplifies how things are exposed. The starting point is:

- GeckoProfiler.h can be #included unconditionally;

- everything else from the profiler must be guarded by MOZ_GECKO_PROFILER.

In practice this introduces way too many #ifdefs, so the patch loosens it by
adding no-op macros for a number of the most common operations.

The net result is that #ifdefs and macros are used a bit more, but almost
nothing is exposed in non-MOZ_GECKO_PROFILER builds (including
ProfilerMarkerPayload.h and GeckoProfiler.h), and understanding what is exposed
is much simpler than before.

Note also that in BHR, ThreadStackHelper is now entirely absent in
non-MOZ_GECKO_PROFILER builds.
2017-10-04 09:11:18 +11:00
Gian-Carlo Pascutto bc7dfc9353 Bug 1382323 - Remote OSProtocolHandlerExists. r=jld,smaug
MozReview-Commit-ID: Gml7cjbgUvK

--HG--
extra : rebase_source : 6ee7dfc8b5c05aec1ed268011fbec2ef64760554
2017-09-04 21:48:59 +02:00
Benjamin Smedberg ce00e2cd37 Bug 1352567 - Remove plugin IPC code to support stream types other than NP_NORMAL (seekable and/or file streams), r=jimm
MozReview-Commit-ID: FWl2gcpKy6D
2017-10-02 14:54:22 -07:00
Kan-Ru Chen 9016ef6cef Bug 1397456 - Always use static name for ipc messages r=billm
Never store names in Message. One can get string names from
Message::name() or use IPC::StringFromIPCMessageType() when only
message id is available.

MozReview-Commit-ID: 15ksx6SE90c

--HG--
extra : rebase_source : 1a041dc365b7f42edd540d8c7a4dfd8912e48921
2017-09-14 16:08:57 +08:00
Nathan Froyd 37cbcb454b Bug 1397823 - part 4 - reduce codesize for IPDL IPC::Message creation; r=kanru
Each protocol in IPDL has a bunch of autogenerated functions that
instantiate IPC::Message with various parameters.  Each of these
functions, then:

1) Pays the cost of calling malloc()
2) Setting up various parameters
3) Calling IPC::Message()

There's no reason that we should be duplicating 1) across all of these
autogenerated functions.  In step 2), several of the parameters we're
setting up are common across all or nearly all calls: the message
segment size is almost always zero, and we're always indicating that
IPDL-generated messages should be recorded in telemetry.

Instead of duplicating that code several thousand times, we can add a
small helper function that takes the only interesting parameters for an
IPDL message.  This helper function can then deal with calling malloc in
a single place and setting up the common parameters.  For messages that
require a custom segment size, we'll have to use the old scheme, but
such messages are uncommon.

The previous changes are not required for this scheme to work, but they
do help significantly, as the helper function (Message::IPDLMessage) can
now take four parameters, which ensures that its arguments are passed
solely in registers on Win64 and ARM.  The wins from this change are
also larger than they would be without the previous parts: ~100K on
x86-64 Linux (!)  and ~80K on ARM Android.
2017-09-15 08:06:11 -04:00
Nathan Froyd a697f87d36 Bug 1397823 - part 3 - do a better job setting IPC::Message flags; r=kanru
The current IPC::Message constructor takes a large number of arguments,
three of which--the nesting level, the priority, and the
compression--are almost always constant by virtue of the vast majority
of Message construction being done by auto-generated IPDL code.  But
then we take these constant values into the Message constructor, we
check them for various values, and then based on those values, we
perform a bunch of bitfield operations to store flags based on those
values.  This is wasted work.

Furthermore, for replies to IPDL messages, we'll construct a Message
object, and then call mutating setters on the Message object that will
perform even more bitfield manipulations.  Again, these operations are
performing tasks at runtime that are the same every single time, and use
information we already have at compile time.

The impact of these extra operations is not large, maybe 15-30K of extra
code, depending on platform.  Nonetheless, we can easily make them go
away, and make everything cleaner to boot.

This patch adds a HeaderFlags class that encapsulates all the knowledge
about the various kinds of flags Message needs to know about.  We can
construct HeaderFlags objects with strongly-typed enum arguments for the
various kinds of flags, and the compiler can take care of folding all of
those flags together into a constant when possible (and it is possible
for all the IPDL-generated code that instantiates Messages).  The upshot
is that we do no unnecessary work in the Message constructor itself.  We
can also remove various mutating operations on Message, as those
operations were only there to support post-constructor flag twiddling,
which is no longer necessary.
2017-09-15 08:06:11 -04:00
Nathan Froyd c726125099 Bug 1397823 - part 2 - tidy _generateMessageConstructor enums a little; r=kanru
There's no need to be repeating 'IPC::Message::' prefixes or spreading
around more ExprVar calls than we need here.  Let's try to improve the
signal-to-noise ratio of this code by introducing a helper function to
inject some of the boilerplate for us.
2017-09-15 08:06:11 -04:00
Nathan Froyd f4a054ab8d Bug 1397823 - part 1 - move work into _generateMessageConstructor; r=kanru
_generateMessageConstructor takes a lot of `md.FOO`-style parameters,
which could be derived inside the function by simply passing `md`.
Especially with the upcoming changes to calculate things like reply-ness
of messages, sync-ness, etc, we'd be wanting to pass even more
parameters like `md.FOO`.  So let's just pass `md` in, and then we can
make all the necessary future changes in a single place.
2017-09-15 08:06:11 -04:00
J.C. Jones 554acaea86 Bug 1245527 - Remove NSS U2F SoftToken. r=ttaubert, r=jed
The nsIU2FToken and its implementors are no longer needed; the soft token was
re-implemented into dom/webauthn/U2FSoftTokenManager.cpp during the WebAuthn
implementation. When the dom/u2f/ code changed to the implementation from
WebAuthn, the old synchronous version became dead code.

This patch removes the dead code.

MozReview-Commit-ID: 2yDD0tccgZr

--HG--
extra : rebase_source : 0f14d8de8f62599a41c13aa4d8fc9cdbc1fd79c7
2017-09-05 12:32:42 -07:00
Phil Ringnalda 2dba33e427 Backed out 3 changesets (bug 1245527) for ASan browser-chrome leaks and Android mochitest bustage
Backed out changeset 8ee1f7aebd62 (bug 1245527)
Backed out changeset e6a5de8d1246 (bug 1245527)
Backed out changeset be63e73426b4 (bug 1245527)

MozReview-Commit-ID: AU22LgPh9iB
2017-09-09 00:09:21 -07:00
J.C. Jones 9ade50e63c Bug 1245527 - Remove NSS U2F SoftToken. r=ttaubert, r=jed
The nsIU2FToken and its implementors are no longer needed; the soft token was
re-implemented into dom/webauthn/U2FSoftTokenManager.cpp during the WebAuthn
implementation. When the dom/u2f/ code changed to the implementation from
WebAuthn, the old synchronous version became dead code.

This patch removes the dead code.

MozReview-Commit-ID: 2yDD0tccgZr

--HG--
extra : transplant_source : %B3%96Te%E7%02%08%98%1A%B2%FA%1C%40%C4J%BC%B2%85j%81
2017-09-05 12:32:42 -07:00