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

5639 Коммитов

Автор SHA1 Сообщение Дата
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
Aaron Klotz b1a47abb5e Bug 1570701: Part 2 - Add asynchronous CreateInstance method to mscom::EnsureMTA; r=Jamie
We'd like to offer a way for developers to safely do asynchronous instantiations
of COM objects. This patch adds a static CreateInstance method to mscom::EnsureMTA
that facilitates this under certain conditions (as outlined in the comments).

To help ensure that this is as safe as possible, we return a MozPromise that,
once resolved, produces an AgileReference that may then be passed between
threads, and may then be resolved when a specific thread needs to access the
interface.

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

--HG--
extra : moz-landing-system : lando
2019-09-04 15:36:42 +00:00
Aaron Klotz b36ad40063 Bug 1570701: Part 1 - Add IsClassThreadAwareInprocServer utility function to MSCOM; r=Jamie
We want to ensure that the code being added in part 2 is only used when it is
reasonable and safe to do so. One way to ensure this is to add a check that the
desired CLSID is an in-process, thread-aware server.

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

--HG--
extra : moz-landing-system : lando
2019-09-03 23:58:39 +00:00
Aaron Klotz 10b0ee6e66 Bug 1578490: Use rvalue references and std::move for all closures being passed into mscom::EnsureMTA; r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D44517

--HG--
extra : moz-landing-system : lando
2019-09-03 23:51:15 +00:00
Jed Davis 4be263966f Bug 1578422: MOZ_DIAGNOSTIC_ASSERT when shared memory setup fails in CrashReporterClient::InitSingleton. r=gsvelto
This will help to catch changes that cause a loss of annotations without
affecting Release or Beta.
This also makes CrashReporterClient::InitSingleton return void as the previous
bool was ignored in all cases.

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

--HG--
extra : moz-landing-system : lando
2019-09-04 12:42:41 +00:00
Gijs Kruitbosch e3898f89a1 Bug 1163079 - ensure we fetch app/profile dir information on the main thread in GeckoChildProcessHost r=jld,bryce,haik
Differential Revision: https://phabricator.services.mozilla.com/D42860

--HG--
extra : moz-landing-system : lando
2019-09-04 12:04:52 +00:00
Olli Pettay 42aa5f2e5c Bug 1578394 - MessageTask::GetType should actually return the message type, r=nika
Differential Revision: https://phabricator.services.mozilla.com/D44471

--HG--
extra : moz-landing-system : lando
2019-09-03 14:52:53 +00:00
Matt Woodrow a209298de2 Bug 1556489 - P7. Make LoadInfoArgsToLoadInfo works with LoadInfo class. r=mayhemer
Differential Revision: https://phabricator.services.mozilla.com/D40964
2019-09-03 10:19:11 +10:00
Jean-Yves Avenard e76aa88e15 Bug 1556489 - P4. Add ability to set Document object on LoadInfo. r=mayhemer,ckerschb
This will be required to access the Performance object from future DocumentChannel.

Differential Revision: https://phabricator.services.mozilla.com/D41133
2019-09-03 10:18:58 +10:00
Nathan Froyd 7509b5e08a Bug 1577831 - remove `using namespace std;` from IPC glue code; r=jld
Just some minor prefixing needs to be done to enable this.

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

--HG--
extra : moz-landing-system : lando
2019-08-31 00:00:12 +00:00
Jed Davis bbfc6ecf78 Bug 1574571. r=bobowen
Differential Revision: https://phabricator.services.mozilla.com/D43707

