Commit Graph

20 Commits

Author SHA1 Message Date
Michael Smith
5287dc238a Bug 1373739 - Make headless compositing Windows-compatible, in addition to Linux. r=dvander
To make the HeadlessCompositorWidget work under Windows as well as Linux, I had
to change the way that I hooked it into the existing CompositorWidget system.
Under GTK, the CompositorWidgetInitData and CompositorWidgetDelegate types
provided the information needed by the headless compositor widget already (the
widget client size). On Windows, however, the definitions of these types
differ, and the client size information is simply retrieved from the platform
APIs when needed.

After this patch, CompositorWidgetDelegate is renamed to
PlatformCompositorWidgetDelegate, and a new base class called
CompositorWidgetDelegate is added with "AsPlatformSpecificDelegate()" and
"AsHeadlessCompositorWidget()" methods. In non-headless mode, widgets use
AsPlatformSpecificDelegate() to access the Windows- and GTK-specific delegate
APIs. In headless mode, AsHeadlessCompositorWidget() is used to access the
singular CompositorWidget implementation for headless. Meanwhile, the
CompositorWidgetInitData IPDL type is made into a union which always contains a
headless-specific HeadlessCompositorWidgetInitData struct and under GTK and
Windows also contains an {X11,Win}CompositorWidgetInitData struct.

This also includes a small patch to ensure that the GPU process and
hardware-accelerated compositing are always disabled under headless mode. These
features weren't activated by default in the Linux environments I tested in, but
did end up activating (and then promptly crashing Firefox) when I tested on
Windows.

MozReview-Commit-ID: CocPoHBDV7H
2017-07-06 17:45:34 -07:00
Stephen A Pohl
c666909148 Bug 1356317: Avoid intermittent debug assertions in browser chrome tests when creation of draw targets fails. r=jimm 2017-07-04 13:45:18 -05:00
David Anderson
0eb14ec2aa Add IsHidden to CompositorWidget. (bug 1365879 part 10, r=rhunt) 2017-06-20 01:17:19 -07:00
Tracy Walker
22bc0f22f1 Bug 1326292 - Add null check of drawTarget in WinCompositorWidget.cpp, to avoid crash. r=jimm 2017-02-08 09:06:49 -06:00
Kartikaya Gupta
6813d1843d Bug 1330037 - Propagate the CompositorOptions to all CompositorWidget instances. r=dvander
MozReview-Commit-ID: DFeeo2WNmhZ
2017-01-12 17:29:42 -05:00
David Anderson
0a66a7a258 Don't access gfxPlatform from WinCompositorWidget. (bug 1316481, r=mattwoodrow) 2016-11-09 20:49:09 -08:00
Kartikaya Gupta
0c8045c0a3 Bug 1315706 - Pass a wrapper struct to various CompositorWidget functions. r=dvander
This is the first step in using these functions without having a
LayerManagerComposite at all.

MozReview-Commit-ID: 2zkuB7Ox4Ut
2016-11-07 21:16:52 -05:00
Sotaro Ikeda
85f2d33a46 Bug 1259571 - Reduce tearing with basic layers on Windows r=dvander 2016-08-23 15:18:55 -07:00
Carsten "Tomcat" Book
52c300009e Backed out changeset 02d76f158f3d (bug 1259571) for talos xperf regressions 2016-08-08 11:53:51 +02:00
Sotaro Ikeda
b1f37d42eb Bug 1259571 - Try tearing-free drawing with GDI r=dvander,mattwoodrow 2016-08-07 23:54:12 -07:00
Jeff Muizelaar
24788822e8 Bug 1289236. Remove ResizeTransparentWindow. r=dvander
We can just recreate the surface when needed.
2016-07-29 09:29:35 -04:00
David Anderson
90d4a57c72 Implement vsync notification for remote compositors. (bug 1285625 part 3, r=mchang) 2016-07-19 11:56:07 -07:00
David Anderson
0fe9776024 Don't expose CompositorVsyncDispatcher from CompositorWidget. (bug 1285625 part 2, r=mchang) 2016-07-19 11:56:07 -07:00
David Anderson
add6c95120 Extract a delegate interface out of WinCompositorWidget. (bug 1281998 part 6, r=jimm) 2016-07-01 01:15:16 -07:00
David Anderson
c70cd6b6e2 Move CompositorWidget construction out of nsIWidget. (bug 1281998 part 5, r=jimm) 2016-07-01 01:15:16 -07:00
David Anderson
19ade82818 Rename CompositorWidgetProxy files to CompositorWidget. (bug 1281998 part 2, r=jimm) 2016-07-01 01:15:16 -07:00
Phil Ringnalda
89deea28e2 Back out 7 changesets (bug 1281998) for Windows Marionette crashes
Backed out changeset d806fac2c856 (bug 1281998)
Backed out changeset b8d4fedfd7eb (bug 1281998)
Backed out changeset a72929c0c3ec (bug 1281998)
Backed out changeset 74198f88fa37 (bug 1281998)
Backed out changeset 54a0e73f6906 (bug 1281998)
Backed out changeset 99d1da1293b7 (bug 1281998)
Backed out changeset a5a9585754b1 (bug 1281998)
2016-06-29 19:35:24 -07:00
David Anderson
eb66f8ed62 Extract a delegate interface out of WinCompositorWidget. (bug 1281998 part 6, r=jimm) 2016-06-29 16:47:23 -04:00
David Anderson
27793b9f88 Move CompositorWidget construction out of nsIWidget. (bug 1281998 part 5, r=jimm) 2016-06-29 16:47:22 -04:00
David Anderson
4a6d8ea9f0 Rename CompositorWidgetProxy files to CompositorWidget. (bug 1281998 part 2, r=jimm) 2016-06-29 16:47:22 -04:00