mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-09 03:15:11 +00:00
Bug 1365660: Part 5b - Enable compositing for popups with remote content on Windows. r=bas
MozReview-Commit-ID: GzpCBUnVkdY --HG-- extra : rebase_source : bc2a6459e64847b0153e09e392173bac00d97b4e
This commit is contained in:
parent
27a5a12045
commit
a176402b70
@ -41,6 +41,7 @@ const {CustomizableUI} = Cu.import("resource:///modules/CustomizableUI.jsm", {})
|
||||
if (gTestPath.includes("test-oop-extensions")) {
|
||||
SpecialPowers.pushPrefEnv({set: [
|
||||
["extensions.webextensions.remote", true],
|
||||
["layers.popups.compositing.enabled", true],
|
||||
]});
|
||||
// We don't want to reset this at the end of the test, so that we don't have
|
||||
// to spawn a new extension child process for each test unit.
|
||||
|
@ -4843,6 +4843,8 @@ pref("extensions.webextensions.themes.enabled", false);
|
||||
pref("extensions.webextensions.themes.icons.enabled", false);
|
||||
pref("extensions.webextensions.remote", false);
|
||||
|
||||
pref("layers.popups.compositing.enabled", false);
|
||||
|
||||
// Report Site Issue button
|
||||
pref("extensions.webcompat-reporter.newIssueEndpoint", "https://webcompat.com/issues/new");
|
||||
#ifdef NIGHTLY_BUILD
|
||||
|
@ -711,6 +711,11 @@ this.Extension = class extends ExtensionData {
|
||||
if (this.remote && processCount !== 1) {
|
||||
throw new Error("Out-of-process WebExtensions are not supported with multiple child processes");
|
||||
}
|
||||
if (this.remote && !Services.prefs.getBoolPref("layers.popups.compositing.enabled", false)) {
|
||||
Cu.reportError(new Error("Remote extensions should not be enabled without also setting " +
|
||||
"the layers.popups.compositing.enabled preference to true"));
|
||||
}
|
||||
|
||||
// This is filled in the first time an extension child is created.
|
||||
this.parentMessageManager = null;
|
||||
|
||||
|
@ -11,6 +11,7 @@ var {AppConstants} = SpecialPowers.Cu.import("resource://gre/modules/AppConstant
|
||||
if (location.pathname.includes("test-oop-extensions")) {
|
||||
SpecialPowers.pushPrefEnv({set: [
|
||||
["extensions.webextensions.remote", true],
|
||||
["layers.popups.compositing.enabled", true],
|
||||
]});
|
||||
// We don't want to reset this at the end of the test, so that we don't have
|
||||
// to spawn a new extension child process for each test unit.
|
||||
|
@ -369,6 +369,9 @@ static const int32_t kResizableBorderMinSize = 3;
|
||||
// Cached pointer events enabler value, True if pointer events are enabled.
|
||||
static bool gIsPointerEventsEnabled = false;
|
||||
|
||||
// True if we should use compositing for popup widgets.
|
||||
static bool gIsPopupCompositingEnabled = false;
|
||||
|
||||
// We should never really try to accelerate windows bigger than this. In some
|
||||
// cases this might lead to no D3D9 acceleration where we could have had it
|
||||
// but D3D9 does not reliably report when it supports bigger windows. 8192
|
||||
@ -671,6 +674,10 @@ nsWindow::nsWindow()
|
||||
Preferences::AddBoolVarCache(&gIsPointerEventsEnabled,
|
||||
"dom.w3c_pointer_events.enabled",
|
||||
gIsPointerEventsEnabled);
|
||||
|
||||
Preferences::AddBoolVarCache(&gIsPopupCompositingEnabled,
|
||||
"layers.popups.compositing.enabled",
|
||||
gIsPopupCompositingEnabled);
|
||||
} // !sInstanceCount
|
||||
|
||||
mIdleService = nullptr;
|
||||
@ -7169,7 +7176,7 @@ nsWindow::ShouldUseOffMainThreadCompositing()
|
||||
// We don't currently support using an accelerated layer manager with
|
||||
// transparent windows so don't even try. I'm also not sure if we even
|
||||
// want to support this case. See bug 593471
|
||||
if (mTransparencyMode == eTransparencyTransparent) {
|
||||
if (!(HasRemoteContent() && gIsPopupCompositingEnabled) && mTransparencyMode == eTransparencyTransparent) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user