Bug 1667116 - Request to stay unredirected on WR/OGL, too. r=stransky

Until bug 1617002 Firefox would unintendedly not get unredirected on X11
when used with WR and OpenGL as it didn't fullfill the requirements -
not being transparent.

Now that this is fixed, fullscreen unredirection can happen on certain
compositors. For the basic compositor we already explicitely ask to not
get unredirected - do that for all backends.

Also adapt tests accordingly.

Differential Revision: https://phabricator.services.mozilla.com/D92180
This commit is contained in:
Robert Mader 2020-10-05 02:19:10 +00:00
Родитель 9177c6da0b
Коммит 700c9a4115
2 изменённых файлов: 13 добавлений и 19 удалений

Просмотреть файл

@ -20,20 +20,14 @@ const startupPhases = {
// to run before we have even selected the user profile.
"before profile selection": [],
"before opening first browser window": [
{
name: "PLayerTransaction::Msg_GetTextureFactoryIdentifier",
condition: LINUX,
maxCount: 1,
},
],
"before opening first browser window": [],
// We reach this phase right after showing the first browser window.
// This means that any I/O at this point delayed first paint.
"before first paint": [
{
name: "PLayerTransaction::Msg_GetTextureFactoryIdentifier",
condition: MAC,
condition: MAC || LINUX,
maxCount: 1,
},
{
@ -230,7 +224,7 @@ const startupPhases = {
{
// bug 1554234
name: "PLayerTransaction::Msg_GetTextureFactoryIdentifier",
condition: WIN,
condition: WIN || LINUX,
ignoreIfUnused: true, // intermittently occurs in "before handling user events"
maxCount: 1,
},

Просмотреть файл

@ -7959,17 +7959,17 @@ void nsWindow::SetProgress(unsigned long progressPercent) {
#ifdef MOZ_X11
void nsWindow::SetCompositorHint(WindowComposeRequest aState) {
if (mIsX11Display &&
(!GetLayerManager() ||
GetLayerManager()->GetBackendType() == LayersBackend::LAYERS_BASIC)) {
gulong value = aState;
GdkAtom cardinal_atom = gdk_x11_xatom_to_atom(XA_CARDINAL);
gdk_property_change(gtk_widget_get_window(mShell),
gdk_atom_intern("_NET_WM_BYPASS_COMPOSITOR", FALSE),
cardinal_atom,
32, // format
GDK_PROP_MODE_REPLACE, (guchar*)&value, 1);
if (!mIsX11Display) {
return;
}
gulong value = aState;
GdkAtom cardinal_atom = gdk_x11_xatom_to_atom(XA_CARDINAL);
gdk_property_change(gtk_widget_get_window(mShell),
gdk_atom_intern("_NET_WM_BYPASS_COMPOSITOR", FALSE),
cardinal_atom,
32, // format
GDK_PROP_MODE_REPLACE, (guchar*)&value, 1);
}
#endif