Commit Graph

717 Commits

Author SHA1 Message Date
Jean-Yves Avenard
5cf6be0c13 Bug 1554438 - P3. Shutdown threads whenever they exist. r=mattwoodrow
We only attempted to shutdow WinCompositorWindowThread if the WebRender thread hadn't not been started.

However, it is possible that the value of gfxVars::UseWebRender() changed since GPUParent::Init got called.

So don't assume anything, shutdown the thread if it still exists.

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

--HG--
extra : moz-landing-system : lando
2019-05-26 22:24:49 +00:00
Jean-Yves Avenard
022c57caf3 Bug 1550422 - P23. Remove now unused gfxPrefs. r=jrmuizel
And with some tidying some comments and removing stray #include "gfxPrefs.h"

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

--HG--
extra : moz-landing-system : lando
2019-05-26 14:31:53 +00:00
Jean-Yves Avenard
68d537fd60 Bug 1550422 - P22. Remove gfxPref sync with GPU process. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D31467

--HG--
extra : moz-landing-system : lando
2019-05-26 14:31:27 +00:00
Jean-Yves Avenard
23436e1811 Bug 1550422 - P15. Move Skip and Once gfxPrefs to StaticPrefs. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D31259

--HG--
extra : moz-landing-system : lando
2019-05-26 14:30:14 +00:00
Jean-Yves Avenard
04a34db033 Bug 1550422 - P12. Convert Live gfxPrefs into StaticPrefs. r=jrmuizel
gfxPrefs Live preferences are almost identical to StaticPrefs.

We leave aside for now those that set a custom change callback as this feature isn't yet supported in StaticPrefs.

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

--HG--
extra : moz-landing-system : lando
2019-05-26 14:29:42 +00:00
Jean-Yves Avenard
0a1e2b53cb Bug 1550422 - P6. Release object early when error. r=mattwoodrow
No need to keep the object alive.

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

--HG--
extra : moz-landing-system : lando
2019-05-25 10:12:49 +00:00
Jean-Yves Avenard
51808a6f27 Bug 1550422 - P4. Sync preferences when they changed. r=mattwoodrow
This will allow to remove gfxPrefs later. On Windows in particular, the need to decide gfxPrefs vs StaticPrefs for the WMF decoders has caused several bugs in the past.
We will remove the confusion as a consequence.

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

--HG--
extra : moz-landing-system : lando
2019-05-25 10:12:51 +00:00
Jean-Yves Avenard
935f64f3bb Bug 1550422 - P2. add shared pref serializer/deserializer to GPU process. r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D30587

--HG--
extra : moz-landing-system : lando
2019-05-26 02:33:12 +00:00
Jean-Yves Avenard
08bbc4b814 Bug 1554438 - P1. Don't rely on a live pref to determine order of actions. r=sotaro
The value of the pref may change between start and shutdown.

So we shouldn't rely on that pref to determine if we need to shutdown on thread started earlier if that pref was true.

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

