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

4021 Коммитов

Автор SHA1 Сообщение Дата
Iris Hsiao 5822a99946 Backed out changeset f7685ecd789d (bug 1350634) for marionette crashes 2017-04-28 10:43:34 +08:00
Aaron Klotz 4841c23410 Bug 1360371: Backed out changesets c39e811e3a09 and d4e6fb6fb40a as they are no longer necessary; r=backout
MozReview-Commit-ID: 7QSHmDn828Y

--HG--
rename : browser/app/firefox.exe.64.manifest => browser/app/firefox.exe.manifest
rename : ipc/app/plugin-container.exe.64.manifest => ipc/app/plugin-container.exe.manifest
extra : rebase_source : efded7e1b6cb0cd5875ca53bdddae6e18eff7ce9
2017-04-27 16:27:45 -06:00
David Anderson 689908c568 Make PLayerTransaction's constructor async. (bug 1350634, ipc_r=billm, r=mattwoodrow,kats)
PLayerTransaction's constructor was previously synchronous so we could
return a TextureFactoryIdentifier. This is quite reliably available
already in the case of opening a tab, due to RenderFrameParent knowing
which compositor it is attached to, so we can make the constructor
asynchronous.

In the top-level widget case, we add a new synchronous message to find
the TextureFactoryIdentifier.

--HG--
extra : rebase_source : 4b29b859aa5745fabe3db0fe68742328fc0af175
2017-04-26 10:32:57 -07:00
Michael Layzell 8b7ba021a4 Bug 1339537 - Part 6: Pass std::function values tree by const reference instead of by value, r=ehsan
MozReview-Commit-ID: PVAqU2DPs2
2017-04-27 12:44:57 -04:00
Wes Kocher c90904f9bf Merge inbound to central, a=merge CLOSED TREE
MozReview-Commit-ID: 9HQViJrDT6S
2017-04-26 17:30:31 -07:00
Nathan Froyd 8bbd081c88 Bug 1359415 - move threadsafety checks inside nsAutoOwningThread; r=erahm
This change moves most of the logic for the threadsafety check into
nsAutoOwningThread, rather than having part of the logic live in
nsAutoOwningThread and part of the logic live in nsDebug.h.  Changing
this also forces us to clean up a couple of places that replicated the
logic that lived in nsDebug.h as well.
2017-04-26 11:41:32 -04:00
Nicholas Nethercote bc1d6a21a2 Bug 1358320 - Make TimeStamp::ProcessCreation()'s outparam optional. r=gsvelto.
TimeStamp::ProcessCreations()'s aIsInconsistent outparam is ignored by the
majority of its caller. This patch makes it optional. Notably, this makes
ProcessCreation() easier to use in a constructor's initializer list.
2017-04-26 14:55:54 +10:00
Bill McCloskey 001f17e543 Bug 1334097 - Avoid busy waiting caused by MaybeUndeferIncall (r=aklotz)
In order to avoid a busy wait where we defer and then immediately un-defer a message,
we need to ensure that we only un-defer a message if it's actually ready to be processed.
This patch uses the same condition in MaybeUndeferIncall as we use in
DispatchInterruptMessage.

MozReview-Commit-ID: L2xZfSO0Yrk
2017-04-25 15:45:58 -07:00
Ehsan Akhgari fff6e310e9 Bug 1356836 - Reduce the hashtable lookup cost in principal serialization/deserialization; r=billm 2017-04-25 11:04:13 -04:00
Kan-Ru Chen 6c2259f717 Bug 1358697 - Don't capture the Promise raw pointer and make static analysis happy. r=billm
MozReview-Commit-ID: 7lMVMcNBDHJ