--HG--
extra : moz-landing-system : lando
2019-08-28 18:30:43 +00:00
Barret Rennie b0cbc31990 Bug 1510569 - Implement serializers for nsITransportSecurityInfo, nsIX509Cert, and nsIX509CertList r=froydnj,keeler,mayhemer
As part of the ongoing effort to port the nsIWebProgress events from
RemoteWebProgress / WebProgressChild to BrowserParent / BrowserChild, we need
to (de)serialize the nsITransportSecurityInfo instance across the IPC layer.
The existing code was calling `NS_SerializeToString` which has the overhead of
(a) allocating a buffer and also performing base64 encoding/decoding. This
patch adds `IPC::ParamTraits` implementations for `nsITransportSecurityInfo`,
`nsIX509Certificate`, and `nsIX509CertList` that (de)serializes the params
directly onto and off of the IPC message so that we don't go through the
overhead of allocating and encoding/decoding an additional buffer.

This (de)serialization will address the performance issues present in the
current implementation.

As a side effect, I also make nsITransportSecurityInfo a builtinclass XPCOM
interface, since the existing serialization code was assuming it was, there is
only one implementation, and it is in C++.

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

--HG--
extra : moz-landing-system : lando
2019-08-28 18:55:31 +00:00
Dorel Luca b09fe526aa Backed out 4 changesets (bug 1510569) for build bustage. CLOSED TREE
Backed out changeset d7db6a1935ce (bug 1510569)
Backed out changeset 03b7cf756a7f (bug 1510569)
Backed out changeset fa318eec0e76 (bug 1510569)
Backed out changeset cecb17bd8c03 (bug 1510569)
2019-08-28 21:46:40 +03:00
Barret Rennie 4ab0fd7d38 Bug 1510569 - Implement serializers for nsITransportSecurityInfo, nsIX509Cert, and nsIX509CertList r=froydnj,keeler,mayhemer
As part of the ongoing effort to port the nsIWebProgress events from
RemoteWebProgress / WebProgressChild to BrowserParent / BrowserChild, we need
to (de)serialize the nsITransportSecurityInfo instance across the IPC layer.
The existing code was calling `NS_SerializeToString` which has the overhead of
(a) allocating a buffer and also performing base64 encoding/decoding. This
patch adds `IPC::ParamTraits` implementations for `nsITransportSecurityInfo`,
`nsIX509Certificate`, and `nsIX509CertList` that (de)serializes the params
directly onto and off of the IPC message so that we don't go through the
overhead of allocating and encoding/decoding an additional buffer.

This (de)serialization will address the performance issues present in the
current implementation.

As a side effect, I also make nsITransportSecurityInfo a builtinclass XPCOM
interface, since the existing serialization code was assuming it was, there is
only one implementation, and it is in C++.

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

--HG--
extra : moz-landing-system : lando
2019-08-28 18:00:16 +00:00
Aaron Klotz 6f56f5201f Bug 1576925: Make AgileReference copyable; r=Jamie
Until now, AgileReference was not copyable because it could not handle the
copying of global interface table cookies. By moving the cookie into its own
reference counted object, we can enable copying on the AgileReference.

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

--HG--
extra : moz-landing-system : lando
2019-08-28 15:05:32 +00:00
Aaron Klotz 9b3cf34d2e Bug 1573679: Add IsCurrentThread(Explicit|Implicit)MTA utility functions to mscom; r=Jamie
This patch provides us with utility functions that give us more specific
information about the current thread's MTA if so desired.

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

--HG--
extra : moz-landing-system : lando
2019-08-27 01:48:08 +00:00
Nika Layzell 696b024d27 Bug 1570369 - Part 14: Use IPDL refcounted for PHttpBackgroundChannel, r=mayhemer
Differential Revision: https://phabricator.services.mozilla.com/D40263

--HG--
extra : moz-landing-system : lando
2019-08-16 10:50:08 +00:00
Honza Bambas bf7dde4bf0 Bug 1574882 - Always add `.moz_log` to target logging filenames, r=erahm
Differential Revision: https://phabricator.services.mozilla.com/D42487

--HG--
extra : moz-landing-system : lando
2019-08-23 16:51:40 +00:00
Mike Hommey 66d7fe943e Bug 1575420 - Replace MOZ_WIDGET_TOOLKIT value of "gtk3" with "gtk". r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D42765