--HG--
extra : moz-landing-system : lando
2019-05-26 02:17:55 +00:00
Gurzau Raul
967bc2a754 Backed out 31 changesets (bug 1552643, bug 1550422) for xpcshell crash on a CLOSED TREE.
Backed out changeset e30c1aa75529 (bug 1552643)
Backed out changeset caadcd7e02d3 (bug 1552643)
Backed out changeset aa7086ab09be (bug 1552643)
Backed out changeset 0b4029671710 (bug 1550422)
Backed out changeset a16295296035 (bug 1550422)
Backed out changeset 3b70307c0db5 (bug 1550422)
Backed out changeset 69df7818d4a3 (bug 1550422)
Backed out changeset d98dfc565927 (bug 1550422)
Backed out changeset 6f0997976944 (bug 1550422)
Backed out changeset 0edd264464c2 (bug 1550422)
Backed out changeset 9ea6da7a74ec (bug 1550422)
Backed out changeset f855f9309c8b (bug 1550422)
Backed out changeset 1033546224a7 (bug 1550422)
Backed out changeset ade7384c6186 (bug 1550422)
Backed out changeset 75b04de7e99c (bug 1550422)
Backed out changeset 91c3acdb2454 (bug 1550422)
Backed out changeset 77d2f80257d1 (bug 1550422)
Backed out changeset e0cd10d35327 (bug 1550422)
Backed out changeset 097091082423 (bug 1550422)
Backed out changeset 2f328853c1ab (bug 1550422)
Backed out changeset f92f2cc29cb1 (bug 1550422)
Backed out changeset 6dc82f88333d (bug 1550422)
Backed out changeset c20f66494d69 (bug 1550422)
Backed out changeset 2ba22cddeb6f (bug 1550422)
Backed out changeset 3aa72f89e295 (bug 1550422)
Backed out changeset ab4c4e806977 (bug 1550422)
Backed out changeset 72e5de040dda (bug 1550422)
Backed out changeset 7d3c2d486706 (bug 1550422)
Backed out changeset 132e0b8d8468 (bug 1550422)
Backed out changeset 54c85ac75dd0 (bug 1550422)
Backed out changeset d7ba4a18dd54 (bug 1550422)
2019-05-25 09:07:49 +03:00
Jean-Yves Avenard
074aea57fe Bug 1550422 - P23. Remove now unused gfxPrefs. r=jrmuizel
And with some tidying some comments and removing stray #include "gfxPrefs.h"

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

--HG--
extra : moz-landing-system : lando
2019-05-24 11:37:50 +00:00
Jean-Yves Avenard
50f48b12ca Bug 1550422 - P22. Remove gfxPref sync with GPU process. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D31467

--HG--
extra : moz-landing-system : lando
2019-05-24 11:37:34 +00:00
Jean-Yves Avenard
8d5f292ab5 Bug 1550422 - P15. Move Skip and Once gfxPrefs to StaticPrefs. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D31259

--HG--
extra : moz-landing-system : lando
2019-05-24 11:32:54 +00:00
Jean-Yves Avenard
af5790cf9b Bug 1550422 - P12. Convert Live gfxPrefs into StaticPrefs. r=jrmuizel
gfxPrefs Live preferences are almost identical to StaticPrefs.

We leave aside for now those that set a custom change callback as this feature isn't yet supported in StaticPrefs.

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

--HG--
extra : moz-landing-system : lando
2019-05-25 00:03:32 +00:00
Jean-Yves Avenard
0176b72a88 Bug 1550422 - P6. Release object early when error. r=mattwoodrow
No need to keep the object alive.

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

--HG--
extra : moz-landing-system : lando
2019-05-23 04:13:06 +00:00
Jean-Yves Avenard
74921b190e Bug 1550422 - P4. Sync preferences when they changed. r=mattwoodrow
This will allow to remove gfxPrefs later. On Windows in particular, the need to decide gfxPrefs vs StaticPrefs for the WMF decoders has caused several bugs in the past.
We will remove the confusion as a consequence.

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

--HG--
extra : moz-landing-system : lando
2019-05-23 04:13:06 +00:00
Jean-Yves Avenard
8f7ae177ac Bug 1550422 - P2. add shared pref serializer/deserializer to GPU process. r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D30587

