Bug 1078744 - Replace SetIsDOMBinding with SetIsNonDOMBinding, remove nsWrapperCache::SetIsDOMBinding. r=bz.
authorPeter Van der Beken <peterv@propagandism.org>
Tue, 07 Oct 2014 11:44:49 +0200
changeset 209156 2ae2d0f3a5469335377c3cdb530518d6a7dd6eff
parent 209155 b319a51ba6dcb8bdba6ab2812908f86b0ac061f0
child 209157 90e59a4e16d17ee280b9519aaf8bbd419b8a362f
push id1
push userroot
push dateMon, 20 Oct 2014 17:29:22 +0000
reviewersbz
bugs1078744
milestone35.0a1
Bug 1078744 - Replace SetIsDOMBinding with SetIsNonDOMBinding, remove nsWrapperCache::SetIsDOMBinding. r=bz.
content/base/public/FragmentOrElement.h
content/base/public/nsDOMFile.h
content/base/public/nsINode.h
content/base/src/Attr.cpp
content/base/src/DOMImplementation.h
content/base/src/DOMMatrix.h
content/base/src/DOMParser.cpp
content/base/src/DOMParser.h
content/base/src/DOMPoint.h
content/base/src/DOMQuad.cpp
content/base/src/DOMRect.h
content/base/src/DOMStringList.h
content/base/src/Element.cpp
content/base/src/StyleSheetList.h
content/base/src/nsContentList.h
content/base/src/nsDOMAttributeMap.cpp
content/base/src/nsDOMCaretPosition.cpp
content/base/src/nsDOMFileReader.cpp
content/base/src/nsDOMMutationObserver.h
content/base/src/nsDOMSerializer.cpp
content/base/src/nsDOMSerializer.h
content/base/src/nsDOMTokenList.cpp
content/base/src/nsFormData.cpp
content/base/src/nsRange.h
content/base/src/nsXMLHttpRequest.cpp
content/html/content/src/HTMLCanvasElement.cpp
content/html/content/src/HTMLContentElement.cpp
content/html/content/src/HTMLFormControlsCollection.cpp
content/html/content/src/HTMLOptionsCollection.cpp
content/html/content/src/HTMLPropertiesCollection.cpp
content/html/content/src/HTMLShadowElement.cpp
content/html/content/src/HTMLTableElement.cpp
content/html/content/src/MediaError.cpp
content/html/content/src/UndoManager.cpp
content/html/content/src/ValidityState.cpp
content/html/content/src/nsDOMStringMap.cpp
content/html/document/src/HTMLAllCollection.cpp
content/media/DOMMediaStream.cpp
content/media/MediaStreamTrack.cpp
content/media/MediaTrack.cpp
content/media/TextTrackCueList.cpp
content/media/TextTrackRegion.cpp
content/media/VideoPlaybackQuality.cpp
content/media/eme/MediaKeyError.cpp
content/media/eme/MediaKeys.cpp
content/media/webaudio/AudioBuffer.cpp
content/media/webaudio/AudioListener.cpp
content/media/webaudio/AudioNode.cpp
content/media/webaudio/AudioParam.cpp
content/media/webaudio/AudioProcessingEvent.cpp
content/media/webaudio/OfflineAudioCompletionEvent.cpp
content/media/webaudio/PeriodicWave.cpp
content/media/webspeech/recognition/SpeechGrammar.cpp
content/media/webspeech/recognition/SpeechGrammarList.cpp
content/media/webspeech/recognition/SpeechRecognitionAlternative.cpp
content/media/webspeech/recognition/SpeechRecognitionResult.cpp
content/media/webspeech/recognition/SpeechRecognitionResultList.cpp
content/media/webspeech/synth/SpeechSynthesis.cpp
content/media/webspeech/synth/SpeechSynthesisUtterance.cpp
content/media/webspeech/synth/SpeechSynthesisVoice.cpp
content/svg/content/src/DOMSVGAnimatedLengthList.h
content/svg/content/src/DOMSVGAnimatedNumberList.h
content/svg/content/src/DOMSVGLength.cpp
content/svg/content/src/DOMSVGLengthList.h
content/svg/content/src/DOMSVGNumber.cpp
content/svg/content/src/DOMSVGNumberList.h
content/svg/content/src/DOMSVGPathSeg.cpp
content/svg/content/src/DOMSVGPathSegList.h
content/svg/content/src/DOMSVGPointList.h
content/svg/content/src/DOMSVGStringList.h
content/svg/content/src/DOMSVGTransformList.h
content/svg/content/src/SVGAngle.h
content/svg/content/src/SVGAnimatedAngle.h
content/svg/content/src/SVGAnimatedBoolean.h
content/svg/content/src/SVGAnimatedEnumeration.h
content/svg/content/src/SVGAnimatedInteger.h
content/svg/content/src/SVGAnimatedLength.h
content/svg/content/src/SVGAnimatedNumber.h
content/svg/content/src/SVGAnimatedPreserveAspectRatio.h
content/svg/content/src/SVGAnimatedRect.cpp
content/svg/content/src/SVGAnimatedString.h
content/svg/content/src/SVGAnimatedTransformList.h
content/svg/content/src/SVGIRect.h
content/svg/content/src/SVGMatrix.h
content/svg/content/src/SVGPreserveAspectRatio.h
content/svg/content/src/SVGTransform.cpp
content/svg/content/src/nsISVGPoint.h
dom/animation/Animation.h
dom/animation/AnimationEffect.h
dom/animation/AnimationPlayer.h
dom/animation/AnimationTimeline.h
dom/archivereader/ArchiveReader.cpp
dom/base/BarProps.cpp
dom/base/Console.cpp
dom/base/Crypto.cpp
dom/base/DOMError.cpp
dom/base/DOMException.cpp
dom/base/MessageChannel.cpp
dom/base/MessagePort.cpp
dom/base/MessagePortList.h
dom/base/Navigator.cpp
dom/base/PerformanceEntry.cpp
dom/base/SubtleCrypto.cpp
dom/base/URLSearchParams.cpp
dom/base/nsGlobalWindow.cpp
dom/base/nsHistory.cpp
dom/base/nsLocation.cpp
dom/base/nsMimeTypeArray.cpp
dom/base/nsPerformance.cpp
dom/base/nsPluginArray.cpp
dom/base/nsWrapperCache.h
dom/bindings/BindingUtils.h
dom/bindings/Codegen.py
dom/bluetooth2/BluetoothClassOfDevice.cpp
dom/bluetooth2/BluetoothPairingHandle.cpp
dom/camera/DOMCameraCapabilities.cpp
dom/camera/DOMCameraControl.cpp
dom/camera/DOMCameraDetectedFace.cpp
dom/camera/DOMCameraManager.cpp
dom/canvas/CanvasGradient.h
dom/canvas/CanvasPattern.h
dom/canvas/CanvasRenderingContext2D.cpp
dom/canvas/WebGLBuffer.cpp
dom/canvas/WebGLContext.cpp
dom/canvas/WebGLExtensionBase.cpp
dom/canvas/WebGLFramebuffer.cpp
dom/canvas/WebGLProgram.cpp
dom/canvas/WebGLQuery.cpp
dom/canvas/WebGLRenderbuffer.cpp
dom/canvas/WebGLSampler.cpp
dom/canvas/WebGLShader.cpp
dom/canvas/WebGLTexture.cpp
dom/canvas/WebGLTransformFeedback.cpp
dom/canvas/WebGLVertexArray.cpp
dom/cellbroadcast/CellBroadcastMessage.cpp
dom/crypto/CryptoKey.cpp
dom/events/DOMEventTargetHelper.h
dom/events/DataTransfer.cpp
dom/events/DeviceMotionEvent.cpp
dom/events/Event.cpp
dom/events/ImageCaptureError.cpp
dom/events/PaintRequest.h
dom/events/Touch.cpp
dom/events/TouchEvent.h
dom/fetch/Headers.cpp
dom/fetch/Headers.h
dom/fetch/Request.cpp
dom/fetch/Response.cpp
dom/filesystem/Directory.cpp
dom/fmradio/FMRadio.cpp
dom/gamepad/Gamepad.cpp
dom/gamepad/GamepadButton.h
dom/geolocation/nsGeoPosition.cpp
dom/geolocation/nsGeolocation.cpp
dom/icc/Icc.cpp
dom/icc/IccInfo.cpp
dom/indexedDB/IDBCursor.cpp
dom/indexedDB/IDBDatabase.cpp
dom/indexedDB/IDBEvents.h
dom/indexedDB/IDBFactory.cpp
dom/indexedDB/IDBFileHandle.cpp
dom/indexedDB/IDBIndex.cpp
dom/indexedDB/IDBObjectStore.cpp
dom/media/GetUserMediaRequest.cpp
dom/mobileconnection/MobileCellInfo.cpp
dom/mobileconnection/MobileConnection.cpp
dom/mobileconnection/MobileConnectionArray.cpp
dom/mobileconnection/MobileConnectionInfo.cpp
dom/mobileconnection/MobileNetworkInfo.cpp
dom/nfc/MozNDEFRecord.cpp
dom/notification/DesktopNotification.h
dom/power/PowerManager.h
dom/power/WakeLock.cpp
dom/promise/Promise.cpp
dom/smil/TimeEvent.cpp
dom/speakermanager/SpeakerManager.cpp
dom/storage/DOMStorage.cpp
dom/system/gonk/AudioChannelManager.cpp
dom/telephony/CallsList.cpp
dom/telephony/TelephonyCallId.cpp
dom/time/TimeManager.h
dom/voicemail/VoicemailStatus.cpp
dom/workers/Location.h
dom/workers/MessagePort.cpp
dom/workers/Navigator.h
dom/workers/Performance.cpp
dom/workers/WorkerPrivate.cpp
dom/workers/WorkerScope.cpp
dom/workers/XMLHttpRequest.cpp
dom/workers/XMLHttpRequestUpload.cpp
dom/xbl/XBLChildrenElement.h
dom/xslt/xpath/XPathResult.cpp
layout/generic/nsSelection.cpp
layout/style/CSSRuleList.h
layout/style/CSSStyleSheet.cpp
layout/style/FontFace.cpp
layout/style/MediaQueryList.cpp
layout/style/nsCSSRules.h
layout/style/nsDOMCSSDeclaration.h
layout/style/nsDOMCSSRGBColor.cpp
layout/style/nsDOMCSSRect.cpp
layout/style/nsDOMCSSValueList.cpp
layout/style/nsROCSSPrimitiveValue.cpp
layout/xul/tree/nsTreeColumns.cpp
media/webrtc/signaling/src/peerconnection/MediaStreamList.cpp
--- a/content/base/public/FragmentOrElement.h
+++ b/content/base/public/FragmentOrElement.h
@@ -46,17 +46,16 @@ class Element;
  * @see nsIDOMNodeList
  */
 class nsChildContentList MOZ_FINAL : public nsINodeList
 {
 public:
   explicit nsChildContentList(nsINode* aNode)
     : mNode(aNode)
   {
-    SetIsDOMBinding();
   }
 
   NS_DECL_CYCLE_COLLECTING_ISUPPORTS
   NS_DECL_CYCLE_COLLECTION_SKIPPABLE_SCRIPT_HOLDER_CLASS(nsChildContentList)
 
   // nsWrapperCache
   virtual JSObject* WrapObject(JSContext *cx) MOZ_OVERRIDE;
 
--- a/content/base/public/nsDOMFile.h
+++ b/content/base/public/nsDOMFile.h
@@ -749,17 +749,16 @@ private:
 class nsDOMFileList MOZ_FINAL : public nsIDOMFileList,
                                 public nsWrapperCache
 {
   ~nsDOMFileList() {}
 
 public:
   explicit nsDOMFileList(nsISupports *aParent) : mParent(aParent)
   {
-    SetIsDOMBinding();
   }
 
   NS_DECL_CYCLE_COLLECTING_ISUPPORTS
   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(nsDOMFileList)
 
   NS_DECL_NSIDOMFILELIST
 
   virtual JSObject* WrapObject(JSContext *cx) MOZ_OVERRIDE;
--- a/content/base/public/nsINode.h
+++ b/content/base/public/nsINode.h
@@ -315,17 +315,16 @@ public:
     mParent(nullptr),
     mBoolFlags(0),
     mNextSibling(nullptr),
     mPreviousSibling(nullptr),
     mFirstChild(nullptr),
     mSubtreeRoot(MOZ_THIS_IN_INITIALIZER_LIST()),
     mSlots(nullptr)
   {
-    SetIsDOMBinding();
   }
 #endif
 
   virtual ~nsINode();
 
   /**
    * Bit-flags to pass (or'ed together) to IsNodeOfType()
    */
--- a/content/base/src/Attr.cpp
+++ b/content/base/src/Attr.cpp
@@ -49,18 +49,16 @@ Attr::Attr(nsDOMAttributeMap *aAttrMap,
   : nsIAttribute(aAttrMap, aNodeInfo, aNsAware), mValue(aValue)
 {
   NS_ABORT_IF_FALSE(mNodeInfo, "We must get a nodeinfo here!");
   NS_ABORT_IF_FALSE(mNodeInfo->NodeType() == nsIDOMNode::ATTRIBUTE_NODE,
                     "Wrong nodeType");
 
   // We don't add a reference to our content. It will tell us
   // to drop our reference when it goes away.
-
-  SetIsDOMBinding();
 }
 
 NS_IMPL_CYCLE_COLLECTION_CLASS(Attr)
 
 NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(Attr)
   NS_IMPL_CYCLE_COLLECTION_TRAVERSE_SCRIPT_OBJECTS
 
   if (!nsINode::Traverse(tmp, cb)) {
--- a/content/base/src/DOMImplementation.h
+++ b/content/base/src/DOMImplementation.h
@@ -37,17 +37,16 @@ public:
                     nsIURI* aDocumentURI,
                     nsIURI* aBaseURI)
     : mOwner(aOwner)
     , mScriptObject(do_GetWeakReference(aScriptObject))
     , mDocumentURI(aDocumentURI)
     , mBaseURI(aBaseURI)
   {
     MOZ_ASSERT(aOwner);
-    SetIsDOMBinding();
   }
 
   NS_DECL_CYCLE_COLLECTING_ISUPPORTS
   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(DOMImplementation)
 
   nsIDocument* GetParentObject() const
   {
     return mOwner;
--- a/content/base/src/DOMMatrix.h
+++ b/content/base/src/DOMMatrix.h
@@ -23,29 +23,26 @@ class GlobalObject;
 class DOMMatrix;
 
 class DOMMatrixReadOnly : public nsWrapperCache
 {
 public:
   explicit DOMMatrixReadOnly(nsISupports* aParent)
     : mParent(aParent), mMatrix2D(new gfx::Matrix())
   {
-    SetIsDOMBinding();
   }
 
   DOMMatrixReadOnly(nsISupports* aParent, const DOMMatrixReadOnly& other)
     : mParent(aParent)
   {
     if (other.mMatrix2D) {
       mMatrix2D = new gfx::Matrix(*other.mMatrix2D);
     } else {
       mMatrix3D = new gfx::Matrix4x4(*other.mMatrix3D);
     }
-
-    SetIsDOMBinding();
   }
 
 #define GetMatrixMember(entry2D, entry3D, default) \
 { \
   if (mMatrix3D) { \
     return mMatrix3D->entry3D; \
   } \
   return mMatrix2D->entry2D; \
--- a/content/base/src/DOMParser.cpp
+++ b/content/base/src/DOMParser.cpp
@@ -20,17 +20,16 @@
 #include "mozilla/dom/ScriptSettings.h"
 
 using namespace mozilla;
 using namespace mozilla::dom;
 
 DOMParser::DOMParser()
   : mAttemptedInit(false)
 {
-  SetIsDOMBinding();
 }
 
 DOMParser::~DOMParser()
 {
 }
 
 // QueryInterface implementation for DOMParser
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(DOMParser)
--- a/content/base/src/DOMParser.h
+++ b/content/base/src/DOMParser.h
@@ -79,17 +79,16 @@ public:
   {
     return mozilla::dom::DOMParserBinding::Wrap(aCx, this);
   }
 
 private:
   explicit DOMParser(nsISupports* aOwner) : mOwner(aOwner), mAttemptedInit(false)
   {
     MOZ_ASSERT(aOwner);
-    SetIsDOMBinding();
   }
 
   nsresult InitInternal(nsISupports* aOwner, nsIPrincipal* prin,
                         nsIURI* documentURI, nsIURI* baseURI);
 
   nsresult SetUpDocument(DocumentFlavor aFlavor, nsIDOMDocument** aResult);
 
   // Helper for ParseFromString
--- a/content/base/src/DOMPoint.h
+++ b/content/base/src/DOMPoint.h
@@ -26,17 +26,16 @@ public:
   DOMPointReadOnly(nsISupports* aParent, double aX, double aY,
                    double aZ, double aW)
     : mParent(aParent)
     , mX(aX)
     , mY(aY)
     , mZ(aZ)
     , mW(aW)
   {
-    SetIsDOMBinding();
   }
 
   double X() const { return mX; }
   double Y() const { return mY; }
   double Z() const { return mZ; }
   double W() const { return mW; }
 
 protected:
--- a/content/base/src/DOMQuad.cpp
+++ b/content/base/src/DOMQuad.cpp
@@ -18,26 +18,24 @@ NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(DO
                                       mPoints[1], mPoints[2], mPoints[3])
 
 NS_IMPL_CYCLE_COLLECTION_ROOT_NATIVE(DOMQuad, AddRef)
 NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(DOMQuad, Release)
 
 DOMQuad::DOMQuad(nsISupports* aParent, CSSPoint aPoints[4])
   : mParent(aParent)
 {
-  SetIsDOMBinding();
   for (uint32_t i = 0; i < 4; ++i) {
     mPoints[i] = new DOMPoint(aParent, aPoints[i].x, aPoints[i].y);
   }
 }
 
 DOMQuad::DOMQuad(nsISupports* aParent)
   : mParent(aParent)
 {
-  SetIsDOMBinding();
 }
 
 DOMQuad::~DOMQuad()
 {
 }
 
 JSObject*
 DOMQuad::WrapObject(JSContext* aCx)
--- a/content/base/src/DOMRect.h
+++ b/content/base/src/DOMRect.h
@@ -31,17 +31,16 @@ protected:
 
 public:
   NS_DECL_CYCLE_COLLECTING_ISUPPORTS
   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(DOMRectReadOnly)
 
   explicit DOMRectReadOnly(nsISupports* aParent)
     : mParent(aParent)
   {
-    SetIsDOMBinding();
   }
 
   nsISupports* GetParentObject() const
   {
     MOZ_ASSERT(mParent);
     return mParent;
   }
   virtual JSObject* WrapObject(JSContext* aCx) MOZ_OVERRIDE;
@@ -150,17 +149,16 @@ private:
 class DOMRectList MOZ_FINAL : public nsIDOMClientRectList,
                               public nsWrapperCache
 {
   ~DOMRectList() {}
 
 public:
   explicit DOMRectList(nsISupports *aParent) : mParent(aParent)
   {
-    SetIsDOMBinding();
   }
 
   NS_DECL_CYCLE_COLLECTING_ISUPPORTS
   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(DOMRectList)
 
   NS_DECL_NSIDOMCLIENTRECTLIST
   
   virtual JSObject* WrapObject(JSContext *cx) MOZ_OVERRIDE;
--- a/content/base/src/DOMStringList.h
+++ b/content/base/src/DOMStringList.h
@@ -16,21 +16,16 @@ namespace dom {
 
 class DOMStringList : public nsISupports,
                       public nsWrapperCache
 {
 protected:
   virtual ~DOMStringList();
 
 public:
-  DOMStringList()
-  {
-    SetIsDOMBinding();
-  }
-
   NS_DECL_CYCLE_COLLECTING_ISUPPORTS
   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(DOMStringList)
 
   virtual JSObject* WrapObject(JSContext* aCx);
   nsISupports* GetParentObject()
   {
     return nullptr;
   }
--- a/content/base/src/Element.cpp
+++ b/content/base/src/Element.cpp
@@ -871,18 +871,16 @@ NS_INTERFACE_TABLE_HEAD(DestinationInser
 NS_INTERFACE_MAP_END
 
 NS_IMPL_CYCLE_COLLECTING_ADDREF(DestinationInsertionPointList)
 NS_IMPL_CYCLE_COLLECTING_RELEASE(DestinationInsertionPointList)
 
 DestinationInsertionPointList::DestinationInsertionPointList(Element* aElement)
   : mParent(aElement)
 {
-  SetIsDOMBinding();
-
   nsTArray<nsIContent*>* destPoints = aElement->GetExistingDestInsertionPoints();
   if (destPoints) {
     for (uint32_t i = 0; i < destPoints->Length(); i++) {
       mDestinationPoints.AppendElement(destPoints->ElementAt(i));
     }
   }
 }
 
--- a/content/base/src/StyleSheetList.h
+++ b/content/base/src/StyleSheetList.h
@@ -15,21 +15,16 @@ namespace mozilla {
 class CSSStyleSheet;
 
 namespace dom {
 
 class StyleSheetList : public nsIDOMStyleSheetList
                      , public nsWrapperCache
 {
 public:
-  StyleSheetList()
-  {
-    SetIsDOMBinding();
-  }
-
   NS_DECL_CYCLE_COLLECTING_ISUPPORTS
   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(StyleSheetList)
   NS_DECL_NSIDOMSTYLESHEETLIST
 
   virtual JSObject* WrapObject(JSContext* aCx) MOZ_OVERRIDE MOZ_FINAL;
 
   virtual nsINode* GetParentObject() const = 0;
 
--- a/content/base/src/nsContentList.h
+++ b/content/base/src/nsContentList.h
@@ -34,21 +34,16 @@ namespace dom {
 class Element;
 }
 }
 
 
 class nsBaseContentList : public nsINodeList
 {
 public:
-  nsBaseContentList()
-  {
-    SetIsDOMBinding();
-  }
-
   NS_DECL_CYCLE_COLLECTING_ISUPPORTS
 
   // nsIDOMNodeList
   NS_DECL_NSIDOMNODELIST
 
   // nsINodeList
   virtual int32_t IndexOf(nsIContent* aContent) MOZ_OVERRIDE;
   virtual nsIContent* Item(uint32_t aIndex) MOZ_OVERRIDE;
--- a/content/base/src/nsDOMAttributeMap.cpp
+++ b/content/base/src/nsDOMAttributeMap.cpp
@@ -29,17 +29,16 @@ using namespace mozilla::dom;
 
 //----------------------------------------------------------------------
 
 nsDOMAttributeMap::nsDOMAttributeMap(Element* aContent)
   : mContent(aContent)
 {
   // We don't add a reference to our content. If it goes away,
   // we'll be told to drop our reference
-  SetIsDOMBinding();
 }
 
 /**
  * Clear map pointer for attributes.
  */
 PLDHashOperator
 RemoveMapRef(nsAttrHashKey::KeyType aKey, nsRefPtr<Attr>& aData,
              void* aUserArg)
--- a/content/base/src/nsDOMCaretPosition.cpp
+++ b/content/base/src/nsDOMCaretPosition.cpp
@@ -8,17 +8,16 @@
 #include "mozilla/dom/DOMRect.h"
 #include "nsRange.h"
 
 using namespace mozilla::dom;
 
 nsDOMCaretPosition::nsDOMCaretPosition(nsINode* aNode, uint32_t aOffset)
   : mOffset(aOffset), mOffsetNode(aNode), mAnonymousContentNode(nullptr)
 {
-  SetIsDOMBinding();
 }
 
 nsDOMCaretPosition::~nsDOMCaretPosition()
 {
 }
 
 nsINode* nsDOMCaretPosition::GetOffsetNode() const
 {
--- a/content/base/src/nsDOMFileReader.cpp
+++ b/content/base/src/nsDOMFileReader.cpp
@@ -82,17 +82,16 @@ nsDOMFileReader::RootResultArrayBuffer()
 //nsDOMFileReader constructors/initializers
 
 nsDOMFileReader::nsDOMFileReader()
   : mFileData(nullptr),
     mDataLen(0), mDataFormat(FILE_AS_BINARY),
     mResultArrayBuffer(nullptr)
 {
   SetDOMStringToNull(mResult);
-  SetIsDOMBinding();
 }
 
 nsDOMFileReader::~nsDOMFileReader()
 {
   FreeFileData();
   mResultArrayBuffer = nullptr;
   mozilla::DropJSObjects(this);
 }
--- a/content/base/src/nsDOMMutationObserver.h
+++ b/content/base/src/nsDOMMutationObserver.h
@@ -32,17 +32,16 @@ class nsDOMMutationRecord : public nsISu
                             public nsWrapperCache
 {
   virtual ~nsDOMMutationRecord() {}
 
 public:
   nsDOMMutationRecord(nsIAtom* aType, nsISupports* aOwner)
   : mType(aType), mAttrNamespace(NullString()), mPrevValue(NullString()), mOwner(aOwner)
   {
-    SetIsDOMBinding();
   }
 
   nsISupports* GetParentObject() const
   {
     return mOwner;
   }
 
   virtual JSObject* WrapObject(JSContext* aCx) MOZ_OVERRIDE
@@ -342,17 +341,16 @@ class nsDOMMutationObserver : public nsI
                               public nsWrapperCache
 {
 public:
   nsDOMMutationObserver(already_AddRefed<nsPIDOMWindow>&& aOwner,
                         mozilla::dom::MutationCallback& aCb)
   : mOwner(aOwner), mLastPendingMutation(nullptr), mPendingMutationCount(0),
     mCallback(&aCb), mWaitingForRun(false), mId(++sCount)
   {
-    SetIsDOMBinding();
   }
   NS_DECL_CYCLE_COLLECTING_ISUPPORTS
   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(nsDOMMutationObserver)
   NS_DECLARE_STATIC_IID_ACCESSOR(NS_DOM_MUTATION_OBSERVER_IID)
 
   static already_AddRefed<nsDOMMutationObserver>
   Constructor(const mozilla::dom::GlobalObject& aGlobal,
               mozilla::dom::MutationCallback& aCb,
--- a/content/base/src/nsDOMSerializer.cpp
+++ b/content/base/src/nsDOMSerializer.cpp
@@ -13,17 +13,16 @@
 #include "nsContentUtils.h"
 #include "nsError.h"
 #include "nsINode.h"
 
 using namespace mozilla;
 
 nsDOMSerializer::nsDOMSerializer()
 {
-  SetIsDOMBinding();
 }
 
 nsDOMSerializer::~nsDOMSerializer()
 {
 }
 
 // QueryInterface implementation for nsDOMSerializer
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsDOMSerializer)
--- a/content/base/src/nsDOMSerializer.h
+++ b/content/base/src/nsDOMSerializer.h
@@ -54,17 +54,16 @@ public:
   }
 
 private:
   virtual ~nsDOMSerializer();
 
   explicit nsDOMSerializer(nsISupports* aOwner) : mOwner(aOwner)
   {
     MOZ_ASSERT(aOwner);
-    SetIsDOMBinding();
   }
 
   nsCOMPtr<nsISupports> mOwner;
 };
 
 
 #endif
 
--- a/content/base/src/nsDOMTokenList.cpp
+++ b/content/base/src/nsDOMTokenList.cpp
@@ -19,17 +19,16 @@ using namespace mozilla;
 using namespace mozilla::dom;
 
 nsDOMTokenList::nsDOMTokenList(Element* aElement, nsIAtom* aAttrAtom)
   : mElement(aElement),
     mAttrAtom(aAttrAtom)
 {
   // We don't add a reference to our element. If it goes away,
   // we'll be told to drop our reference
-  SetIsDOMBinding();
 }
 
 nsDOMTokenList::~nsDOMTokenList() { }
 
 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(nsDOMTokenList, mElement)
 
 NS_INTERFACE_MAP_BEGIN(nsDOMTokenList)
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
--- a/content/base/src/nsFormData.cpp
+++ b/content/base/src/nsFormData.cpp
@@ -11,17 +11,16 @@
 
 using namespace mozilla;
 using namespace mozilla::dom;
 
 nsFormData::nsFormData(nsISupports* aOwner)
   : nsFormSubmission(NS_LITERAL_CSTRING("UTF-8"), nullptr)
   , mOwner(aOwner)
 {
-  SetIsDOMBinding();
 }
 
 // -------------------------------------------------------------------------
 // nsISupports
 
 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(nsFormData, mOwner)
 NS_IMPL_CYCLE_COLLECTING_ADDREF(nsFormData)
 NS_IMPL_CYCLE_COLLECTING_RELEASE(nsFormData)
--- a/content/base/src/nsRange.h
+++ b/content/base/src/nsRange.h
@@ -52,17 +52,16 @@ public:
     , mStartOffsetWasIncremented(false)
     , mEndOffsetWasIncremented(false)
     , mEnableGravitationOnElementRemoval(true)
 #ifdef DEBUG
     , mAssertNextInsertOrAppendIndex(-1)
     , mAssertNextInsertOrAppendNode(nullptr)
 #endif
   {
-    SetIsDOMBinding();
     MOZ_ASSERT(aNode, "range isn't in a document!");
     mOwner = aNode->OwnerDoc();
   }
 
   static nsresult CreateRange(nsIDOMNode* aStartParent, int32_t aStartOffset,
                               nsIDOMNode* aEndParent, int32_t aEndOffset,
                               nsRange** aRange);
   static nsresult CreateRange(nsIDOMNode* aStartParent, int32_t aStartOffset,
--- a/content/base/src/nsXMLHttpRequest.cpp
+++ b/content/base/src/nsXMLHttpRequest.cpp
@@ -302,17 +302,16 @@ nsXMLHttpRequest::nsXMLHttpRequest()
     mIsAnon(false),
     mFirstStartRequestSeen(false),
     mInLoadProgressEvent(false),
     mResultJSON(JSVAL_VOID),
     mResultArrayBuffer(nullptr),
     mIsMappedArrayBuffer(false),
     mXPCOMifier(nullptr)
 {
-  SetIsDOMBinding();
 #ifdef DEBUG
   StaticAssertions();
 #endif
 }
 
 nsXMLHttpRequest::~nsXMLHttpRequest()
 {
   mState |= XML_HTTP_REQUEST_DELETED;
--- a/content/html/content/src/HTMLCanvasElement.cpp
+++ b/content/html/content/src/HTMLCanvasElement.cpp
@@ -59,17 +59,16 @@ NS_IMPL_CYCLE_COLLECTION_ROOT_NATIVE(HTM
 NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(HTMLCanvasPrintState, Release)
 
 HTMLCanvasPrintState::HTMLCanvasPrintState(HTMLCanvasElement* aCanvas,
                                            nsICanvasRenderingContextInternal* aContext,
                                            nsITimerCallback* aCallback)
   : mIsDone(false), mPendingNotify(false), mCanvas(aCanvas),
     mContext(aContext), mCallback(aCallback)
 {
-  SetIsDOMBinding();
 }
 
 HTMLCanvasPrintState::~HTMLCanvasPrintState()
 {
 }
 
 /* virtual */ JSObject*
 HTMLCanvasPrintState::WrapObject(JSContext* aCx)
--- a/content/html/content/src/HTMLContentElement.cpp
+++ b/content/html/content/src/HTMLContentElement.cpp
@@ -19,17 +19,16 @@
 
 NS_IMPL_NS_NEW_HTML_ELEMENT(Content)
 
 using namespace mozilla::dom;
 
 HTMLContentElement::HTMLContentElement(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo)
   : nsGenericHTMLElement(aNodeInfo), mValidSelector(true), mIsInsertionPoint(false)
 {
-  SetIsDOMBinding();
 }
 
 HTMLContentElement::~HTMLContentElement()
 {
 }
 
 NS_IMPL_CYCLE_COLLECTION_INHERITED(HTMLContentElement,
                                    nsGenericHTMLElement,
@@ -307,17 +306,16 @@ NS_INTERFACE_MAP_END
 
 NS_IMPL_CYCLE_COLLECTING_ADDREF(DistributedContentList)
 NS_IMPL_CYCLE_COLLECTING_RELEASE(DistributedContentList)
 
 DistributedContentList::DistributedContentList(HTMLContentElement* aHostElement)
   : mParent(aHostElement)
 {
   MOZ_COUNT_CTOR(DistributedContentList);
-  SetIsDOMBinding();
 
   if (aHostElement->IsInsertionPoint()) {
     if (aHostElement->MatchedNodes().IsEmpty()) {
       // Fallback content.
       nsINode* contentNode = aHostElement;
       for (nsIContent* content = contentNode->GetFirstChild();
            content;
            content = content->GetNextSibling()) {
--- a/content/html/content/src/HTMLFormControlsCollection.cpp
+++ b/content/html/content/src/HTMLFormControlsCollection.cpp
@@ -71,17 +71,16 @@ HTMLFormControlsCollection::ShouldBeInEl
 
 HTMLFormControlsCollection::HTMLFormControlsCollection(HTMLFormElement* aForm)
   : mForm(aForm)
   // Initialize the elements list to have an initial capacity
   // of 8 to reduce allocations on small forms.
   , mElements(8)
   , mNameLookupTable(HTMLFormElement::FORM_CONTROL_LIST_HASHTABLE_LENGTH)
 {
-  SetIsDOMBinding();
 }
 
 HTMLFormControlsCollection::~HTMLFormControlsCollection()
 {
   mForm = nullptr;
   Clear();
 }
 
--- a/content/html/content/src/HTMLOptionsCollection.cpp
+++ b/content/html/content/src/HTMLOptionsCollection.cpp
@@ -30,18 +30,16 @@
 #include "nsStyleConsts.h"
 #include "jsfriendapi.h"
 
 namespace mozilla {
 namespace dom {
 
 HTMLOptionsCollection::HTMLOptionsCollection(HTMLSelectElement* aSelect)
 {
-  SetIsDOMBinding();
-
   // Do not maintain a reference counted reference. When
   // the select goes away, it will let us know.
   mSelect = aSelect;
 }
 
 HTMLOptionsCollection::~HTMLOptionsCollection()
 {
   DropReference();
--- a/content/html/content/src/HTMLPropertiesCollection.cpp
+++ b/content/html/content/src/HTMLPropertiesCollection.cpp
@@ -41,17 +41,16 @@ NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN(HTM
   NS_IMPL_CYCLE_COLLECTION_TRACE_PRESERVED_WRAPPER
 NS_IMPL_CYCLE_COLLECTION_TRACE_END
 
 HTMLPropertiesCollection::HTMLPropertiesCollection(nsGenericHTMLElement* aRoot)
   : mRoot(aRoot)
   , mDoc(aRoot->GetUncomposedDoc())
   , mIsDirty(true)
 {
-  SetIsDOMBinding();
   mNames = new PropertyStringList(this);
   if (mDoc) {
     mDoc->AddMutationObserver(this);
   }
 }
 
 HTMLPropertiesCollection::~HTMLPropertiesCollection()
 {
@@ -306,17 +305,16 @@ HTMLPropertiesCollection::GetSupportedNa
 PropertyNodeList::PropertyNodeList(HTMLPropertiesCollection* aCollection,
                                    nsIContent* aParent, const nsAString& aName)
   : mName(aName),
     mDoc(aParent->GetUncomposedDoc()),
     mCollection(aCollection),
     mParent(aParent),
     mIsDirty(true)
 {
-  SetIsDOMBinding();
   if (mDoc) {
     mDoc->AddMutationObserver(this);
   }
 }
 
 PropertyNodeList::~PropertyNodeList()
 {
   if (mDoc) {
--- a/content/html/content/src/HTMLShadowElement.cpp
+++ b/content/html/content/src/HTMLShadowElement.cpp
@@ -12,17 +12,16 @@
 
 NS_IMPL_NS_NEW_HTML_ELEMENT(Shadow)
 
 using namespace mozilla::dom;
 
 HTMLShadowElement::HTMLShadowElement(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo)
   : nsGenericHTMLElement(aNodeInfo), mIsInsertionPoint(false)
 {
-  SetIsDOMBinding();
 }
 
 HTMLShadowElement::~HTMLShadowElement()
 {
   if (mProjectedShadow) {
     mProjectedShadow->RemoveMutationObserver(this);
   }
 }
--- a/content/html/content/src/HTMLTableElement.cpp
+++ b/content/html/content/src/HTMLTableElement.cpp
@@ -68,17 +68,16 @@ protected:
 TableRowsCollection::TableRowsCollection(HTMLTableElement *aParent)
   : mParent(aParent)
   , mOrphanRows(new nsContentList(mParent,
                                   kNameSpaceID_XHTML,
                                   nsGkAtoms::tr,
                                   nsGkAtoms::tr,
                                   false))
 {
-  SetIsDOMBinding();
 }
 
 TableRowsCollection::~TableRowsCollection()
 {
   // we do NOT have a ref-counted reference to mParent, so do NOT
   // release it!  this is to avoid circular references.  The
   // instantiator who provided mParent is responsible for managing our
   // reference for us.
--- a/content/html/content/src/MediaError.cpp
+++ b/content/html/content/src/MediaError.cpp
@@ -20,17 +20,16 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
   NS_INTERFACE_MAP_ENTRY(nsIDOMMediaError)
   NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIDOMMediaError)
 NS_INTERFACE_MAP_END
 
 MediaError::MediaError(HTMLMediaElement* aParent, uint16_t aCode)
   : mParent(aParent)
   , mCode(aCode)
 {
-  SetIsDOMBinding();
 }
 
 NS_IMETHODIMP MediaError::GetCode(uint16_t* aCode)
 {
   if (aCode)
     *aCode = Code();
 
   return NS_OK;
--- a/content/html/content/src/UndoManager.cpp
+++ b/content/html/content/src/UndoManager.cpp
@@ -836,17 +836,16 @@ NS_IMPL_CYCLE_COLLECTING_RELEASE(UndoMan
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(UndoManager)
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 UndoManager::UndoManager(nsIContent* aNode)
   : mHostNode(aNode), mInTransaction(false), mIsDisconnected(false)
 {
-  SetIsDOMBinding();
   mTxnManager = new nsTransactionManager();
 }
 
 UndoManager::~UndoManager() {}
 
 void
 UndoManager::Transact(JSContext* aCx, DOMTransaction& aTransaction,
                       bool aMerge, ErrorResult& aRv)
--- a/content/html/content/src/ValidityState.cpp
+++ b/content/html/content/src/ValidityState.cpp
@@ -19,17 +19,16 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsIDOMValidityState)
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 ValidityState::ValidityState(nsIConstraintValidation* aConstraintValidation)
   : mConstraintValidation(aConstraintValidation)
 {
-  SetIsDOMBinding();
 }
 
 NS_IMETHODIMP
 ValidityState::GetValueMissing(bool* aValueMissing)
 {
   *aValueMissing = ValueMissing();
   return NS_OK;
 }
--- a/content/html/content/src/nsDOMStringMap.cpp
+++ b/content/html/content/src/nsDOMStringMap.cpp
@@ -50,18 +50,16 @@ NS_INTERFACE_MAP_END
 
 NS_IMPL_CYCLE_COLLECTING_ADDREF(nsDOMStringMap)
 NS_IMPL_CYCLE_COLLECTING_RELEASE(nsDOMStringMap)
 
 nsDOMStringMap::nsDOMStringMap(nsGenericHTMLElement* aElement)
   : mElement(aElement),
     mRemovingProp(false)
 {
-  SetIsDOMBinding();
-
   mElement->AddMutationObserver(this);
 }
 
 nsDOMStringMap::~nsDOMStringMap()
 {
   // Check if element still exists, may have been unlinked by cycle collector.
   if (mElement) {
     // Call back to element to null out weak reference to this object.
--- a/content/html/document/src/HTMLAllCollection.cpp
+++ b/content/html/document/src/HTMLAllCollection.cpp
@@ -13,17 +13,16 @@
 
 namespace mozilla {
 namespace dom {
 
 HTMLAllCollection::HTMLAllCollection(nsHTMLDocument* aDocument)
   : mDocument(aDocument)
 {
   MOZ_ASSERT(mDocument);
-  SetIsDOMBinding();
 }
 
 HTMLAllCollection::~HTMLAllCollection()
 {
 }
 
 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(HTMLAllCollection,
                                       mDocument,
--- a/content/media/DOMMediaStream.cpp
+++ b/content/media/DOMMediaStream.cpp
@@ -122,17 +122,16 @@ private:
   DOMMediaStream* mStream;
 };
 
 DOMMediaStream::DOMMediaStream()
   : mLogicalStreamStartTime(0),
     mStream(nullptr), mHintContents(0), mTrackTypesAvailable(0),
     mNotifiedOfMediaStreamGraphShutdown(false)
 {
-  SetIsDOMBinding();
 }
 
 DOMMediaStream::~DOMMediaStream()
 {
   Destroy();
 }
 
 void
--- a/content/media/MediaStreamTrack.cpp
+++ b/content/media/MediaStreamTrack.cpp
@@ -10,18 +10,16 @@
 #include "nsServiceManagerUtils.h"
 
 namespace mozilla {
 namespace dom {
 
 MediaStreamTrack::MediaStreamTrack(DOMMediaStream* aStream, TrackID aTrackID)
   : mStream(aStream), mTrackID(aTrackID), mEnded(false), mEnabled(true)
 {
-  SetIsDOMBinding();
-
   memset(&mID, 0, sizeof(mID));
 
   nsresult rv;
   nsCOMPtr<nsIUUIDGenerator> uuidgen =
     do_GetService("@mozilla.org/uuid-generator;1", &rv);
   if (uuidgen) {
     uuidgen->GenerateUUIDInPlace(&mID);
   }
--- a/content/media/MediaTrack.cpp
+++ b/content/media/MediaTrack.cpp
@@ -38,13 +38,12 @@ MediaTrack::SetTrackList(MediaTrackList*
 {
   mList = aList;
 }
 
 void
 MediaTrack::Init(nsPIDOMWindow* aOwnerWindow)
 {
   BindToOwner(aOwnerWindow);
-  SetIsDOMBinding();
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/content/media/TextTrackCueList.cpp
+++ b/content/media/TextTrackCueList.cpp
@@ -30,17 +30,16 @@ NS_IMPL_CYCLE_COLLECTING_ADDREF(TextTrac
 NS_IMPL_CYCLE_COLLECTING_RELEASE(TextTrackCueList)
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(TextTrackCueList)
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 TextTrackCueList::TextTrackCueList(nsISupports* aParent) : mParent(aParent)
 {
-  SetIsDOMBinding();
 }
 
 TextTrackCueList::~TextTrackCueList()
 {}
 
 JSObject*
 TextTrackCueList::WrapObject(JSContext* aCx)
 {
--- a/content/media/TextTrackRegion.cpp
+++ b/content/media/TextTrackRegion.cpp
@@ -41,17 +41,16 @@ TextTrackRegion::TextTrackRegion(nsISupp
   : mParent(aGlobal)
   , mWidth(100)
   , mLines(3)
   , mRegionAnchorX(0)
   , mRegionAnchorY(100)
   , mViewportAnchorX(0)
   , mViewportAnchorY(100)
 {
-  SetIsDOMBinding();
 }
 
 void
 TextTrackRegion::CopyValues(TextTrackRegion& aRegion)
 {
   mWidth = aRegion.Width();
   mLines = aRegion.Lines();
   mRegionAnchorX = aRegion.RegionAnchorX();
--- a/content/media/VideoPlaybackQuality.cpp
+++ b/content/media/VideoPlaybackQuality.cpp
@@ -20,17 +20,16 @@ VideoPlaybackQuality::VideoPlaybackQuali
                                            uint64_t aDroppedFrames,
                                            uint64_t aCorruptedFrames)
   : mElement(aElement)
   , mCreationTime(aCreationTime)
   , mTotalFrames(aTotalFrames)
   , mDroppedFrames(aDroppedFrames)
   , mCorruptedFrames(aCorruptedFrames)
 {
-  SetIsDOMBinding();
 }
 
 HTMLMediaElement*
 VideoPlaybackQuality::GetParentObject() const
 {
   return mElement;
 }
 
--- a/content/media/eme/MediaKeyError.cpp
+++ b/content/media/eme/MediaKeyError.cpp
@@ -10,17 +10,16 @@
 
 namespace mozilla {
 namespace dom {
 
 MediaKeyError::MediaKeyError(EventTarget* aOwner, uint32_t aSystemCode)
   : Event(aOwner, nullptr, nullptr)
   , mSystemCode(aSystemCode)
 {
-  SetIsDOMBinding();
   InitEvent(NS_LITERAL_STRING("error"), false, false);
 }
 
 MediaKeyError::~MediaKeyError()
 {
 }
 
 uint32_t
--- a/content/media/eme/MediaKeys.cpp
+++ b/content/media/eme/MediaKeys.cpp
@@ -36,17 +36,16 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 MediaKeys::MediaKeys(nsPIDOMWindow* aParent, const nsAString& aKeySystem)
   : mParent(aParent)
   , mKeySystem(aKeySystem)
   , mCreatePromiseId(0)
 {
-  SetIsDOMBinding();
 }
 
 static PLDHashOperator
 RejectPromises(const uint32_t& aKey,
                nsRefPtr<dom::Promise>& aPromise,
                void* aClosure)
 {
   aPromise->MaybeReject(NS_ERROR_DOM_INVALID_STATE_ERR);
--- a/content/media/webaudio/AudioBuffer.cpp
+++ b/content/media/webaudio/AudioBuffer.cpp
@@ -43,17 +43,16 @@ NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(A
 
 AudioBuffer::AudioBuffer(AudioContext* aContext, uint32_t aNumberOfChannels,
                          uint32_t aLength, float aSampleRate)
   : mContext(aContext),
     mLength(aLength),
     mSampleRate(aSampleRate)
 {
   mJSChannels.SetCapacity(aNumberOfChannels);
-  SetIsDOMBinding();
   mozilla::HoldJSObjects(this);
 }
 
 AudioBuffer::~AudioBuffer()
 {
   ClearJSChannels();
 }
 
--- a/content/media/webaudio/AudioListener.cpp
+++ b/content/media/webaudio/AudioListener.cpp
@@ -21,17 +21,16 @@ AudioListener::AudioListener(AudioContex
   , mPosition()
   , mFrontVector(0., 0., -1.)
   , mRightVector(1., 0., 0.)
   , mVelocity()
   , mDopplerFactor(1.)
   , mSpeedOfSound(343.3) // meters/second
 {
   MOZ_ASSERT(aContext);
-  SetIsDOMBinding();
 }
 
 JSObject*
 AudioListener::WrapObject(JSContext* aCx)
 {
   return AudioListenerBinding::Wrap(aCx, this);
 }
 
--- a/content/media/webaudio/AudioNode.cpp
+++ b/content/media/webaudio/AudioNode.cpp
@@ -67,17 +67,16 @@ AudioNode::AudioNode(AudioContext* aCont
   , mId(gId++)
   , mPassThrough(false)
 #ifdef DEBUG
   , mDemiseNotified(false)
 #endif
 {
   MOZ_ASSERT(aContext);
   DOMEventTargetHelper::BindToOwner(aContext->GetParentObject());
-  SetIsDOMBinding();
   aContext->UpdateNodeCount(1);
 }
 
 AudioNode::~AudioNode()
 {
   MOZ_ASSERT(mInputNodes.IsEmpty());
   MOZ_ASSERT(mOutputNodes.IsEmpty());
   MOZ_ASSERT(mOutputParams.IsEmpty());
--- a/content/media/webaudio/AudioParam.cpp
+++ b/content/media/webaudio/AudioParam.cpp
@@ -46,17 +46,16 @@ NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(A
 AudioParam::AudioParam(AudioNode* aNode,
                        AudioParam::CallbackType aCallback,
                        float aDefaultValue)
   : AudioParamTimeline(aDefaultValue)
   , mNode(aNode)
   , mCallback(aCallback)
   , mDefaultValue(aDefaultValue)
 {
-  SetIsDOMBinding();
 }
 
 AudioParam::~AudioParam()
 {
   MOZ_ASSERT(mInputNodes.IsEmpty());
 }
 
 JSObject*
--- a/content/media/webaudio/AudioProcessingEvent.cpp
+++ b/content/media/webaudio/AudioProcessingEvent.cpp
@@ -23,17 +23,16 @@ NS_IMPL_RELEASE_INHERITED(AudioProcessin
 
 AudioProcessingEvent::AudioProcessingEvent(ScriptProcessorNode* aOwner,
                                            nsPresContext* aPresContext,
                                            WidgetEvent* aEvent)
   : Event(aOwner, aPresContext, aEvent)
   , mPlaybackTime(0.0)
   , mNode(aOwner)
 {
-  SetIsDOMBinding();
 }
 
 AudioProcessingEvent::~AudioProcessingEvent()
 {
 }
 
 JSObject*
 AudioProcessingEvent::WrapObject(JSContext* aCx)
--- a/content/media/webaudio/OfflineAudioCompletionEvent.cpp
+++ b/content/media/webaudio/OfflineAudioCompletionEvent.cpp
@@ -20,17 +20,16 @@ NS_INTERFACE_MAP_END_INHERITING(Event)
 NS_IMPL_ADDREF_INHERITED(OfflineAudioCompletionEvent, Event)
 NS_IMPL_RELEASE_INHERITED(OfflineAudioCompletionEvent, Event)
 
 OfflineAudioCompletionEvent::OfflineAudioCompletionEvent(AudioContext* aOwner,
                                                          nsPresContext* aPresContext,
                                                          WidgetEvent* aEvent)
   : Event(aOwner, aPresContext, aEvent)
 {
-  SetIsDOMBinding();
 }
 
 OfflineAudioCompletionEvent::~OfflineAudioCompletionEvent()
 {
 }
 
 JSObject*
 OfflineAudioCompletionEvent::WrapObject(JSContext* aCx)
--- a/content/media/webaudio/PeriodicWave.cpp
+++ b/content/media/webaudio/PeriodicWave.cpp
@@ -19,17 +19,16 @@ NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(P
 PeriodicWave::PeriodicWave(AudioContext* aContext,
                            const float* aRealData,
                            const float* aImagData,
                            const uint32_t aLength,
                            ErrorResult& aRv)
   : mContext(aContext)
 {
   MOZ_ASSERT(aContext);
-  SetIsDOMBinding();
 
   // Caller should have checked this and thrown.
   MOZ_ASSERT(aLength > 0);
   MOZ_ASSERT(aLength <= 4096);
   mLength = aLength;
 
   // Copy coefficient data. The two arrays share an allocation.
   mCoefficients = new ThreadSharedFloatArrayBufferList(2);
--- a/content/media/webspeech/recognition/SpeechGrammar.cpp
+++ b/content/media/webspeech/recognition/SpeechGrammar.cpp
@@ -18,17 +18,16 @@ NS_IMPL_CYCLE_COLLECTING_RELEASE(SpeechG
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(SpeechGrammar)
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 SpeechGrammar::SpeechGrammar(nsISupports* aParent)
   : mParent(aParent)
 {
-  SetIsDOMBinding();
 }
 
 SpeechGrammar::~SpeechGrammar()
 {
 }
 
 already_AddRefed<SpeechGrammar>
 SpeechGrammar::Constructor(const GlobalObject& aGlobal,
--- a/content/media/webspeech/recognition/SpeechGrammarList.cpp
+++ b/content/media/webspeech/recognition/SpeechGrammarList.cpp
@@ -22,17 +22,16 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 SpeechGrammarList::SpeechGrammarList(nsISupports* aParent, nsISpeechRecognitionService* aRecognitionService)
   : mParent(aParent)
 {
   this->mRecognitionService = aRecognitionService;
-  SetIsDOMBinding();
 }
 
 SpeechGrammarList::~SpeechGrammarList()
 {
 }
 
 already_AddRefed<SpeechGrammarList>
 SpeechGrammarList::Constructor(const GlobalObject& aGlobal,
--- a/content/media/webspeech/recognition/SpeechRecognitionAlternative.cpp
+++ b/content/media/webspeech/recognition/SpeechRecognitionAlternative.cpp
@@ -21,17 +21,16 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 SpeechRecognitionAlternative::SpeechRecognitionAlternative(SpeechRecognition* aParent)
   : mTranscript(NS_LITERAL_STRING(""))
   , mConfidence(0)
   , mParent(aParent)
 {
-  SetIsDOMBinding();
 }
 
 SpeechRecognitionAlternative::~SpeechRecognitionAlternative()
 {
 }
 
 JSObject*
 SpeechRecognitionAlternative::WrapObject(JSContext* aCx)
--- a/content/media/webspeech/recognition/SpeechRecognitionResult.cpp
+++ b/content/media/webspeech/recognition/SpeechRecognitionResult.cpp
@@ -18,17 +18,16 @@ NS_IMPL_CYCLE_COLLECTING_RELEASE(SpeechR
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(SpeechRecognitionResult)
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 SpeechRecognitionResult::SpeechRecognitionResult(SpeechRecognition* aParent)
   : mParent(aParent)
 {
-  SetIsDOMBinding();
 }
 
 SpeechRecognitionResult::~SpeechRecognitionResult()
 {
 }
 
 JSObject*
 SpeechRecognitionResult::WrapObject(JSContext* aCx)
--- a/content/media/webspeech/recognition/SpeechRecognitionResultList.cpp
+++ b/content/media/webspeech/recognition/SpeechRecognitionResultList.cpp
@@ -19,17 +19,16 @@ NS_IMPL_CYCLE_COLLECTING_RELEASE(SpeechR
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(SpeechRecognitionResultList)
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 SpeechRecognitionResultList::SpeechRecognitionResultList(SpeechRecognition* aParent)
   : mParent(aParent)
 {
-  SetIsDOMBinding();
 }
 
 SpeechRecognitionResultList::~SpeechRecognitionResultList()
 {
 }
 
 nsISupports*
 SpeechRecognitionResultList::GetParentObject() const
--- a/content/media/webspeech/synth/SpeechSynthesis.cpp
+++ b/content/media/webspeech/synth/SpeechSynthesis.cpp
@@ -72,17 +72,16 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
 NS_INTERFACE_MAP_END
 
 NS_IMPL_CYCLE_COLLECTING_ADDREF(SpeechSynthesis)
 NS_IMPL_CYCLE_COLLECTING_RELEASE(SpeechSynthesis)
 
 SpeechSynthesis::SpeechSynthesis(nsPIDOMWindow* aParent)
   : mParent(aParent)
 {
-  SetIsDOMBinding();
 }
 
 SpeechSynthesis::~SpeechSynthesis()
 {
 }
 
 JSObject*
 SpeechSynthesis::WrapObject(JSContext* aCx)
--- a/content/media/webspeech/synth/SpeechSynthesisUtterance.cpp
+++ b/content/media/webspeech/synth/SpeechSynthesisUtterance.cpp
@@ -30,17 +30,16 @@ SpeechSynthesisUtterance::SpeechSynthesi
   : DOMEventTargetHelper(aOwnerWindow)
   , mText(text)
   , mVolume(1)
   , mRate(1)
   , mPitch(1)
   , mState(STATE_NONE)
   , mPaused(false)
 {
-  SetIsDOMBinding();
 }
 
 SpeechSynthesisUtterance::~SpeechSynthesisUtterance() {}
 
 JSObject*
 SpeechSynthesisUtterance::WrapObject(JSContext* aCx)
 {
   return SpeechSynthesisUtteranceBinding::Wrap(aCx, this);
--- a/content/media/webspeech/synth/SpeechSynthesisVoice.cpp
+++ b/content/media/webspeech/synth/SpeechSynthesisVoice.cpp
@@ -19,17 +19,16 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 SpeechSynthesisVoice::SpeechSynthesisVoice(nsISupports* aParent,
                                            const nsAString& aUri)
   : mParent(aParent)
   , mUri(aUri)
 {
-  SetIsDOMBinding();
 }
 
 SpeechSynthesisVoice::~SpeechSynthesisVoice()
 {
 }
 
 JSObject*
 SpeechSynthesisVoice::WrapObject(JSContext* aCx)
--- a/content/svg/content/src/DOMSVGAnimatedLengthList.h
+++ b/content/svg/content/src/DOMSVGAnimatedLengthList.h
@@ -172,17 +172,16 @@ private:
    */
   DOMSVGAnimatedLengthList(nsSVGElement *aElement, uint8_t aAttrEnum, uint8_t aAxis)
     : mBaseVal(nullptr)
     , mAnimVal(nullptr)
     , mElement(aElement)
     , mAttrEnum(aAttrEnum)
     , mAxis(aAxis)
   {
-    SetIsDOMBinding();
   }
 
   ~DOMSVGAnimatedLengthList();
 
   /// Get a reference to this DOM wrapper object's internal counterpart.
   SVGAnimatedLengthList& InternalAList();
   const SVGAnimatedLengthList& InternalAList() const;
 
--- a/content/svg/content/src/DOMSVGAnimatedNumberList.h
+++ b/content/svg/content/src/DOMSVGAnimatedNumberList.h
@@ -102,17 +102,16 @@ private:
    * type.
    */
   DOMSVGAnimatedNumberList(nsSVGElement *aElement, uint8_t aAttrEnum)
     : mBaseVal(nullptr)
     , mAnimVal(nullptr)
     , mElement(aElement)
     , mAttrEnum(aAttrEnum)
   {
-    SetIsDOMBinding();
   }
 
   ~DOMSVGAnimatedNumberList();
 
   /// Get a reference to this DOM wrapper object's internal counterpart.
   SVGAnimatedNumberList& InternalAList();
   const SVGAnimatedNumberList& InternalAList() const;
 
--- a/content/svg/content/src/DOMSVGLength.cpp
+++ b/content/svg/content/src/DOMSVGLength.cpp
@@ -107,44 +107,40 @@ DOMSVGLength::DOMSVGLength(DOMSVGLengthL
   , mVal(nullptr)
 {
   // These shifts are in sync with the members in the header.
   NS_ABORT_IF_FALSE(aList &&
                     aAttrEnum < (1 << 4) &&
                     aListIndex <= MaxListIndex(), "bad arg");
 
   NS_ABORT_IF_FALSE(IndexIsValid(), "Bad index for DOMSVGNumber!");
-
-  SetIsDOMBinding();
 }
 
 DOMSVGLength::DOMSVGLength()
   : mList(nullptr)
   , mListIndex(0)
   , mAttrEnum(0)
   , mIsAnimValItem(false)
   , mUnit(nsIDOMSVGLength::SVG_LENGTHTYPE_NUMBER)
   , mValue(0.0f)
   , mVal(nullptr)
 {
-  SetIsDOMBinding();
 }
 
 DOMSVGLength::DOMSVGLength(nsSVGLength2* aVal, nsSVGElement* aSVGElement,
                            bool aAnimVal)
   : mList(nullptr)
   , mListIndex(0)
   , mAttrEnum(0)
   , mIsAnimValItem(aAnimVal)
   , mUnit(nsIDOMSVGLength::SVG_LENGTHTYPE_NUMBER)
   , mValue(0.0f)
   , mVal(aVal)
   , mSVGElement(aSVGElement)
 {
-  SetIsDOMBinding();
 }
 
 DOMSVGLength::~DOMSVGLength()
 {
   // Our mList's weak ref to us must be nulled out when we die. If GC has
   // unlinked us using the cycle collector code, then that has already
   // happened, and mList is null.
   if (mList) {
--- a/content/svg/content/src/DOMSVGLengthList.h
+++ b/content/svg/content/src/DOMSVGLengthList.h
@@ -56,18 +56,16 @@ class DOMSVGLengthList MOZ_FINAL : publi
 public:
   NS_DECL_CYCLE_COLLECTING_ISUPPORTS
   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(DOMSVGLengthList)
 
   DOMSVGLengthList(DOMSVGAnimatedLengthList *aAList,
                    const SVGLengthList &aInternalList)
     : mAList(aAList)
   {
-    SetIsDOMBinding();
-
     // aInternalList must be passed in explicitly because we can't use
     // InternalList() here. (Because it depends on IsAnimValList, which depends
     // on this object having been assigned to aAList's mBaseVal or mAnimVal,
     // which hasn't happend yet.)
     
     InternalListLengthWillChange(aInternalList.Length()); // Sync mItems
   }
 
--- a/content/svg/content/src/DOMSVGNumber.cpp
+++ b/content/svg/content/src/DOMSVGNumber.cpp
@@ -93,29 +93,26 @@ DOMSVGNumber::DOMSVGNumber(DOMSVGNumberL
   , mValue(0.0f)
 {
   // These shifts are in sync with the members in the header.
   NS_ABORT_IF_FALSE(aList &&
                     aAttrEnum < (1 << 4) &&
                     aListIndex <= MaxListIndex(), "bad arg");
 
   NS_ABORT_IF_FALSE(IndexIsValid(), "Bad index for DOMSVGNumber!");
-
-  SetIsDOMBinding();
 }
 
 DOMSVGNumber::DOMSVGNumber(nsISupports* aParent)
   : mList(nullptr)
   , mParent(aParent)
   , mListIndex(0)
   , mAttrEnum(0)
   , mIsAnimValItem(false)
   , mValue(0.0f)
 {
-  SetIsDOMBinding();
 }
 
 /* static */ already_AddRefed<DOMSVGNumber>
 DOMSVGNumber::Constructor(const dom::GlobalObject& aGlobal, ErrorResult& aRv)
 {
   nsCOMPtr<nsPIDOMWindow> window = do_QueryInterface(aGlobal.GetAsSupports());
   if (!window) {
     aRv.Throw(NS_ERROR_UNEXPECTED);
--- a/content/svg/content/src/DOMSVGNumberList.h
+++ b/content/svg/content/src/DOMSVGNumberList.h
@@ -56,18 +56,16 @@ class DOMSVGNumberList MOZ_FINAL : publi
 public:
   NS_DECL_CYCLE_COLLECTING_ISUPPORTS
   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(DOMSVGNumberList)
 
   DOMSVGNumberList(DOMSVGAnimatedNumberList *aAList,
                    const SVGNumberList &aInternalList)
     : mAList(aAList)
   {
-    SetIsDOMBinding();
-
     // aInternalList must be passed in explicitly because we can't use
     // InternalList() here. (Because it depends on IsAnimValList, which depends
     // on this object having been assigned to aAList's mBaseVal or mAnimVal,
     // which hasn't happend yet.)
 
     InternalListLengthWillChange(aInternalList.Length()); // Sync mItems
   }
 
--- a/content/svg/content/src/DOMSVGPathSeg.cpp
+++ b/content/svg/content/src/DOMSVGPathSeg.cpp
@@ -74,30 +74,28 @@ private:
 
 DOMSVGPathSeg::DOMSVGPathSeg(DOMSVGPathSegList *aList,
                              uint32_t aListIndex,
                              bool aIsAnimValItem)
   : mList(aList)
   , mListIndex(aListIndex)
   , mIsAnimValItem(aIsAnimValItem)
 {
-  SetIsDOMBinding();
   // These shifts are in sync with the members in the header.
   NS_ABORT_IF_FALSE(aList &&
                     aListIndex <= MaxListIndex(), "bad arg");
 
   NS_ABORT_IF_FALSE(IndexIsValid(), "Bad index for DOMSVGPathSeg!");
 }
 
 DOMSVGPathSeg::DOMSVGPathSeg()
   : mList(nullptr)
   , mListIndex(0)
   , mIsAnimValItem(false)
 {
-  SetIsDOMBinding();
 }
 
 void
 DOMSVGPathSeg::InsertingIntoList(DOMSVGPathSegList *aList,
                                  uint32_t aListIndex,
                                  bool aIsAnimValItem)
 {
   NS_ABORT_IF_FALSE(!HasOwner(), "Inserting item that is already in a list");
--- a/content/svg/content/src/DOMSVGPathSegList.h
+++ b/content/svg/content/src/DOMSVGPathSegList.h
@@ -165,18 +165,16 @@ private:
   /**
    * Only our static GetDOMWrapper() factory method may create objects of our
    * type.
    */
   DOMSVGPathSegList(nsSVGElement *aElement, bool aIsAnimValList)
     : mElement(aElement)
     , mIsAnimValList(aIsAnimValList)
   {
-    SetIsDOMBinding();
-
     InternalListWillChangeTo(InternalList()); // Sync mItems
   }
 
   ~DOMSVGPathSegList();
 
   nsSVGElement* Element() const {
     return mElement.get();
   }
--- a/content/svg/content/src/DOMSVGPointList.h
+++ b/content/svg/content/src/DOMSVGPointList.h
@@ -167,18 +167,16 @@ private:
   /**
    * Only our static GetDOMWrapper() factory method may create objects of our
    * type.
    */
   DOMSVGPointList(nsSVGElement *aElement, bool aIsAnimValList)
     : mElement(aElement)
     , mIsAnimValList(aIsAnimValList)
   {
-    SetIsDOMBinding();
-
     InternalListWillChangeTo(InternalList()); // Sync mItems
   }
 
   ~DOMSVGPointList();
 
   nsSVGElement* Element() const {
     return mElement.get();
   }
--- a/content/svg/content/src/DOMSVGStringList.h
+++ b/content/svg/content/src/DOMSVGStringList.h
@@ -95,17 +95,16 @@ private:
    * type.
    */
   DOMSVGStringList(nsSVGElement *aElement,
                    bool aIsConditionalProcessingAttribute, uint8_t aAttrEnum)
     : mElement(aElement)
     , mAttrEnum(aAttrEnum)
     , mIsConditionalProcessingAttribute(aIsConditionalProcessingAttribute)
   {
-    SetIsDOMBinding();
   }
 
   ~DOMSVGStringList();
 
   SVGStringList &InternalList() const;
 
   // Strong ref to our element to keep it alive.
   nsRefPtr<nsSVGElement> mElement;
--- a/content/svg/content/src/DOMSVGTransformList.h
+++ b/content/svg/content/src/DOMSVGTransformList.h
@@ -51,18 +51,16 @@ class DOMSVGTransformList MOZ_FINAL : pu
 public:
   NS_DECL_CYCLE_COLLECTING_ISUPPORTS
   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(DOMSVGTransformList)
 
   DOMSVGTransformList(dom::SVGAnimatedTransformList *aAList,
                       const SVGTransformList &aInternalList)
     : mAList(aAList)
   {
-    SetIsDOMBinding();
-
     // aInternalList must be passed in explicitly because we can't use
     // InternalList() here. (Because it depends on IsAnimValList, which depends
     // on this object having been assigned to aAList's mBaseVal or mAnimVal,
     // which hasn't happend yet.)
 
     InternalListLengthWillChange(aInternalList.Length()); // Sync mItems
   }
 
--- a/content/svg/content/src/SVGAngle.h
+++ b/content/svg/content/src/SVGAngle.h
@@ -25,17 +25,16 @@ public:
   } AngleType;
 
   NS_INLINE_DECL_CYCLE_COLLECTING_NATIVE_REFCOUNTING(SVGAngle)
   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_NATIVE_CLASS(SVGAngle)
 
   SVGAngle(nsSVGAngle* aVal, nsSVGElement *aSVGElement, AngleType aType)
     : mVal(aVal), mSVGElement(aSVGElement), mType(aType)
   {
-    SetIsDOMBinding();
   }
 
   // WebIDL
   nsSVGElement* GetParentObject() { return mSVGElement; }
   virtual JSObject* WrapObject(JSContext* aCx) MOZ_OVERRIDE;
   uint16_t UnitType() const;
   float Value() const;
   void GetValueAsString(nsAString& aValue);
--- a/content/svg/content/src/SVGAnimatedAngle.h
+++ b/content/svg/content/src/SVGAnimatedAngle.h
@@ -21,17 +21,16 @@ class SVGAnimatedAngle MOZ_FINAL : publi
 {
 public:
   NS_INLINE_DECL_CYCLE_COLLECTING_NATIVE_REFCOUNTING(SVGAnimatedAngle)
   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_NATIVE_CLASS(SVGAnimatedAngle)
 
   SVGAnimatedAngle(nsSVGAngle* aVal, nsSVGElement *aSVGElement)
     : mVal(aVal), mSVGElement(aSVGElement)
   {
-    SetIsDOMBinding();
   }
 
   // WebIDL
   nsSVGElement* GetParentObject() { return mSVGElement; }
   virtual JSObject* WrapObject(JSContext* aCx) MOZ_OVERRIDE;
   already_AddRefed<SVGAngle> BaseVal();
   already_AddRefed<SVGAngle> AnimVal();
 
--- a/content/svg/content/src/SVGAnimatedBoolean.h
+++ b/content/svg/content/src/SVGAnimatedBoolean.h
@@ -17,17 +17,16 @@ namespace dom {
 class SVGAnimatedBoolean MOZ_FINAL : public nsWrapperCache
 {
   NS_INLINE_DECL_CYCLE_COLLECTING_NATIVE_REFCOUNTING(SVGAnimatedBoolean)
   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_NATIVE_CLASS(SVGAnimatedBoolean)
 
   SVGAnimatedBoolean(nsSVGBoolean* aVal, nsSVGElement *aSVGElement)
     : mVal(aVal), mSVGElement(aSVGElement)
   {
-    SetIsDOMBinding();
   }
 
   // WebIDL
   nsSVGElement* GetParentObject() const { return mSVGElement; }
   virtual JSObject* WrapObject(JSContext* aCx) MOZ_OVERRIDE;
   bool BaseVal() const { return mVal->GetBaseValue(); }
   void SetBaseVal(bool aValue) { mVal->SetBaseValue(aValue, mSVGElement); }
   bool AnimVal() const { mSVGElement->FlushAnimations(); return mVal->GetAnimValue(); }
--- a/content/svg/content/src/SVGAnimatedEnumeration.h
+++ b/content/svg/content/src/SVGAnimatedEnumeration.h
@@ -32,17 +32,16 @@ public:
   virtual uint16_t BaseVal() = 0;
   virtual void SetBaseVal(uint16_t aBaseVal, ErrorResult& aRv) = 0;
   virtual uint16_t AnimVal() = 0;
 
 protected:
   explicit SVGAnimatedEnumeration(nsSVGElement* aSVGElement)
     : mSVGElement(aSVGElement)
   {
-    SetIsDOMBinding();
   }
   virtual ~SVGAnimatedEnumeration() {};
 
   nsRefPtr<nsSVGElement> mSVGElement;
 };
 
 } // namespace dom
 } // namespace mozilla
--- a/content/svg/content/src/SVGAnimatedInteger.h
+++ b/content/svg/content/src/SVGAnimatedInteger.h
@@ -32,17 +32,16 @@ public:
   virtual int32_t BaseVal() = 0;
   virtual void SetBaseVal(int32_t aBaseVal) = 0;
   virtual int32_t AnimVal() = 0;
 
 protected:
   explicit SVGAnimatedInteger(nsSVGElement* aSVGElement)
     : mSVGElement(aSVGElement)
   {
-    SetIsDOMBinding();
   }
   virtual ~SVGAnimatedInteger() {};
 
   nsRefPtr<nsSVGElement> mSVGElement;
 };
 
 } // namespace dom
 } // namespace mozilla
--- a/content/svg/content/src/SVGAnimatedLength.h
+++ b/content/svg/content/src/SVGAnimatedLength.h
@@ -20,17 +20,18 @@ namespace dom {
 class SVGAnimatedLength MOZ_FINAL : public nsWrapperCache
 {
 public:
   NS_INLINE_DECL_CYCLE_COLLECTING_NATIVE_REFCOUNTING(SVGAnimatedLength)
   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_NATIVE_CLASS(SVGAnimatedLength)
 
   SVGAnimatedLength(nsSVGLength2* aVal, nsSVGElement *aSVGElement)
     : mVal(aVal), mSVGElement(aSVGElement)
-  { SetIsDOMBinding(); }
+  {
+  }
 
   // WebIDL
   nsSVGElement* GetParentObject() { return mSVGElement; }
   virtual JSObject* WrapObject(JSContext* aCx) MOZ_OVERRIDE;
   already_AddRefed<DOMSVGLength> BaseVal();
   already_AddRefed<DOMSVGLength> AnimVal();
 
 protected:
--- a/content/svg/content/src/SVGAnimatedNumber.h
+++ b/content/svg/content/src/SVGAnimatedNumber.h
@@ -33,17 +33,16 @@ public:
   virtual float BaseVal() = 0;
   virtual void SetBaseVal(float aBaseVal) = 0;
   virtual float AnimVal() = 0;
 
 protected:
   explicit SVGAnimatedNumber(nsSVGElement* aSVGElement)
     : mSVGElement(aSVGElement)
   {
-    SetIsDOMBinding();
   }
   virtual ~SVGAnimatedNumber() {};
 
   nsRefPtr<nsSVGElement> mSVGElement;
 };
 
 } // namespace dom
 } // namespace mozilla
--- a/content/svg/content/src/SVGAnimatedPreserveAspectRatio.h
+++ b/content/svg/content/src/SVGAnimatedPreserveAspectRatio.h
@@ -119,17 +119,16 @@ class DOMSVGAnimatedPreserveAspectRatio 
 
   NS_DECL_CYCLE_COLLECTING_ISUPPORTS
   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(DOMSVGAnimatedPreserveAspectRatio)
 
   DOMSVGAnimatedPreserveAspectRatio(SVGAnimatedPreserveAspectRatio* aVal,
                                     nsSVGElement *aSVGElement)
     : mVal(aVal), mSVGElement(aSVGElement)
   {
-    SetIsDOMBinding();
   }
 
   // WebIDL
   nsSVGElement* GetParentObject() const { return mSVGElement; }
   virtual JSObject* WrapObject(JSContext* aCx) MOZ_OVERRIDE;
 
   // These aren't weak refs because new objects are returned each time
   already_AddRefed<DOMSVGPreserveAspectRatio> BaseVal();
--- a/content/svg/content/src/SVGAnimatedRect.cpp
+++ b/content/svg/content/src/SVGAnimatedRect.cpp
@@ -16,17 +16,16 @@ NS_SVG_VAL_IMPL_CYCLE_COLLECTION_WRAPPER
 
 NS_IMPL_CYCLE_COLLECTION_ROOT_NATIVE(SVGAnimatedRect, AddRef)
 NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(SVGAnimatedRect, Release)
 
 SVGAnimatedRect::SVGAnimatedRect(nsSVGViewBox* aVal, nsSVGElement* aSVGElement)
   : mVal(aVal)
   , mSVGElement(aSVGElement)
 {
-  SetIsDOMBinding();
 }
 
 SVGAnimatedRect::~SVGAnimatedRect()
 {
   nsSVGViewBox::sSVGAnimatedRectTearoffTable.RemoveTearoff(mVal);
 }
 
 already_AddRefed<SVGIRect>
--- a/content/svg/content/src/SVGAnimatedString.h
+++ b/content/svg/content/src/SVGAnimatedString.h
@@ -13,17 +13,16 @@ namespace dom {
 
 class SVGAnimatedString : public nsISupports,
                           public nsWrapperCache
 {
 public:
   explicit SVGAnimatedString(nsSVGElement* aSVGElement)
     : mSVGElement(aSVGElement)
   {
-    SetIsDOMBinding();
   }
 
   virtual JSObject* WrapObject(JSContext* aCx) MOZ_OVERRIDE;
 
   // WebIDL
   nsSVGElement* GetParentObject() const
   {
     return mSVGElement;
--- a/content/svg/content/src/SVGAnimatedTransformList.h
+++ b/content/svg/content/src/SVGAnimatedTransformList.h
@@ -101,17 +101,16 @@ private:
    * Only our static GetDOMWrapper() factory method may create objects of our
    * type.
    */
   explicit SVGAnimatedTransformList(nsSVGElement *aElement)
     : mBaseVal(nullptr)
     , mAnimVal(nullptr)
     , mElement(aElement)
   {
-    SetIsDOMBinding();
   }
 
   ~SVGAnimatedTransformList();
 
   /// Get a reference to this DOM wrapper object's internal counterpart.
   nsSVGAnimatedTransformList& InternalAList();
   const nsSVGAnimatedTransformList& InternalAList() const;
 
--- a/content/svg/content/src/SVGIRect.h
+++ b/content/svg/content/src/SVGIRect.h
@@ -17,21 +17,16 @@ class nsSVGElement;
 
 namespace mozilla {
 namespace dom {
 
 class SVGIRect : public nsISupports,
                  public nsWrapperCache
 {
 public:
-  SVGIRect()
-  {
-    SetIsDOMBinding();
-  }
-
   virtual ~SVGIRect()
   {
   }
 
   JSObject* WrapObject(JSContext* aCx) MOZ_OVERRIDE
   {
     return SVGRectBinding::Wrap(aCx, this);
   }
--- a/content/svg/content/src/SVGMatrix.h
+++ b/content/svg/content/src/SVGMatrix.h
@@ -54,31 +54,25 @@ class SVGMatrix MOZ_FINAL : public nsWra
 {
 public:
   NS_INLINE_DECL_CYCLE_COLLECTING_NATIVE_REFCOUNTING(SVGMatrix)
   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_NATIVE_CLASS(SVGMatrix)
 
   /**
    * Ctor for SVGMatrix objects that belong to a SVGTransform.
    */
-  explicit SVGMatrix(SVGTransform& aTransform) : mTransform(&aTransform) {
-    SetIsDOMBinding();
-  }
+  explicit SVGMatrix(SVGTransform& aTransform) : mTransform(&aTransform) {}
 
   /**
    * Ctors for SVGMatrix objects created independently of a SVGTransform.
    */
   // Default ctor for gfxMatrix will produce identity mx
-  SVGMatrix() {
-    SetIsDOMBinding();
-  }
+  SVGMatrix() {}
 
-  explicit SVGMatrix(const gfxMatrix &aMatrix) : mMatrix(aMatrix) {
-    SetIsDOMBinding();
-  }
+  explicit SVGMatrix(const gfxMatrix &aMatrix) : mMatrix(aMatrix) {}
 
   const gfxMatrix& GetMatrix() const {
     return mTransform ? mTransform->Matrixgfx() : mMatrix;
   }
 
   // WebIDL
   SVGTransform* GetParentObject() const;
   virtual JSObject* WrapObject(JSContext* aCx) MOZ_OVERRIDE;
--- a/content/svg/content/src/SVGPreserveAspectRatio.h
+++ b/content/svg/content/src/SVGPreserveAspectRatio.h
@@ -120,17 +120,16 @@ public:
   NS_DECL_CYCLE_COLLECTING_ISUPPORTS
   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(DOMSVGPreserveAspectRatio)
 
   DOMSVGPreserveAspectRatio(SVGAnimatedPreserveAspectRatio* aVal,
                             nsSVGElement *aSVGElement,
                             bool aIsBaseValue)
     : mVal(aVal), mSVGElement(aSVGElement), mIsBaseValue(aIsBaseValue)
   {
-    SetIsDOMBinding();
   }
 
   // WebIDL
   nsSVGElement* GetParentObject() const { return mSVGElement; }
   virtual JSObject* WrapObject(JSContext* aCx) MOZ_OVERRIDE;
 
   uint16_t Align();
   void SetAlign(uint16_t aAlign, ErrorResult& rv);
--- a/content/svg/content/src/SVGTransform.cpp
+++ b/content/svg/content/src/SVGTransform.cpp
@@ -107,51 +107,47 @@ private:
 SVGTransform::SVGTransform(DOMSVGTransformList *aList,
                            uint32_t aListIndex,
                            bool aIsAnimValItem)
   : mList(aList)
   , mListIndex(aListIndex)
   , mIsAnimValItem(aIsAnimValItem)
   , mTransform(nullptr)
 {
-  SetIsDOMBinding();
   // These shifts are in sync with the members in the header.
   NS_ABORT_IF_FALSE(aList &&
                     aListIndex <= MaxListIndex(), "bad arg");
 
   NS_ABORT_IF_FALSE(IndexIsValid(), "Bad index for DOMSVGNumber!");
 }
 
 SVGTransform::SVGTransform()
   : mList(nullptr)
   , mListIndex(0)
   , mIsAnimValItem(false)
   , mTransform(new nsSVGTransform()) // Default ctor for objects not in a list
                                      // initialises to matrix type with identity
                                      // matrix
 {
-  SetIsDOMBinding();
 }
 
 SVGTransform::SVGTransform(const gfxMatrix &aMatrix)
   : mList(nullptr)
   , mListIndex(0)
   , mIsAnimValItem(false)
   , mTransform(new nsSVGTransform(aMatrix))
 {
-  SetIsDOMBinding();
 }
 
 SVGTransform::SVGTransform(const nsSVGTransform &aTransform)
   : mList(nullptr)
   , mListIndex(0)
   , mIsAnimValItem(false)
   , mTransform(new nsSVGTransform(aTransform))
 {
-  SetIsDOMBinding();
 }
 
 SVGTransform::~SVGTransform()
 {
   SVGMatrix* matrix = SVGMatrixTearoffTable().GetTearoff(this);
   if (matrix) {
     SVGMatrixTearoffTable().RemoveTearoff(this);
     NS_RELEASE(matrix);
--- a/content/svg/content/src/nsISVGPoint.h
+++ b/content/svg/content/src/nsISVGPoint.h
@@ -45,27 +45,25 @@ public:
    */
   explicit nsISVGPoint()
     : mList(nullptr)
     , mListIndex(0)
     , mIsReadonly(false)
     , mIsAnimValItem(false)
     , mIsTranslatePoint(false)
   {
-    SetIsDOMBinding();
   }
 
   explicit nsISVGPoint(SVGPoint* aPt, bool aIsTranslatePoint)
     : mList(nullptr)
     , mListIndex(0)
     , mIsReadonly(false)
     , mIsAnimValItem(false)
     , mIsTranslatePoint(aIsTranslatePoint)
   {
-    SetIsDOMBinding();
     mPt.mX = aPt->GetX();
     mPt.mY = aPt->GetY();
   }
 
 protected:
   virtual ~nsISVGPoint()
   {
     // Our mList's weak ref to us must be nulled out when we die. If GC has
--- a/dom/animation/Animation.h
+++ b/dom/animation/Animation.h
@@ -138,17 +138,16 @@ public:
     , mTarget(aTarget)
     , mTiming(aTiming)
     , mName(aName)
     , mIsFinishedTransition(false)
     , mLastNotification(LAST_NOTIFICATION_NONE)
     , mPseudoType(aPseudoType)
   {
     MOZ_ASSERT(aTarget, "null animation target is not yet supported");
-    SetIsDOMBinding();
   }
 
   NS_INLINE_DECL_CYCLE_COLLECTING_NATIVE_REFCOUNTING(Animation)
   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_NATIVE_CLASS(Animation)
 
   nsIDocument* GetParentObject() const { return mDocument; }
   virtual JSObject* WrapObject(JSContext* aCx) MOZ_OVERRIDE;
 
--- a/dom/animation/AnimationEffect.h
+++ b/dom/animation/AnimationEffect.h
@@ -16,17 +16,16 @@ namespace mozilla {
 namespace dom {
 
 class AnimationEffect MOZ_FINAL : public nsWrapperCache
 {
 public:
   explicit AnimationEffect(Animation* aAnimation)
     : mAnimation(aAnimation)
   {
-    SetIsDOMBinding();
   }
 
   NS_INLINE_DECL_CYCLE_COLLECTING_NATIVE_REFCOUNTING(AnimationEffect)
   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_NATIVE_CLASS(AnimationEffect)
 
   Animation* GetParentObject() const { return mAnimation; }
   virtual JSObject* WrapObject(JSContext* aCx) MOZ_OVERRIDE;
 
--- a/dom/animation/AnimationPlayer.h
+++ b/dom/animation/AnimationPlayer.h
@@ -31,17 +31,16 @@ protected:
   virtual ~AnimationPlayer() { }
 
 public:
   explicit AnimationPlayer(AnimationTimeline* aTimeline)
     : mPlayState(NS_STYLE_ANIMATION_PLAY_STATE_RUNNING)
     , mIsRunningOnCompositor(false)
     , mTimeline(aTimeline)
   {
-    SetIsDOMBinding();
   }
 
   NS_INLINE_DECL_CYCLE_COLLECTING_NATIVE_REFCOUNTING(AnimationPlayer)
   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_NATIVE_CLASS(AnimationPlayer)
 
   AnimationTimeline* GetParentObject() const { return mTimeline; }
   virtual JSObject* WrapObject(JSContext* aCx) MOZ_OVERRIDE;
 
--- a/dom/animation/AnimationTimeline.h
+++ b/dom/animation/AnimationTimeline.h
@@ -19,17 +19,16 @@ namespace mozilla {
 namespace dom {
 
 class AnimationTimeline MOZ_FINAL : public nsWrapperCache
 {
 public:
   explicit AnimationTimeline(nsIDocument* aDocument)
     : mDocument(aDocument)
   {
-    SetIsDOMBinding();
   }
 
   NS_INLINE_DECL_CYCLE_COLLECTING_NATIVE_REFCOUNTING(AnimationTimeline)
   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_NATIVE_CLASS(AnimationTimeline)
 
   nsISupports* GetParentObject() const { return mDocument; }
   virtual JSObject* WrapObject(JSContext* aCx) MOZ_OVERRIDE;
 
--- a/dom/archivereader/ArchiveReader.cpp
+++ b/dom/archivereader/ArchiveReader.cpp
@@ -51,18 +51,16 @@ ArchiveReader::ArchiveReader(nsIDOMBlob*
                              const nsACString& aEncoding)
   : mBlob(aBlob)
   , mWindow(aWindow)
   , mStatus(NOT_STARTED)
   , mEncoding(aEncoding)
 {
   MOZ_ASSERT(aBlob);
   MOZ_ASSERT(aWindow);
-
-  SetIsDOMBinding();
 }
 
 ArchiveReader::~ArchiveReader()
 {
 }
 
 /* virtual */ JSObject*
 ArchiveReader::WrapObject(JSContext* aCx)
--- a/dom/base/BarProps.cpp
+++ b/dom/base/BarProps.cpp
@@ -16,17 +16,16 @@ namespace dom {
 
 //
 //  Basic (virtual) BarProp class implementation
 //
 BarProp::BarProp(nsGlobalWindow* aWindow)
   : mDOMWindow(aWindow)
 {
   MOZ_ASSERT(aWindow->IsInnerWindow());
-  SetIsDOMBinding();
 }
 
 BarProp::~BarProp()
 {
 }
 
 nsPIDOMWindow*
 BarProp::GetParentObject() const
--- a/dom/base/Console.cpp
+++ b/dom/base/Console.cpp
@@ -555,17 +555,16 @@ Console::Console(nsPIDOMWindow* aWindow)
 
   if (NS_IsMainThread()) {
     nsCOMPtr<nsIObserverService> obs = mozilla::services::GetObserverService();
     if (obs) {
       obs->AddObserver(this, "inner-window-destroyed", false);
     }
   }
 
-  SetIsDOMBinding();
   mozilla::HoldJSObjects(this);
 }
 
 Console::~Console()
 {
   mozilla::DropJSObjects(this);
 }
 
--- a/dom/base/Crypto.cpp
+++ b/dom/base/Crypto.cpp
@@ -27,17 +27,16 @@ NS_INTERFACE_MAP_END
 NS_IMPL_CYCLE_COLLECTING_ADDREF(Crypto)
 NS_IMPL_CYCLE_COLLECTING_RELEASE(Crypto)
 
 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(Crypto, mWindow, mSubtle)
 
 Crypto::Crypto()
 {
   MOZ_COUNT_CTOR(Crypto);
-  SetIsDOMBinding();
 }
 
 Crypto::~Crypto()
 {
   MOZ_COUNT_DTOR(Crypto);
 }
 
 void
--- a/dom/base/DOMError.cpp
+++ b/dom/base/DOMError.cpp
@@ -19,45 +19,40 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(DOMError)
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 DOMError::DOMError(nsPIDOMWindow* aWindow)
   : mWindow(aWindow)
 {
-  SetIsDOMBinding();
 }
 
 DOMError::DOMError(nsPIDOMWindow* aWindow, nsresult aValue)
   : mWindow(aWindow)
 {
   nsCString name, message;
   NS_GetNameAndMessageForDOMNSResult(aValue, name, message);
 
   CopyUTF8toUTF16(name, mName);
   CopyUTF8toUTF16(message, mMessage);
-
-  SetIsDOMBinding();
 }
 
 DOMError::DOMError(nsPIDOMWindow* aWindow, const nsAString& aName)
   : mWindow(aWindow)
   , mName(aName)
 {
-  SetIsDOMBinding();
 }
 
 DOMError::DOMError(nsPIDOMWindow* aWindow, const nsAString& aName,
                    const nsAString& aMessage)
   : mWindow(aWindow)
   , mName(aName)
   , mMessage(aMessage)
 {
-  SetIsDOMBinding();
 }
 
 DOMError::~DOMError()
 {
 }
 
 JSObject*
 DOMError::WrapObject(JSContext* aCx)
--- a/dom/base/DOMException.cpp
+++ b/dom/base/DOMException.cpp
@@ -195,18 +195,16 @@ Exception::Exception(const nsACString& a
                      const nsACString& aName,
                      nsIStackFrame *aLocation,
                      nsISupports *aData)
 : mResult(NS_OK),
   mLineNumber(0),
   mInitialized(false),
   mHoldingJSVal(false)
 {
-  SetIsDOMBinding();
-
   // A little hack... The nsIGenericModule nsIClassInfo scheme relies on there
   // having been at least one instance made via the factory. Otherwise, the
   // shared factory/classinsance object never gets created and our QI getter
   // for our instance's pointer to our nsIClassInfo will always return null.
   // This is bad because it means that wrapped exceptions will never have a
   // shared prototype. So... We force one to be created via the factory
   // *once* and then go about our business.
   if (!sEverMadeOneFromFactory) {
@@ -595,17 +593,16 @@ NS_INTERFACE_MAP_END_INHERITING(Exceptio
 
 DOMException::DOMException(nsresult aRv, const nsACString& aMessage,
                            const nsACString& aName, uint16_t aCode)
   : Exception(EmptyCString(), aRv, EmptyCString(), nullptr, nullptr),
     mName(aName),
     mMessage(aMessage),
     mCode(aCode)
 {
-  SetIsDOMBinding();
 }
 
 NS_IMETHODIMP
 DOMException::GetCode(uint16_t* aCode)
 {
   NS_ENSURE_ARG_POINTER(aCode);
   *aCode = mCode;
 
--- a/dom/base/MessageChannel.cpp
+++ b/dom/base/MessageChannel.cpp
@@ -62,17 +62,16 @@ MessageChannel::Enabled(JSContext* aCx, 
 
   return isResource;
 }
 
 MessageChannel::MessageChannel(nsPIDOMWindow* aWindow)
   : mWindow(aWindow)
 {
   MOZ_COUNT_CTOR(MessageChannel);
-  SetIsDOMBinding();
 
   mPort1 = new MessagePort(mWindow);
   mPort2 = new MessagePort(mWindow);
 
   mPort1->Entangle(mPort2);
   mPort2->Entangle(mPort1);
 }
 
--- a/dom/base/MessagePort.cpp
+++ b/dom/base/MessagePort.cpp
@@ -309,22 +309,20 @@ PostMessageRunnable::Run()
   bool status;
   mPort->DispatchEvent(static_cast<dom::Event*>(event.get()), &status);
   return status ? NS_OK : NS_ERROR_FAILURE;
 }
 
 MessagePortBase::MessagePortBase(nsPIDOMWindow* aWindow)
   : DOMEventTargetHelper(aWindow)
 {
-  // SetIsDOMBinding() is called by DOMEventTargetHelper's ctor.
 }
 
 MessagePortBase::MessagePortBase()
 {
-  SetIsDOMBinding();
 }
 
 NS_IMPL_CYCLE_COLLECTION_CLASS(MessagePort)
 
 NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(MessagePort,
                                                 DOMEventTargetHelper)
   NS_IMPL_CYCLE_COLLECTION_UNLINK(mEntangledPort)
 
--- a/dom/base/MessagePortList.h
+++ b/dom/base/MessagePortList.h
@@ -27,17 +27,16 @@ public:
   NS_DECL_CYCLE_COLLECTING_ISUPPORTS
   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(MessagePortList)
 
 public:
   MessagePortList(nsISupports* aOwner, nsTArray<nsRefPtr<MessagePortBase>>& aPorts)
     : mOwner(aOwner)
     , mPorts(aPorts)
   {
-    SetIsDOMBinding();
   }
 
   nsISupports*
   GetParentObject() const
   {
     return mOwner;
   }
 
--- a/dom/base/Navigator.cpp
+++ b/dom/base/Navigator.cpp
@@ -134,17 +134,16 @@ Navigator::Init()
   Preferences::AddUintVarCache(&sMaxVibrateListLen,
                                "dom.vibrator.max_vibrate_list_len", 128);
 }
 
 Navigator::Navigator(nsPIDOMWindow* aWindow)
   : mWindow(aWindow)
 {
   MOZ_ASSERT(aWindow->IsInnerWindow(), "Navigator must get an inner window!");
-  SetIsDOMBinding();
 }
 
 Navigator::~Navigator()
 {
   Invalidate();
 }
 
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(Navigator)
--- a/dom/base/PerformanceEntry.cpp
+++ b/dom/base/PerformanceEntry.cpp
@@ -18,17 +18,16 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 PerformanceEntry::PerformanceEntry(nsPerformance* aPerformance)
 : mPerformance(aPerformance)
 {
   MOZ_ASSERT(aPerformance, "Parent performance object should be provided");
-  SetIsDOMBinding();
 }
 
 PerformanceEntry::~PerformanceEntry()
 {
 }
 
 JSObject*
 PerformanceEntry::WrapObject(JSContext* aCx)
--- a/dom/base/SubtleCrypto.cpp
+++ b/dom/base/SubtleCrypto.cpp
@@ -21,17 +21,16 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 
 
 SubtleCrypto::SubtleCrypto(nsPIDOMWindow* aWindow)
   : mWindow(aWindow)
 {
-  SetIsDOMBinding();
 }
 
 JSObject*
 SubtleCrypto::WrapObject(JSContext* aCx)
 {
   return SubtleCryptoBinding::Wrap(aCx, this);
 }
 
--- a/dom/base/URLSearchParams.cpp
+++ b/dom/base/URLSearchParams.cpp
@@ -16,17 +16,16 @@ NS_IMPL_CYCLE_COLLECTING_RELEASE(URLSear
 
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(URLSearchParams)
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 URLSearchParams::URLSearchParams()
 {
-  SetIsDOMBinding();
 }
 
 URLSearchParams::~URLSearchParams()
 {
   DeleteAll();
 }
 
 JSObject*
--- a/dom/base/nsGlobalWindow.cpp
+++ b/dom/base/nsGlobalWindow.cpp
@@ -1136,18 +1136,16 @@ nsGlobalWindow::nsGlobalWindow(nsGlobalW
     mDialogAbuseCount(0),
     mAreDialogsEnabled(true)
 {
   nsLayoutStatics::AddRef();
 
   // Initialize the PRCList (this).
   PR_INIT_CLIST(this);
 
-  SetIsDOMBinding();
-
   if (aOuterWindow) {
     // |this| is an inner window, add this inner window to the outer
     // window list of inners.
     PR_INSERT_AFTER(this, aOuterWindow);
 
     mObserver = new nsGlobalWindowObserver(this);
     if (mObserver) {
       NS_ADDREF(mObserver);
--- a/dom/base/nsHistory.cpp
+++ b/dom/base/nsHistory.cpp
@@ -41,17 +41,16 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
   NS_INTERFACE_MAP_ENTRY(nsIDOMHistory) // Empty, needed for extension compat
 NS_INTERFACE_MAP_END
 
 nsHistory::nsHistory(nsPIDOMWindow* aInnerWindow)
   : mInnerWindow(do_GetWeakReference(aInnerWindow))
 {
-  SetIsDOMBinding();
 }
 
 nsHistory::~nsHistory()
 {
 }
 
 nsPIDOMWindow*
 nsHistory::GetParentObject() const
--- a/dom/base/nsLocation.cpp
+++ b/dom/base/nsLocation.cpp
@@ -50,17 +50,16 @@ GetDocumentCharacterSetForURI(const nsAS
   return NS_OK;
 }
 
 nsLocation::nsLocation(nsPIDOMWindow* aWindow, nsIDocShell *aDocShell)
   : mInnerWindow(aWindow)
 {
   MOZ_ASSERT(aDocShell);
   MOZ_ASSERT(mInnerWindow->IsInnerWindow());
-  SetIsDOMBinding();
 
   mDocShell = do_GetWeakReference(aDocShell);
 }
 
 nsLocation::~nsLocation()
 {
   RemoveURLSearchParams();
 }
--- a/dom/base/nsMimeTypeArray.cpp
+++ b/dom/base/nsMimeTypeArray.cpp
@@ -28,17 +28,16 @@ NS_INTERFACE_MAP_END
 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(nsMimeTypeArray,
                                       mWindow,
                                       mMimeTypes,
                                       mHiddenMimeTypes)
 
 nsMimeTypeArray::nsMimeTypeArray(nsPIDOMWindow* aWindow)
   : mWindow(aWindow)
 {
-  SetIsDOMBinding();
 }
 
 nsMimeTypeArray::~nsMimeTypeArray()
 {
 }
 
 JSObject*
 nsMimeTypeArray::WrapObject(JSContext* aCx)
@@ -228,26 +227,24 @@ NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(ns
 
 nsMimeType::nsMimeType(nsPIDOMWindow* aWindow, nsPluginElement* aPluginElement,
                        uint32_t aPluginTagMimeIndex, const nsAString& aType)
   : mWindow(aWindow),
     mPluginElement(aPluginElement),
     mPluginTagMimeIndex(aPluginTagMimeIndex),
     mType(aType)
 {
-  SetIsDOMBinding();
 }
 
 nsMimeType::nsMimeType(nsPIDOMWindow* aWindow, const nsAString& aType)
   : mWindow(aWindow),
     mPluginElement(nullptr),
     mPluginTagMimeIndex(0),
     mType(aType)
 {
-  SetIsDOMBinding();
 }
 
 nsMimeType::~nsMimeType()
 {
 }
 
 nsPIDOMWindow*
 nsMimeType::GetParentObject() const
--- a/dom/base/nsPerformance.cpp
+++ b/dom/base/nsPerformance.cpp
@@ -35,17 +35,16 @@ nsPerformanceTiming::nsPerformanceTiming
   : mPerformance(aPerformance),
     mChannel(aChannel),
     mFetchStart(0.0),
     mZeroTime(aZeroTime),
     mTimingAllowed(true),
     mReportCrossOriginRedirect(true)
 {
   MOZ_ASSERT(aPerformance, "Parent performance object should be provided");
-  SetIsDOMBinding();
 
   if (!nsContentUtils::IsPerformanceTimingEnabled()) {
     mZeroTime = 0;
   }
 
   // The aHttpChannel argument is null if this nsPerformanceTiming object
   // is being used for the navigation timing (document) and has a non-null
   // value for the resource timing (any resources within the page).
@@ -363,17 +362,16 @@ NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(ns
 
 NS_IMPL_CYCLE_COLLECTION_ROOT_NATIVE(nsPerformanceNavigation, AddRef)
 NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(nsPerformanceNavigation, Release)
 
 nsPerformanceNavigation::nsPerformanceNavigation(nsPerformance* aPerformance)
   : mPerformance(aPerformance)
 {
   MOZ_ASSERT(aPerformance, "Parent performance object should be provided");
-  SetIsDOMBinding();
 }
 
 nsPerformanceNavigation::~nsPerformanceNavigation()
 {
 }
 
 JSObject*
 nsPerformanceNavigation::WrapObject(JSContext *cx)
@@ -396,17 +394,16 @@ nsPerformance::nsPerformance(nsPIDOMWind
   : DOMEventTargetHelper(aWindow),
     mWindow(aWindow),
     mDOMTiming(aDOMTiming),
     mChannel(aChannel),
     mParentPerformance(aParentPerformance),
     mPrimaryBufferSize(kDefaultBufferSize)
 {
   MOZ_ASSERT(aWindow, "Parent window object should be provided");
-  SetIsDOMBinding();
 }
 
 nsPerformance::~nsPerformance()
 {
 }
 
 // QueryInterface implementation for nsPerformance
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsPerformance)
--- a/dom/base/nsPluginArray.cpp
+++ b/dom/base/nsPluginArray.cpp
@@ -22,17 +22,16 @@
 #include "nsIInterfaceRequestorUtils.h"
 
 using namespace mozilla;
 using namespace mozilla::dom;
 
 nsPluginArray::nsPluginArray(nsPIDOMWindow* aWindow)
   : mWindow(aWindow)
 {
-  SetIsDOMBinding();
 }
 
 void
 nsPluginArray::Init()
 {
   nsCOMPtr<nsIObserverService> obsService =
     mozilla::services::GetObserverService();
   if (obsService) {
@@ -381,17 +380,16 @@ NS_INTERFACE_MAP_END
 
 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(nsPluginElement, mWindow, mMimeTypes)
 
 nsPluginElement::nsPluginElement(nsPIDOMWindow* aWindow,
                                  nsPluginTag* aPluginTag)
   : mWindow(aWindow),
     mPluginTag(aPluginTag)
 {
-  SetIsDOMBinding();
 }
 
 nsPluginElement::~nsPluginElement()
 {
 }
 
 nsPIDOMWindow*
 nsPluginElement::GetParentObject() const
--- a/dom/base/nsWrapperCache.h
+++ b/dom/base/nsWrapperCache.h
@@ -137,23 +137,16 @@ public:
     }
   }
 
   bool PreservingWrapper()
   {
     return HasWrapperFlag(WRAPPER_BIT_PRESERVED);
   }
 
-  void SetIsDOMBinding()
-  {
-    MOZ_ASSERT(!mWrapper && !(GetWrapperFlags() & ~WRAPPER_IS_NOT_DOM_BINDING),
-               "This flag should be set before creating any wrappers.");
-    UnsetWrapperFlags(WRAPPER_IS_NOT_DOM_BINDING);
-  }
-
   bool IsDOMBinding() const
   {
     return !HasWrapperFlag(WRAPPER_IS_NOT_DOM_BINDING);
   }
 
   /**
    * Wrap the object corresponding to this wrapper cache. If non-null is
    * returned, the object has already been stored in the wrapper cache.
--- a/dom/bindings/BindingUtils.h
+++ b/dom/bindings/BindingUtils.h
@@ -2863,17 +2863,16 @@ CreateGlobal(JSContext* aCx, T* aNative,
   }
 
   JSAutoCompartment ac(aCx, aGlobal);
 
   {
     js::SetReservedSlot(aGlobal, DOM_OBJECT_SLOT, PRIVATE_TO_JSVAL(aNative));
     NS_ADDREF(aNative);
 
-    aCache->SetIsDOMBinding();
     aCache->SetWrapper(aGlobal);
 
     dom::AllocateProtoAndIfaceCache(aGlobal,
                                     CreateGlobalOptions<T>::ProtoAndIfaceCacheKind);
 
     if (!CreateGlobalOptions<T>::PostCreateGlobal(aCx, aGlobal)) {
       return false;
     }
--- a/dom/bindings/Codegen.py
+++ b/dom/bindings/Codegen.py
@@ -13018,30 +13018,26 @@ class CGExampleClass(CGBindingImplClass)
                                                         visibility="public")],
                          destructor=ClassDestructor(visibility=destructorVisibility),
                          methods=self.methodDecls,
                          decorators=decorators,
                          extradeclarations=extradeclarations)
 
     def define(self):
         # Just override CGClass and do our own thing
-        if self.descriptor.wrapperCache:
-            setDOMBinding = "  SetIsDOMBinding();\n"
-        else:
-            setDOMBinding = ""
         if self.refcounted:
             ctordtor = dedent("""
                 ${nativeType}::${nativeType}()
                 {
-                %s}
+                }
 
                 ${nativeType}::~${nativeType}()
                 {
                 }
-                """) % setDOMBinding
+                """)
         else:
             ctordtor = dedent("""
                 ${nativeType}::${nativeType}()
                 {
                   MOZ_COUNT_CTOR(${nativeType});
                 }
 
                 ${nativeType}::~${nativeType}()
@@ -13336,17 +13332,17 @@ class CGJSImplClass(CGBindingImplClass):
                 descriptor.interface.parent.identifier.name).jsImplParent
             baseClasses = [ClassBase(parentClass)]
             isupportsDecl = "NS_DECL_ISUPPORTS_INHERITED\n"
             ccDecl = ("NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(%s, %s)\n" %
                       (descriptor.name, parentClass))
             constructorBody = dedent("""
                 // Make sure we're an nsWrapperCache already
                 MOZ_ASSERT(static_cast<nsWrapperCache*>(this));
-                // And that our ancestor has called SetIsDOMBinding()
+                // And that our ancestor has not called SetIsNotDOMBinding()
                 MOZ_ASSERT(IsDOMBinding());
                 """)
             extradefinitions = fill(
                 """
                 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})
@@ -13355,17 +13351,16 @@ class CGJSImplClass(CGBindingImplClass):
                 ifaceName=self.descriptor.name,
                 parentClass=parentClass)
         else:
             baseClasses = [ClassBase("nsSupportsWeakReference"),
                            ClassBase("nsWrapperCache")]
             isupportsDecl = "NS_DECL_CYCLE_COLLECTING_ISUPPORTS\n"
             ccDecl = ("NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(%s)\n" %
                       descriptor.name)
-            constructorBody = "SetIsDOMBinding();\n"
             extradefinitions = fill(
                 """
                 NS_IMPL_CYCLE_COLLECTION_CLASS(${ifaceName})
                 NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(${ifaceName})
                   NS_IMPL_CYCLE_COLLECTION_UNLINK(mImpl)
                   NS_IMPL_CYCLE_COLLECTION_UNLINK(mParent)
                   NS_IMPL_CYCLE_COLLECTION_UNLINK_PRESERVED_WRAPPER
                   tmp->ClearWeakReferences();
@@ -13424,18 +13419,17 @@ class CGJSImplClass(CGBindingImplClass):
             # We only have C++ ancestors, so only pass along the window
             baseConstructors.insert(0,
                                     "%s(aParent)" % parentClass)
 
         constructor = ClassConstructor(
             [Argument("JS::Handle<JSObject*>", "aJSImplObject"),
              Argument("nsPIDOMWindow*", "aParent")],
             visibility="public",
-            baseConstructors=baseConstructors,
-            body=constructorBody)
+            baseConstructors=baseConstructors)
 
         self.methodDecls.append(
             ClassMethod("_Create",
                         "bool",
                         JSNativeArguments(),
                         static=True,
                         body=self.getCreateFromExistingBody()))
 
--- a/dom/bluetooth2/BluetoothClassOfDevice.cpp
+++ b/dom/bluetooth2/BluetoothClassOfDevice.cpp
@@ -39,17 +39,16 @@ NS_INTERFACE_MAP_END
 
 // Bit 7 ~ Bit 2: Minor device class
 #define GET_MINOR_DEVICE_CLASS(cod)  (((cod) & 0xfc) >> 2)
 
 BluetoothClassOfDevice::BluetoothClassOfDevice(nsPIDOMWindow* aOwner)
   : mOwnerWindow(aOwner)
 {
   MOZ_ASSERT(aOwner);
-  SetIsDOMBinding();
 
   Reset();
 }
 
 BluetoothClassOfDevice::~BluetoothClassOfDevice()
 {}
 
 void
--- a/dom/bluetooth2/BluetoothPairingHandle.cpp
+++ b/dom/bluetooth2/BluetoothPairingHandle.cpp
@@ -38,18 +38,16 @@ BluetoothPairingHandle::BluetoothPairing
   MOZ_ASSERT(aOwner && !aDeviceAddress.IsEmpty() && !aType.IsEmpty());
 
   if (aType.EqualsLiteral(PAIRING_REQ_TYPE_DISPLAYPASSKEY) ||
       aType.EqualsLiteral(PAIRING_REQ_TYPE_CONFIRMATION)) {
     MOZ_ASSERT(!aPasskey.IsEmpty());
   } else {
     MOZ_ASSERT(aPasskey.IsEmpty());
   }
-
-  SetIsDOMBinding();
 }
 
 BluetoothPairingHandle::~BluetoothPairingHandle()
 {
 }
 
 already_AddRefed<BluetoothPairingHandle>
 BluetoothPairingHandle::Create(nsPIDOMWindow* aOwner,
--- a/dom/camera/DOMCameraCapabilities.cpp
+++ b/dom/camera/DOMCameraCapabilities.cpp
@@ -52,17 +52,16 @@ CameraCapabilities::HasSupport(JSContext
 
 CameraCapabilities::CameraCapabilities(nsPIDOMWindow* aWindow)
   : mRecorderProfiles(JS::UndefinedValue())
   , mWindow(aWindow)
 {
   DOM_CAMERA_LOGT("%s:%d : this=%p\n", __func__, __LINE__, this);
   MOZ_COUNT_CTOR(CameraCapabilities);
   mozilla::HoldJSObjects(this);
-  SetIsDOMBinding();
 }
 
 CameraCapabilities::~CameraCapabilities()
 {
   DOM_CAMERA_LOGT("%s:%d : this=%p\n", __func__, __LINE__, this);
   mRecorderProfiles = JS::UndefinedValue();
   mozilla::DropJSObjects(this);
   MOZ_COUNT_DTOR(CameraCapabilities);
--- a/dom/camera/DOMCameraControl.cpp
+++ b/dom/camera/DOMCameraControl.cpp
@@ -175,17 +175,16 @@ nsDOMCameraControl::nsDOMCameraControl(u
   , mOnFacesDetectedCb(nullptr)
   , mWindow(aWindow)
   , mPreviewState(CameraControlListener::kPreviewStopped)
 {
   DOM_CAMERA_LOGT("%s:%d : this=%p\n", __func__, __LINE__, this);
   mInput = new CameraPreviewMediaStream(this);
 
   BindToOwner(aWindow);
-  SetIsDOMBinding();
 
   nsRefPtr<DOMCameraConfiguration> initialConfig =
     new DOMCameraConfiguration(aInitialConfig);
 
   // Create and initialize the underlying camera.
   ICameraControl::Configuration config;
   bool haveInitialConfig = false;
   nsresult rv;
--- a/dom/camera/DOMCameraDetectedFace.cpp
+++ b/dom/camera/DOMCameraDetectedFace.cpp
@@ -47,11 +47,9 @@ DOMCameraDetectedFace::DOMCameraDetected
     mLeftEye = new DOMPoint(this, aFace.leftEye.x, aFace.leftEye.y);
   }
   if (aFace.hasRightEye) {
     mRightEye = new DOMPoint(this, aFace.rightEye.x, aFace.rightEye.y);
   }
   if (aFace.hasMouth) {
     mMouth = new DOMPoint(this, aFace.mouth.x, aFace.mouth.y);
   }
-
-  SetIsDOMBinding();
 }
--- a/dom/camera/DOMCameraManager.cpp
+++ b/dom/camera/DOMCameraManager.cpp
@@ -56,17 +56,16 @@ GetCameraLog()
 nsDOMCameraManager::nsDOMCameraManager(nsPIDOMWindow* aWindow)
   : mWindowId(aWindow->WindowID())
   , mPermission(nsIPermissionManager::DENY_ACTION)
   , mWindow(aWindow)
 {
   /* member initializers and constructor code */
   DOM_CAMERA_LOGT("%s:%d : this=%p, windowId=%llx\n", __func__, __LINE__, this, mWindowId);
   MOZ_COUNT_CTOR(nsDOMCameraManager);
-  SetIsDOMBinding();
 }
 
 nsDOMCameraManager::~nsDOMCameraManager()
 {
   /* destructor code */
   MOZ_COUNT_DTOR(nsDOMCameraManager);
   DOM_CAMERA_LOGT("%s:%d : this=%p\n", __func__, __LINE__, this);
 }
--- a/dom/canvas/CanvasGradient.h
+++ b/dom/canvas/CanvasGradient.h
@@ -61,17 +61,16 @@ public:
     return mContext;
   }
 
 protected:
   CanvasGradient(CanvasRenderingContext2D* aContext, Type aType)
     : mContext(aContext)
     , mType(aType)
   {
-    SetIsDOMBinding();
   }
 
   nsRefPtr<CanvasRenderingContext2D> mContext;
   nsTArray<mozilla::gfx::GradientStop> mRawStops;
   mozilla::RefPtr<mozilla::gfx::GradientStops> mStops;
   Type mType;
   virtual ~CanvasGradient() {}
 };
--- a/dom/canvas/CanvasPattern.h
+++ b/dom/canvas/CanvasPattern.h
@@ -45,17 +45,16 @@ public:
     : mContext(aContext)
     , mSurface(aSurface)
     , mPrincipal(principalForSecurityCheck)
     , mTransform()
     , mForceWriteOnly(forceWriteOnly)
     , mCORSUsed(CORSUsed)
     , mRepeat(aRepeat)
   {
-    SetIsDOMBinding();
   }
 
   JSObject* WrapObject(JSContext* aCx) MOZ_OVERRIDE
   {
     return CanvasPatternBinding::Wrap(aCx, this);
   }
 
   CanvasRenderingContext2D* GetParentObject()
--- a/dom/canvas/CanvasRenderingContext2D.cpp
+++ b/dom/canvas/CanvasRenderingContext2D.cpp
@@ -827,17 +827,16 @@ CanvasRenderingContext2D::CanvasRenderin
   , mResetLayer(true)
   , mIPC(false)
   , mStream(nullptr)
   , mIsEntireFrameInvalid(false)
   , mPredictManyRedrawCalls(false), mPathTransformWillUpdate(false)
   , mInvalidateCount(0)
 {
   sNumLivingContexts++;
-  SetIsDOMBinding();
 
   // The default is to use OpenGL mode
   if (!gfxPlatform::GetPlatform()->UseAcceleratedSkiaCanvas()) {
     mRenderingMode = RenderingMode::SoftwareBackendMode;
   }
 
 }
 
@@ -4945,26 +4944,22 @@ CanvasRenderingContext2D::ShouldForceIna
 NS_IMPL_CYCLE_COLLECTION_ROOT_NATIVE(CanvasPath, AddRef)
 NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(CanvasPath, Release)
 
 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(CanvasPath, mParent)
 
 CanvasPath::CanvasPath(nsISupports* aParent)
   : mParent(aParent)
 {
-  SetIsDOMBinding();
-
   mPathBuilder = gfxPlatform::GetPlatform()->ScreenReferenceDrawTarget()->CreatePathBuilder();
 }
 
 CanvasPath::CanvasPath(nsISupports* aParent, TemporaryRef<PathBuilder> aPathBuilder)
   : mParent(aParent), mPathBuilder(aPathBuilder)
 {
-  SetIsDOMBinding();
-
   if (!mPathBuilder) {
     mPathBuilder = gfxPlatform::GetPlatform()->ScreenReferenceDrawTarget()->CreatePathBuilder();
   }
 }
 
 JSObject*
 CanvasPath::WrapObject(JSContext* aCx)
 {
--- a/dom/canvas/WebGLBuffer.cpp
+++ b/dom/canvas/WebGLBuffer.cpp
@@ -12,17 +12,16 @@
 
 using namespace mozilla;
 
 WebGLBuffer::WebGLBuffer(WebGLContext *context)
     : WebGLBindableName<BufferBinding>()
     , WebGLContextBoundObject(context)
     , mByteLength(0)
 {
-    SetIsDOMBinding();
     mContext->MakeContextCurrent();
     mContext->gl->fGenBuffers(1, &mGLName);
     mContext->mBuffers.insertBack(this);
 }
 
 WebGLBuffer::~WebGLBuffer() {
     DeleteOnce();
 }
--- a/dom/canvas/WebGLContext.cpp
+++ b/dom/canvas/WebGLContext.cpp
@@ -224,18 +224,16 @@ WebGLContextOptions::WebGLContextOptions
     if (Preferences::GetBool("webgl.default-no-alpha", false))
         alpha = false;
 }
 
 WebGLContext::WebGLContext()
     : gl(nullptr)
     , mNeedsFakeNoAlpha(false)
 {
-    SetIsDOMBinding();
-
     mGeneration = 0;
     mInvalidated = false;
     mShouldPresent = true;
     mResetLayer = true;
     mOptionsFrozen = false;
 
     mActiveTexture = 0;
     mPixelStoreFlipY = false;
--- a/dom/canvas/WebGLExtensionBase.cpp
+++ b/dom/canvas/WebGLExtensionBase.cpp
@@ -7,17 +7,16 @@
 #include "WebGLExtensions.h"
 
 using namespace mozilla;
 
 WebGLExtensionBase::WebGLExtensionBase(WebGLContext* context)
     : WebGLContextBoundObject(context)
     , mIsLost(false)
 {
-    SetIsDOMBinding();
 }
 
 WebGLExtensionBase::~WebGLExtensionBase()
 {
 }
 
 void
 WebGLExtensionBase::MarkLost()
--- a/dom/canvas/WebGLFramebuffer.cpp
+++ b/dom/canvas/WebGLFramebuffer.cpp
@@ -29,17 +29,16 @@ WebGLFramebuffer::WrapObject(JSContext* 
 WebGLFramebuffer::WebGLFramebuffer(WebGLContext* context)
     : WebGLBindableName<FBTarget>()
     , WebGLContextBoundObject(context)
     , mStatus(0)
     , mDepthAttachment(LOCAL_GL_DEPTH_ATTACHMENT)
     , mStencilAttachment(LOCAL_GL_STENCIL_ATTACHMENT)
     , mDepthStencilAttachment(LOCAL_GL_DEPTH_STENCIL_ATTACHMENT)
 {
-    SetIsDOMBinding();
     mContext->MakeContextCurrent();
     mContext->gl->fGenFramebuffers(1, &mGLName);
     mContext->mFramebuffers.insertBack(this);
 
     mColorAttachments.SetLength(1);
     mColorAttachments[0].mAttachmentPoint = LOCAL_GL_COLOR_ATTACHMENT0;
 }
 
--- a/dom/canvas/WebGLProgram.cpp
+++ b/dom/canvas/WebGLProgram.cpp
@@ -55,17 +55,16 @@ WebGLProgram::WebGLProgram(WebGLContext 
     : WebGLContextBoundObject(context)
     , mLinkStatus(false)
     , mGeneration(0)
     , mIdentifierMap(new CStringMap)
     , mIdentifierReverseMap(new CStringMap)
     , mUniformInfoMap(new CStringToUniformInfoMap)
     , mAttribMaxNameLength(0)
 {
-    SetIsDOMBinding();
     mContext->MakeContextCurrent();
     mGLName = mContext->gl->fCreateProgram();
     mContext->mPrograms.insertBack(this);
 }
 
 void
 WebGLProgram::Delete() {
     DetachShaders();
--- a/dom/canvas/WebGLQuery.cpp
+++ b/dom/canvas/WebGLQuery.cpp
@@ -16,17 +16,16 @@ WebGLQuery::WrapObject(JSContext *cx) {
     return dom::WebGLQueryBinding::Wrap(cx, this);
 }
 
 WebGLQuery::WebGLQuery(WebGLContext* context)
     : WebGLContextBoundObject(context)
     , mGLName(0)
     , mType(0)
 {
-    SetIsDOMBinding();
     mContext->mQueries.insertBack(this);
 
     mContext->MakeContextCurrent();
     mContext->gl->fGenQueries(1, &mGLName);
 }
 
 void WebGLQuery::Delete() {
     mContext->MakeContextCurrent();
--- a/dom/canvas/WebGLRenderbuffer.cpp
+++ b/dom/canvas/WebGLRenderbuffer.cpp
@@ -46,17 +46,16 @@ WebGLRenderbuffer::WebGLRenderbuffer(Web
     : WebGLBindableName<RBTarget>()
     , WebGLContextBoundObject(context)
     , mPrimaryRB(0)
     , mSecondaryRB(0)
     , mInternalFormat(0)
     , mInternalFormatForGL(0)
     , mImageDataStatus(WebGLImageDataStatus::NoImageData)
 {
-    SetIsDOMBinding();
     mContext->MakeContextCurrent();
 
     mContext->gl->fGenRenderbuffers(1, &mPrimaryRB);
     if (!SupportsDepthStencil(mContext->gl))
         mContext->gl->fGenRenderbuffers(1, &mSecondaryRB);
 
     mContext->mRenderbuffers.insertBack(this);
 }
--- a/dom/canvas/WebGLSampler.cpp
+++ b/dom/canvas/WebGLSampler.cpp
@@ -10,17 +10,16 @@
 
 #include "mozilla/dom/WebGL2RenderingContextBinding.h"
 
 using namespace mozilla;
 
 WebGLSampler::WebGLSampler(WebGLContext* context)
     : WebGLContextBoundObject(context)
 {
-    SetIsDOMBinding();
     MOZ_CRASH("Not Implemented.");
 }
 
 WebGLSampler::~WebGLSampler()
 {}
 
 void
 WebGLSampler::Delete()
--- a/dom/canvas/WebGLShader.cpp
+++ b/dom/canvas/WebGLShader.cpp
@@ -19,17 +19,16 @@ WebGLShader::WrapObject(JSContext *cx) {
 
 WebGLShader::WebGLShader(WebGLContext *context, GLenum stype)
     : WebGLContextBoundObject(context)
     , mType(stype)
     , mNeedsTranslation(true)
     , mAttribMaxNameLength(0)
     , mCompileStatus(false)
 {
-    SetIsDOMBinding();
     mContext->MakeContextCurrent();
     mGLName = mContext->gl->fCreateShader(mType);
     mContext->mShaders.insertBack(this);
 }
 
 void
 WebGLShader::Delete() {
     mSource.Truncate();
--- a/dom/canvas/WebGLTexture.cpp
+++ b/dom/canvas/WebGLTexture.cpp
@@ -30,17 +30,16 @@ WebGLTexture::WebGLTexture(WebGLContext 
     , mWrapS(LOCAL_GL_REPEAT)
     , mWrapT(LOCAL_GL_REPEAT)
     , mFacesCount(0)
     , mMaxLevelWithCustomImages(0)
     , mHaveGeneratedMipmap(false)
     , mImmutable(false)
     , mFakeBlackStatus(WebGLTextureFakeBlackStatus::IncompleteTexture)
 {
-    SetIsDOMBinding();
     mContext->MakeContextCurrent();
     mContext->gl->fGenTextures(1, &mGLName);
     mContext->mTextures.insertBack(this);
 }
 
 void
 WebGLTexture::Delete() {
     mImageInfos.Clear();
--- a/dom/canvas/WebGLTransformFeedback.cpp
+++ b/dom/canvas/WebGLTransformFeedback.cpp
@@ -10,17 +10,16 @@
 
 #include "mozilla/dom/WebGL2RenderingContextBinding.h"
 
 using namespace mozilla;
 
 WebGLTransformFeedback::WebGLTransformFeedback(WebGLContext* context)
     : WebGLContextBoundObject(context)
 {
-    SetIsDOMBinding();
     MOZ_CRASH("Not Implemented.");
 }
 
 WebGLTransformFeedback::~WebGLTransformFeedback()
 {}
 
 void
 WebGLTransformFeedback::Delete()
--- a/dom/canvas/WebGLVertexArray.cpp
+++ b/dom/canvas/WebGLVertexArray.cpp
@@ -18,17 +18,16 @@ JSObject*
 WebGLVertexArray::WrapObject(JSContext *cx) {
     return dom::WebGLVertexArrayBinding::Wrap(cx, this);
 }
 
 WebGLVertexArray::WebGLVertexArray(WebGLContext* context)
     : WebGLBindableName<VAOBinding>()
     , WebGLContextBoundObject(context)
 {
-    SetIsDOMBinding();
     context->mVertexArrays.insertBack(this);
 }
 
 WebGLVertexArray*
 WebGLVertexArray::Create(WebGLContext* context)
 {
     WebGLVertexArray* array;
     if (context->gl->IsSupported(gl::GLFeature::vertex_array_object)) {
--- a/dom/cellbroadcast/CellBroadcastMessage.cpp
+++ b/dom/cellbroadcast/CellBroadcastMessage.cpp
@@ -92,18 +92,16 @@ CellBroadcastMessage::CellBroadcastMessa
     mMessageClass.SetValue(
       ToWebidlEnum<CellBroadcastMessageClass>(aMessageClass));
   }
 
   // CdmaServiceCategory represents a 16bit unsigned value.
   if (aCdmaServiceCategory <= 0xFFFFU) {
     mCdmaServiceCategory.SetValue(static_cast<uint16_t>(aCdmaServiceCategory));
   }
-
-  SetIsDOMBinding();
 }
 
 JSObject*
 CellBroadcastMessage::WrapObject(JSContext* aCx)
 {
   return MozCellBroadcastMessageBinding::Wrap(aCx, this);
 }
 
@@ -135,18 +133,16 @@ CellBroadcastEtwsInfo::CellBroadcastEtws
   : mWindow(aWindow)
   , mEmergencyUserAlert(aEmergencyUserAlert)
   , mPopup(aPopup)
 {
   if (aWarningType < nsICellBroadcastService::GSM_ETWS_WARNING_INVALID) {
     mWarningType.SetValue(
       ToWebidlEnum<CellBroadcastEtwsWarningType>(aWarningType));
   }
-
-  SetIsDOMBinding();
 }
 
 JSObject*
 CellBroadcastEtwsInfo::WrapObject(JSContext* aCx)
 {
   return MozCellBroadcastEtwsInfoBinding::Wrap(aCx, this);
 }
 
--- a/dom/crypto/CryptoKey.cpp
+++ b/dom/crypto/CryptoKey.cpp
@@ -50,17 +50,16 @@ StringToUsage(const nsString& aUsage, Cr
 
 CryptoKey::CryptoKey(nsIGlobalObject* aGlobal)
   : mGlobal(aGlobal)
   , mAttributes(0)
   , mSymKey()
   , mPrivateKey(nullptr)
   , mPublicKey(nullptr)
 {
-  SetIsDOMBinding();
 }
 
 CryptoKey::~CryptoKey()
 {
   nsNSSShutDownPreventionLock locker;
   if (isAlreadyShutDown()) {
     return;
   }
--- a/dom/events/DOMEventTargetHelper.h
+++ b/dom/events/DOMEventTargetHelper.h
@@ -37,27 +37,23 @@ public:
   {
   }
   explicit DOMEventTargetHelper(nsPIDOMWindow* aWindow)
     : mParentObject(nullptr)
     , mOwnerWindow(nullptr)
     , mHasOrHasHadOwnerWindow(false)
   {
     BindToOwner(aWindow);
-    // All objects coming through here are WebIDL objects
-    SetIsDOMBinding();
   }
   explicit DOMEventTargetHelper(DOMEventTargetHelper* aOther)
     : mParentObject(nullptr)
     , mOwnerWindow(nullptr)
     , mHasOrHasHadOwnerWindow(false)
   {
     BindToOwner(aOther);
-    // All objects coming through here are WebIDL objects
-    SetIsDOMBinding();
   }
 
   NS_DECL_CYCLE_COLLECTING_ISUPPORTS
   NS_DECL_CYCLE_COLLECTION_SKIPPABLE_SCRIPT_HOLDER_CLASS(DOMEventTargetHelper)
 
   NS_DECL_NSIDOMEVENTTARGET
 
   virtual EventListenerManager* GetExistingListenerManager() const MOZ_OVERRIDE;
--- a/dom/events/DataTransfer.cpp
+++ b/dom/events/DataTransfer.cpp
@@ -78,17 +78,16 @@ DataTransfer::DataTransfer(nsISupports* 
     mIsExternal(aIsExternal),
     mUserCancelled(false),
     mIsCrossDomainSubFrameDrop(false),
     mClipboardType(aClipboardType),
     mDragImageX(0),
     mDragImageY(0)
 {
   MOZ_ASSERT(mParent);
-  SetIsDOMBinding();
   // For these events, we want to be able to add data to the data transfer, so
   // clear the readonly state. Otherwise, the data is already present. For
   // external usage, cache the data from the native clipboard or drag.
   if (aEventType == NS_CUT ||
       aEventType == NS_COPY ||
       aEventType == NS_DRAGDROP_START ||
       aEventType == NS_DRAGDROP_GESTURE) {
     mReadOnly = false;
@@ -124,17 +123,16 @@ DataTransfer::DataTransfer(nsISupports* 
     mIsCrossDomainSubFrameDrop(aIsCrossDomainSubFrameDrop),
     mClipboardType(aClipboardType),
     mItems(aItems),
     mDragImage(aDragImage),
     mDragImageX(aDragImageX),
     mDragImageY(aDragImageY)
 {
   MOZ_ASSERT(mParent);
-  SetIsDOMBinding();
   // The items are copied from aItems into mItems. There is no need to copy
   // the actual data in the items as the data transfer will be read only. The
   // draggesture and dragstart events are the only times when items are
   // modifiable, but those events should have been using the first constructor
   // above.
   NS_ASSERTION(aEventType != NS_DRAGDROP_GESTURE &&
                aEventType != NS_DRAGDROP_START,
                "invalid event type for DataTransfer constructor");
--- a/dom/events/DeviceMotionEvent.cpp
+++ b/dom/events/DeviceMotionEvent.cpp
@@ -104,17 +104,16 @@ DeviceAcceleration::DeviceAcceleration(D
                                        Nullable<double> aX,
                                        Nullable<double> aY,
                                        Nullable<double> aZ)
   : mOwner(aOwner)
   , mX(aX)
   , mY(aY)
   , mZ(aZ)
 {
-  SetIsDOMBinding();
 }
 
 DeviceAcceleration::~DeviceAcceleration()
 {
 }
 
 /******************************************************************************
  * DeviceRotationRate
@@ -129,17 +128,16 @@ DeviceRotationRate::DeviceRotationRate(D
                                        Nullable<double> aAlpha,
                                        Nullable<double> aBeta,
                                        Nullable<double> aGamma)
   : mOwner(aOwner)
   , mAlpha(aAlpha)
   , mBeta(aBeta)
   , mGamma(aGamma)
 {
-  SetIsDOMBinding();
 }
 
 DeviceRotationRate::~DeviceRotationRate()
 {
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/events/Event.cpp
+++ b/dom/events/Event.cpp
@@ -57,17 +57,16 @@ Event::Event(nsPIDOMWindow* aParent)
   ConstructorInit(static_cast<nsGlobalWindow *>(aParent), nullptr, nullptr);
 }
 
 void
 Event::ConstructorInit(EventTarget* aOwner,
                        nsPresContext* aPresContext,
                        WidgetEvent* aEvent)
 {
-  SetIsDOMBinding();
   SetOwner(aOwner);
   mIsMainThreadEvent = mOwner || NS_IsMainThread();
   if (mIsMainThreadEvent) {
     nsJSContext::LikelyShortLivingObjectCreated();
   }
 
   if (mIsMainThreadEvent && !sReturnHighResTimeStampIsSet) {
     Preferences::AddBoolVarCache(&sReturnHighResTimeStamp,
--- a/dom/events/ImageCaptureError.cpp
+++ b/dom/events/ImageCaptureError.cpp
@@ -19,17 +19,16 @@ NS_INTERFACE_MAP_END
 
 ImageCaptureError::ImageCaptureError(nsISupports* aParent,
                                      uint16_t aCode,
                                      const nsAString& aMessage)
   : mParent(aParent)
   , mMessage(aMessage)
   , mCode(aCode)
 {
-  SetIsDOMBinding();
 }
 
 ImageCaptureError::~ImageCaptureError()
 {
 }
 
 nsISupports*
 ImageCaptureError::GetParentObject() const
--- a/dom/events/PaintRequest.h
+++ b/dom/events/PaintRequest.h
@@ -20,17 +20,16 @@ class DOMRect;
 class PaintRequest MOZ_FINAL : public nsIDOMPaintRequest
                              , public nsWrapperCache
 {
 public:
   explicit PaintRequest(nsIDOMEvent* aParent)
     : mParent(aParent)
   {
     mRequest.mFlags = 0;
-    SetIsDOMBinding();
   }
 
   NS_DECL_CYCLE_COLLECTING_ISUPPORTS
   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(PaintRequest)
   NS_DECL_NSIDOMPAINTREQUEST
 
   virtual JSObject* WrapObject(JSContext* aCx) MOZ_OVERRIDE;
 
@@ -56,17 +55,16 @@ private:
 };
 
 class PaintRequestList MOZ_FINAL : public nsISupports,
                                    public nsWrapperCache
 {
 public:
   explicit PaintRequestList(nsIDOMEvent *aParent) : mParent(aParent)
   {
-    SetIsDOMBinding();
   }
 
   NS_DECL_CYCLE_COLLECTING_ISUPPORTS
   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(PaintRequestList)
   
   virtual JSObject* WrapObject(JSContext* aCx) MOZ_OVERRIDE;
   nsISupports* GetParentObject()
   {
--- a/dom/events/Touch.cpp
+++ b/dom/events/Touch.cpp
@@ -23,17 +23,16 @@ Touch::Touch(EventTarget* aTarget,
              int32_t aScreenY,
              int32_t aClientX,
              int32_t aClientY,
              int32_t aRadiusX,
              int32_t aRadiusY,
              float aRotationAngle,
              float aForce)
 {
-  SetIsDOMBinding();
   mTarget = aTarget;
   mIdentifier = aIdentifier;
   mPagePoint = CSSIntPoint(aPageX, aPageY);
   mScreenPoint = nsIntPoint(aScreenX, aScreenY);
   mClientPoint = CSSIntPoint(aClientX, aClientY);
   mRefPoint = nsIntPoint(0, 0);
   mPointsInitialized = true;
   mRadius.x = aRadiusX;
@@ -47,17 +46,16 @@ Touch::Touch(EventTarget* aTarget,
 }
 
 Touch::Touch(int32_t aIdentifier,
              nsIntPoint aPoint,
              nsIntPoint aRadius,
              float aRotationAngle,
              float aForce)
 {
-  SetIsDOMBinding();
   mIdentifier = aIdentifier;
   mPagePoint = CSSIntPoint(0, 0);
   mScreenPoint = nsIntPoint(0, 0);
   mClientPoint = CSSIntPoint(0, 0);
   mRefPoint = aPoint;
   mPointsInitialized = false;
   mRadius = aRadius;
   mRotationAngle = aRotationAngle;
--- a/dom/events/TouchEvent.h
+++ b/dom/events/TouchEvent.h
@@ -24,25 +24,23 @@ class TouchList MOZ_FINAL : public nsISu
 {
 public:
   NS_DECL_CYCLE_COLLECTING_ISUPPORTS
   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(TouchList)
 
   explicit TouchList(nsISupports* aParent)
     : mParent(aParent)
   {
-    SetIsDOMBinding();
     nsJSContext::LikelyShortLivingObjectCreated();
   }
   TouchList(nsISupports* aParent,
             const WidgetTouchEvent::TouchArray& aTouches)
     : mParent(aParent)
     , mPoints(aTouches)
   {
-    SetIsDOMBinding();
     nsJSContext::LikelyShortLivingObjectCreated();
   }
 
   void Append(Touch* aPoint)
   {
     mPoints.AppendElement(aPoint);
   }
 
--- a/dom/fetch/Headers.cpp
+++ b/dom/fetch/Headers.cpp
@@ -104,17 +104,16 @@ Headers::Constructor(const GlobalObject&
 
   return headers.forget();
 }
 
 Headers::Headers(const Headers& aOther)
   : mOwner(aOther.mOwner)
   , mGuard(aOther.mGuard)
 {
-  SetIsDOMBinding();
   ErrorResult result;
   Fill(aOther, result);
   MOZ_ASSERT(!result.Failed());
 }
 
 void
 Headers::Append(const nsACString& aName, const nsACString& aValue,
                 ErrorResult& aRv)
--- a/dom/fetch/Headers.h
+++ b/dom/fetch/Headers.h
@@ -48,17 +48,16 @@ private:
   HeadersGuardEnum mGuard;
   nsTArray<Entry> mList;
 
 public:
   explicit Headers(nsISupports* aOwner, HeadersGuardEnum aGuard = HeadersGuardEnum::None)
     : mOwner(aOwner)
     , mGuard(aGuard)
   {
-    SetIsDOMBinding();
   }
 
   explicit Headers(const Headers& aOther);
 
   static bool PrefEnabled(JSContext* cx, JSObject* obj);
 
   static already_AddRefed<Headers>
   Constructor(const GlobalObject& aGlobal,
--- a/dom/fetch/Request.cpp
+++ b/dom/fetch/Request.cpp
@@ -39,17 +39,16 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 Request::Request(nsIGlobalObject* aOwner, InternalRequest* aRequest)
   : mOwner(aOwner)
   , mRequest(aRequest)
   , mBodyUsed(false)
 {
-  SetIsDOMBinding();
 }
 
 Request::~Request()
 {
 }
 
 already_AddRefed<InternalRequest>
 Request::GetInternalRequest()
--- a/dom/fetch/Response.cpp
+++ b/dom/fetch/Response.cpp
@@ -24,17 +24,16 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 Response::Response(nsISupports* aOwner)
   : mOwner(aOwner)
   , mHeaders(new Headers(aOwner))
 {
-  SetIsDOMBinding();
 }
 
 Response::~Response()
 {
 }
 
 /* static */ already_AddRefed<Response>
 Response::Error(const GlobalObject& aGlobal)
--- a/dom/filesystem/Directory.cpp
+++ b/dom/filesystem/Directory.cpp
@@ -58,18 +58,16 @@ Directory::GetRoot(FileSystemBase* aFile
 Directory::Directory(FileSystemBase* aFileSystem,
                      const nsAString& aPath)
   : mFileSystem(aFileSystem)
   , mPath(aPath)
 {
   MOZ_ASSERT(aFileSystem, "aFileSystem should not be null.");
   // Remove the trailing "/".
   mPath.Trim(FILESYSTEM_DOM_PATH_SEPARATOR, false, true);
-
-  SetIsDOMBinding();
 }
 
 Directory::~Directory()
 {
 }
 
 nsPIDOMWindow*
 Directory::GetParentObject() const
--- a/dom/fmradio/FMRadio.cpp
+++ b/dom/fmradio/FMRadio.cpp
@@ -107,18 +107,16 @@ NS_IMPL_ISUPPORTS_INHERITED0(FMRadioRequ
 FMRadio::FMRadio()
   : mHeadphoneState(SWITCH_STATE_OFF)
   , mRdsGroupMask(0)
   , mAudioChannelAgentEnabled(false)
   , mHasInternalAntenna(false)
   , mIsShutdown(false)
 {
   LOG("FMRadio is initialized.");
-
-  SetIsDOMBinding();
 }
 
 FMRadio::~FMRadio()
 {
 }
 
 void
 FMRadio::Init(nsPIDOMWindow *aWindow)
--- a/dom/gamepad/Gamepad.cpp
+++ b/dom/gamepad/Gamepad.cpp
@@ -28,17 +28,16 @@ Gamepad::Gamepad(nsISupports* aParent,
   : mParent(aParent),
     mID(aID),
     mIndex(aIndex),
     mMapping(aMapping),
     mConnected(true),
     mButtons(aNumButtons),
     mAxes(aNumAxes)
 {
-  SetIsDOMBinding();
   for (unsigned i = 0; i < aNumButtons; i++) {
     mButtons.InsertElementAt(i, new GamepadButton(mParent));
   }
   mAxes.InsertElementsAt(0, aNumAxes, 0.0f);
 }
 
 void
 Gamepad::SetIndex(uint32_t aIndex)
--- a/dom/gamepad/GamepadButton.h
+++ b/dom/gamepad/GamepadButton.h
@@ -15,17 +15,16 @@ namespace dom {
 class GamepadButton : public nsISupports,
                       public nsWrapperCache
 {
 public:
   explicit GamepadButton(nsISupports* aParent) : mParent(aParent),
                                                  mPressed(false),
                                                  mValue(0)
   {
-    SetIsDOMBinding();
   }
 
   NS_DECL_CYCLE_COLLECTING_ISUPPORTS
   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(GamepadButton)
 
   nsISupports* GetParentObject() const
   {
     return mParent;
--- a/dom/geolocation/nsGeoPosition.cpp
+++ b/dom/geolocation/nsGeoPosition.cpp
@@ -153,17 +153,16 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 Position::Position(nsISupports* aParent, nsIDOMGeoPosition* aGeoPosition)
   : mParent(aParent)
   , mGeoPosition(aGeoPosition)
 {
-  SetIsDOMBinding();
 }
 
 Position::~Position()
 {
 }
 
 nsISupports*
 Position::GetParentObject() const
@@ -207,17 +206,16 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 Coordinates::Coordinates(Position* aPosition, nsIDOMGeoPositionCoords* aCoords)
   : mPosition(aPosition)
   , mCoords(aCoords)
 {
-  SetIsDOMBinding();
 }
 
 Coordinates::~Coordinates()
 {
 }
 
 Position*
 Coordinates::GetParentObject() const
--- a/dom/geolocation/nsGeolocation.cpp
+++ b/dom/geolocation/nsGeolocation.cpp
@@ -238,17 +238,16 @@ NS_INTERFACE_MAP_END
 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(PositionError, mParent)
 NS_IMPL_CYCLE_COLLECTING_ADDREF(PositionError)
 NS_IMPL_CYCLE_COLLECTING_RELEASE(PositionError)
 
 PositionError::PositionError(Geolocation* aParent, int16_t aCode)
   : mCode(aCode)
   , mParent(aParent)
 {
-  SetIsDOMBinding();
 }
 
 PositionError::~PositionError(){}
 
 
 NS_IMETHODIMP
 PositionError::GetCode(int16_t *aCode)
 {
@@ -1014,17 +1013,16 @@ NS_IMPL_CYCLE_COLLECTING_RELEASE(Geoloca
 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(Geolocation,
                                       mPendingCallbacks,
                                       mWatchingCallbacks,
                                       mPendingRequests)
 
 Geolocation::Geolocation()
 : mLastWatchId(0)
 {
-  SetIsDOMBinding();
 }
 
 Geolocation::~Geolocation()
 {
   if (mService) {
     Shutdown();
   }
 }
--- a/dom/icc/Icc.cpp
+++ b/dom/icc/Icc.cpp
@@ -24,17 +24,16 @@ NS_INTERFACE_MAP_END_INHERITING(DOMEvent
 
 NS_IMPL_ADDREF_INHERITED(Icc, DOMEventTargetHelper)
 NS_IMPL_RELEASE_INHERITED(Icc, DOMEventTargetHelper)
 
 Icc::Icc(nsPIDOMWindow* aWindow, long aClientId, nsIIccInfo* aIccInfo)
   : mLive(true)
   , mClientId(aClientId)
 {
-  SetIsDOMBinding();
   BindToOwner(aWindow);
 
   mProvider = do_GetService(NS_RILCONTENTHELPER_CONTRACTID);
 
   if (aIccInfo) {
     aIccInfo->GetIccid(mIccId);
     UpdateIccInfo(aIccInfo);
   }
--- a/dom/icc/IccInfo.cpp
+++ b/dom/icc/IccInfo.cpp
@@ -30,17 +30,16 @@ NS_IMPL_CYCLE_COLLECTING_RELEASE(IccInfo
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(IccInfo)
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 IccInfo::IccInfo(nsPIDOMWindow* aWindow)
   : mWindow(aWindow)
 {
-  SetIsDOMBinding();
 }
 
 void
 IccInfo::Update(nsIIccInfo* aInfo)
 {
   mIccInfo = aInfo;
 }
 
@@ -144,17 +143,16 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_
 NS_INTERFACE_MAP_END_INHERITING(IccInfo)
 
 NS_IMPL_ADDREF_INHERITED(GsmIccInfo, IccInfo)
 NS_IMPL_RELEASE_INHERITED(GsmIccInfo, IccInfo)
 
 GsmIccInfo::GsmIccInfo(nsPIDOMWindow* aWindow)
   : IccInfo(aWindow)
 {
-  SetIsDOMBinding();
 }
 
 void
 GsmIccInfo::Update(nsIGsmIccInfo* aInfo)
 {
   IccInfo::Update(aInfo);
   mGsmIccInfo = aInfo;
 }
@@ -184,17 +182,16 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_
 NS_INTERFACE_MAP_END_INHERITING(IccInfo)
 
 NS_IMPL_ADDREF_INHERITED(CdmaIccInfo, IccInfo)
 NS_IMPL_RELEASE_INHERITED(CdmaIccInfo, IccInfo)
 
 CdmaIccInfo::CdmaIccInfo(nsPIDOMWindow* aWindow)
   : IccInfo(aWindow)
 {
-  SetIsDOMBinding();
 }
 
 void
 CdmaIccInfo::Update(nsICdmaIccInfo* aInfo)
 {
   IccInfo::Update(aInfo);
   mCdmaIccInfo = aInfo;
 }
--- a/dom/indexedDB/IDBCursor.cpp
+++ b/dom/indexedDB/IDBCursor.cpp
@@ -55,18 +55,16 @@ IDBCursor::IDBCursor(Type aType,
                 aSourceObjectStore);
   MOZ_ASSERT_IF(aType == Type_Index || aType == Type_IndexKey, aSourceIndex);
   MOZ_ASSERT(aTransaction);
   aTransaction->AssertIsOnOwningThread();
   MOZ_ASSERT(aBackgroundActor);
   MOZ_ASSERT(!aKey.IsUnset());
   MOZ_ASSERT(mScriptOwner);
 
-  SetIsDOMBinding();
-
   if (mScriptOwner) {
     mozilla::HoldJSObjects(this);
     mRooted = true;
   }
 }
 
 IDBCursor::~IDBCursor()
 {
--- a/dom/indexedDB/IDBDatabase.cpp
+++ b/dom/indexedDB/IDBDatabase.cpp
@@ -200,18 +200,16 @@ IDBDatabase::IDBDatabase(IDBWrapperCache
   , mClosed(false)
   , mInvalidated(false)
 {
   MOZ_ASSERT(aOwnerCache);
   MOZ_ASSERT(aFactory);
   aFactory->AssertIsOnOwningThread();
   MOZ_ASSERT(aActor);
   MOZ_ASSERT(aSpec);
-
-  SetIsDOMBinding();
 }
 
 IDBDatabase::~IDBDatabase()
 {
   AssertIsOnOwningThread();
   MOZ_ASSERT(!mBackgroundActor);
 }
 
--- a/dom/indexedDB/IDBEvents.h
+++ b/dom/indexedDB/IDBEvents.h
@@ -106,17 +106,16 @@ public:
   virtual JSObject*
   WrapObject(JSContext* aCx) MOZ_OVERRIDE;
 
 private:
   IDBVersionChangeEvent(EventTarget* aOwner, uint64_t aOldVersion)
     : Event(aOwner, nullptr, nullptr)
     , mOldVersion(aOldVersion)
   {
-    SetIsDOMBinding();
   }
 
   ~IDBVersionChangeEvent()
   { }
 
   static already_AddRefed<IDBVersionChangeEvent>
   CreateInternal(EventTarget* aOwner,
                  const nsAString& aName,
--- a/dom/indexedDB/IDBFactory.cpp
+++ b/dom/indexedDB/IDBFactory.cpp
@@ -113,18 +113,16 @@ IDBFactory::IDBFactory()
   , mRootedOwningObject(false)
   , mBackgroundActorFailed(false)
   , mPrivateBrowsingMode(false)
 {
 #ifdef DEBUG
   mOwningThread = PR_GetCurrentThread();
 #endif
   AssertIsOnOwningThread();
-
-  SetIsDOMBinding();
 }
 
 IDBFactory::~IDBFactory()
 {
   MOZ_ASSERT_IF(mBackgroundActorFailed, !mBackgroundActor);
 
   if (mRootedOwningObject) {
     mOwningObject = nullptr;
--- a/dom/indexedDB/IDBFileHandle.cpp
+++ b/dom/indexedDB/IDBFileHandle.cpp
@@ -27,17 +27,16 @@ NS_DEFINE_CID(kAppShellCID2, NS_APPSHELL
 } // anonymous namespace
 
 IDBFileHandle::IDBFileHandle(FileMode aMode,
                              RequestMode aRequestMode,
                              IDBMutableFile* aMutableFile)
   : FileHandleBase(aMode, aRequestMode)
   , mMutableFile(aMutableFile)
 {
-  SetIsDOMBinding();
 }
 
 IDBFileHandle::~IDBFileHandle()
 {
 }
 
 // static
 already_AddRefed<IDBFileHandle>
--- a/dom/indexedDB/IDBIndex.cpp
+++ b/dom/indexedDB/IDBIndex.cpp
@@ -51,18 +51,16 @@ IDBIndex::IDBIndex(IDBObjectStore* aObje
   , mCachedKeyPath(JSVAL_VOID)
   , mMetadata(aMetadata)
   , mId(aMetadata->id())
   , mRooted(false)
 {
   MOZ_ASSERT(aObjectStore);
   aObjectStore->AssertIsOnOwningThread();
   MOZ_ASSERT(aMetadata);
-
-  SetIsDOMBinding();
 }
 
 IDBIndex::~IDBIndex()
 {
   AssertIsOnOwningThread();
 
   if (mRooted) {
     mCachedKeyPath = JSVAL_VOID;
--- a/dom/indexedDB/IDBObjectStore.cpp
+++ b/dom/indexedDB/IDBObjectStore.cpp
@@ -864,18 +864,16 @@ IDBObjectStore::IDBObjectStore(IDBTransa
   , mCachedKeyPath(JSVAL_VOID)
   , mSpec(aSpec)
   , mId(aSpec->metadata().id())
   , mRooted(false)
 {
   MOZ_ASSERT(aTransaction);
   aTransaction->AssertIsOnOwningThread();
   MOZ_ASSERT(aSpec);
-
-  SetIsDOMBinding();
 }
 
 IDBObjectStore::~IDBObjectStore()
 {
   AssertIsOnOwningThread();
 
   if (mRooted) {
     mCachedKeyPath = JSVAL_VOID;
--- a/dom/media/GetUserMediaRequest.cpp
+++ b/dom/media/GetUserMediaRequest.cpp
@@ -18,17 +18,16 @@ GetUserMediaRequest::GetUserMediaRequest
     const MediaStreamConstraints& aConstraints,
     bool aIsSecure)
   : mInnerWindowID(aInnerWindow->WindowID())
   , mOuterWindowID(aInnerWindow->GetOuterWindow()->WindowID())
   , mCallID(aCallID)
   , mConstraints(new MediaStreamConstraints(aConstraints))
   , mIsSecure(aIsSecure)
 {
-  SetIsDOMBinding();
 }
 
 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE_0(GetUserMediaRequest)
 NS_IMPL_CYCLE_COLLECTING_ADDREF(GetUserMediaRequest)
 NS_IMPL_CYCLE_COLLECTING_RELEASE(GetUserMediaRequest)
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(GetUserMediaRequest)
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
--- a/dom/mobileconnection/MobileCellInfo.cpp
+++ b/dom/mobileconnection/MobileCellInfo.cpp
@@ -25,17 +25,16 @@ MobileCellInfo::MobileCellInfo(nsPIDOMWi
   , mGsmLocationAreaCode(-1)
   , mGsmCellId(-1)
   , mCdmaBaseStationId(-1)
   , mCdmaBaseStationLatitude(-1)
   , mCdmaBaseStationLongitude(-1)
   , mCdmaSystemId(-1)
   , mCdmaNetworkId(-1)
 {
-  SetIsDOMBinding();
 }
 
 MobileCellInfo::MobileCellInfo(int32_t aGsmLocationAreaCode,
                                int64_t aGsmCellId,
                                int32_t aCdmaBaseStationId,
                                int32_t aCdmaBaseStationLatitude,
                                int32_t aCdmaBaseStationLongitude,
                                int32_t aCdmaSystemId,
--- a/dom/mobileconnection/MobileConnection.cpp
+++ b/dom/mobileconnection/MobileConnection.cpp
@@ -102,18 +102,16 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_
 NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper)
 
 NS_IMPL_ADDREF_INHERITED(MobileConnection, DOMEventTargetHelper)
 NS_IMPL_RELEASE_INHERITED(MobileConnection, DOMEventTargetHelper)
 
 MobileConnection::MobileConnection(nsPIDOMWindow* aWindow, uint32_t aClientId)
   : DOMEventTargetHelper(aWindow)
 {
-  SetIsDOMBinding();
-
   nsCOMPtr<nsIMobileConnectionService> service =
     do_GetService(NS_MOBILE_CONNECTION_SERVICE_CONTRACTID);
 
   // Not being able to acquire the service isn't fatal since we check
   // for it explicitly below.
   if (!service) {
     NS_WARNING("Could not acquire nsIMobileConnectionService!");
     return;
--- a/dom/mobileconnection/MobileConnectionArray.cpp
+++ b/dom/mobileconnection/MobileConnectionArray.cpp
@@ -29,17 +29,16 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 MobileConnectionArray::MobileConnectionArray(nsPIDOMWindow* aWindow)
   : mLengthInitialized(false)
   , mWindow(aWindow)
 {
-  SetIsDOMBinding();
 }
 
 MobileConnectionArray::~MobileConnectionArray()
 {
 }
 
 nsPIDOMWindow*
 MobileConnectionArray::GetParentObject() const
--- a/dom/mobileconnection/MobileConnectionInfo.cpp
+++ b/dom/mobileconnection/MobileConnectionInfo.cpp
@@ -53,17 +53,16 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
 NS_INTERFACE_MAP_END
 
 MobileConnectionInfo::MobileConnectionInfo(nsPIDOMWindow* aWindow)
   : mConnected(false)
   , mEmergencyCallsOnly(false)
   , mRoaming(false)
   , mWindow(aWindow)
 {
-  SetIsDOMBinding();
 }
 
 MobileConnectionInfo::MobileConnectionInfo(const nsAString& aState,
                                            bool aConnected,
                                            bool aEmergencyCallsOnly,
                                            bool aRoaming,
                                            nsIMobileNetworkInfo* aNetworkInfo,
                                            const nsAString& aType,
--- a/dom/mobileconnection/MobileNetworkInfo.cpp
+++ b/dom/mobileconnection/MobileNetworkInfo.cpp
@@ -17,33 +17,31 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
   NS_INTERFACE_MAP_ENTRY(nsIMobileNetworkInfo)
 NS_INTERFACE_MAP_END
 
 MobileNetworkInfo::MobileNetworkInfo(nsPIDOMWindow* aWindow)
   : mWindow(aWindow)
 {
-  SetIsDOMBinding();
 }
 
 MobileNetworkInfo::MobileNetworkInfo(const nsAString& aShortName,
                                      const nsAString& aLongName,
                                      const nsAString& aMcc,
                                      const nsAString& aMnc,
                                      const nsAString& aState)
   : mShortName(aShortName)
   , mLongName(aLongName)
   , mMcc(aMcc)
   , mMnc(aMnc)
   , mState(aState)
 {
   // The parent object is nullptr when MobileNetworkInfo is created by this way.
   // And it won't be exposed to web content.
-  SetIsDOMBinding();
 }
 
 void
 MobileNetworkInfo::Update(nsIMobileNetworkInfo* aInfo)
 {
   if (!aInfo) {
     return;
   }
--- a/dom/nfc/MozNDEFRecord.cpp
+++ b/dom/nfc/MozNDEFRecord.cpp
@@ -145,17 +145,16 @@ MozNDEFRecord::MozNDEFRecord(JSContext* 
   }
 
   if (aOptions.mPayload.WasPassed()) {
     const Uint8Array& payload = aOptions.mPayload.Value();
     payload.ComputeLengthAndData();
     mPayload = Uint8Array::Create(aCx, this, payload.Length(), payload.Data());
   }
 
-  SetIsDOMBinding();
   HoldData();
 }
 
 MozNDEFRecord::~MozNDEFRecord()
 {
   DropData();
 }
 
--- a/dom/notification/DesktopNotification.h
+++ b/dom/notification/DesktopNotification.h
@@ -46,18 +46,16 @@ public:
     MOZ_ASSERT(aWindow);
     mOwner = aWindow;
 
     nsCOMPtr<nsIScriptObjectPrincipal> sop = do_QueryInterface(aWindow);
     MOZ_ASSERT(sop);
 
     mPrincipal = sop->GetPrincipal();
     MOZ_ASSERT(mPrincipal);
-
-    SetIsDOMBinding();
   }
 
   void Shutdown() {
     mOwner = nullptr;
   }
 
   nsPIDOMWindow* GetParentObject() const
   {
--- a/dom/power/PowerManager.h
+++ b/dom/power/PowerManager.h
@@ -24,21 +24,16 @@ namespace dom {
 class PowerManager MOZ_FINAL : public nsIDOMMozWakeLockListener
                              , public nsWrapperCache
 {
 public:
   NS_DECL_CYCLE_COLLECTING_ISUPPORTS
   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(PowerManager)
   NS_DECL_NSIDOMMOZWAKELOCKLISTENER
 
-  PowerManager()
-  {
-    SetIsDOMBinding();
-  }
-
   nsresult Init(nsIDOMWindow *aWindow);
   nsresult Shutdown();
 
   static already_AddRefed<PowerManager> CreateInstance(nsPIDOMWindow*);
 
   // WebIDL
   nsIDOMWindow* GetParentObject() const
   {
--- a/dom/power/WakeLock.cpp
+++ b/dom/power/WakeLock.cpp
@@ -34,17 +34,16 @@ NS_INTERFACE_MAP_END
 NS_IMPL_CYCLE_COLLECTING_ADDREF(WakeLock)
 NS_IMPL_CYCLE_COLLECTING_RELEASE(WakeLock)
 
 WakeLock::WakeLock()
   : mLocked(false)
   , mHidden(true)
   , mContentParentID(CONTENT_PROCESS_ID_UNKNOWN)
 {
-  SetIsDOMBinding();
 }
 
 WakeLock::~WakeLock()
 {
   DoUnlock();
   DetachEventListener();
 }
 
--- a/dom/promise/Promise.cpp
+++ b/dom/promise/Promise.cpp
@@ -302,17 +302,16 @@ Promise::Promise(nsIGlobalObject* aGloba
   , mState(Pending)
   , mTaskPending(false)
   , mHadRejectCallback(false)
   , mResolvePending(false)
 {
   MOZ_ASSERT(mGlobal);
 
   mozilla::HoldJSObjects(this);
-  SetIsDOMBinding();
 }
 
 Promise::~Promise()
 {
   MaybeReportRejectedOnce();
   mozilla::DropJSObjects(this);
 }
 
--- a/dom/smil/TimeEvent.cpp
+++ b/dom/smil/TimeEvent.cpp
@@ -14,17 +14,16 @@ namespace dom {
 
 TimeEvent::TimeEvent(EventTarget* aOwner,
                      nsPresContext* aPresContext,
                      InternalSMILTimeEvent* aEvent)
   : Event(aOwner, aPresContext,
           aEvent ? aEvent : new InternalSMILTimeEvent(false, 0))
   , mDetail(mEvent->AsSMILTimeEvent()->detail)
 {
-  SetIsDOMBinding();
   if (aEvent) {
     mEventIsInternal = false;
   } else {
     mEventIsInternal = true;
   }
 
   if (mPresContext) {
     nsCOMPtr<nsIDocShell> docShell = mPresContext->GetDocShell();
--- a/dom/speakermanager/SpeakerManager.cpp
+++ b/dom/speakermanager/SpeakerManager.cpp
@@ -20,17 +20,16 @@ NS_IMPL_QUERY_INTERFACE_INHERITED(Speake
                                   nsIDOMEventListener)
 NS_IMPL_ADDREF_INHERITED(SpeakerManager, DOMEventTargetHelper)
 NS_IMPL_RELEASE_INHERITED(SpeakerManager, DOMEventTargetHelper)
 
 SpeakerManager::SpeakerManager()
   : mForcespeaker(false)
   , mVisible(false)
 {
-  SetIsDOMBinding();
   SpeakerManagerService *service =
     SpeakerManagerService::GetOrCreateSpeakerManagerService();
   MOZ_ASSERT(service);
   service->RegisterSpeakerManager(this);
 }
 
 SpeakerManager::~SpeakerManager()
 {
--- a/dom/storage/DOMStorage.cpp
+++ b/dom/storage/DOMStorage.cpp
@@ -47,17 +47,16 @@ DOMStorage::DOMStorage(nsIDOMWindow* aWi
 , mManager(aManager)
 , mCache(aCache)
 , mDocumentURI(aDocumentURI)
 , mPrincipal(aPrincipal)
 , mIsPrivate(aIsPrivate)
 , mIsSessionOnly(false)
 {
   mCache->Preload();
-  SetIsDOMBinding();
 }
 
 DOMStorage::~DOMStorage()
 {
   mCache->KeepAlive();
 }
 
 /* virtual */ JSObject*
--- a/dom/system/gonk/AudioChannelManager.cpp
+++ b/dom/system/gonk/AudioChannelManager.cpp
@@ -25,17 +25,16 @@ NS_IMPL_ADDREF_INHERITED(AudioChannelMan
 NS_IMPL_RELEASE_INHERITED(AudioChannelManager, DOMEventTargetHelper)
 
 AudioChannelManager::AudioChannelManager()
   : mState(SWITCH_STATE_UNKNOWN)
   , mVolumeChannel(-1)
 {
   RegisterSwitchObserver(SWITCH_HEADPHONES, this);
   mState = GetCurrentSwitchState(SWITCH_HEADPHONES);
-  SetIsDOMBinding();
 }
 
 AudioChannelManager::~AudioChannelManager()
 {
   UnregisterSwitchObserver(SWITCH_HEADPHONES, this);
 
   nsCOMPtr<EventTarget> target = do_QueryInterface(GetOwner());
   NS_ENSURE_TRUE_VOID(target);
--- a/dom/telephony/CallsList.cpp
+++ b/dom/telephony/CallsList.cpp
@@ -24,18 +24,16 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 CallsList::CallsList(Telephony* aTelephony, TelephonyCallGroup* aGroup)
 : mTelephony(aTelephony), mGroup(aGroup)
 {
   MOZ_ASSERT(mTelephony);
-
-  SetIsDOMBinding();
 }
 
 CallsList::~CallsList()
 {
 }
 
 nsPIDOMWindow*
 CallsList::GetParentObject() const
--- a/dom/telephony/TelephonyCallId.cpp
+++ b/dom/telephony/TelephonyCallId.cpp
@@ -14,17 +14,16 @@ namespace dom {
 TelephonyCallId::TelephonyCallId(nsPIDOMWindow* aWindow,
                                  const nsAString& aNumber,
                                  uint16_t aNumberPresentation,
                                  const nsAString& aName,
                                  uint16_t aNamePresentation)
 : mWindow(aWindow), mNumber(aNumber), mNumberPresentation(aNumberPresentation),
   mName(aName), mNamePresentation(aNamePresentation)
 {
-  SetIsDOMBinding();
 }
 
 TelephonyCallId::~TelephonyCallId()
 {
 }
 
 JSObject*
 TelephonyCallId::WrapObject(JSContext* aCx)
--- a/dom/time/TimeManager.h
+++ b/dom/time/TimeManager.h
@@ -31,17 +31,16 @@ public:
   }
 
   NS_DECL_CYCLE_COLLECTING_ISUPPORTS
   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(TimeManager)
 
   explicit TimeManager(nsPIDOMWindow* aWindow)
     : mWindow(aWindow)
   {
-    SetIsDOMBinding();
   }
 
   nsPIDOMWindow* GetParentObject() const
   {
     return mWindow;
   }
   JSObject* WrapObject(JSContext* aCx);
 
--- a/dom/voicemail/VoicemailStatus.cpp
+++ b/dom/voicemail/VoicemailStatus.cpp
@@ -26,18 +26,16 @@ NS_INTERFACE_MAP_END
 
 VoicemailStatus::VoicemailStatus(nsISupports* aParent,
                                  nsIVoicemailProvider* aProvider)
   : mParent(aParent)
   , mProvider(aProvider)
 {
   MOZ_ASSERT(mParent);
   MOZ_ASSERT(mProvider);
-
-  SetIsDOMBinding();
 }
 
 JSObject*
 VoicemailStatus::WrapObject(JSContext* aCx)
 {
   return MozVoicemailStatusBinding::Wrap(aCx, this);
 }
 
--- a/dom/workers/Location.h
+++ b/dom/workers/Location.h
@@ -39,17 +39,16 @@ class WorkerLocation MOZ_FINAL : public 
     , mHostname(aHostname)
     , mPort(aPort)
     , mPathname(aPathname)
     , mSearch(aSearch)
     , mHash(aHash)
     , mOrigin(aOrigin)
   {
     MOZ_COUNT_CTOR(WorkerLocation);
-    SetIsDOMBinding();
   }
 
   ~WorkerLocation()
   {
     MOZ_COUNT_DTOR(WorkerLocation);
   }
 
 public:
--- a/dom/workers/MessagePort.cpp
+++ b/dom/workers/MessagePort.cpp
@@ -76,24 +76,22 @@ BEGIN_WORKERS_NAMESPACE
 
 MessagePort::MessagePort(nsPIDOMWindow* aWindow, SharedWorker* aSharedWorker,
                          uint64_t aSerial)
 : MessagePortBase(aWindow), mSharedWorker(aSharedWorker),
   mWorkerPrivate(nullptr), mSerial(aSerial), mStarted(false)
 {
   AssertIsOnMainThread();
   MOZ_ASSERT(aSharedWorker);
-  SetIsDOMBinding();
 }
 
 MessagePort::MessagePort(WorkerPrivate* aWorkerPrivate, uint64_t aSerial)
 : mWorkerPrivate(aWorkerPrivate), mSerial(aSerial), mStarted(false)
 {
   aWorkerPrivate->AssertIsOnWorkerThread();
-  SetIsDOMBinding();
 }
 
 MessagePort::~MessagePort()
 {
   Close();
 }
 
 void
--- a/dom/workers/Navigator.h
+++ b/dom/workers/Navigator.h
@@ -31,17 +31,16 @@ class WorkerNavigator MOZ_FINAL : public
   bool mOnline;
 
   WorkerNavigator(const NavigatorProperties& aProperties,
                   bool aOnline)
     : mProperties(aProperties)
     , mOnline(aOnline)
   {
     MOZ_COUNT_CTOR(WorkerNavigator);
-    SetIsDOMBinding();
   }
 
   ~WorkerNavigator()
   {
     MOZ_COUNT_DTOR(WorkerNavigator);
   }
 
 public:
--- a/dom/workers/Performance.cpp
+++ b/dom/workers/Performance.cpp
@@ -13,17 +13,16 @@ NS_IMPL_CYCLE_COLLECTION_ROOT_NATIVE(Per
 NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(Performance, Release)
 
 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE_0(Performance)
 
 Performance::Performance(WorkerPrivate* aWorkerPrivate)
   : mWorkerPrivate(aWorkerPrivate)
 {
   mWorkerPrivate->AssertIsOnWorkerThread();
-  SetIsDOMBinding();
 }
 
 Performance::~Performance()
 {
   mWorkerPrivate->AssertIsOnWorkerThread();
 }
 
 JSObject*
--- a/dom/workers/WorkerPrivate.cpp
+++ b/dom/workers/WorkerPrivate.cpp
@@ -2130,18 +2130,16 @@ WorkerPrivateParent<Derived>::WorkerPriv
   mMemoryReportCondVar(mMutex, "WorkerPrivateParent Memory Report CondVar"),
   mParent(aParent), mScriptURL(aScriptURL),
   mSharedWorkerName(aSharedWorkerName), mBusyCount(0), mMessagePortSerial(0),
   mParentStatus(Pending), mParentSuspended(false),
   mIsChromeWorker(aIsChromeWorker), mMainThreadObjectsForgotten(false),
   mWorkerType(aWorkerType),
   mCreationTimeStamp(TimeStamp::Now())
 {
-  SetIsDOMBinding();
-
   MOZ_ASSERT_IF(!IsDedicatedWorker(),
                 !aSharedWorkerName.IsVoid() && NS_IsMainThread());
   MOZ_ASSERT_IF(IsDedicatedWorker(), aSharedWorkerName.IsEmpty());
 
   if (aLoadInfo.mWindow) {
     AssertIsOnMainThread();
     MOZ_ASSERT(aLoadInfo.mWindow->IsInnerWindow(),
                "Should have inner window here!");
--- a/dom/workers/WorkerScope.cpp
+++ b/dom/workers/WorkerScope.cpp
@@ -42,18 +42,16 @@ using namespace mozilla::dom;
 USING_WORKERS_NAMESPACE
 
 BEGIN_WORKERS_NAMESPACE
 
 WorkerGlobalScope::WorkerGlobalScope(WorkerPrivate* aWorkerPrivate)
 : mWorkerPrivate(aWorkerPrivate)
 {
   mWorkerPrivate->AssertIsOnWorkerThread();
-
-  SetIsDOMBinding();
 }
 
 WorkerGlobalScope::~WorkerGlobalScope()
 {
   mWorkerPrivate->AssertIsOnWorkerThread();
 }
 
 NS_IMPL_CYCLE_COLLECTION_CLASS(WorkerGlobalScope)
--- a/dom/workers/XMLHttpRequest.cpp
+++ b/dom/workers/XMLHttpRequest.cpp
@@ -1570,18 +1570,16 @@ SendRunnable::MainThreadRun()
 XMLHttpRequest::XMLHttpRequest(WorkerPrivate* aWorkerPrivate)
 : mWorkerPrivate(aWorkerPrivate),
   mResponseType(XMLHttpRequestResponseType::Text), mTimeout(0),
   mRooted(false), mBackgroundRequest(false), mWithCredentials(false),
   mCanceled(false), mMozAnon(false), mMozSystem(false)
 {
   mWorkerPrivate->AssertIsOnWorkerThread();
 
-  SetIsDOMBinding();
-
   mozilla::HoldJSObjects(this);
 }
 
 XMLHttpRequest::~XMLHttpRequest()
 {
   mWorkerPrivate->AssertIsOnWorkerThread();
 
   ReleaseProxy(XHRIsGoingAway);
--- a/dom/workers/XMLHttpRequestUpload.cpp
+++ b/dom/workers/XMLHttpRequestUpload.cpp
@@ -9,17 +9,16 @@
 
 #include "mozilla/dom/XMLHttpRequestUploadBinding.h"
 
 USING_WORKERS_NAMESPACE
 
 XMLHttpRequestUpload::XMLHttpRequestUpload(XMLHttpRequest* aXHR)
 : mXHR(aXHR)
 {
-  SetIsDOMBinding();
 }
 
 XMLHttpRequestUpload::~XMLHttpRequestUpload()
 {
 }
 
 NS_IMPL_ADDREF_INHERITED(XMLHttpRequestUpload, nsXHREventTarget)
 NS_IMPL_RELEASE_INHERITED(XMLHttpRequestUpload, nsXHREventTarget)
--- a/dom/xbl/XBLChildrenElement.h
+++ b/dom/xbl/XBLChildrenElement.h
@@ -147,17 +147,16 @@ private:
 
 class nsAnonymousContentList : public nsINodeList
 {
 public:
   explicit nsAnonymousContentList(nsIContent* aParent)
     : mParent(aParent)
   {
     MOZ_COUNT_CTOR(nsAnonymousContentList);
-    SetIsDOMBinding();
   }
 
   NS_DECL_CYCLE_COLLECTING_ISUPPORTS
   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(nsAnonymousContentList)
   // nsIDOMNodeList interface
   NS_DECL_NSIDOMNODELIST
 
   // nsINodeList interface
--- a/dom/xslt/xpath/XPathResult.cpp
+++ b/dom/xslt/xpath/XPathResult.cpp
@@ -24,30 +24,28 @@ XPathResult::XPathResult(nsINode* aParen
     : mParent(aParent),
       mDocument(nullptr),
       mCurrentPos(0),
       mResultType(ANY_TYPE),
       mInvalidIteratorState(true),
       mBooleanResult(false),
       mNumberResult(0)
 {
-    SetIsDOMBinding();
 }
 
 XPathResult::XPathResult(const XPathResult &aResult)
     : mParent(aResult.mParent),
       mResult(aResult.mResult),
       mResultNodes(aResult.mResultNodes),
       mDocument(aResult.mDocument),
       mContextNode(aResult.mContextNode),
       mCurrentPos(0),
       mResultType(aResult.mResultType),
       mInvalidIteratorState(aResult.mInvalidIteratorState)
 {
-    SetIsDOMBinding();
     if (mDocument) {
         mDocument->AddMutationObserver(this);
     }
 }
 
 XPathResult::~XPathResult()
 {
     RemoveObserver();
--- a/layout/generic/nsSelection.cpp
+++ b/layout/generic/nsSelection.cpp
@@ -3105,27 +3105,25 @@ nsFrameSelection::DisconnectFromPresShel
 // note: this can return a nil anchor node
 
 Selection::Selection()
   : mCachedOffsetForFrame(nullptr)
   , mDirection(eDirNext)
   , mType(nsISelectionController::SELECTION_NORMAL)
   , mApplyUserSelectStyle(false)
 {
-  SetIsDOMBinding();
 }
 
 Selection::Selection(nsFrameSelection* aList)
   : mFrameSelection(aList)
   , mCachedOffsetForFrame(nullptr)
   , mDirection(eDirNext)
   , mType(nsISelectionController::SELECTION_NORMAL)
   , mApplyUserSelectStyle(false)
 {
-  SetIsDOMBinding();
 }
 
 Selection::~Selection()
 {
   setAnchorFocusRange(-1);
 
   uint32_t count = mRanges.Length();
   for (uint32_t i = 0; i < count; ++i) {
--- a/layout/style/CSSRuleList.h
+++ b/layout/style/CSSRuleList.h
@@ -19,21 +19,16 @@ namespace dom {
 #define NS_ICSSRULELIST_IID \
 { 0x56ac8d1c, 0xc1ed, 0x45fe, \
   { 0x9a, 0x4d, 0x3a, 0xdc, 0xf9, 0xd1, 0xb9, 0x3f } }
 
 class CSSRuleList : public nsIDOMCSSRuleList
                   , public nsWrapperCache
 {
 public:
-  CSSRuleList()
-  {
-    SetIsDOMBinding();
-  }
-
   NS_DECLARE_STATIC_IID_ACCESSOR(NS_ICSSRULELIST_IID)
 
   NS_DECL_CYCLE_COLLECTING_ISUPPORTS
   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(CSSRuleList)
 
   virtual CSSStyleSheet* GetParentObject() = 0;
   virtual JSObject* WrapObject(JSContext* aCx) MOZ_OVERRIDE MOZ_FINAL;
 
--- a/layout/style/CSSStyleSheet.cpp
+++ b/layout/style/CSSStyleSheet.cpp
@@ -485,17 +485,16 @@ NS_INTERFACE_MAP_END
 NS_IMPL_CYCLE_COLLECTING_ADDREF(nsMediaList)
 NS_IMPL_CYCLE_COLLECTING_RELEASE(nsMediaList)
 
 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE_0(nsMediaList)
 
 nsMediaList::nsMediaList()
   : mStyleSheet(nullptr)
 {
-  SetIsDOMBinding();
 }
 
 nsMediaList::~nsMediaList()
 {
 }
 
 /* virtual */ JSObject*
 nsMediaList::WrapObject(JSContext* aCx)
@@ -979,18 +978,16 @@ CSSStyleSheet::CSSStyleSheet(CORSMode aC
     mDocument(nullptr),
     mOwningNode(nullptr),
     mDisabled(false),
     mDirty(false),
     mScopeElement(nullptr),
     mRuleProcessors(nullptr)
 {
   mInner = new CSSStyleSheetInner(this, aCORSMode);
-
-  SetIsDOMBinding();
 }
 
 CSSStyleSheet::CSSStyleSheet(const CSSStyleSheet& aCopy,
                              CSSStyleSheet* aParentToUse,
                              css::ImportRule* aOwnerRuleToUse,
                              nsIDocument* aDocumentToUse,
                              nsINode* aOwningNodeToUse)
   : mTitle(aCopy.mTitle),
@@ -1013,18 +1010,16 @@ CSSStyleSheet::CSSStyleSheet(const CSSSt
     EnsureUniqueInner();
   }
 
   if (aCopy.mMedia) {
     // XXX This is wrong; we should be keeping @import rules and
     // sheets in sync!
     mMedia = aCopy.mMedia->Clone();
   }
-
-  SetIsDOMBinding();
 }
 
 CSSStyleSheet::~CSSStyleSheet()
 {
   for (CSSStyleSheet* child = mInner->mFirstChild;
        child;
        child = child->mNext) {
     // XXXbz this is a little bogus; see the XXX comment where we
--- a/layout/style/FontFace.cpp
+++ b/layout/style/FontFace.cpp
@@ -219,18 +219,16 @@ FontFace::FontFace(nsISupports* aParent,
   , mSourceBufferLength(0)
   , mFontFaceSet(aPresContext->Fonts())
   , mInFontFaceSet(false)
   , mInitialized(false)
   , mLoadWhenInitialized(false)
 {
   MOZ_COUNT_CTOR(FontFace);
 
-  SetIsDOMBinding();
-
   nsCOMPtr<nsIGlobalObject> global = do_QueryInterface(aParent);
 
   if (global) {
     ErrorResult rv;
     mLoaded = Promise::Create(global, rv);
   }
 }
 
--- a/layout/style/MediaQueryList.cpp
+++ b/layout/style/MediaQueryList.cpp
@@ -17,18 +17,16 @@ namespace dom {
 MediaQueryList::MediaQueryList(nsPresContext *aPresContext,
                                const nsAString &aMediaQueryList)
   : mPresContext(aPresContext),
     mMediaList(new nsMediaList),
     mMatchesValid(false)
 {
   PR_INIT_CLIST(this);
 
-  SetIsDOMBinding();
-
   nsCSSParser parser;
   parser.ParseMediaList(aMediaQueryList, nullptr, 0, mMediaList, false);
 }
 
 MediaQueryList::~MediaQueryList()
 {
   if (mPresContext) {
     PR_REMOVE_LINK(this);
--- a/layout/style/nsCSSRules.h
+++ b/layout/style/nsCSSRules.h
@@ -205,21 +205,16 @@ public:
   NS_DECL_ISUPPORTS_INHERITED
   NS_DECL_NSIDOMCSSSTYLEDECLARATION_HELPER
   NS_DECL_NSICSSDECLARATION
   virtual already_AddRefed<mozilla::dom::CSSValue>
   GetPropertyCSSValue(const nsAString& aProp, mozilla::ErrorResult& aRv)
     MOZ_OVERRIDE;
   using nsICSSDeclaration::GetPropertyCSSValue;
 
-  nsCSSFontFaceStyleDecl()
-  {
-    SetIsDOMBinding();
-  }
-
   virtual nsINode *GetParentObject() MOZ_OVERRIDE;
   virtual void IndexedGetter(uint32_t aIndex, bool& aFound, nsAString& aPropName) MOZ_OVERRIDE;
 
   nsresult GetPropertyValue(nsCSSFontDesc aFontDescID,
                             nsAString & aResult) const;
 
   virtual JSObject* WrapObject(JSContext *cx) MOZ_OVERRIDE;
 
--- a/layout/style/nsDOMCSSDeclaration.h
+++ b/layout/style/nsDOMCSSDeclaration.h
@@ -143,20 +143,16 @@ protected:
   void GetCustomPropertyValue(const nsAString& aPropertyName, nsAString& aValue);
   nsresult RemoveCustomProperty(const nsAString& aPropertyName);
   nsresult ParseCustomPropertyValue(const nsAString& aPropertyName,
                                     const nsAString& aPropValue,
                                     bool aIsImportant);
 
 protected:
   virtual ~nsDOMCSSDeclaration();
-  nsDOMCSSDeclaration()
-  {
-    SetIsDOMBinding();
-  }
 };
 
 bool IsCSSPropertyExposedToJS(nsCSSProperty aProperty, JSContext* cx, JSObject* obj);
 
 template <nsCSSProperty Property>
 MOZ_ALWAYS_INLINE bool IsCSSPropertyExposedToJS(JSContext* cx, JSObject* obj)
 {
   return IsCSSPropertyExposedToJS(Property, cx, obj);
--- a/layout/style/nsDOMCSSRGBColor.cpp
+++ b/layout/style/nsDOMCSSRGBColor.cpp
@@ -14,17 +14,16 @@ using namespace mozilla;
 nsDOMCSSRGBColor::nsDOMCSSRGBColor(nsROCSSPrimitiveValue* aRed,
                                    nsROCSSPrimitiveValue* aGreen,
                                    nsROCSSPrimitiveValue* aBlue,
                                    nsROCSSPrimitiveValue* aAlpha,
                                    bool aHasAlpha)
   : mRed(aRed), mGreen(aGreen), mBlue(aBlue), mAlpha(aAlpha)
   , mHasAlpha(aHasAlpha)
 {
-  SetIsDOMBinding();
 }
 
 nsDOMCSSRGBColor::~nsDOMCSSRGBColor(void)
 {
 }
 
 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(nsDOMCSSRGBColor, mAlpha,  mBlue, mGreen, mRed)
 
--- a/layout/style/nsDOMCSSRect.cpp
+++ b/layout/style/nsDOMCSSRect.cpp
@@ -12,17 +12,16 @@
 using namespace mozilla;
 
 nsDOMCSSRect::nsDOMCSSRect(nsROCSSPrimitiveValue* aTop,
                            nsROCSSPrimitiveValue* aRight,
                            nsROCSSPrimitiveValue* aBottom,
                            nsROCSSPrimitiveValue* aLeft)
   : mTop(aTop), mRight(aRight), mBottom(aBottom), mLeft(aLeft)
 {
-  SetIsDOMBinding();
 }
 
 nsDOMCSSRect::~nsDOMCSSRect(void)
 {
 }
 
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsDOMCSSRect)
   NS_INTERFACE_MAP_ENTRY(nsIDOMRect)
--- a/layout/style/nsDOMCSSValueList.cpp
+++ b/layout/style/nsDOMCSSValueList.cpp
@@ -8,17 +8,16 @@
 #include "mozilla/dom/CSSValueListBinding.h"
 #include "nsAutoPtr.h"
 
 using namespace mozilla;
 
 nsDOMCSSValueList::nsDOMCSSValueList(bool aCommaDelimited, bool aReadonly)
   : CSSValue(), mCommaDelimited(aCommaDelimited), mReadonly(aReadonly)
 {
-  SetIsDOMBinding();
 }
 
 nsDOMCSSValueList::~nsDOMCSSValueList()
 {
 }
 
 NS_IMPL_CYCLE_COLLECTING_ADDREF(nsDOMCSSValueList)
 NS_IMPL_CYCLE_COLLECTING_RELEASE(nsDOMCSSValueList)
--- a/layout/style/nsROCSSPrimitiveValue.cpp
+++ b/layout/style/nsROCSSPrimitiveValue.cpp
@@ -16,17 +16,16 @@
 #include "nsError.h"
 
 using namespace mozilla;
 
 nsROCSSPrimitiveValue::nsROCSSPrimitiveValue()
   : CSSValue(), mType(CSS_PX)
 {
   mValue.mAppUnits = 0;
-  SetIsDOMBinding();
 }
 
 
 nsROCSSPrimitiveValue::~nsROCSSPrimitiveValue()
 {
   Reset();
 }
 
--- a/layout/xul/tree/nsTreeColumns.cpp
+++ b/layout/xul/tree/nsTreeColumns.cpp
@@ -343,17 +343,16 @@ nsTreeColumn::Invalidate()
   return NS_OK;
 }
 
 
 nsTreeColumns::nsTreeColumns(nsTreeBodyFrame* aTree)
   : mTree(aTree),
     mFirstColumn(nullptr)
 {
-  SetIsDOMBinding();
 }
 
 nsTreeColumns::~nsTreeColumns()
 {
   nsTreeColumns::InvalidateColumns();
 }
 
 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE_0(nsTreeColumns)
--- a/media/webrtc/signaling/src/peerconnection/MediaStreamList.cpp
+++ b/media/webrtc/signaling/src/peerconnection/MediaStreamList.cpp
@@ -15,17 +15,16 @@
 namespace mozilla {
 namespace dom {
 
 MediaStreamList::MediaStreamList(sipcc::PeerConnectionImpl* peerConnection,
                                  StreamType type)
   : mPeerConnection(peerConnection),
     mType(type)
 {
-  SetIsDOMBinding();
 }
 
 MediaStreamList::~MediaStreamList()
 {
 }
 
 #ifdef MOZILLA_INTERNAL_API
 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE_0(MediaStreamList)