From 4df1e6d64a2f651394950feec43bcd63da14a2bc Mon Sep 17 00:00:00 2001 From: Matt Woodrow Date: Thu, 22 Jul 2021 22:58:57 +0000 Subject: [PATCH] Bug 1721537 - Simplify nsIWidget::GetLayerManager by removing unused parameters. r=miko Differential Revision: https://phabricator.services.mozilla.com/D120439 --- dom/base/nsContentUtils.cpp | 18 +++--------------- dom/base/nsContentUtils.h | 17 ----------------- dom/base/nsDOMWindowUtils.cpp | 3 +-- dom/canvas/CanvasRenderingContext2D.cpp | 3 +-- widget/PuppetWidget.cpp | 4 +--- widget/PuppetWidget.h | 5 +---- widget/android/nsWindow.cpp | 3 +-- widget/android/nsWindow.h | 5 +---- widget/cocoa/nsCocoaWindow.h | 5 +---- widget/cocoa/nsCocoaWindow.mm | 6 ++---- widget/gtk/nsWindow.cpp | 7 ++----- widget/gtk/nsWindow.h | 5 +---- widget/headless/HeadlessWidget.cpp | 7 ++----- widget/headless/HeadlessWidget.h | 5 +---- widget/nsBaseWidget.cpp | 9 +-------- widget/nsBaseWidget.h | 5 +---- widget/nsIWidget.h | 19 +------------------ widget/windows/nsWindow.cpp | 10 +--------- widget/windows/nsWindow.h | 5 +---- 19 files changed, 23 insertions(+), 118 deletions(-) diff --git a/dom/base/nsContentUtils.cpp b/dom/base/nsContentUtils.cpp index f6f62c145a30..babc1ebf6e67 100644 --- a/dom/base/nsContentUtils.cpp +++ b/dom/base/nsContentUtils.cpp @@ -6685,29 +6685,17 @@ already_AddRefed nsContentUtils::LayerManagerForContent( return nullptr; } -static already_AddRefed LayerManagerForDocumentInternal( - const Document* aDoc, bool aRequirePersistent) { +already_AddRefed nsContentUtils::LayerManagerForDocument( + const Document* aDoc) { nsIWidget* widget = nsContentUtils::WidgetForDocument(aDoc); if (widget) { - RefPtr manager = widget->GetLayerManager( - aRequirePersistent ? nsIWidget::LAYER_MANAGER_PERSISTENT - : nsIWidget::LAYER_MANAGER_CURRENT); + RefPtr manager = widget->GetLayerManager(); return manager.forget(); } return nullptr; } -already_AddRefed nsContentUtils::LayerManagerForDocument( - const Document* aDoc) { - return LayerManagerForDocumentInternal(aDoc, false); -} - -already_AddRefed -nsContentUtils::PersistentLayerManagerForDocument(Document* aDoc) { - return LayerManagerForDocumentInternal(aDoc, true); -} - bool nsContentUtils::AllowXULXBLForPrincipal(nsIPrincipal* aPrincipal) { if (!aPrincipal) { return false; diff --git a/dom/base/nsContentUtils.h b/dom/base/nsContentUtils.h index 94805199a8fd..dfd2b41c7bdd 100644 --- a/dom/base/nsContentUtils.h +++ b/dom/base/nsContentUtils.h @@ -2374,23 +2374,6 @@ class nsContentUtils { static already_AddRefed LayerManagerForContent( const nsIContent* aContent); - /** - * Returns a layer manager to use for the given document. Basically we - * look up the document hierarchy for the first document which has - * a presentation with an associated widget, and use that widget's - * layer manager. In addition to the normal layer manager lookup this will - * specifically request a persistent layer manager. This means that the layer - * manager is expected to remain the layer manager for the document in the - * forseeable future. This function should be used carefully as it may change - * the document's layer manager. - * - * @param aDoc the document for which to return a layer manager. - * @param aAllowRetaining an outparam that states whether the returned - * layer manager should be used for retained layers - */ - static already_AddRefed - PersistentLayerManagerForDocument(Document* aDoc); - /** * Determine whether a content node is focused or not, * diff --git a/dom/base/nsDOMWindowUtils.cpp b/dom/base/nsDOMWindowUtils.cpp index 53abcd5df95e..2ca7e2f8ca42 100644 --- a/dom/base/nsDOMWindowUtils.cpp +++ b/dom/base/nsDOMWindowUtils.cpp @@ -2545,8 +2545,7 @@ nsDOMWindowUtils::GetLayerManagerType(nsAString& aType) { nsCOMPtr widget = GetWidget(); if (!widget) return NS_ERROR_FAILURE; - LayerManager* mgr = - widget->GetLayerManager(nsIWidget::LAYER_MANAGER_PERSISTENT); + LayerManager* mgr = widget->GetLayerManager(); if (!mgr) return NS_ERROR_FAILURE; mgr->GetBackendName(aType); diff --git a/dom/canvas/CanvasRenderingContext2D.cpp b/dom/canvas/CanvasRenderingContext2D.cpp index 51d1cf8e74ba..16eff45fdee8 100644 --- a/dom/canvas/CanvasRenderingContext2D.cpp +++ b/dom/canvas/CanvasRenderingContext2D.cpp @@ -1418,8 +1418,7 @@ static already_AddRefed LayerManagerFromCanvasElement( return nullptr; } - return nsContentUtils::PersistentLayerManagerForDocument( - aCanvasElement->OwnerDoc()); + return nsContentUtils::LayerManagerForDocument(aCanvasElement->OwnerDoc()); } bool CanvasRenderingContext2D::TrySharedTarget( diff --git a/widget/PuppetWidget.cpp b/widget/PuppetWidget.cpp index 4886d047ffa7..5823fab8834a 100644 --- a/widget/PuppetWidget.cpp +++ b/widget/PuppetWidget.cpp @@ -585,9 +585,7 @@ bool PuppetWidget::GetEditCommands(NativeKeyBindingsType aType, return true; } -LayerManager* PuppetWidget::GetLayerManager( - PLayerTransactionChild* aShadowManager, LayersBackend aBackendHint, - LayerManagerPersistence aPersistence) { +LayerManager* PuppetWidget::GetLayerManager() { if (!mLayerManager) { if (XRE_IsParentProcess()) { // On the parent process there is no CompositorBridgeChild which confuses diff --git a/widget/PuppetWidget.h b/widget/PuppetWidget.h index 42fe6cc9537f..f6f2c6c6eb84 100644 --- a/widget/PuppetWidget.h +++ b/widget/PuppetWidget.h @@ -171,10 +171,7 @@ class PuppetWidget : public nsBaseWidget, return eTransparencyTransparent; } - virtual LayerManager* GetLayerManager( - PLayerTransactionChild* aShadowManager = nullptr, - LayersBackend aBackendHint = mozilla::layers::LayersBackend::LAYERS_NONE, - LayerManagerPersistence aPersistence = LAYER_MANAGER_CURRENT) override; + virtual LayerManager* GetLayerManager() override; // This is used for creating remote layer managers and for re-creating // them after a compositor reset. The lambda aInitializeFunc is used to diff --git a/widget/android/nsWindow.cpp b/widget/android/nsWindow.cpp index 33ee540d6960..b9924fb5f984 100644 --- a/widget/android/nsWindow.cpp +++ b/widget/android/nsWindow.cpp @@ -2176,8 +2176,7 @@ nsresult nsWindow::MakeFullScreen(bool aFullScreen, nsIScreen*) { return NS_OK; } -mozilla::layers::LayerManager* nsWindow::GetLayerManager( - PLayerTransactionChild*, LayersBackend, LayerManagerPersistence) { +mozilla::layers::LayerManager* nsWindow::GetLayerManager() { if (mLayerManager) { return mLayerManager; } diff --git a/widget/android/nsWindow.h b/widget/android/nsWindow.h index 2ae5cec9e88a..fadce4940be7 100644 --- a/widget/android/nsWindow.h +++ b/widget/android/nsWindow.h @@ -178,10 +178,7 @@ class nsWindow final : public nsBaseWidget { const InputContextAction& aAction) override; virtual InputContext GetInputContext() override; - LayerManager* GetLayerManager( - PLayerTransactionChild* aShadowManager = nullptr, - LayersBackend aBackendHint = mozilla::layers::LayersBackend::LAYERS_NONE, - LayerManagerPersistence aPersistence = LAYER_MANAGER_CURRENT) override; + LayerManager* GetLayerManager() override; virtual bool NeedsPaint() override; diff --git a/widget/cocoa/nsCocoaWindow.h b/widget/cocoa/nsCocoaWindow.h index c813227ba533..a232d9c0fab0 100644 --- a/widget/cocoa/nsCocoaWindow.h +++ b/widget/cocoa/nsCocoaWindow.h @@ -296,10 +296,7 @@ class nsCocoaWindow final : public nsBaseWidget, public nsPIWidgetCocoa { virtual void Invalidate(const LayoutDeviceIntRect& aRect) override; virtual nsresult ConfigureChildren(const nsTArray& aConfigurations) override; - virtual LayerManager* GetLayerManager( - PLayerTransactionChild* aShadowManager = nullptr, - LayersBackend aBackendHint = mozilla::layers::LayersBackend::LAYERS_NONE, - LayerManagerPersistence aPersistence = LAYER_MANAGER_CURRENT) override; + virtual LayerManager* GetLayerManager() override; virtual nsresult DispatchEvent(mozilla::WidgetGUIEvent* aEvent, nsEventStatus& aStatus) override; virtual void CaptureRollupEvents(nsIRollupListener* aListener, bool aDoCapture) override; [[nodiscard]] virtual nsresult GetAttention(int32_t aCycleCount) override; diff --git a/widget/cocoa/nsCocoaWindow.mm b/widget/cocoa/nsCocoaWindow.mm index 117d3c270011..7133ec34637f 100644 --- a/widget/cocoa/nsCocoaWindow.mm +++ b/widget/cocoa/nsCocoaWindow.mm @@ -1035,11 +1035,9 @@ nsresult nsCocoaWindow::ConfigureChildren(const nsTArray& aConfig return NS_OK; } -LayerManager* nsCocoaWindow::GetLayerManager(PLayerTransactionChild* aShadowManager, - LayersBackend aBackendHint, - LayerManagerPersistence aPersistence) { +LayerManager* nsCocoaWindow::GetLayerManager() { if (mPopupContentView) { - return mPopupContentView->GetLayerManager(aShadowManager, aBackendHint, aPersistence); + return mPopupContentView->GetLayerManager(); } return nullptr; } diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp index e43765023122..d20edf4db53d 100644 --- a/widget/gtk/nsWindow.cpp +++ b/widget/gtk/nsWindow.cpp @@ -8276,9 +8276,7 @@ nsresult nsWindow::BeginResizeDrag(WidgetGUIEvent* aEvent, int32_t aHorizontal, return NS_OK; } -nsIWidget::LayerManager* nsWindow::GetLayerManager( - PLayerTransactionChild* aShadowManager, LayersBackend aBackendHint, - LayerManagerPersistence aPersistence) { +nsIWidget::LayerManager* nsWindow::GetLayerManager() { if (mIsDestroyed) { // Prevent external code from triggering the re-creation of the // LayerManager/Compositor during shutdown. Just return what we currently @@ -8286,8 +8284,7 @@ nsIWidget::LayerManager* nsWindow::GetLayerManager( return mLayerManager; } - return nsBaseWidget::GetLayerManager(aShadowManager, aBackendHint, - aPersistence); + return nsBaseWidget::GetLayerManager(); } void nsWindow::SetCompositorWidgetDelegate(CompositorWidgetDelegate* delegate) { diff --git a/widget/gtk/nsWindow.h b/widget/gtk/nsWindow.h index 95bd0c144ae2..9df0b03c15aa 100644 --- a/widget/gtk/nsWindow.h +++ b/widget/gtk/nsWindow.h @@ -598,10 +598,7 @@ class nsWindow final : public nsBaseWidget { void DispatchMissedButtonReleases(GdkEventCrossing* aGdkEvent); // nsBaseWidget - virtual LayerManager* GetLayerManager( - PLayerTransactionChild* aShadowManager = nullptr, - LayersBackend aBackendHint = mozilla::layers::LayersBackend::LAYERS_NONE, - LayerManagerPersistence aPersistence = LAYER_MANAGER_CURRENT) override; + virtual LayerManager* GetLayerManager() override; void SetCompositorWidgetDelegate(CompositorWidgetDelegate* delegate) override; diff --git a/widget/headless/HeadlessWidget.cpp b/widget/headless/HeadlessWidget.cpp index 9a3e710b7528..0f4f00bda4fe 100644 --- a/widget/headless/HeadlessWidget.cpp +++ b/widget/headless/HeadlessWidget.cpp @@ -250,11 +250,8 @@ LayoutDeviceIntPoint HeadlessWidget::WidgetToScreenOffset() { return mTopLevel->GetBounds().TopLeft(); } -LayerManager* HeadlessWidget::GetLayerManager( - PLayerTransactionChild* aShadowManager, LayersBackend aBackendHint, - LayerManagerPersistence aPersistence) { - return nsBaseWidget::GetLayerManager(aShadowManager, aBackendHint, - aPersistence); +LayerManager* HeadlessWidget::GetLayerManager() { + return nsBaseWidget::GetLayerManager(); } void HeadlessWidget::SetCompositorWidgetDelegate( diff --git a/widget/headless/HeadlessWidget.h b/widget/headless/HeadlessWidget.h index 225f9636dd5c..a81338925c7b 100644 --- a/widget/headless/HeadlessWidget.h +++ b/widget/headless/HeadlessWidget.h @@ -100,10 +100,7 @@ class HeadlessWidget : public nsBaseWidget { } virtual InputContext GetInputContext() override { return mInputContext; } - virtual LayerManager* GetLayerManager( - PLayerTransactionChild* aShadowManager = nullptr, - LayersBackend aBackendHint = mozilla::layers::LayersBackend::LAYERS_NONE, - LayerManagerPersistence aPersistence = LAYER_MANAGER_CURRENT) override; + virtual LayerManager* GetLayerManager() override; void SetCompositorWidgetDelegate(CompositorWidgetDelegate* delegate) override; diff --git a/widget/nsBaseWidget.cpp b/widget/nsBaseWidget.cpp index 327335d97a57..1d975b49bca9 100644 --- a/widget/nsBaseWidget.cpp +++ b/widget/nsBaseWidget.cpp @@ -1505,9 +1505,7 @@ bool nsBaseWidget::ShouldUseOffMainThreadCompositing() { return gfxPlatform::UsesOffMainThreadCompositing(); } -LayerManager* nsBaseWidget::GetLayerManager( - PLayerTransactionChild* aShadowManager, LayersBackend aBackendHint, - LayerManagerPersistence aPersistence) { +LayerManager* nsBaseWidget::GetLayerManager() { if (!mLayerManager) { if (!mShutdownObserver) { // We are shutting down, do not try to re-create a LayerManager @@ -1515,11 +1513,6 @@ LayerManager* nsBaseWidget::GetLayerManager( } // Try to use an async compositor first, if possible if (ShouldUseOffMainThreadCompositing()) { - // e10s uses the parameter to pass in the shadow manager from the - // BrowserChild so we don't expect to see it there since this doesn't - // support e10s. - NS_ASSERTION(aShadowManager == nullptr, - "Async Compositor not supported with e10s"); CreateCompositor(); } diff --git a/widget/nsBaseWidget.h b/widget/nsBaseWidget.h index 5922ba72efe6..554efb5adf90 100644 --- a/widget/nsBaseWidget.h +++ b/widget/nsBaseWidget.h @@ -218,10 +218,7 @@ class nsBaseWidget : public nsIWidget, public nsSupportsWeakReference { nsIScreen* aScreen = nullptr) override; void InfallibleMakeFullScreen(bool aFullScreen, nsIScreen* aScreen = nullptr); - LayerManager* GetLayerManager( - PLayerTransactionChild* aShadowManager = nullptr, - LayersBackend aBackendHint = mozilla::layers::LayersBackend::LAYERS_NONE, - LayerManagerPersistence aPersistence = LAYER_MANAGER_CURRENT) override; + LayerManager* GetLayerManager() override; // A remote compositor session tied to this window has been lost and IPC // messages will no longer work. The widget must clean up any lingering diff --git a/widget/nsIWidget.h b/widget/nsIWidget.h index 28c46fc18932..10881af9eac9 100644 --- a/widget/nsIWidget.h +++ b/widget/nsIWidget.h @@ -1294,24 +1294,7 @@ class nsIWidget : public nsISupports { * Return the widget's LayerManager. The layer tree for that * LayerManager is what gets rendered to the widget. */ - inline LayerManager* GetLayerManager() { - return GetLayerManager(nullptr, mozilla::layers::LayersBackend::LAYERS_NONE, - LAYER_MANAGER_CURRENT); - } - - inline LayerManager* GetLayerManager(LayerManagerPersistence aPersistence) { - return GetLayerManager(nullptr, mozilla::layers::LayersBackend::LAYERS_NONE, - aPersistence); - } - - /** - * Like GetLayerManager(), but prefers creating a layer manager of - * type |aBackendHint| instead of what would normally be created. - * LayersBackend::LAYERS_NONE means "no hint". - */ - virtual LayerManager* GetLayerManager( - PLayerTransactionChild* aShadowManager, LayersBackend aBackendHint, - LayerManagerPersistence aPersistence = LAYER_MANAGER_CURRENT) = 0; + virtual LayerManager* GetLayerManager() = 0; /** * Called before each layer manager transaction to allow any preparation diff --git a/widget/windows/nsWindow.cpp b/widget/windows/nsWindow.cpp index 9d6772377226..7c1b7a9d2c79 100644 --- a/widget/windows/nsWindow.cpp +++ b/widget/windows/nsWindow.cpp @@ -4080,9 +4080,7 @@ bool nsWindow::HasPendingInputEvent() { * **************************************************************/ -LayerManager* nsWindow::GetLayerManager(PLayerTransactionChild* aShadowManager, - LayersBackend aBackendHint, - LayerManagerPersistence aPersistence) { +LayerManager* nsWindow::GetLayerManager() { if (mLayerManager) { return mLayerManager; } @@ -4097,12 +4095,6 @@ LayerManager* nsWindow::GetLayerManager(PLayerTransactionChild* aShadowManager, // Try OMTC first. if (!mLayerManager && ShouldUseOffMainThreadCompositing()) { gfxWindowsPlatform::GetPlatform()->UpdateRenderMode(); - - // e10s uses the parameter to pass in the shadow manager from the - // BrowserChild so we don't expect to see it there since this doesn't - // support e10s. - NS_ASSERTION(aShadowManager == nullptr, - "Async Compositor not supported with e10s"); CreateCompositor(); } diff --git a/widget/windows/nsWindow.h b/widget/windows/nsWindow.h index 9b05e1900ec9..cef7aa5c4095 100644 --- a/widget/windows/nsWindow.h +++ b/widget/windows/nsWindow.h @@ -210,10 +210,7 @@ class nsWindow final : public nsWindowBase { bool aDoCapture) override; [[nodiscard]] virtual nsresult GetAttention(int32_t aCycleCount) override; virtual bool HasPendingInputEvent() override; - virtual LayerManager* GetLayerManager( - PLayerTransactionChild* aShadowManager = nullptr, - LayersBackend aBackendHint = mozilla::layers::LayersBackend::LAYERS_NONE, - LayerManagerPersistence aPersistence = LAYER_MANAGER_CURRENT) override; + virtual LayerManager* GetLayerManager() override; void SetCompositorWidgetDelegate(CompositorWidgetDelegate* delegate) override; [[nodiscard]] virtual nsresult OnDefaultButtonLoaded( const LayoutDeviceIntRect& aButtonRect) override;