--HG--
extra : moz-landing-system : lando
2019-05-23 04:13:05 +00:00
Gurzau Raul
74c555539e Backed out 28 changesets (bug 1550422) for marionette AssertionError and failing browser_policy_hardware_acceleration.js on a CLOSED TREE.
Backed out changeset 5dd10a365ba9 (bug 1550422)
Backed out changeset 529f5be01ab9 (bug 1550422)
Backed out changeset b6861d3badf8 (bug 1550422)
Backed out changeset 059cff1a3dde (bug 1550422)
Backed out changeset 6ada1116b241 (bug 1550422)
Backed out changeset ca67e8e45262 (bug 1550422)
Backed out changeset a1961a51ae44 (bug 1550422)
Backed out changeset 1c90b9cb3ad4 (bug 1550422)
Backed out changeset 285fa46e4f26 (bug 1550422)
Backed out changeset e2938a444234 (bug 1550422)
Backed out changeset 7a930fc51125 (bug 1550422)
Backed out changeset 898ed02804fe (bug 1550422)
Backed out changeset e1b7abc99ae9 (bug 1550422)
Backed out changeset f781d415cef6 (bug 1550422)
Backed out changeset 2fef10a7cce5 (bug 1550422)
Backed out changeset ea64b4d8d4ff (bug 1550422)
Backed out changeset 86a8ba1b755c (bug 1550422)
Backed out changeset 9c0c9e80f309 (bug 1550422)
Backed out changeset 10c153ddbaea (bug 1550422)
Backed out changeset 60fe635ec2c9 (bug 1550422)
Backed out changeset a38796266b28 (bug 1550422)
Backed out changeset 2db647dcdf1c (bug 1550422)
Backed out changeset 952ddac02972 (bug 1550422)
Backed out changeset ba46b53643ec (bug 1550422)
Backed out changeset ca47ef6c59f7 (bug 1550422)
Backed out changeset f45f471a1a40 (bug 1550422)
Backed out changeset 371b4da5b771 (bug 1550422)
Backed out changeset 02fc78890032 (bug 1550422)
2019-05-23 05:59:44 +03:00
Jean-Yves Avenard
d59781ac33 Bug 1550422 - P23. Remove now unused gfxPrefs. r=jrmuizel
And with some tidying some comments and removing stray #include "gfxPrefs.h"

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

--HG--
extra : moz-landing-system : lando
2019-05-22 12:46:30 +00:00
Jean-Yves Avenard
6e683155ce Bug 1550422 - P22. Remove gfxPref sync with GPU process. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D31467

--HG--
extra : moz-landing-system : lando
2019-05-22 12:46:23 +00:00
Jean-Yves Avenard
2412878bd9 Bug 1550422 - P15. Move Skip and Once gfxPrefs to StaticPrefs. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D31259

--HG--
extra : moz-landing-system : lando
2019-05-22 22:27:37 +00:00
Jean-Yves Avenard
2c0ce1b3ca Bug 1550422 - P12. Convert Live gfxPrefs into StaticPrefs. r=jrmuizel
gfxPrefs Live preferences are almost identical to StaticPrefs.

We leave aside for now those that set a custom change callback as this feature isn't yet supported in StaticPrefs.

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

--HG--
extra : moz-landing-system : lando
2019-05-22 12:43:42 +00:00
Jean-Yves Avenard
822d91dc49 Bug 1550422 - P6. Release object early when error. r=mattwoodrow
No need to keep the object alive.

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

--HG--
extra : moz-landing-system : lando
2019-05-22 12:42:03 +00:00
Jean-Yves Avenard
acbe730c14 Bug 1550422 - P4. Sync preferences when they changed. r=mattwoodrow
This will allow to remove gfxPrefs later. On Windows in particular, the need to decide gfxPrefs vs StaticPrefs for the WMF decoders has caused several bugs in the past.
We will remove the confusion as a consequence.

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

--HG--
extra : moz-landing-system : lando
2019-05-22 12:41:41 +00:00
Jean-Yves Avenard
f21aa87190 Bug 1550422 - P2. add shared pref serializer/deserializer to GPU process. r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D30587

--HG--
extra : moz-landing-system : lando
2019-05-22 13:05:09 +00:00
Nika Layzell
95e8f0306b Bug 1540731 - Part 2: Move toplevel actors to override ActorDestroy, r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D28573

--HG--
extra : moz-landing-system : lando
2019-05-21 17:04:21 +00:00
Martin Stransky
72f8b4fbe9 Bug 1550658 - [Linux/Gtk] Don't use Wayland display in content process when it's disabled in chrome, r=sotaro
Differential Revision: https://phabricator.services.mozilla.com/D30724