--HG--
extra : rebase_source : 3526408144e9d0486e0c212151682bc98275c8e5
2017-04-22 10:38:52 +08:00
David Parks 532fe74f04 Bug 1347710 - Enable sandbox protections for the Windows GPU process. r=bobowen
The sandbox works with levels.  The GPU sandbox level defaults to 1 in all builds.  It is controlled by security.sandbox.gpu.level.
2017-04-24 09:46:09 -07:00
Andrea Marchesini db52df9bd7 Bug 1353629 - PBlob refactoring - part 6 - IPCBlobInputStream serialization, r=smaug
IPCBlobInputStream must implement nsIIPCSerializableInputStream interface.
When this is done, the child sends the internal ID of the IPCBlobInputStream to
the parent.
2017-04-24 12:09:40 +02:00
Andrea Marchesini db0019c058 Bug 1353629 - PBlob refactoring - part 4 - IPCBlobInputStream, r=smaug
IPCBlobInputStream is a new type of nsIInputStream that is used only in content
process when a Blob is sent from parent to child. This inputStream is for now,
just cloneable.

When the parent process sends a Blob to a content process, it has the Blob and
its inputStream. With its inputStream it creates a IPCBlobInputStreamParent
actor. This actor keeps the inputStream alive for following uses (not part of
this patch).

On the child side we will have, of course, a IPCBlobInputStreamChild actor.
This actor is able to create a IPCBlobInputStream when CreateStream() is
called.  This means that 1 IPCBlobInputStreamChild can manage multiple
IPCBlobInputStreams each time one of them is cloned. When the last one of this
stream is released, the child actor sends a __delete__ request to the parent
side; the parent will be deleted, and the original inputStream, on the parent
side, will be released as well.

IPCBlobInputStream is a special inputStream because each method, except for
Available() fails. Basically, this inputStream cannot be used on the content
process for nothing else than knowing the size of the original stream.

In the following patches, I'll introduce an async way to use it.
2017-04-24 12:09:40 +02:00
Andrea Marchesini 4f87431fb2 Bug 1353629 - PBlob refactoring - part 2 - IPCStream must be available on PBackground, r=smaug
In order to use IPCBlob in any IPC protocol, IPCStream must be available also
on PBackground.
2017-04-24 12:09:40 +02:00
Andrea Marchesini f3bd4e6da7 Bug 1353629 - PBlob refactoring - part 1 - AutoIPCStream should not have a copy CTOR, r=smaug 2017-04-24 12:09:40 +02:00
Andrea Marchesini 774e894f0c Bug 1353475 - Implement AutoIPCStream with delayed start - part 2 - delayed start, r=smaug 2017-04-24 12:09:39 +02:00
Andrea Marchesini 1e2c2d6d29 Bug 1353475 - Implement AutoIPCStream with delayed start - part 1 - changing the IPDL dictionaries for streams, r=smaug 2017-04-24 12:09:39 +02:00
Tom Tromey 99f4608655 Bug 1334278 - change mozilla::Smprintf to return a UniquePtr; r=froydnj
Change mozilla::Smprintf and friends to return a UniquePtr, rather than
relying on manual memory management.  (Though after this patch there are
still a handful of spots needing SmprintfFree.)

MozReview-Commit-ID: COa4nzIX5qa

--HG--
extra : rebase_source : ab4a11b4d2e758099bd0794d5c25d799a7e42680
2017-03-03 08:17:27 -07:00
Carsten "Tomcat" Book 3b4328e578 Merge mozilla-central to autoland
--HG--
extra : rebase_source : bc4cd926477775ac802f400a79f553034d569a18
2017-04-26 09:08:31 +02:00
Samael Wang d5dd0ed263 Bug 1337064 - Remove sync protocol PContent::AllocateTabId. r=kanru
Remove sync protocol AllocateTabId. Instead we generate tabId in
each process with nsContentUtils::GenerateTabId, and register
RemoteFrameInfo in parent process. If the tab id was generated from
a content process, it's sent parent through either PBrowserConstructor
or PContent::CreateChildProcess.

MozReview-Commit-ID: D3W2fK9eCNH

