Backed out changeset 2b33eb976812 (bug 1843261) for causing assertion failures in widget/PuppetWidget.cpp CLOSED TREE

This commit is contained in:
Sandor Molnar 2023-07-13 19:00:50 +03:00
Родитель e6c30dd889
Коммит 9c360d52a8
5 изменённых файлов: 39 добавлений и 1 удалений

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

@ -2076,6 +2076,7 @@ pref("privacy.fingerprintingProtection.pbmode", true);
// Start the browser in e10s mode
pref("browser.tabs.remote.autostart", true);
pref("browser.tabs.remote.desktopbehavior", true);
// Run media transport in a separate process?
pref("media.peerconnection.mtransport_process", true);

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

@ -0,0 +1,24 @@
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" class="reftest-wait">
<script>
function boom()
{
document.getElementById("xxx").style.position = "fixed";
document.documentElement.removeAttribute("class");
}
window.addEventListener("load", function(){setTimeout(boom, 30)}, 0);
</script>
<hbox id="xxx" style="position: absolute; display: block;">
<label value="X" />
<menulist>
<menupopup>
<menuitem label="Y" />
</menupopup>
</menulist>
</hbox>
</window>

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

@ -87,6 +87,7 @@ load 331679-3.xml
load 331883-1.html
load 335140-1.html
load 336291-1.html
skip-if(Android) load chrome://reftest/content/crashtests/layout/base/crashtests/336999-1.xhtml
load 337066-1.xhtml
load 337268-1.html
load 337419-1.html

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

@ -1646,6 +1646,11 @@
value: false
mirror: always
- name: browser.tabs.remote.desktopbehavior
type: bool
value: false
mirror: always
- name: browser.tabs.remote.force-paint
type: bool
value: true

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

@ -18,6 +18,8 @@
#include "mozilla/Preferences.h"
#include "mozilla/PresShell.h"
#include "mozilla/SchedulerGroup.h"
#include "mozilla/StaticPrefs_browser.h"
#include "mozilla/StaticPrefs_gfx.h"
#include "mozilla/TextComposition.h"
#include "mozilla/TextEventDispatcher.h"
#include "mozilla/TextEvents.h"
@ -995,7 +997,12 @@ void PuppetWidget::OnMemoryPressure(layers::MemoryPressureReason aWhy) {
bool PuppetWidget::NeedsPaint() {
// e10s popups are handled by the parent process, so never should be painted
// here
MOZ_ASSERT(mWindowType != WindowType::Popup);
if (XRE_IsContentProcess() &&
StaticPrefs::browser_tabs_remote_desktopbehavior() &&
mWindowType == WindowType::Popup) {
NS_WARNING("Trying to paint an e10s popup in the child process!");
return false;
}
return mVisible;
}