--HG--
extra : moz-landing-system : lando
2019-05-13 11:19:41 +00:00
Nicolas Silva
92e099dc31 Bug 1536021 - Gecko side changes. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D30618

--HG--
extra : source : d9c8971de6ad11a2f5c4331775c2d17c98a12b7e
extra : intermediate-source : b0fc3130f34b72fe01230ae0b231131111a9a9f1
2019-05-10 22:13:31 +02:00
Bas Schouten
f70ba6b095 Bug 1549674: Use the CompositorWindow to draw to when using DoubleBuffering. r=sotaro
Differential Revision: https://phabricator.services.mozilla.com/D30569

--HG--
extra : rebase_source : f4cd0faf7117794130c5067bb94f6d1624003570
extra : amend_source : a5778802e9b27c704a1a0a09175b18b38787781e
2019-05-10 00:10:35 +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
Masayuki Nakano
2933c032e7 Bug 1545342 - part 3: Move remaining public enum of nsIPresShell to mozilla namespace in mozilla/PresShellForwards.h and make them enum class r=smaug
This patch moves remaining public `enum` of `nsIPresShell` to `mozilla`
namespace in `mozilla/PresShellForwards.h` and make them `enum class`es.

Additionally, some methods which use the moving `enum`s from `nsIPresShell`
to `PresShell`.

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

--HG--
extra : moz-landing-system : lando
2019-04-25 05:04:23 +00:00
Ryan Hunt
d6509bb237 Bug 1534395 - Rename TabChild to BrowserChild. r=nika
This commit renames TabChild to BrowserChild.

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

--HG--
rename : dom/base/InProcessTabChildMessageManager.cpp => dom/base/InProcessBrowserChildMessageManager.cpp
rename : dom/base/InProcessTabChildMessageManager.h => dom/base/InProcessBrowserChildMessageManager.h
rename : dom/ipc/TabChild.cpp => dom/ipc/BrowserChild.cpp
rename : dom/ipc/TabChild.h => dom/ipc/BrowserChild.h
extra : rebase_source : e7fcfb845a971a2760e73d517e24da18ce2551b5
extra : histedit_source : d1991334ccb107fe56e478865f22fd97b041a317
2019-04-09 17:39:01 -05: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
sotaro
521898a03e Bug 1546298 - Set CompositorManagerParent::sInstance in GPU process r=nical
CompositorManagerParent::sInstance is not set in GPU process. It is necessary to send NotifyWebRenderError message.

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

--HG--
extra : moz-landing-system : lando
2019-04-23 12:21:56 +00:00
Jean-Yves Avenard
11ac9e9cf8 Bug 1540581 - P6. Tidy some C++ declarations in gfx/. r=gerald,jrmuizel
* Remove redundant virtual keywords
* Mark all destructors of inheriting classes as virtual for clarity
* Mark all classes without virtual destructor as final (exposed errors)
* Make destructor virtual where it needed to be (some were missing)
* Replace empty ({}) code declaration in header with = default
* Remove virtual unused methods

I probably missed some, it quickly became a rabbit hole.

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

--HG--
extra : moz-landing-system : lando
2019-04-11 12:36:51 +00:00
Jean-Yves Avenard
e5f2be092a Bug 1540581 - P5. Add ColorSpace info to MacIOSurface. r=mattwoodrow
It would have been nicer and more logical to use a MacIOSurfaceImage to store the colorspace information, however the data passed around is a IOSurface Id via a SurfaceDescriptorMacIOSurface; the original data structure isn't kept; so we must transit the data at the same time as the IOSurface Id.

Also remove unnecessary test (new operator is infallible).

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

--HG--
extra : moz-landing-system : lando
2019-04-11 12:36:31 +00:00
Jean-Yves Avenard
3ae43eb506 Bug 1493898 - P6. Move YUVColorSpace definition in the gfx namespace. r=mattwoodrow.
YUVColorSpace is inseparable from the bit depth as the matrix coefficients to be calculated need the bit depth information.

So let's put the two types together. gfx namespace also makes more sense as that's where we find IntRect, IntSize and other.