--HG--
extra : moz-landing-system : lando
2019-08-21 12:25:42 +00:00
Oana Pop Rus 3223cd3dc2 Backed out 4 changesets (bug 1510569) for causing build bustage on a CLOSED TREE
Backed out changeset eae555c11f25 (bug 1510569)
Backed out changeset 2fb8938d16db (bug 1510569)
Backed out changeset b480af862022 (bug 1510569)
Backed out changeset 642cd6323cdc (bug 1510569)
2019-08-21 22:55:43 +03:00
Barret Rennie d8a4453540 Bug 1510569 - Implement serializers for nsITransportSecurityInfo, nsIX509Cert, and nsIX509CertList r=froydnj,keeler
As part of the ongoing effort to port the nsIWebProgress events from
RemoteWebProgress / WebProgressChild to BrowserParent / BrowserChild, we need
to (de)serialize the nsITransportSecurityInfo instance across the IPC layer.
The existing code was calling `NS_SerializeToString` which has the overhead of
(a) allocating a buffer and also performing base64 encoding/decoding. This
patch adds `IPC::ParamTraits` implementations for `nsITransportSecurityInfo`,
`nsIX509Certificate`, and `nsIX509CertList` that (de)serializes the params
directly onto and off of the IPC message so that we don't go through the
overhead of allocating and encoding/decoding an additional buffer.

This (de)serialization will address the performance issues present in the
current implementation.

As a side effect, I also make nsITransportSecurityInfo a builtinclass XPCOM
interface, since the existing serialization code was assuming it was, there is
only one implementation, and it is in C++.

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

--HG--
extra : moz-landing-system : lando
2019-08-21 18:24:56 +00:00
Ehsan Akhgari e06a6e7ca6 Bug 1572240 - Part 2: Introduce nsIBrowser.contentBlockingAllowListPrincipal; r=baku
This patch also includes some spot fixes for the storage principal
support on the XUL browser element.

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

--HG--
extra : moz-landing-system : lando
2019-08-19 14:38:34 +00:00
David Major 012f1bcd3f Bug 1574573 - Disambiguate a use of `Handle` in XPCShellEnvironment.cpp r=Ehsan
Otherwise it could also refer to Handle from MacTypes.h.

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

--HG--
extra : moz-landing-system : lando
2019-08-17 01:06:19 +00:00
Mike Hommey 06cba876c4 Bug 1574421 - Don't recurse in ipc/contentproc. r=froydnj
We're not using the library it produces anymore. The code is still used,
though, directly #included from browser/app/nsBrowserApp.cpp and
ipc/app/MozillaRuntimeMain.cpp.

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

--HG--
extra : moz-landing-system : lando
2019-08-16 13:11:46 +00:00
Aaron Klotz db904c3cc8 Bug 1574298: Convert mscom::ProcessRuntime to use ProcessCategory enum and matching constructor; r=Jamie
In order to use `mscom::ProcessRuntime` in the maintenance service, we need
`ProcessRuntime` to be able to distinguish between more than just whether or not
the current process is the parent process.

I've added a new `ProcessCategory` enum to track this information, and revised
the constructors so that we now have one that accepts a ProcessCategory.

The `ProcessCategory` constructor is private inside XUL, since the
`GeckoProcessType` variant should always be used in that case.

We also slightly change apartment initialization to depend on the underlying
`ProcessCategory` value.

Finally, I modify the one case where we instantiate a `ProcessRuntime` in the
launcher process to use the new constructor.

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

--HG--
extra : moz-landing-system : lando
2019-08-16 16:06:45 +00:00
Gabriele Svelto 14db2c37b8 Bug 1571711 - Factorize crash handling out of the various process IPC classes r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D41657

