Bug 1721537 - Simplify nsIWidget::GetLayerManager by removing unused parameters. r=miko

Differential Revision: https://phabricator.services.mozilla.com/D120439
This commit is contained in:
Matt Woodrow
2021-07-22 22:58:57 +00:00
parent 306e20fc85
commit 4df1e6d64a
19 changed files with 23 additions and 118 deletions

View File

@@ -6685,29 +6685,17 @@ already_AddRefed<LayerManager> nsContentUtils::LayerManagerForContent(
return nullptr;
}
static already_AddRefed<LayerManager> LayerManagerForDocumentInternal(
const Document* aDoc, bool aRequirePersistent) {
already_AddRefed<LayerManager> nsContentUtils::LayerManagerForDocument(
const Document* aDoc) {
nsIWidget* widget = nsContentUtils::WidgetForDocument(aDoc);
if (widget) {
RefPtr<LayerManager> manager = widget->GetLayerManager(
aRequirePersistent ? nsIWidget::LAYER_MANAGER_PERSISTENT
: nsIWidget::LAYER_MANAGER_CURRENT);
RefPtr<LayerManager> manager = widget->GetLayerManager();
return manager.forget();
}
return nullptr;
}
already_AddRefed<LayerManager> nsContentUtils::LayerManagerForDocument(
const Document* aDoc) {
return LayerManagerForDocumentInternal(aDoc, false);
}
already_AddRefed<LayerManager>
nsContentUtils::PersistentLayerManagerForDocument(Document* aDoc) {
return LayerManagerForDocumentInternal(aDoc, true);
}
bool nsContentUtils::AllowXULXBLForPrincipal(nsIPrincipal* aPrincipal) {
if (!aPrincipal) {
return false;

View File

@@ -2374,23 +2374,6 @@ class nsContentUtils {
static already_AddRefed<mozilla::layers::LayerManager> 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<mozilla::layers::LayerManager>
PersistentLayerManagerForDocument(Document* aDoc);
/**
* Determine whether a content node is focused or not,
*

View File

@@ -2545,8 +2545,7 @@ nsDOMWindowUtils::GetLayerManagerType(nsAString& aType) {
nsCOMPtr<nsIWidget> 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);

View File

@@ -1418,8 +1418,7 @@ static already_AddRefed<LayerManager> LayerManagerFromCanvasElement(
return nullptr;
}
return nsContentUtils::PersistentLayerManagerForDocument(
aCanvasElement->OwnerDoc());
return nsContentUtils::LayerManagerForDocument(aCanvasElement->OwnerDoc());
}
bool CanvasRenderingContext2D::TrySharedTarget(

View File

@@ -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

View File

@@ -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

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -296,10 +296,7 @@ class nsCocoaWindow final : public nsBaseWidget, public nsPIWidgetCocoa {
virtual void Invalidate(const LayoutDeviceIntRect& aRect) override;
virtual nsresult ConfigureChildren(const nsTArray<Configuration>& 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;

View File

@@ -1035,11 +1035,9 @@ nsresult nsCocoaWindow::ConfigureChildren(const nsTArray<Configuration>& 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;
}

View File

@@ -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) {

View File

@@ -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;

View File

@@ -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(

View File

@@ -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;

View File

@@ -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();
}

View File

@@ -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

View File

@@ -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

View File

@@ -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();
}

View File

@@ -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;