diff --git a/accessible/generic/DocAccessible.cpp b/accessible/generic/DocAccessible.cpp index 8fda3b44f5..814ba55eda 100644 --- a/accessible/generic/DocAccessible.cpp +++ b/accessible/generic/DocAccessible.cpp @@ -159,7 +159,7 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(DocAccessible, Accessible) tmp->mARIAOwnsHash.Clear(); NS_IMPL_CYCLE_COLLECTION_UNLINK_END -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(DocAccessible) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(DocAccessible) NS_INTERFACE_MAP_ENTRY(nsIDocumentObserver) NS_INTERFACE_MAP_ENTRY(nsIMutationObserver) NS_INTERFACE_MAP_ENTRY(nsISupportsWeakReference) diff --git a/accessible/xpcom/xpcAccessibleDocument.cpp b/accessible/xpcom/xpcAccessibleDocument.cpp index 2b24be4b7a..eee04663b0 100644 --- a/accessible/xpcom/xpcAccessibleDocument.cpp +++ b/accessible/xpcom/xpcAccessibleDocument.cpp @@ -30,7 +30,7 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(xpcAccessibleDocument, tmp->mCache.Clear(); NS_IMPL_CYCLE_COLLECTION_UNLINK_END -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(xpcAccessibleDocument) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(xpcAccessibleDocument) NS_INTERFACE_MAP_ENTRY(nsIAccessibleDocument) NS_INTERFACE_MAP_END_INHERITING(xpcAccessibleHyperText) diff --git a/accessible/xul/XULTreeAccessible.cpp b/accessible/xul/XULTreeAccessible.cpp index cfb06f3492..b7e91724e6 100644 --- a/accessible/xul/XULTreeAccessible.cpp +++ b/accessible/xul/XULTreeAccessible.cpp @@ -73,7 +73,7 @@ XULTreeAccessible::~XULTreeAccessible() NS_IMPL_CYCLE_COLLECTION_INHERITED(XULTreeAccessible, Accessible, mTree, mAccessibleCache) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(XULTreeAccessible) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(XULTreeAccessible) NS_INTERFACE_MAP_END_INHERITING(Accessible) NS_IMPL_ADDREF_INHERITED(XULTreeAccessible, Accessible) @@ -709,12 +709,9 @@ XULTreeItemAccessibleBase::~XULTreeItemAccessibleBase() NS_IMPL_CYCLE_COLLECTION_INHERITED(XULTreeItemAccessibleBase, Accessible, mTree) -NS_INTERFACE_TABLE_HEAD_CYCLE_COLLECTION_INHERITED(XULTreeItemAccessibleBase) - NS_INTERFACE_TABLE_INHERITED(XULTreeItemAccessibleBase, - XULTreeItemAccessibleBase) -NS_INTERFACE_TABLE_TAIL_INHERITING(Accessible) -NS_IMPL_ADDREF_INHERITED(XULTreeItemAccessibleBase, Accessible) -NS_IMPL_RELEASE_INHERITED(XULTreeItemAccessibleBase, Accessible) +NS_IMPL_ISUPPORTS_CYCLE_COLLECTION_INHERITED(XULTreeItemAccessibleBase, + Accessible, + XULTreeItemAccessibleBase) //////////////////////////////////////////////////////////////////////////////// // XULTreeItemAccessibleBase: Accessible @@ -1084,7 +1081,7 @@ NS_IMPL_CYCLE_COLLECTION_INHERITED(XULTreeItemAccessible, XULTreeItemAccessibleBase, mColumn) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(XULTreeItemAccessible) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(XULTreeItemAccessible) NS_INTERFACE_MAP_END_INHERITING(XULTreeItemAccessibleBase) NS_IMPL_ADDREF_INHERITED(XULTreeItemAccessible, XULTreeItemAccessibleBase) NS_IMPL_RELEASE_INHERITED(XULTreeItemAccessible, XULTreeItemAccessibleBase) diff --git a/accessible/xul/XULTreeGridAccessible.cpp b/accessible/xul/XULTreeGridAccessible.cpp index e9e3a0e8fb..8c645231dd 100644 --- a/accessible/xul/XULTreeGridAccessible.cpp +++ b/accessible/xul/XULTreeGridAccessible.cpp @@ -263,7 +263,7 @@ NS_IMPL_CYCLE_COLLECTION_INHERITED(XULTreeGridRowAccessible, XULTreeItemAccessibleBase, mAccessibleCache) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(XULTreeGridRowAccessible) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(XULTreeGridRowAccessible) NS_INTERFACE_MAP_END_INHERITING(XULTreeItemAccessibleBase) NS_IMPL_ADDREF_INHERITED(XULTreeGridRowAccessible, @@ -447,7 +447,7 @@ XULTreeGridCellAccessible::~XULTreeGridCellAccessible() NS_IMPL_CYCLE_COLLECTION_INHERITED(XULTreeGridCellAccessible, LeafAccessible, mTree, mColumn) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(XULTreeGridCellAccessible) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(XULTreeGridCellAccessible) NS_INTERFACE_MAP_END_INHERITING(LeafAccessible) NS_IMPL_ADDREF_INHERITED(XULTreeGridCellAccessible, LeafAccessible) NS_IMPL_RELEASE_INHERITED(XULTreeGridCellAccessible, LeafAccessible) diff --git a/dom/abort/AbortController.cpp b/dom/abort/AbortController.cpp index af35bbd0a0..11236fc802 100644 --- a/dom/abort/AbortController.cpp +++ b/dom/abort/AbortController.cpp @@ -73,7 +73,7 @@ AbortSignal* AbortController::Signal() { if (!mSignal) { - mSignal = new AbortSignal(this, mAborted); + mSignal = new AbortSignal(mGlobal, mAborted); } return mSignal; diff --git a/dom/abort/AbortSignal.cpp b/dom/abort/AbortSignal.cpp index 50ed89c93e..85ebbe5a53 100644 --- a/dom/abort/AbortSignal.cpp +++ b/dom/abort/AbortSignal.cpp @@ -4,7 +4,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "AbortSignal.h" -#include "AbortController.h" + #include "mozilla/dom/Event.h" #include "mozilla/dom/AbortSignalBinding.h" @@ -15,24 +15,21 @@ NS_IMPL_CYCLE_COLLECTION_CLASS(AbortSignal) NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(AbortSignal, DOMEventTargetHelper) - NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mController) NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(AbortSignal, DOMEventTargetHelper) - NS_IMPL_CYCLE_COLLECTION_UNLINK(mController) NS_IMPL_CYCLE_COLLECTION_UNLINK_END -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(AbortSignal) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(AbortSignal) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) NS_IMPL_ADDREF_INHERITED(AbortSignal, DOMEventTargetHelper) NS_IMPL_RELEASE_INHERITED(AbortSignal, DOMEventTargetHelper) -AbortSignal::AbortSignal(AbortController* aController, +AbortSignal::AbortSignal(nsIGlobalObject* aGlobalObject, bool aAborted) - : DOMEventTargetHelper(aController->GetParentObject()) - , mController(aController) + : DOMEventTargetHelper(aGlobalObject) , mAborted(aAborted) {} @@ -46,6 +43,21 @@ AbortSignal::WrapObject(JSContext* aCx, JS::Handle aGivenProto) return AbortSignalBinding::Wrap(aCx, this, aGivenProto); } +already_AddRefed AbortSignal::Abort(GlobalObject& aGlobal) { + nsCOMPtr global = do_QueryInterface(aGlobal.GetAsSupports()); + RefPtr abortSignal = new AbortSignal(global, true); + return abortSignal.forget(); +} + +already_AddRefed AbortSignal::Timeout(GlobalObject& aGlobal, uint64_t aMilliseconds) { + nsCOMPtr global = do_QueryInterface(aGlobal.GetAsSupports()); + + // Stub implementation, just return an AbortSignal object + RefPtr abortSignal = new AbortSignal(global, false); + + return abortSignal.forget(); +} + bool AbortSignal::Aborted() const { diff --git a/dom/abort/AbortSignal.h b/dom/abort/AbortSignal.h index cf95e687a8..b53ea3319a 100644 --- a/dom/abort/AbortSignal.h +++ b/dom/abort/AbortSignal.h @@ -11,7 +11,6 @@ namespace mozilla { namespace dom { -class AbortController; class AbortSignal; class AbortSignal final : public DOMEventTargetHelper @@ -38,7 +37,7 @@ public: NS_DECL_ISUPPORTS_INHERITED NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(AbortSignal, DOMEventTargetHelper) - AbortSignal(AbortController* aController, bool aAborted); + AbortSignal(nsIGlobalObject* aGlobalObject, bool aAborted); explicit AbortSignal(bool aAborted); JSObject* @@ -47,10 +46,14 @@ public: bool Aborted() const; - void - Abort(); + void Abort(); + void Timeout(); IMPL_EVENT_HANDLER(abort); + IMPL_EVENT_HANDLER(timeout); + + static already_AddRefed Abort(GlobalObject& aGlobal); + static already_AddRefed Timeout(GlobalObject& aGlobal, uint64_t aMilliseconds); void AddFollower(Follower* aFollower); @@ -61,8 +64,6 @@ public: private: ~AbortSignal() = default; - RefPtr mController; - // Raw pointers. Follower unregisters itself in the DTOR. nsTArray mFollowers; diff --git a/dom/animation/Animation.cpp b/dom/animation/Animation.cpp index 17b01807a5..08e74e65cd 100644 --- a/dom/animation/Animation.cpp +++ b/dom/animation/Animation.cpp @@ -35,7 +35,7 @@ NS_IMPL_CYCLE_COLLECTION_INHERITED(Animation, DOMEventTargetHelper, NS_IMPL_ADDREF_INHERITED(Animation, DOMEventTargetHelper) NS_IMPL_RELEASE_INHERITED(Animation, DOMEventTargetHelper) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(Animation) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(Animation) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) JSObject* diff --git a/dom/animation/DocumentTimeline.cpp b/dom/animation/DocumentTimeline.cpp index 2900739f92..a594603925 100644 --- a/dom/animation/DocumentTimeline.cpp +++ b/dom/animation/DocumentTimeline.cpp @@ -34,7 +34,7 @@ NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN_INHERITED(DocumentTimeline, AnimationTimeline) NS_IMPL_CYCLE_COLLECTION_TRACE_END -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(DocumentTimeline) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(DocumentTimeline) NS_INTERFACE_MAP_END_INHERITING(AnimationTimeline) NS_IMPL_ADDREF_INHERITED(DocumentTimeline, AnimationTimeline) diff --git a/dom/animation/KeyframeEffectReadOnly.cpp b/dom/animation/KeyframeEffectReadOnly.cpp index d588c7b1da..3fcf246cd4 100644 --- a/dom/animation/KeyframeEffectReadOnly.cpp +++ b/dom/animation/KeyframeEffectReadOnly.cpp @@ -44,7 +44,7 @@ NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN_INHERITED(KeyframeEffectReadOnly, AnimationEffectReadOnly) NS_IMPL_CYCLE_COLLECTION_TRACE_END -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(KeyframeEffectReadOnly) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(KeyframeEffectReadOnly) NS_INTERFACE_MAP_END_INHERITING(AnimationEffectReadOnly) NS_IMPL_ADDREF_INHERITED(KeyframeEffectReadOnly, AnimationEffectReadOnly) diff --git a/dom/base/DOMCursor.cpp b/dom/base/DOMCursor.cpp index 28cb5e5784..de97a42ab5 100644 --- a/dom/base/DOMCursor.cpp +++ b/dom/base/DOMCursor.cpp @@ -12,7 +12,7 @@ namespace dom { NS_IMPL_CYCLE_COLLECTION_INHERITED(DOMCursor, DOMRequest, mCallback) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(DOMCursor) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(DOMCursor) NS_INTERFACE_MAP_ENTRY(nsIDOMDOMCursor) NS_INTERFACE_MAP_END_INHERITING(DOMRequest) diff --git a/dom/base/DOMRequest.cpp b/dom/base/DOMRequest.cpp index b58c3cdf17..074f6d45ee 100644 --- a/dom/base/DOMRequest.cpp +++ b/dom/base/DOMRequest.cpp @@ -66,7 +66,7 @@ NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN_INHERITED(DOMRequest, NS_IMPL_CYCLE_COLLECTION_TRACE_JS_MEMBER_CALLBACK(mResult) NS_IMPL_CYCLE_COLLECTION_TRACE_END -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(DOMRequest) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(DOMRequest) NS_INTERFACE_MAP_ENTRY(nsIDOMDOMRequest) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) diff --git a/dom/base/EventSource.cpp b/dom/base/EventSource.cpp index 06cabc3098..c998aceb95 100644 --- a/dom/base/EventSource.cpp +++ b/dom/base/EventSource.cpp @@ -2112,7 +2112,7 @@ EventSource::IsCertainlyAliveForCC() const return mKeepingAlive; } -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(EventSource) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(EventSource) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) NS_IMPL_ADDREF_INHERITED(EventSource, DOMEventTargetHelper) diff --git a/dom/base/FileReader.cpp b/dom/base/FileReader.cpp index 7a8cb31d6e..4903b52d27 100644 --- a/dom/base/FileReader.cpp +++ b/dom/base/FileReader.cpp @@ -67,7 +67,7 @@ NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN_INHERITED(FileReader, NS_IMPL_CYCLE_COLLECTION_TRACE_JS_MEMBER_CALLBACK(mResultArrayBuffer) NS_IMPL_CYCLE_COLLECTION_TRACE_END -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(FileReader) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(FileReader) NS_INTERFACE_MAP_ENTRY(nsITimerCallback) NS_INTERFACE_MAP_ENTRY(nsIInputStreamCallback) NS_INTERFACE_MAP_ENTRY(nsISupportsWeakReference) diff --git a/dom/base/ScreenOrientation.cpp b/dom/base/ScreenOrientation.cpp index 6d65e63a57..44b33a5d05 100644 --- a/dom/base/ScreenOrientation.cpp +++ b/dom/base/ScreenOrientation.cpp @@ -24,7 +24,7 @@ NS_IMPL_CYCLE_COLLECTION_INHERITED(ScreenOrientation, DOMEventTargetHelper, mScreen); -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(ScreenOrientation) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(ScreenOrientation) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) NS_IMPL_ADDREF_INHERITED(ScreenOrientation, DOMEventTargetHelper) diff --git a/dom/base/ShadowRoot.cpp b/dom/base/ShadowRoot.cpp index 2f24c2856f..f2ae953a0e 100644 --- a/dom/base/ShadowRoot.cpp +++ b/dom/base/ShadowRoot.cpp @@ -46,7 +46,7 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(ShadowRoot) tmp->mIdentifierMap.Clear(); NS_IMPL_CYCLE_COLLECTION_UNLINK_END_INHERITED(DocumentFragment) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(ShadowRoot) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(ShadowRoot) NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIContent) NS_INTERFACE_MAP_ENTRY(nsIMutationObserver) NS_INTERFACE_MAP_END_INHERITING(DocumentFragment) diff --git a/dom/base/WebSocket.cpp b/dom/base/WebSocket.cpp index 6c8154a35d..075697dd71 100644 --- a/dom/base/WebSocket.cpp +++ b/dom/base/WebSocket.cpp @@ -1424,7 +1424,7 @@ WebSocket::IsCertainlyAliveForCC() const return mKeepingAlive; } -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(WebSocket) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(WebSocket) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) NS_IMPL_ADDREF_INHERITED(WebSocket, DOMEventTargetHelper) diff --git a/dom/base/nsContentIterator.cpp b/dom/base/nsContentIterator.cpp index 04ce96cc9a..2a847dcc68 100644 --- a/dom/base/nsContentIterator.cpp +++ b/dom/base/nsContentIterator.cpp @@ -1233,7 +1233,7 @@ protected: NS_IMPL_ADDREF_INHERITED(nsContentSubtreeIterator, nsContentIterator) NS_IMPL_RELEASE_INHERITED(nsContentSubtreeIterator, nsContentIterator) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(nsContentSubtreeIterator) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsContentSubtreeIterator) NS_INTERFACE_MAP_END_INHERITING(nsContentIterator) NS_IMPL_CYCLE_COLLECTION_INHERITED(nsContentSubtreeIterator, nsContentIterator, diff --git a/dom/base/nsContentList.cpp b/dom/base/nsContentList.cpp index 55e625f37d..d5df94a8af 100644 --- a/dom/base/nsContentList.cpp +++ b/dom/base/nsContentList.cpp @@ -137,7 +137,7 @@ nsBaseContentList::IndexOf(nsIContent* aContent) NS_IMPL_CYCLE_COLLECTION_INHERITED(nsSimpleContentList, nsBaseContentList, mRoot) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(nsSimpleContentList) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsSimpleContentList) NS_INTERFACE_MAP_END_INHERITING(nsBaseContentList) diff --git a/dom/base/nsContentList.h b/dom/base/nsContentList.h index a399b1a8d9..14ace9cd9e 100644 --- a/dom/base/nsContentList.h +++ b/dom/base/nsContentList.h @@ -260,6 +260,7 @@ public: // nsWrapperCache using nsWrapperCache::GetWrapperPreserveColor; + using nsWrapperCache::PreserveWrapper; virtual JSObject* WrapObject(JSContext* aCx, JS::Handle aGivenProto) override; protected: virtual ~nsContentList(); @@ -268,6 +269,10 @@ protected: { return nsWrapperCache::GetWrapperPreserveColor(); } + virtual void PreserveWrapperInternal(nsISupports* aScriptObjectHolder) override + { + nsWrapperCache::PreserveWrapper(aScriptObjectHolder); + } public: // nsIDOMHTMLCollection diff --git a/dom/base/nsDOMDataChannel.cpp b/dom/base/nsDOMDataChannel.cpp index 230ce0574d..9be9326c20 100644 --- a/dom/base/nsDOMDataChannel.cpp +++ b/dom/base/nsDOMDataChannel.cpp @@ -67,7 +67,7 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_END NS_IMPL_ADDREF_INHERITED(nsDOMDataChannel, DOMEventTargetHelper) NS_IMPL_RELEASE_INHERITED(nsDOMDataChannel, DOMEventTargetHelper) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(nsDOMDataChannel) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsDOMDataChannel) NS_INTERFACE_MAP_ENTRY(nsIDOMDataChannel) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) diff --git a/dom/base/nsGlobalWindow.cpp b/dom/base/nsGlobalWindow.cpp index e100328a8f..53232f835f 100644 --- a/dom/base/nsGlobalWindow.cpp +++ b/dom/base/nsGlobalWindow.cpp @@ -13929,7 +13929,7 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(nsGlobalChromeWindow, NS_IMPL_CYCLE_COLLECTION_UNLINK_END // QueryInterface implementation for nsGlobalChromeWindow -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(nsGlobalChromeWindow) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsGlobalChromeWindow) NS_INTERFACE_MAP_ENTRY(nsIDOMChromeWindow) NS_INTERFACE_MAP_END_INHERITING(nsGlobalWindow) diff --git a/dom/base/nsInProcessTabChildGlobal.cpp b/dom/base/nsInProcessTabChildGlobal.cpp index 6adfbdaef0..0e524ed007 100644 --- a/dom/base/nsInProcessTabChildGlobal.cpp +++ b/dom/base/nsInProcessTabChildGlobal.cpp @@ -162,7 +162,7 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(nsInProcessTabChildGlobal, tmp->UnlinkHostObjectURIs(); NS_IMPL_CYCLE_COLLECTION_UNLINK_END -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(nsInProcessTabChildGlobal) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsInProcessTabChildGlobal) NS_INTERFACE_MAP_ENTRY(nsIMessageListenerManager) NS_INTERFACE_MAP_ENTRY(nsIMessageSender) NS_INTERFACE_MAP_ENTRY(nsISyncMessageSender) diff --git a/dom/base/nsScreen.cpp b/dom/base/nsScreen.cpp index 7aee016c25..e8c506192e 100644 --- a/dom/base/nsScreen.cpp +++ b/dom/base/nsScreen.cpp @@ -49,7 +49,7 @@ nsScreen::~nsScreen() // QueryInterface implementation for nsScreen -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(nsScreen) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsScreen) NS_INTERFACE_MAP_ENTRY(nsIDOMScreen) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) diff --git a/dom/base/nsStyledElement.cpp b/dom/base/nsStyledElement.cpp index 607926a484..4fd423acc7 100644 --- a/dom/base/nsStyledElement.cpp +++ b/dom/base/nsStyledElement.cpp @@ -25,9 +25,11 @@ using namespace mozilla; using namespace mozilla::dom; -NS_IMPL_QUERY_INTERFACE_INHERITED(nsStyledElement, - nsStyledElementBase, - nsStyledElement) +// Using the CC variant of this, even though this class does not define +// a new CC participant, to make QIing to the CC interfaces faster. +NS_IMPL_QUERY_INTERFACE_CYCLE_COLLECTION_INHERITED(nsStyledElement, + nsStyledElementBase, + nsStyledElement) //---------------------------------------------------------------------- // nsIContent methods diff --git a/dom/base/nsTextNode.cpp b/dom/base/nsTextNode.cpp index 3fd45f4668..b91c9e5571 100644 --- a/dom/base/nsTextNode.cpp +++ b/dom/base/nsTextNode.cpp @@ -97,8 +97,13 @@ nsTextNode::~nsTextNode() { } -NS_IMPL_ISUPPORTS_INHERITED(nsTextNode, nsGenericDOMDataNode, nsIDOMNode, - nsIDOMText, nsIDOMCharacterData) +// Using the CC variant of this, even though this class does not define +// a new CC participant, to make QIing to the CC interfaces faster. +NS_IMPL_ISUPPORTS_CYCLE_COLLECTION_INHERITED(nsTextNode, + nsGenericDOMDataNode, + nsIDOMNode, + nsIDOMText, + nsIDOMCharacterData) JSObject* nsTextNode::WrapNode(JSContext *aCx, JS::Handle aGivenProto) diff --git a/dom/base/nsWrapperCache.cpp b/dom/base/nsWrapperCache.cpp index bd1acf3187..7a3a760560 100644 --- a/dom/base/nsWrapperCache.cpp +++ b/dom/base/nsWrapperCache.cpp @@ -7,7 +7,6 @@ #include "js/Class.h" #include "js/Proxy.h" -#include "mozilla/dom/DOMJSProxyHandler.h" #include "mozilla/CycleCollectedJSContext.h" #include "mozilla/HoldDropJSObjects.h" #include "nsCycleCollectionTraversalCallback.h" @@ -49,13 +48,6 @@ void nsWrapperCache::ReleaseWrapper(void* aScriptObjectHolder) { if (PreservingWrapper()) { - // PreserveWrapper puts new DOM bindings in the JS holders hash, but they - // can also be in the DOM expando hash, so we need to try to remove them - // from both here. - JSObject* obj = GetWrapperPreserveColor(); - if (IsDOMBinding() && obj && js::IsProxy(obj)) { - DOMProxyHandler::ClearExternalRefsForWrapperRelease(obj); - } SetPreservingWrapper(false); cyclecollector::DropJSObjectsImpl(aScriptObjectHolder); } diff --git a/dom/bindings/Codegen.py b/dom/bindings/Codegen.py index 3094a98c41..3474d15fbd 100644 --- a/dom/bindings/Codegen.py +++ b/dom/bindings/Codegen.py @@ -3708,17 +3708,6 @@ class CGWrapWithCacheMethod(CGAbstractMethod): self.properties = properties def definition_body(self): - if self.descriptor.proxy: - preserveWrapper = dedent( - """ - // For DOM proxies, the only reliable way to preserve the wrapper - // is to force creation of the expando object. - JS::Rooted unused(aCx, - DOMProxyHandler::EnsureExpandoObject(aCx, aReflector)); - """) - else: - preserveWrapper = "PreserveWrapper(aObject);\n" - failureCode = dedent( """ aCache->ReleaseWrapper(aObject); @@ -3773,7 +3762,7 @@ class CGWrapWithCacheMethod(CGAbstractMethod): // somewhat common) to have a non-null aGivenProto which is the // same as canonicalProto. if (proto != canonicalProto) { - $*{preserveWrapper} + PreserveWrapper(aObject); } return true; @@ -3785,8 +3774,7 @@ class CGWrapWithCacheMethod(CGAbstractMethod): failureCode), slots=InitMemberSlots(self.descriptor, failureCode), setImmutablePrototype=SetImmutablePrototype(self.descriptor, - failureCode), - preserveWrapper=preserveWrapper) + failureCode)) class CGWrapMethod(CGAbstractMethod): @@ -15115,7 +15103,7 @@ class CGJSImplClass(CGBindingImplClass): NS_IMPL_CYCLE_COLLECTION_INHERITED(${ifaceName}, ${parentClass}, mImpl, mParent) NS_IMPL_ADDREF_INHERITED(${ifaceName}, ${parentClass}) NS_IMPL_RELEASE_INHERITED(${ifaceName}, ${parentClass}) - NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(${ifaceName}) + NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(${ifaceName}) NS_INTERFACE_MAP_END_INHERITING(${parentClass}) """, ifaceName=self.descriptor.name, @@ -17404,7 +17392,7 @@ class CGEventClass(CGBindingImplClass): $*{unlink} NS_IMPL_CYCLE_COLLECTION_UNLINK_END - NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(${nativeType}) + NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(${nativeType}) NS_INTERFACE_MAP_END_INHERITING(${parentType}) ${nativeType}::${nativeType}(mozilla::dom::EventTarget* aOwner) diff --git a/dom/bindings/DOMJSProxyHandler.cpp b/dom/bindings/DOMJSProxyHandler.cpp index a21ac28a1b..9466789918 100644 --- a/dom/bindings/DOMJSProxyHandler.cpp +++ b/dom/bindings/DOMJSProxyHandler.cpp @@ -69,33 +69,6 @@ struct SetDOMProxyInformation SetDOMProxyInformation gSetDOMProxyInformation; -// static -void -DOMProxyHandler::ClearExternalRefsForWrapperRelease(JSObject* obj) -{ - MOZ_ASSERT(IsDOMProxy(obj), "expected a DOM proxy object"); - JS::Value v = js::GetProxyExtra(obj, JSPROXYSLOT_EXPANDO); - if (v.isUndefined()) { - // No expando. - return; - } - - // See EnsureExpandoObject for the work we're trying to undo here. - - if (v.isObject()) { - // Drop us from the DOM expando hashtable. Don't worry about clearing our - // slot reference to the expando; we're about to die anyway. - xpc::ObjectScope(obj)->RemoveDOMExpandoObject(obj); - return; - } - - // Prevent having a dangling pointer to our expando from the - // ExpandoAndGeneration. - js::ExpandoAndGeneration* expandoAndGeneration = - static_cast(v.toPrivate()); - expandoAndGeneration->expando = UndefinedValue(); -} - // static JSObject* DOMProxyHandler::GetAndClearExpandoObject(JSObject* obj) @@ -108,7 +81,6 @@ DOMProxyHandler::GetAndClearExpandoObject(JSObject* obj) if (v.isObject()) { js::SetProxyExtra(obj, JSPROXYSLOT_EXPANDO, UndefinedValue()); - xpc::ObjectScope(obj)->RemoveDOMExpandoObject(obj); } else { js::ExpandoAndGeneration* expandoAndGeneration = static_cast(v.toPrivate()); @@ -168,19 +140,14 @@ DOMProxyHandler::EnsureExpandoObject(JSContext* cx, JS::Handle obj) if (!cache) { return expando; } + cache->PreserveWrapper(native); if (expandoAndGeneration) { - cache->PreserveWrapper(native); expandoAndGeneration->expando.setObject(*expando); return expando; } - if (!xpc::ObjectScope(obj)->RegisterDOMExpandoObject(obj)) { - return nullptr; - } - - cache->SetPreservingWrapper(true); js::SetProxyExtra(obj, JSPROXYSLOT_EXPANDO, ObjectValue(*expando)); return expando; diff --git a/dom/bindings/DOMJSProxyHandler.h b/dom/bindings/DOMJSProxyHandler.h index cd6e664974..86cc70555b 100644 --- a/dom/bindings/DOMJSProxyHandler.h +++ b/dom/bindings/DOMJSProxyHandler.h @@ -131,16 +131,6 @@ public: */ static JSObject* GetExpandoObject(JSObject* obj); - /* - * Clear the "external references" to this object. If you are not - * nsWrapperCAche::ReleaseWrapper, you do NOT want to be calling this method. - * - * XXXbz if we nixed the DOM expando hash and just had a finalizer that - * cleared out the value in the ExpandoAndGeneration in the shadowing case, - * could we just get rid of this function altogether? - */ - static void ClearExternalRefsForWrapperRelease(JSObject* obj); - /* * Clear the expando object for the given DOM proxy and return it. This * function will ensure that the returned object is exposed to active JS if diff --git a/dom/broadcastchannel/BroadcastChannel.cpp b/dom/broadcastchannel/BroadcastChannel.cpp index d8f7b81118..abd4be3032 100644 --- a/dom/broadcastchannel/BroadcastChannel.cpp +++ b/dom/broadcastchannel/BroadcastChannel.cpp @@ -672,7 +672,7 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(BroadcastChannel, tmp->Shutdown(); NS_IMPL_CYCLE_COLLECTION_UNLINK_END -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(BroadcastChannel) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(BroadcastChannel) NS_INTERFACE_MAP_ENTRY(nsIIPCBackgroundChildCreateCallback) NS_INTERFACE_MAP_ENTRY(nsIObserver) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) diff --git a/dom/browser-element/BrowserElementAudioChannel.cpp b/dom/browser-element/BrowserElementAudioChannel.cpp index c9c29e2eaa..8f67f990f2 100644 --- a/dom/browser-element/BrowserElementAudioChannel.cpp +++ b/dom/browser-element/BrowserElementAudioChannel.cpp @@ -27,7 +27,7 @@ namespace dom { NS_IMPL_ADDREF_INHERITED(BrowserElementAudioChannel, DOMEventTargetHelper) NS_IMPL_RELEASE_INHERITED(BrowserElementAudioChannel, DOMEventTargetHelper) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(BrowserElementAudioChannel) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(BrowserElementAudioChannel) NS_INTERFACE_MAP_ENTRY(nsISupportsWeakReference) NS_INTERFACE_MAP_ENTRY(nsIObserver) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) diff --git a/dom/canvas/OffscreenCanvas.cpp b/dom/canvas/OffscreenCanvas.cpp index dbe3df4ba8..dd87ac516f 100644 --- a/dom/canvas/OffscreenCanvas.cpp +++ b/dom/canvas/OffscreenCanvas.cpp @@ -369,7 +369,7 @@ NS_IMPL_CYCLE_COLLECTION_INHERITED(OffscreenCanvas, DOMEventTargetHelper, mCurre NS_IMPL_ADDREF_INHERITED(OffscreenCanvas, DOMEventTargetHelper) NS_IMPL_RELEASE_INHERITED(OffscreenCanvas, DOMEventTargetHelper) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(OffscreenCanvas) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(OffscreenCanvas) NS_INTERFACE_MAP_ENTRY(nsISupports) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) diff --git a/dom/events/CustomEvent.cpp b/dom/events/CustomEvent.cpp index b935d0f594..bb528f3ccc 100644 --- a/dom/events/CustomEvent.cpp +++ b/dom/events/CustomEvent.cpp @@ -43,7 +43,7 @@ NS_IMPL_CYCLE_COLLECTION_TRACE_END NS_IMPL_ADDREF_INHERITED(CustomEvent, Event) NS_IMPL_RELEASE_INHERITED(CustomEvent, Event) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(CustomEvent) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(CustomEvent) NS_INTERFACE_MAP_ENTRY(nsIDOMCustomEvent) NS_INTERFACE_MAP_END_INHERITING(Event) diff --git a/dom/events/DataContainerEvent.cpp b/dom/events/DataContainerEvent.cpp index 7550b59da8..66d0e09372 100644 --- a/dom/events/DataContainerEvent.cpp +++ b/dom/events/DataContainerEvent.cpp @@ -36,7 +36,7 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END NS_IMPL_ADDREF_INHERITED(DataContainerEvent, Event) NS_IMPL_RELEASE_INHERITED(DataContainerEvent, Event) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(DataContainerEvent) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(DataContainerEvent) NS_INTERFACE_MAP_ENTRY(nsIDOMDataContainerEvent) NS_INTERFACE_MAP_END_INHERITING(Event) diff --git a/dom/events/DeviceMotionEvent.cpp b/dom/events/DeviceMotionEvent.cpp index 99f3b15754..3f783dd2e5 100644 --- a/dom/events/DeviceMotionEvent.cpp +++ b/dom/events/DeviceMotionEvent.cpp @@ -21,7 +21,7 @@ NS_IMPL_CYCLE_COLLECTION_INHERITED(DeviceMotionEvent, Event, NS_IMPL_ADDREF_INHERITED(DeviceMotionEvent, Event) NS_IMPL_RELEASE_INHERITED(DeviceMotionEvent, Event) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(DeviceMotionEvent) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(DeviceMotionEvent) NS_INTERFACE_MAP_END_INHERITING(Event) void diff --git a/dom/events/MessageEvent.cpp b/dom/events/MessageEvent.cpp index 018f5eda58..6d235d7828 100644 --- a/dom/events/MessageEvent.cpp +++ b/dom/events/MessageEvent.cpp @@ -34,7 +34,7 @@ NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN_INHERITED(MessageEvent, Event) NS_IMPL_CYCLE_COLLECTION_TRACE_JS_MEMBER_CALLBACK(mData) NS_IMPL_CYCLE_COLLECTION_TRACE_END -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(MessageEvent) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(MessageEvent) NS_INTERFACE_MAP_END_INHERITING(Event) NS_IMPL_ADDREF_INHERITED(MessageEvent, Event) diff --git a/dom/events/StorageEvent.cpp b/dom/events/StorageEvent.cpp index ae4c386b32..857bae2975 100644 --- a/dom/events/StorageEvent.cpp +++ b/dom/events/StorageEvent.cpp @@ -25,7 +25,7 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(StorageEvent, Event) NS_IMPL_CYCLE_COLLECTION_UNLINK(mStorageArea) NS_IMPL_CYCLE_COLLECTION_UNLINK_END -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(StorageEvent) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(StorageEvent) NS_INTERFACE_MAP_END_INHERITING(Event) StorageEvent::StorageEvent(EventTarget* aOwner) diff --git a/dom/events/TouchEvent.cpp b/dom/events/TouchEvent.cpp index 2986198134..0cc5d5f20b 100644 --- a/dom/events/TouchEvent.cpp +++ b/dom/events/TouchEvent.cpp @@ -75,7 +75,7 @@ NS_IMPL_CYCLE_COLLECTION_INHERITED(TouchEvent, UIEvent, mTargetTouches, mChangedTouches) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(TouchEvent) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(TouchEvent) NS_INTERFACE_MAP_END_INHERITING(UIEvent) NS_IMPL_ADDREF_INHERITED(TouchEvent, UIEvent) diff --git a/dom/events/UIEvent.cpp b/dom/events/UIEvent.cpp index 40015f65eb..e5bbef1b89 100644 --- a/dom/events/UIEvent.cpp +++ b/dom/events/UIEvent.cpp @@ -99,7 +99,7 @@ NS_IMPL_CYCLE_COLLECTION_INHERITED(UIEvent, Event, NS_IMPL_ADDREF_INHERITED(UIEvent, Event) NS_IMPL_RELEASE_INHERITED(UIEvent, Event) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(UIEvent) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(UIEvent) NS_INTERFACE_MAP_ENTRY(nsIDOMUIEvent) NS_INTERFACE_MAP_END_INHERITING(Event) diff --git a/dom/events/XULCommandEvent.cpp b/dom/events/XULCommandEvent.cpp index 73c0d75894..bd91423a2b 100644 --- a/dom/events/XULCommandEvent.cpp +++ b/dom/events/XULCommandEvent.cpp @@ -31,7 +31,7 @@ NS_IMPL_RELEASE_INHERITED(XULCommandEvent, UIEvent) NS_IMPL_CYCLE_COLLECTION_INHERITED(XULCommandEvent, UIEvent, mSourceEvent) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(XULCommandEvent) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(XULCommandEvent) NS_INTERFACE_MAP_ENTRY(nsIDOMXULCommandEvent) NS_INTERFACE_MAP_END_INHERITING(UIEvent) diff --git a/dom/fetch/FetchObserver.cpp b/dom/fetch/FetchObserver.cpp index e46cbc4d63..678de74467 100644 --- a/dom/fetch/FetchObserver.cpp +++ b/dom/fetch/FetchObserver.cpp @@ -20,7 +20,7 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(FetchObserver, DOMEventTargetHelper) NS_IMPL_CYCLE_COLLECTION_UNLINK_END -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(FetchObserver) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(FetchObserver) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) NS_IMPL_ADDREF_INHERITED(FetchObserver, DOMEventTargetHelper) diff --git a/dom/filesystem/compat/FileSystemDirectoryEntry.cpp b/dom/filesystem/compat/FileSystemDirectoryEntry.cpp index 8eaa10af8d..6d1ad1f068 100644 --- a/dom/filesystem/compat/FileSystemDirectoryEntry.cpp +++ b/dom/filesystem/compat/FileSystemDirectoryEntry.cpp @@ -19,7 +19,7 @@ NS_IMPL_CYCLE_COLLECTION_INHERITED(FileSystemDirectoryEntry, FileSystemEntry, NS_IMPL_ADDREF_INHERITED(FileSystemDirectoryEntry, FileSystemEntry) NS_IMPL_RELEASE_INHERITED(FileSystemDirectoryEntry, FileSystemEntry) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(FileSystemDirectoryEntry) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(FileSystemDirectoryEntry) NS_INTERFACE_MAP_END_INHERITING(FileSystemEntry) FileSystemDirectoryEntry::FileSystemDirectoryEntry(nsIGlobalObject* aGlobal, diff --git a/dom/filesystem/compat/FileSystemFileEntry.cpp b/dom/filesystem/compat/FileSystemFileEntry.cpp index e09f3edf2b..363a42d885 100644 --- a/dom/filesystem/compat/FileSystemFileEntry.cpp +++ b/dom/filesystem/compat/FileSystemFileEntry.cpp @@ -74,7 +74,7 @@ NS_IMPL_CYCLE_COLLECTION_INHERITED(FileSystemFileEntry, FileSystemEntry, mFile) NS_IMPL_ADDREF_INHERITED(FileSystemFileEntry, FileSystemEntry) NS_IMPL_RELEASE_INHERITED(FileSystemFileEntry, FileSystemEntry) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(FileSystemFileEntry) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(FileSystemFileEntry) NS_INTERFACE_MAP_END_INHERITING(FileSystemEntry) FileSystemFileEntry::FileSystemFileEntry(nsIGlobalObject* aGlobal, diff --git a/dom/filesystem/compat/FileSystemRootDirectoryEntry.cpp b/dom/filesystem/compat/FileSystemRootDirectoryEntry.cpp index 1cfb1a54d7..a89e232099 100644 --- a/dom/filesystem/compat/FileSystemRootDirectoryEntry.cpp +++ b/dom/filesystem/compat/FileSystemRootDirectoryEntry.cpp @@ -16,7 +16,7 @@ NS_IMPL_CYCLE_COLLECTION_INHERITED(FileSystemRootDirectoryEntry, NS_IMPL_ADDREF_INHERITED(FileSystemRootDirectoryEntry, FileSystemDirectoryEntry) NS_IMPL_RELEASE_INHERITED(FileSystemRootDirectoryEntry, FileSystemDirectoryEntry) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(FileSystemRootDirectoryEntry) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(FileSystemRootDirectoryEntry) NS_INTERFACE_MAP_END_INHERITING(FileSystemDirectoryEntry) FileSystemRootDirectoryEntry::FileSystemRootDirectoryEntry(nsIGlobalObject* aGlobal, diff --git a/dom/filesystem/compat/FileSystemRootDirectoryReader.cpp b/dom/filesystem/compat/FileSystemRootDirectoryReader.cpp index 01649aa100..c07f62f557 100644 --- a/dom/filesystem/compat/FileSystemRootDirectoryReader.cpp +++ b/dom/filesystem/compat/FileSystemRootDirectoryReader.cpp @@ -52,7 +52,7 @@ NS_IMPL_ADDREF_INHERITED(FileSystemRootDirectoryReader, NS_IMPL_RELEASE_INHERITED(FileSystemRootDirectoryReader, FileSystemDirectoryReader) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(FileSystemRootDirectoryReader) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(FileSystemRootDirectoryReader) NS_INTERFACE_MAP_END_INHERITING(FileSystemDirectoryReader) FileSystemRootDirectoryReader::FileSystemRootDirectoryReader(FileSystemDirectoryEntry* aParentEntry, diff --git a/dom/gamepad/GamepadServiceTest.cpp b/dom/gamepad/GamepadServiceTest.cpp index 8e42c9de9e..18527e3b39 100644 --- a/dom/gamepad/GamepadServiceTest.cpp +++ b/dom/gamepad/GamepadServiceTest.cpp @@ -44,7 +44,7 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(GamepadServiceTest, NS_IMPL_CYCLE_COLLECTION_UNLINK(mWindow) NS_IMPL_CYCLE_COLLECTION_UNLINK_END -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(GamepadServiceTest) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(GamepadServiceTest) NS_INTERFACE_MAP_ENTRY(nsIIPCBackgroundChildCreateCallback) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) diff --git a/dom/html/HTMLAnchorElement.cpp b/dom/html/HTMLAnchorElement.cpp index 2dc20cff09..2fb5ea4677 100644 --- a/dom/html/HTMLAnchorElement.cpp +++ b/dom/html/HTMLAnchorElement.cpp @@ -57,14 +57,10 @@ HTMLAnchorElement::IsInteractiveHTMLContent(bool aIgnoreTabindex) const nsGenericHTMLElement::IsInteractiveHTMLContent(aIgnoreTabindex); } -NS_INTERFACE_TABLE_HEAD_CYCLE_COLLECTION_INHERITED(HTMLAnchorElement) - NS_INTERFACE_TABLE_INHERITED(HTMLAnchorElement, - nsIDOMHTMLAnchorElement, - Link) -NS_INTERFACE_TABLE_TAIL_INHERITING(nsGenericHTMLElement) - -NS_IMPL_ADDREF_INHERITED(HTMLAnchorElement, Element) -NS_IMPL_RELEASE_INHERITED(HTMLAnchorElement, Element) +NS_IMPL_ISUPPORTS_CYCLE_COLLECTION_INHERITED(HTMLAnchorElement, + nsGenericHTMLElement, + nsIDOMHTMLAnchorElement, + Link) NS_IMPL_CYCLE_COLLECTION_CLASS(HTMLAnchorElement) diff --git a/dom/html/HTMLAreaElement.cpp b/dom/html/HTMLAreaElement.cpp index 2ffc00848b..89c25f2902 100644 --- a/dom/html/HTMLAreaElement.cpp +++ b/dom/html/HTMLAreaElement.cpp @@ -27,26 +27,14 @@ HTMLAreaElement::~HTMLAreaElement() { } -NS_INTERFACE_TABLE_HEAD_CYCLE_COLLECTION_INHERITED(HTMLAreaElement) - NS_INTERFACE_TABLE_INHERITED(HTMLAreaElement, - nsIDOMHTMLAreaElement, - Link) -NS_INTERFACE_TABLE_TAIL_INHERITING(nsGenericHTMLElement) +NS_IMPL_ISUPPORTS_CYCLE_COLLECTION_INHERITED(HTMLAreaElement, + nsGenericHTMLElement, + nsIDOMHTMLAreaElement, + Link) -NS_IMPL_ADDREF_INHERITED(HTMLAreaElement, Element) -NS_IMPL_RELEASE_INHERITED(HTMLAreaElement, Element) - -NS_IMPL_CYCLE_COLLECTION_CLASS(HTMLAreaElement) - -NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(HTMLAreaElement, - nsGenericHTMLElement) - NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mRelList) -NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END - -NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(HTMLAreaElement, - nsGenericHTMLElement) - NS_IMPL_CYCLE_COLLECTION_UNLINK(mRelList) -NS_IMPL_CYCLE_COLLECTION_UNLINK_END +NS_IMPL_CYCLE_COLLECTION_INHERITED(HTMLAreaElement, + nsGenericHTMLElement, + mRelList) NS_IMPL_ELEMENT_CLONE(HTMLAreaElement) diff --git a/dom/html/HTMLButtonElement.cpp b/dom/html/HTMLButtonElement.cpp index 7f0852d11d..3e48c09d16 100644 --- a/dom/html/HTMLButtonElement.cpp +++ b/dom/html/HTMLButtonElement.cpp @@ -77,16 +77,10 @@ NS_IMPL_CYCLE_COLLECTION_INHERITED(HTMLButtonElement, nsGenericHTMLFormElementWithState, mValidity) -NS_IMPL_ADDREF_INHERITED(HTMLButtonElement, Element) -NS_IMPL_RELEASE_INHERITED(HTMLButtonElement, Element) - - -// QueryInterface implementation for HTMLButtonElement -NS_INTERFACE_TABLE_HEAD_CYCLE_COLLECTION_INHERITED(HTMLButtonElement) - NS_INTERFACE_TABLE_INHERITED(HTMLButtonElement, - nsIDOMHTMLButtonElement, - nsIConstraintValidation) -NS_INTERFACE_TABLE_TAIL_INHERITING(nsGenericHTMLFormElementWithState) +NS_IMPL_ISUPPORTS_CYCLE_COLLECTION_INHERITED(HTMLButtonElement, + nsGenericHTMLFormElementWithState, + nsIDOMHTMLButtonElement, + nsIConstraintValidation) // nsIConstraintValidation NS_IMPL_NSICONSTRAINTVALIDATION_EXCEPT_SETCUSTOMVALIDITY(HTMLButtonElement) diff --git a/dom/html/HTMLCanvasElement.cpp b/dom/html/HTMLCanvasElement.cpp index 21f1d3df29..1d6c008240 100644 --- a/dom/html/HTMLCanvasElement.cpp +++ b/dom/html/HTMLCanvasElement.cpp @@ -380,12 +380,9 @@ NS_IMPL_CYCLE_COLLECTION_INHERITED(HTMLCanvasElement, nsGenericHTMLElement, mPrintState, mOriginalCanvas, mOffscreenCanvas) -NS_IMPL_ADDREF_INHERITED(HTMLCanvasElement, Element) -NS_IMPL_RELEASE_INHERITED(HTMLCanvasElement, Element) - -NS_INTERFACE_TABLE_HEAD_CYCLE_COLLECTION_INHERITED(HTMLCanvasElement) - NS_INTERFACE_TABLE_INHERITED(HTMLCanvasElement, nsIDOMHTMLCanvasElement) -NS_INTERFACE_TABLE_TAIL_INHERITING(nsGenericHTMLElement) +NS_IMPL_ISUPPORTS_CYCLE_COLLECTION_INHERITED(HTMLCanvasElement, + nsGenericHTMLElement, + nsIDOMHTMLCanvasElement) NS_IMPL_ELEMENT_CLONE(HTMLCanvasElement) @@ -691,7 +688,7 @@ NS_IMPL_ADDREF_INHERITED(CanvasCaptureTrackSource, MediaStreamTrackSource) NS_IMPL_RELEASE_INHERITED(CanvasCaptureTrackSource, MediaStreamTrackSource) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(CanvasCaptureTrackSource) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(CanvasCaptureTrackSource) NS_INTERFACE_MAP_END_INHERITING(MediaStreamTrackSource) NS_IMPL_CYCLE_COLLECTION_INHERITED(CanvasCaptureTrackSource, MediaStreamTrackSource, diff --git a/dom/html/HTMLDataListElement.cpp b/dom/html/HTMLDataListElement.cpp index 41eec0cc4f..4934e393e3 100644 --- a/dom/html/HTMLDataListElement.cpp +++ b/dom/html/HTMLDataListElement.cpp @@ -27,7 +27,7 @@ NS_IMPL_CYCLE_COLLECTION_INHERITED(HTMLDataListElement, nsGenericHTMLElement, NS_IMPL_ADDREF_INHERITED(HTMLDataListElement, Element) NS_IMPL_RELEASE_INHERITED(HTMLDataListElement, Element) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(HTMLDataListElement) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(HTMLDataListElement) NS_INTERFACE_MAP_END_INHERITING(nsGenericHTMLElement) diff --git a/dom/html/HTMLFormControlsCollection.h b/dom/html/HTMLFormControlsCollection.h index 76e34ab4f3..4ce6ccf87b 100644 --- a/dom/html/HTMLFormControlsCollection.h +++ b/dom/html/HTMLFormControlsCollection.h @@ -78,6 +78,7 @@ public: // nsWrapperCache using nsWrapperCache::GetWrapperPreserveColor; + using nsWrapperCache::PreserveWrapper; virtual JSObject* WrapObject(JSContext* aCx, JS::Handle aGivenProto) override; protected: virtual ~HTMLFormControlsCollection(); @@ -85,6 +86,10 @@ protected: { return nsWrapperCache::GetWrapperPreserveColor(); } + virtual void PreserveWrapperInternal(nsISupports* aScriptObjectHolder) override + { + nsWrapperCache::PreserveWrapper(aScriptObjectHolder); + } public: static bool ShouldBeInElements(nsIFormControl* aFormControl); diff --git a/dom/html/HTMLMediaElement.cpp b/dom/html/HTMLMediaElement.cpp index 732be874de..7cce0a3441 100644 --- a/dom/html/HTMLMediaElement.cpp +++ b/dom/html/HTMLMediaElement.cpp @@ -923,7 +923,7 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(HTMLMediaElement, nsGenericHTMLE NS_IMPL_CYCLE_COLLECTION_UNLINK(mPendingPlayPromises) NS_IMPL_CYCLE_COLLECTION_UNLINK_END -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(HTMLMediaElement) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(HTMLMediaElement) NS_INTERFACE_MAP_ENTRY(nsIDOMHTMLMediaElement) NS_INTERFACE_MAP_ENTRY(nsIAudioChannelAgentCallback) NS_INTERFACE_MAP_END_INHERITING(nsGenericHTMLElement) @@ -2517,7 +2517,7 @@ NS_IMPL_ADDREF_INHERITED(HTMLMediaElement::StreamCaptureTrackSource, MediaStreamTrackSource) NS_IMPL_RELEASE_INHERITED(HTMLMediaElement::StreamCaptureTrackSource, MediaStreamTrackSource) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(HTMLMediaElement::StreamCaptureTrackSource) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(HTMLMediaElement::StreamCaptureTrackSource) NS_INTERFACE_MAP_END_INHERITING(MediaStreamTrackSource) NS_IMPL_CYCLE_COLLECTION_INHERITED(HTMLMediaElement::StreamCaptureTrackSource, MediaStreamTrackSource, @@ -2596,7 +2596,7 @@ NS_IMPL_ADDREF_INHERITED(HTMLMediaElement::DecoderCaptureTrackSource, MediaStreamTrackSource) NS_IMPL_RELEASE_INHERITED(HTMLMediaElement::DecoderCaptureTrackSource, MediaStreamTrackSource) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(HTMLMediaElement::DecoderCaptureTrackSource) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(HTMLMediaElement::DecoderCaptureTrackSource) NS_INTERFACE_MAP_END_INHERITING(MediaStreamTrackSource) NS_IMPL_CYCLE_COLLECTION_INHERITED(HTMLMediaElement::DecoderCaptureTrackSource, MediaStreamTrackSource, @@ -2640,7 +2640,7 @@ NS_IMPL_ADDREF_INHERITED(HTMLMediaElement::CaptureStreamTrackSourceGetter, MediaStreamTrackSourceGetter) NS_IMPL_RELEASE_INHERITED(HTMLMediaElement::CaptureStreamTrackSourceGetter, MediaStreamTrackSourceGetter) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(HTMLMediaElement::CaptureStreamTrackSourceGetter) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(HTMLMediaElement::CaptureStreamTrackSourceGetter) NS_INTERFACE_MAP_END_INHERITING(MediaStreamTrackSourceGetter) NS_IMPL_CYCLE_COLLECTION_INHERITED(HTMLMediaElement::CaptureStreamTrackSourceGetter, MediaStreamTrackSourceGetter, diff --git a/dom/html/HTMLOptionsCollection.h b/dom/html/HTMLOptionsCollection.h index dc13eba9d5..f339efc04f 100644 --- a/dom/html/HTMLOptionsCollection.h +++ b/dom/html/HTMLOptionsCollection.h @@ -44,6 +44,7 @@ public: // nsWrapperCache using nsWrapperCache::GetWrapperPreserveColor; using nsWrapperCache::GetWrapper; + using nsWrapperCache::PreserveWrapper; virtual JSObject* WrapObject(JSContext* aCx, JS::Handle aGivenProto) override; protected: virtual ~HTMLOptionsCollection() = default; @@ -52,6 +53,10 @@ protected: { return nsWrapperCache::GetWrapperPreserveColor(); } + virtual void PreserveWrapperInternal(nsISupports* aScriptObjectHolder) override + { + nsWrapperCache::PreserveWrapper(aScriptObjectHolder); + } public: // nsIDOMHTMLOptionsCollection interface diff --git a/dom/html/HTMLSourceElement.cpp b/dom/html/HTMLSourceElement.cpp index 4d202885c5..f6913b5468 100644 --- a/dom/html/HTMLSourceElement.cpp +++ b/dom/html/HTMLSourceElement.cpp @@ -38,7 +38,7 @@ NS_IMPL_CYCLE_COLLECTION_INHERITED(HTMLSourceElement, nsGenericHTMLElement, NS_IMPL_ADDREF_INHERITED(HTMLSourceElement, nsGenericHTMLElement) NS_IMPL_RELEASE_INHERITED(HTMLSourceElement, nsGenericHTMLElement) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(HTMLSourceElement) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(HTMLSourceElement) NS_INTERFACE_MAP_ENTRY(nsIDOMHTMLSourceElement) NS_INTERFACE_MAP_END_INHERITING(nsGenericHTMLElement) diff --git a/dom/html/HTMLTableElement.cpp b/dom/html/HTMLTableElement.cpp index a2a6937432..7cf6f9bdd8 100644 --- a/dom/html/HTMLTableElement.cpp +++ b/dom/html/HTMLTableElement.cpp @@ -48,6 +48,7 @@ public: // nsWrapperCache using nsWrapperCache::GetWrapperPreserveColor; + using nsWrapperCache::PreserveWrapper; virtual JSObject* WrapObject(JSContext* aCx, JS::Handle aGivenProto) override; protected: virtual ~TableRowsCollection(); @@ -56,6 +57,10 @@ protected: { return nsWrapperCache::GetWrapperPreserveColor(); } + virtual void PreserveWrapperInternal(nsISupports* aScriptObjectHolder) override + { + nsWrapperCache::PreserveWrapper(aScriptObjectHolder); + } // Those rows that are not in table sections HTMLTableElement* mParent; @@ -359,7 +364,7 @@ NS_IMPL_ADDREF_INHERITED(HTMLTableElement, Element) NS_IMPL_RELEASE_INHERITED(HTMLTableElement, Element) // QueryInterface implementation for HTMLTableElement -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(HTMLTableElement) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(HTMLTableElement) NS_INTERFACE_MAP_END_INHERITING(nsGenericHTMLElement) diff --git a/dom/html/HTMLTableRowElement.cpp b/dom/html/HTMLTableRowElement.cpp index 8f6316dc26..efef006bc4 100644 --- a/dom/html/HTMLTableRowElement.cpp +++ b/dom/html/HTMLTableRowElement.cpp @@ -39,7 +39,7 @@ NS_IMPL_ADDREF_INHERITED(HTMLTableRowElement, Element) NS_IMPL_RELEASE_INHERITED(HTMLTableRowElement, Element) // QueryInterface implementation for HTMLTableRowElement -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(HTMLTableRowElement) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(HTMLTableRowElement) NS_INTERFACE_MAP_END_INHERITING(nsGenericHTMLElement) diff --git a/dom/html/HTMLTableSectionElement.cpp b/dom/html/HTMLTableSectionElement.cpp index 88cb76e140..fbe3a6bc98 100644 --- a/dom/html/HTMLTableSectionElement.cpp +++ b/dom/html/HTMLTableSectionElement.cpp @@ -39,7 +39,7 @@ NS_IMPL_ADDREF_INHERITED(HTMLTableSectionElement, Element) NS_IMPL_RELEASE_INHERITED(HTMLTableSectionElement, Element) // QueryInterface implementation for HTMLTableSectionElement -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(HTMLTableSectionElement) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(HTMLTableSectionElement) NS_INTERFACE_MAP_END_INHERITING(nsGenericHTMLElement) diff --git a/dom/html/HTMLTemplateElement.cpp b/dom/html/HTMLTemplateElement.cpp index d47235347e..a0a7d2313e 100644 --- a/dom/html/HTMLTemplateElement.cpp +++ b/dom/html/HTMLTemplateElement.cpp @@ -56,7 +56,7 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(HTMLTemplateElement, NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END // QueryInterface implementation for HTMLTemplateElement -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(HTMLTemplateElement) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(HTMLTemplateElement) NS_INTERFACE_MAP_END_INHERITING(nsGenericHTMLElement) NS_IMPL_ELEMENT_CLONE(HTMLTemplateElement) diff --git a/dom/html/HTMLTrackElement.cpp b/dom/html/HTMLTrackElement.cpp index 710e506d6c..19b4b120a8 100644 --- a/dom/html/HTMLTrackElement.cpp +++ b/dom/html/HTMLTrackElement.cpp @@ -151,7 +151,7 @@ NS_IMPL_RELEASE_INHERITED(HTMLTrackElement, Element) NS_IMPL_CYCLE_COLLECTION_INHERITED(HTMLTrackElement, nsGenericHTMLElement, mTrack, mMediaParent, mListener) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(HTMLTrackElement) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(HTMLTrackElement) NS_INTERFACE_MAP_END_INHERITING(nsGenericHTMLElement) void diff --git a/dom/html/nsIHTMLCollection.h b/dom/html/nsIHTMLCollection.h index d27f82d1fa..dde2f2b154 100644 --- a/dom/html/nsIHTMLCollection.h +++ b/dom/html/nsIHTMLCollection.h @@ -85,9 +85,16 @@ public: } return obj; } + void PreserveWrapper(nsISupports* aScriptObjectHolder) + { + PreserveWrapperInternal(aScriptObjectHolder); + } virtual JSObject* WrapObject(JSContext* aCx, JS::Handle aGivenProto) = 0; protected: + // Hook for calling nsWrapperCache::GetWrapperPreserveColor. virtual JSObject* GetWrapperPreserveColorInternal() = 0; + // Hook for calling nsWrapperCache::PreserveWrapper. + virtual void PreserveWrapperInternal(nsISupports* aScriptObjectHolder) = 0; }; NS_DEFINE_STATIC_IID_ACCESSOR(nsIHTMLCollection, NS_IHTMLCOLLECTION_IID) diff --git a/dom/indexedDB/IDBDatabase.cpp b/dom/indexedDB/IDBDatabase.cpp index 8e6eb18ee0..96562fc88a 100644 --- a/dom/indexedDB/IDBDatabase.cpp +++ b/dom/indexedDB/IDBDatabase.cpp @@ -1232,7 +1232,7 @@ IDBDatabase::LogWarning(const char* aMessageName, NS_IMPL_ADDREF_INHERITED(IDBDatabase, IDBWrapperCache) NS_IMPL_RELEASE_INHERITED(IDBDatabase, IDBWrapperCache) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(IDBDatabase) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(IDBDatabase) NS_INTERFACE_MAP_END_INHERITING(IDBWrapperCache) NS_IMPL_CYCLE_COLLECTION_CLASS(IDBDatabase) diff --git a/dom/indexedDB/IDBFileHandle.cpp b/dom/indexedDB/IDBFileHandle.cpp index 3ee284386c..3fc0fcfced 100644 --- a/dom/indexedDB/IDBFileHandle.cpp +++ b/dom/indexedDB/IDBFileHandle.cpp @@ -100,7 +100,7 @@ IDBFileHandle::GetMetadata(const IDBFileMetadataParameters& aParameters, NS_IMPL_ADDREF_INHERITED(IDBFileHandle, DOMEventTargetHelper) NS_IMPL_RELEASE_INHERITED(IDBFileHandle, DOMEventTargetHelper) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(IDBFileHandle) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(IDBFileHandle) NS_INTERFACE_MAP_ENTRY(nsIRunnable) NS_INTERFACE_MAP_ENTRY(nsISupportsWeakReference) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) diff --git a/dom/indexedDB/IDBFileRequest.cpp b/dom/indexedDB/IDBFileRequest.cpp index c12c69ee34..d141c45638 100644 --- a/dom/indexedDB/IDBFileRequest.cpp +++ b/dom/indexedDB/IDBFileRequest.cpp @@ -56,7 +56,7 @@ IDBFileRequest::Create(nsPIDOMWindowInner* aOwner, IDBFileHandle* aFileHandle, NS_IMPL_ADDREF_INHERITED(IDBFileRequest, DOMRequest) NS_IMPL_RELEASE_INHERITED(IDBFileRequest, DOMRequest) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(IDBFileRequest) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(IDBFileRequest) NS_INTERFACE_MAP_END_INHERITING(DOMRequest) NS_IMPL_CYCLE_COLLECTION_INHERITED(IDBFileRequest, DOMRequest, diff --git a/dom/indexedDB/IDBMutableFile.cpp b/dom/indexedDB/IDBMutableFile.cpp index 1c35748adc..a4d1319810 100644 --- a/dom/indexedDB/IDBMutableFile.cpp +++ b/dom/indexedDB/IDBMutableFile.cpp @@ -217,7 +217,7 @@ IDBMutableFile::GetFile(ErrorResult& aError) NS_IMPL_ADDREF_INHERITED(IDBMutableFile, DOMEventTargetHelper) NS_IMPL_RELEASE_INHERITED(IDBMutableFile, DOMEventTargetHelper) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(IDBMutableFile) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(IDBMutableFile) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) NS_IMPL_CYCLE_COLLECTION_CLASS(IDBMutableFile) diff --git a/dom/indexedDB/IDBRequest.cpp b/dom/indexedDB/IDBRequest.cpp index d68d7cc674..06e8b80a50 100644 --- a/dom/indexedDB/IDBRequest.cpp +++ b/dom/indexedDB/IDBRequest.cpp @@ -438,7 +438,7 @@ NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN_INHERITED(IDBRequest, IDBWrapperCache) NS_IMPL_CYCLE_COLLECTION_TRACE_JS_MEMBER_CALLBACK(mResultVal) NS_IMPL_CYCLE_COLLECTION_TRACE_END -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(IDBRequest) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(IDBRequest) if (aIID.Equals(kIDBRequestIID)) { foundInterface = this; } else @@ -614,7 +614,7 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(IDBOpenDBRequest, // Don't unlink mFactory! NS_IMPL_CYCLE_COLLECTION_UNLINK_END -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(IDBOpenDBRequest) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(IDBOpenDBRequest) NS_INTERFACE_MAP_END_INHERITING(IDBRequest) NS_IMPL_ADDREF_INHERITED(IDBOpenDBRequest, IDBRequest) diff --git a/dom/indexedDB/IDBTransaction.cpp b/dom/indexedDB/IDBTransaction.cpp index 8034588d31..8256c7e1bc 100644 --- a/dom/indexedDB/IDBTransaction.cpp +++ b/dom/indexedDB/IDBTransaction.cpp @@ -962,7 +962,7 @@ IDBTransaction::ObjectStore(const nsAString& aName, ErrorResult& aRv) NS_IMPL_ADDREF_INHERITED(IDBTransaction, IDBWrapperCache) NS_IMPL_RELEASE_INHERITED(IDBTransaction, IDBWrapperCache) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(IDBTransaction) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(IDBTransaction) NS_INTERFACE_MAP_ENTRY(nsIRunnable) NS_INTERFACE_MAP_END_INHERITING(IDBWrapperCache) diff --git a/dom/indexedDB/IDBWrapperCache.cpp b/dom/indexedDB/IDBWrapperCache.cpp index 03e61f12f4..e27521c6f6 100644 --- a/dom/indexedDB/IDBWrapperCache.cpp +++ b/dom/indexedDB/IDBWrapperCache.cpp @@ -34,7 +34,7 @@ NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN_INHERITED(IDBWrapperCache, NS_IMPL_CYCLE_COLLECTION_TRACE_JS_MEMBER_CALLBACK(mScriptOwner) NS_IMPL_CYCLE_COLLECTION_TRACE_END -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(IDBWrapperCache) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(IDBWrapperCache) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) NS_IMPL_ADDREF_INHERITED(IDBWrapperCache, DOMEventTargetHelper) diff --git a/dom/ipc/TabChild.cpp b/dom/ipc/TabChild.cpp index ed183eb1b2..ceb97e5421 100644 --- a/dom/ipc/TabChild.cpp +++ b/dom/ipc/TabChild.cpp @@ -695,7 +695,7 @@ TabChild::UpdateFrameType() nsIDocShell::FRAME_TYPE_REGULAR); } -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(TabChild) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(TabChild) NS_INTERFACE_MAP_ENTRY(nsIWebBrowserChrome) NS_INTERFACE_MAP_ENTRY(nsIWebBrowserChrome2) NS_INTERFACE_MAP_ENTRY(nsIEmbeddingSiteWindow) @@ -3109,7 +3109,7 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(TabChildGlobal, tmp->TraverseHostObjectURIs(cb); NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(TabChildGlobal) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(TabChildGlobal) NS_INTERFACE_MAP_ENTRY(nsIMessageListenerManager) NS_INTERFACE_MAP_ENTRY(nsIMessageSender) NS_INTERFACE_MAP_ENTRY(nsISyncMessageSender) diff --git a/dom/media/CanvasCaptureMediaStream.cpp b/dom/media/CanvasCaptureMediaStream.cpp index acf2059c77..0fe5947f83 100644 --- a/dom/media/CanvasCaptureMediaStream.cpp +++ b/dom/media/CanvasCaptureMediaStream.cpp @@ -212,7 +212,7 @@ NS_IMPL_CYCLE_COLLECTION_INHERITED(CanvasCaptureMediaStream, DOMMediaStream, NS_IMPL_ADDREF_INHERITED(CanvasCaptureMediaStream, DOMMediaStream) NS_IMPL_RELEASE_INHERITED(CanvasCaptureMediaStream, DOMMediaStream) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(CanvasCaptureMediaStream) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(CanvasCaptureMediaStream) NS_INTERFACE_MAP_END_INHERITING(DOMMediaStream) CanvasCaptureMediaStream::CanvasCaptureMediaStream(nsPIDOMWindowInner* aWindow, diff --git a/dom/media/DOMMediaStream.cpp b/dom/media/DOMMediaStream.cpp index 53d096d6e3..345a10714b 100755 --- a/dom/media/DOMMediaStream.cpp +++ b/dom/media/DOMMediaStream.cpp @@ -338,7 +338,7 @@ NS_IMPL_ADDREF_INHERITED(DOMMediaStream::PlaybackTrackListener, MediaStreamTrackConsumer) NS_IMPL_RELEASE_INHERITED(DOMMediaStream::PlaybackTrackListener, MediaStreamTrackConsumer) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(DOMMediaStream::PlaybackTrackListener) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(DOMMediaStream::PlaybackTrackListener) NS_INTERFACE_MAP_END_INHERITING(MediaStreamTrackConsumer) NS_IMPL_CYCLE_COLLECTION_INHERITED(DOMMediaStream::PlaybackTrackListener, MediaStreamTrackConsumer, @@ -374,7 +374,7 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END NS_IMPL_ADDREF_INHERITED(DOMMediaStream, DOMEventTargetHelper) NS_IMPL_RELEASE_INHERITED(DOMMediaStream, DOMEventTargetHelper) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(DOMMediaStream) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(DOMMediaStream) NS_INTERFACE_MAP_ENTRY(DOMMediaStream) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) @@ -391,7 +391,7 @@ NS_IMPL_CYCLE_COLLECTION_INHERITED(DOMAudioNodeMediaStream, DOMMediaStream, NS_IMPL_ADDREF_INHERITED(DOMAudioNodeMediaStream, DOMMediaStream) NS_IMPL_RELEASE_INHERITED(DOMAudioNodeMediaStream, DOMMediaStream) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(DOMAudioNodeMediaStream) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(DOMAudioNodeMediaStream) NS_INTERFACE_MAP_END_INHERITING(DOMMediaStream) DOMMediaStream::DOMMediaStream(nsPIDOMWindowInner* aWindow, @@ -697,7 +697,7 @@ NS_IMPL_ADDREF_INHERITED(ClonedStreamSourceGetter, MediaStreamTrackSourceGetter) NS_IMPL_RELEASE_INHERITED(ClonedStreamSourceGetter, MediaStreamTrackSourceGetter) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(ClonedStreamSourceGetter) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(ClonedStreamSourceGetter) NS_INTERFACE_MAP_END_INHERITING(MediaStreamTrackSourceGetter) NS_IMPL_CYCLE_COLLECTION_INHERITED(ClonedStreamSourceGetter, MediaStreamTrackSourceGetter, diff --git a/dom/media/MediaManager.cpp b/dom/media/MediaManager.cpp index 970ece733b..469536334e 100644 --- a/dom/media/MediaManager.cpp +++ b/dom/media/MediaManager.cpp @@ -949,7 +949,7 @@ protected: NS_IMPL_ADDREF_INHERITED(FakeTrackSourceGetter, MediaStreamTrackSourceGetter) NS_IMPL_RELEASE_INHERITED(FakeTrackSourceGetter, MediaStreamTrackSourceGetter) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(FakeTrackSourceGetter) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(FakeTrackSourceGetter) NS_INTERFACE_MAP_END_INHERITING(MediaStreamTrackSourceGetter) NS_IMPL_CYCLE_COLLECTION_INHERITED(FakeTrackSourceGetter, MediaStreamTrackSourceGetter, diff --git a/dom/media/MediaRecorder.cpp b/dom/media/MediaRecorder.cpp index 4070efb137..0523d93f8d 100644 --- a/dom/media/MediaRecorder.cpp +++ b/dom/media/MediaRecorder.cpp @@ -118,7 +118,7 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(MediaRecorder, NS_IMPL_CYCLE_COLLECTION_UNLINK(mDocument) NS_IMPL_CYCLE_COLLECTION_UNLINK_END -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(MediaRecorder) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(MediaRecorder) NS_INTERFACE_MAP_ENTRY(nsIDocumentActivity) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) diff --git a/dom/media/MediaStreamTrack.cpp b/dom/media/MediaStreamTrack.cpp index 648ec82a0f..5772af85cc 100644 --- a/dom/media/MediaStreamTrack.cpp +++ b/dom/media/MediaStreamTrack.cpp @@ -206,7 +206,7 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END NS_IMPL_ADDREF_INHERITED(MediaStreamTrack, DOMEventTargetHelper) NS_IMPL_RELEASE_INHERITED(MediaStreamTrack, DOMEventTargetHelper) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(MediaStreamTrack) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(MediaStreamTrack) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) nsPIDOMWindowInner* diff --git a/dom/media/MediaTrack.cpp b/dom/media/MediaTrack.cpp index 02ddf22b15..392bc69d96 100644 --- a/dom/media/MediaTrack.cpp +++ b/dom/media/MediaTrack.cpp @@ -31,7 +31,7 @@ NS_IMPL_CYCLE_COLLECTION_INHERITED(MediaTrack, DOMEventTargetHelper, mList) NS_IMPL_ADDREF_INHERITED(MediaTrack, DOMEventTargetHelper) NS_IMPL_RELEASE_INHERITED(MediaTrack, DOMEventTargetHelper) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(MediaTrack) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(MediaTrack) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) void diff --git a/dom/media/MediaTrackList.cpp b/dom/media/MediaTrackList.cpp index f6bc29d2ff..5a5b8d22b5 100644 --- a/dom/media/MediaTrackList.cpp +++ b/dom/media/MediaTrackList.cpp @@ -34,7 +34,7 @@ NS_IMPL_CYCLE_COLLECTION_INHERITED(MediaTrackList, NS_IMPL_ADDREF_INHERITED(MediaTrackList, DOMEventTargetHelper) NS_IMPL_RELEASE_INHERITED(MediaTrackList, DOMEventTargetHelper) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(MediaTrackList) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(MediaTrackList) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) MediaTrack* diff --git a/dom/media/TextTrack.cpp b/dom/media/TextTrack.cpp index 3f4af7a8bc..be40105995 100644 --- a/dom/media/TextTrack.cpp +++ b/dom/media/TextTrack.cpp @@ -25,7 +25,7 @@ NS_IMPL_CYCLE_COLLECTION_INHERITED(TextTrack, NS_IMPL_ADDREF_INHERITED(TextTrack, DOMEventTargetHelper) NS_IMPL_RELEASE_INHERITED(TextTrack, DOMEventTargetHelper) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(TextTrack) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(TextTrack) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) TextTrack::TextTrack(nsPIDOMWindowInner* aOwnerWindow, diff --git a/dom/media/TextTrackCue.cpp b/dom/media/TextTrackCue.cpp index 5ca70f84e3..7bf18b1754 100644 --- a/dom/media/TextTrackCue.cpp +++ b/dom/media/TextTrackCue.cpp @@ -23,7 +23,7 @@ NS_IMPL_CYCLE_COLLECTION_INHERITED(TextTrackCue, NS_IMPL_ADDREF_INHERITED(TextTrackCue, DOMEventTargetHelper) NS_IMPL_RELEASE_INHERITED(TextTrackCue, DOMEventTargetHelper) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(TextTrackCue) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(TextTrackCue) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) StaticRefPtr TextTrackCue::sParserWrapper; diff --git a/dom/media/TextTrackList.cpp b/dom/media/TextTrackList.cpp index e557d97f55..afeff816f1 100644 --- a/dom/media/TextTrackList.cpp +++ b/dom/media/TextTrackList.cpp @@ -20,7 +20,7 @@ NS_IMPL_CYCLE_COLLECTION_INHERITED(TextTrackList, NS_IMPL_ADDREF_INHERITED(TextTrackList, DOMEventTargetHelper) NS_IMPL_RELEASE_INHERITED(TextTrackList, DOMEventTargetHelper) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(TextTrackList) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(TextTrackList) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) TextTrackList::TextTrackList(nsPIDOMWindowInner* aOwnerWindow) diff --git a/dom/media/VideoTrack.cpp b/dom/media/VideoTrack.cpp index 8fcb613ab1..df41cccc6b 100644 --- a/dom/media/VideoTrack.cpp +++ b/dom/media/VideoTrack.cpp @@ -31,7 +31,7 @@ NS_IMPL_CYCLE_COLLECTION_INHERITED(VideoTrack, MediaTrack, mVideoStreamTrack) NS_IMPL_ADDREF_INHERITED(VideoTrack, MediaTrack) NS_IMPL_RELEASE_INHERITED(VideoTrack, MediaTrack) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(VideoTrack) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(VideoTrack) NS_INTERFACE_MAP_END_INHERITING(MediaTrack) JSObject* diff --git a/dom/media/imagecapture/ImageCapture.cpp b/dom/media/imagecapture/ImageCapture.cpp index 377b27e4e0..ba62f5526a 100644 --- a/dom/media/imagecapture/ImageCapture.cpp +++ b/dom/media/imagecapture/ImageCapture.cpp @@ -28,7 +28,7 @@ namespace dom { NS_IMPL_CYCLE_COLLECTION_INHERITED(ImageCapture, DOMEventTargetHelper, mVideoStreamTrack) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(ImageCapture) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(ImageCapture) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) NS_IMPL_ADDREF_INHERITED(ImageCapture, DOMEventTargetHelper) diff --git a/dom/media/mediasource/MediaSource.cpp b/dom/media/mediasource/MediaSource.cpp index 3ae640fbcc..dec6173b7a 100644 --- a/dom/media/mediasource/MediaSource.cpp +++ b/dom/media/mediasource/MediaSource.cpp @@ -569,7 +569,7 @@ NS_IMPL_CYCLE_COLLECTION_INHERITED(MediaSource, DOMEventTargetHelper, NS_IMPL_ADDREF_INHERITED(MediaSource, DOMEventTargetHelper) NS_IMPL_RELEASE_INHERITED(MediaSource, DOMEventTargetHelper) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(MediaSource) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(MediaSource) NS_INTERFACE_MAP_ENTRY(mozilla::dom::MediaSource) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) diff --git a/dom/media/mediasource/SourceBuffer.cpp b/dom/media/mediasource/SourceBuffer.cpp index 0bdfbfcf23..ad97c6ee20 100644 --- a/dom/media/mediasource/SourceBuffer.cpp +++ b/dom/media/mediasource/SourceBuffer.cpp @@ -583,7 +583,7 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END NS_IMPL_ADDREF_INHERITED(SourceBuffer, DOMEventTargetHelper) NS_IMPL_RELEASE_INHERITED(SourceBuffer, DOMEventTargetHelper) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(SourceBuffer) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(SourceBuffer) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) #undef MSE_DEBUG diff --git a/dom/media/mediasource/SourceBufferList.cpp b/dom/media/mediasource/SourceBufferList.cpp index c816ff83c9..d326312d38 100644 --- a/dom/media/mediasource/SourceBufferList.cpp +++ b/dom/media/mediasource/SourceBufferList.cpp @@ -214,7 +214,7 @@ NS_IMPL_CYCLE_COLLECTION_INHERITED(SourceBufferList, DOMEventTargetHelper, NS_IMPL_ADDREF_INHERITED(SourceBufferList, DOMEventTargetHelper) NS_IMPL_RELEASE_INHERITED(SourceBufferList, DOMEventTargetHelper) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(SourceBufferList) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(SourceBufferList) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) #undef MSE_API diff --git a/dom/media/webaudio/AudioBufferSourceNode.cpp b/dom/media/webaudio/AudioBufferSourceNode.cpp index 879e84bc86..5192e39b7a 100644 --- a/dom/media/webaudio/AudioBufferSourceNode.cpp +++ b/dom/media/webaudio/AudioBufferSourceNode.cpp @@ -23,7 +23,7 @@ namespace dom { NS_IMPL_CYCLE_COLLECTION_INHERITED(AudioBufferSourceNode, AudioNode, mBuffer, mPlaybackRate, mDetune) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(AudioBufferSourceNode) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(AudioBufferSourceNode) NS_INTERFACE_MAP_END_INHERITING(AudioNode) NS_IMPL_ADDREF_INHERITED(AudioBufferSourceNode, AudioNode) diff --git a/dom/media/webaudio/AudioContext.cpp b/dom/media/webaudio/AudioContext.cpp index 44285735be..3c80f86438 100755 --- a/dom/media/webaudio/AudioContext.cpp +++ b/dom/media/webaudio/AudioContext.cpp @@ -94,7 +94,7 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END NS_IMPL_ADDREF_INHERITED(AudioContext, DOMEventTargetHelper) NS_IMPL_RELEASE_INHERITED(AudioContext, DOMEventTargetHelper) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(AudioContext) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(AudioContext) NS_INTERFACE_MAP_ENTRY(nsIMemoryReporter) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) diff --git a/dom/media/webaudio/AudioDestinationNode.cpp b/dom/media/webaudio/AudioDestinationNode.cpp index c67ea8d873..e3827d4db4 100644 --- a/dom/media/webaudio/AudioDestinationNode.cpp +++ b/dom/media/webaudio/AudioDestinationNode.cpp @@ -309,7 +309,7 @@ NS_IMPL_CYCLE_COLLECTION_INHERITED(AudioDestinationNode, AudioNode, mAudioChannelAgent, mOfflineRenderingPromise) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(AudioDestinationNode) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(AudioDestinationNode) NS_INTERFACE_MAP_ENTRY(nsIAudioChannelAgentCallback) NS_INTERFACE_MAP_END_INHERITING(AudioNode) diff --git a/dom/media/webaudio/AudioNode.cpp b/dom/media/webaudio/AudioNode.cpp index 016397b49b..b09243aeb2 100644 --- a/dom/media/webaudio/AudioNode.cpp +++ b/dom/media/webaudio/AudioNode.cpp @@ -38,7 +38,7 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END NS_IMPL_ADDREF_INHERITED(AudioNode, DOMEventTargetHelper) NS_IMPL_RELEASE_INHERITED(AudioNode, DOMEventTargetHelper) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(AudioNode) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(AudioNode) NS_INTERFACE_MAP_ENTRY(nsISupportsWeakReference) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) diff --git a/dom/media/webaudio/AudioProcessingEvent.cpp b/dom/media/webaudio/AudioProcessingEvent.cpp index 944ded7f1b..0ff3f42e27 100644 --- a/dom/media/webaudio/AudioProcessingEvent.cpp +++ b/dom/media/webaudio/AudioProcessingEvent.cpp @@ -14,7 +14,7 @@ namespace dom { NS_IMPL_CYCLE_COLLECTION_INHERITED(AudioProcessingEvent, Event, mInputBuffer, mOutputBuffer, mNode) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(AudioProcessingEvent) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(AudioProcessingEvent) NS_INTERFACE_MAP_END_INHERITING(Event) NS_IMPL_ADDREF_INHERITED(AudioProcessingEvent, Event) diff --git a/dom/media/webaudio/BiquadFilterNode.cpp b/dom/media/webaudio/BiquadFilterNode.cpp index 1561adf0f4..fd8d1b1f7a 100644 --- a/dom/media/webaudio/BiquadFilterNode.cpp +++ b/dom/media/webaudio/BiquadFilterNode.cpp @@ -20,7 +20,7 @@ namespace dom { NS_IMPL_CYCLE_COLLECTION_INHERITED(BiquadFilterNode, AudioNode, mFrequency, mDetune, mQ, mGain) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(BiquadFilterNode) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(BiquadFilterNode) NS_INTERFACE_MAP_END_INHERITING(AudioNode) NS_IMPL_ADDREF_INHERITED(BiquadFilterNode, AudioNode) diff --git a/dom/media/webaudio/ConstantSourceNode.cpp b/dom/media/webaudio/ConstantSourceNode.cpp index 2eb2d3c16f..178393c08f 100644 --- a/dom/media/webaudio/ConstantSourceNode.cpp +++ b/dom/media/webaudio/ConstantSourceNode.cpp @@ -16,7 +16,7 @@ namespace dom { NS_IMPL_CYCLE_COLLECTION_INHERITED(ConstantSourceNode, AudioNode, mOffset) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(ConstantSourceNode) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(ConstantSourceNode) NS_INTERFACE_MAP_END_INHERITING(AudioNode) NS_IMPL_ADDREF_INHERITED(ConstantSourceNode, AudioNode) diff --git a/dom/media/webaudio/ConvolverNode.cpp b/dom/media/webaudio/ConvolverNode.cpp index 674737cc8d..b88b6545ec 100644 --- a/dom/media/webaudio/ConvolverNode.cpp +++ b/dom/media/webaudio/ConvolverNode.cpp @@ -17,7 +17,7 @@ namespace dom { NS_IMPL_CYCLE_COLLECTION_INHERITED(ConvolverNode, AudioNode, mBuffer) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(ConvolverNode) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(ConvolverNode) NS_INTERFACE_MAP_END_INHERITING(AudioNode) NS_IMPL_ADDREF_INHERITED(ConvolverNode, AudioNode) diff --git a/dom/media/webaudio/DelayNode.cpp b/dom/media/webaudio/DelayNode.cpp index 13138bd1c6..6b6b7c5f59 100644 --- a/dom/media/webaudio/DelayNode.cpp +++ b/dom/media/webaudio/DelayNode.cpp @@ -18,7 +18,7 @@ namespace dom { NS_IMPL_CYCLE_COLLECTION_INHERITED(DelayNode, AudioNode, mDelay) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(DelayNode) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(DelayNode) NS_INTERFACE_MAP_END_INHERITING(AudioNode) NS_IMPL_ADDREF_INHERITED(DelayNode, AudioNode) diff --git a/dom/media/webaudio/DynamicsCompressorNode.cpp b/dom/media/webaudio/DynamicsCompressorNode.cpp index a27dd54122..fa450b6d6d 100644 --- a/dom/media/webaudio/DynamicsCompressorNode.cpp +++ b/dom/media/webaudio/DynamicsCompressorNode.cpp @@ -24,7 +24,7 @@ NS_IMPL_CYCLE_COLLECTION_INHERITED(DynamicsCompressorNode, AudioNode, mAttack, mRelease) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(DynamicsCompressorNode) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(DynamicsCompressorNode) NS_INTERFACE_MAP_END_INHERITING(AudioNode) NS_IMPL_ADDREF_INHERITED(DynamicsCompressorNode, AudioNode) diff --git a/dom/media/webaudio/GainNode.cpp b/dom/media/webaudio/GainNode.cpp index 74fd464bbf..00d13f0a08 100644 --- a/dom/media/webaudio/GainNode.cpp +++ b/dom/media/webaudio/GainNode.cpp @@ -18,7 +18,7 @@ namespace dom { NS_IMPL_CYCLE_COLLECTION_INHERITED(GainNode, AudioNode, mGain) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(GainNode) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(GainNode) NS_INTERFACE_MAP_END_INHERITING(AudioNode) NS_IMPL_ADDREF_INHERITED(GainNode, AudioNode) diff --git a/dom/media/webaudio/MediaStreamAudioDestinationNode.cpp b/dom/media/webaudio/MediaStreamAudioDestinationNode.cpp index 8df9013cbd..a2b548a5ae 100644 --- a/dom/media/webaudio/MediaStreamAudioDestinationNode.cpp +++ b/dom/media/webaudio/MediaStreamAudioDestinationNode.cpp @@ -58,7 +58,7 @@ NS_IMPL_ADDREF_INHERITED(AudioDestinationTrackSource, MediaStreamTrackSource) NS_IMPL_RELEASE_INHERITED(AudioDestinationTrackSource, MediaStreamTrackSource) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(AudioDestinationTrackSource) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(AudioDestinationTrackSource) NS_INTERFACE_MAP_END_INHERITING(MediaStreamTrackSource) NS_IMPL_CYCLE_COLLECTION_INHERITED(AudioDestinationTrackSource, MediaStreamTrackSource, @@ -66,7 +66,7 @@ NS_IMPL_CYCLE_COLLECTION_INHERITED(AudioDestinationTrackSource, NS_IMPL_CYCLE_COLLECTION_INHERITED(MediaStreamAudioDestinationNode, AudioNode, mDOMStream) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(MediaStreamAudioDestinationNode) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(MediaStreamAudioDestinationNode) NS_INTERFACE_MAP_END_INHERITING(AudioNode) NS_IMPL_ADDREF_INHERITED(MediaStreamAudioDestinationNode, AudioNode) diff --git a/dom/media/webaudio/MediaStreamAudioSourceNode.cpp b/dom/media/webaudio/MediaStreamAudioSourceNode.cpp index 86d7e855eb..fe2b55f3b4 100644 --- a/dom/media/webaudio/MediaStreamAudioSourceNode.cpp +++ b/dom/media/webaudio/MediaStreamAudioSourceNode.cpp @@ -29,7 +29,7 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(MediaStreamAudioSourceNode, Au NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mInputTrack) NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(MediaStreamAudioSourceNode) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(MediaStreamAudioSourceNode) NS_INTERFACE_MAP_END_INHERITING(AudioNode) NS_IMPL_ADDREF_INHERITED(MediaStreamAudioSourceNode, AudioNode) diff --git a/dom/media/webaudio/OfflineAudioCompletionEvent.cpp b/dom/media/webaudio/OfflineAudioCompletionEvent.cpp index 442dd72c96..25ed64ceef 100644 --- a/dom/media/webaudio/OfflineAudioCompletionEvent.cpp +++ b/dom/media/webaudio/OfflineAudioCompletionEvent.cpp @@ -13,7 +13,7 @@ namespace dom { NS_IMPL_CYCLE_COLLECTION_INHERITED(OfflineAudioCompletionEvent, Event, mRenderedBuffer) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(OfflineAudioCompletionEvent) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(OfflineAudioCompletionEvent) NS_INTERFACE_MAP_END_INHERITING(Event) NS_IMPL_ADDREF_INHERITED(OfflineAudioCompletionEvent, Event) diff --git a/dom/media/webaudio/OscillatorNode.cpp b/dom/media/webaudio/OscillatorNode.cpp index d1a5d7c3dd..df9c494bc2 100644 --- a/dom/media/webaudio/OscillatorNode.cpp +++ b/dom/media/webaudio/OscillatorNode.cpp @@ -17,7 +17,7 @@ namespace dom { NS_IMPL_CYCLE_COLLECTION_INHERITED(OscillatorNode, AudioNode, mPeriodicWave, mFrequency, mDetune) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(OscillatorNode) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(OscillatorNode) NS_INTERFACE_MAP_END_INHERITING(AudioNode) NS_IMPL_ADDREF_INHERITED(OscillatorNode, AudioNode) diff --git a/dom/media/webaudio/PannerNode.cpp b/dom/media/webaudio/PannerNode.cpp index 28b90a4207..a51c18e24c 100644 --- a/dom/media/webaudio/PannerNode.cpp +++ b/dom/media/webaudio/PannerNode.cpp @@ -35,7 +35,7 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(PannerNode, AudioNode) NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mPositionX, mPositionY, mPositionZ, mOrientationX, mOrientationY, mOrientationZ) NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(PannerNode) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(PannerNode) NS_INTERFACE_MAP_END_INHERITING(AudioNode) NS_IMPL_ADDREF_INHERITED(PannerNode, AudioNode) diff --git a/dom/media/webaudio/StereoPannerNode.cpp b/dom/media/webaudio/StereoPannerNode.cpp index e65a397e5b..9135d9fa40 100644 --- a/dom/media/webaudio/StereoPannerNode.cpp +++ b/dom/media/webaudio/StereoPannerNode.cpp @@ -21,7 +21,7 @@ using namespace std; NS_IMPL_CYCLE_COLLECTION_INHERITED(StereoPannerNode, AudioNode, mPan) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(StereoPannerNode) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(StereoPannerNode) NS_INTERFACE_MAP_END_INHERITING(AudioNode) NS_IMPL_ADDREF_INHERITED(StereoPannerNode, AudioNode) diff --git a/dom/media/webaudio/WaveShaperNode.cpp b/dom/media/webaudio/WaveShaperNode.cpp index db1dcd4284..15645379cb 100644 --- a/dom/media/webaudio/WaveShaperNode.cpp +++ b/dom/media/webaudio/WaveShaperNode.cpp @@ -29,7 +29,7 @@ NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN(WaveShaperNode) NS_IMPL_CYCLE_COLLECTION_TRACE_JS_MEMBER_CALLBACK(mCurve) NS_IMPL_CYCLE_COLLECTION_TRACE_END -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(WaveShaperNode) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(WaveShaperNode) NS_INTERFACE_MAP_END_INHERITING(AudioNode) NS_IMPL_ADDREF_INHERITED(WaveShaperNode, AudioNode) diff --git a/dom/media/webspeech/synth/SpeechSynthesis.cpp b/dom/media/webspeech/synth/SpeechSynthesis.cpp index c60eb33681..189e3590cc 100644 --- a/dom/media/webspeech/synth/SpeechSynthesis.cpp +++ b/dom/media/webspeech/synth/SpeechSynthesis.cpp @@ -45,7 +45,7 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(SpeechSynthesis, DOMEventTarge } NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(SpeechSynthesis) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(SpeechSynthesis) NS_INTERFACE_MAP_ENTRY(nsIObserver) NS_INTERFACE_MAP_ENTRY(nsISupportsWeakReference) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) diff --git a/dom/media/webspeech/synth/SpeechSynthesisUtterance.cpp b/dom/media/webspeech/synth/SpeechSynthesisUtterance.cpp index 572abaa5c7..8323baee45 100644 --- a/dom/media/webspeech/synth/SpeechSynthesisUtterance.cpp +++ b/dom/media/webspeech/synth/SpeechSynthesisUtterance.cpp @@ -20,7 +20,7 @@ namespace dom { NS_IMPL_CYCLE_COLLECTION_INHERITED(SpeechSynthesisUtterance, DOMEventTargetHelper, mVoice); -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(SpeechSynthesisUtterance) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(SpeechSynthesisUtterance) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) NS_IMPL_ADDREF_INHERITED(SpeechSynthesisUtterance, DOMEventTargetHelper) diff --git a/dom/messagechannel/MessagePort.cpp b/dom/messagechannel/MessagePort.cpp index 71d9139ca6..e5abfa384d 100644 --- a/dom/messagechannel/MessagePort.cpp +++ b/dom/messagechannel/MessagePort.cpp @@ -194,7 +194,7 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(MessagePort, NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mUnshippedEntangledPort); NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(MessagePort) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(MessagePort) NS_INTERFACE_MAP_ENTRY(nsIIPCBackgroundChildCreateCallback) NS_INTERFACE_MAP_ENTRY(nsIObserver) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) diff --git a/dom/network/TCPServerSocket.cpp b/dom/network/TCPServerSocket.cpp index 5e6f778a3f..9f166ff812 100644 --- a/dom/network/TCPServerSocket.cpp +++ b/dom/network/TCPServerSocket.cpp @@ -38,7 +38,7 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_END NS_IMPL_ADDREF_INHERITED(TCPServerSocket, DOMEventTargetHelper) NS_IMPL_RELEASE_INHERITED(TCPServerSocket, DOMEventTargetHelper) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(TCPServerSocket) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(TCPServerSocket) NS_INTERFACE_MAP_ENTRY(nsIServerSocketListener) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) diff --git a/dom/network/TCPSocket.cpp b/dom/network/TCPSocket.cpp index 3f4fb696e5..ba58a71379 100644 --- a/dom/network/TCPSocket.cpp +++ b/dom/network/TCPSocket.cpp @@ -134,7 +134,7 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_END NS_IMPL_ADDREF_INHERITED(TCPSocket, DOMEventTargetHelper) NS_IMPL_RELEASE_INHERITED(TCPSocket, DOMEventTargetHelper) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(TCPSocket) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(TCPSocket) NS_INTERFACE_MAP_ENTRY(nsITransportEventSink) NS_INTERFACE_MAP_ENTRY(nsIRequestObserver) NS_INTERFACE_MAP_ENTRY(nsIStreamListener) diff --git a/dom/network/UDPSocket.cpp b/dom/network/UDPSocket.cpp index e6f0566a69..93d39d3811 100644 --- a/dom/network/UDPSocket.cpp +++ b/dom/network/UDPSocket.cpp @@ -41,7 +41,7 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_END NS_IMPL_ADDREF_INHERITED(UDPSocket, DOMEventTargetHelper) NS_IMPL_RELEASE_INHERITED(UDPSocket, DOMEventTargetHelper) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(UDPSocket) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(UDPSocket) NS_INTERFACE_MAP_ENTRY(nsIUDPSocketListener) NS_INTERFACE_MAP_ENTRY(nsIUDPSocketInternal) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) diff --git a/dom/notification/Notification.cpp b/dom/notification/Notification.cpp index 5439a4fe59..8ec248ac70 100644 --- a/dom/notification/Notification.cpp +++ b/dom/notification/Notification.cpp @@ -1036,7 +1036,7 @@ NS_IMPL_CYCLE_COLLECTION_TRACE_END NS_IMPL_ADDREF_INHERITED(Notification, DOMEventTargetHelper) NS_IMPL_RELEASE_INHERITED(Notification, DOMEventTargetHelper) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(Notification) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(Notification) NS_INTERFACE_MAP_ENTRY(nsIObserver) NS_INTERFACE_MAP_ENTRY(nsISupportsWeakReference) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) diff --git a/dom/notification/NotificationEvent.cpp b/dom/notification/NotificationEvent.cpp index 7b64efb231..b994bb0620 100644 --- a/dom/notification/NotificationEvent.cpp +++ b/dom/notification/NotificationEvent.cpp @@ -17,7 +17,7 @@ NotificationEvent::NotificationEvent(EventTarget* aOwner) NS_IMPL_ADDREF_INHERITED(NotificationEvent, ExtendableEvent) NS_IMPL_RELEASE_INHERITED(NotificationEvent, ExtendableEvent) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(NotificationEvent) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(NotificationEvent) NS_INTERFACE_MAP_END_INHERITING(ExtendableEvent) NS_IMPL_CYCLE_COLLECTION_INHERITED(NotificationEvent, ExtendableEvent, mNotification) diff --git a/dom/offline/nsDOMOfflineResourceList.cpp b/dom/offline/nsDOMOfflineResourceList.cpp index 55acfddd9e..5afa27a8f2 100644 --- a/dom/offline/nsDOMOfflineResourceList.cpp +++ b/dom/offline/nsDOMOfflineResourceList.cpp @@ -59,7 +59,7 @@ NS_IMPL_CYCLE_COLLECTION_INHERITED(nsDOMOfflineResourceList, mCacheUpdate, mPendingEvents) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(nsDOMOfflineResourceList) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsDOMOfflineResourceList) NS_INTERFACE_MAP_ENTRY(nsIDOMOfflineResourceList) NS_INTERFACE_MAP_ENTRY(nsIOfflineCacheUpdateObserver) NS_INTERFACE_MAP_ENTRY(nsIObserver) diff --git a/dom/performance/Performance.cpp b/dom/performance/Performance.cpp index 1baf75df06..67276d9517 100755 --- a/dom/performance/Performance.cpp +++ b/dom/performance/Performance.cpp @@ -73,7 +73,7 @@ enum class Performance::ResolveTimestampAttribute { Duration, }; -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(Performance) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(Performance) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) NS_IMPL_CYCLE_COLLECTION_INHERITED(Performance, diff --git a/dom/performance/PerformanceResourceTiming.cpp b/dom/performance/PerformanceResourceTiming.cpp index cb08b39b65..6d3c81dc49 100644 --- a/dom/performance/PerformanceResourceTiming.cpp +++ b/dom/performance/PerformanceResourceTiming.cpp @@ -17,7 +17,7 @@ NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN_INHERITED(PerformanceResourceTiming, PerformanceEntry) NS_IMPL_CYCLE_COLLECTION_TRACE_END -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(PerformanceResourceTiming) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(PerformanceResourceTiming) NS_INTERFACE_MAP_END_INHERITING(PerformanceEntry) NS_IMPL_ADDREF_INHERITED(PerformanceResourceTiming, PerformanceEntry) diff --git a/dom/quota/QuotaRequests.cpp b/dom/quota/QuotaRequests.cpp index 83ada8f6be..6d7d6118ea 100644 --- a/dom/quota/QuotaRequests.cpp +++ b/dom/quota/QuotaRequests.cpp @@ -147,7 +147,7 @@ UsageRequest::SetResult(nsIVariant* aResult) NS_IMPL_CYCLE_COLLECTION_INHERITED(UsageRequest, RequestBase, mCallback) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(UsageRequest) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(UsageRequest) NS_INTERFACE_MAP_ENTRY(nsIQuotaUsageRequest) NS_INTERFACE_MAP_END_INHERITING(RequestBase) @@ -247,7 +247,7 @@ Request::SetResult() NS_IMPL_CYCLE_COLLECTION_INHERITED(Request, RequestBase, mCallback) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(Request) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(Request) NS_INTERFACE_MAP_ENTRY(nsIQuotaRequest) NS_INTERFACE_MAP_END_INHERITING(RequestBase) diff --git a/dom/script/ModuleLoadRequest.cpp b/dom/script/ModuleLoadRequest.cpp index 9055e2a57d..310d882d21 100644 --- a/dom/script/ModuleLoadRequest.cpp +++ b/dom/script/ModuleLoadRequest.cpp @@ -13,7 +13,7 @@ namespace mozilla { namespace dom { -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(ModuleLoadRequest) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(ModuleLoadRequest) NS_INTERFACE_MAP_END_INHERITING(ScriptLoadRequest) NS_IMPL_CYCLE_COLLECTION_CLASS(ModuleLoadRequest) diff --git a/dom/smil/TimeEvent.cpp b/dom/smil/TimeEvent.cpp index cc5671d383..a225ecefdd 100644 --- a/dom/smil/TimeEvent.cpp +++ b/dom/smil/TimeEvent.cpp @@ -40,7 +40,7 @@ NS_IMPL_CYCLE_COLLECTION_INHERITED(TimeEvent, Event, NS_IMPL_ADDREF_INHERITED(TimeEvent, Event) NS_IMPL_RELEASE_INHERITED(TimeEvent, Event) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(TimeEvent) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(TimeEvent) NS_INTERFACE_MAP_ENTRY(nsIDOMTimeEvent) NS_INTERFACE_MAP_END_INHERITING(Event) diff --git a/dom/svg/SVGSwitchElement.cpp b/dom/svg/SVGSwitchElement.cpp index 41e5940108..dab16a40cb 100644 --- a/dom/svg/SVGSwitchElement.cpp +++ b/dom/svg/SVGSwitchElement.cpp @@ -32,7 +32,7 @@ NS_IMPL_CYCLE_COLLECTION_INHERITED(SVGSwitchElement, SVGSwitchElementBase, NS_IMPL_ADDREF_INHERITED(SVGSwitchElement,SVGSwitchElementBase) NS_IMPL_RELEASE_INHERITED(SVGSwitchElement,SVGSwitchElementBase) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(SVGSwitchElement) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(SVGSwitchElement) NS_INTERFACE_MAP_END_INHERITING(SVGSwitchElementBase) //---------------------------------------------------------------------- diff --git a/dom/webidl/AbortSignal.webidl b/dom/webidl/AbortSignal.webidl index b4b03bb7e1..b5077617aa 100644 --- a/dom/webidl/AbortSignal.webidl +++ b/dom/webidl/AbortSignal.webidl @@ -7,6 +7,9 @@ [Exposed=(Window,Worker), Func="AbortController::IsEnabled"] interface AbortSignal : EventTarget { + [NewObject] static AbortSignal abort(); + [NewObject] static AbortSignal timeout(unsigned long long milliseconds); + readonly attribute boolean aborted; attribute EventHandler onabort; diff --git a/dom/workers/ServiceWorker.cpp b/dom/workers/ServiceWorker.cpp index f2a39ea9c2..c4ca16386e 100644 --- a/dom/workers/ServiceWorker.cpp +++ b/dom/workers/ServiceWorker.cpp @@ -59,7 +59,7 @@ ServiceWorker::~ServiceWorker() NS_IMPL_ADDREF_INHERITED(ServiceWorker, DOMEventTargetHelper) NS_IMPL_RELEASE_INHERITED(ServiceWorker, DOMEventTargetHelper) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(ServiceWorker) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(ServiceWorker) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) JSObject* diff --git a/dom/workers/ServiceWorkerContainer.cpp b/dom/workers/ServiceWorkerContainer.cpp index 114484e2ed..5d51fa61cc 100644 --- a/dom/workers/ServiceWorkerContainer.cpp +++ b/dom/workers/ServiceWorkerContainer.cpp @@ -27,7 +27,7 @@ namespace mozilla { namespace dom { -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(ServiceWorkerContainer) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(ServiceWorkerContainer) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) NS_IMPL_ADDREF_INHERITED(ServiceWorkerContainer, DOMEventTargetHelper) diff --git a/dom/workers/ServiceWorkerEvents.cpp b/dom/workers/ServiceWorkerEvents.cpp index f017f2936a..34b307caf4 100644 --- a/dom/workers/ServiceWorkerEvents.cpp +++ b/dom/workers/ServiceWorkerEvents.cpp @@ -879,7 +879,7 @@ NS_IMPL_ISUPPORTS0(WaitUntilHandler) NS_IMPL_ADDREF_INHERITED(FetchEvent, ExtendableEvent) NS_IMPL_RELEASE_INHERITED(FetchEvent, ExtendableEvent) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(FetchEvent) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(FetchEvent) NS_INTERFACE_MAP_END_INHERITING(ExtendableEvent) NS_IMPL_CYCLE_COLLECTION_INHERITED(FetchEvent, ExtendableEvent, mRequest) @@ -935,7 +935,7 @@ ExtendableEvent::GetPromise() NS_IMPL_ADDREF_INHERITED(ExtendableEvent, Event) NS_IMPL_RELEASE_INHERITED(ExtendableEvent, Event) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(ExtendableEvent) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(ExtendableEvent) NS_INTERFACE_MAP_END_INHERITING(Event) NS_IMPL_CYCLE_COLLECTION_INHERITED(ExtendableEvent, Event, mPromises) @@ -1128,7 +1128,7 @@ PushEvent::Constructor(mozilla::dom::EventTarget* aOwner, NS_IMPL_ADDREF_INHERITED(PushEvent, ExtendableEvent) NS_IMPL_RELEASE_INHERITED(PushEvent, ExtendableEvent) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(PushEvent) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(PushEvent) NS_INTERFACE_MAP_END_INHERITING(ExtendableEvent) NS_IMPL_CYCLE_COLLECTION_INHERITED(PushEvent, ExtendableEvent, mData) @@ -1244,7 +1244,7 @@ NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN_INHERITED(ExtendableMessageEvent, Event) NS_IMPL_CYCLE_COLLECTION_TRACE_JS_MEMBER_CALLBACK(mData) NS_IMPL_CYCLE_COLLECTION_TRACE_END -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(ExtendableMessageEvent) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(ExtendableMessageEvent) NS_INTERFACE_MAP_END_INHERITING(Event) NS_IMPL_ADDREF_INHERITED(ExtendableMessageEvent, Event) diff --git a/dom/workers/ServiceWorkerRegistration.cpp b/dom/workers/ServiceWorkerRegistration.cpp index 3d91e400a6..821a56b8a5 100644 --- a/dom/workers/ServiceWorkerRegistration.cpp +++ b/dom/workers/ServiceWorkerRegistration.cpp @@ -163,7 +163,7 @@ private: NS_IMPL_ADDREF_INHERITED(ServiceWorkerRegistrationMainThread, ServiceWorkerRegistration) NS_IMPL_RELEASE_INHERITED(ServiceWorkerRegistrationMainThread, ServiceWorkerRegistration) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(ServiceWorkerRegistrationMainThread) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(ServiceWorkerRegistrationMainThread) NS_INTERFACE_MAP_END_INHERITING(ServiceWorkerRegistration) NS_IMPL_CYCLE_COLLECTION_INHERITED(ServiceWorkerRegistrationMainThread, @@ -1026,7 +1026,7 @@ private: NS_IMPL_ADDREF_INHERITED(ServiceWorkerRegistrationWorkerThread, ServiceWorkerRegistration) NS_IMPL_RELEASE_INHERITED(ServiceWorkerRegistrationWorkerThread, ServiceWorkerRegistration) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(ServiceWorkerRegistrationWorkerThread) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(ServiceWorkerRegistrationWorkerThread) NS_INTERFACE_MAP_END_INHERITING(ServiceWorkerRegistration) // Expanded macros since we need special behaviour to release the proxy. @@ -1280,7 +1280,7 @@ ServiceWorkerRegistrationWorkerThread::GetPushManager(JSContext* aCx, ErrorResul NS_IMPL_ADDREF_INHERITED(ServiceWorkerRegistration, DOMEventTargetHelper) NS_IMPL_RELEASE_INHERITED(ServiceWorkerRegistration, DOMEventTargetHelper) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(ServiceWorkerRegistration) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(ServiceWorkerRegistration) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) ServiceWorkerRegistration::ServiceWorkerRegistration(nsPIDOMWindowInner* aWindow, diff --git a/dom/workers/SharedWorker.cpp b/dom/workers/SharedWorker.cpp index 2fae19f291..8cc305ce74 100644 --- a/dom/workers/SharedWorker.cpp +++ b/dom/workers/SharedWorker.cpp @@ -165,7 +165,7 @@ SharedWorker::PostMessage(JSContext* aCx, NS_IMPL_ADDREF_INHERITED(SharedWorker, DOMEventTargetHelper) NS_IMPL_RELEASE_INHERITED(SharedWorker, DOMEventTargetHelper) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(SharedWorker) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(SharedWorker) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) NS_IMPL_CYCLE_COLLECTION_CLASS(SharedWorker) diff --git a/dom/workers/WorkerPrivate.cpp b/dom/workers/WorkerPrivate.cpp index c17baf4f36..570d011e69 100644 --- a/dom/workers/WorkerPrivate.cpp +++ b/dom/workers/WorkerPrivate.cpp @@ -3791,7 +3791,7 @@ template NS_IMPL_RELEASE_INHERITED(WorkerPrivateParent, DOMEventTargetHelper) template -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(WorkerPrivateParent) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(WorkerPrivateParent) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) template diff --git a/dom/workers/WorkerScope.cpp b/dom/workers/WorkerScope.cpp index 714e437349..0673a5d08f 100644 --- a/dom/workers/WorkerScope.cpp +++ b/dom/workers/WorkerScope.cpp @@ -552,7 +552,7 @@ SharedWorkerGlobalScope::WrapGlobalObject(JSContext* aCx, NS_IMPL_CYCLE_COLLECTION_INHERITED(ServiceWorkerGlobalScope, WorkerGlobalScope, mClients, mRegistration) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(ServiceWorkerGlobalScope) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(ServiceWorkerGlobalScope) NS_INTERFACE_MAP_END_INHERITING(WorkerGlobalScope) NS_IMPL_ADDREF_INHERITED(ServiceWorkerGlobalScope, WorkerGlobalScope) diff --git a/dom/xbl/XBLChildrenElement.cpp b/dom/xbl/XBLChildrenElement.cpp index fbb29ee1c4..bcb46b38a8 100644 --- a/dom/xbl/XBLChildrenElement.cpp +++ b/dom/xbl/XBLChildrenElement.cpp @@ -15,14 +15,10 @@ XBLChildrenElement::~XBLChildrenElement() { } -NS_IMPL_ADDREF_INHERITED(XBLChildrenElement, Element) -NS_IMPL_RELEASE_INHERITED(XBLChildrenElement, Element) - -NS_INTERFACE_TABLE_HEAD(XBLChildrenElement) - NS_INTERFACE_TABLE_INHERITED(XBLChildrenElement, nsIDOMNode, - nsIDOMElement) - NS_ELEMENT_INTERFACE_TABLE_TO_MAP_SEGUE -NS_INTERFACE_MAP_END_INHERITING(Element) +NS_IMPL_ISUPPORTS_INHERITED(XBLChildrenElement, + Element, + nsIDOMNode, + nsIDOMElement) NS_IMPL_ELEMENT_CLONE(XBLChildrenElement) @@ -59,11 +55,8 @@ NS_IMPL_CYCLE_COLLECTING_RELEASE(nsAnonymousContentList) NS_INTERFACE_TABLE_HEAD(nsAnonymousContentList) NS_WRAPPERCACHE_INTERFACE_TABLE_ENTRY - NS_INTERFACE_TABLE_INHERITED(nsAnonymousContentList, nsINodeList, - nsIDOMNodeList) - NS_INTERFACE_TABLE_TO_MAP_SEGUE - NS_INTERFACE_MAP_ENTRIES_CYCLE_COLLECTION(nsAnonymousContentList) - NS_INTERFACE_MAP_ENTRY(nsISupports) + NS_INTERFACE_TABLE(nsAnonymousContentList, nsINodeList, nsIDOMNodeList) + NS_INTERFACE_TABLE_TO_MAP_SEGUE_CYCLE_COLLECTION(nsAnonymousContentList) NS_INTERFACE_MAP_END NS_IMETHODIMP diff --git a/dom/xhr/XMLHttpRequestEventTarget.cpp b/dom/xhr/XMLHttpRequestEventTarget.cpp index 834b1cbc88..2d1236482a 100644 --- a/dom/xhr/XMLHttpRequestEventTarget.cpp +++ b/dom/xhr/XMLHttpRequestEventTarget.cpp @@ -18,7 +18,7 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(XMLHttpRequestEventTarget, DOMEventTargetHelper) NS_IMPL_CYCLE_COLLECTION_UNLINK_END -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(XMLHttpRequestEventTarget) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(XMLHttpRequestEventTarget) NS_INTERFACE_MAP_ENTRY(nsIXMLHttpRequestEventTarget) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) diff --git a/dom/xhr/XMLHttpRequestMainThread.cpp b/dom/xhr/XMLHttpRequestMainThread.cpp index 101922ac3d..c95c6160fc 100644 --- a/dom/xhr/XMLHttpRequestMainThread.cpp +++ b/dom/xhr/XMLHttpRequestMainThread.cpp @@ -364,7 +364,7 @@ XMLHttpRequestMainThread::IsCertainlyAliveForCC() const } // QueryInterface implementation for XMLHttpRequestMainThread -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(XMLHttpRequestMainThread) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(XMLHttpRequestMainThread) NS_INTERFACE_MAP_ENTRY(nsIXMLHttpRequest) NS_INTERFACE_MAP_ENTRY(nsIJSXMLHttpRequest) NS_INTERFACE_MAP_ENTRY(nsIRequestObserver) diff --git a/dom/xhr/XMLHttpRequestWorker.cpp b/dom/xhr/XMLHttpRequestWorker.cpp index c8b45b9a4f..54e2a8e60a 100644 --- a/dom/xhr/XMLHttpRequestWorker.cpp +++ b/dom/xhr/XMLHttpRequestWorker.cpp @@ -1557,7 +1557,7 @@ XMLHttpRequestWorker::~XMLHttpRequestWorker() NS_IMPL_ADDREF_INHERITED(XMLHttpRequestWorker, XMLHttpRequestEventTarget) NS_IMPL_RELEASE_INHERITED(XMLHttpRequestWorker, XMLHttpRequestEventTarget) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(XMLHttpRequestWorker) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(XMLHttpRequestWorker) NS_INTERFACE_MAP_END_INHERITING(XMLHttpRequestEventTarget) NS_IMPL_CYCLE_COLLECTION_CLASS(XMLHttpRequestWorker) diff --git a/dom/xml/nsXMLContentSink.cpp b/dom/xml/nsXMLContentSink.cpp index 2125416d73..2c55265193 100644 --- a/dom/xml/nsXMLContentSink.cpp +++ b/dom/xml/nsXMLContentSink.cpp @@ -132,7 +132,7 @@ nsXMLContentSink::Init(nsIDocument* aDoc, return NS_OK; } -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(nsXMLContentSink) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsXMLContentSink) NS_INTERFACE_MAP_ENTRY(nsIContentSink) NS_INTERFACE_MAP_ENTRY(nsIXMLContentSink) NS_INTERFACE_MAP_ENTRY(nsIExpatSink) diff --git a/dom/xml/nsXMLFragmentContentSink.cpp b/dom/xml/nsXMLFragmentContentSink.cpp index 664fbbeb6a..638cfa77d6 100644 --- a/dom/xml/nsXMLFragmentContentSink.cpp +++ b/dom/xml/nsXMLFragmentContentSink.cpp @@ -135,7 +135,7 @@ nsXMLFragmentContentSink::~nsXMLFragmentContentSink() { } -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(nsXMLFragmentContentSink) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsXMLFragmentContentSink) NS_INTERFACE_MAP_ENTRY(nsIFragmentContentSink) NS_INTERFACE_MAP_END_INHERITING(nsXMLContentSink) diff --git a/dom/xul/templates/nsXULTreeBuilder.cpp b/dom/xul/templates/nsXULTreeBuilder.cpp index 3356700bec..b5f938505e 100644 --- a/dom/xul/templates/nsXULTreeBuilder.cpp +++ b/dom/xul/templates/nsXULTreeBuilder.cpp @@ -286,7 +286,7 @@ NS_IMPL_CYCLE_COLLECTION_INHERITED(nsXULTreeBuilder, nsXULTemplateBuilder, mLocalStore, mObservers) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(nsXULTreeBuilder) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsXULTreeBuilder) NS_INTERFACE_MAP_ENTRY(nsIXULTreeBuilder) NS_INTERFACE_MAP_ENTRY(nsITreeView) NS_DOM_INTERFACE_MAP_ENTRY_CLASSINFO(XULTreeBuilder) diff --git a/editor/libeditor/HTMLEditor.cpp b/editor/libeditor/HTMLEditor.cpp index cddf9b749d..bc253b213b 100644 --- a/editor/libeditor/HTMLEditor.cpp +++ b/editor/libeditor/HTMLEditor.cpp @@ -238,7 +238,7 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END NS_IMPL_ADDREF_INHERITED(HTMLEditor, EditorBase) NS_IMPL_RELEASE_INHERITED(HTMLEditor, EditorBase) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(HTMLEditor) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(HTMLEditor) NS_INTERFACE_MAP_ENTRY(nsIHTMLEditor) NS_INTERFACE_MAP_ENTRY(nsIHTMLObjectResizer) NS_INTERFACE_MAP_ENTRY(nsIHTMLAbsPosEditor) diff --git a/editor/libeditor/TextEditor.cpp b/editor/libeditor/TextEditor.cpp index 4b26eff9cd..5f75e7e7e0 100644 --- a/editor/libeditor/TextEditor.cpp +++ b/editor/libeditor/TextEditor.cpp @@ -107,7 +107,7 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END NS_IMPL_ADDREF_INHERITED(TextEditor, EditorBase) NS_IMPL_RELEASE_INHERITED(TextEditor, EditorBase) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(TextEditor) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(TextEditor) NS_INTERFACE_MAP_ENTRY(nsIPlaintextEditor) NS_INTERFACE_MAP_ENTRY(nsIEditorMailSupport) NS_INTERFACE_MAP_END_INHERITING(EditorBase) diff --git a/js/xpconnect/src/XPCJSContext.cpp b/js/xpconnect/src/XPCJSContext.cpp index 168dd5bf13..0a5d248185 100644 --- a/js/xpconnect/src/XPCJSContext.cpp +++ b/js/xpconnect/src/XPCJSContext.cpp @@ -629,11 +629,12 @@ XPCJSContext::TraverseAdditionalNativeRoots(nsCycleCollectionNoteRootCallback& c if (val.isObject() && !JS::ObjectIsMarkedGray(&val.toObject())) continue; } - cb.NoteXPCOMRoot(v); + cb.NoteXPCOMRoot(v, XPCTraceableVariant::NS_CYCLE_COLLECTION_INNERCLASS::GetParticipant()); } for (XPCRootSetElem* e = mWrappedJSRoots; e ; e = e->GetNextRoot()) { - cb.NoteXPCOMRoot(ToSupports(static_cast(e))); + cb.NoteXPCOMRoot(ToSupports(static_cast(e)), + nsXPCWrappedJS::NS_CYCLE_COLLECTION_INNERCLASS::GetParticipant()); } } diff --git a/js/xpconnect/src/XPCWrappedNativeScope.cpp b/js/xpconnect/src/XPCWrappedNativeScope.cpp index 40fb4201f7..5c395712fe 100644 --- a/js/xpconnect/src/XPCWrappedNativeScope.cpp +++ b/js/xpconnect/src/XPCWrappedNativeScope.cpp @@ -496,22 +496,9 @@ XPCWrappedNativeScope::TraceWrappedNativesInAllScopes(JSTracer* trc, XPCJSContex if (wrapper->HasExternalReference() && !wrapper->IsWrapperExpired()) wrapper->TraceSelf(trc); } - - if (cur->mDOMExpandoSet) { - for (DOMExpandoSet::Enum e(*cur->mDOMExpandoSet); !e.empty(); e.popFront()) - JS::TraceEdge(trc, &e.mutableFront(), "DOM expando object"); - } } } -static void -SuspectDOMExpandos(JSObject* obj, nsCycleCollectionNoteRootCallback& cb) -{ - MOZ_ASSERT(dom::GetDOMClass(obj) && dom::GetDOMClass(obj)->mDOMObjectIsISupports); - nsISupports* native = dom::UnwrapDOMObject(obj); - cb.NoteXPCOMRoot(native); -} - // static void XPCWrappedNativeScope::SuspectAllWrappers(XPCJSContext* cx, @@ -521,11 +508,6 @@ XPCWrappedNativeScope::SuspectAllWrappers(XPCJSContext* cx, for (auto i = cur->mWrappedNativeMap->Iter(); !i.Done(); i.Next()) { static_cast(i.Get())->value->Suspect(cb); } - - if (cur->mDOMExpandoSet) { - for (DOMExpandoSet::Range r = cur->mDOMExpandoSet->all(); !r.empty(); r.popFront()) - SuspectDOMExpandos(r.front().unbarrieredGet(), cb); - } } } diff --git a/js/xpconnect/src/xpcprivate.h b/js/xpconnect/src/xpcprivate.h index 5a32cd13f8..087e81a7ba 100644 --- a/js/xpconnect/src/xpcprivate.h +++ b/js/xpconnect/src/xpcprivate.h @@ -950,28 +950,6 @@ public: static bool IsDyingScope(XPCWrappedNativeScope* scope); - typedef js::HashSet, - js::MovableCellHasher>, - js::SystemAllocPolicy> DOMExpandoSet; - - bool RegisterDOMExpandoObject(JSObject* expando) { - // Expandos are proxy objects, and proxies are always tenured. - JS::AssertGCThingMustBeTenured(expando); - if (!mDOMExpandoSet) { - mDOMExpandoSet = new DOMExpandoSet(); - if (!mDOMExpandoSet->init(8)) - return false; - } - return mDOMExpandoSet->put(JS::Heap(expando)); - } - void RemoveDOMExpandoObject(JSObject* expando) { - if (mDOMExpandoSet) { - DOMExpandoSet::Ptr p = mDOMExpandoSet->lookup(JS::Heap(expando)); - MOZ_ASSERT(p.found()); - mDOMExpandoSet->remove(p); - } - } - typedef js::HashMap, js::PointerHasher, @@ -1065,8 +1043,6 @@ private: // from this scope if the caller scope has mInterposition set. bool mHasCallInterpositions; - nsAutoPtr mDOMExpandoSet; - JS::WeakMapPtr mXrayExpandos; bool mIsContentXBLScope; diff --git a/layout/style/CSSStyleSheet.cpp b/layout/style/CSSStyleSheet.cpp index 1ed14259db..a43e7588a4 100644 --- a/layout/style/CSSStyleSheet.cpp +++ b/layout/style/CSSStyleSheet.cpp @@ -1246,7 +1246,7 @@ CSSStyleSheet::TraverseInner(nsCycleCollectionTraversalCallback &cb) } // QueryInterface implementation for CSSStyleSheet -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(CSSStyleSheet) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(CSSStyleSheet) NS_INTERFACE_MAP_ENTRY(nsICSSLoaderObserver) NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, StyleSheet) if (aIID.Equals(NS_GET_IID(CSSStyleSheet))) diff --git a/layout/style/FontFaceSet.cpp b/layout/style/FontFaceSet.cpp index 54dc570a91..402e7c05a3 100644 --- a/layout/style/FontFaceSet.cpp +++ b/layout/style/FontFaceSet.cpp @@ -87,7 +87,7 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_END NS_IMPL_ADDREF_INHERITED(FontFaceSet, DOMEventTargetHelper) NS_IMPL_RELEASE_INHERITED(FontFaceSet, DOMEventTargetHelper) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(FontFaceSet) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(FontFaceSet) NS_INTERFACE_MAP_ENTRY(nsIDOMEventListener) NS_INTERFACE_MAP_ENTRY(nsICSSLoaderObserver) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) diff --git a/layout/style/MediaQueryList.cpp b/layout/style/MediaQueryList.cpp index 5838645be3..137073f3d6 100644 --- a/layout/style/MediaQueryList.cpp +++ b/layout/style/MediaQueryList.cpp @@ -55,7 +55,7 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(MediaQueryList, DOMEventTargetHe NS_IMPL_CYCLE_COLLECTION_UNLINK_PRESERVED_WRAPPER NS_IMPL_CYCLE_COLLECTION_UNLINK_END -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(MediaQueryList) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(MediaQueryList) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) NS_IMPL_ADDREF_INHERITED(MediaQueryList, DOMEventTargetHelper) diff --git a/layout/style/StyleRule.cpp b/layout/style/StyleRule.cpp index 97a17d2871..42aa43be4a 100644 --- a/layout/style/StyleRule.cpp +++ b/layout/style/StyleRule.cpp @@ -1295,7 +1295,7 @@ StyleRule::DropReferences() } // QueryInterface implementation for StyleRule -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(StyleRule) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(StyleRule) if (aIID.Equals(NS_GET_IID(mozilla::css::StyleRule))) { *aInstancePtr = this; NS_ADDREF_THIS(); diff --git a/layout/style/nsCSSPseudoClassList.h b/layout/style/nsCSSPseudoClassList.h index 9b1b4355e6..078b962ac0 100644 --- a/layout/style/nsCSSPseudoClassList.h +++ b/layout/style/nsCSSPseudoClassList.h @@ -191,10 +191,8 @@ CSS_STATE_PSEUDO_CLASS(fullscreen, ":fullscreen", CSS_STATE_PSEUDO_CLASS(mozFullScreen, ":-moz-full-screen", 0, "", NS_EVENT_STATE_FULL_SCREEN) // Matches if a element is modal -CSS_STATE_PSEUDO_CLASS(mozModalDialog, ":-moz-modal-dialog", - CSS_PSEUDO_CLASS_ENABLED_IN_UA_SHEETS, - "", - NS_EVENT_STATE_MODAL_DIALOG) +CSS_STATE_PSEUDO_CLASS(modal, ":modal", 0, "", NS_EVENT_STATE_MODAL_DIALOG) +CSS_STATE_PSEUDO_CLASS(mozModalDialog, ":-moz-modal-dialog", 0, "", NS_EVENT_STATE_MODAL_DIALOG) // Matches if the element is focused and should show a focus ring CSS_STATE_PSEUDO_CLASS(mozFocusRing, ":-moz-focusring", 0, "", NS_EVENT_STATE_FOCUSRING) diff --git a/layout/style/nsCSSRules.cpp b/layout/style/nsCSSRules.cpp index f31a813e07..adfdbcfe33 100644 --- a/layout/style/nsCSSRules.cpp +++ b/layout/style/nsCSSRules.cpp @@ -296,7 +296,7 @@ ImportRule::IsCCLeaf() const } // QueryInterface implementation for ImportRule -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(ImportRule) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(ImportRule) NS_INTERFACE_MAP_ENTRY(nsIDOMCSSImportRule) NS_INTERFACE_MAP_END_INHERITING(Rule) @@ -477,7 +477,7 @@ GroupRule::~GroupRule() NS_IMPL_ADDREF_INHERITED(GroupRule, Rule) NS_IMPL_RELEASE_INHERITED(GroupRule, Rule) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(GroupRule) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(GroupRule) NS_INTERFACE_MAP_END_INHERITING(Rule) bool @@ -761,7 +761,7 @@ NS_IMPL_ADDREF_INHERITED(MediaRule, ConditionRule) NS_IMPL_RELEASE_INHERITED(MediaRule, ConditionRule) // QueryInterface implementation for MediaRule -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(MediaRule) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(MediaRule) NS_INTERFACE_MAP_ENTRY(nsIDOMCSSGroupingRule) NS_INTERFACE_MAP_ENTRY(nsIDOMCSSConditionRule) NS_INTERFACE_MAP_ENTRY(nsIDOMCSSMediaRule) @@ -1683,7 +1683,7 @@ nsCSSFontFaceRule::IsCCLeaf() const } // QueryInterface implementation for nsCSSFontFaceRule -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(nsCSSFontFaceRule) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsCSSFontFaceRule) NS_INTERFACE_MAP_ENTRY(nsIDOMCSSFontFaceRule) NS_INTERFACE_MAP_END_INHERITING(Rule) @@ -2160,7 +2160,7 @@ nsCSSKeyframeRule::IsCCLeaf() const } // QueryInterface implementation for nsCSSKeyframeRule -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(nsCSSKeyframeRule) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsCSSKeyframeRule) NS_INTERFACE_MAP_ENTRY(nsIDOMCSSKeyframeRule) NS_INTERFACE_MAP_END_INHERITING(mozilla::css::Rule) @@ -2687,7 +2687,7 @@ nsCSSPageRule::IsCCLeaf() const } // QueryInterface implementation for nsCSSPageRule -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(nsCSSPageRule) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsCSSPageRule) NS_INTERFACE_MAP_ENTRY(nsIDOMCSSPageRule) NS_INTERFACE_MAP_END_INHERITING(mozilla::css::Rule) @@ -3399,7 +3399,7 @@ CSSLayerStatementRule::IsCCLeaf() const } // QueryInterface implementation for CSSLayerStatementRule -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(CSSLayerStatementRule) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(CSSLayerStatementRule) NS_INTERFACE_MAP_ENTRY(nsIDOMCSSLayerStatementRule) NS_INTERFACE_MAP_END_INHERITING(Rule) diff --git a/layout/style/nsDOMCSSDeclaration.cpp b/layout/style/nsDOMCSSDeclaration.cpp index 25af0275b7..18c57dcdf5 100644 --- a/layout/style/nsDOMCSSDeclaration.cpp +++ b/layout/style/nsDOMCSSDeclaration.cpp @@ -33,12 +33,9 @@ nsDOMCSSDeclaration::WrapObject(JSContext* aCx, JS::Handle aGivenProt return dom::CSS2PropertiesBinding::Wrap(aCx, this, aGivenProto); } -NS_INTERFACE_TABLE_HEAD(nsDOMCSSDeclaration) - NS_INTERFACE_TABLE(nsDOMCSSDeclaration, - nsICSSDeclaration, - nsIDOMCSSStyleDeclaration) - NS_INTERFACE_TABLE_TO_MAP_SEGUE -NS_INTERFACE_MAP_END +NS_IMPL_QUERY_INTERFACE(nsDOMCSSDeclaration, + nsICSSDeclaration, + nsIDOMCSSStyleDeclaration) NS_IMETHODIMP nsDOMCSSDeclaration::GetPropertyValue(const nsCSSPropertyID aPropID, diff --git a/layout/style/res/html.css b/layout/style/res/html.css index fcca8cf2ff..7a6d67f66f 100644 --- a/layout/style/res/html.css +++ b/layout/style/res/html.css @@ -827,7 +827,7 @@ dialog:not([open]) { display: none; } -dialog:-moz-modal-dialog { +dialog:modal { -moz-top-layer: top !important; } diff --git a/layout/xul/tree/TreeBoxObject.cpp b/layout/xul/tree/TreeBoxObject.cpp index 2265d9ee55..0a8b91ca54 100644 --- a/layout/xul/tree/TreeBoxObject.cpp +++ b/layout/xul/tree/TreeBoxObject.cpp @@ -30,7 +30,7 @@ NS_IMPL_CYCLE_COLLECTION_INHERITED(TreeBoxObject, BoxObject, NS_IMPL_ADDREF_INHERITED(TreeBoxObject, BoxObject) NS_IMPL_RELEASE_INHERITED(TreeBoxObject, BoxObject) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(TreeBoxObject) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(TreeBoxObject) NS_INTERFACE_MAP_ENTRY(nsITreeBoxObject) NS_INTERFACE_MAP_END_INHERITING(BoxObject) diff --git a/netwerk/protocol/http/nsHttpTransaction.cpp b/netwerk/protocol/http/nsHttpTransaction.cpp index 6c6865c239..43c229897a 100644 --- a/netwerk/protocol/http/nsHttpTransaction.cpp +++ b/netwerk/protocol/http/nsHttpTransaction.cpp @@ -762,7 +762,7 @@ nsHttpTransaction::ReadSegments(nsAHttpSegmentReader *reader, return mStatus; } - if (!mConnected && !m0RTTInProgress) { + if (mConnection && !mConnected && !m0RTTInProgress) { mConnected = true; nsCOMPtr info; mConnection->GetSecurityInfo(getter_AddRefs(info)); diff --git a/parser/html/nsHtml5DocumentBuilder.cpp b/parser/html/nsHtml5DocumentBuilder.cpp index 459b0311d7..2096abced7 100644 --- a/parser/html/nsHtml5DocumentBuilder.cpp +++ b/parser/html/nsHtml5DocumentBuilder.cpp @@ -13,7 +13,7 @@ NS_IMPL_CYCLE_COLLECTION_INHERITED(nsHtml5DocumentBuilder, nsContentSink, mOwnedElements) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(nsHtml5DocumentBuilder) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsHtml5DocumentBuilder) NS_INTERFACE_MAP_END_INHERITING(nsContentSink) NS_IMPL_ADDREF_INHERITED(nsHtml5DocumentBuilder, nsContentSink) diff --git a/toolkit/components/places/nsNavHistoryResult.cpp b/toolkit/components/places/nsNavHistoryResult.cpp index 64d06308fd..e03a3dbbf5 100644 --- a/toolkit/components/places/nsNavHistoryResult.cpp +++ b/toolkit/components/places/nsNavHistoryResult.cpp @@ -339,7 +339,7 @@ NS_IMPL_CYCLE_COLLECTION_INHERITED(nsNavHistoryContainerResultNode, nsNavHistory NS_IMPL_ADDREF_INHERITED(nsNavHistoryContainerResultNode, nsNavHistoryResultNode) NS_IMPL_RELEASE_INHERITED(nsNavHistoryContainerResultNode, nsNavHistoryResultNode) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(nsNavHistoryContainerResultNode) +NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsNavHistoryContainerResultNode) NS_INTERFACE_MAP_STATIC_AMBIGUOUS(nsNavHistoryContainerResultNode) NS_INTERFACE_MAP_ENTRY(nsINavHistoryContainerResultNode) NS_INTERFACE_MAP_END_INHERITING(nsNavHistoryResultNode) diff --git a/xpcom/base/nsAgg.h b/xpcom/base/nsAgg.h index bc4514475a..619c10a155 100644 --- a/xpcom/base/nsAgg.h +++ b/xpcom/base/nsAgg.h @@ -248,9 +248,24 @@ NS_DEFINE_STATIC_IID_ACCESSOR(nsAggregatedCycleCollectionParticipant, #define NS_INTERFACE_MAP_BEGIN_AGGREGATED(_class) \ NS_IMPL_AGGREGATED_QUERY_HEAD(_class) +#define NS_IMPL_QUERY_CYCLE_COLLECTION(_class) \ + if ( aIID.Equals(NS_GET_IID(nsXPCOMCycleCollectionParticipant)) ) { \ + *aInstancePtr = NS_CYCLE_COLLECTION_PARTICIPANT(_class); \ + return NS_OK; \ + } else + #define NS_INTERFACE_MAP_ENTRY_CYCLE_COLLECTION_AGGREGATED(_class) \ NS_IMPL_QUERY_CYCLE_COLLECTION(_class) +#define NS_IMPL_QUERY_CYCLE_COLLECTION_ISUPPORTS(_class) \ + if ( aIID.Equals(NS_GET_IID(nsCycleCollectionISupports)) ) { \ + *aInstancePtr = NS_CYCLE_COLLECTION_CLASSNAME(_class)::Upcast(this); \ + return NS_OK; \ + } else + +#define NS_INTERFACE_MAP_ENTRY_CYCLE_COLLECTION_ISUPPORTS(_class) \ + NS_IMPL_QUERY_CYCLE_COLLECTION_ISUPPORTS(_class) + #define NS_INTERFACE_MAP_ENTRIES_CYCLE_COLLECTION_AGGREGATED(_class) \ NS_INTERFACE_MAP_ENTRY_CYCLE_COLLECTION_AGGREGATED(_class) \ NS_INTERFACE_MAP_ENTRY_CYCLE_COLLECTION_ISUPPORTS(_class) diff --git a/xpcom/base/nsCycleCollector.cpp b/xpcom/base/nsCycleCollector.cpp index 3e78bb0d67..0efde15312 100644 --- a/xpcom/base/nsCycleCollector.cpp +++ b/xpcom/base/nsCycleCollector.cpp @@ -961,27 +961,6 @@ CanonicalizeXPCOMParticipant(nsISupports* aIn) return out; } -static inline void -ToParticipant(nsISupports* aPtr, nsXPCOMCycleCollectionParticipant** aCp); - -static void -CanonicalizeParticipant(void** aParti, nsCycleCollectionParticipant** aCp) -{ - // If the participant is null, this is an nsISupports participant, - // so we must QI to get the real participant. - - if (!*aCp) { - nsISupports* nsparti = static_cast(*aParti); - nsparti = CanonicalizeXPCOMParticipant(nsparti); - NS_ASSERTION(nsparti, - "Don't add objects that don't participate in collection!"); - nsXPCOMCycleCollectionParticipant* xcp; - ToParticipant(nsparti, &xcp); - *aParti = nsparti; - *aCp = xcp; - } -} - struct nsPurpleBufferEntry { nsPurpleBufferEntry(void* aObject, nsCycleCollectingAutoRefCnt* aRefCnt, @@ -1414,6 +1393,21 @@ ToParticipant(nsISupports* aPtr, nsXPCOMCycleCollectionParticipant** aCp) CallQueryInterface(aPtr, aCp); } +static void +ToParticipant(void* aParti, nsCycleCollectionParticipant** aCp) +{ + // If the participant is null, this is an nsISupports participant, + // so we must QI to get the real participant. + + if (!*aCp) { + nsISupports* nsparti = static_cast(aParti); + MOZ_ASSERT(CanonicalizeXPCOMParticipant(nsparti) == nsparti); + nsXPCOMCycleCollectionParticipant* xcp; + ToParticipant(nsparti, &xcp); + *aCp = xcp; + } +} + template MOZ_NEVER_INLINE void GraphWalker::Walk(PtrInfo* aPi) @@ -2094,7 +2088,7 @@ private: public: // nsCycleCollectionNoteRootCallback methods. - NS_IMETHOD_(void) NoteXPCOMRoot(nsISupports* aRoot); + NS_IMETHOD_(void) NoteXPCOMRoot(nsISupports* aRoot, nsCycleCollectionParticipant* aParticipant); NS_IMETHOD_(void) NoteJSRoot(JSObject* aRoot); NS_IMETHOD_(void) NoteNativeRoot(void* aRoot, nsCycleCollectionParticipant* aParticipant); @@ -2220,7 +2214,7 @@ CCGraphBuilder::AddNode(void* aPtr, nsCycleCollectionParticipant* aParticipant) bool CCGraphBuilder::AddPurpleRoot(void* aRoot, nsCycleCollectionParticipant* aParti) { - CanonicalizeParticipant(&aRoot, &aParti); + ToParticipant(aRoot, &aParti); if (WantAllTraces() || !aParti->CanSkipInCC(aRoot)) { PtrInfo* pinfo = AddNode(aRoot, aParti); @@ -2287,16 +2281,17 @@ CCGraphBuilder::BuildGraph(SliceBudget& aBudget) } NS_IMETHODIMP_(void) -CCGraphBuilder::NoteXPCOMRoot(nsISupports* aRoot) +CCGraphBuilder::NoteXPCOMRoot(nsISupports* aRoot, nsCycleCollectionParticipant* aParticipant) { - aRoot = CanonicalizeXPCOMParticipant(aRoot); - NS_ASSERTION(aRoot, - "Don't add objects that don't participate in collection!"); + MOZ_ASSERT(aRoot == CanonicalizeXPCOMParticipant(aRoot)); +#ifdef DEBUG nsXPCOMCycleCollectionParticipant* cp; ToParticipant(aRoot, &cp); + MOZ_ASSERT(aParticipant == cp); +#endif - NoteRoot(aRoot, cp); + NoteRoot(aRoot, aParticipant); } NS_IMETHODIMP_(void) @@ -2658,7 +2653,7 @@ public: if (!aEntry->mRefCnt->get()) { void* o = aEntry->mObject; nsCycleCollectionParticipant* cp = aEntry->mParticipant; - CanonicalizeParticipant(&o, &cp); + ToParticipant(o, &cp); SnowWhiteObject swo = { o, cp, aEntry->mRefCnt }; mObjects.InfallibleAppend(swo); aBuffer.Remove(aEntry); @@ -2774,7 +2769,7 @@ public: } void* o = aEntry->mObject; nsCycleCollectionParticipant* cp = aEntry->mParticipant; - CanonicalizeParticipant(&o, &cp); + ToParticipant(o, &cp); if (aEntry->mRefCnt->IsPurple() && !cp->CanSkip(o, false) && (!mRemoveChildlessNodes || MayHaveChild(o, cp))) { return; @@ -2981,10 +2976,8 @@ public: "Snow-white objects shouldn't be in the purple buffer."); void* obj = aEntry->mObject; - if (!aEntry->mParticipant) { - obj = CanonicalizeXPCOMParticipant(static_cast(obj)); - MOZ_ASSERT(obj, "Don't add objects that don't participate in collection!"); - } + MOZ_ASSERT(aEntry->mParticipant || CanonicalizeXPCOMParticipant(static_cast(obj)) == obj, + "Suspect nsISupports pointer must be canonical"); PtrInfo* pi = mGraph.FindNode(obj); if (!pi) { @@ -3455,6 +3448,9 @@ nsCycleCollector::Suspect(void* aPtr, nsCycleCollectionParticipant* aParti, MOZ_ASSERT(HasParticipant(aPtr, aParti), "Suspected nsISupports pointer must QI to nsXPCOMCycleCollectionParticipant"); + MOZ_ASSERT(aParti || CanonicalizeXPCOMParticipant(static_cast(aPtr)) == aPtr, + "Suspect nsISupports pointer must be canonical"); + mPurpleBuf.Put(aPtr, aParti, aRefCnt); } @@ -3953,7 +3949,7 @@ SuspectAfterShutdown(void* aPtr, nsCycleCollectionParticipant* aCp, if (aRefCnt->get() == 0) { if (!aShouldDelete) { // The CC is shut down, so we can't be in the middle of an ICC. - CanonicalizeParticipant(&aPtr, &aCp); + ToParticipant(aPtr, &aCp); aRefCnt->stabilizeForDeletion(); aCp->DeleteCycleCollectable(aPtr); } else { diff --git a/xpcom/glue/nsCycleCollectionNoteRootCallback.h b/xpcom/glue/nsCycleCollectionNoteRootCallback.h index 1f0b5c589f..45efd3e2c0 100644 --- a/xpcom/glue/nsCycleCollectionNoteRootCallback.h +++ b/xpcom/glue/nsCycleCollectionNoteRootCallback.h @@ -12,7 +12,9 @@ class nsISupports; class nsCycleCollectionNoteRootCallback { public: - NS_IMETHOD_(void) NoteXPCOMRoot(nsISupports* aRoot) = 0; + // aRoot must be canonical (ie the result of QIing to nsCycleCollectionISupports). + NS_IMETHOD_(void) NoteXPCOMRoot(nsISupports* aRoot, + nsCycleCollectionParticipant* aParticipant) = 0; NS_IMETHOD_(void) NoteJSRoot(JSObject* aRoot) = 0; NS_IMETHOD_(void) NoteNativeRoot(void* aRoot, nsCycleCollectionParticipant* aParticipant) = 0; diff --git a/xpcom/glue/nsCycleCollectionParticipant.h b/xpcom/glue/nsCycleCollectionParticipant.h index 67842b493e..43a9b82a4e 100644 --- a/xpcom/glue/nsCycleCollectionParticipant.h +++ b/xpcom/glue/nsCycleCollectionParticipant.h @@ -11,12 +11,17 @@ #include "nsCycleCollectionNoteChild.h" #include "js/RootingAPI.h" +/** + * Note: the two IIDs below only differ in one bit in the last byte. This + * is an intentional hack in order to speed up the comparison inside + * NS_INTERFACE_TABLE_HEAD_CYCLE_COLLECTION_INHERITED. + */ #define NS_XPCOMCYCLECOLLECTIONPARTICIPANT_IID \ { \ - 0x9674489b, \ - 0x1f6f, \ - 0x4550, \ - { 0xa7, 0x30, 0xcc, 0xae, 0xdd, 0x10, 0x4c, 0xf9 } \ + 0xc61eac14, \ + 0x5f7a, \ + 0x4481, \ + { 0x96, 0x5e, 0x7e, 0xaa, 0x6e, 0xff, 0xa8, 0x5e } \ } /** @@ -251,51 +256,65 @@ NS_DEFINE_STATIC_IID_ACCESSOR(nsXPCOMCycleCollectionParticipant, #define NS_CYCLE_COLLECTION_CLASSNAME(_class) \ _class::NS_CYCLE_COLLECTION_INNERCLASS -#define NS_IMPL_QUERY_CYCLE_COLLECTION(_class) \ - if ( aIID.Equals(NS_GET_IID(nsXPCOMCycleCollectionParticipant)) ) { \ - *aInstancePtr = NS_CYCLE_COLLECTION_PARTICIPANT(_class); \ - return NS_OK; \ - } else - -#define NS_IMPL_QUERY_CYCLE_COLLECTION_ISUPPORTS(_class) \ - if ( aIID.Equals(NS_GET_IID(nsCycleCollectionISupports)) ) { \ - *aInstancePtr = NS_CYCLE_COLLECTION_CLASSNAME(_class)::Upcast(this); \ - return NS_OK; \ - } else - -#define NS_INTERFACE_MAP_ENTRY_CYCLE_COLLECTION(_class) \ - NS_IMPL_QUERY_CYCLE_COLLECTION(_class) - -#define NS_INTERFACE_MAP_ENTRY_CYCLE_COLLECTION_ISUPPORTS(_class) \ - NS_IMPL_QUERY_CYCLE_COLLECTION_ISUPPORTS(_class) - +// The IIDs for nsXPCOMCycleCollectionParticipant and nsCycleCollectionISupports +// are special in that they only differ in their last byte. This allows for the +// optimization below where we first check the first three words of the IID and +// if we find a match we check the last word to decide which case we have to +// deal with. #define NS_INTERFACE_MAP_ENTRIES_CYCLE_COLLECTION(_class) \ - NS_INTERFACE_MAP_ENTRY_CYCLE_COLLECTION(_class) \ - NS_INTERFACE_MAP_ENTRY_CYCLE_COLLECTION_ISUPPORTS(_class) + if (TopThreeWordsEquals(aIID, NS_GET_IID(nsXPCOMCycleCollectionParticipant), \ + NS_GET_IID(nsCycleCollectionISupports)) && \ + /* The calls to LowWordEquals here are repeated inside the if branch. \ + This is due to the fact that we need to maintain the if/else chain \ + for these macros, so that the control flow never enters the if branch\ + unless if we're certain one of the LowWordEquals() branches will get \ + executed. */ \ + (LowWordEquals(aIID, NS_GET_IID(nsXPCOMCycleCollectionParticipant)) || \ + LowWordEquals(aIID, NS_GET_IID(nsCycleCollectionISupports)))) { \ + if (LowWordEquals(aIID, NS_GET_IID(nsXPCOMCycleCollectionParticipant))) { \ + *aInstancePtr = NS_CYCLE_COLLECTION_PARTICIPANT(_class); \ + return NS_OK; \ + } \ + if (LowWordEquals(aIID, NS_GET_IID(nsCycleCollectionISupports))) { \ + *aInstancePtr = NS_CYCLE_COLLECTION_CLASSNAME(_class)::Upcast(this); \ + return NS_OK; \ + } else { \ + /* Avoid warnings about foundInterface being left uninitialized. */ \ + foundInterface = nullptr; \ + } \ + } else #define NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(_class) \ NS_INTERFACE_MAP_BEGIN(_class) \ NS_INTERFACE_MAP_ENTRIES_CYCLE_COLLECTION(_class) -#define NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(_class) \ - NS_INTERFACE_MAP_BEGIN(_class) \ - NS_INTERFACE_MAP_ENTRY_CYCLE_COLLECTION(_class) - #define NS_INTERFACE_TABLE_TO_MAP_SEGUE_CYCLE_COLLECTION(_class) \ if (rv == NS_OK) return rv; \ nsISupports* foundInterface; \ NS_INTERFACE_MAP_ENTRIES_CYCLE_COLLECTION(_class) +// The IIDs for nsXPCOMCycleCollectionParticipant and nsCycleCollectionISupports +// are special in that they only differ in their last byte. This allows for the +// optimization below where we first check the first three words of the IID and +// if we find a match we check the last word to decide which case we have to +// deal with. #define NS_INTERFACE_TABLE_HEAD_CYCLE_COLLECTION_INHERITED(_class) \ NS_IMETHODIMP _class::QueryInterface(REFNSIID aIID, void** aInstancePtr) \ { \ NS_PRECONDITION(aInstancePtr, "null out param"); \ \ - if ( aIID.Equals(NS_GET_IID(nsXPCOMCycleCollectionParticipant)) ) { \ - *aInstancePtr = NS_CYCLE_COLLECTION_PARTICIPANT(_class); \ - return NS_OK; \ + if (TopThreeWordsEquals(aIID, NS_GET_IID(nsXPCOMCycleCollectionParticipant), \ + NS_GET_IID(nsCycleCollectionISupports))) { \ + if (LowWordEquals(aIID, NS_GET_IID(nsXPCOMCycleCollectionParticipant))) { \ + *aInstancePtr = NS_CYCLE_COLLECTION_PARTICIPANT(_class); \ + return NS_OK; \ + } \ + if (LowWordEquals(aIID, NS_GET_IID(nsCycleCollectionISupports))) { \ + *aInstancePtr = NS_CYCLE_COLLECTION_CLASSNAME(_class)::Upcast(this); \ + return NS_OK; \ + } \ } \ - nsresult rv; + nsresult rv = NS_ERROR_FAILURE; #define NS_CYCLE_COLLECTION_UPCAST(obj, clazz) \ NS_CYCLE_COLLECTION_CLASSNAME(clazz)::Upcast(obj) @@ -867,4 +886,46 @@ static NS_CYCLE_COLLECTION_INNERCLASS NS_CYCLE_COLLECTION_INNERNAME; #define NS_CYCLE_COLLECTION_NOTE_EDGE_NAME CycleCollectionNoteEdgeName +/** + * Convenience macros for defining nISupports methods in a cycle collected class. + */ + +#define NS_IMPL_QUERY_INTERFACE_CYCLE_COLLECTION_INHERITED(aClass, aSuper, ...) \ + NS_INTERFACE_TABLE_HEAD_CYCLE_COLLECTION_INHERITED(aClass) \ + NS_INTERFACE_TABLE_INHERITED(aClass, __VA_ARGS__) \ + NS_INTERFACE_TABLE_TAIL_INHERITING(aSuper) + +#define NS_IMPL_ISUPPORTS_CYCLE_COLLECTION_INHERITED(aClass, aSuper, ...) \ + NS_IMPL_QUERY_INTERFACE_CYCLE_COLLECTION_INHERITED(aClass, aSuper, __VA_ARGS__) \ + NS_IMPL_ADDREF_INHERITED(aClass, aSuper) \ + NS_IMPL_RELEASE_INHERITED(aClass, aSuper) + +// *** Fast IID comparison helper functions *** +/** + * Equivalency of the high three words where two IIDs have the same + * top three words but not the same low word. + */ +inline bool TopThreeWordsEquals(const nsID& aID, + const nsID& aOther1, + const nsID& aOther2) +{ + MOZ_ASSERT((((uint32_t*)&aOther1.m0)[0] == ((uint32_t*)&aOther2.m0)[0]) && + (((uint32_t*)&aOther1.m0)[1] == ((uint32_t*)&aOther2.m0)[1]) && + (((uint32_t*)&aOther1.m0)[2] == ((uint32_t*)&aOther2.m0)[2]) && + (((uint32_t*)&aOther1.m0)[3] != ((uint32_t*)&aOther2.m0)[3])); + + return ((((uint32_t*)&aID.m0)[0] == ((uint32_t*)&aOther1.m0)[0]) && + (((uint32_t*)&aID.m0)[1] == ((uint32_t*)&aOther1.m0)[1]) && + (((uint32_t*)&aID.m0)[2] == ((uint32_t*)&aOther1.m0)[2])); +} + +/** + * Equivalency of the fourth word where the two IIDs have the same + * top three words but not the same low word. + */ +inline bool LowWordEquals(const nsID& aID, const nsID& aOther) +{ + return (((uint32_t*)&aID.m0)[3] == ((uint32_t*)&aOther.m0)[3]); +} + #endif // nsCycleCollectionParticipant_h__