--HG--
extra : moz-landing-system : lando
2019-08-15 12:06:51 +00:00
Perry Jiang 200a71c58c Bug 1231213 - Refactor RemoteWorkerChild to handle Service Workers' and Shared Workers' operations and to make its state data/transitions safer. r=asuth
Differential Revision: https://phabricator.services.mozilla.com/D26170

--HG--
extra : moz-landing-system : lando
2019-08-15 17:26:58 +00:00
Perry Jiang 07c822e09b Bug 1231213 - Implement PRemoteWorkerController IPDL protocol and RemoteWorkerController{Parent,Child}. r=asuth
Differential Revision: https://phabricator.services.mozilla.com/D26168

--HG--
extra : moz-landing-system : lando
2019-08-15 17:26:49 +00:00
Perry Jiang 1cbbc0178e Bug 1231213 - IPCStreamSource should not attempt to read from its stream if already closed. r=asuth
Differential Revision: https://phabricator.services.mozilla.com/D26161

--HG--
extra : moz-landing-system : lando
2019-08-15 17:26:05 +00:00
Perry Jiang 4b70b87327 Bug 1231213 - Support IPCStreamSource on the Worker Launcher thread. r=asuth
Differential Revision: https://phabricator.services.mozilla.com/D26160

--HG--
extra : moz-landing-system : lando
2019-08-15 17:25:58 +00:00
Jed Davis d9661aa556 Bug 1479960 - Add unit tests for shared memory freezing. r=froydnj
Also refactor SharedMemoryBasic::SystemProtect to allow testing cases
that are expected to fail.

Depends on D26748

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

--HG--
rename : ipc/moz.build => ipc/gtest/moz.build
extra : moz-landing-system : lando
2019-08-14 22:48:52 +00:00
Jed Davis bc66e27e8c Bug 1536697 - Fix error handling in base::SharedMemory::Map. r=froydnj
If mmap failed, we'd leave the memory_ member variable set to MAP_FAILED,
but everything else in this file checks for nullptr (and only nullptr) to
test if the pointer is valid.

Also, this removes the debug assertion that the mmap succeeded, to allow
writing unit tests where we expect it to fail (e.g., for insufficient
permissions).

Depends on D26747

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

--HG--
extra : moz-landing-system : lando
2019-08-14 22:48:51 +00:00
Jed Davis 150e57c3cc Bug 1426526 - Delete file_util from ex-Chromium IPC source. r=froydnj
Depends on D26746

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

--HG--
extra : moz-landing-system : lando
2019-08-14 22:48:42 +00:00
Jed Davis 0c5b23b47d Bug 1479960 - Add freezing of IPC shared memory. r=froydnj,kmag
This allows writing to shared memory and then making it read-only before
sharing it to other processes, such that a malicious sandboxed process
cannot regain write access.  This is currently available only in the
low-level base::SharedMemory interface.

The freeze operation exposes the common subset of read-only shared
memory that we can implement on all supported OSes: with some APIs
(POSIX shm_open) we can't revoke writeability from existing capabilies,
while for others (Android ashmem) we *must* revoke it.  Thus, we require
that the writeable capability not have been duplicated or shared to
another process, and consume it as part of freezing.  Also, because in
some backends need special handling at creation time, freezeability must
be explicitly requested.

In particular, this doesn't allow giving an untrusted process read-only
access to memory that the original process can write.

Note that on MacOS before 10.12 this will use temporary files in order to
avoid an OS security bug that allows regaining write access; those OS
versions are no longer supported by Apple (but are supported by Firefox).

Depends on D26742

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

--HG--
extra : moz-landing-system : lando
2019-08-14 22:48:34 +00:00
Jed Davis e3f21b94e9 Bug 1479960 - Clean up shared_memory_posix error handling. r=froydnj
This uses RAII to handle error-case cleanup in the POSIX backend for
SharedMemory::Create, to simplify the complexity that will be added to
support freezing.

Depends on D26741

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