The extent of the changes highlight how much similar data structures are duplicated across the code, to the point it's scary.

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

--HG--
extra : moz-landing-system : lando
2019-04-11 12:41:33 +00:00
Masayuki Nakano
9165a150a1 Bug 1540930 - Make nsPresContext use mozilla::PresShell directly rather than via nsIPresShell r=emilio
`nsPresContext` should use `mozilla::PresShell` directly instead of
`nsIPresShell`.  This patch makes it.

Unfortunately, `nsPresContext` and `nsIFrame` have `PresShell()`.  Therefore,
we cannot use `PresShell*` in its methods so that this patch uses `mozilla::`
namespace prefix.

It might be better to rename them as `PresShellPtr()` in another bug.

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

--HG--
extra : moz-landing-system : lando
2019-04-03 12:40:26 +00:00
Jeff Gilbert
758e836333 No bug - clang-format -p gfx 2019-03-29 23:41:48 -07:00
Alex Gaynor
e845354e42 Bug 1539892 - replace FeatureChange and GPUDeviceStatus IPDL unions with native Maybe syntax; r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D25259

--HG--
extra : moz-landing-system : lando
2019-03-28 21:13:53 +00:00
Andrew Osmond
5756f575b9 Bug 1534749 - Handle shutdown races between the compositor thread and IPDL object setup. r=rhunt
When the compositor thread has begun shutdown, it will spin the event
loop for the main thread until the last CompositorThreadHolder reference
has been released. While spinning, new IPDL objects may be attempted to
be created which depend on the compositor thread; we should check to
ensure the compositor thread is still around before proceeding with
creation. These objects include CompositorManagerParent,
ImageBridgeParent, and VRManagerParent. Additionally there is a very
similar bug between the vsync thread and VsyncBridgeChild.

Differential Revision: https://phabricator.services.mozilla.com/D23308
2019-03-26 14:21:56 -04: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
Gurzau Raul
6b94d177d1 Merge mozilla-central to inbound. a=merge CLOSED TREE 2019-03-01 09:28:28 +02:00
Alex Gaynor
f789c68941 Bug 1531476 - replace MaybeFileDesc with FileDescriptor? in IPDL; r=mccr8
Also contains a small amount of unrelated devirtualization of IPC methods.

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

--HG--
extra : moz-landing-system : lando
2019-02-28 21:20:40 +00:00
Ryan Hunt
85ff4bdc33 Bug 1523969 part 8 - Move method definition inline comments to new line in 'gfx/'. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D21108

--HG--
extra : rebase_source : 48a4586f507891f3a2f0f970e9b9a0b15f0f3d61
2019-02-25 16:07:19 -06:00
Daosheng Mu
dfed686aab Bug 1523923 - Cancel VR submit frame tasks when the VRDisplayHost is destroyed. r=kip
Differential Revision: https://phabricator.services.mozilla.com/D20692

--HG--
extra : moz-landing-system : lando
2019-02-22 22:04:00 +00:00
Sylvestre Ledru
41d1d79094 Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

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

--HG--
extra : moz-landing-system : lando
2019-02-15 08:15:57 +00:00
Aaron Klotz
84c01f8930 Bug 1400344: Rename mscom::MainThreadRuntime to mscom::ProcessRuntime and make it aware of Win32k lockdown and of multiple instantiations; r=Jamie
This patch takes care of a bunch of issues and does some cleanup:

* We rename mscom::MainThreadRuntime to mscom::ProcessRuntime, as the latter
  is a more accurate name going forward.
* We make ProcessRuntime aware of the Win32k Lockdown process mitigation
  policy. When Win32k is disabled, we perform process-wide COM initialization
  in the multi-threaded apartment (since we cannot create an STA window).
* We refactor the mscom apartment region stuff to enable the Win32k lockdown
  pieces in ProcessRuntime.
* We move some Gecko-specific stuff into MOZILLA_INTERNAL_API guards so that
  ProcessRuntime is usable outside of xul.dll (I will be needing it for the
  launcher process).
