From 1aa6cdcc1d06dbf5a59ff8f741c0d6185c3517c1 Mon Sep 17 00:00:00 2001 From: Gaming4JC Date: Sun, 5 Jan 2020 18:48:51 -0500 Subject: Bug 1352290 - Add assertion to CustomElementReactionsStack::Enqueue to ensure upgrade reactions aren't scheduled to BackupQueue; Tag UXP Issue #1344 --- dom/base/CustomElementRegistry.cpp | 2 ++ dom/base/CustomElementRegistry.h | 13 +++++++++++++ 2 files changed, 15 insertions(+) (limited to 'dom') diff --git a/dom/base/CustomElementRegistry.cpp b/dom/base/CustomElementRegistry.cpp index fc6ac2877..200668f9e 100644 --- a/dom/base/CustomElementRegistry.cpp +++ b/dom/base/CustomElementRegistry.cpp @@ -1045,6 +1045,8 @@ CustomElementReactionsStack::Enqueue(Element* aElement, // If the custom element reactions stack is empty, then: // Add element to the backup element queue. + MOZ_ASSERT(!aReaction->IsUpgradeReaction(), + "Upgrade reaction should not be scheduled to backup queue"); mBackupQueue.AppendElement(aElement); elementData->mReactionQueue.AppendElement(aReaction); diff --git a/dom/base/CustomElementRegistry.h b/dom/base/CustomElementRegistry.h index 674c653ab..867c92647 100644 --- a/dom/base/CustomElementRegistry.h +++ b/dom/base/CustomElementRegistry.h @@ -217,6 +217,16 @@ public: virtual void Traverse(nsCycleCollectionTraversalCallback& aCb) const { } + +#if DEBUG + bool IsUpgradeReaction() + { + return mIsUpgradeReaction; + } + +protected: + bool mIsUpgradeReaction = false; +#endif }; class CustomElementUpgradeReaction final : public CustomElementReaction @@ -225,6 +235,9 @@ public: explicit CustomElementUpgradeReaction(CustomElementDefinition* aDefinition) : mDefinition(aDefinition) { +#if DEBUG + mIsUpgradeReaction = true; +#endif } private: -- cgit v1.2.3