--HG--
extra : rebase_source : 1913f8f586537be1c82a70a19cc8c6351671d0df
2017-04-05 18:42:00 +08:00
Wes Kocher cb8ce82cca Merge inbound to m-c a=merge 2017-04-19 17:10:04 -07:00
Bill McCloskey f55aa04abd Bug 1355178 - Don't call MessageChannel::ProcessPendingRequests if we don't expect it to do anything (r=kanru)
MozReview-Commit-ID: BJBBkhaNKki
2017-04-19 11:51:14 -07:00
Bill McCloskey fb57ac5b38 Bug 1355178 - Remove unnecessary refcounting from MessageChannel::mPending (r=froydnj)
MozReview-Commit-ID: DWEF1ObNmMa
2017-04-19 11:51:14 -07:00
Petr Sumbera df0c2aae53 Bug 1357451 - Add OS_SOLARIS ifdefs to various IPC code. r=kchen
--HG--
extra : rebase_source : 2720ac11f122f267408c2d01ab13ffe0a8181df2
2017-04-18 08:53:59 -07:00
Matt Woodrow d2f04fbaa8 Bug 1341496 - Part 3: Make CrossProcessSemaphore allocation fallible. r=billm
--HG--
extra : rebase_source : 318d2c835675547acf667ecfb20bb595ea86e59f
2017-04-19 15:39:11 +12:00
Kan-Ru Chen ffab50c6f8 Bug 1313200 - Allow IPC messages to async return MozPromises. r=billm,jwwang
This patch implements async returns for IPDL using MozPromises. There
are following changes:

* Initialize AbstractThreads for MessageLoops
* Record promises and their reject functions
  * When async message returns, call their resolve functions
  * When send error or channel close, call their reject functions
* Implement "unresolved-ipc-promises" count for about:memory
* Test cases

See bug attachment for generated code from test cases

MozReview-Commit-ID: 7xmg8gwDGaW

--HG--
rename : ipc/ipdl/test/ipdl/error/AsyncReturn.ipdl => ipc/ipdl/test/ipdl/ok/AsyncReturn.ipdl
extra : rebase_source : 9a5821d6c0e5f7152b8152a17a409b94e8258dc3
2017-03-16 17:36:15 +08:00
Carsten "Tomcat" Book 7bcdfe36bc Merge mozilla-central to autoland 2017-04-19 10:57:24 +02:00
Bill McCloskey a5aa8f775e Bug 1356365 - Make MessageChannel::WillDestroyCurrentMessageLoop assertion DEBUG-only (r=mccr8)
MozReview-Commit-ID: CDFEu08a9mv
2017-04-18 15:12:39 -07:00
Mike Hommey 33a7e408ce Bug 1357323 - Remove the gonk code that was referenced by the build system. r=gps
--HG--
extra : rebase_source : 1d30ebcbdbcf596c944e1eec981f85db341485e5
2017-04-18 17:46:39 +09:00
Mike Hommey 34e619d1c1 Bug 1357323 - Remove support for gonk in the build system. r=gps
Everything depending on the widget being gonk can go away, as well as
everything depending on MOZ_AUDIO_CHANNEL_MANAGER, which was only
defined on gonk builds under b2g/ (which goes away in bug 1357326).

--HG--
extra : rebase_source : 9f0aeeb7eea8417fa4e06d662d566d67ecaf2a24
2017-04-18 16:56:09 +09:00
Andrew Osmond 5c88ddfaa2 Bug 1356289 - Part 1. Make SharedMemory::SetHandle accept an access rights parameter. r=billm 2017-04-18 12:24:58 -04:00
Aaron Klotz 4978c3cc95 Bug 1322532: Platform a11y changes to enable handler-based live regions; r=tbsaunde
MozReview-Commit-ID: nNPvBy3ZGO

--HG--
extra : rebase_source : 8c9f9e7a07e1e2268d922574273a3d65919513a7
2017-04-13 20:35:32 -06:00
Aaron Klotz 6302f1af4a Bug 1322532: Add sync text event to PDocAccessible; r=tbsaunde, r=billm
MozReview-Commit-ID: AFZMYghoOHe