* Another thing that might happen with the launcher process is that, under
  error conditions in the launcher, we create a ProcessRuntime object on a
  background thread for the purposes of telemetry logging, but we also allow
  the main thread to proceed to start as the browser. This could result in a
  scenario where the main thread, as the browser process, is attempting to
  instantiate its ProcessRuntime and ends up racing with the launcher process's
  telemetry thread which has its own ProcessRuntime. To account for this
  situation, we add mutual exclusion to the process-wide initialization code.
  We host this part inside mozglue since that state is shared between both
  firefox.exe and xul.dll.
* We clean up ProcessRuntime::InitializeSecurity by using Vector to set up
  the EXPLICIT_ACCESS entries.
* We remove mscom::MainThreadClientInfo and replace it with a direct call to
  CoGetCallerTID
* We revise all references to this class to use the new name.

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

--HG--
rename : ipc/mscom/COMApartmentRegion.h => ipc/mscom/ApartmentRegion.h
rename : ipc/mscom/MainThreadRuntime.cpp => ipc/mscom/ProcessRuntime.cpp
rename : ipc/mscom/MainThreadRuntime.h => ipc/mscom/ProcessRuntime.h
extra : moz-landing-system : lando
2019-02-14 18:56:20 +00:00
Dorel Luca
67115dd61b Backed out changeset 2d4b8d90cbd7 (bug 1400344) for Spider monkey failrues. CLOSED TREE
--HG--
rename : ipc/mscom/ApartmentRegion.h => ipc/mscom/COMApartmentRegion.h
rename : ipc/mscom/ProcessRuntime.cpp => ipc/mscom/MainThreadRuntime.cpp
rename : ipc/mscom/ProcessRuntime.h => ipc/mscom/MainThreadRuntime.h
2019-02-14 20:45:26 +02:00
Aaron Klotz
0cb12a123a Bug 1400344: Rename mscom::MainThreadRuntime to mscom::ProcessRuntime and make it aware of Win32k lockdown and of multiple instantiations; r=Jamie
This patch takes care of a bunch of issues and does some cleanup:

* We rename mscom::MainThreadRuntime to mscom::ProcessRuntime, as the latter
  is a more accurate name going forward.
* We make ProcessRuntime aware of the Win32k Lockdown process mitigation
  policy. When Win32k is disabled, we perform process-wide COM initialization
  in the multi-threaded apartment (since we cannot create an STA window).
* We refactor the mscom apartment region stuff to enable the Win32k lockdown
  pieces in ProcessRuntime.
* We move some Gecko-specific stuff into MOZILLA_INTERNAL_API guards so that
  ProcessRuntime is usable outside of xul.dll (I will be needing it for the
  launcher process).
* Another thing that might happen with the launcher process is that, under
  error conditions in the launcher, we create a ProcessRuntime object on a
  background thread for the purposes of telemetry logging, but we also allow
  the main thread to proceed to start as the browser. This could result in a
  scenario where the main thread, as the browser process, is attempting to
  instantiate its ProcessRuntime and ends up racing with the launcher process's
  telemetry thread which has its own ProcessRuntime. To account for this
  situation, we add mutual exclusion to the process-wide initialization code.
  We host this part inside mozglue since that state is shared between both
  firefox.exe and xul.dll.
* We clean up ProcessRuntime::InitializeSecurity by using Vector to set up
  the EXPLICIT_ACCESS entries.
* We remove mscom::MainThreadClientInfo and replace it with a direct call to
  CoGetCallerTID
* We revise all references to this class to use the new name.

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

--HG--
rename : ipc/mscom/COMApartmentRegion.h => ipc/mscom/ApartmentRegion.h
rename : ipc/mscom/MainThreadRuntime.cpp => ipc/mscom/ProcessRuntime.cpp
rename : ipc/mscom/MainThreadRuntime.h => ipc/mscom/ProcessRuntime.h
extra : moz-landing-system : lando
2019-02-14 16:40:58 +00:00