--HG--
extra : moz-landing-system : lando
2019-08-14 22:48:31 +00:00
Jed Davis 8b00fa3bea Bug 1479960 - Fix max_size in shared_memory_posix. r=froydnj
The Unix backend for shared memory needs to keep the mapped size to pass
to munmap, while the Windows backend doesn't.  Currently it's reusing the
max_size field, and then zeroing it when it's unmapped, which breaks the
freezing use case.  This patch uses a dedicated field for that.

Depends on D26740

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

--HG--
extra : moz-landing-system : lando
2019-08-14 22:48:29 +00:00
Jed Davis 9a41450b28 Bug 1479960 - Get rid of base::SharedMemory::handle. r=froydnj
Despite the comment saying not to use the "handle" except as an opaque
identifier, it is being used to pass the handle to other OS APIs.  Direct
access to the handle needs to be controlled to make sure freezing is
safe, so this patch replaces that with interfaces that are more explicit
about ownership and lifetime.

Depends on D26739

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

--HG--
extra : moz-landing-system : lando
2019-08-14 22:48:22 +00:00
Jed Davis 4eb2c49d03 Bug 1479960 - Remove SHM_ANON support. r=froydnj
FreeBSD's SHM_ANON is useful for the usual case of shared memory, but it
doesn't support freezing.  It could be re-added later, but for now it's
simplest to remove it (and use named shm instead) while refactoring.

Depends on D26738

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

--HG--
extra : moz-landing-system : lando
2019-08-14 22:48:20 +00:00
Bogdan Tara f326b67e0e Backed out changeset c60ee628dd0e (bug 1571711) for RemoteSandboxBroker related bustages CLOSED TREE 2019-08-15 01:50:01 +03:00
Gabriele Svelto d888c0a6b5 Bug 1571711 - Factorize crash handling out of the various process IPC classes r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D41657

--HG--
extra : moz-landing-system : lando
2019-08-13 21:43:00 +00:00
Dorel Luca 73975f1d28 Backed out 22 changesets (bug 1231213) for Browser-chrome failures on /workers/remoteworkers/RemoteWorkerChild.cpp
Backed out changeset 7e09ad9ceea6 (bug 1231213)
Backed out changeset a275eb0b1a19 (bug 1231213)
Backed out changeset 906b80778539 (bug 1231213)
Backed out changeset 6a40ab6852cb (bug 1231213)
Backed out changeset 216591953f97 (bug 1231213)
Backed out changeset 1de357bc1921 (bug 1231213)
Backed out changeset 8e3fedf6502a (bug 1231213)
Backed out changeset 1b9a8b022fce (bug 1231213)
Backed out changeset 85df1959eb98 (bug 1231213)
Backed out changeset 666bf4260046 (bug 1231213)
Backed out changeset 0b03a19a6dc1 (bug 1231213)
Backed out changeset 11f010e6d6e7 (bug 1231213)
Backed out changeset 6ed55807374f (bug 1231213)
Backed out changeset 395062aef2ec (bug 1231213)
Backed out changeset bacf8499ba7b (bug 1231213)
Backed out changeset bf5d60c7a85a (bug 1231213)
Backed out changeset cd434b787ce6 (bug 1231213)
Backed out changeset ee4565104217 (bug 1231213)
Backed out changeset 581653ef33dd (bug 1231213)
Backed out changeset 2d5628a0e52d (bug 1231213)
Backed out changeset 3449c2eba4c6 (bug 1231213)
Backed out changeset ae221b628899 (bug 1231213)
2019-08-15 01:04:46 +03:00
Perry Jiang 71485c3b89 Bug 1231213 - Refactor RemoteWorkerChild to handle Service Workers' and Shared Workers' operations and to make its state data/transitions safer. r=asuth
Differential Revision: https://phabricator.services.mozilla.com/D26170