--HG--
extra : rebase_source : 2364cf4a5ecaaceda151e16df170aebb77ae55e9
2017-04-13 17:08:42 -06:00
Masatoshi Kimura ea4c0cc826 Bug 1354020 - Use per-monitor v2 on Creators Update. r=jfkthame
MozReview-Commit-ID: FiO3DupULFu

--HG--
extra : rebase_source : f2d2018cb549a07f89e18a42f842886a7ef9c063
2017-04-07 07:14:14 +09:00
Masatoshi Kimura be8a77b3bf Bug 1354785 - Add dependency on manifest files to res files. r=gps
Before bug 1348069, MS manifest tool was used to embed manifest files.[1]

The Makefile used to use EXTRA_DEPS to invoke the manifest tool when a manifest files is changed. But it is no longer effective because the manifest file namepattern is no longer $@.exe.manifest.

Now manifest files will be embedded via .res files. So we have to rebuild .res files to update embedded manifests.

[1] https://dxr.mozilla.org/mozilla-central/rev/35c7be9c2db288d1d449e3cc586c4164d642c5fd/config/rules.mk#642-655

MozReview-Commit-ID: 5QiXVeImZdY

--HG--
extra : rebase_source : 9e321e30ecd389ef0aa21e438d321e79edf0a009
2017-04-08 16:59:08 +09:00
raouldc b4261cfb61 Bug 1352576 - Removed all instances of NPN_GetAuthenticationInfo from the codebase r=bsmedberg
NPN_GetAuthenticationInfo is an NPAPI API we implemented for Java and since we only support Flash we no longer need it.

MozReview-Commit-ID: HxNn91QeaMB

--HG--
extra : rebase_source : 016320ce93bde525dbf1b74f50f8b60d141d31cd
2017-04-13 23:57:08 +12:00
Wes Kocher 20dd5f52c2 Merge m-c to autoland, a=merge 2017-04-13 17:35:34 -07:00
Bill McCloskey 5c609727dc Bug 1354249 - Use same TabGroup as original tab for print preview (r=mystor)
MozReview-Commit-ID: 5wmjLgq2j5m
2017-04-12 20:17:50 -07:00
Wes Kocher 2986c817dc Merge autoland to central, a=merge CLOSED TREE 2017-04-12 15:13:30 -07:00
Petr Sumbera 0e17adee7c Bug 1354510 - Firefox build should recognize Solaris. r=glandium
--HG--
extra : rebase_source : 2bec2709a26a5295e723b0ecc424b0d648715bb7
2017-04-11 00:01:32 -07:00
Bill McCloskey 80a625cd1d Bug 1349699 - Assert that the Chromium channel is closed when MessageLoop is destroyed (r=dvander)
MozReview-Commit-ID: I7HyjVanlxJ
2017-04-11 13:15:09 -07:00
Bill McCloskey cd7be5521e Bug 1349699 - Assert when destroying a MessageLoop that a live MessageChannel is attached to (r=dvander)
MozReview-Commit-ID: GGr5UqJl3ui
2017-04-11 13:15:07 -07:00
Bill McCloskey 5203251704 Bug 1333968 - Add GetSpecificMessageEventTarget method to change the event target for specific IPC messages (r=dvander)
MozReview-Commit-ID: EIyfNgKWCRo
2017-04-11 12:59:13 -07:00
Eric Rahm b99305007f Bug 1351910 - Build more files as unified in ipc/glue. r=billm
One file was excluded for using plarena which it did not. The other was
excluded for "clashes with strdup," it does not use strdup.

MozReview-Commit-ID: 5X5H9S4j903
2017-04-10 14:50:00 -07:00
Kartikaya Gupta 5e82717849 Bug 1350638 - Remove the GetCompositorOptions IPC message as it is no longer used. r=dvander
MozReview-Commit-ID: 18uiWGA9eJy

