Backed out 4 changesets (bug 1742797, bug 1748808) for causing crashes at mozilla::layers::APZCTreeManagerParent::RecvUpdateZoomConstraints.
Backed out changeset 23f2a369a5a7 (bug 1748808) Backed out changeset 5b0edd03f698 (bug 1742797) Backed out changeset 8ed69c2c1d49 (bug 1742797) Backed out changeset 18e11e7ea9d0 (bug 1742797)
This commit is contained in:
@@ -30,9 +30,6 @@ skip-if =
|
||||
debug
|
||||
(os == 'win') # Win32 because of intermittent OOM failures, bug 1533141 for aarch64, Bug 1775626
|
||||
(os == 'linux' && socketprocess_networking) # Bug 1382809, bug 1369959
|
||||
[browser_panel_vsync.js]
|
||||
support-files =
|
||||
!/browser/components/downloads/test/browser/head.js
|
||||
[browser_preferences_usage.js]
|
||||
https_first_disabled = true
|
||||
skip-if =
|
||||
|
||||
@@ -1,70 +0,0 @@
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
/* import-globals-from ../../../../components/downloads/test/browser/head.js */
|
||||
|
||||
"use strict";
|
||||
|
||||
Services.scriptloader.loadSubScript(
|
||||
"chrome://mochitests/content/browser/browser/components/downloads/test/browser/head.js",
|
||||
this
|
||||
);
|
||||
|
||||
add_task(
|
||||
async function test_opening_panel_and_closing_should_not_leave_vsync() {
|
||||
await SpecialPowers.pushPrefEnv({
|
||||
set: [["browser.download.autohideButton", false]],
|
||||
});
|
||||
await promiseButtonShown("downloads-button");
|
||||
|
||||
const downloadsButton = document.getElementById("downloads-button");
|
||||
const shownPromise = promisePanelOpened();
|
||||
EventUtils.synthesizeNativeMouseEvent({
|
||||
type: "click",
|
||||
target: downloadsButton,
|
||||
atCenter: true,
|
||||
});
|
||||
await shownPromise;
|
||||
|
||||
is(DownloadsPanel.panel.state, "open", "Check that panel state is 'open'");
|
||||
|
||||
await TestUtils.waitForCondition(
|
||||
() => !ChromeUtils.vsyncEnabled(),
|
||||
"Make sure vsync disabled"
|
||||
);
|
||||
// Should not already be using vsync
|
||||
ok(!ChromeUtils.vsyncEnabled(), "vsync should be off initially");
|
||||
|
||||
if (
|
||||
AppConstants.platform == "linux" &&
|
||||
DownloadsPanel.panel.state != "open"
|
||||
) {
|
||||
// Panels sometime receive spurious popuphiding events on Linux.
|
||||
// Given the main target of this test is Windows, avoid causing
|
||||
// intermittent failures and just make the test return early.
|
||||
todo(
|
||||
false,
|
||||
"panel should still be 'open', current state: " +
|
||||
DownloadsPanel.panel.state
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
const hiddenPromise = BrowserTestUtils.waitForEvent(
|
||||
DownloadsPanel.panel,
|
||||
"popuphidden"
|
||||
);
|
||||
EventUtils.synthesizeKey("VK_ESCAPE", {}, window);
|
||||
await hiddenPromise;
|
||||
await TestUtils.waitForCondition(
|
||||
() => !ChromeUtils.vsyncEnabled(),
|
||||
"wait for vsync to be disabled again"
|
||||
);
|
||||
|
||||
ok(!ChromeUtils.vsyncEnabled(), "vsync should still be off");
|
||||
is(
|
||||
DownloadsPanel.panel.state,
|
||||
"closed",
|
||||
"Check that panel state is 'closed'"
|
||||
);
|
||||
}
|
||||
);
|
||||
@@ -120,21 +120,6 @@ add_task(async function() {
|
||||
let win1 = await BrowserTestUtils.openNewBrowserWindow();
|
||||
let win2 = await BrowserTestUtils.openNewBrowserWindow();
|
||||
|
||||
// Make sure the mouse isn't hovering over the browserAction widget.
|
||||
// (Prevents unexpected intermittent failures due to the popup page being
|
||||
// potentially preloaded when the mouse is hovering the browserAction widget,
|
||||
// See Bug 1748808).
|
||||
//
|
||||
// TODO(Bug 1780008): remove this workaround once we have landed a proper long
|
||||
// term fix and a test case to explicitly cover it as part of Bug 1780008).
|
||||
for (const win of [window, win1, win2]) {
|
||||
EventUtils.synthesizeMouseAtCenter(
|
||||
win.gURLBar.textbox,
|
||||
{ type: "mouseover" },
|
||||
win
|
||||
);
|
||||
}
|
||||
|
||||
let extension = ExtensionTestUtils.loadExtension({
|
||||
useAddonManager: "temporary", // To automatically show sidebar on load.
|
||||
manifest: {
|
||||
|
||||
@@ -69,7 +69,6 @@ parent:
|
||||
sync GetSnapshot(PTexture texture) returns (bool aNeedsYFlip);
|
||||
async SetLayersObserverEpoch(LayersObserverEpoch childEpoch);
|
||||
async ClearCachedResources();
|
||||
async ClearAnimationResources();
|
||||
async SetDefaultClearColor(uint32_t aColor);
|
||||
// Invalidate rendered frame
|
||||
async InvalidateRenderedFrame();
|
||||
|
||||
@@ -1893,14 +1893,6 @@ mozilla::ipc::IPCResult WebRenderBridgeParent::RecvClearCachedResources() {
|
||||
return IPC_OK();
|
||||
}
|
||||
|
||||
mozilla::ipc::IPCResult WebRenderBridgeParent::RecvClearAnimationResources() {
|
||||
if (!mDestroyed) {
|
||||
ClearAnimationResources();
|
||||
}
|
||||
|
||||
return IPC_OK();
|
||||
}
|
||||
|
||||
wr::Epoch WebRenderBridgeParent::UpdateWebRender(
|
||||
CompositorVsyncScheduler* aScheduler, RefPtr<wr::WebRenderAPI>&& aApi,
|
||||
AsyncImagePipelineManager* aImageMgr,
|
||||
|
||||
@@ -141,7 +141,6 @@ class WebRenderBridgeParent final : public PWebRenderBridgeParent,
|
||||
const LayersObserverEpoch& aChildEpoch) override;
|
||||
|
||||
mozilla::ipc::IPCResult RecvClearCachedResources() override;
|
||||
mozilla::ipc::IPCResult RecvClearAnimationResources() override;
|
||||
mozilla::ipc::IPCResult RecvInvalidateRenderedFrame() override;
|
||||
mozilla::ipc::IPCResult RecvScheduleComposite(
|
||||
const wr::RenderReasons& aReasons) override;
|
||||
|
||||
@@ -622,14 +622,6 @@ void WebRenderLayerManager::ClearCachedResources() {
|
||||
WrBridge()->EndClearCachedResources();
|
||||
}
|
||||
|
||||
void WebRenderLayerManager::ClearAnimationResources() {
|
||||
if (!WrBridge()->IPCOpen()) {
|
||||
gfxCriticalNote << "IPC Channel is already torn down unexpectedly\n";
|
||||
return;
|
||||
}
|
||||
WrBridge()->SendClearAnimationResources();
|
||||
}
|
||||
|
||||
void WebRenderLayerManager::WrUpdated() {
|
||||
ClearAsyncAnimations();
|
||||
mStateManager.mAsyncResourceUpdates.reset();
|
||||
|
||||
@@ -102,7 +102,6 @@ class WebRenderLayerManager final : public WindowRenderer {
|
||||
const mozilla::TimeStamp& aCompositeEnd);
|
||||
|
||||
void ClearCachedResources();
|
||||
void ClearAnimationResources();
|
||||
void UpdateTextureFactoryIdentifier(
|
||||
const TextureFactoryIdentifier& aNewIdentifier);
|
||||
TextureFactoryIdentifier GetTextureFactoryIdentifier();
|
||||
|
||||
@@ -1098,13 +1098,6 @@ void nsMenuPopupFrame::HidePopup(bool aDeselectMenu, nsPopupState aNewState) {
|
||||
mCurrentMenu = nullptr; // make sure no current menu is set
|
||||
mHFlip = mVFlip = false;
|
||||
|
||||
if (auto* widget = GetWidget()) {
|
||||
// Ideally we should call ClearCachedWebrenderResources but there are
|
||||
// intermittent failures (see bug 1748788), so we currently call
|
||||
// ClearWebrenderAnimationResources instead.
|
||||
widget->ClearWebrenderAnimationResources();
|
||||
}
|
||||
|
||||
nsView* view = GetView();
|
||||
nsViewManager* viewManager = view->GetViewManager();
|
||||
viewManager->SetViewVisibility(view, nsViewVisibility_kHide);
|
||||
|
||||
@@ -1368,13 +1368,6 @@ void nsBaseWidget::ClearCachedWebrenderResources() {
|
||||
mWindowRenderer->AsWebRender()->ClearCachedResources();
|
||||
}
|
||||
|
||||
void nsBaseWidget::ClearWebrenderAnimationResources() {
|
||||
if (!mWindowRenderer || !mWindowRenderer->AsWebRender()) {
|
||||
return;
|
||||
}
|
||||
mWindowRenderer->AsWebRender()->ClearAnimationResources();
|
||||
}
|
||||
|
||||
bool nsBaseWidget::SetNeedFastSnaphot() {
|
||||
MOZ_ASSERT(XRE_IsParentProcess());
|
||||
MOZ_ASSERT(!mCompositorSession);
|
||||
|
||||
@@ -611,8 +611,6 @@ class nsBaseWidget : public nsIWidget, public nsSupportsWeakReference {
|
||||
|
||||
void ClearCachedWebrenderResources() override;
|
||||
|
||||
void ClearWebrenderAnimationResources() override;
|
||||
|
||||
bool SetNeedFastSnaphot() override;
|
||||
|
||||
/**
|
||||
|
||||
@@ -1998,11 +1998,6 @@ class nsIWidget : public nsISupports {
|
||||
*/
|
||||
virtual void ClearCachedWebrenderResources() {}
|
||||
|
||||
/**
|
||||
* Clear WebRender animation resources
|
||||
*/
|
||||
virtual void ClearWebrenderAnimationResources() {}
|
||||
|
||||
/**
|
||||
* Request fast snapshot at RenderCompositor of WebRender.
|
||||
* Since readback of Windows DirectComposition is very slow.
|
||||
|
||||
Reference in New Issue
Block a user