--HG--
extra : moz-landing-system : lando
2019-08-14 16:20:06 +00:00
Perry Jiang aa4bed38b8 Bug 1231213 - Implement PRemoteWorkerController IPDL protocol and RemoteWorkerController{Parent,Child}. r=asuth
Differential Revision: https://phabricator.services.mozilla.com/D26168

--HG--
extra : moz-landing-system : lando
2019-08-14 16:19:57 +00:00
Perry Jiang f4a9086902 Bug 1231213 - IPCStreamSource should not attempt to read from its stream if already closed. r=asuth
Differential Revision: https://phabricator.services.mozilla.com/D26161

--HG--
extra : moz-landing-system : lando
2019-08-14 16:19:36 +00:00
Perry Jiang d9c5bda5c4 Bug 1231213 - Support IPCStreamSource on the Worker Launcher thread. r=asuth
Differential Revision: https://phabricator.services.mozilla.com/D26160

--HG--
extra : moz-landing-system : lando
2019-08-14 16:19:34 +00:00
Cosmin Sabou 85a8083871 Backed out 22 changesets (bug 1231213) for build bustages on /mozilla/Attributes.h CLOSED TREE
Backed out changeset 4a45f2c447fd (bug 1231213)
Backed out changeset bcb4d348a847 (bug 1231213)
Backed out changeset ae78ac86cc86 (bug 1231213)
Backed out changeset d681c92a7f05 (bug 1231213)
Backed out changeset 1ac9661e7fb4 (bug 1231213)
Backed out changeset 796c617b989f (bug 1231213)
Backed out changeset c46b31113adb (bug 1231213)
Backed out changeset ea7334da65d9 (bug 1231213)
Backed out changeset 6e9273940bf5 (bug 1231213)
Backed out changeset 7df0e0ff9a82 (bug 1231213)
Backed out changeset 12aba06d169c (bug 1231213)
Backed out changeset e7d6d8d64e8a (bug 1231213)
Backed out changeset 097a29f3ff9a (bug 1231213)
Backed out changeset 1b7169b75760 (bug 1231213)
Backed out changeset 0fd1fd7c3f06 (bug 1231213)
Backed out changeset 3d539eb7faff (bug 1231213)
Backed out changeset 419f9bb7be3c (bug 1231213)
Backed out changeset caede0e4e888 (bug 1231213)
Backed out changeset 778eade5085d (bug 1231213)
Backed out changeset a84b262ff6f8 (bug 1231213)
Backed out changeset 97328368da02 (bug 1231213)
Backed out changeset 9c845d7e3b29 (bug 1231213)
2019-08-14 00:10:48 +03:00
Perry Jiang f3b01231e1 Bug 1231213 - Refactor RemoteWorkerChild to handle Service Workers' and Shared Workers' operations and to make its state data/transitions safer. r=asuth
Differential Revision: https://phabricator.services.mozilla.com/D26170

--HG--
extra : moz-landing-system : lando
2019-08-13 19:57:49 +00:00
Perry Jiang f133e5ec1a Bug 1231213 - Implement PRemoteWorkerController IPDL protocol and RemoteWorkerController{Parent,Child}. r=asuth
Differential Revision: https://phabricator.services.mozilla.com/D26168

--HG--
extra : moz-landing-system : lando
2019-08-13 19:55:59 +00:00
Perry Jiang 08d1f8eb68 Bug 1231213 - IPCStreamSource should not attempt to read from its stream if already closed. r=asuth
Differential Revision: https://phabricator.services.mozilla.com/D26161

--HG--
extra : moz-landing-system : lando
2019-08-13 19:55:19 +00:00
Perry Jiang f4e4a5aedc Bug 1231213 - Support IPCStreamSource on the Worker Launcher thread. r=asuth
Differential Revision: https://phabricator.services.mozilla.com/D26160

--HG--
extra : moz-landing-system : lando
2019-08-13 19:55:12 +00:00