--HG--
extra : rebase_source : 217697a0e63d8c02d78de894ff7f33850924e50c
2017-04-09 17:31:59 -04:00
Ryan VanderMeulen 3b1ac29a33 Backed out changeset 6933cdfb5186 (bug 1351910) for OSX bustage. 2017-04-05 21:26:47 -04:00
Eric Rahm 3b034fca72 Bug 1351910 - Build more files as unified in ipc/glue. r=billm
One file was excluded for using plarena which it did not. The other was
excluded for "clashes with strdup," it does not use strdup.

MozReview-Commit-ID: 5X5H9S4j903
2017-04-05 18:01:45 -07:00
Andrew McCreight 09e3d93838 Bug 1356392 - Use a release assert in EnumSerializer::Write. r=kanru
MozReview-Commit-ID: JqnwuT3nn9q

--HG--
extra : rebase_source : ddee6c5cb6eb2db2260f946441aed10af341c966
2017-04-13 13:55:10 -07:00
Aaron Klotz b836337e81 Bug 1303060: Changes to a11y to enable the serving of a COM handler; r=tbsaunde
MozReview-Commit-ID: GTQF3x1pBtX

A general outline of the COM handler (a.k.a. the "smart proxy"):

COM handlers are pieces of code that are loaded by the COM runtime along with
a proxy and are layered above that proxy. This enables the COM handler to
interpose itself between the caller and the proxy, thus providing the
opportunity for the handler to manipulate an interface's method calls before
those calls reach the proxy.

Handlers are regular COM components that live in DLLs and are declared in the
Windows registry. In order to allow for the specifying of a handler (and an
optional payload to be sent with the proxy), the mscom library allows its
clients to specify an implementation of the IHandlerProvider interface.

IHandlerProvider consists of 5 functions:

* GetHandler returns the CLSID of the component that should be loaded into
  the COM client's process. If GetHandler returns a failure code, then no
  handler is loaded.
* GetHandlerPayloadSize and WriteHandlerPayload are for obtaining the payload
  data. These calls are made on a background thread but need to do their work
  on the main thread. We declare the payload struct in IDL. MIDL generates two
  functions, IA2Payload_Encode and IA2Payload_Decode, which are used by
  mscom::StructToStream to read and write that struct to and from buffers.
* The a11y payload struct also includes an interface, IGeckoBackChannel, that
  allows the handler to communicate directly with Gecko. IGeckoBackChannel
  currently provides two methods: one to allow the handler to request fresh
  cache information, and the other to provide Gecko with its IHandlerControl
  interface.
* MarshalAs accepts an IID that specifies the interface that is about to be
  proxied. We may want to send a more sophisticated proxy than the one that
  is requested. The desired IID is returned by this function. In the case of
  a11y interfaces, we should always return IAccessible2_3 if we are asked for
  one of its parent interfaces. This allows us to eliminate round trips to
  resolve more sophisticated interfaces later on.
* NewInstance, which is needed to ensure that all descendent proxies are also
  imbued with the same handler code.

The main focus of this patch is as follows:

1. Provide an implementation of the IHandlerProvider interface;
2. Populate the handler payload (ie, the cache) with data;
3. Modify CreateHolderFromAccessible to specify the HandlerPayload object;
4. Receive the IHandlerControl interface from the handler DLL and move it
   into the chrome process.

Some more information about IHandlerControl:

There is one IHandlerControl per handler DLL instance. It is the interface that
we call in Gecko when we need to dispatch an event to the handler. In order to
ensure that events are dispatched in the correct order, we need to dispatch
those events from the chrome main thread so that they occur in sequential order
with calls to NotifyWinEvent.

--HG--
extra : rebase_source : acb44dead7cc5488424720e1bf58862b7b30374f
2017-04-04 15:23:55 -06:00
Aaron Klotz bf041cb767 Bug 1303060: Simplifications to mscom handler code; r=jimm
MozReview-Commit-ID: 5YEVtL8gw6S

--HG--
rename : ipc/mscom/IHandlerPayload.h => ipc/mscom/IHandlerProvider.h
extra : rebase_source : 167f69b591f55228859f3941903f776208f22067
2017-03-27 18:41:06 -06:00