Bug 1470325 - s/FooBinding/Foo_Binding/g - r=qdot
authorJeff Gilbert <jgilbert@mozilla.com>
Mon, 25 Jun 2018 14:20:54 -0700
changeset 423859 a97feb8161b7a4c60a539d83cb702a6e50fab1b1
parent 423858 ba24316f5d8476f56a429fdae82052e2d256983c
child 423860 b3433180841d6c65b478cc0998fe7d4cd46435bd
push id34193
push userdluca@mozilla.com
push dateWed, 27 Jun 2018 10:27:30 +0000
treeherdermozilla-central@e5fd22d48987 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersqdot
bugs1470325
milestone63.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1470325 - s/FooBinding/Foo_Binding/g - r=qdot MozReview-Commit-ID: JtTcLL5OPF0
accessible/aom/AccessibleNode.cpp
accessible/base/nsCoreUtils.cpp
accessible/generic/Accessible.cpp
accessible/generic/DocAccessible.cpp
accessible/xul/XULMenuAccessible.cpp
accessible/xul/XULTreeGridAccessible.cpp
devtools/shared/heapsnapshot/DominatorTree.cpp
devtools/shared/heapsnapshot/HeapSnapshot.cpp
docshell/shistory/ChildSHistory.cpp
docshell/shistory/ParentSHistory.cpp
dom/abort/AbortController.cpp
dom/abort/AbortSignal.cpp
dom/animation/Animation.cpp
dom/animation/CSSPseudoElement.cpp
dom/animation/DocumentTimeline.cpp
dom/animation/KeyframeEffect.cpp
dom/base/AnonymousContent.cpp
dom/base/Attr.cpp
dom/base/BarProps.cpp
dom/base/ChildProcessMessageManager.h
dom/base/ChromeMessageBroadcaster.cpp
dom/base/ChromeMessageSender.cpp
dom/base/ChromeNodeList.cpp
dom/base/Comment.cpp
dom/base/Crypto.cpp
dom/base/CustomElementRegistry.cpp
dom/base/DOMError.cpp
dom/base/DOMException.cpp
dom/base/DOMImplementation.cpp
dom/base/DOMIntersectionObserver.h
dom/base/DOMMatrix.cpp
dom/base/DOMParser.h
dom/base/DOMPoint.cpp
dom/base/DOMQuad.cpp
dom/base/DOMRect.cpp
dom/base/DOMRequest.cpp
dom/base/DOMStringList.cpp
dom/base/DocumentFragment.cpp
dom/base/DocumentType.cpp
dom/base/Element.cpp
dom/base/Element.h
dom/base/EventSource.cpp
dom/base/FormData.cpp
dom/base/FragmentOrElement.cpp
dom/base/IdleDeadline.cpp
dom/base/IntlUtils.cpp
dom/base/Location.cpp
dom/base/MozQueryInterface.cpp
dom/base/Navigator.cpp
dom/base/Navigator.h
dom/base/NodeIterator.cpp
dom/base/ParentProcessMessageManager.cpp
dom/base/ProcessGlobal.cpp
dom/base/ProcessMessageManager.cpp
dom/base/ScreenOrientation.cpp
dom/base/Selection.cpp
dom/base/ShadowRoot.cpp
dom/base/StructuredCloneBlob.cpp
dom/base/StyleSheetList.cpp
dom/base/SubtleCrypto.cpp
dom/base/TreeWalker.cpp
dom/base/WebKitCSSMatrix.cpp
dom/base/WindowNamedPropertiesHandler.cpp
dom/base/nsContentList.cpp
dom/base/nsContentUtils.cpp
dom/base/nsContentUtils.h
dom/base/nsDOMAttributeMap.cpp
dom/base/nsDOMCaretPosition.cpp
dom/base/nsDOMDataChannel.cpp
dom/base/nsDOMMutationObserver.h
dom/base/nsDOMSerializer.h
dom/base/nsDOMTokenList.cpp
dom/base/nsDocument.cpp
dom/base/nsFrameLoader.cpp
dom/base/nsGenConImageContent.cpp
dom/base/nsGlobalWindowInner.cpp
dom/base/nsGlobalWindowOuter.cpp
dom/base/nsHistory.cpp
dom/base/nsINode.cpp
dom/base/nsINode.h
dom/base/nsInProcessTabChildGlobal.cpp
dom/base/nsMimeTypeArray.cpp
dom/base/nsPluginArray.cpp
dom/base/nsRange.cpp
dom/base/nsScreen.cpp
dom/base/nsStyledElement.cpp
dom/base/nsTextNode.cpp
dom/base/nsTraversal.cpp
dom/base/nsTreeSanitizer.cpp
dom/base/nsWindowRoot.cpp
dom/battery/BatteryManager.cpp
dom/bindings/BindingUtils.cpp
dom/bindings/BindingUtils.h
dom/bindings/test/TestFunctions.cpp
dom/bindings/test/TestInterfaceIterableDouble.cpp
dom/bindings/test/TestInterfaceIterableDoubleUnion.cpp
dom/bindings/test/TestInterfaceIterableSingle.cpp
dom/bindings/test/TestInterfaceMaplike.cpp
dom/bindings/test/TestInterfaceMaplikeObject.cpp
dom/bindings/test/TestInterfaceSetlike.cpp
dom/bindings/test/TestInterfaceSetlikeNode.cpp
dom/broadcastchannel/BroadcastChannel.cpp
dom/cache/Cache.cpp
dom/cache/CacheStorage.cpp
dom/canvas/CanvasGradient.h
dom/canvas/CanvasPattern.h
dom/canvas/CanvasRenderingContext2D.cpp
dom/canvas/ImageBitmap.cpp
dom/canvas/ImageBitmapRenderingContext.cpp
dom/canvas/ImageData.cpp
dom/canvas/OffscreenCanvas.cpp
dom/canvas/TextMetrics.h
dom/canvas/WebGL1Context.cpp
dom/canvas/WebGL2Context.cpp
dom/canvas/WebGLActiveInfo.cpp
dom/canvas/WebGLBuffer.cpp
dom/canvas/WebGLExtensions.h
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/WebGLShaderPrecisionFormat.cpp
dom/canvas/WebGLSync.cpp
dom/canvas/WebGLTexture.cpp
dom/canvas/WebGLTransformFeedback.cpp
dom/canvas/WebGLUniformLocation.cpp
dom/canvas/WebGLVertexArray.cpp
dom/canvas/WebGLVertexArrayObject.cpp
dom/canvas/test/webgl-conf/mochitest-errata.ini
dom/clients/api/Client.cpp
dom/clients/api/Clients.cpp
dom/console/ConsoleInstance.cpp
dom/credentialmanagement/Credential.cpp
dom/credentialmanagement/CredentialsContainer.cpp
dom/crypto/CryptoKey.cpp
dom/encoding/TextDecoder.h
dom/encoding/TextEncoder.h
dom/events/AnimationEvent.h
dom/events/BeforeUnloadEvent.h
dom/events/ClipboardEvent.h
dom/events/CommandEvent.h
dom/events/CompositionEvent.h
dom/events/ConstructibleEventTarget.cpp
dom/events/CustomEvent.cpp
dom/events/DataTransfer.cpp
dom/events/DataTransferItem.cpp
dom/events/DataTransferItemList.cpp
dom/events/DeviceMotionEvent.h
dom/events/DragEvent.cpp
dom/events/DragEvent.h
dom/events/Event.cpp
dom/events/EventStateManager.cpp
dom/events/FocusEvent.h
dom/events/IMEStateManager.cpp
dom/events/ImageCaptureError.cpp
dom/events/InputEvent.h
dom/events/KeyboardEvent.cpp
dom/events/KeyboardEvent.h
dom/events/MessageEvent.cpp
dom/events/MouseEvent.cpp
dom/events/MouseEvent.h
dom/events/MouseScrollEvent.cpp
dom/events/MouseScrollEvent.h
dom/events/MutationEvent.h
dom/events/NotifyPaintEvent.h
dom/events/PaintRequest.cpp
dom/events/PointerEvent.cpp
dom/events/PointerEventHandler.cpp
dom/events/PointerEventHandler.h
dom/events/ScrollAreaEvent.h
dom/events/SimpleGestureEvent.cpp
dom/events/SimpleGestureEvent.h
dom/events/SpeechRecognitionError.h
dom/events/StorageEvent.cpp
dom/events/TextClause.cpp
dom/events/Touch.cpp
dom/events/TouchEvent.cpp
dom/events/TouchEvent.h
dom/events/TransitionEvent.h
dom/events/UIEvent.h
dom/events/VirtualKeyCodeList.h
dom/events/WheelEvent.cpp
dom/events/WheelEvent.h
dom/events/WheelHandlingHelper.cpp
dom/events/XULCommandEvent.h
dom/fetch/FetchObserver.cpp
dom/fetch/Headers.cpp
dom/fetch/Request.h
dom/fetch/Response.h
dom/file/Blob.cpp
dom/file/File.cpp
dom/file/FileList.cpp
dom/file/FileReader.cpp
dom/file/FileReaderSync.cpp
dom/filesystem/Directory.cpp
dom/filesystem/compat/FileSystem.cpp
dom/filesystem/compat/FileSystemDirectoryEntry.cpp
dom/filesystem/compat/FileSystemDirectoryReader.cpp
dom/filesystem/compat/FileSystemEntry.cpp
dom/filesystem/compat/FileSystemFileEntry.cpp
dom/flex/Flex.cpp
dom/flex/FlexItem.cpp
dom/flex/FlexLine.cpp
dom/gamepad/Gamepad.cpp
dom/gamepad/GamepadButton.cpp
dom/gamepad/GamepadHapticActuator.cpp
dom/gamepad/GamepadPose.cpp
dom/gamepad/GamepadServiceTest.cpp
dom/geolocation/PositionError.cpp
dom/geolocation/nsGeoPosition.cpp
dom/geolocation/nsGeolocation.cpp
dom/grid/Grid.cpp
dom/grid/GridArea.cpp
dom/grid/GridDimension.cpp
dom/grid/GridLine.cpp
dom/grid/GridLines.cpp
dom/grid/GridTrack.cpp
dom/grid/GridTracks.cpp
dom/html/HTMLAllCollection.cpp
dom/html/HTMLAnchorElement.cpp
dom/html/HTMLAreaElement.cpp
dom/html/HTMLAudioElement.cpp
dom/html/HTMLBRElement.cpp
dom/html/HTMLBodyElement.cpp
dom/html/HTMLButtonElement.cpp
dom/html/HTMLCanvasElement.cpp
dom/html/HTMLDataElement.cpp
dom/html/HTMLDataListElement.cpp
dom/html/HTMLDetailsElement.cpp
dom/html/HTMLDialogElement.cpp
dom/html/HTMLDivElement.cpp
dom/html/HTMLElement.cpp
dom/html/HTMLEmbedElement.cpp
dom/html/HTMLFieldSetElement.cpp
dom/html/HTMLFontElement.cpp
dom/html/HTMLFormControlsCollection.cpp
dom/html/HTMLFormElement.cpp
dom/html/HTMLFrameElement.cpp
dom/html/HTMLFrameSetElement.cpp
dom/html/HTMLHRElement.cpp
dom/html/HTMLHeadingElement.cpp
dom/html/HTMLIFrameElement.cpp
dom/html/HTMLImageElement.cpp
dom/html/HTMLInputElement.cpp
dom/html/HTMLLIElement.cpp
dom/html/HTMLLabelElement.cpp
dom/html/HTMLLegendElement.cpp
dom/html/HTMLLinkElement.cpp
dom/html/HTMLMapElement.cpp
dom/html/HTMLMediaElement.cpp
dom/html/HTMLMediaElement.h
dom/html/HTMLMenuElement.cpp
dom/html/HTMLMenuItemElement.cpp
dom/html/HTMLMetaElement.cpp
dom/html/HTMLMeterElement.cpp
dom/html/HTMLModElement.cpp
dom/html/HTMLObjectElement.cpp
dom/html/HTMLOptGroupElement.cpp
dom/html/HTMLOptionElement.cpp
dom/html/HTMLOptionsCollection.cpp
dom/html/HTMLOutputElement.cpp
dom/html/HTMLParagraphElement.cpp
dom/html/HTMLPictureElement.cpp
dom/html/HTMLPreElement.cpp
dom/html/HTMLProgressElement.cpp
dom/html/HTMLScriptElement.cpp
dom/html/HTMLSelectElement.cpp
dom/html/HTMLSharedElement.cpp
dom/html/HTMLSharedListElement.cpp
dom/html/HTMLSlotElement.cpp
dom/html/HTMLSourceElement.cpp
dom/html/HTMLSpanElement.cpp
dom/html/HTMLStyleElement.cpp
dom/html/HTMLSummaryElement.cpp
dom/html/HTMLTableCaptionElement.cpp
dom/html/HTMLTableCellElement.cpp
dom/html/HTMLTableColElement.cpp
dom/html/HTMLTableElement.cpp
dom/html/HTMLTableRowElement.cpp
dom/html/HTMLTableSectionElement.cpp
dom/html/HTMLTemplateElement.cpp
dom/html/HTMLTextAreaElement.cpp
dom/html/HTMLTimeElement.cpp
dom/html/HTMLTitleElement.cpp
dom/html/HTMLTrackElement.cpp
dom/html/HTMLUnknownElement.cpp
dom/html/HTMLVideoElement.cpp
dom/html/ImageDocument.cpp
dom/html/MediaError.cpp
dom/html/RadioNodeList.cpp
dom/html/TimeRanges.cpp
dom/html/ValidityState.cpp
dom/html/nsDOMStringMap.cpp
dom/html/nsGenericHTMLElement.cpp
dom/html/nsHTMLDocument.cpp
dom/indexedDB/IDBCursor.cpp
dom/indexedDB/IDBDatabase.cpp
dom/indexedDB/IDBEvents.cpp
dom/indexedDB/IDBFactory.cpp
dom/indexedDB/IDBFileHandle.cpp
dom/indexedDB/IDBFileRequest.cpp
dom/indexedDB/IDBIndex.cpp
dom/indexedDB/IDBKeyRange.cpp
dom/indexedDB/IDBMutableFile.cpp
dom/indexedDB/IDBObjectStore.cpp
dom/indexedDB/IDBRequest.cpp
dom/indexedDB/IDBTransaction.cpp
dom/indexedDB/IndexedDatabaseManager.cpp
dom/interfaces/base/nsIDOMWindowUtils.idl
dom/ipc/TabChild.cpp
dom/mathml/nsMathMLElement.cpp
dom/media/AudioStreamTrack.cpp
dom/media/AudioTrack.cpp
dom/media/AudioTrackList.cpp
dom/media/CanvasCaptureMediaStream.cpp
dom/media/DOMMediaStream.cpp
dom/media/GetUserMediaRequest.cpp
dom/media/MediaDeviceInfo.cpp
dom/media/MediaDevices.cpp
dom/media/MediaRecorder.cpp
dom/media/MediaStreamError.cpp
dom/media/TextTrack.cpp
dom/media/TextTrackCue.cpp
dom/media/TextTrackCueList.cpp
dom/media/TextTrackList.cpp
dom/media/TextTrackRegion.cpp
dom/media/VideoPlaybackQuality.cpp
dom/media/VideoStreamTrack.cpp
dom/media/VideoTrack.cpp
dom/media/VideoTrackList.cpp
dom/media/eme/MediaEncryptedEvent.cpp
dom/media/eme/MediaKeyError.cpp
dom/media/eme/MediaKeyMessageEvent.cpp
dom/media/eme/MediaKeySession.cpp
dom/media/eme/MediaKeyStatusMap.cpp
dom/media/eme/MediaKeySystemAccess.cpp
dom/media/eme/MediaKeys.cpp
dom/media/imagecapture/ImageCapture.h
dom/media/mediasource/MediaSource.cpp
dom/media/mediasource/SourceBuffer.cpp
dom/media/mediasource/SourceBufferList.cpp
dom/media/webaudio/AnalyserNode.cpp
dom/media/webaudio/AudioBuffer.cpp
dom/media/webaudio/AudioBufferSourceNode.cpp
dom/media/webaudio/AudioContext.cpp
dom/media/webaudio/AudioDestinationNode.cpp
dom/media/webaudio/AudioListener.cpp
dom/media/webaudio/AudioParam.cpp
dom/media/webaudio/AudioParamMap.cpp
dom/media/webaudio/AudioProcessingEvent.cpp
dom/media/webaudio/AudioScheduledSourceNode.cpp
dom/media/webaudio/AudioWorkletNode.cpp
dom/media/webaudio/BiquadFilterNode.cpp
dom/media/webaudio/ChannelMergerNode.cpp
dom/media/webaudio/ChannelSplitterNode.cpp
dom/media/webaudio/ConstantSourceNode.cpp
dom/media/webaudio/ConvolverNode.cpp
dom/media/webaudio/DelayNode.cpp
dom/media/webaudio/DynamicsCompressorNode.cpp
dom/media/webaudio/GainNode.cpp
dom/media/webaudio/IIRFilterNode.cpp
dom/media/webaudio/MediaElementAudioSourceNode.cpp
dom/media/webaudio/MediaStreamAudioDestinationNode.cpp
dom/media/webaudio/MediaStreamAudioSourceNode.cpp
dom/media/webaudio/OscillatorNode.cpp
dom/media/webaudio/PannerNode.cpp
dom/media/webaudio/PeriodicWave.cpp
dom/media/webaudio/ScriptProcessorNode.cpp
dom/media/webaudio/StereoPannerNode.cpp
dom/media/webaudio/WaveShaperNode.cpp
dom/media/webrtc/RTCCertificate.cpp
dom/media/webrtc/RTCIdentityProviderRegistrar.cpp
dom/media/webspeech/recognition/SpeechGrammar.cpp
dom/media/webspeech/recognition/SpeechGrammarList.cpp
dom/media/webspeech/recognition/SpeechRecognition.cpp
dom/media/webspeech/recognition/SpeechRecognitionAlternative.cpp
dom/media/webspeech/recognition/SpeechRecognitionResult.cpp
dom/media/webspeech/recognition/SpeechRecognitionResultList.cpp
dom/media/webspeech/synth/SpeechSynthesis.cpp
dom/media/webspeech/synth/SpeechSynthesisUtterance.cpp
dom/media/webspeech/synth/SpeechSynthesisVoice.cpp
dom/messagechannel/MessageChannel.cpp
dom/messagechannel/MessagePort.cpp
dom/midi/MIDIAccess.cpp
dom/midi/MIDIInput.cpp
dom/midi/MIDIInputMap.cpp
dom/midi/MIDIMessageEvent.cpp
dom/midi/MIDIOutput.cpp
dom/midi/MIDIOutputMap.cpp
dom/midi/MIDIPort.cpp
dom/network/Connection.cpp
dom/network/TCPServerSocket.cpp
dom/network/TCPSocket.cpp
dom/network/UDPSocket.cpp
dom/notification/Notification.cpp
dom/notification/NotificationEvent.h
dom/offline/nsDOMOfflineResourceList.cpp
dom/payments/PaymentAddress.cpp
dom/payments/PaymentRequest.cpp
dom/payments/PaymentRequestUpdateEvent.cpp
dom/payments/PaymentResponse.cpp
dom/performance/Performance.cpp
dom/performance/PerformanceEntry.cpp
dom/performance/PerformanceMark.cpp
dom/performance/PerformanceMeasure.cpp
dom/performance/PerformanceNavigation.cpp
dom/performance/PerformanceNavigationTiming.cpp
dom/performance/PerformanceObserver.cpp
dom/performance/PerformanceObserverEntryList.cpp
dom/performance/PerformanceResourceTiming.cpp
dom/performance/PerformanceServerTiming.cpp
dom/performance/PerformanceTiming.cpp
dom/permission/PermissionStatus.cpp
dom/permission/Permissions.cpp
dom/plugins/base/nsPluginInstanceOwner.cpp
dom/presentation/Presentation.cpp
dom/presentation/PresentationAvailability.cpp
dom/presentation/PresentationConnection.cpp
dom/presentation/PresentationConnectionList.cpp
dom/presentation/PresentationReceiver.cpp
dom/presentation/PresentationRequest.cpp
dom/promise/Promise.cpp
dom/push/PushManager.cpp
dom/push/PushSubscription.cpp
dom/push/PushSubscriptionOptions.cpp
dom/quota/StorageManager.cpp
dom/serviceworkers/ServiceWorker.cpp
dom/serviceworkers/ServiceWorkerContainer.cpp
dom/serviceworkers/ServiceWorkerEvents.cpp
dom/serviceworkers/ServiceWorkerEvents.h
dom/serviceworkers/ServiceWorkerRegistration.cpp
dom/smil/TimeEvent.h
dom/storage/Storage.cpp
dom/svg/DOMSVGAnimatedLengthList.cpp
dom/svg/DOMSVGAnimatedNumberList.cpp
dom/svg/DOMSVGLength.cpp
dom/svg/DOMSVGLengthList.cpp
dom/svg/DOMSVGNumber.cpp
dom/svg/DOMSVGNumberList.cpp
dom/svg/DOMSVGPathSeg.cpp
dom/svg/DOMSVGPathSeg.h
dom/svg/DOMSVGPathSegList.cpp
dom/svg/DOMSVGPointList.cpp
dom/svg/DOMSVGStringList.cpp
dom/svg/DOMSVGTransformList.cpp
dom/svg/SVGAElement.cpp
dom/svg/SVGAngle.cpp
dom/svg/SVGAnimateElement.cpp
dom/svg/SVGAnimateMotionElement.cpp
dom/svg/SVGAnimateTransformElement.cpp
dom/svg/SVGAnimatedAngle.cpp
dom/svg/SVGAnimatedBoolean.cpp
dom/svg/SVGAnimatedEnumeration.cpp
dom/svg/SVGAnimatedInteger.cpp
dom/svg/SVGAnimatedLength.cpp
dom/svg/SVGAnimatedLengthList.cpp
dom/svg/SVGAnimatedNumber.cpp
dom/svg/SVGAnimatedPreserveAspectRatio.cpp
dom/svg/SVGAnimatedPreserveAspectRatio.h
dom/svg/SVGAnimatedRect.cpp
dom/svg/SVGAnimatedString.cpp
dom/svg/SVGAnimatedTransformList.cpp
dom/svg/SVGCircleElement.cpp
dom/svg/SVGClipPathElement.cpp
dom/svg/SVGContentUtils.cpp
dom/svg/SVGDefsElement.cpp
dom/svg/SVGDescElement.cpp
dom/svg/SVGEllipseElement.cpp
dom/svg/SVGFEBlendElement.cpp
dom/svg/SVGFEColorMatrixElement.cpp
dom/svg/SVGFEComponentTransferElement.cpp
dom/svg/SVGFECompositeElement.cpp
dom/svg/SVGFEConvolveMatrixElement.cpp
dom/svg/SVGFEDiffuseLightingElement.cpp
dom/svg/SVGFEDisplacementMapElement.cpp
dom/svg/SVGFEDistantLightElement.cpp
dom/svg/SVGFEDropShadowElement.cpp
dom/svg/SVGFEFloodElement.cpp
dom/svg/SVGFEGaussianBlurElement.cpp
dom/svg/SVGFEImageElement.cpp
dom/svg/SVGFEMergeElement.cpp
dom/svg/SVGFEMergeNodeElement.cpp
dom/svg/SVGFEMorphologyElement.cpp
dom/svg/SVGFEOffsetElement.cpp
dom/svg/SVGFEPointLightElement.cpp
dom/svg/SVGFESpecularLightingElement.cpp
dom/svg/SVGFESpotLightElement.cpp
dom/svg/SVGFETileElement.cpp
dom/svg/SVGFETurbulenceElement.cpp
dom/svg/SVGFilterElement.cpp
dom/svg/SVGForeignObjectElement.cpp
dom/svg/SVGGElement.cpp
dom/svg/SVGGeometryElement.cpp
dom/svg/SVGGradientElement.cpp
dom/svg/SVGIRect.h
dom/svg/SVGImageElement.cpp
dom/svg/SVGLength.cpp
dom/svg/SVGLength.h
dom/svg/SVGLengthList.h
dom/svg/SVGLineElement.cpp
dom/svg/SVGMPathElement.cpp
dom/svg/SVGMarkerElement.cpp
dom/svg/SVGMarkerElement.h
dom/svg/SVGMaskElement.cpp
dom/svg/SVGMatrix.cpp
dom/svg/SVGMetadataElement.cpp
dom/svg/SVGMotionSMILAnimationFunction.cpp
dom/svg/SVGOrientSMILType.cpp
dom/svg/SVGPathData.cpp
dom/svg/SVGPathElement.cpp
dom/svg/SVGPathSegUtils.h
dom/svg/SVGPatternElement.cpp
dom/svg/SVGPolygonElement.cpp
dom/svg/SVGPolylineElement.cpp
dom/svg/SVGPreserveAspectRatio.cpp
dom/svg/SVGPreserveAspectRatio.h
dom/svg/SVGRectElement.cpp
dom/svg/SVGSVGElement.cpp
dom/svg/SVGScriptElement.cpp
dom/svg/SVGSetElement.cpp
dom/svg/SVGStopElement.cpp
dom/svg/SVGStyleElement.cpp
dom/svg/SVGSwitchElement.cpp
dom/svg/SVGSymbolElement.cpp
dom/svg/SVGTSpanElement.cpp
dom/svg/SVGTextContentElement.cpp
dom/svg/SVGTextElement.cpp
dom/svg/SVGTextPathElement.cpp
dom/svg/SVGTitleElement.cpp
dom/svg/SVGTransform.cpp
dom/svg/SVGTransformListSMILType.cpp
dom/svg/SVGTransformableElement.cpp
dom/svg/SVGUseElement.cpp
dom/svg/SVGViewElement.cpp
dom/svg/SVGViewportElement.cpp
dom/svg/nsISVGPoint.h
dom/svg/nsSVGAngle.cpp
dom/svg/nsSVGAngle.h
dom/svg/nsSVGAnimatedTransformList.cpp
dom/svg/nsSVGElement.cpp
dom/svg/nsSVGFilters.cpp
dom/svg/nsSVGLength2.cpp
dom/svg/nsSVGLength2.h
dom/svg/nsSVGPathDataParser.cpp
dom/svg/nsSVGTransform.cpp
dom/svg/nsSVGTransform.h
dom/system/linux/GpsdLocationProvider.cpp
dom/system/mac/CoreLocationLocationProvider.mm
dom/system/windows/WindowsLocationProvider.cpp
dom/u2f/U2F.cpp
dom/url/URL.cpp
dom/url/URLSearchParams.cpp
dom/vr/VRDisplay.cpp
dom/vr/VRDisplayEvent.cpp
dom/vr/VRServiceTest.cpp
dom/webauthn/AuthenticatorAssertionResponse.cpp
dom/webauthn/AuthenticatorAttestationResponse.cpp
dom/webauthn/AuthenticatorResponse.cpp
dom/webauthn/PublicKeyCredential.cpp
dom/webbrowserpersist/WebBrowserPersistLocalDocument.cpp
dom/websocket/WebSocket.cpp
dom/workers/ChromeWorker.cpp
dom/workers/SharedWorker.cpp
dom/workers/Worker.cpp
dom/workers/WorkerLocation.cpp
dom/workers/WorkerNavigator.cpp
dom/workers/WorkerScope.cpp
dom/worklet/AudioWorkletGlobalScope.cpp
dom/worklet/PaintWorkletGlobalScope.cpp
dom/worklet/Worklet.cpp
dom/xbl/XBLChildrenElement.cpp
dom/xbl/nsXBLEventHandler.cpp
dom/xbl/nsXBLProtoImpl.cpp
dom/xbl/nsXBLPrototypeHandler.cpp
dom/xbl/nsXBLPrototypeHandler.h
dom/xbl/nsXBLWindowKeyHandler.cpp
dom/xhr/XMLHttpRequest.h
dom/xhr/XMLHttpRequestMainThread.cpp
dom/xhr/XMLHttpRequestUpload.cpp
dom/xhr/XMLHttpRequestWorker.cpp
dom/xml/CDATASection.cpp
dom/xml/ProcessingInstruction.cpp
dom/xml/XMLDocument.cpp
dom/xml/nsXMLElement.cpp
dom/xslt/xpath/XPathEvaluator.cpp
dom/xslt/xpath/XPathExpression.cpp
dom/xslt/xpath/XPathExpression.h
dom/xslt/xpath/XPathResult.cpp
dom/xslt/xslt/txMozillaXSLTProcessor.cpp
dom/xslt/xslt/txMozillaXSLTProcessor.h
dom/xul/XULDocument.cpp
dom/xul/XULPopupElement.cpp
dom/xul/nsXULElement.cpp
dom/xul/nsXULPopupListener.cpp
editor/libeditor/HTMLEditRules.cpp
editor/libeditor/SelectionState.cpp
editor/libeditor/TextEditRules.cpp
extensions/spellcheck/src/mozInlineSpellChecker.cpp
gfx/layers/apz/src/APZCTreeManager.cpp
gfx/layers/apz/src/APZInputBridge.cpp
gfx/layers/apz/util/APZCCallbackHelper.cpp
gfx/layers/apz/util/APZEventState.cpp
gfx/layers/apz/util/CheckerboardReportService.cpp
image/VectorImage.cpp
js/xpconnect/loader/ChromeScriptLoader.cpp
js/xpconnect/src/Sandbox.cpp
js/xpconnect/wrappers/AccessCheck.cpp
layout/base/AccessibleCaretEventHub.cpp
layout/base/AccessibleCaretManager.cpp
layout/base/AccessibleCaretManager.h
layout/base/PositionedEventTargeting.cpp
layout/base/nsLayoutUtils.cpp
layout/forms/nsDateTimeControlFrame.cpp
layout/forms/nsFileControlFrame.cpp
layout/forms/nsListControlFrame.cpp
layout/forms/nsNumberControlFrame.cpp
layout/inspector/InspectorFontFace.h
layout/inspector/ServoStyleRuleMap.cpp
layout/inspector/inDeepTreeWalker.cpp
layout/mathml/nsMathMLContainerFrame.cpp
layout/style/BindingStyleRule.cpp
layout/style/CSSCounterStyleRule.cpp
layout/style/CSSFontFaceRule.cpp
layout/style/CSSFontFeatureValuesRule.cpp
layout/style/CSSFontFeatureValuesRule.h
layout/style/CSSImportRule.cpp
layout/style/CSSImportRule.h
layout/style/CSSKeyframeRule.cpp
layout/style/CSSKeyframeRule.h
layout/style/CSSKeyframesRule.cpp
layout/style/CSSKeyframesRule.h
layout/style/CSSMediaRule.cpp
layout/style/CSSMediaRule.h
layout/style/CSSMozDocumentRule.cpp
layout/style/CSSMozDocumentRule.h
layout/style/CSSNamespaceRule.h
layout/style/CSSPageRule.cpp
layout/style/CSSPageRule.h
layout/style/CSSRuleList.cpp
layout/style/CSSStyleRule.h
layout/style/CSSSupportsRule.cpp
layout/style/CSSSupportsRule.h
layout/style/FontFace.cpp
layout/style/FontFaceSet.cpp
layout/style/FontFaceSetIterator.cpp
layout/style/MediaList.cpp
layout/style/MediaQueryList.cpp
layout/style/Rule.h
layout/style/ServoCSSRuleList.cpp
layout/style/StyleSheet.cpp
layout/style/nsAnimationManager.cpp
layout/style/nsDOMCSSDeclaration.cpp
layout/style/nsTransitionManager.cpp
layout/svg/SVGFEImageFrame.cpp
layout/svg/SVGTextFrame.cpp
layout/svg/nsSVGAFrame.cpp
layout/svg/nsSVGFilterInstance.cpp
layout/svg/nsSVGGradientFrame.cpp
layout/svg/nsSVGImageFrame.cpp
layout/svg/nsSVGMaskFrame.cpp
layout/svg/nsSVGPatternFrame.cpp
layout/svg/nsSVGUtils.cpp
layout/xul/BoxObject.cpp
layout/xul/ListBoxObject.cpp
layout/xul/MenuBoxObject.cpp
layout/xul/ScrollBoxObject.cpp
layout/xul/nsButtonBoxFrame.cpp
layout/xul/nsMenuBarListener.cpp
layout/xul/nsMenuPopupFrame.cpp
layout/xul/nsScrollbarFrame.cpp
layout/xul/nsXULPopupManager.cpp
layout/xul/nsXULPopupManager.h
layout/xul/nsXULTooltipListener.cpp
layout/xul/tree/TreeBoxObject.cpp
layout/xul/tree/nsTreeBodyFrame.cpp
layout/xul/tree/nsTreeColumns.cpp
layout/xul/tree/nsTreeContentView.cpp
media/webrtc/signaling/src/peerconnection/PeerConnectionImpl.cpp
media/webrtc/signaling/src/peerconnection/TransceiverImpl.cpp
storage/mozStorageAsyncStatementParams.cpp
storage/mozStorageStatementParams.cpp
storage/mozStorageStatementRow.cpp
toolkit/components/autocomplete/nsAutoCompleteController.cpp
toolkit/components/extensions/MatchPattern.cpp
toolkit/components/extensions/WebExtensionPolicy.cpp
toolkit/components/extensions/webrequest/ChannelWrapper.cpp
toolkit/components/extensions/webrequest/StreamFilter.cpp
toolkit/components/extensions/webrequest/StreamFilterEvents.cpp
toolkit/components/resistfingerprinting/KeyCodeConsensus_En_US.h
toolkit/components/resistfingerprinting/nsRFPService.cpp
toolkit/components/satchel/nsFormFillController.cpp
toolkit/components/typeaheadfind/nsTypeAheadFind.cpp
widget/InputData.cpp
widget/MouseEvents.h
widget/TextEvents.h
widget/WidgetEventImpl.cpp
widget/android/nsWindow.cpp
widget/cocoa/SwipeTracker.mm
widget/cocoa/nsChildView.mm
widget/gtk/nsWindow.cpp
widget/headless/HeadlessWidget.h
widget/nsBaseDragService.cpp
widget/uikit/nsWindow.mm
widget/windows/WinMouseScrollHandler.cpp
widget/windows/WinPointerEvents.cpp
widget/windows/WinUtils.cpp
widget/windows/WinUtils.h
widget/windows/nsWinGesture.cpp
widget/windows/nsWindow.cpp
widget/windows/nsWindow.h
--- a/accessible/aom/AccessibleNode.cpp
+++ b/accessible/aom/AccessibleNode.cpp
@@ -57,17 +57,17 @@ AccessibleNode::AccessibleNode(nsINode* 
 
 AccessibleNode::~AccessibleNode()
 {
 }
 
 /* virtual */ JSObject*
 AccessibleNode::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return AccessibleNodeBinding::Wrap(aCx, this, aGivenProto);
+  return AccessibleNode_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 /* virtual */ ParentObject
 AccessibleNode::GetParentObject() const
 {
   return mDOMNode->GetParentObject();
 }
 
--- a/accessible/base/nsCoreUtils.cpp
+++ b/accessible/base/nsCoreUtils.cpp
@@ -138,17 +138,17 @@ nsCoreUtils::DispatchMouseEvent(EventMes
   WidgetMouseEvent event(true, aMessage, aRootWidget,
                          WidgetMouseEvent::eReal, WidgetMouseEvent::eNormal);
 
   event.mRefPoint = LayoutDeviceIntPoint(aX, aY);
 
   event.mClickCount = 1;
   event.button = WidgetMouseEvent::eLeftButton;
   event.mTime = PR_IntervalNow();
-  event.inputSource = dom::MouseEventBinding::MOZ_SOURCE_UNKNOWN;
+  event.inputSource = dom::MouseEvent_Binding::MOZ_SOURCE_UNKNOWN;
 
   nsEventStatus status = nsEventStatus_eIgnore;
   aPresShell->HandleEventWithTarget(&event, aFrame, aContent, &status);
 }
 
 void
 nsCoreUtils::DispatchTouchEvent(EventMessage aMessage, int32_t aX, int32_t aY,
                                 nsIContent* aContent, nsIFrame* aFrame,
--- a/accessible/generic/Accessible.cpp
+++ b/accessible/generic/Accessible.cpp
@@ -251,23 +251,23 @@ Accessible::AccessKey() const
 
   if (!key)
     return KeyBinding();
 
   // Get modifier mask. Use ui.key.generalAccessKey (unless it is -1).
   switch (Preferences::GetInt("ui.key.generalAccessKey", -1)) {
   case -1:
     break;
-  case dom::KeyboardEventBinding::DOM_VK_SHIFT:
+  case dom::KeyboardEvent_Binding::DOM_VK_SHIFT:
     return KeyBinding(key, KeyBinding::kShift);
-  case dom::KeyboardEventBinding::DOM_VK_CONTROL:
+  case dom::KeyboardEvent_Binding::DOM_VK_CONTROL:
     return KeyBinding(key, KeyBinding::kControl);
-  case dom::KeyboardEventBinding::DOM_VK_ALT:
+  case dom::KeyboardEvent_Binding::DOM_VK_ALT:
     return KeyBinding(key, KeyBinding::kAlt);
-  case dom::KeyboardEventBinding::DOM_VK_META:
+  case dom::KeyboardEvent_Binding::DOM_VK_META:
     return KeyBinding(key, KeyBinding::kMeta);
   default:
     return KeyBinding();
   }
 
   // Determine the access modifier used in this context.
   nsIDocument* document = mContent->GetUncomposedDoc();
   if (!document)
--- a/accessible/generic/DocAccessible.cpp
+++ b/accessible/generic/DocAccessible.cpp
@@ -716,17 +716,17 @@ DocAccessible::AttributeWillChange(dom::
       return;
 
     accessible = this;
   }
 
   // Update dependent IDs cache. Take care of elements that are accessible
   // because dependent IDs cache doesn't contain IDs from non accessible
   // elements.
-  if (aModType != dom::MutationEventBinding::ADDITION)
+  if (aModType != dom::MutationEvent_Binding::ADDITION)
     RemoveDependentIDsFor(accessible, aAttribute);
 
   if (aAttribute == nsGkAtoms::id) {
     RelocateARIAOwnedIfNeeded(aElement);
   }
 
   // Store the ARIA attribute old value so that it can be used after
   // attribute change. Note, we assume there's no nested ARIA attribute
@@ -734,17 +734,17 @@ DocAccessible::AttributeWillChange(dom::
   // old values.
 
   // XXX TODO: bugs 472142, 472143.
   // Here we will want to cache whatever attribute values we are interested
   // in, such as the existence of aria-pressed for button (so we know if we
   // need to newly expose it as a toggle button) etc.
   if (aAttribute == nsGkAtoms::aria_checked ||
       aAttribute == nsGkAtoms::aria_pressed) {
-    mARIAAttrOldValue = (aModType != dom::MutationEventBinding::ADDITION) ?
+    mARIAAttrOldValue = (aModType != dom::MutationEvent_Binding::ADDITION) ?
       nsAccUtils::GetARIAToken(aElement, aAttribute) : nullptr;
     return;
   }
 
   if (aAttribute == nsGkAtoms::aria_disabled ||
       aAttribute == nsGkAtoms::disabled)
     mStateBitWasOn = accessible->Unavailable();
 }
@@ -789,18 +789,18 @@ DocAccessible::AttributeChanged(dom::Ele
   // the accessible state wasn't changed, i.e. its state is initial state.
   AttributeChangedImpl(accessible, aNameSpaceID, aAttribute);
 
   // Update dependent IDs cache. Take care of accessible elements because no
   // accessible element means either the element is not accessible at all or
   // its accessible will be created later. It doesn't make sense to keep
   // dependent IDs for non accessible elements. For the second case we'll update
   // dependent IDs cache when its accessible is created.
-  if (aModType == dom::MutationEventBinding::MODIFICATION ||
-      aModType == dom::MutationEventBinding::ADDITION) {
+  if (aModType == dom::MutationEvent_Binding::MODIFICATION ||
+      aModType == dom::MutationEvent_Binding::ADDITION) {
     AddDependentIDsFor(accessible, aAttribute);
   }
 }
 
 // DocAccessible protected member
 void
 DocAccessible::AttributeChangedImpl(Accessible* aAccessible,
                                     int32_t aNameSpaceID, nsAtom* aAttribute)
--- a/accessible/xul/XULMenuAccessible.cpp
+++ b/accessible/xul/XULMenuAccessible.cpp
@@ -168,26 +168,26 @@ XULMenuitemAccessible::AccessKey() const
       // If top level menu item, add Alt+ or whatever modifier text to string
       // No need to cache pref service, this happens rarely
       if (gMenuAccesskeyModifier == -1) {
         // Need to initialize cached global accesskey pref
         gMenuAccesskeyModifier = Preferences::GetInt("ui.key.menuAccessKey", 0);
       }
 
       switch (gMenuAccesskeyModifier) {
-        case dom::KeyboardEventBinding::DOM_VK_CONTROL:
+        case dom::KeyboardEvent_Binding::DOM_VK_CONTROL:
           modifierKey = KeyBinding::kControl;
           break;
-        case dom::KeyboardEventBinding::DOM_VK_ALT:
+        case dom::KeyboardEvent_Binding::DOM_VK_ALT:
           modifierKey = KeyBinding::kAlt;
           break;
-        case dom::KeyboardEventBinding::DOM_VK_META:
+        case dom::KeyboardEvent_Binding::DOM_VK_META:
           modifierKey = KeyBinding::kMeta;
           break;
-        case dom::KeyboardEventBinding::DOM_VK_WIN:
+        case dom::KeyboardEvent_Binding::DOM_VK_WIN:
           modifierKey = KeyBinding::kOS;
           break;
       }
     }
   }
 
   return KeyBinding(accesskey[0], modifierKey);
 }
--- a/accessible/xul/XULTreeGridAccessible.cpp
+++ b/accessible/xul/XULTreeGridAccessible.cpp
@@ -426,17 +426,17 @@ XULTreeGridCellAccessible::
   mTreeView(aTreeView), mRow(aRow), mColumn(aColumn)
 {
   mParent = aRowAcc;
   mStateFlags |= eSharedNode;
   mGenericTypes |= eTableCell;
 
   NS_ASSERTION(mTreeView, "mTreeView is null");
 
-  if (mColumn->Type() == dom::TreeColumnBinding::TYPE_CHECKBOX)
+  if (mColumn->Type() == dom::TreeColumn_Binding::TYPE_CHECKBOX)
     mTreeView->GetCellValue(mRow, mColumn, mCachedTextEquiv);
   else
     mTreeView->GetCellText(mRow, mColumn, mCachedTextEquiv);
 }
 
 XULTreeGridCellAccessible::~XULTreeGridCellAccessible()
 {
 }
@@ -533,17 +533,17 @@ XULTreeGridCellAccessible::BoundsInAppUn
 }
 
 uint8_t
 XULTreeGridCellAccessible::ActionCount() const
 {
   if (mColumn->Cycler())
     return 1;
 
-  if (mColumn->Type() == dom::TreeColumnBinding::TYPE_CHECKBOX && IsEditable())
+  if (mColumn->Type() == dom::TreeColumn_Binding::TYPE_CHECKBOX && IsEditable())
     return 1;
 
   return 0;
 }
 
 void
 XULTreeGridCellAccessible::ActionNameAt(uint8_t aIndex, nsAString& aName)
 {
@@ -552,17 +552,17 @@ XULTreeGridCellAccessible::ActionNameAt(
   if (aIndex != eAction_Click || !mTreeView)
     return;
 
   if (mColumn->Cycler()) {
     aName.AssignLiteral("cycle");
     return;
   }
 
-  if (mColumn->Type() == dom::TreeColumnBinding::TYPE_CHECKBOX &&
+  if (mColumn->Type() == dom::TreeColumn_Binding::TYPE_CHECKBOX &&
       IsEditable()) {
     nsAutoString value;
     mTreeView->GetCellValue(mRow, mColumn, value);
     if (value.EqualsLiteral("true"))
       aName.AssignLiteral("uncheck");
     else
       aName.AssignLiteral("check");
   }
@@ -574,17 +574,17 @@ XULTreeGridCellAccessible::DoAction(uint
   if (aIndex != eAction_Click)
     return false;
 
   if (mColumn->Cycler()) {
     DoCommand();
     return true;
   }
 
-  if (mColumn->Type() == dom::TreeColumnBinding::TYPE_CHECKBOX &&
+  if (mColumn->Type() == dom::TreeColumn_Binding::TYPE_CHECKBOX &&
       IsEditable()) {
     DoCommand();
     return true;
   }
 
   return false;
 }
 
@@ -686,17 +686,17 @@ XULTreeGridCellAccessible::NativeState()
   if (selection) {
     bool isSelected = false;
     selection->IsSelected(mRow, &isSelected);
     if (isSelected)
       states |= states::SELECTED;
   }
 
   // checked state
-  if (mColumn->Type() == dom::TreeColumnBinding::TYPE_CHECKBOX) {
+  if (mColumn->Type() == dom::TreeColumn_Binding::TYPE_CHECKBOX) {
     states |= states::CHECKABLE;
     nsAutoString checked;
     mTreeView->GetCellValue(mRow, mColumn, checked);
     if (checked.EqualsIgnoreCase("true"))
       states |= states::CHECKED;
   }
 
   return states;
@@ -724,17 +724,17 @@ XULTreeGridCellAccessible::RelationByTyp
 // XULTreeGridCellAccessible: public implementation
 
 bool
 XULTreeGridCellAccessible::CellInvalidated()
 {
 
   nsAutoString textEquiv;
 
-  if (mColumn->Type() == dom::TreeColumnBinding::TYPE_CHECKBOX) {
+  if (mColumn->Type() == dom::TreeColumn_Binding::TYPE_CHECKBOX) {
     mTreeView->GetCellValue(mRow, mColumn, textEquiv);
     if (mCachedTextEquiv != textEquiv) {
       bool isEnabled = textEquiv.EqualsLiteral("true");
       RefPtr<AccEvent> accEvent =
         new AccStateChangeEvent(this, states::CHECKED, isEnabled);
       nsEventShell::FireEvent(accEvent);
 
       mCachedTextEquiv = textEquiv;
--- a/devtools/shared/heapsnapshot/DominatorTree.cpp
+++ b/devtools/shared/heapsnapshot/DominatorTree.cpp
@@ -128,13 +128,13 @@ NS_IMPL_CYCLE_COLLECTING_RELEASE(Dominat
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(DominatorTree)
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 /* virtual */ JSObject*
 DominatorTree::WrapObject(JSContext* aCx, JS::HandleObject aGivenProto)
 {
-  return dom::DominatorTreeBinding::Wrap(aCx, this, aGivenProto);
+  return dom::DominatorTree_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace devtools
 } // namespace mozilla
--- a/devtools/shared/heapsnapshot/HeapSnapshot.cpp
+++ b/devtools/shared/heapsnapshot/HeapSnapshot.cpp
@@ -81,17 +81,17 @@ NS_IMPL_CYCLE_COLLECTING_RELEASE(HeapSna
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(HeapSnapshot)
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 /* virtual */ JSObject*
 HeapSnapshot::WrapObject(JSContext* aCx, HandleObject aGivenProto)
 {
-  return HeapSnapshotBinding::Wrap(aCx, this, aGivenProto);
+  return HeapSnapshot_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 /*** Reading Heap Snapshots ***********************************************************************/
 
 /* static */ already_AddRefed<HeapSnapshot>
 HeapSnapshot::Create(JSContext* cx,
                      GlobalObject& global,
                      const uint8_t* buffer,
--- a/docshell/shistory/ChildSHistory.cpp
+++ b/docshell/shistory/ChildSHistory.cpp
@@ -119,17 +119,17 @@ NS_IMPL_CYCLE_COLLECTING_RELEASE(ChildSH
 
 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(ChildSHistory,
                                       mDocShell,
                                       mHistory)
 
 JSObject*
 ChildSHistory::WrapObject(JSContext* cx, JS::Handle<JSObject*> aGivenProto)
 {
-  return ChildSHistoryBinding::Wrap(cx, this, aGivenProto);
+  return ChildSHistory_Binding::Wrap(cx, this, aGivenProto);
 }
 
 nsISupports*
 ChildSHistory::GetParentObject() const
 {
   // We want to get the TabChildGlobal, which is the
   // nsIContentFrameMessageManager on mDocShell.
   nsCOMPtr<nsIContentFrameMessageManager> mm =
--- a/docshell/shistory/ParentSHistory.cpp
+++ b/docshell/shistory/ParentSHistory.cpp
@@ -55,17 +55,17 @@ NS_IMPL_CYCLE_COLLECTING_ADDREF(ParentSH
 NS_IMPL_CYCLE_COLLECTING_RELEASE(ParentSHistory)
 
 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(ParentSHistory,
                                       mFrameLoader)
 
 JSObject*
 ParentSHistory::WrapObject(JSContext* cx, JS::Handle<JSObject*> aGivenProto)
 {
-  return ParentSHistoryBinding::Wrap(cx, this, aGivenProto);
+  return ParentSHistory_Binding::Wrap(cx, this, aGivenProto);
 }
 
 nsISupports*
 ParentSHistory::GetParentObject() const
 {
   return mFrameLoader;
 }
 
--- a/dom/abort/AbortController.cpp
+++ b/dom/abort/AbortController.cpp
@@ -38,17 +38,17 @@ AbortController::Constructor(const Globa
 AbortController::AbortController(nsIGlobalObject* aGlobal)
   : mGlobal(aGlobal)
   , mAborted(false)
 {}
 
 JSObject*
 AbortController::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return AbortControllerBinding::Wrap(aCx, this, aGivenProto);
+  return AbortController_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsIGlobalObject*
 AbortController::GetParentObject() const
 {
   return mGlobal;
 }
 
--- a/dom/abort/AbortSignal.cpp
+++ b/dom/abort/AbortSignal.cpp
@@ -40,17 +40,17 @@ AbortSignal::AbortSignal(AbortController
 
 AbortSignal::AbortSignal(bool aAborted)
   : mAborted(aAborted)
 {}
 
 JSObject*
 AbortSignal::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return AbortSignalBinding::Wrap(aCx, this, aGivenProto);
+  return AbortSignal_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 bool
 AbortSignal::Aborted() const
 {
   return mAborted;
 }
 
--- a/dom/animation/Animation.cpp
+++ b/dom/animation/Animation.cpp
@@ -38,17 +38,17 @@ NS_IMPL_ADDREF_INHERITED(Animation, DOME
 NS_IMPL_RELEASE_INHERITED(Animation, DOMEventTargetHelper)
 
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(Animation)
 NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper)
 
 JSObject*
 Animation::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return dom::AnimationBinding::Wrap(aCx, this, aGivenProto);
+  return dom::Animation_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 // ---------------------------------------------------------------------------
 //
 // Utility methods
 //
 // ---------------------------------------------------------------------------
 
--- a/dom/animation/CSSPseudoElement.cpp
+++ b/dom/animation/CSSPseudoElement.cpp
@@ -42,17 +42,17 @@ ParentObject
 CSSPseudoElement::GetParentObject() const
 {
   return mParentElement->GetParentObject();
 }
 
 JSObject*
 CSSPseudoElement::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return CSSPseudoElementBinding::Wrap(aCx, this, aGivenProto);
+  return CSSPseudoElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 CSSPseudoElement::GetAnimations(const AnimationFilter& filter,
                                 nsTArray<RefPtr<Animation>>& aRetVal)
 {
   nsIDocument* doc = mParentElement->GetComposedDoc();
   if (doc) {
--- a/dom/animation/DocumentTimeline.cpp
+++ b/dom/animation/DocumentTimeline.cpp
@@ -40,17 +40,17 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
 NS_INTERFACE_MAP_END_INHERITING(AnimationTimeline)
 
 NS_IMPL_ADDREF_INHERITED(DocumentTimeline, AnimationTimeline)
 NS_IMPL_RELEASE_INHERITED(DocumentTimeline, AnimationTimeline)
 
 JSObject*
 DocumentTimeline::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return DocumentTimelineBinding::Wrap(aCx, this, aGivenProto);
+  return DocumentTimeline_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 /* static */ already_AddRefed<DocumentTimeline>
 DocumentTimeline::Constructor(const GlobalObject& aGlobal,
                               const DocumentTimelineOptions& aOptions,
                               ErrorResult& aRv)
 {
   nsIDocument* doc = AnimationUtils::GetCurrentRealmDocument(aGlobal.Context());
--- a/dom/animation/KeyframeEffect.cpp
+++ b/dom/animation/KeyframeEffect.cpp
@@ -80,17 +80,17 @@ KeyframeEffect::KeyframeEffect(
   , mCumulativeChangeHint(nsChangeHint(0))
 {
 }
 
 JSObject*
 KeyframeEffect::WrapObject(JSContext* aCx,
                                    JS::Handle<JSObject*> aGivenProto)
 {
-  return KeyframeEffectBinding::Wrap(aCx, this, aGivenProto);
+  return KeyframeEffect_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 IterationCompositeOperation KeyframeEffect::IterationComposite(
   CallerType /*aCallerType*/) const
 {
   return mEffectOptions.mIterationComposite;
 }
 
--- a/dom/base/AnonymousContent.cpp
+++ b/dom/base/AnonymousContent.cpp
@@ -201,17 +201,17 @@ AnonymousContent::GetElementById(const n
   return nullptr;
 }
 
 bool
 AnonymousContent::WrapObject(JSContext* aCx,
                              JS::Handle<JSObject*> aGivenProto,
                              JS::MutableHandle<JSObject*> aReflector)
 {
-  return AnonymousContentBinding::Wrap(aCx, this, aGivenProto, aReflector);
+  return AnonymousContent_Binding::Wrap(aCx, this, aGivenProto, aReflector);
 }
 
 void
 AnonymousContent::GetComputedStylePropertyValue(const nsAString& aElementId,
                                                 const nsAString& aPropertyName,
                                                 DOMString& aResult,
                                                 ErrorResult& aRv)
 {
--- a/dom/base/Attr.cpp
+++ b/dom/base/Attr.cpp
@@ -310,13 +310,13 @@ void
 Attr::Shutdown()
 {
   sInitialized = false;
 }
 
 JSObject*
 Attr::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return AttrBinding::Wrap(aCx, this, aGivenProto);
+  return Attr_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/base/BarProps.cpp
+++ b/dom/base/BarProps.cpp
@@ -31,17 +31,17 @@ nsPIDOMWindowInner*
 BarProp::GetParentObject() const
 {
   return mDOMWindow->AsInner();
 }
 
 JSObject*
 BarProp::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return BarPropBinding::Wrap(aCx, this, aGivenProto);
+  return BarProp_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(BarProp, mDOMWindow)
 NS_IMPL_CYCLE_COLLECTING_ADDREF(BarProp)
 NS_IMPL_CYCLE_COLLECTING_RELEASE(BarProp)
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(BarProp)
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
--- a/dom/base/ChildProcessMessageManager.h
+++ b/dom/base/ChildProcessMessageManager.h
@@ -21,17 +21,17 @@ public:
                         MessageManagerFlags::MM_PROCESSMANAGER |
                         MessageManagerFlags::MM_OWNSCALLBACK)
   {
     mozilla::HoldJSObjects(this);
   }
 
   virtual JSObject* WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
   {
-    return ChildProcessMessageManagerBinding::Wrap(aCx, this, aGivenProto);
+    return ChildProcessMessageManager_Binding::Wrap(aCx, this, aGivenProto);
   }
 
 protected:
   virtual ~ChildProcessMessageManager()
   {
     mozilla::DropJSObjects(this);
   }
 };
--- a/dom/base/ChromeMessageBroadcaster.cpp
+++ b/dom/base/ChromeMessageBroadcaster.cpp
@@ -13,13 +13,13 @@ namespace mozilla {
 namespace dom {
 
 JSObject*
 ChromeMessageBroadcaster::WrapObject(JSContext* aCx,
                                      JS::Handle<JSObject*> aGivenProto)
 {
   MOZ_ASSERT(nsContentUtils::IsSystemCaller(aCx));
 
-  return ChromeMessageBroadcasterBinding::Wrap(aCx, this, aGivenProto);
+  return ChromeMessageBroadcaster_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/base/ChromeMessageSender.cpp
+++ b/dom/base/ChromeMessageSender.cpp
@@ -11,13 +11,13 @@ namespace mozilla {
 namespace dom {
 
 JSObject*
 ChromeMessageSender::WrapObject(JSContext* aCx,
                                 JS::Handle<JSObject*> aGivenProto)
 {
   MOZ_ASSERT(nsContentUtils::IsSystemCaller(aCx));
 
-  return ChromeMessageSenderBinding::Wrap(aCx, this, aGivenProto);
+  return ChromeMessageSender_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/base/ChromeNodeList.cpp
+++ b/dom/base/ChromeNodeList.cpp
@@ -17,17 +17,17 @@ ChromeNodeList::Constructor(const Global
   nsIDocument* root = win ? win->GetExtantDoc() : nullptr;
   RefPtr<ChromeNodeList> list = new ChromeNodeList(root);
   return list.forget();
 }
 
 JSObject*
 ChromeNodeList::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return ChromeNodeListBinding::Wrap(aCx, this, aGivenProto);
+  return ChromeNodeList_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 ChromeNodeList::Append(nsINode& aNode, ErrorResult& aError)
 {
   if (!aNode.IsContent()) {
     // nsINodeList deals with nsIContent objects only, so need to
     // filter out other nodes for now.
--- a/dom/base/Comment.cpp
+++ b/dom/base/Comment.cpp
@@ -63,13 +63,13 @@ Comment::Constructor(const GlobalObject&
   }
 
   return window->GetDoc()->CreateComment(aData);
 }
 
 JSObject*
 Comment::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return CommentBinding::Wrap(aCx, this, aGivenProto);
+  return Comment_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/base/Crypto.cpp
+++ b/dom/base/Crypto.cpp
@@ -36,17 +36,17 @@ Crypto::Crypto(nsIGlobalObject* aParent)
 
 Crypto::~Crypto()
 {
 }
 
 /* virtual */ JSObject*
 Crypto::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return CryptoBinding::Wrap(aCx, this, aGivenProto);
+  return Crypto_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 Crypto::GetRandomValues(JSContext* aCx, const ArrayBufferView& aArray,
                         JS::MutableHandle<JSObject*> aRetval,
                         ErrorResult& aRv)
 {
   JS::Rooted<JSObject*> view(aCx, aArray.Obj());
--- a/dom/base/CustomElementRegistry.cpp
+++ b/dom/base/CustomElementRegistry.cpp
@@ -653,17 +653,17 @@ CustomElementRegistry::UpgradeCandidates
       reactionsStack->EnqueueUpgradeReaction(elem, aDefinition);
     }
   }
 }
 
 JSObject*
 CustomElementRegistry::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return CustomElementRegistryBinding::Wrap(aCx, this, aGivenProto);
+  return CustomElementRegistry_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsISupports* CustomElementRegistry::GetParentObject() const
 {
   return mWindow;
 }
 
 DocGroup*
--- a/dom/base/DOMError.cpp
+++ b/dom/base/DOMError.cpp
@@ -54,17 +54,17 @@ DOMError::DOMError(nsPIDOMWindowInner* a
 
 DOMError::~DOMError()
 {
 }
 
 JSObject*
 DOMError::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return DOMErrorBinding::Wrap(aCx, this, aGivenProto);
+  return DOMError_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 /* static */ already_AddRefed<DOMError>
 DOMError::Constructor(const GlobalObject& aGlobal,
                       const nsAString& aName, const nsAString& aMessage,
                       ErrorResult& aRv)
 {
   nsCOMPtr<nsPIDOMWindowInner> window = do_QueryInterface(aGlobal.GetAsSupports());
--- a/dom/base/DOMException.cpp
+++ b/dom/base/DOMException.cpp
@@ -19,39 +19,39 @@
 #include "mozilla/dom/DOMExceptionBinding.h"
 #include "mozilla/ErrorResult.h"
 
 using namespace mozilla;
 using namespace mozilla::dom;
 
 enum DOM4ErrorTypeCodeMap {
   /* DOM4 errors from http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#domexception */
-  IndexSizeError             = DOMExceptionBinding::INDEX_SIZE_ERR,
-  HierarchyRequestError      = DOMExceptionBinding::HIERARCHY_REQUEST_ERR,
-  WrongDocumentError         = DOMExceptionBinding::WRONG_DOCUMENT_ERR,
-  InvalidCharacterError      = DOMExceptionBinding::INVALID_CHARACTER_ERR,
-  NoModificationAllowedError = DOMExceptionBinding::NO_MODIFICATION_ALLOWED_ERR,
-  NotFoundError              = DOMExceptionBinding::NOT_FOUND_ERR,
-  NotSupportedError          = DOMExceptionBinding::NOT_SUPPORTED_ERR,
+  IndexSizeError             = DOMException_Binding::INDEX_SIZE_ERR,
+  HierarchyRequestError      = DOMException_Binding::HIERARCHY_REQUEST_ERR,
+  WrongDocumentError         = DOMException_Binding::WRONG_DOCUMENT_ERR,
+  InvalidCharacterError      = DOMException_Binding::INVALID_CHARACTER_ERR,
+  NoModificationAllowedError = DOMException_Binding::NO_MODIFICATION_ALLOWED_ERR,
+  NotFoundError              = DOMException_Binding::NOT_FOUND_ERR,
+  NotSupportedError          = DOMException_Binding::NOT_SUPPORTED_ERR,
   // Can't remove until setNamedItem is removed
-  InUseAttributeError        = DOMExceptionBinding::INUSE_ATTRIBUTE_ERR,
-  InvalidStateError          = DOMExceptionBinding::INVALID_STATE_ERR,
-  SyntaxError                = DOMExceptionBinding::SYNTAX_ERR,
-  InvalidModificationError   = DOMExceptionBinding::INVALID_MODIFICATION_ERR,
-  NamespaceError             = DOMExceptionBinding::NAMESPACE_ERR,
-  InvalidAccessError         = DOMExceptionBinding::INVALID_ACCESS_ERR,
-  TypeMismatchError          = DOMExceptionBinding::TYPE_MISMATCH_ERR,
-  SecurityError              = DOMExceptionBinding::SECURITY_ERR,
-  NetworkError               = DOMExceptionBinding::NETWORK_ERR,
-  AbortError                 = DOMExceptionBinding::ABORT_ERR,
-  URLMismatchError           = DOMExceptionBinding::URL_MISMATCH_ERR,
-  QuotaExceededError         = DOMExceptionBinding::QUOTA_EXCEEDED_ERR,
-  TimeoutError               = DOMExceptionBinding::TIMEOUT_ERR,
-  InvalidNodeTypeError       = DOMExceptionBinding::INVALID_NODE_TYPE_ERR,
-  DataCloneError             = DOMExceptionBinding::DATA_CLONE_ERR,
+  InUseAttributeError        = DOMException_Binding::INUSE_ATTRIBUTE_ERR,
+  InvalidStateError          = DOMException_Binding::INVALID_STATE_ERR,
+  SyntaxError                = DOMException_Binding::SYNTAX_ERR,
+  InvalidModificationError   = DOMException_Binding::INVALID_MODIFICATION_ERR,
+  NamespaceError             = DOMException_Binding::NAMESPACE_ERR,
+  InvalidAccessError         = DOMException_Binding::INVALID_ACCESS_ERR,
+  TypeMismatchError          = DOMException_Binding::TYPE_MISMATCH_ERR,
+  SecurityError              = DOMException_Binding::SECURITY_ERR,
+  NetworkError               = DOMException_Binding::NETWORK_ERR,
+  AbortError                 = DOMException_Binding::ABORT_ERR,
+  URLMismatchError           = DOMException_Binding::URL_MISMATCH_ERR,
+  QuotaExceededError         = DOMException_Binding::QUOTA_EXCEEDED_ERR,
+  TimeoutError               = DOMException_Binding::TIMEOUT_ERR,
+  InvalidNodeTypeError       = DOMException_Binding::INVALID_NODE_TYPE_ERR,
+  DataCloneError             = DOMException_Binding::DATA_CLONE_ERR,
   InvalidPointerId           = 0,
   EncodingError              = 0,
 
   /* XXX Should be JavaScript native errors */
   TypeError                  = 0,
   RangeError                 = 0,
 
   /* IndexedDB errors http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#exceptions */
@@ -290,17 +290,17 @@ Exception::ToString(JSContext* aCx, nsAC
   _retval.Truncate();
   _retval.AppendPrintf(format, msg, static_cast<uint32_t>(mResult), resultName,
                        location.get(), data);
 }
 
 JSObject*
 Exception::WrapObject(JSContext* cx, JS::Handle<JSObject*> aGivenProto)
 {
-  return ExceptionBinding::Wrap(cx, this, aGivenProto);
+  return Exception_Binding::Wrap(cx, this, aGivenProto);
 }
 
 void
 Exception::GetMessageMoz(nsString& retval)
 {
   CopyUTF8toUTF16(mMessage, retval);
 }
 
@@ -419,17 +419,17 @@ DOMException::Constructor(GlobalObject& 
                      name,
                      exceptionCode);
   return retval.forget();
 }
 
 JSObject*
 DOMException::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return DOMExceptionBinding::Wrap(aCx, this, aGivenProto);
+  return DOMException_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 /* static */already_AddRefed<DOMException>
 DOMException::Create(nsresult aRv)
 {
   nsCString name;
   nsCString message;
   uint16_t code;
--- a/dom/base/DOMImplementation.cpp
+++ b/dom/base/DOMImplementation.cpp
@@ -25,17 +25,17 @@ NS_INTERFACE_MAP_END
 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(DOMImplementation, mOwner)
 
 NS_IMPL_CYCLE_COLLECTING_ADDREF(DOMImplementation)
 NS_IMPL_CYCLE_COLLECTING_RELEASE(DOMImplementation)
 
 JSObject*
 DOMImplementation::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return DOMImplementationBinding::Wrap(aCx, this, aGivenProto);
+  return DOMImplementation_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 already_AddRefed<DocumentType>
 DOMImplementation::CreateDocumentType(const nsAString& aQualifiedName,
                                       const nsAString& aPublicId,
                                       const nsAString& aSystemId,
                                       ErrorResult& aRv)
 {
--- a/dom/base/DOMIntersectionObserver.h
+++ b/dom/base/DOMIntersectionObserver.h
@@ -48,17 +48,17 @@ public:
 
   nsISupports* GetParentObject() const
   {
     return mOwner;
   }
 
   virtual JSObject* WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
   {
-    return mozilla::dom::IntersectionObserverEntryBinding::Wrap(aCx, this, aGivenProto);
+    return mozilla::dom::IntersectionObserverEntry_Binding::Wrap(aCx, this, aGivenProto);
   }
 
   DOMHighResTimeStamp Time()
   {
     return mTime;
   }
 
   DOMRect* GetRootBounds()
@@ -130,17 +130,17 @@ public:
   static already_AddRefed<DOMIntersectionObserver>
   Constructor(const mozilla::dom::GlobalObject& aGlobal,
               mozilla::dom::IntersectionCallback& aCb,
               const mozilla::dom::IntersectionObserverInit& aOptions,
               mozilla::ErrorResult& aRv);
 
   virtual JSObject* WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
   {
-    return mozilla::dom::IntersectionObserverBinding::Wrap(aCx, this, aGivenProto);
+    return mozilla::dom::IntersectionObserver_Binding::Wrap(aCx, this, aGivenProto);
   }
 
   nsISupports* GetParentObject() const
   {
     return mOwner;
   }
 
   Element* GetRoot() const {
--- a/dom/base/DOMMatrix.cpp
+++ b/dom/base/DOMMatrix.cpp
@@ -31,17 +31,17 @@ static const double radPerDegree = 2.0 *
 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(DOMMatrixReadOnly, mParent)
 
 NS_IMPL_CYCLE_COLLECTION_ROOT_NATIVE(DOMMatrixReadOnly, AddRef)
 NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(DOMMatrixReadOnly, Release)
 
 JSObject*
 DOMMatrixReadOnly::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return DOMMatrixReadOnlyBinding::Wrap(aCx, this, aGivenProto);
+  return DOMMatrixReadOnly_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 already_AddRefed<DOMMatrixReadOnly>
 DOMMatrixReadOnly::Constructor(
   const GlobalObject& aGlobal,
   const Optional<StringOrUnrestrictedDoubleSequence>& aArg,
   ErrorResult& aRv)
 {
@@ -734,13 +734,13 @@ DOMMatrix::SetMatrixValue(const nsAStrin
 {
   DOMMatrixReadOnly::SetMatrixValue(aTransformList, aRv);
   return this;
 }
 
 JSObject*
 DOMMatrix::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return DOMMatrixBinding::Wrap(aCx, this, aGivenProto);
+  return DOMMatrix_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/base/DOMParser.h
+++ b/dom/base/DOMParser.h
@@ -63,17 +63,17 @@ public:
 
   nsIGlobalObject* GetParentObject() const
   {
     return mOwner;
   }
 
   virtual JSObject* WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
   {
-    return mozilla::dom::DOMParserBinding::Wrap(aCx, this, aGivenProto);
+    return mozilla::dom::DOMParser_Binding::Wrap(aCx, this, aGivenProto);
   }
 
   // A way to create a non-global-associated DOMParser from C++.
   static already_AddRefed<DOMParser> CreateWithoutGlobal(ErrorResult& aRv);
 
 private:
   DOMParser(nsIGlobalObject* aOwner, nsIPrincipal* aDocPrincipal,
             nsIURI* aDocumentURI, nsIURI* aBaseURI);
--- a/dom/base/DOMPoint.cpp
+++ b/dom/base/DOMPoint.cpp
@@ -33,17 +33,17 @@ DOMPointReadOnly::Constructor(const Glob
   RefPtr<DOMPointReadOnly> obj =
     new DOMPointReadOnly(aGlobal.GetAsSupports(), aX, aY, aZ, aW);
   return obj.forget();
 }
 
 JSObject*
 DOMPointReadOnly::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return DOMPointReadOnlyBinding::Wrap(aCx, this, aGivenProto);
+  return DOMPointReadOnly_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 already_AddRefed<DOMPoint>
 DOMPoint::FromPoint(const GlobalObject& aGlobal, const DOMPointInit& aParams)
 {
   RefPtr<DOMPoint> obj =
     new DOMPoint(aGlobal.GetAsSupports(), aParams.mX, aParams.mY,
                  aParams.mZ, aParams.mW);
@@ -57,10 +57,10 @@ DOMPoint::Constructor(const GlobalObject
   RefPtr<DOMPoint> obj =
     new DOMPoint(aGlobal.GetAsSupports(), aX, aY, aZ, aW);
   return obj.forget();
 }
 
 JSObject*
 DOMPoint::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return DOMPointBinding::Wrap(aCx, this, aGivenProto);
+  return DOMPoint_Binding::Wrap(aCx, this, aGivenProto);
 }
--- a/dom/base/DOMQuad.cpp
+++ b/dom/base/DOMQuad.cpp
@@ -36,17 +36,17 @@ DOMQuad::DOMQuad(nsISupports* aParent)
 
 DOMQuad::~DOMQuad()
 {
 }
 
 JSObject*
 DOMQuad::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return DOMQuadBinding::Wrap(aCx, this, aGivenProto);
+  return DOMQuad_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 already_AddRefed<DOMQuad>
 DOMQuad::Constructor(const GlobalObject& aGlobal,
                      const DOMPointInit& aP1,
                      const DOMPointInit& aP2,
                      const DOMPointInit& aP3,
                      const DOMPointInit& aP4,
--- a/dom/base/DOMRect.cpp
+++ b/dom/base/DOMRect.cpp
@@ -20,17 +20,17 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 JSObject*
 DOMRectReadOnly::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
   MOZ_ASSERT(mParent);
-  return DOMRectReadOnlyBinding::Wrap(aCx, this, aGivenProto);
+  return DOMRectReadOnly_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 already_AddRefed<DOMRectReadOnly>
 DOMRectReadOnly::Constructor(const GlobalObject& aGlobal, double aX, double aY,
                              double aWidth, double aHeight, ErrorResult& aRv)
 {
   RefPtr<DOMRectReadOnly> obj =
     new DOMRectReadOnly(aGlobal.GetAsSupports(), aX, aY, aWidth, aHeight);
@@ -38,17 +38,17 @@ DOMRectReadOnly::Constructor(const Globa
 }
 
 // -----------------------------------------------------------------------------
 
 JSObject*
 DOMRect::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
   MOZ_ASSERT(mParent);
-  return DOMRectBinding::Wrap(aCx, this, aGivenProto);
+  return DOMRect_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 already_AddRefed<DOMRect>
 DOMRect::Constructor(const GlobalObject& aGlobal, double aX, double aY,
                      double aWidth, double aHeight, ErrorResult& aRv)
 {
   RefPtr<DOMRect> obj =
     new DOMRect(aGlobal.GetAsSupports(), aX, aY, aWidth, aHeight);
@@ -66,17 +66,17 @@ NS_INTERFACE_TABLE_HEAD(DOMRectList)
 NS_INTERFACE_MAP_END
 
 NS_IMPL_CYCLE_COLLECTING_ADDREF(DOMRectList)
 NS_IMPL_CYCLE_COLLECTING_RELEASE(DOMRectList)
 
 JSObject*
 DOMRectList::WrapObject(JSContext *cx, JS::Handle<JSObject*> aGivenProto)
 {
-  return mozilla::dom::DOMRectListBinding::Wrap(cx, this, aGivenProto);
+  return mozilla::dom::DOMRectList_Binding::Wrap(cx, this, aGivenProto);
 }
 
 static double
 RoundFloat(double aValue)
 {
   return floor(aValue + 0.5);
 }
 
--- a/dom/base/DOMRequest.cpp
+++ b/dom/base/DOMRequest.cpp
@@ -69,17 +69,17 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
 NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper)
 
 NS_IMPL_ADDREF_INHERITED(DOMRequest, DOMEventTargetHelper)
 NS_IMPL_RELEASE_INHERITED(DOMRequest, DOMEventTargetHelper)
 
 /* virtual */ JSObject*
 DOMRequest::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return DOMRequestBinding::Wrap(aCx, this, aGivenProto);
+  return DOMRequest_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 DOMRequest::FireSuccess(JS::Handle<JS::Value> aResult)
 {
   NS_ASSERTION(!mDone, "mDone shouldn't have been set to true already!");
   NS_ASSERTION(!mError, "mError shouldn't have been set!");
   NS_ASSERTION(mResult.isUndefined(), "mResult shouldn't have been set!");
--- a/dom/base/DOMStringList.cpp
+++ b/dom/base/DOMStringList.cpp
@@ -22,13 +22,13 @@ NS_INTERFACE_MAP_END
 
 DOMStringList::~DOMStringList()
 {
 }
 
 JSObject*
 DOMStringList::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return DOMStringListBinding::Wrap(aCx, this, aGivenProto);
+  return DOMStringList_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/base/DocumentFragment.cpp
+++ b/dom/base/DocumentFragment.cpp
@@ -22,17 +22,17 @@
 #include "mozilla/IntegerPrintfMacros.h"
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 DocumentFragment::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return DocumentFragmentBinding::Wrap(aCx, this, aGivenProto);
+  return DocumentFragment_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 bool
 DocumentFragment::IsNodeOfType(uint32_t aFlags) const
 {
   return false;
 }
 
--- a/dom/base/DocumentType.cpp
+++ b/dom/base/DocumentType.cpp
@@ -38,17 +38,17 @@ NS_NewDOMDocumentType(nsNodeInfoManager*
 }
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 DocumentType::WrapNode(JSContext *cx, JS::Handle<JSObject*> aGivenProto)
 {
-  return DocumentTypeBinding::Wrap(cx, this, aGivenProto);
+  return DocumentType_Binding::Wrap(cx, this, aGivenProto);
 }
 
 DocumentType::DocumentType(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo,
                            const nsAString& aPublicId,
                            const nsAString& aSystemId,
                            const nsAString& aInternalSubset) :
   CharacterData(aNodeInfo),
   mPublicId(aPublicId),
--- a/dom/base/Element.cpp
+++ b/dom/base/Element.cpp
@@ -2270,17 +2270,17 @@ Element::DispatchClickEvent(nsPresContex
   WidgetMouseEvent* sourceMouseEvent = aSourceEvent->AsMouseEvent();
   if (sourceMouseEvent) {
     clickCount = sourceMouseEvent->mClickCount;
     pressure = sourceMouseEvent->pressure;
     pointerId = sourceMouseEvent->pointerId;
     inputSource = sourceMouseEvent->inputSource;
   } else if (aSourceEvent->mClass == eKeyboardEventClass) {
     event.mFlags.mIsPositionless = true;
-    inputSource = MouseEventBinding::MOZ_SOURCE_KEYBOARD;
+    inputSource = MouseEvent_Binding::MOZ_SOURCE_KEYBOARD;
   }
   event.pressure = pressure;
   event.mClickCount = clickCount;
   event.pointerId = pointerId;
   event.inputSource = inputSource;
   event.mModifiers = aSourceEvent->mModifiers;
   if (aExtraEventFlags) {
     // Be careful not to overwrite existing flags!
@@ -2419,18 +2419,18 @@ Element::MaybeCheckSameAttrVal(int32_t a
       bool valueMatches = aValue.EqualsAsStrings(*info.mValue);
       if (valueMatches && aPrefix == info.mName->GetPrefix()) {
         return true;
       }
       modification = true;
     }
   }
   *aModType = modification ?
-    static_cast<uint8_t>(MutationEventBinding::MODIFICATION) :
-    static_cast<uint8_t>(MutationEventBinding::ADDITION);
+    static_cast<uint8_t>(MutationEvent_Binding::MODIFICATION) :
+    static_cast<uint8_t>(MutationEvent_Binding::ADDITION);
   return false;
 }
 
 bool
 Element::OnlyNotifySameValueSet(int32_t aNamespaceID, nsAtom* aName,
                                 nsAtom* aPrefix,
                                 const nsAttrValueOrString& aValue,
                                 bool aNotify, nsAttrValue& aOldValue,
@@ -2468,17 +2468,17 @@ Element::SetSingleClassFromParser(nsAtom
   SetMayHaveClass();
 
   return SetAttrAndNotify(kNameSpaceID_None,
                           nsGkAtoms::_class,
                           nullptr, // prefix
                           nullptr, // old value
                           value,
                           nullptr,
-                          static_cast<uint8_t>(MutationEventBinding::ADDITION),
+                          static_cast<uint8_t>(MutationEvent_Binding::ADDITION),
                           false, // hasListeners
                           false, // notify
                           kCallAfterSetAttr,
                           document,
                           updateBatch);
 }
 
 nsresult
@@ -2684,17 +2684,17 @@ Element::SetAttrAndNotify(int32_t aNames
         oldValueAtom = aParsedValue.GetAsAtom();
       }
       RefPtr<nsAtom> newValueAtom = valueForAfterSetAttr.GetAsAtom();
       nsAutoString ns;
       nsContentUtils::NameSpaceManager()->GetNameSpaceURI(aNamespaceID, ns);
 
       LifecycleCallbackArgs args = {
         nsDependentAtomString(aName),
-        aModType == MutationEventBinding::ADDITION ?
+        aModType == MutationEvent_Binding::ADDITION ?
           VoidString() : nsDependentAtomString(oldValueAtom),
         nsDependentAtomString(newValueAtom),
         (ns.IsEmpty() ? VoidString() : ns)
       };
 
       nsContentUtils::EnqueueLifecycleCallback(nsIDocument::eAttributeChanged,
         this, &args, nullptr, definition);
     }
@@ -2919,17 +2919,17 @@ Element::UnsetAttr(int32_t aNameSpaceID,
     return NS_OK;
   }
 
   nsIDocument *document = GetComposedDoc();
   mozAutoDocUpdate updateBatch(document, aNotify);
 
   if (aNotify) {
     nsNodeUtils::AttributeWillChange(this, aNameSpaceID, aName,
-                                     MutationEventBinding::REMOVAL,
+                                     MutationEvent_Binding::REMOVAL,
                                      nullptr);
   }
 
   nsresult rv = BeforeSetAttr(aNameSpaceID, aName, nullptr, aNotify);
   NS_ENSURE_SUCCESS(rv, rv);
 
   bool hasMutationListeners = aNotify &&
     nsContentUtils::HasMutationListeners(this,
@@ -3002,34 +3002,34 @@ Element::UnsetAttr(int32_t aNameSpaceID,
   NS_ENSURE_SUCCESS(rv, rv);
 
   UpdateState(aNotify);
 
   if (aNotify) {
     // We can always pass oldValue here since there is no new value which could
     // have corrupted it.
     nsNodeUtils::AttributeChanged(this, aNameSpaceID, aName,
-                                  MutationEventBinding::REMOVAL, &oldValue);
+                                  MutationEvent_Binding::REMOVAL, &oldValue);
   }
 
   if (aNameSpaceID == kNameSpaceID_None && aName == nsGkAtoms::dir) {
     OnSetDirAttr(this, nullptr, hadValidDir, hadDirAuto, aNotify);
   }
 
   if (hasMutationListeners) {
     InternalMutationEvent mutation(true, eLegacyAttrModified);
 
     mutation.mRelatedNode = attrNode;
     mutation.mAttrName = aName;
 
     nsAutoString value;
     oldValue.ToString(value);
     if (!value.IsEmpty())
       mutation.mPrevAttrValue = NS_Atomize(value);
-    mutation.mAttrChange = MutationEventBinding::REMOVAL;
+    mutation.mAttrChange = MutationEvent_Binding::REMOVAL;
 
     mozAutoSubtreeModified subtree(OwnerDoc(), this);
     (new AsyncEventDispatcher(this, mutation))->RunDOMEventWhenSafe();
   }
 
   return NS_OK;
 }
 
--- a/dom/base/Element.h
+++ b/dom/base/Element.h
@@ -675,18 +675,18 @@ public:
    * attribute is currently set, and the new value that is about to be set is
    * different to the current value. As a perf optimization the new and old
    * values will not actually be compared if we aren't notifying and we don't
    * have mutation listeners (in which case it's cheap to just return false
    * and let the caller go ahead and set the value).
    * @param aOldValue [out] Set to the old value of the attribute, but only if
    *   there are event listeners. If set, the type of aOldValue will be either
    *   nsAttrValue::eString or nsAttrValue::eAtom.
-   * @param aModType [out] Set to MutationEventBinding::MODIFICATION or to
-   *   MutationEventBinding::ADDITION, but only if this helper returns true
+   * @param aModType [out] Set to MutationEvent_Binding::MODIFICATION or to
+   *   MutationEvent_Binding::ADDITION, but only if this helper returns true
    * @param aHasListeners [out] Set to true if there are mutation event
    *   listeners listening for NS_EVENT_BITS_MUTATION_ATTRMODIFIED
    * @param aOldValueSet [out] Indicates whether an old attribute value has been
    *   stored in aOldValue. The bool will be set to true if a value was stored.
    */
   bool MaybeCheckSameAttrVal(int32_t aNamespaceID, nsAtom* aName,
                              nsAtom* aPrefix,
                              const nsAttrValueOrString& aValue,
@@ -702,18 +702,18 @@ public:
    * @param aName The local name of the attribute
    * @param aPrefix The prefix of the attribute
    * @param aValue The value that the attribute is being changed to
    * @param aNotify If true, mutation listeners will be notified if they exist
    *   and the attribute value is changing
    * @param aOldValue [out] Set to the old value of the attribute, but only if
    *   there are event listeners. If set, the type of aOldValue will be either
    *   nsAttrValue::eString or nsAttrValue::eAtom.
-   * @param aModType [out] Set to MutationEventBinding::MODIFICATION or to
-   *   MutationEventBinding::ADDITION, but only if this helper returns true
+   * @param aModType [out] Set to MutationEvent_Binding::MODIFICATION or to
+   *   MutationEvent_Binding::ADDITION, but only if this helper returns true
    * @param aHasListeners [out] Set to true if there are mutation event
    *   listeners listening for NS_EVENT_BITS_MUTATION_ATTRMODIFIED
    * @param aOldValueSet [out] Indicates whether an old attribute value has been
    *   stored in aOldValue. The bool will be set to true if a value was stored.
    */
   bool OnlyNotifySameValueSet(int32_t aNamespaceID, nsAtom* aName,
                               nsAtom* aPrefix,
                               const nsAttrValueOrString& aValue,
@@ -1695,17 +1695,17 @@ protected:
    * @param aMaybeScriptedPrincipal
    *                      the principal of the scripted caller responsible for
    *                      setting the attribute, or null if no scripted caller
    *                      can be determined. A null value here does not
    *                      guarantee that there is no scripted caller, but a
    *                      non-null value does guarantee that a scripted caller
    *                      with the given principal is directly responsible for
    *                      the attribute change.
-   * @param aModType      MutationEventBinding::MODIFICATION or ADDITION.  Only
+   * @param aModType      MutationEvent_Binding::MODIFICATION or ADDITION.  Only
    *                      needed if aFireMutation or aNotify is true.
    * @param aFireMutation should mutation-events be fired?
    * @param aNotify       should we notify document-observers?
    * @param aCallAfterSetAttr should we call AfterSetAttr?
    * @param aComposedDocument The current composed document of the element.
    */
   nsresult SetAttrAndNotify(int32_t aNamespaceID,
                             nsAtom* aName,
--- a/dom/base/EventSource.cpp
+++ b/dom/base/EventSource.cpp
@@ -2029,17 +2029,17 @@ EventSource::Constructor(const GlobalObj
   return eventSource.forget();
 }
 
 // nsWrapperCache
 JSObject*
 EventSource::WrapObject(JSContext* aCx,
                         JS::Handle<JSObject*> aGivenProto)
 {
-  return EventSourceBinding::Wrap(aCx, this, aGivenProto);
+  return EventSource_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 EventSource::Close()
 {
   AssertIsOnTargetThread();
   if (mImpl) {
     mImpl->Close();
--- a/dom/base/FormData.cpp
+++ b/dom/base/FormData.cpp
@@ -323,17 +323,17 @@ FormData::SetNameDirectoryPair(FormDataT
   aData->name = aName;
   aData->wasNullBlob = false;
   aData->value.SetAsDirectory() = aDirectory;
 }
 
 /* virtual */ JSObject*
 FormData::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return FormDataBinding::Wrap(aCx, this, aGivenProto);
+  return FormData_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 /* static */ already_AddRefed<FormData>
 FormData::Constructor(const GlobalObject& aGlobal,
                       const Optional<NonNull<HTMLFormElement> >& aFormElement,
                       ErrorResult& aRv)
 {
   RefPtr<FormData> formData = new FormData(aGlobal.GetAsSupports());
--- a/dom/base/FragmentOrElement.cpp
+++ b/dom/base/FragmentOrElement.cpp
@@ -498,17 +498,17 @@ NS_INTERFACE_TABLE_HEAD(nsAttrChildConte
   NS_INTERFACE_TABLE(nsAttrChildContentList, nsINodeList)
   NS_INTERFACE_TABLE_TO_MAP_SEGUE_CYCLE_COLLECTION(nsAttrChildContentList)
 NS_INTERFACE_MAP_END
 
 JSObject*
 nsAttrChildContentList::WrapObject(JSContext *cx,
                                    JS::Handle<JSObject*> aGivenProto)
 {
-  return NodeListBinding::Wrap(cx, this, aGivenProto);
+  return NodeList_Binding::Wrap(cx, this, aGivenProto);
 }
 
 uint32_t
 nsAttrChildContentList::Length()
 {
   return mNode ? mNode->GetChildCount() : 0;
 }
 
--- a/dom/base/IdleDeadline.cpp
+++ b/dom/base/IdleDeadline.cpp
@@ -46,17 +46,17 @@ IdleDeadline::IdleDeadline(nsIGlobalObje
 
 IdleDeadline::~IdleDeadline()
 {
 }
 
 JSObject*
 IdleDeadline::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return IdleDeadlineBinding::Wrap(aCx, this, aGivenProto);
+  return IdleDeadline_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 DOMHighResTimeStamp
 IdleDeadline::TimeRemaining()
 {
   if (mDidTimeout) {
     return 0.0;
   }
--- a/dom/base/IntlUtils.cpp
+++ b/dom/base/IntlUtils.cpp
@@ -28,17 +28,17 @@ IntlUtils::IntlUtils(nsPIDOMWindowInner*
 
 IntlUtils::~IntlUtils()
 {
 }
 
 JSObject*
 IntlUtils::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return IntlUtilsBinding::Wrap(aCx, this, aGivenProto);
+  return IntlUtils_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 IntlUtils::GetDisplayNames(const Sequence<nsString>& aLocales,
                            const DisplayNameOptions& aOptions,
                            DisplayNameResult& aResult, ErrorResult& aError)
 {
   MOZ_ASSERT(nsContentUtils::IsCallerChrome() ||
--- a/dom/base/Location.cpp
+++ b/dom/base/Location.cpp
@@ -998,13 +998,13 @@ Location::CallerSubsumes(nsIPrincipal* a
                                                  &subsumes);
   NS_ENSURE_SUCCESS(rv, false);
   return subsumes;
 }
 
 JSObject*
 Location::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return LocationBinding::Wrap(aCx, this, aGivenProto);
+  return Location_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // dom namespace
 } // mozilla namespace
--- a/dom/base/MozQueryInterface.cpp
+++ b/dom/base/MozQueryInterface.cpp
@@ -128,14 +128,14 @@ MozQueryInterface::LegacyCall(JSContext*
   } else {
     aResult.set(thisv);
   }
 }
 
 bool
 MozQueryInterface::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto, JS::MutableHandle<JSObject*> aReflector)
 {
-  return MozQueryInterfaceBinding::Wrap(aCx, this, aGivenProto, aReflector);
+  return MozQueryInterface_Binding::Wrap(aCx, this, aGivenProto, aReflector);
 }
 
 } // namespace dom
 } // namespace mozilla
 
--- a/dom/base/Navigator.cpp
+++ b/dom/base/Navigator.cpp
@@ -1374,17 +1374,17 @@ Navigator::NotifyVRDisplaysUpdated()
     }
   }
   mVRGetDisplaysPromises.Clear();
 }
 
 void
 Navigator::NotifyActiveVRDisplaysChanged()
 {
-  NavigatorBinding::ClearCachedActiveVRDisplaysValue(this);
+  Navigator_Binding::ClearCachedActiveVRDisplaysValue(this);
 }
 
 VRServiceTest*
 Navigator::RequestVRServiceTest()
 {
   // Ensure that the Mock VR devices are not released prematurely
   nsGlobalWindowInner* win = nsGlobalWindowInner::Cast(mWindow);
   win->NotifyVREventListenerAdded();
@@ -1492,17 +1492,17 @@ Navigator::OnNavigation()
   if (manager) {
     manager->OnNavigation(mWindow->WindowID());
   }
 }
 
 JSObject*
 Navigator::WrapObject(JSContext* cx, JS::Handle<JSObject*> aGivenProto)
 {
-  return NavigatorBinding::Wrap(cx, this, aGivenProto);
+  return Navigator_Binding::Wrap(cx, this, aGivenProto);
 }
 
 /* static */
 bool
 Navigator::HasUserMediaSupport(JSContext* /* unused */,
                                JSObject* /* unused */)
 {
   // Make enabling peerconnection enable getUserMedia() as well
@@ -1639,17 +1639,17 @@ Navigator::AppName(nsAString& aAppName, 
   }
 
   aAppName.AssignLiteral("Netscape");
 }
 
 void
 Navigator::ClearUserAgentCache()
 {
-  NavigatorBinding::ClearCachedUserAgentValue(this);
+  Navigator_Binding::ClearCachedUserAgentValue(this);
 }
 
 nsresult
 Navigator::GetUserAgent(nsPIDOMWindowInner* aWindow,
                         bool aIsCallerChrome,
                         nsAString& aUserAgent)
 {
   MOZ_ASSERT(NS_IsMainThread());
--- a/dom/base/Navigator.h
+++ b/dom/base/Navigator.h
@@ -137,17 +137,17 @@ public:
   static nsresult GetAppVersion(nsAString& aAppVersion,
                                 bool aUsePrefOverriddenValue);
 
   static nsresult GetUserAgent(nsPIDOMWindowInner* aWindow,
                                bool aIsCallerChrome,
                                nsAString& aUserAgent);
 
   // Clears the user agent cache by calling:
-  // NavigatorBinding::ClearCachedUserAgentValue(this);
+  // Navigator_Binding::ClearCachedUserAgentValue(this);
   void ClearUserAgentCache();
 
   bool Vibrate(uint32_t aDuration);
   bool Vibrate(const nsTArray<uint32_t>& aDuration);
   void SetVibrationPermission(bool aPermitted, bool aPersistent);
   uint32_t MaxTouchPoints();
   void GetAppCodeName(nsAString& aAppCodeName, ErrorResult& aRv);
   void GetOscpu(nsAString& aOscpu, CallerType aCallerType,
--- a/dom/base/NodeIterator.cpp
+++ b/dom/base/NodeIterator.cpp
@@ -197,17 +197,17 @@ NodeIterator::NextOrPrevNode(NodePointer
 
     while ((mWorkingPointer.*aMove)(mRoot)) {
         nsCOMPtr<nsINode> testNode = mWorkingPointer.mNode;
         int16_t filtered = TestNode(testNode, aResult);
         if (aResult.Failed()) {
             return nullptr;
         }
 
-        if (filtered == NodeFilterBinding::FILTER_ACCEPT) {
+        if (filtered == NodeFilter_Binding::FILTER_ACCEPT) {
             mPointer = mWorkingPointer;
             return testNode.forget();
         }
     }
 
     return nullptr;
 }
 
@@ -230,13 +230,13 @@ void NodeIterator::ContentRemoved(nsICon
 
     mPointer.AdjustAfterRemoval(mRoot, container, aChild, aPreviousSibling);
     mWorkingPointer.AdjustAfterRemoval(mRoot, container, aChild, aPreviousSibling);
 }
 
 bool
 NodeIterator::WrapObject(JSContext *cx, JS::Handle<JSObject*> aGivenProto, JS::MutableHandle<JSObject*> aReflector)
 {
-    return NodeIteratorBinding::Wrap(cx, this, aGivenProto, aReflector);
+    return NodeIterator_Binding::Wrap(cx, this, aGivenProto, aReflector);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/base/ParentProcessMessageManager.cpp
+++ b/dom/base/ParentProcessMessageManager.cpp
@@ -26,13 +26,13 @@ ParentProcessMessageManager::~ParentProc
 }
 
 JSObject*
 ParentProcessMessageManager::WrapObject(JSContext* aCx,
                                         JS::Handle<JSObject*> aGivenProto)
 {
   MOZ_ASSERT(nsContentUtils::IsSystemCaller(aCx));
 
-  return ParentProcessMessageManagerBinding::Wrap(aCx, this, aGivenProto);
+  return ParentProcessMessageManager_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/base/ProcessGlobal.cpp
+++ b/dom/base/ProcessGlobal.cpp
@@ -127,19 +127,19 @@ ProcessGlobal::Init()
   return InitChildGlobalInternal(NS_LITERAL_CSTRING("processChildGlobal"));
 }
 
 bool
 ProcessGlobal::WrapGlobalObject(JSContext* aCx,
                                 JS::RealmOptions& aOptions,
                                 JS::MutableHandle<JSObject*> aReflector)
 {
-  bool ok = ContentProcessMessageManagerBinding::Wrap(aCx, this, this, aOptions,
-                                                      nsJSPrincipals::get(mPrincipal),
-                                                      true, aReflector);
+  bool ok = ContentProcessMessageManager_Binding::Wrap(aCx, this, this, aOptions,
+                                                         nsJSPrincipals::get(mPrincipal),
+                                                         true, aReflector);
   if (ok) {
     // Since we can't rewrap we have to preserve the global's wrapper here.
     PreserveWrapper(ToSupports(this));
   }
   return ok;
 }
 
 void
--- a/dom/base/ProcessMessageManager.cpp
+++ b/dom/base/ProcessMessageManager.cpp
@@ -29,13 +29,13 @@ ProcessMessageManager::ProcessMessageMan
 }
 
 JSObject*
 ProcessMessageManager::WrapObject(JSContext* aCx,
                                   JS::Handle<JSObject*> aGivenProto)
 {
   MOZ_ASSERT(nsContentUtils::IsSystemCaller(aCx));
 
-  return ProcessMessageManagerBinding::Wrap(aCx, this, aGivenProto);
+  return ProcessMessageManager_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/base/ScreenOrientation.cpp
+++ b/dom/base/ScreenOrientation.cpp
@@ -579,17 +579,17 @@ ScreenOrientation::DispatchChangeEvent()
 {
   DebugOnly<nsresult> rv = DispatchTrustedEvent(NS_LITERAL_STRING("change"));
   NS_WARNING_ASSERTION(NS_SUCCEEDED(rv), "DispatchTrustedEvent failed");
 }
 
 JSObject*
 ScreenOrientation::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return ScreenOrientationBinding::Wrap(aCx, this, aGivenProto);
+  return ScreenOrientation_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 bool
 ScreenOrientation::ShouldResistFingerprinting() const
 {
   bool resist = false;
   if (nsCOMPtr<nsPIDOMWindowInner> owner = GetOwner()) {
     resist = nsContentUtils::ShouldResistFingerprinting(owner->GetDocShell());
--- a/dom/base/Selection.cpp
+++ b/dom/base/Selection.cpp
@@ -3858,17 +3858,17 @@ void
 Selection::ResetColors(ErrorResult& aRv)
 {
   mCustomColors = nullptr;
 }
 
 JSObject*
 Selection::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return mozilla::dom::SelectionBinding::Wrap(aCx, this, aGivenProto);
+  return mozilla::dom::Selection_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 // AutoHideSelectionChanges
 AutoHideSelectionChanges::AutoHideSelectionChanges(const nsFrameSelection* aFrame)
   : AutoHideSelectionChanges(
       aFrame ? aFrame->GetSelection(SelectionType::eNormal) : nullptr)
 {}
 
--- a/dom/base/ShadowRoot.cpp
+++ b/dom/base/ShadowRoot.cpp
@@ -117,17 +117,17 @@ ShadowRoot::SetIsComposedDocParticipant(
   } else {
     doc->RemoveComposedDocShadowRoot(*this);
   }
 }
 
 JSObject*
 ShadowRoot::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return mozilla::dom::ShadowRootBinding::Wrap(aCx, this, aGivenProto);
+  return mozilla::dom::ShadowRoot_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 ShadowRoot::CloneInternalDataFrom(ShadowRoot* aOther)
 {
   size_t sheetCount = aOther->SheetCount();
   for (size_t i = 0; i < sheetCount; ++i) {
     StyleSheet* sheet = aOther->SheetAt(i);
--- a/dom/base/StructuredCloneBlob.cpp
+++ b/dom/base/StructuredCloneBlob.cpp
@@ -176,17 +176,17 @@ StructuredCloneBlob::WriteStructuredClon
   return data.ForEachDataChunk([&](const char* aData, size_t aSize) {
       return JS_WriteBytes(aWriter, aData, aSize);
   });
 }
 
 bool
 StructuredCloneBlob::WrapObject(JSContext* aCx, JS::HandleObject aGivenProto, JS::MutableHandleObject aResult)
 {
-    return StructuredCloneHolderBinding::Wrap(aCx, this, aGivenProto, aResult);
+    return StructuredCloneHolder_Binding::Wrap(aCx, this, aGivenProto, aResult);
 }
 
 
 NS_IMETHODIMP
 StructuredCloneBlob::CollectReports(nsIHandleReportCallback* aHandleReport,
                                     nsISupports* aData, bool aAnonymize)
 {
   MOZ_COLLECT_REPORT(
--- a/dom/base/StyleSheetList.cpp
+++ b/dom/base/StyleSheetList.cpp
@@ -21,17 +21,17 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
 NS_INTERFACE_MAP_END
 
 NS_IMPL_CYCLE_COLLECTING_ADDREF(StyleSheetList)
 NS_IMPL_CYCLE_COLLECTING_RELEASE(StyleSheetList)
 
 /* virtual */ JSObject*
 StyleSheetList::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return StyleSheetListBinding::Wrap(aCx, this, aGivenProto);
+  return StyleSheetList_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 StyleSheetList::NodeWillBeDestroyed(const nsINode* aNode)
 {
   mDocumentOrShadowRoot = nullptr;
 }
 
--- a/dom/base/SubtleCrypto.cpp
+++ b/dom/base/SubtleCrypto.cpp
@@ -26,17 +26,17 @@ NS_INTERFACE_MAP_END
 SubtleCrypto::SubtleCrypto(nsIGlobalObject* aParent)
   : mParent(aParent)
 {
 }
 
 JSObject*
 SubtleCrypto::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SubtleCryptoBinding::Wrap(aCx, this, aGivenProto);
+  return SubtleCrypto_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 #define SUBTLECRYPTO_METHOD_BODY(Operation, aRv, ...)                   \
   MOZ_ASSERT(mParent);                                                  \
   RefPtr<Promise> p = Promise::Create(mParent, aRv);                    \
   if (aRv.Failed()) {                                                   \
     return nullptr;                                                     \
   }                                                                     \
--- a/dom/base/TreeWalker.cpp
+++ b/dom/base/TreeWalker.cpp
@@ -73,17 +73,17 @@ TreeWalker::ParentNode(ErrorResult& aRes
     while (node && node != mRoot) {
         node = node->GetParentNode();
 
         if (node) {
             int16_t filtered = TestNode(node, aResult);
             if (aResult.Failed()) {
                 return nullptr;
             }
-            if (filtered == NodeFilterBinding::FILTER_ACCEPT) {
+            if (filtered == NodeFilter_Binding::FILTER_ACCEPT) {
                 mCurrentNode = node;
                 return node.forget();
             }
         }
     }
 
     return nullptr;
 }
@@ -122,26 +122,26 @@ TreeWalker::PreviousNode(ErrorResult& aR
             node = previousSibling;
 
             int16_t filtered = TestNode(node, aResult);
             if (aResult.Failed()) {
                 return nullptr;
             }
 
             nsINode *lastChild;
-            while (filtered != NodeFilterBinding::FILTER_REJECT &&
+            while (filtered != NodeFilter_Binding::FILTER_REJECT &&
                    (lastChild = node->GetLastChild())) {
                 node = lastChild;
                 filtered = TestNode(node, aResult);
                 if (aResult.Failed()) {
                     return nullptr;
                 }
             }
 
-            if (filtered == NodeFilterBinding::FILTER_ACCEPT) {
+            if (filtered == NodeFilter_Binding::FILTER_ACCEPT) {
                 mCurrentNode = node;
                 return node.forget();
             }
         }
 
         if (node == mRoot) {
             break;
         }
@@ -151,45 +151,45 @@ TreeWalker::PreviousNode(ErrorResult& aR
             break;
         }
 
         int16_t filtered = TestNode(node, aResult);
         if (aResult.Failed()) {
             return nullptr;
         }
 
-        if (filtered == NodeFilterBinding::FILTER_ACCEPT) {
+        if (filtered == NodeFilter_Binding::FILTER_ACCEPT) {
             mCurrentNode = node;
             return node.forget();
         }
     }
 
     return nullptr;
 }
 
 already_AddRefed<nsINode>
 TreeWalker::NextNode(ErrorResult& aResult)
 {
-    int16_t filtered = NodeFilterBinding::FILTER_ACCEPT; // pre-init for inner loop
+    int16_t filtered = NodeFilter_Binding::FILTER_ACCEPT; // pre-init for inner loop
 
     nsCOMPtr<nsINode> node = mCurrentNode;
 
     while (1) {
 
         nsINode *firstChild;
-        while (filtered != NodeFilterBinding::FILTER_REJECT &&
+        while (filtered != NodeFilter_Binding::FILTER_REJECT &&
                (firstChild = node->GetFirstChild())) {
             node = firstChild;
 
             filtered = TestNode(node, aResult);
             if (aResult.Failed()) {
                 return nullptr;
             }
 
-            if (filtered ==  NodeFilterBinding::FILTER_ACCEPT) {
+            if (filtered ==  NodeFilter_Binding::FILTER_ACCEPT) {
                 // Node found
                 mCurrentNode = node;
                 return node.forget();
             }
         }
 
         nsINode *sibling = nullptr;
         nsINode *temp = node;
@@ -210,17 +210,17 @@ TreeWalker::NextNode(ErrorResult& aResul
         node = sibling;
 
         // Found a sibling. Either ours or ancestor's
         filtered = TestNode(node, aResult);
         if (aResult.Failed()) {
             return nullptr;
         }
 
-        if (filtered ==  NodeFilterBinding::FILTER_ACCEPT) {
+        if (filtered ==  NodeFilter_Binding::FILTER_ACCEPT) {
             // Node found
             mCurrentNode = node;
             return node.forget();
         }
     }
 
     return nullptr;
 }
@@ -244,30 +244,30 @@ TreeWalker::FirstChildInternal(bool aRev
 
     while (node) {
         int16_t filtered = TestNode(node, aResult);
         if (aResult.Failed()) {
             return nullptr;
         }
 
         switch (filtered) {
-            case NodeFilterBinding::FILTER_ACCEPT:
+            case NodeFilter_Binding::FILTER_ACCEPT:
                 // Node found
                 mCurrentNode = node;
                 return node.forget();
-            case NodeFilterBinding::FILTER_SKIP: {
+            case NodeFilter_Binding::FILTER_SKIP: {
                     nsINode *child = aReversed ? node->GetLastChild()
                                                : node->GetFirstChild();
                     if (child) {
                         node = child;
                         continue;
                     }
                     break;
                 }
-            case NodeFilterBinding::FILTER_REJECT:
+            case NodeFilter_Binding::FILTER_REJECT:
                 // Keep searching
                 break;
         }
 
         do {
             nsINode *sibling = aReversed ? node->GetPreviousSibling()
                                          : node->GetNextSibling();
             if (sibling) {
@@ -312,24 +312,24 @@ TreeWalker::NextSiblingInternal(bool aRe
         while (sibling) {
             node = sibling;
 
             int16_t filtered = TestNode(node, aResult);
             if (aResult.Failed()) {
                 return nullptr;
             }
 
-            if (filtered == NodeFilterBinding::FILTER_ACCEPT) {
+            if (filtered == NodeFilter_Binding::FILTER_ACCEPT) {
                 // Node found
                 mCurrentNode = node;
                 return node.forget();
             }
 
             // If rejected or no children, try a sibling
-            if (filtered == NodeFilterBinding::FILTER_REJECT ||
+            if (filtered == NodeFilter_Binding::FILTER_REJECT ||
                 !(sibling = aReversed ? node->GetLastChild()
                                       : node->GetFirstChild())) {
                 sibling = aReversed ? node->GetPreviousSibling()
                                     : node->GetNextSibling();
             }
         }
 
         node = node->GetParentNode();
@@ -338,22 +338,22 @@ TreeWalker::NextSiblingInternal(bool aRe
             return nullptr;
         }
 
         // Is parent transparent in filtered view?
         int16_t filtered = TestNode(node, aResult);
         if (aResult.Failed()) {
             return nullptr;
         }
-        if (filtered == NodeFilterBinding::FILTER_ACCEPT) {
+        if (filtered == NodeFilter_Binding::FILTER_ACCEPT) {
             return nullptr;
         }
     }
 }
 
 bool
 TreeWalker::WrapObject(JSContext *aCx, JS::Handle<JSObject*> aGivenProto, JS::MutableHandle<JSObject*> aReflector)
 {
-    return TreeWalkerBinding::Wrap(aCx, this, aGivenProto, aReflector);
+    return TreeWalker_Binding::Wrap(aCx, this, aGivenProto, aReflector);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/base/WebKitCSSMatrix.cpp
+++ b/dom/base/WebKitCSSMatrix.cpp
@@ -47,17 +47,17 @@ WebKitCSSMatrix::Constructor(const Globa
   RefPtr<WebKitCSSMatrix> obj = new WebKitCSSMatrix(aGlobal.GetAsSupports(),
                                                     aOther);
   return obj.forget();
 }
 
 JSObject*
 WebKitCSSMatrix::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return WebKitCSSMatrixBinding::Wrap(aCx, this, aGivenProto);
+  return WebKitCSSMatrix_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 WebKitCSSMatrix*
 WebKitCSSMatrix::SetMatrixValue(const nsAString& aTransformList,
                                 ErrorResult& aRv)
 {
   DOMMatrix::SetMatrixValue(aTransformList, aRv);
   return this;
--- a/dom/base/WindowNamedPropertiesHandler.cpp
+++ b/dom/base/WindowNamedPropertiesHandler.cpp
@@ -241,17 +241,17 @@ static const DOMIfaceAndProtoJSClass Win
                   JSCLASS_IS_DOMIFACEANDPROTOJSCLASS |
                   JSCLASS_HAS_RESERVED_SLOTS(1)),
   eNamedPropertiesObject,
   false,
   prototypes::id::_ID_Count,
   0,
   &sEmptyNativePropertyHooks,
   "[object WindowProperties]",
-  EventTargetBinding::GetProtoObject
+  EventTarget_Binding::GetProtoObject
 };
 
 // static
 JSObject*
 WindowNamedPropertiesHandler::Create(JSContext* aCx,
                                      JS::Handle<JSObject*> aProto)
 {
   // Note: since the scope polluter proxy lives on the window's prototype
--- a/dom/base/nsContentList.cpp
+++ b/dom/base/nsContentList.cpp
@@ -113,33 +113,33 @@ NS_INTERFACE_MAP_END_INHERITING(nsBaseCo
 
 
 NS_IMPL_ADDREF_INHERITED(nsSimpleContentList, nsBaseContentList)
 NS_IMPL_RELEASE_INHERITED(nsSimpleContentList, nsBaseContentList)
 
 JSObject*
 nsSimpleContentList::WrapObject(JSContext *cx, JS::Handle<JSObject*> aGivenProto)
 {
-  return NodeListBinding::Wrap(cx, this, aGivenProto);
+  return NodeList_Binding::Wrap(cx, this, aGivenProto);
 }
 
 NS_IMPL_CYCLE_COLLECTION_INHERITED(nsEmptyContentList, nsBaseContentList, mRoot)
 
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsEmptyContentList)
   NS_INTERFACE_MAP_ENTRY(nsIHTMLCollection)
 NS_INTERFACE_MAP_END_INHERITING(nsBaseContentList)
 
 
 NS_IMPL_ADDREF_INHERITED(nsEmptyContentList, nsBaseContentList)
 NS_IMPL_RELEASE_INHERITED(nsEmptyContentList, nsBaseContentList)
 
 JSObject*
 nsEmptyContentList::WrapObject(JSContext *cx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLCollectionBinding::Wrap(cx, this, aGivenProto);
+  return HTMLCollection_Binding::Wrap(cx, this, aGivenProto);
 }
 
 mozilla::dom::Element*
 nsEmptyContentList::GetElementAt(uint32_t index)
 {
   return nullptr;
 }
 
@@ -456,17 +456,17 @@ nsContentList::~nsContentList()
     // Clean up mData
     (*mDestroyFunc)(mData);
   }
 }
 
 JSObject*
 nsContentList::WrapObject(JSContext *cx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLCollectionBinding::Wrap(cx, this, aGivenProto);
+  return HTMLCollection_Binding::Wrap(cx, this, aGivenProto);
 }
 
 NS_IMPL_ISUPPORTS_INHERITED(nsContentList, nsBaseContentList,
                             nsIHTMLCollection, nsIMutationObserver)
 
 uint32_t
 nsContentList::Length(bool aDoFlush)
 {
@@ -1032,17 +1032,17 @@ nsContentList::AssertInSync()
 #endif
 
 //-----------------------------------------------------
 // nsCachableElementsByNameNodeList
 
 JSObject*
 nsCachableElementsByNameNodeList::WrapObject(JSContext *cx, JS::Handle<JSObject*> aGivenProto)
 {
-  return NodeListBinding::Wrap(cx, this, aGivenProto);
+  return NodeList_Binding::Wrap(cx, this, aGivenProto);
 }
 
 void
 nsCachableElementsByNameNodeList::AttributeChanged(Element* aElement,
                                                    int32_t aNameSpaceID,
                                                    nsAtom* aAttribute,
                                                    int32_t aModType,
                                                    const nsAttrValue* aOldValue)
@@ -1059,26 +1059,26 @@ nsCachableElementsByNameNodeList::Attrib
 }
 
 //-----------------------------------------------------
 // nsCacheableFuncStringHTMLCollection
 
 JSObject*
 nsCacheableFuncStringHTMLCollection::WrapObject(JSContext *cx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLCollectionBinding::Wrap(cx, this, aGivenProto);
+  return HTMLCollection_Binding::Wrap(cx, this, aGivenProto);
 }
 
 //-----------------------------------------------------
 // nsLabelsNodeList
 
 JSObject*
 nsLabelsNodeList::WrapObject(JSContext *cx, JS::Handle<JSObject*> aGivenProto)
 {
-  return NodeListBinding::Wrap(cx, this, aGivenProto);
+  return NodeList_Binding::Wrap(cx, this, aGivenProto);
 }
 
 void
 nsLabelsNodeList::AttributeChanged(Element* aElement,
                                    int32_t aNameSpaceID, nsAtom* aAttribute,
                                    int32_t aModType,
                                    const nsAttrValue* aOldValue)
 {
--- a/dom/base/nsContentUtils.cpp
+++ b/dom/base/nsContentUtils.cpp
@@ -2726,19 +2726,19 @@ nsContentUtils::GetCommonFlattenedTreeAn
   });
 }
 
 /* static */
 bool
 nsContentUtils::PositionIsBefore(nsINode* aNode1, nsINode* aNode2)
 {
   return (aNode2->CompareDocumentPosition(*aNode1) &
-    (NodeBinding::DOCUMENT_POSITION_PRECEDING |
-     NodeBinding::DOCUMENT_POSITION_DISCONNECTED)) ==
-    NodeBinding::DOCUMENT_POSITION_PRECEDING;
+    (Node_Binding::DOCUMENT_POSITION_PRECEDING |
+     Node_Binding::DOCUMENT_POSITION_DISCONNECTED)) ==
+    Node_Binding::DOCUMENT_POSITION_PRECEDING;
 }
 
 /* static */
 int32_t
 nsContentUtils::ComparePoints(nsINode* aParent1, int32_t aOffset1,
                               nsINode* aParent2, int32_t aOffset2,
                               bool* aDisconnected)
 {
@@ -8504,18 +8504,18 @@ nsContentUtils::SendMouseEvent(const nsC
     msg = eContextMenu;
     contextMenuKey = (aButton == 0);
   } else if (aType.EqualsLiteral("MozMouseHittest")) {
     msg = eMouseHitTest;
   } else {
     return NS_ERROR_FAILURE;
   }
 
-  if (aInputSourceArg == MouseEventBinding::MOZ_SOURCE_UNKNOWN) {
-    aInputSourceArg = MouseEventBinding::MOZ_SOURCE_MOUSE;
+  if (aInputSourceArg == MouseEvent_Binding::MOZ_SOURCE_UNKNOWN) {
+    aInputSourceArg = MouseEvent_Binding::MOZ_SOURCE_MOUSE;
   }
 
   WidgetMouseEvent event(true, msg, widget,
                          aIsWidgetEventSynthesized ?
                            WidgetMouseEvent::eSynthesized :
                            WidgetMouseEvent::eReal,
                          contextMenuKey ? WidgetMouseEvent::eContextMenuKey :
                                           WidgetMouseEvent::eNormal);
@@ -10425,18 +10425,18 @@ nsContentUtils::QueryTriggeringPrincipal
   if (!aLoadingNode->NodePrincipal()->GetIsSystemPrincipal()) {
     loadingPrincipal.forget(aTriggeringPrincipal);
     return result;
   }
 
   nsAutoString loadingStr;
   if (aLoadingNode->IsElement()) {
     aLoadingNode->AsElement()->GetAttr(kNameSpaceID_None,
-				       nsGkAtoms::triggeringprincipal,
-				       loadingStr);
+               nsGkAtoms::triggeringprincipal,
+               loadingStr);
   }
 
   // Fall back if 'triggeringprincipal' isn't specified,
   if (loadingStr.IsEmpty()) {
     loadingPrincipal.forget(aTriggeringPrincipal);
     return result;
   }
 
@@ -10857,17 +10857,17 @@ nsContentUtils::IsOverridingWindowName(c
     !aName.LowerCaseEqualsLiteral("_self");
 }
 
 // Unfortunately, we can't unwrap an IDL object using only a concrete type.
 // We need to calculate type data based on the IDL typename. Which means
 // wrapping our templated function in a macro.
 #define EXTRACT_EXN_VALUES(T, ...)                                \
   ExtractExceptionValues<mozilla::dom::prototypes::id::T,         \
-                         T##Binding::NativeType, T>(__VA_ARGS__).isOk()
+                         T##_Binding::NativeType, T>(__VA_ARGS__).isOk()
 
 template <prototypes::ID PrototypeID, class NativeType, typename T>
 static Result<Ok, nsresult>
 ExtractExceptionValues(JSContext* aCx,
                        JS::HandleObject aObj,
                        nsAString& aSourceSpecOut,
                        uint32_t* aLineOut,
                        uint32_t* aColumnOut,
--- a/dom/base/nsContentUtils.h
+++ b/dom/base/nsContentUtils.h
@@ -2083,17 +2083,17 @@ public:
                                      mozilla::dom::Event* aSourceEvent = nullptr,
                                      nsIPresShell* aShell = nullptr,
                                      bool aCtrl = false,
                                      bool aAlt = false,
                                      bool aShift = false,
                                      bool aMeta = false,
                                      // Including MouseEventBinding here leads
                                      // to incude loops, unfortunately.
-                                     uint16_t inputSource = 0 /* MouseEventBinding::MOZ_SOURCE_UNKNOWN */);
+                                     uint16_t inputSource = 0 /* MouseEvent_Binding::MOZ_SOURCE_UNKNOWN */);
 
   static bool CheckMayLoad(nsIPrincipal* aPrincipal, nsIChannel* aChannel, bool aAllowIfInheritsPrincipal);
 
   /**
    * The method checks whether the caller can access native anonymous content.
    * If there is no JS in the stack or privileged JS is running, this
    * method returns true, otherwise false.
    */
--- a/dom/base/nsDOMAttributeMap.cpp
+++ b/dom/base/nsDOMAttributeMap.cpp
@@ -435,16 +435,16 @@ nsDOMAttributeMap::SizeOfIncludingThis(M
 
   // NB: mContent is non-owning and thus not counted.
   return n;
 }
 
 /* virtual */ JSObject*
 nsDOMAttributeMap::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return NamedNodeMapBinding::Wrap(aCx, this, aGivenProto);
+  return NamedNodeMap_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 DocGroup*
 nsDOMAttributeMap::GetDocGroup() const
 {
   return mContent ? mContent->OwnerDoc()->GetDocGroup() : nullptr;
 }
--- a/dom/base/nsDOMCaretPosition.cpp
+++ b/dom/base/nsDOMCaretPosition.cpp
@@ -55,17 +55,17 @@ nsDOMCaretPosition::GetClientRect() cons
   rect = domRange->GetBoundingClientRect(false);
 
   return rect.forget();
 }
 
 JSObject*
 nsDOMCaretPosition::WrapObject(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return mozilla::dom::CaretPositionBinding::Wrap(aCx, this, aGivenProto);
+  return mozilla::dom::CaretPosition_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(nsDOMCaretPosition,
                                       mOffsetNode, mAnonymousContentNode)
 
 NS_IMPL_CYCLE_COLLECTING_ADDREF(nsDOMCaretPosition)
 NS_IMPL_CYCLE_COLLECTING_RELEASE(nsDOMCaretPosition)
 
--- a/dom/base/nsDOMDataChannel.cpp
+++ b/dom/base/nsDOMDataChannel.cpp
@@ -46,17 +46,17 @@ nsDOMDataChannel::~nsDOMDataChannel()
   LOG(("%p: Close()ing %p", this, mDataChannel.get()));
   mDataChannel->SetListener(nullptr, nullptr);
   mDataChannel->Close();
 }
 
 /* virtual */ JSObject*
 nsDOMDataChannel::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return RTCDataChannelBinding::Wrap(aCx, this, aGivenProto);
+  return RTCDataChannel_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 NS_IMPL_CYCLE_COLLECTION_CLASS(nsDOMDataChannel)
 
 NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(nsDOMDataChannel,
                                                   DOMEventTargetHelper)
 NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
 
--- a/dom/base/nsDOMMutationObserver.h
+++ b/dom/base/nsDOMMutationObserver.h
@@ -47,17 +47,17 @@ public:
 
   nsISupports* GetParentObject() const
   {
     return mOwner;
   }
 
   virtual JSObject* WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
   {
-    return mozilla::dom::MutationRecordBinding::Wrap(aCx, this, aGivenProto);
+    return mozilla::dom::MutationRecord_Binding::Wrap(aCx, this, aGivenProto);
   }
 
   NS_DECL_CYCLE_COLLECTING_ISUPPORTS
   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(nsDOMMutationRecord)
 
   void GetType(mozilla::dom::DOMString& aRetVal) const
   {
     aRetVal.SetKnownLiveAtom(mType, mozilla::dom::DOMString::eNullNotExpected);
@@ -406,17 +406,17 @@ public:
   NS_DECL_NSIMUTATIONOBSERVER_NODEWILLBEDESTROYED
 
   virtual void AttributeSetToCurrentValue(mozilla::dom::Element* aElement,
                                           int32_t aNameSpaceID,
                                           nsAtom* aAttribute) override
   {
     // We can reuse AttributeWillChange implementation.
     AttributeWillChange(aElement, aNameSpaceID, aAttribute,
-                        mozilla::dom::MutationEventBinding::MODIFICATION, nullptr);
+                        mozilla::dom::MutationEvent_Binding::MODIFICATION, nullptr);
   }
 
 protected:
   nsMutationReceiver(nsINode* aTarget, nsDOMMutationObserver* aObserver);
 
   nsMutationReceiver(nsINode* aRegisterTarget, nsMutationReceiverBase* aParent)
   : nsMutationReceiverBase(aRegisterTarget, aParent)
   {
@@ -503,17 +503,17 @@ public:
 
   static already_AddRefed<nsDOMMutationObserver>
   Constructor(const mozilla::dom::GlobalObject& aGlobal,
               mozilla::dom::MutationCallback& aCb,
               mozilla::ErrorResult& aRv);
 
   virtual JSObject* WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
   {
-    return mozilla::dom::MutationObserverBinding::Wrap(aCx, this, aGivenProto);
+    return mozilla::dom::MutationObserver_Binding::Wrap(aCx, this, aGivenProto);
   }
 
   nsISupports* GetParentObject() const
   {
     return mOwner;
   }
 
   bool IsChrome()
--- a/dom/base/nsDOMSerializer.h
+++ b/dom/base/nsDOMSerializer.h
@@ -34,16 +34,16 @@ public:
   void
   SerializeToStream(nsINode& aRoot, nsIOutputStream* aStream,
                     const nsAString& aCharset,
                     mozilla::ErrorResult& aRv);
 
   bool WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto,
                   JS::MutableHandle<JSObject*> aReflector)
   {
-    return mozilla::dom::XMLSerializerBinding::Wrap(aCx, this, aGivenProto,
+    return mozilla::dom::XMLSerializer_Binding::Wrap(aCx, this, aGivenProto,
                                                     aReflector);
   }
 };
 
 
 #endif
 
--- a/dom/base/nsDOMTokenList.cpp
+++ b/dom/base/nsDOMTokenList.cpp
@@ -430,11 +430,11 @@ DocGroup*
 nsDOMTokenList::GetDocGroup() const
 {
   return mElement ? mElement->OwnerDoc()->GetDocGroup() : nullptr;
 }
 
 JSObject*
 nsDOMTokenList::WrapObject(JSContext *cx, JS::Handle<JSObject*> aGivenProto)
 {
-  return DOMTokenListBinding::Wrap(cx, this, aGivenProto);
+  return DOMTokenList_Binding::Wrap(cx, this, aGivenProto);
 }
 
--- a/dom/base/nsDocument.cpp
+++ b/dom/base/nsDocument.cpp
@@ -653,17 +653,17 @@ public:
   }
   virtual void PreserveWrapperInternal(nsISupports* aScriptObjectHolder) override
   {
     nsWrapperCache::PreserveWrapper(aScriptObjectHolder);
   }
   virtual JSObject* WrapObject(JSContext *aCx,
                                JS::Handle<JSObject*> aGivenProto) override
   {
-    return HTMLCollectionBinding::Wrap(aCx, this, aGivenProto);
+    return HTMLCollection_Binding::Wrap(aCx, this, aGivenProto);
   }
 
   using nsBaseContentList::Item;
 
 private:
   virtual ~SimpleHTMLCollection() {}
 };
 
--- a/dom/base/nsFrameLoader.cpp
+++ b/dom/base/nsFrameLoader.cpp
@@ -3395,11 +3395,11 @@ nsFrameLoader::GetProcessMessageManager(
   return mRemoteBrowser ? mRemoteBrowser->Manager()->GetMessageManager()
                         : nullptr;
 };
 
 JSObject*
 nsFrameLoader::WrapObject(JSContext* cx, JS::Handle<JSObject*> aGivenProto)
 {
   JS::RootedObject result(cx);
-  FrameLoaderBinding::Wrap(cx, this, this, aGivenProto, &result);
+  FrameLoader_Binding::Wrap(cx, this, this, aGivenProto, &result);
   return result;
 }
--- a/dom/base/nsGenConImageContent.cpp
+++ b/dom/base/nsGenConImageContent.cpp
@@ -156,11 +156,11 @@ nsGenConImageContent::IntrinsicState() c
   }
   imageState &= ~NS_EVENT_STATE_LOADING;
   return state | imageState;
 }
 
 JSObject*
 nsGenConImageContent::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return dom::HTMLElementBinding::Wrap(aCx, this, aGivenProto);
+  return dom::HTMLElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
--- a/dom/base/nsGlobalWindowInner.cpp
+++ b/dom/base/nsGlobalWindowInner.cpp
@@ -5894,18 +5894,18 @@ nsGlobalWindowInner::Observe(nsISupports
     // The user preferred languages have changed, we need to fire an event on
     // Window object and invalidate the cache for navigator.languages. It is
     // done for every change which can be a waste of cycles but those should be
     // fairly rare.
     // We MUST invalidate navigator.languages before sending the event in the
     // very likely situation where an event handler will try to read its value.
 
     if (mNavigator) {
-      NavigatorBinding::ClearCachedLanguageValue(mNavigator);
-      NavigatorBinding::ClearCachedLanguagesValue(mNavigator);
+      Navigator_Binding::ClearCachedLanguageValue(mNavigator);
+      Navigator_Binding::ClearCachedLanguagesValue(mNavigator);
     }
 
     // The event has to be dispatched only to the current inner window.
     if (!IsCurrentInnerWindow()) {
       return NS_OK;
     }
 
     RefPtr<Event> event = NS_NewDOMEvent(this, nullptr, nullptr);
@@ -7693,18 +7693,18 @@ nsGlobalWindowInner::GetSidebar(OwningEx
   aRv.Throw(NS_ERROR_NOT_IMPLEMENTED);
 #endif
 }
 
 void
 nsGlobalWindowInner::ClearDocumentDependentSlots(JSContext* aCx)
 {
   // If JSAPI OOMs here, there is basically nothing we can do to recover safely.
-  if (!WindowBinding::ClearCachedDocumentValue(aCx, this) ||
-      !WindowBinding::ClearCachedPerformanceValue(aCx, this)) {
+  if (!Window_Binding::ClearCachedDocumentValue(aCx, this) ||
+      !Window_Binding::ClearCachedPerformanceValue(aCx, this)) {
     MOZ_CRASH("Unhandlable OOM while clearing document dependent slots.");
   }
 }
 
 /* static */
 JSObject*
 nsGlobalWindowInner::CreateNamedPropertiesObject(JSContext *aCx,
                                                  JS::Handle<JSObject*> aProto)
--- a/dom/base/nsGlobalWindowOuter.cpp
+++ b/dom/base/nsGlobalWindowOuter.cpp
@@ -1602,17 +1602,17 @@ CreateNativeGlobalForInner(JSContext* aC
   xpc::InitGlobalObjectOptions(options, aPrincipal);
 
   // Determine if we need the Components object.
   bool needComponents = nsContentUtils::IsSystemPrincipal(aPrincipal) ||
                         TreatAsRemoteXUL(aPrincipal);
   uint32_t flags = needComponents ? 0 : xpc::OMIT_COMPONENTS_OBJECT;
   flags |= xpc::DONT_FIRE_ONNEWGLOBALHOOK;
 
-  if (!WindowBinding::Wrap(aCx, aNewInner, aNewInner, options,
+  if (!Window_Binding::Wrap(aCx, aNewInner, aNewInner, options,
                            nsJSPrincipals::get(aPrincipal), false, aGlobal) ||
       !xpc::InitGlobalObject(aCx, aGlobal, flags)) {
     return NS_ERROR_FAILURE;
   }
 
   MOZ_ASSERT(aNewInner->GetWrapperPreserveColor() == aGlobal);
 
   // Set the location information for the new global, so that tools like
--- a/dom/base/nsHistory.cpp
+++ b/dom/base/nsHistory.cpp
@@ -50,17 +50,17 @@ nsHistory::GetParentObject() const
 {
   nsCOMPtr<nsPIDOMWindowInner> win(do_QueryReferent(mInnerWindow));
   return win;
 }
 
 JSObject*
 nsHistory::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HistoryBinding::Wrap(aCx, this, aGivenProto);
+  return History_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 uint32_t
 nsHistory::GetLength(ErrorResult& aRv) const
 {
   nsCOMPtr<nsPIDOMWindowInner> win(do_QueryReferent(mInnerWindow));
   if (!win || !win->HasActiveDocument()) {
     aRv.Throw(NS_ERROR_DOM_SECURITY_ERR);
--- a/dom/base/nsINode.cpp
+++ b/dom/base/nsINode.cpp
@@ -732,21 +732,21 @@ nsINode::LookupPrefix(const nsAString& a
 uint16_t
 nsINode::CompareDocumentPosition(nsINode& aOtherNode) const
 {
   if (this == &aOtherNode) {
     return 0;
   }
   if (GetPreviousSibling() == &aOtherNode) {
     MOZ_ASSERT(GetParentNode() == aOtherNode.GetParentNode());
-    return NodeBinding::DOCUMENT_POSITION_PRECEDING;
+    return Node_Binding::DOCUMENT_POSITION_PRECEDING;
   }
   if (GetNextSibling() == &aOtherNode) {
     MOZ_ASSERT(GetParentNode() == aOtherNode.GetParentNode());
-    return NodeBinding::DOCUMENT_POSITION_FOLLOWING;
+    return Node_Binding::DOCUMENT_POSITION_FOLLOWING;
   }
 
   AutoTArray<const nsINode*, 32> parents1, parents2;
 
   const nsINode* node1 = &aOtherNode;
   const nsINode* node2 = this;
 
   // Check if either node is an attribute
@@ -767,26 +767,26 @@ nsINode::CompareDocumentPosition(nsINode
       // Compare position between the attributes.
 
       uint32_t i;
       const nsAttrName* attrName;
       for (i = 0; (attrName = elem->GetAttrNameAt(i)); ++i) {
         if (attrName->Equals(attr1->NodeInfo())) {
           NS_ASSERTION(!attrName->Equals(attr2->NodeInfo()),
                        "Different attrs at same position");
-          return NodeBinding::DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC |
-            NodeBinding::DOCUMENT_POSITION_PRECEDING;
+          return Node_Binding::DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC |
+            Node_Binding::DOCUMENT_POSITION_PRECEDING;
         }
         if (attrName->Equals(attr2->NodeInfo())) {
-          return NodeBinding::DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC |
-            NodeBinding::DOCUMENT_POSITION_FOLLOWING;
+          return Node_Binding::DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC |
+            Node_Binding::DOCUMENT_POSITION_FOLLOWING;
         }
       }
       MOZ_ASSERT_UNREACHABLE("neither attribute in the element");
-      return NodeBinding::DOCUMENT_POSITION_DISCONNECTED;
+      return Node_Binding::DOCUMENT_POSITION_DISCONNECTED;
     }
 
     if (elem) {
       node2 = elem;
       parents2.AppendElement(attr2);
     }
   }
 
@@ -807,49 +807,49 @@ nsINode::CompareDocumentPosition(nsINode
 
   // Check if the nodes are disconnected.
   uint32_t pos1 = parents1.Length();
   uint32_t pos2 = parents2.Length();
   const nsINode* top1 = parents1.ElementAt(--pos1);
   const nsINode* top2 = parents2.ElementAt(--pos2);
   if (top1 != top2) {
     return top1 < top2 ?
-      (NodeBinding::DOCUMENT_POSITION_PRECEDING |
-       NodeBinding::DOCUMENT_POSITION_DISCONNECTED |
-       NodeBinding::DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC) :
-      (NodeBinding::DOCUMENT_POSITION_FOLLOWING |
-       NodeBinding::DOCUMENT_POSITION_DISCONNECTED |
-       NodeBinding::DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC);
+      (Node_Binding::DOCUMENT_POSITION_PRECEDING |
+       Node_Binding::DOCUMENT_POSITION_DISCONNECTED |
+       Node_Binding::DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC) :
+      (Node_Binding::DOCUMENT_POSITION_FOLLOWING |
+       Node_Binding::DOCUMENT_POSITION_DISCONNECTED |
+       Node_Binding::DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC);
   }
 
   // Find where the parent chain differs and check indices in the parent.
   const nsINode* parent = top1;
   uint32_t len;
   for (len = std::min(pos1, pos2); len > 0; --len) {
     const nsINode* child1 = parents1.ElementAt(--pos1);
     const nsINode* child2 = parents2.ElementAt(--pos2);
     if (child1 != child2) {
       // child1 or child2 can be an attribute here. This will work fine since
       // ComputeIndexOf will return -1 for the attribute making the
       // attribute be considered before any child.
       return parent->ComputeIndexOf(child1) < parent->ComputeIndexOf(child2) ?
-        NodeBinding::DOCUMENT_POSITION_PRECEDING :
-        NodeBinding::DOCUMENT_POSITION_FOLLOWING;
+        Node_Binding::DOCUMENT_POSITION_PRECEDING :
+        Node_Binding::DOCUMENT_POSITION_FOLLOWING;
     }
     parent = child1;
   }
 
   // We hit the end of one of the parent chains without finding a difference
   // between the chains. That must mean that one node is an ancestor of the
   // other. The one with the shortest chain must be the ancestor.
   return pos1 < pos2 ?
-    (NodeBinding::DOCUMENT_POSITION_PRECEDING |
-     NodeBinding::DOCUMENT_POSITION_CONTAINS) :
-    (NodeBinding::DOCUMENT_POSITION_FOLLOWING |
-     NodeBinding::DOCUMENT_POSITION_CONTAINED_BY);
+    (Node_Binding::DOCUMENT_POSITION_PRECEDING |
+     Node_Binding::DOCUMENT_POSITION_CONTAINS) :
+    (Node_Binding::DOCUMENT_POSITION_FOLLOWING |
+     Node_Binding::DOCUMENT_POSITION_CONTAINED_BY);
 }
 
 bool
 nsINode::IsSameNode(nsINode *other)
 {
   return other == this;
 }
 
--- a/dom/base/nsINode.h
+++ b/dom/base/nsINode.h
@@ -297,33 +297,33 @@ public:
   typedef mozilla::dom::DOMRectReadOnly DOMRectReadOnly;
   typedef mozilla::dom::OwningNodeOrString OwningNodeOrString;
   typedef mozilla::dom::TextOrElementOrDocument TextOrElementOrDocument;
   typedef mozilla::dom::CallerType CallerType;
   typedef mozilla::ErrorResult ErrorResult;
 
   // XXXbz Maybe we should codegen a class holding these constants and
   // inherit from it...
-  static const auto ELEMENT_NODE = mozilla::dom::NodeBinding::ELEMENT_NODE;
-  static const auto ATTRIBUTE_NODE = mozilla::dom::NodeBinding::ATTRIBUTE_NODE;
-  static const auto TEXT_NODE = mozilla::dom::NodeBinding::TEXT_NODE;
+  static const auto ELEMENT_NODE = mozilla::dom::Node_Binding::ELEMENT_NODE;
+  static const auto ATTRIBUTE_NODE = mozilla::dom::Node_Binding::ATTRIBUTE_NODE;
+  static const auto TEXT_NODE = mozilla::dom::Node_Binding::TEXT_NODE;
   static const auto CDATA_SECTION_NODE =
-    mozilla::dom::NodeBinding::CDATA_SECTION_NODE;
+    mozilla::dom::Node_Binding::CDATA_SECTION_NODE;
   static const auto ENTITY_REFERENCE_NODE =
-    mozilla::dom::NodeBinding::ENTITY_REFERENCE_NODE;
-  static const auto ENTITY_NODE = mozilla::dom::NodeBinding::ENTITY_NODE;
+    mozilla::dom::Node_Binding::ENTITY_REFERENCE_NODE;
+  static const auto ENTITY_NODE = mozilla::dom::Node_Binding::ENTITY_NODE;
   static const auto PROCESSING_INSTRUCTION_NODE =
-    mozilla::dom::NodeBinding::PROCESSING_INSTRUCTION_NODE;
-  static const auto COMMENT_NODE = mozilla::dom::NodeBinding::COMMENT_NODE;
-  static const auto DOCUMENT_NODE = mozilla::dom::NodeBinding::DOCUMENT_NODE;
+    mozilla::dom::Node_Binding::PROCESSING_INSTRUCTION_NODE;
+  static const auto COMMENT_NODE = mozilla::dom::Node_Binding::COMMENT_NODE;
+  static const auto DOCUMENT_NODE = mozilla::dom::Node_Binding::DOCUMENT_NODE;
   static const auto DOCUMENT_TYPE_NODE =
-    mozilla::dom::NodeBinding::DOCUMENT_TYPE_NODE;
+    mozilla::dom::Node_Binding::DOCUMENT_TYPE_NODE;
   static const auto DOCUMENT_FRAGMENT_NODE =
-    mozilla::dom::NodeBinding::DOCUMENT_FRAGMENT_NODE;
-  static const auto NOTATION_NODE = mozilla::dom::NodeBinding::NOTATION_NODE;
+    mozilla::dom::Node_Binding::DOCUMENT_FRAGMENT_NODE;
+  static const auto NOTATION_NODE = mozilla::dom::Node_Binding::NOTATION_NODE;
 
   template<class T>
   using Sequence = mozilla::dom::Sequence<T>;
 
   NS_DECLARE_STATIC_IID_ACCESSOR(NS_INODE_IID)
 
   // The |aNodeSize| outparam on this function is where the actual node size
   // value is put. It gets added to the appropriate value within |aSizes| by
--- a/dom/base/nsInProcessTabChildGlobal.cpp
+++ b/dom/base/nsInProcessTabChildGlobal.cpp
@@ -176,19 +176,19 @@ NS_INTERFACE_MAP_END_INHERITING(DOMEvent
 NS_IMPL_ADDREF_INHERITED(nsInProcessTabChildGlobal, DOMEventTargetHelper)
 NS_IMPL_RELEASE_INHERITED(nsInProcessTabChildGlobal, DOMEventTargetHelper)
 
 bool
 nsInProcessTabChildGlobal::WrapGlobalObject(JSContext* aCx,
                                             JS::RealmOptions& aOptions,
                                             JS::MutableHandle<JSObject*> aReflector)
 {
-  bool ok = ContentFrameMessageManagerBinding::Wrap(aCx, this, this, aOptions,
-                                                    nsJSPrincipals::get(mPrincipal),
-                                                    true, aReflector);
+  bool ok = ContentFrameMessageManager_Binding::Wrap(aCx, this, this, aOptions,
+                                                       nsJSPrincipals::get(mPrincipal),
+                                                       true, aReflector);
   if (ok) {
     // Since we can't rewrap we have to preserve the global's wrapper here.
     PreserveWrapper(ToSupports(this));
   }
   return ok;
 }
 
 void
--- a/dom/base/nsMimeTypeArray.cpp
+++ b/dom/base/nsMimeTypeArray.cpp
@@ -39,17 +39,17 @@ nsMimeTypeArray::nsMimeTypeArray(nsPIDOM
 
 nsMimeTypeArray::~nsMimeTypeArray()
 {
 }
 
 JSObject*
 nsMimeTypeArray::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return MimeTypeArrayBinding::Wrap(aCx, this, aGivenProto);
+  return MimeTypeArray_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 nsMimeTypeArray::Refresh()
 {
   mMimeTypes.Clear();
   mCTPMimeTypes.Clear();
 }
@@ -211,17 +211,17 @@ nsMimeType::GetParentObject() const
 {
   MOZ_ASSERT(mWindow);
   return mWindow;
 }
 
 JSObject*
 nsMimeType::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return MimeTypeBinding::Wrap(aCx, this, aGivenProto);
+  return MimeType_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 nsMimeType::GetDescription(nsString& aRetval) const
 {
   aRetval = mDescription;
 }
 
--- a/dom/base/nsPluginArray.cpp
+++ b/dom/base/nsPluginArray.cpp
@@ -50,17 +50,17 @@ nsPluginArray::GetParentObject() const
 {
   MOZ_ASSERT(mWindow);
   return mWindow;
 }
 
 JSObject*
 nsPluginArray::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return PluginArrayBinding::Wrap(aCx, this, aGivenProto);
+  return PluginArray_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 NS_IMPL_CYCLE_COLLECTING_ADDREF(nsPluginArray)
 NS_IMPL_CYCLE_COLLECTING_RELEASE(nsPluginArray)
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsPluginArray)
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIObserver)
   NS_INTERFACE_MAP_ENTRY(nsIObserver)
@@ -430,17 +430,17 @@ nsPluginElement::GetParentObject() const
 {
   MOZ_ASSERT(mWindow);
   return mWindow;
 }
 
 JSObject*
 nsPluginElement::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return PluginBinding::Wrap(aCx, this, aGivenProto);
+  return Plugin_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 nsPluginElement::GetDescription(nsString& retval) const
 {
   CopyUTF8toUTF16(mPluginTag->Description(), retval);
 }
 
--- a/dom/base/nsRange.cpp
+++ b/dom/base/nsRange.cpp
@@ -39,17 +39,17 @@
 #include "mozilla/dom/InspectorFontFace.h"
 
 using namespace mozilla;
 using namespace mozilla::dom;
 
 JSObject*
 nsRange::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return RangeBinding::Wrap(aCx, this, aGivenProto);
+  return Range_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 DocGroup*
 nsRange::GetDocGroup() const
 {
   return mOwner ? mOwner->GetDocGroup() : nullptr;
 }
 
@@ -2288,35 +2288,35 @@ nsRange::CompareBoundaryPoints(uint16_t 
     rv.Throw(NS_ERROR_NOT_INITIALIZED);
     return 0;
   }
 
   nsINode *ourNode, *otherNode;
   uint32_t ourOffset, otherOffset;
 
   switch (aHow) {
-    case RangeBinding::START_TO_START:
+    case Range_Binding::START_TO_START:
       ourNode = mStart.Container();
       ourOffset = mStart.Offset();
       otherNode = aOtherRange.GetStartContainer();
       otherOffset = aOtherRange.StartOffset();
       break;
-    case RangeBinding::START_TO_END:
+    case Range_Binding::START_TO_END:
       ourNode = mEnd.Container();
       ourOffset = mEnd.Offset();
       otherNode = aOtherRange.GetStartContainer();
       otherOffset = aOtherRange.StartOffset();
       break;
-    case RangeBinding::END_TO_START:
+    case Range_Binding::END_TO_START:
       ourNode = mStart.Container();
       ourOffset = mStart.Offset();
       otherNode = aOtherRange.GetEndContainer();
       otherOffset = aOtherRange.EndOffset();
       break;
-    case RangeBinding::END_TO_END:
+    case Range_Binding::END_TO_END:
       ourNode = mEnd.Container();
       ourOffset = mEnd.Offset();
       otherNode = aOtherRange.GetEndContainer();
       otherOffset = aOtherRange.EndOffset();
       break;
     default:
       // We were passed an illegal value
       rv.Throw(NS_ERROR_DOM_NOT_SUPPORTED_ERR);
--- a/dom/base/nsScreen.cpp
+++ b/dom/base/nsScreen.cpp
@@ -294,17 +294,17 @@ nsScreen::IsDeviceSizePageSize()
   }
   return false;
 }
 
 /* virtual */
 JSObject*
 nsScreen::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return ScreenBinding::Wrap(aCx, this, aGivenProto);
+  return Screen_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsresult
 nsScreen::GetWindowInnerRect(nsRect& aRect)
 {
   aRect.x = 0;
   aRect.y = 0;
   nsCOMPtr<nsPIDOMWindowInner> win = GetOwner();
--- a/dom/base/nsStyledElement.cpp
+++ b/dom/base/nsStyledElement.cpp
@@ -96,18 +96,18 @@ nsStyledElement::InlineStyleDeclarationW
         aData.mOldValue->SetTo(oldValueStr);
       }
     } else {
       modification = HasAttr(kNameSpaceID_None, nsGkAtoms::style);
     }
   }
 
   aData.mModType = modification ?
-    static_cast<uint8_t>(MutationEventBinding::MODIFICATION) :
-    static_cast<uint8_t>(MutationEventBinding::ADDITION);
+    static_cast<uint8_t>(MutationEvent_Binding::MODIFICATION) :
+    static_cast<uint8_t>(MutationEvent_Binding::ADDITION);
   nsNodeUtils::AttributeWillChange(this, kNameSpaceID_None,
                                    nsGkAtoms::style,
                                    aData.mModType, nullptr);
 
   //XXXsmaug In order to make attribute handling more consistent, consider to
   //         call BeforeSetAttr and pass kCallAfterSetAttr to
   //         SetAttrAndNotify in SetInlineStyleDeclaration.
   //         Handling of mozAutoDocUpdate may require changes in that case.
--- a/dom/base/nsTextNode.cpp
+++ b/dom/base/nsTextNode.cpp
@@ -99,17 +99,17 @@ nsTextNode::~nsTextNode()
 
 // Use the CC variant of this, even though this class does not define
 // a new CC participant, to make QIing to the CC interfaces faster.
 NS_IMPL_ISUPPORTS_CYCLE_COLLECTION_INHERITED_0(nsTextNode, CharacterData)
 
 JSObject*
 nsTextNode::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return TextBinding::Wrap(aCx, this, aGivenProto);
+  return Text_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 bool
 nsTextNode::IsNodeOfType(uint32_t aFlags) const
 {
   return false;
 }
 
--- a/dom/base/nsTraversal.cpp
+++ b/dom/base/nsTraversal.cpp
@@ -45,22 +45,22 @@ nsTraversal::TestNode(nsINode* aNode, mo
     if (mInAcceptNode) {
         aResult.Throw(NS_ERROR_DOM_INVALID_STATE_ERR);
         return 0;
     }
 
     uint16_t nodeType = aNode->NodeType();
 
     if (nodeType <= 12 && !((1 << (nodeType-1)) & mWhatToShow)) {
-        return NodeFilterBinding::FILTER_SKIP;
+        return NodeFilter_Binding::FILTER_SKIP;
     }
 
     if (!mFilter) {
         // No filter, just accept
-        return NodeFilterBinding::FILTER_ACCEPT;
+        return NodeFilter_Binding::FILTER_ACCEPT;
     }
 
     AutoRestore<bool> inAcceptNode(mInAcceptNode);
     mInAcceptNode = true;
     // No need to pass in an execution reason, since the generated default,
     // "NodeFilter.acceptNode", is pretty much exactly what we'd say anyway.
     return mFilter->AcceptNode(*aNode, aResult, nullptr,
                                CallbackObject::eRethrowExceptions);
--- a/dom/base/nsTreeSanitizer.cpp
+++ b/dom/base/nsTreeSanitizer.cpp
@@ -1118,25 +1118,25 @@ nsTreeSanitizer::SanitizeStyleSheet(cons
     mozilla::css::Rule* rule = rules->Item(i);
     if (!rule)
       continue;
     switch (rule->Type()) {
       default:
         didSanitize = true;
         // Ignore these rule types.
         break;
-      case CSSRuleBinding::NAMESPACE_RULE:
-      case CSSRuleBinding::FONT_FACE_RULE: {
+      case CSSRule_Binding::NAMESPACE_RULE:
+      case CSSRule_Binding::FONT_FACE_RULE: {
         // Append @namespace and @font-face rules verbatim.
         nsAutoString cssText;
         rule->GetCssText(cssText);
         aSanitized.Append(cssText);
         break;
       }
-      case CSSRuleBinding::STYLE_RULE: {
+      case CSSRule_Binding::STYLE_RULE: {
         // For style rules, we will just look for and remove the
         // -moz-binding properties.
         auto styleRule = static_cast<BindingStyleRule*>(rule);
         DeclarationBlock* styleDecl = styleRule->GetDeclarationBlock();
         MOZ_ASSERT(styleDecl);
         if (SanitizeStyleDeclaration(styleDecl)) {
           didSanitize = true;
         }
--- a/dom/base/nsWindowRoot.cpp
+++ b/dom/base/nsWindowRoot.cpp
@@ -326,17 +326,17 @@ nsIGlobalObject*
 nsWindowRoot::GetParentObject()
 {
   return xpc::NativeGlobal(xpc::PrivilegedJunkScope());
 }
 
 JSObject*
 nsWindowRoot::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return mozilla::dom::WindowRootBinding::Wrap(aCx, this, aGivenProto);
+  return mozilla::dom::WindowRoot_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 nsWindowRoot::AddBrowser(mozilla::dom::TabParent* aBrowser)
 {
   nsWeakPtr weakBrowser = do_GetWeakReference(static_cast<nsITabParent*>(aBrowser));
   mWeakBrowsers.PutEntry(weakBrowser);
 }
--- a/dom/battery/BatteryManager.cpp
+++ b/dom/battery/BatteryManager.cpp
@@ -51,17 +51,17 @@ void
 BatteryManager::Shutdown()
 {
   hal::UnregisterBatteryObserver(this);
 }
 
 JSObject*
 BatteryManager::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return BatteryManagerBinding::Wrap(aCx, this, aGivenProto);
+  return BatteryManager_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 bool
 BatteryManager::Charging() const
 {
   MOZ_ASSERT(NS_IsMainThread());
   // For testing, unable to report the battery status information
   if (Preferences::GetBool("dom.battery.test.default", false)) {
--- a/dom/bindings/BindingUtils.cpp
+++ b/dom/bindings/BindingUtils.cpp
@@ -61,33 +61,33 @@
 #include "mozilla/dom/DocGroup.h"
 #include "nsXULElement.h"
 
 namespace mozilla {
 namespace dom {
 
 // Forward declare GetConstructorObject methods.
 #define HTML_TAG(_tag, _classname, _interfacename)                             \
-namespace HTML##_interfacename##ElementBinding {                               \
+namespace HTML##_interfacename##Element_Binding {                               \
   JSObject* GetConstructorObject(JSContext*);                                  \
 }
 #define HTML_OTHER(_tag)
 #include "nsHTMLTagList.h"
 #undef HTML_TAG
 #undef HTML_OTHER
 
 typedef JSObject* (*constructorGetterCallback)(JSContext*);
 
 // Mapping of html tag and GetConstructorObject methods.
-#define HTML_TAG(_tag, _classname, _interfacename) HTML##_interfacename##ElementBinding::GetConstructorObject,
+#define HTML_TAG(_tag, _classname, _interfacename) HTML##_interfacename##Element_Binding::GetConstructorObject,
 #define HTML_OTHER(_tag) nullptr,
 // We use eHTMLTag_foo (where foo is the tag) which is defined in nsHTMLTags.h
 // to index into this array.
 static const constructorGetterCallback sConstructorGetterCallback[] = {
-  HTMLUnknownElementBinding::GetConstructorObject,
+  HTMLUnknownElement_Binding::GetConstructorObject,
 #include "nsHTMLTagList.h"
 #undef HTML_TAG
 #undef HTML_OTHER
 };
 
 const JSErrorFormatString ErrorFormatString[] = {
 #define MSG_DEF(_name, _argc, _exn, _str) \
   { #_name, _str, _argc, _exn },
@@ -3795,19 +3795,19 @@ HTMLConstructor(JSContext* aCx, unsigned
     // If the definition is for an autonomous custom element, the active
     // function should be HTMLElement or XULElement.  We want to get the actual
     // functions to compare to from our global's realm, not the caller
     // realm.
     JSAutoRealm ar(aCx, global.Get());
 
     JS::Rooted<JSObject*> constructor(aCx);
     if (ns == kNameSpaceID_XUL) {
-      constructor = XULElementBinding::GetConstructorObject(aCx);
+      constructor = XULElement_Binding::GetConstructorObject(aCx);
     } else {
-      constructor = HTMLElementBinding::GetConstructorObject(aCx);
+      constructor = HTMLElement_Binding::GetConstructorObject(aCx);
     }
 
     if (!constructor) {
       return false;
     }
 
     if (constructor != js::CheckedUnwrap(callee)) {
       return ThrowErrorMessage(aCx, MSG_ILLEGAL_CONSTRUCTOR);
@@ -3828,19 +3828,19 @@ HTMLConstructor(JSContext* aCx, unsigned
       // If the definition is for a customized built-in element, the active
       // function should be the localname's element interface.
       cb = sConstructorGetterCallback[tag];
     } else { // kNameSpaceID_XUL
       if (definition->mLocalName == nsGkAtoms::menupopup ||
           definition->mLocalName == nsGkAtoms::popup ||
           definition->mLocalName == nsGkAtoms::panel ||
           definition->mLocalName == nsGkAtoms::tooltip) {
-        cb = XULPopupElementBinding::GetConstructorObject;
+        cb = XULPopupElement_Binding::GetConstructorObject;
       } else {
-        cb = XULElementBinding::GetConstructorObject;
+        cb = XULElement_Binding::GetConstructorObject;
       }
     }
 
     if (!cb) {
       return ThrowErrorMessage(aCx, MSG_ILLEGAL_CONSTRUCTOR);
     }
 
     // We want to get the constructor from our global's realm, not the
--- a/dom/bindings/BindingUtils.h
+++ b/dom/bindings/BindingUtils.h
@@ -189,29 +189,29 @@ IsDOMObject(JSObject* obj)
 }
 
 // There are two valid ways to use UNWRAP_OBJECT: Either obj needs to
 // be a MutableHandle<JSObject*>, or value needs to be a strong-reference
 // smart pointer type (OwningNonNull or RefPtr or nsCOMPtr), in which case obj
 // can be anything that converts to JSObject*.
 #define UNWRAP_OBJECT(Interface, obj, value)                                 \
   mozilla::dom::UnwrapObject<mozilla::dom::prototypes::id::Interface,        \
-    mozilla::dom::Interface##Binding::NativeType>(obj, value)
+    mozilla::dom::Interface##_Binding::NativeType>(obj, value)
 
 // Test whether the given object is an instance of the given interface.
 #define IS_INSTANCE_OF(Interface, obj)                                  \
   mozilla::dom::IsInstanceOf<mozilla::dom::prototypes::id::Interface,   \
-                             mozilla::dom::Interface##Binding::NativeType>(obj)
+                             mozilla::dom::Interface##_Binding::NativeType>(obj)
 
 // Unwrap the given non-wrapper object.  This can be used with any obj that
 // converts to JSObject*; as long as that JSObject* is live the return value
 // will be valid.
 #define UNWRAP_NON_WRAPPER_OBJECT(Interface, obj, value)                        \
   mozilla::dom::UnwrapNonWrapperObject<mozilla::dom::prototypes::id::Interface, \
-    mozilla::dom::Interface##Binding::NativeType>(obj, value)
+    mozilla::dom::Interface##_Binding::NativeType>(obj, value)
 
 // Some callers don't want to set an exception when unwrapping fails
 // (for example, overload resolution uses unwrapping to tell what sort
 // of thing it's looking at).
 // U must be something that a T* can be assigned to (e.g. T* or an RefPtr<T>).
 //
 // The obj argument will be mutated to point to CheckedUnwrap of itself if the
 // passed-in value is not a DOM object and CheckedUnwrap succeeds.
--- a/dom/bindings/test/TestFunctions.cpp
+++ b/dom/bindings/test/TestFunctions.cpp
@@ -139,13 +139,13 @@ TestFunctions::ObjectFromAboutBlank(JSCo
 
   return doc->GetDocumentURI()->GetSpecOrDefault().EqualsLiteral("about:blank");
 }
 
 bool
 TestFunctions::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto,
                           JS::MutableHandle<JSObject*> aWrapper)
 {
-  return TestFunctionsBinding::Wrap(aCx, this, aGivenProto, aWrapper);
+  return TestFunctions_Binding::Wrap(aCx, this, aGivenProto, aWrapper);
 }
 
 }
 }
--- a/dom/bindings/test/TestInterfaceIterableDouble.cpp
+++ b/dom/bindings/test/TestInterfaceIterableDouble.cpp
@@ -46,17 +46,17 @@ TestInterfaceIterableDouble::Constructor
 
   RefPtr<TestInterfaceIterableDouble> r = new TestInterfaceIterableDouble(window);
   return r.forget();
 }
 
 JSObject*
 TestInterfaceIterableDouble::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return TestInterfaceIterableDoubleBinding::Wrap(aCx, this, aGivenProto);
+  return TestInterfaceIterableDouble_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsPIDOMWindowInner*
 TestInterfaceIterableDouble::GetParentObject() const
 {
   return mParent;
 }
 
--- a/dom/bindings/test/TestInterfaceIterableDoubleUnion.cpp
+++ b/dom/bindings/test/TestInterfaceIterableDoubleUnion.cpp
@@ -47,17 +47,17 @@ TestInterfaceIterableDoubleUnion::Constr
 
   RefPtr<TestInterfaceIterableDoubleUnion> r = new TestInterfaceIterableDoubleUnion(window);
   return r.forget();
 }
 
 JSObject*
 TestInterfaceIterableDoubleUnion::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return TestInterfaceIterableDoubleUnionBinding::Wrap(aCx, this, aGivenProto);
+  return TestInterfaceIterableDoubleUnion_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsPIDOMWindowInner*
 TestInterfaceIterableDoubleUnion::GetParentObject() const
 {
   return mParent;
 }
 
--- a/dom/bindings/test/TestInterfaceIterableSingle.cpp
+++ b/dom/bindings/test/TestInterfaceIterableSingle.cpp
@@ -43,17 +43,17 @@ TestInterfaceIterableSingle::Constructor
 
   RefPtr<TestInterfaceIterableSingle> r = new TestInterfaceIterableSingle(window);
   return r.forget();
 }
 
 JSObject*
 TestInterfaceIterableSingle::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return TestInterfaceIterableSingleBinding::Wrap(aCx, this, aGivenProto);
+  return TestInterfaceIterableSingle_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsPIDOMWindowInner*
 TestInterfaceIterableSingle::GetParentObject() const
 {
   return mParent;
 }
 
--- a/dom/bindings/test/TestInterfaceMaplike.cpp
+++ b/dom/bindings/test/TestInterfaceMaplike.cpp
@@ -40,47 +40,47 @@ TestInterfaceMaplike::Constructor(const 
 
   RefPtr<TestInterfaceMaplike> r = new TestInterfaceMaplike(window);
   return r.forget();
 }
 
 JSObject*
 TestInterfaceMaplike::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return TestInterfaceMaplikeBinding::Wrap(aCx, this, aGivenProto);
+  return TestInterfaceMaplike_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsPIDOMWindowInner*
 TestInterfaceMaplike::GetParentObject() const
 {
   return mParent;
 }
 
 void
 TestInterfaceMaplike::SetInternal(const nsAString& aKey, int32_t aValue)
 {
   ErrorResult rv;
-  TestInterfaceMaplikeBinding::MaplikeHelpers::Set(this, aKey, aValue, rv);
+  TestInterfaceMaplike_Binding::MaplikeHelpers::Set(this, aKey, aValue, rv);
 }
 
 void
 TestInterfaceMaplike::ClearInternal()
 {
   ErrorResult rv;
-  TestInterfaceMaplikeBinding::MaplikeHelpers::Clear(this, rv);
+  TestInterfaceMaplike_Binding::MaplikeHelpers::Clear(this, rv);
 }
 
 bool
 TestInterfaceMaplike::DeleteInternal(const nsAString& aKey)
 {
   ErrorResult rv;
-  return TestInterfaceMaplikeBinding::MaplikeHelpers::Delete(this, aKey, rv);
+  return TestInterfaceMaplike_Binding::MaplikeHelpers::Delete(this, aKey, rv);
 }
 
 bool
 TestInterfaceMaplike::HasInternal(const nsAString& aKey)
 {
   ErrorResult rv;
-  return TestInterfaceMaplikeBinding::MaplikeHelpers::Has(this, aKey, rv);
+  return TestInterfaceMaplike_Binding::MaplikeHelpers::Has(this, aKey, rv);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/bindings/test/TestInterfaceMaplikeObject.cpp
+++ b/dom/bindings/test/TestInterfaceMaplikeObject.cpp
@@ -43,48 +43,48 @@ TestInterfaceMaplikeObject::Constructor(
     new TestInterfaceMaplikeObject(window);
   return r.forget();
 }
 
 JSObject*
 TestInterfaceMaplikeObject::WrapObject(JSContext* aCx,
                                        JS::Handle<JSObject*> aGivenProto)
 {
-  return TestInterfaceMaplikeObjectBinding::Wrap(aCx, this, aGivenProto);
+  return TestInterfaceMaplikeObject_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsPIDOMWindowInner*
 TestInterfaceMaplikeObject::GetParentObject() const
 {
   return mParent;
 }
 
 void
 TestInterfaceMaplikeObject::SetInternal(const nsAString& aKey)
 {
   RefPtr<TestInterfaceMaplike> p(new TestInterfaceMaplike(mParent));
   ErrorResult rv;
-  TestInterfaceMaplikeObjectBinding::MaplikeHelpers::Set(this, aKey, *p, rv);
+  TestInterfaceMaplikeObject_Binding::MaplikeHelpers::Set(this, aKey, *p, rv);
 }
 
 void
 TestInterfaceMaplikeObject::ClearInternal()
 {
   ErrorResult rv;
-  TestInterfaceMaplikeObjectBinding::MaplikeHelpers::Clear(this, rv);
+  TestInterfaceMaplikeObject_Binding::MaplikeHelpers::Clear(this, rv);
 }
 
 bool
 TestInterfaceMaplikeObject::DeleteInternal(const nsAString& aKey)
 {
   ErrorResult rv;
-  return TestInterfaceMaplikeObjectBinding::MaplikeHelpers::Delete(this, aKey, rv);
+  return TestInterfaceMaplikeObject_Binding::MaplikeHelpers::Delete(this, aKey, rv);
 }
 
 bool
 TestInterfaceMaplikeObject::HasInternal(const nsAString& aKey)
 {
   ErrorResult rv;
-  return TestInterfaceMaplikeObjectBinding::MaplikeHelpers::Has(this, aKey, rv);
+  return TestInterfaceMaplikeObject_Binding::MaplikeHelpers::Has(this, aKey, rv);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/bindings/test/TestInterfaceSetlike.cpp
+++ b/dom/bindings/test/TestInterfaceSetlike.cpp
@@ -42,17 +42,17 @@ TestInterfaceSetlike::Constructor(const 
   RefPtr<TestInterfaceSetlike> r = new TestInterfaceSetlike(nullptr, window);
   return r.forget();
 }
 
 JSObject*
 TestInterfaceSetlike::WrapObject(JSContext* aCx,
                                  JS::Handle<JSObject*> aGivenProto)
 {
-  return TestInterfaceSetlikeBinding::Wrap(aCx, this, aGivenProto);
+  return TestInterfaceSetlike_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsPIDOMWindowInner*
 TestInterfaceSetlike::GetParentObject() const
 {
   return mParent;
 }
 
--- a/dom/bindings/test/TestInterfaceSetlikeNode.cpp
+++ b/dom/bindings/test/TestInterfaceSetlikeNode.cpp
@@ -42,17 +42,17 @@ TestInterfaceSetlikeNode::Constructor(co
   RefPtr<TestInterfaceSetlikeNode> r = new TestInterfaceSetlikeNode(nullptr, window);
   return r.forget();
 }
 
 JSObject*
 TestInterfaceSetlikeNode::WrapObject(JSContext* aCx,
                                      JS::Handle<JSObject*> aGivenProto)
 {
-  return TestInterfaceSetlikeNodeBinding::Wrap(aCx, this, aGivenProto);
+  return TestInterfaceSetlikeNode_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsPIDOMWindowInner*
 TestInterfaceSetlikeNode::GetParentObject() const
 {
   return mParent;
 }
 
--- a/dom/broadcastchannel/BroadcastChannel.cpp
+++ b/dom/broadcastchannel/BroadcastChannel.cpp
@@ -255,17 +255,17 @@ BroadcastChannel::~BroadcastChannel()
 {
   Shutdown();
   MOZ_ASSERT(!mWorkerRef);
 }
 
 JSObject*
 BroadcastChannel::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return BroadcastChannelBinding::Wrap(aCx, this, aGivenProto);
+  return BroadcastChannel_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 /* static */ already_AddRefed<BroadcastChannel>
 BroadcastChannel::Constructor(const GlobalObject& aGlobal,
                               const nsAString& aChannel,
                               ErrorResult& aRv)
 {
   nsCOMPtr<nsPIDOMWindowInner> window =
--- a/dom/cache/Cache.cpp
+++ b/dom/cache/Cache.cpp
@@ -520,17 +520,17 @@ nsISupports*
 Cache::GetParentObject() const
 {
   return mGlobal;
 }
 
 JSObject*
 Cache::WrapObject(JSContext* aContext, JS::Handle<JSObject*> aGivenProto)
 {
-  return CacheBinding::Wrap(aContext, this, aGivenProto);
+  return Cache_Binding::Wrap(aContext, this, aGivenProto);
 }
 
 void
 Cache::DestroyInternal(CacheChild* aActor)
 {
   MOZ_DIAGNOSTIC_ASSERT(mActor);
   MOZ_DIAGNOSTIC_ASSERT(mActor == aActor);
   mActor->ClearListener();
--- a/dom/cache/CacheStorage.cpp
+++ b/dom/cache/CacheStorage.cpp
@@ -239,18 +239,18 @@ CacheStorage::CreateOnWorker(Namespace a
 bool
 CacheStorage::DefineCaches(JSContext* aCx, JS::Handle<JSObject*> aGlobal)
 {
   MOZ_ASSERT(NS_IsMainThread());
   MOZ_DIAGNOSTIC_ASSERT(js::GetObjectClass(aGlobal)->flags & JSCLASS_DOM_GLOBAL,
                                            "Passed object is not a global object!");
   js::AssertSameCompartment(aCx, aGlobal);
 
-  if (NS_WARN_IF(!CacheStorageBinding::GetConstructorObject(aCx) ||
-                 !CacheBinding::GetConstructorObject(aCx))) {
+  if (NS_WARN_IF(!CacheStorage_Binding::GetConstructorObject(aCx) ||
+                 !Cache_Binding::GetConstructorObject(aCx))) {
     return false;
   }
 
   nsIPrincipal* principal = nsContentUtils::ObjectPrincipal(aGlobal);
   MOZ_DIAGNOSTIC_ASSERT(principal);
 
   ErrorResult rv;
   RefPtr<CacheStorage> storage =
@@ -485,17 +485,17 @@ nsISupports*
 CacheStorage::GetParentObject() const
 {
   return mGlobal;
 }
 
 JSObject*
 CacheStorage::WrapObject(JSContext* aContext, JS::Handle<JSObject*> aGivenProto)
 {
-  return mozilla::dom::CacheStorageBinding::Wrap(aContext, this, aGivenProto);
+  return mozilla::dom::CacheStorage_Binding::Wrap(aContext, this, aGivenProto);
 }
 
 void
 CacheStorage::DestroyInternal(CacheStorageChild* aActor)
 {
   NS_ASSERT_OWNINGTHREAD(CacheStorage);
   MOZ_DIAGNOSTIC_ASSERT(mActor);
   MOZ_DIAGNOSTIC_ASSERT(mActor == aActor);
--- a/dom/canvas/CanvasGradient.h
+++ b/dom/canvas/CanvasGradient.h
@@ -48,17 +48,17 @@ public:
     return mStops;
   }
 
   // WebIDL
   void AddColorStop(float offset, const nsAString& colorstr, ErrorResult& rv);
 
   JSObject* WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
   {
-    return CanvasGradientBinding::Wrap(aCx, this, aGivenProto);
+    return CanvasGradient_Binding::Wrap(aCx, this, aGivenProto);
   }
 
   CanvasRenderingContext2D* GetParentObject()
   {
     return mContext;
   }
 
 protected:
--- a/dom/canvas/CanvasPattern.h
+++ b/dom/canvas/CanvasPattern.h
@@ -49,17 +49,17 @@ public:
     , mForceWriteOnly(forceWriteOnly)
     , mCORSUsed(CORSUsed)
     , mRepeat(aRepeat)
   {
   }
 
   JSObject* WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
   {
-    return CanvasPatternBinding::Wrap(aCx, this, aGivenProto);
+    return CanvasPattern_Binding::Wrap(aCx, this, aGivenProto);
   }
 
   CanvasRenderingContext2D* GetParentObject()
   {
     return mContext;
   }
 
   // WebIDL
--- a/dom/canvas/CanvasRenderingContext2D.cpp
+++ b/dom/canvas/CanvasRenderingContext2D.cpp
@@ -1133,17 +1133,17 @@ CanvasRenderingContext2D::~CanvasRenderi
     NS_IF_RELEASE(sErrorTarget);
   }
   RemoveDemotableContext(this);
 }
 
 JSObject*
 CanvasRenderingContext2D::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return CanvasRenderingContext2DBinding::Wrap(aCx, this, aGivenProto);
+  return CanvasRenderingContext2D_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 bool
 CanvasRenderingContext2D::ParseColor(const nsAString& aString,
                                      nscolor* aColor)
 {
   nsIDocument* document = mCanvasElement ? mCanvasElement->OwnerDoc() : nullptr;
   css::Loader* loader = document ? document->CSSLoader() : nullptr;
@@ -5270,17 +5270,17 @@ CanvasRenderingContext2D::DrawWindow(nsG
   // protect against too-large surfaces that will cause allocation
   // or overflow issues
   if (!Factory::CheckSurfaceSize(IntSize(int32_t(aW), int32_t(aH)), 0xffff)) {
     aError.Throw(NS_ERROR_FAILURE);
     return;
   }
 
   // Flush layout updates
-  if (!(aFlags & CanvasRenderingContext2DBinding::DRAWWINDOW_DO_NOT_FLUSH)) {
+  if (!(aFlags & CanvasRenderingContext2D_Binding::DRAWWINDOW_DO_NOT_FLUSH)) {
     nsContentUtils::FlushLayoutForTree(aWindow.AsInner()->GetOuterWindow());
   }
 
   CompositionOp op = UsedOperation();
   bool discardContent = GlobalAlpha() == 1.0f
     && (op == CompositionOp::OP_OVER || op == CompositionOp::OP_SOURCE);
   const gfx::Rect drawRect(aX, aY, aW, aH);
   EnsureTarget(discardContent ? &drawRect : nullptr);
@@ -5305,30 +5305,30 @@ CanvasRenderingContext2D::DrawWindow(nsG
   }
 
   nsRect r(nsPresContext::CSSPixelsToAppUnits((float)aX),
            nsPresContext::CSSPixelsToAppUnits((float)aY),
            nsPresContext::CSSPixelsToAppUnits((float)aW),
            nsPresContext::CSSPixelsToAppUnits((float)aH));
   uint32_t renderDocFlags = (nsIPresShell::RENDER_IGNORE_VIEWPORT_SCROLLING |
                              nsIPresShell::RENDER_DOCUMENT_RELATIVE);
-  if (aFlags & CanvasRenderingContext2DBinding::DRAWWINDOW_DRAW_CARET) {
+  if (aFlags & CanvasRenderingContext2D_Binding::DRAWWINDOW_DRAW_CARET) {
     renderDocFlags |= nsIPresShell::RENDER_CARET;
   }
-  if (aFlags & CanvasRenderingContext2DBinding::DRAWWINDOW_DRAW_VIEW) {
+  if (aFlags & CanvasRenderingContext2D_Binding::DRAWWINDOW_DRAW_VIEW) {
     renderDocFlags &= ~(nsIPresShell::RENDER_IGNORE_VIEWPORT_SCROLLING |
                         nsIPresShell::RENDER_DOCUMENT_RELATIVE);
   }
-  if (aFlags & CanvasRenderingContext2DBinding::DRAWWINDOW_USE_WIDGET_LAYERS) {
+  if (aFlags & CanvasRenderingContext2D_Binding::DRAWWINDOW_USE_WIDGET_LAYERS) {
     renderDocFlags |= nsIPresShell::RENDER_USE_WIDGET_LAYERS;
   }
-  if (aFlags & CanvasRenderingContext2DBinding::DRAWWINDOW_ASYNC_DECODE_IMAGES) {
+  if (aFlags & CanvasRenderingContext2D_Binding::DRAWWINDOW_ASYNC_DECODE_IMAGES) {
     renderDocFlags |= nsIPresShell::RENDER_ASYNC_DECODE_IMAGES;
   }
-  if (aFlags & CanvasRenderingContext2DBinding::DRAWWINDOW_DO_NOT_FLUSH) {
+  if (aFlags & CanvasRenderingContext2D_Binding::DRAWWINDOW_DO_NOT_FLUSH) {
     renderDocFlags |= nsIPresShell::RENDER_DRAWWINDOW_NOT_FLUSHING;
   }
 
   // gfxContext-over-Azure may modify the DrawTarget's transform, so
   // save and restore it
   Matrix matrix = mTarget->GetTransform();
   double sw = matrix._11 * aW;
   double sh = matrix._22 * aH;
@@ -6126,17 +6126,17 @@ CanvasPath::CanvasPath(nsISupports* aPar
   if (!mPathBuilder) {
     mPathBuilder = gfxPlatform::GetPlatform()->ScreenReferenceDrawTarget()->CreatePathBuilder();
   }
 }
 
 JSObject*
 CanvasPath::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return Path2DBinding::Wrap(aCx, this, aGivenProto);
+  return Path2D_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 already_AddRefed<CanvasPath>
 CanvasPath::Constructor(const GlobalObject& aGlobal, ErrorResult& aRv)
 {
   RefPtr<CanvasPath> path = new CanvasPath(aGlobal.GetAsSupports());
   return path.forget();
 }
--- a/dom/canvas/ImageBitmap.cpp
+++ b/dom/canvas/ImageBitmap.cpp
@@ -20,18 +20,18 @@
 #include "mozilla/ScopeExit.h"
 #include "ImageBitmapColorUtils.h"
 #include "ImageBitmapUtils.h"
 #include "ImageUtils.h"
 #include "imgTools.h"
 
 using namespace mozilla::gfx;
 using namespace mozilla::layers;
-using mozilla::dom::HTMLMediaElementBinding::NETWORK_EMPTY;
-using mozilla::dom::HTMLMediaElementBinding::HAVE_METADATA;
+using mozilla::dom::HTMLMediaElement_Binding::NETWORK_EMPTY;
+using mozilla::dom::HTMLMediaElement_Binding::HAVE_METADATA;
 
 namespace mozilla {
 namespace dom {
 
 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(ImageBitmap, mParent)
 NS_IMPL_CYCLE_COLLECTING_ADDREF(ImageBitmap)
 NS_IMPL_CYCLE_COLLECTING_RELEASE(ImageBitmap)
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(ImageBitmap)
@@ -538,17 +538,17 @@ ImageBitmap::~ImageBitmap()
     mShutdownObserver->UnregisterObserver();
     mShutdownObserver = nullptr;
   }
 }
 
 JSObject*
 ImageBitmap::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return ImageBitmapBinding::Wrap(aCx, this, aGivenProto);
+  return ImageBitmap_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 ImageBitmap::Close()
 {
   mData = nullptr;
   mSurface = nullptr;
   mDataWrapper = nullptr;
--- a/dom/canvas/ImageBitmapRenderingContext.cpp
+++ b/dom/canvas/ImageBitmapRenderingContext.cpp
@@ -20,17 +20,17 @@ ImageBitmapRenderingContext::ImageBitmap
 ImageBitmapRenderingContext::~ImageBitmapRenderingContext()
 {
   RemovePostRefreshObserver();
 }
 
 JSObject*
 ImageBitmapRenderingContext::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return ImageBitmapRenderingContextBinding::Wrap(aCx, this, aGivenProto);
+  return ImageBitmapRenderingContext_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 already_AddRefed<layers::Image>
 ImageBitmapRenderingContext::ClipToIntrinsicSize()
 {
   if (!mImage) {
     return nullptr;
   }
--- a/dom/canvas/ImageData.cpp
+++ b/dom/canvas/ImageData.cpp
@@ -110,13 +110,13 @@ ImageData::DropData()
     mData = nullptr;
     mozilla::DropJSObjects(this);
   }
 }
 
 bool
 ImageData::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto, JS::MutableHandle<JSObject*> aReflector)
 {
-  return ImageDataBinding::Wrap(aCx, this, aGivenProto, aReflector);
+  return ImageData_Binding::Wrap(aCx, this, aGivenProto, aReflector);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/canvas/OffscreenCanvas.cpp
+++ b/dom/canvas/OffscreenCanvas.cpp
@@ -59,17 +59,17 @@ OffscreenCanvas::~OffscreenCanvas()
 {
   ClearResources();
 }
 
 JSObject*
 OffscreenCanvas::WrapObject(JSContext* aCx,
                             JS::Handle<JSObject*> aGivenProto)
 {
-  return OffscreenCanvasBinding::Wrap(aCx, this, aGivenProto);
+  return OffscreenCanvas_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 /* static */ already_AddRefed<OffscreenCanvas>
 OffscreenCanvas::Constructor(const GlobalObject& aGlobal,
                              uint32_t aWidth,
                              uint32_t aHeight,
                              ErrorResult& aRv)
 {
--- a/dom/canvas/TextMetrics.h
+++ b/dom/canvas/TextMetrics.h
@@ -27,17 +27,17 @@ public:
 
   float Width() const
   {
     return width;
   }
 
   bool WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto, JS::MutableHandle<JSObject*> aReflector)
   {
-    return TextMetricsBinding::Wrap(aCx, this, aGivenProto, aReflector);
+    return TextMetrics_Binding::Wrap(aCx, this, aGivenProto, aReflector);
   }
 
 private:
   float width;
 };
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/canvas/WebGL1Context.cpp
+++ b/dom/canvas/WebGL1Context.cpp
@@ -30,12 +30,12 @@ UniquePtr<webgl::FormatUsageAuthority>
 WebGL1Context::CreateFormatUsage(gl::GLContext* gl) const
 {
     return webgl::FormatUsageAuthority::CreateForWebGL1(gl);
 }
 
 JSObject*
 WebGL1Context::WrapObject(JSContext* cx, JS::Handle<JSObject*> givenProto)
 {
-    return dom::WebGLRenderingContextBinding::Wrap(cx, this, givenProto);
+    return dom::WebGLRenderingContext_Binding::Wrap(cx, this, givenProto);
 }
 
 } // namespace mozilla
--- a/dom/canvas/WebGL2Context.cpp
+++ b/dom/canvas/WebGL2Context.cpp
@@ -45,17 +45,17 @@ WebGL2Context::IsSupported()
 WebGL2Context::Create()
 {
     return new WebGL2Context();
 }
 
 JSObject*
 WebGL2Context::WrapObject(JSContext* cx, JS::Handle<JSObject*> givenProto)
 {
-    return dom::WebGL2RenderingContextBinding::Wrap(cx, this, givenProto);
+    return dom::WebGL2RenderingContext_Binding::Wrap(cx, this, givenProto);
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 // WebGL 2 initialisation
 
 static const gl::GLFeature kRequiredFeatures[] = {
     gl::GLFeature::blend_minmax,
     gl::GLFeature::clear_buffers,
--- a/dom/canvas/WebGLActiveInfo.cpp
+++ b/dom/canvas/WebGLActiveInfo.cpp
@@ -116,17 +116,17 @@ WebGLActiveInfo::IsSampler() const
     }
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 
 JSObject*
 WebGLActiveInfo::WrapObject(JSContext* js, JS::Handle<JSObject*> givenProto)
 {
-    return dom::WebGLActiveInfoBinding::Wrap(js, this, givenProto);
+    return dom::WebGLActiveInfo_Binding::Wrap(js, this, givenProto);
 }
 
 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE_0(WebGLActiveInfo)
 
 NS_IMPL_CYCLE_COLLECTION_ROOT_NATIVE(WebGLActiveInfo, AddRef)
 NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(WebGLActiveInfo, Release)
 
 } // namespace mozilla
--- a/dom/canvas/WebGLBuffer.cpp
+++ b/dom/canvas/WebGLBuffer.cpp
@@ -417,17 +417,17 @@ void
 WebGLBuffer::ResetLastUpdateFenceId() const
 {
     mLastUpdateFenceId = mContext->mNextFenceId;
 }
 
 JSObject*
 WebGLBuffer::WrapObject(JSContext* cx, JS::Handle<JSObject*> givenProto)
 {
-    return dom::WebGLBufferBinding::Wrap(cx, this, givenProto);
+    return dom::WebGLBuffer_Binding::Wrap(cx, this, givenProto);
 }
 
 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE_0(WebGLBuffer)
 
 NS_IMPL_CYCLE_COLLECTION_ROOT_NATIVE(WebGLBuffer, AddRef)
 NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(WebGLBuffer, Release)
 
 } // namespace mozilla
--- a/dom/canvas/WebGLExtensions.h
+++ b/dom/canvas/WebGLExtensions.h
@@ -55,17 +55,17 @@ protected:
 };
 
 #define DECL_WEBGL_EXTENSION_GOOP \
     virtual JSObject* WrapObject(JSContext* cx, JS::Handle<JSObject*> givenProto) override;
 
 #define IMPL_WEBGL_EXTENSION_GOOP(WebGLExtensionType, WebGLBindingType)\
     JSObject*                                                    \
     WebGLExtensionType::WrapObject(JSContext* cx, JS::Handle<JSObject*> givenProto) {              \
-        return dom::WebGLBindingType##Binding::Wrap(cx, this, givenProto); \
+        return dom::WebGLBindingType##_Binding::Wrap(cx, this, givenProto); \
     }
 
 ////
 
 class WebGLExtensionCompressedTextureASTC
     : public WebGLExtensionBase
 {
 public:
--- a/dom/canvas/WebGLFramebuffer.cpp
+++ b/dom/canvas/WebGLFramebuffer.cpp
@@ -1934,17 +1934,17 @@ WebGLFramebuffer::BlitFramebuffer(WebGLC
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 // Goop.
 
 JSObject*
 WebGLFramebuffer::WrapObject(JSContext* cx, JS::Handle<JSObject*> givenProto)
 {
-    return dom::WebGLFramebufferBinding::Wrap(cx, this, givenProto);
+    return dom::WebGLFramebuffer_Binding::Wrap(cx, this, givenProto);
 }
 
 inline void
 ImplCycleCollectionUnlink(mozilla::WebGLFBAttachPoint& field)
 {
     field.Unlink();
 }
 
--- a/dom/canvas/WebGLProgram.cpp
+++ b/dom/canvas/WebGLProgram.cpp
@@ -1704,17 +1704,17 @@ webgl::LinkedProgramInfo::MapFragDataNam
     return true;
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 
 JSObject*
 WebGLProgram::WrapObject(JSContext* js, JS::Handle<JSObject*> givenProto)
 {
-    return dom::WebGLProgramBinding::Wrap(js, this, givenProto);
+    return dom::WebGLProgram_Binding::Wrap(js, this, givenProto);
 }
 
 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(WebGLProgram, mVertShader, mFragShader)
 
 NS_IMPL_CYCLE_COLLECTION_ROOT_NATIVE(WebGLProgram, AddRef)
 NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(WebGLProgram, Release)
 
 } // namespace mozilla
--- a/dom/canvas/WebGLQuery.cpp
+++ b/dom/canvas/WebGLQuery.cpp
@@ -230,17 +230,17 @@ WebGLQuery::QueryCounter(const char* fun
     availRunnable->mQueries.push_back(this);
 }
 
 ////
 
 JSObject*
 WebGLQuery::WrapObject(JSContext* cx, JS::Handle<JSObject*> givenProto)
 {
-    return dom::WebGLQueryBinding::Wrap(cx, this, givenProto);
+    return dom::WebGLQuery_Binding::Wrap(cx, this, givenProto);
 }
 
 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE_0(WebGLQuery)
 
 NS_IMPL_CYCLE_COLLECTION_ROOT_NATIVE(WebGLQuery, AddRef)
 NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(WebGLQuery, Release)
 
 } // namespace mozilla
--- a/dom/canvas/WebGLRenderbuffer.cpp
+++ b/dom/canvas/WebGLRenderbuffer.cpp
@@ -22,17 +22,17 @@ DepthFormatForDepthStencilEmu(gl::GLCont
         return LOCAL_GL_DEPTH_COMPONENT16;
 
     return LOCAL_GL_DEPTH_COMPONENT24;
 }
 
 JSObject*
 WebGLRenderbuffer::WrapObject(JSContext* cx, JS::Handle<JSObject*> givenProto)
 {
-    return dom::WebGLRenderbufferBinding::Wrap(cx, this, givenProto);
+    return dom::WebGLRenderbuffer_Binding::Wrap(cx, this, givenProto);
 }
 
 static GLuint
 DoCreateRenderbuffer(gl::GLContext* gl)
 {
     MOZ_ASSERT(gl->IsCurrent());
 
     GLuint ret = 0;
--- a/dom/canvas/WebGLSampler.cpp
+++ b/dom/canvas/WebGLSampler.cpp
@@ -44,17 +44,17 @@ WebGLContext*
 WebGLSampler::GetParentObject() const
 {
     return mContext;
 }
 
 JSObject*
 WebGLSampler::WrapObject(JSContext* cx, JS::Handle<JSObject*> givenProto)
 {
-    return dom::WebGLSamplerBinding::Wrap(cx, this, givenProto);
+    return dom::WebGLSampler_Binding::Wrap(cx, this, givenProto);
 }
 
 static bool
 ValidateSamplerParameterParams(WebGLContext* webgl, const char* funcName, GLenum pname,
                                const FloatOrInt& param)
 {
     const auto& paramInt = param.i;
 
--- a/dom/canvas/WebGLShader.cpp
+++ b/dom/canvas/WebGLShader.cpp
@@ -422,17 +422,17 @@ WebGLShader::MapTransformFeedbackVarying
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 // Boilerplate
 
 JSObject*
 WebGLShader::WrapObject(JSContext* js, JS::Handle<JSObject*> givenProto)
 {
-    return dom::WebGLShaderBinding::Wrap(js, this, givenProto);
+    return dom::WebGLShader_Binding::Wrap(js, this, givenProto);
 }
 
 size_t
 WebGLShader::SizeOfIncludingThis(MallocSizeOf mallocSizeOf) const
 {
     size_t validatorSize = mValidator ? mallocSizeOf(mValidator.get())
                                       : 0;
     return mallocSizeOf(this) +
--- a/dom/canvas/WebGLShaderPrecisionFormat.cpp
+++ b/dom/canvas/WebGLShaderPrecisionFormat.cpp
@@ -10,12 +10,12 @@
 
 namespace mozilla {
 
 bool
 WebGLShaderPrecisionFormat::WrapObject(JSContext* cx,
                                        JS::Handle<JSObject*> givenProto,
                                        JS::MutableHandle<JSObject*> reflector)
 {
-    return dom::WebGLShaderPrecisionFormatBinding::Wrap(cx, this, givenProto, reflector);
+    return dom::WebGLShaderPrecisionFormat_Binding::Wrap(cx, this, givenProto, reflector);
 }
 
 } // namespace mozilla
--- a/dom/canvas/WebGLSync.cpp
+++ b/dom/canvas/WebGLSync.cpp
@@ -46,16 +46,16 @@ WebGLSync::MarkSignaled() const
     }
 }
 
 // -------------------------------------------------------------------------
 // IMPLEMENT NS
 JSObject*
 WebGLSync::WrapObject(JSContext* cx, JS::Handle<JSObject*> givenProto)
 {
-    return dom::WebGLSyncBinding::Wrap(cx, this, givenProto);
+    return dom::WebGLSync_Binding::Wrap(cx, this, givenProto);
 }
 
 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE_0(WebGLSync)
 NS_IMPL_CYCLE_COLLECTION_ROOT_NATIVE(WebGLSync, AddRef)
 NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(WebGLSync, Release);
 
 } // namespace mozilla
--- a/dom/canvas/WebGLTexture.cpp
+++ b/dom/canvas/WebGLTexture.cpp
@@ -116,17 +116,17 @@ WebGLTexture::ImageInfo::SetIsDataInitia
     mIsDataInitialized = isDataInitialized;
     tex->InvalidateResolveCache();
 }
 
 ////////////////////////////////////////
 
 JSObject*
 WebGLTexture::WrapObject(JSContext* cx, JS::Handle<JSObject*> givenProto) {
-    return dom::WebGLTextureBinding::Wrap(cx, this, givenProto);
+    return dom::WebGLTexture_Binding::Wrap(cx, this, givenProto);
 }
 
 WebGLTexture::WebGLTexture(WebGLContext* webgl, GLuint tex)
     : WebGLRefCountedObject(webgl)
     , mGLName(tex)
     , mTarget(LOCAL_GL_NONE)
     , mFaceCount(0)
     , mMinFilter(LOCAL_GL_NEAREST_MIPMAP_LINEAR)
--- a/dom/canvas/WebGLTransformFeedback.cpp
+++ b/dom/canvas/WebGLTransformFeedback.cpp
@@ -203,17 +203,17 @@ WebGLTransformFeedback::AddBufferBindCou
     }
 }
 
 ////////////////////////////////////////
 
 JSObject*
 WebGLTransformFeedback::WrapObject(JSContext* cx, JS::Handle<JSObject*> givenProto)
 {
-    return dom::WebGLTransformFeedbackBinding::Wrap(cx, this, givenProto);
+    return dom::WebGLTransformFeedback_Binding::Wrap(cx, this, givenProto);
 }
 
 NS_IMPL_CYCLE_COLLECTION_ROOT_NATIVE(WebGLTransformFeedback, AddRef)
 NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(WebGLTransformFeedback, Release)
 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(WebGLTransformFeedback,
                                       mIndexedBindings,
                                       mActive_Program)
 
--- a/dom/canvas/WebGLUniformLocation.cpp
+++ b/dom/canvas/WebGLUniformLocation.cpp
@@ -301,17 +301,17 @@ WebGLUniformLocation::GetUniform(JSConte
     }
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 
 JSObject*
 WebGLUniformLocation::WrapObject(JSContext* js, JS::Handle<JSObject*> givenProto)
 {
-    return dom::WebGLUniformLocationBinding::Wrap(js, this, givenProto);
+    return dom::WebGLUniformLocation_Binding::Wrap(js, this, givenProto);
 }
 
 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE_0(WebGLUniformLocation)
 
 NS_IMPL_CYCLE_COLLECTION_ROOT_NATIVE(WebGLUniformLocation, AddRef)
 NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(WebGLUniformLocation, Release)
 
 } // namespace mozilla
--- a/dom/canvas/WebGLVertexArray.cpp
+++ b/dom/canvas/WebGLVertexArray.cpp
@@ -12,17 +12,17 @@
 #include "WebGLVertexArrayGL.h"
 #include "WebGLVertexArrayFake.h"
 
 namespace mozilla {
 
 JSObject*
 WebGLVertexArray::WrapObject(JSContext* cx, JS::Handle<JSObject*> givenProto)
 {
-    return dom::WebGLVertexArrayObjectBinding::Wrap(cx, this, givenProto);
+    return dom::WebGLVertexArrayObject_Binding::Wrap(cx, this, givenProto);
 }
 
 WebGLVertexArray::WebGLVertexArray(WebGLContext* webgl)
     : WebGLRefCountedObject(webgl)
     , mGLName(0)
 {
     mAttribs.SetLength(mContext->mGLMaxVertexAttribs);
     mContext->mVertexArrays.insertBack(this);
--- a/dom/canvas/WebGLVertexArrayObject.cpp
+++ b/dom/canvas/WebGLVertexArrayObject.cpp
@@ -25,13 +25,13 @@ WebGLVertexArrayObject::Create(WebGLCont
 
   return nullptr;
 }
 
 JSObject*
 WebGLVertexArrayObject::WrapObject(JSContext* cx,
                                    JS::Handle<JSObject*> givenProto)
 {
-  return dom::WebGLVertexArrayObjectBinding::Wrap(cx, this, givenProto);
+  return dom::WebGLVertexArrayObject_Binding::Wrap(cx, this, givenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/canvas/test/webgl-conf/mochitest-errata.ini
+++ b/dom/canvas/test/webgl-conf/mochitest-errata.ini
@@ -1035,17 +1035,17 @@ skip-if = (os == 'mac' && debug)
 #19:53:21     INFO -     r15 = 0x000000013df7b000   rip = 0x000000010fef3d62
 #19:53:21     INFO -     Found by: call frame info
 #19:53:21     INFO -  9  XUL!mozilla::WebGLContext::TexImage(char const*, unsigned char, unsigned int, int, unsigned int, int, int, int, int, unsigned int, unsigned int, mozilla::TexImageSource const&) [WebGLContextTextures.cpp:6c8751f7f673a9751917d907e630d37abefe186b : 391 + 0x1f]
 #19:53:21     INFO -     rbx = 0x000000011420912a   rbp = 0x00007fff52570b20
 #19:53:21     INFO -     rsp = 0x00007fff52570ab0   r12 = 0x0000000000000100
 #19:53:21     INFO -     r13 = 0x00007fff52570bd0   r14 = 0x0000000000001908
 #19:53:21     INFO -     r15 = 0x0000000000000000   rip = 0x000000010feb6cfe
 #19:53:21     INFO -     Found by: call frame info
-#19:53:21     INFO - 10  XUL!mozilla::dom::WebGLRenderingContextBinding::texImage2D(JSContext*, JS::Handle<JSObject*>, mozilla::WebGLContext*, JSJitMethodCallArgs const&) [WebGLContext.h:6c8751f7f673a9751917d907e630d37abefe186b : 1231 + 0x55]
+#19:53:21     INFO - 10  XUL!mozilla::dom::WebGLRenderingContext_Binding::texImage2D(JSContext*, JS::Handle<JSObject*>, mozilla::WebGLContext*, JSJitMethodCallArgs const&) [WebGLContext.h:6c8751f7f673a9751917d907e630d37abefe186b : 1231 + 0x55]
 #19:53:21     INFO -     rbx = 0x00007fff52570c60   rbp = 0x00007fff52570cc0
 #19:53:21     INFO -     rsp = 0x00007fff52570b30   r12 = 0x00007fff52570c38
 #19:53:21     INFO -     r13 = 0x00007fff52570cf8   r14 = 0x000000011c125000
 #19:53:21     INFO -     r15 = 0xfff8800000001401   rip = 0x000000010f8a563f
 #19:53:21     INFO -     Found by: call frame info
 skip-if = (os == 'mac')
 [generated/test_2_conformance__textures__misc__cube-map-uploads-out-of-order.html]
 skip-if = (os == 'mac')
--- a/dom/clients/api/Client.cpp
+++ b/dom/clients/api/Client.cpp
@@ -69,19 +69,19 @@ Client::GetStorageAccess() const
   ClientState state(ClientState::FromIPC(mData->state()));
   return state.GetStorageAccess();
 }
 
 JSObject*
 Client::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
   if (mData->info().type() == ClientType::Window) {
-    return WindowClientBinding::Wrap(aCx, this, aGivenProto);
+    return WindowClient_Binding::Wrap(aCx, this, aGivenProto);
   }
-  return ClientBinding::Wrap(aCx, this, aGivenProto);
+  return Client_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsIGlobalObject*
 Client::GetParentObject() const
 {
   return mGlobal;
 }
 
--- a/dom/clients/api/Clients.cpp
+++ b/dom/clients/api/Clients.cpp
@@ -36,17 +36,17 @@ Clients::Clients(nsIGlobalObject* aGloba
   : mGlobal(aGlobal)
 {
   MOZ_DIAGNOSTIC_ASSERT(mGlobal);
 }
 
 JSObject*
 Clients::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return ClientsBinding::Wrap(aCx, this, aGivenProto);
+  return Clients_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsIGlobalObject*
 Clients::GetParentObject() const
 {
   return mGlobal;
 }
 
--- a/dom/console/ConsoleInstance.cpp
+++ b/dom/console/ConsoleInstance.cpp
@@ -105,17 +105,17 @@ ConsoleInstance::ConsoleInstance(JSConte
 }
 
 ConsoleInstance::~ConsoleInstance()
 {}
 
 JSObject*
 ConsoleInstance::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return ConsoleInstanceBinding::Wrap(aCx, this, aGivenProto);
+  return ConsoleInstance_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 #define METHOD(name, string)                                               \
   void                                                                     \
   ConsoleInstance::name(JSContext* aCx, const Sequence<JS::Value>& aData)  \
   {                                                                        \
     mConsole->MethodInternal(aCx, Console::Method##name,                   \
                              NS_LITERAL_STRING(string), aData);            \
--- a/dom/credentialmanagement/Credential.cpp
+++ b/dom/credentialmanagement/Credential.cpp
@@ -26,17 +26,17 @@ Credential::Credential(nsPIDOMWindowInne
 {}
 
 Credential::~Credential()
 {}
 
 JSObject*
 Credential::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return CredentialBinding::Wrap(aCx, this, aGivenProto);
+  return Credential_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 Credential::GetId(nsAString& aId) const
 {
   aId.Assign(mId);
 }
 
--- a/dom/credentialmanagement/CredentialsContainer.cpp
+++ b/dom/credentialmanagement/CredentialsContainer.cpp
@@ -139,17 +139,17 @@ CredentialsContainer::EnsureWebAuthnMana
   if (!mManager) {
     mManager = new WebAuthnManager(mParent);
   }
 }
 
 JSObject*
 CredentialsContainer::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return CredentialsContainerBinding::Wrap(aCx, this, aGivenProto);
+  return CredentialsContainer_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 already_AddRefed<Promise>
 CredentialsContainer::Get(const CredentialRequestOptions& aOptions,
                           ErrorResult& aRv)
 {
   if (!IsSameOriginWithAncestors(mParent) || !IsInActiveTab(mParent)) {
     return CreateAndReject(mParent, aRv);
--- a/dom/crypto/CryptoKey.cpp
+++ b/dom/crypto/CryptoKey.cpp
@@ -158,17 +158,17 @@ CryptoKey::CryptoKey(nsIGlobalObject* aG
   , mPrivateKey(nullptr)
   , mPublicKey(nullptr)
 {
 }
 
 JSObject*
 CryptoKey::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return CryptoKeyBinding::Wrap(aCx, this, aGivenProto);
+  return CryptoKey_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 CryptoKey::GetType(nsString& aRetVal) const
 {
   uint32_t type = mAttributes & TYPE_MASK;
   switch (type) {
     case PUBLIC:  aRetVal.AssignLiteral(WEBCRYPTO_KEY_TYPE_PUBLIC); break;
--- a/dom/encoding/TextDecoder.h
+++ b/dom/encoding/TextDecoder.h
@@ -48,17 +48,17 @@ public:
 
   ~TextDecoder()
   {
     MOZ_COUNT_DTOR(TextDecoder);
   }
 
   bool WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto, JS::MutableHandle<JSObject*> aReflector)
   {
-    return TextDecoderBinding::Wrap(aCx, this, aGivenProto, aReflector);
+    return TextDecoder_Binding::Wrap(aCx, this, aGivenProto, aReflector);
   }
 
   /**
    * Validates provided label and throws an exception if invalid label.
    *
    * @param aLabel       The encoding label (case insensitive) provided.
    * @param aFatal       indicates whether to throw an 'EncodingError'
    *                     exception or not when decoding.
--- a/dom/encoding/TextEncoder.h
+++ b/dom/encoding/TextEncoder.h
@@ -36,17 +36,17 @@ public:
   }
 
   virtual
   ~TextEncoder()
   {}
 
   bool WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto, JS::MutableHandle<JSObject*> aReflector)
   {
-    return TextEncoderBinding::Wrap(aCx, this, aGivenProto, aReflector);
+    return TextEncoder_Binding::Wrap(aCx, this, aGivenProto, aReflector);
   }
 
 protected:
 
   void Init();
 
 public:
   /**
--- a/dom/events/AnimationEvent.h
+++ b/dom/events/AnimationEvent.h
@@ -26,17 +26,17 @@ public:
   static already_AddRefed<AnimationEvent>
   Constructor(const GlobalObject& aGlobal,
               const nsAString& aType,
               const AnimationEventInit& aParam,
               ErrorResult& aRv);
 
   virtual JSObject* WrapObjectInternal(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
   {
-    return AnimationEventBinding::Wrap(aCx, this, aGivenProto);
+    return AnimationEvent_Binding::Wrap(aCx, this, aGivenProto);
   }
 
   void GetAnimationName(nsAString& aAnimationName);
 
   float ElapsedTime();
 
   void GetPseudoElement(nsAString& aPseudoElement);
 
--- a/dom/events/BeforeUnloadEvent.h
+++ b/dom/events/BeforeUnloadEvent.h
@@ -25,17 +25,17 @@ public:
 
   virtual BeforeUnloadEvent* AsBeforeUnloadEvent() override
   {
     return this;
   }
 
   virtual JSObject* WrapObjectInternal(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
   {
-    return BeforeUnloadEventBinding::Wrap(aCx, this, aGivenProto);
+    return BeforeUnloadEvent_Binding::Wrap(aCx, this, aGivenProto);
   }
 
   NS_INLINE_DECL_REFCOUNTING_INHERITED(BeforeUnloadEvent, Event)
 
   void GetReturnValue(nsAString& aReturnValue);
   void SetReturnValue(const nsAString& aReturnValue);
 
 protected:
--- a/dom/events/ClipboardEvent.h
+++ b/dom/events/ClipboardEvent.h
@@ -21,17 +21,17 @@ public:
   ClipboardEvent(EventTarget* aOwner,
                  nsPresContext* aPresContext,
                  InternalClipboardEvent* aEvent);
 
   NS_INLINE_DECL_REFCOUNTING_INHERITED(ClipboardEvent, Event)
 
   virtual JSObject* WrapObjectInternal(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
   {
-    return ClipboardEventBinding::Wrap(aCx, this, aGivenProto);
+    return ClipboardEvent_Binding::Wrap(aCx, this, aGivenProto);
   }
 
   static already_AddRefed<ClipboardEvent>
   Constructor(const GlobalObject& aGlobal,
               const nsAString& aType,
               const ClipboardEventInit& aParam,
               ErrorResult& aRv);
 
--- a/dom/events/CommandEvent.h
+++ b/dom/events/CommandEvent.h
@@ -20,17 +20,17 @@ public:
   CommandEvent(EventTarget* aOwner,
                nsPresContext* aPresContext,
                WidgetCommandEvent* aEvent);
 
   NS_INLINE_DECL_REFCOUNTING_INHERITED(CommandEvent, Event)
 
   virtual JSObject* WrapObjectInternal(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
   {
-    return CommandEventBinding::Wrap(aCx, this, aGivenProto);
+    return CommandEvent_Binding::Wrap(aCx, this, aGivenProto);
   }
 
   void GetCommand(nsAString& aCommand);
 
 protected:
   ~CommandEvent() {}
 };
 
--- a/dom/events/CompositionEvent.h
+++ b/dom/events/CompositionEvent.h
@@ -30,17 +30,17 @@ public:
 
   static already_AddRefed<CompositionEvent> Constructor(const GlobalObject& aGlobal,
                                                         const nsAString& aType,
                                                         const CompositionEventInit& aParam,
                                                         ErrorResult& aRv);
 
   virtual JSObject* WrapObjectInternal(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
   {
-    return CompositionEventBinding::Wrap(aCx, this, aGivenProto);
+    return CompositionEvent_Binding::Wrap(aCx, this, aGivenProto);
   }
 
   void InitCompositionEvent(const nsAString& aType,
                             bool aCanBubble,
                             bool aCancelable,
                             nsGlobalWindowInner* aView,
                             const nsAString& aData,
                             const nsAString& aLocale);
--- a/dom/events/ConstructibleEventTarget.cpp
+++ b/dom/events/ConstructibleEventTarget.cpp
@@ -8,13 +8,13 @@
 #include "mozilla/dom/EventTargetBinding.h"
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 ConstructibleEventTarget::WrapObject(JSContext* cx, JS::Handle<JSObject*> aGivenProto)
 {
-  return EventTargetBinding::Wrap(cx, this, aGivenProto);
+  return EventTarget_Binding::Wrap(cx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/events/CustomEvent.cpp
+++ b/dom/events/CustomEvent.cpp
@@ -61,17 +61,17 @@ CustomEvent::Constructor(const GlobalObj
   e->SetTrusted(trusted);
   e->SetComposed(aParam.mComposed);
   return e.forget();
 }
 
 JSObject*
 CustomEvent::WrapObjectInternal(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return mozilla::dom::CustomEventBinding::Wrap(aCx, this, aGivenProto);
+  return mozilla::dom::CustomEvent_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 CustomEvent::InitCustomEvent(JSContext* aCx,
                              const nsAString& aType,
                              bool aCanBubble,
                              bool aCancelable,
                              JS::Handle<JS::Value> aDetail)
--- a/dom/events/DataTransfer.cpp
+++ b/dom/events/DataTransfer.cpp
@@ -204,17 +204,17 @@ DataTransfer::Constructor(const GlobalOb
                                                    eCopy, /* is external */ false, /* clipboard type */ -1);
   transfer->mEffectAllowed = nsIDragService::DRAGDROP_ACTION_NONE;
   return transfer.forget();
 }
 
 JSObject*
 DataTransfer::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return DataTransferBinding::Wrap(aCx, this, aGivenProto);
+  return DataTransfer_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 DataTransfer::SetDropEffect(const nsAString& aDropEffect)
 {
   // the drop effect can only be 'none', 'copy', 'move' or 'link'.
   for (uint32_t e = 0; e <= nsIDragService::DRAGDROP_ACTION_LINK; e++) {
     if (aDropEffect.EqualsASCII(sEffects[e])) {
@@ -581,17 +581,17 @@ DataTransfer::PrincipalMaySetData(const 
     }
   }
   return true;
 }
 
 void
 DataTransfer::TypesListMayHaveChanged()
 {
-  DataTransferBinding::ClearCachedTypesValue(this);
+  DataTransfer_Binding::ClearCachedTypesValue(this);
 }
 
 already_AddRefed<DataTransfer>
 DataTransfer::MozCloneForEvent(const nsAString& aEvent, ErrorResult& aRv)
 {
   RefPtr<nsAtom> atomEvt = NS_Atomize(aEvent);
   if (!atomEvt) {
     aRv.Throw(NS_ERROR_OUT_OF_MEMORY);
--- a/dom/events/DataTransferItem.cpp
+++ b/dom/events/DataTransferItem.cpp
@@ -49,17 +49,17 @@ NS_IMPL_CYCLE_COLLECTING_RELEASE(DataTra
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(DataTransferItem)
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 JSObject*
 DataTransferItem::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return DataTransferItemBinding::Wrap(aCx, this, aGivenProto);
+  return DataTransferItem_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 already_AddRefed<DataTransferItem>
 DataTransferItem::Clone(DataTransfer* aDataTransfer) const
 {
   MOZ_ASSERT(aDataTransfer);
 
   RefPtr<DataTransferItem> it = new DataTransferItem(aDataTransfer, mType);
--- a/dom/events/DataTransferItemList.cpp
+++ b/dom/events/DataTransferItemList.cpp
@@ -32,17 +32,17 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 JSObject*
 DataTransferItemList::WrapObject(JSContext* aCx,
                                  JS::Handle<JSObject*> aGivenProto)
 {
-  return DataTransferItemListBinding::Wrap(aCx, this, aGivenProto);
+  return DataTransferItemList_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 already_AddRefed<DataTransferItemList>
 DataTransferItemList::Clone(DataTransfer* aDataTransfer) const
 {
   RefPtr<DataTransferItemList> list =
     new DataTransferItemList(aDataTransfer, mIsExternal);
 
--- a/dom/events/DeviceMotionEvent.h
+++ b/dom/events/DeviceMotionEvent.h
@@ -27,17 +27,17 @@ public:
 
   DeviceMotionEvent* GetParentObject() const
   {
     return mOwner;
   }
 
   virtual JSObject* WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
   {
-    return DeviceRotationRateBinding::Wrap(aCx, this, aGivenProto);
+    return DeviceRotationRate_Binding::Wrap(aCx, this, aGivenProto);
   }
 
   Nullable<double> GetAlpha() const { return mAlpha; }
   Nullable<double> GetBeta() const { return mBeta; }
   Nullable<double> GetGamma() const { return mGamma; }
 
 private:
   ~DeviceRotationRate();
@@ -60,17 +60,17 @@ public:
 
   DeviceMotionEvent* GetParentObject() const
   {
     return mOwner;
   }
 
   virtual JSObject* WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
   {
-    return DeviceAccelerationBinding::Wrap(aCx, this, aGivenProto);
+    return DeviceAcceleration_Binding::Wrap(aCx, this, aGivenProto);
   }
 
   Nullable<double> GetX() const { return mX; }
   Nullable<double> GetY() const { return mY; }
   Nullable<double> GetZ() const { return mZ; }
 
 private:
   ~DeviceAcceleration();
@@ -92,17 +92,17 @@ public:
   }
 
   NS_DECL_ISUPPORTS_INHERITED
 
   NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(DeviceMotionEvent, Event)
 
   virtual JSObject* WrapObjectInternal(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
   {
-    return DeviceMotionEventBinding::Wrap(aCx, this, aGivenProto);
+    return DeviceMotionEvent_Binding::Wrap(aCx, this, aGivenProto);
   }
 
   DeviceAcceleration* GetAcceleration() const
   {
     return mAcceleration;
   }
 
   DeviceAcceleration* GetAccelerationIncludingGravity() const
--- a/dom/events/DragEvent.cpp
+++ b/dom/events/DragEvent.cpp
@@ -22,17 +22,17 @@ DragEvent::DragEvent(EventTarget* aOwner
 {
   if (aEvent) {
     mEventIsInternal = false;
   }
   else {
     mEventIsInternal = true;
     mEvent->mTime = PR_Now();
     mEvent->mRefPoint = LayoutDeviceIntPoint(0, 0);
-    mEvent->AsMouseEvent()->inputSource = MouseEventBinding::MOZ_SOURCE_UNKNOWN;
+    mEvent->AsMouseEvent()->inputSource = MouseEvent_Binding::MOZ_SOURCE_UNKNOWN;
   }
 }
 
 void
 DragEvent::InitDragEvent(const nsAString& aType,
                          bool aCanBubble,
                          bool aCancelable,
                          nsGlobalWindowInner* aView,
--- a/dom/events/DragEvent.h
+++ b/dom/events/DragEvent.h
@@ -22,17 +22,17 @@ public:
   DragEvent(EventTarget* aOwner,
             nsPresContext* aPresContext,
             WidgetDragEvent* aEvent);
 
   NS_INLINE_DECL_REFCOUNTING_INHERITED(DragEvent, MouseEvent)
 
   virtual JSObject* WrapObjectInternal(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
   {
-    return DragEventBinding::Wrap(aCx, this, aGivenProto);
+    return DragEvent_Binding::Wrap(aCx, this, aGivenProto);
   }
 
   DragEvent* AsDragEvent() override
   {
     return this;
   }
 
   DataTransfer* GetDataTransfer();
--- a/dom/events/Event.cpp
+++ b/dom/events/Event.cpp
@@ -214,17 +214,17 @@ JSObject*
 Event::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
   return WrapObjectInternal(aCx, aGivenProto);
 }
 
 JSObject*
 Event::WrapObjectInternal(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return EventBinding::Wrap(aCx, this, aGivenProto);
+  return Event_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 Event::GetType(nsAString& aType) const
 {
   if (!mIsMainThreadEvent) {
     aType = mEvent->mSpecifiedEventTypeString;
     return;
@@ -352,25 +352,25 @@ Event::Constructor(EventTarget* aEventTa
 uint16_t
 Event::EventPhase() const
 {
   // Note, remember to check that this works also
   // if or when Bug 235441 is fixed.
   if ((mEvent->mCurrentTarget &&
        mEvent->mCurrentTarget == mEvent->mTarget) ||
        mEvent->mFlags.InTargetPhase()) {
-    return EventBinding::AT_TARGET;
+    return Event_Binding::AT_TARGET;
   }
   if (mEvent->mFlags.mInCapturePhase) {
-    return EventBinding::CAPTURING_PHASE;
+    return Event_Binding::CAPTURING_PHASE;
   }
   if (mEvent->mFlags.mInBubblingPhase) {
-    return EventBinding::BUBBLING_PHASE;
+    return Event_Binding::BUBBLING_PHASE;
   }
-  return EventBinding::NONE;
+  return Event_Binding::NONE;
 }
 
 void
 Event::StopPropagation()
 {
   mEvent->StopPropagation();
 }
 
--- a/dom/events/EventStateManager.cpp
+++ b/dom/events/EventStateManager.cpp
@@ -1907,17 +1907,17 @@ EventStateManager::GenerateDragGesture(n
       // get the widget from the target frame
       WidgetDragEvent startEvent(aEvent->IsTrusted(), eDragStart, widget);
       FillInEventFromGestureDown(&startEvent);
 
       startEvent.mDataTransfer = dataTransfer;
       if (aEvent->AsMouseEvent()) {
         startEvent.inputSource = aEvent->AsMouseEvent()->inputSource;
       } else if (aEvent->AsTouchEvent()) {
-        startEvent.inputSource = MouseEventBinding::MOZ_SOURCE_TOUCH;
+        startEvent.inputSource = MouseEvent_Binding::MOZ_SOURCE_TOUCH;
       } else {
         MOZ_ASSERT(false);
       }
 
       // Dispatch to the DOM. By setting mCurrentTarget we are faking
       // out the ESM and telling it that the current target frame is
       // actually where the mouseDown occurred, otherwise it will use
       // the frame the mouse is currently over which may or may not be
@@ -2340,37 +2340,37 @@ EventStateManager::DispatchLegacyMouseSc
   //     default action handler (DoScrollText()) deals with it.
   //     If we implemented such strict computation, we would need additional
   //     accumulated delta values. It would made the code more complicated.
   //     And also it would computes different delta values from older version.
   //     It doesn't make sense to implement such code for legacy events and
   //     rare cases.
   int32_t scrollDeltaX, scrollDeltaY, pixelDeltaX, pixelDeltaY;
   switch (aEvent->mDeltaMode) {
-    case WheelEventBinding::DOM_DELTA_PAGE:
+    case WheelEvent_Binding::DOM_DELTA_PAGE:
       scrollDeltaX =
         !aEvent->mLineOrPageDeltaX ? 0 :
-          (aEvent->mLineOrPageDeltaX > 0  ? UIEventBinding::SCROLL_PAGE_DOWN :
-                                            UIEventBinding::SCROLL_PAGE_UP);
+          (aEvent->mLineOrPageDeltaX > 0  ? UIEvent_Binding::SCROLL_PAGE_DOWN :
+                                            UIEvent_Binding::SCROLL_PAGE_UP);
       scrollDeltaY =
         !aEvent->mLineOrPageDeltaY ? 0 :
-          (aEvent->mLineOrPageDeltaY > 0  ? UIEventBinding::SCROLL_PAGE_DOWN :
-                                            UIEventBinding::SCROLL_PAGE_UP);
+          (aEvent->mLineOrPageDeltaY > 0  ? UIEvent_Binding::SCROLL_PAGE_DOWN :
+                                            UIEvent_Binding::SCROLL_PAGE_UP);
       pixelDeltaX = RoundDown(aEvent->mDeltaX * scrollAmountInCSSPixels.width);
       pixelDeltaY = RoundDown(aEvent->mDeltaY * scrollAmountInCSSPixels.height);
       break;
 
-    case WheelEventBinding::DOM_DELTA_LINE:
+    case WheelEvent_Binding::DOM_DELTA_LINE:
       scrollDeltaX = aEvent->mLineOrPageDeltaX;
       scrollDeltaY = aEvent->mLineOrPageDeltaY;
       pixelDeltaX = RoundDown(aEvent->mDeltaX * scrollAmountInCSSPixels.width);
       pixelDeltaY = RoundDown(aEvent->mDeltaY * scrollAmountInCSSPixels.height);
       break;
 
-    case WheelEventBinding::DOM_DELTA_PIXEL:
+    case WheelEvent_Binding::DOM_DELTA_PIXEL:
       scrollDeltaX = aEvent->mLineOrPageDeltaX;
       scrollDeltaY = aEvent->mLineOrPageDeltaY;
       pixelDeltaX = RoundDown(aEvent->mDeltaX);
       pixelDeltaY = RoundDown(aEvent->mDeltaY);
       break;
 
     default:
       MOZ_CRASH("Invalid deltaMode value comes");
@@ -2741,17 +2741,17 @@ EventStateManager::ComputeScrollTargetAn
 nsSize
 EventStateManager::GetScrollAmount(nsPresContext* aPresContext,
                                    WidgetWheelEvent* aEvent,
                                    nsIScrollableFrame* aScrollableFrame)
 {
   MOZ_ASSERT(aPresContext);
   MOZ_ASSERT(aEvent);
 
-  bool isPage = (aEvent->mDeltaMode == WheelEventBinding::DOM_DELTA_PAGE);
+  bool isPage = (aEvent->mDeltaMode == WheelEvent_Binding::DOM_DELTA_PAGE);
   if (aScrollableFrame) {
     return isPage ? aScrollableFrame->GetPageScrollAmount() :
                     aScrollableFrame->GetLineScrollAmount();
   }
 
   // If there is no scrollable frame and page scrolling, use view port size.
   if (isPage) {
     return aPresContext->GetVisibleArea().Size();
@@ -2801,25 +2801,25 @@ EventStateManager::DoScrollText(nsIScrol
   }
   if (overflowStyle.mVertical == NS_STYLE_OVERFLOW_HIDDEN) {
     actualDevPixelScrollAmount.y = 0;
   }
 
   nsIScrollbarMediator::ScrollSnapMode snapMode = nsIScrollbarMediator::DISABLE_SNAP;
   nsAtom* origin = nullptr;
   switch (aEvent->mDeltaMode) {
-    case WheelEventBinding::DOM_DELTA_LINE:
+    case WheelEvent_Binding::DOM_DELTA_LINE:
       origin = nsGkAtoms::mouseWheel;
       snapMode = nsIScrollableFrame::ENABLE_SNAP;
       break;
-    case WheelEventBinding::DOM_DELTA_PAGE:
+    case WheelEvent_Binding::DOM_DELTA_PAGE:
       origin = nsGkAtoms::pages;
       snapMode = nsIScrollableFrame::ENABLE_SNAP;
       break;
-    case WheelEventBinding::DOM_DELTA_PIXEL:
+    case WheelEvent_Binding::DOM_DELTA_PIXEL:
       origin = nsGkAtoms::pixels;
       break;
     default:
       MOZ_CRASH("Invalid deltaMode value comes");
   }
 
   // We shouldn't scroll more one page at once except when over one page scroll
   // is allowed for the event.
@@ -2836,17 +2836,17 @@ EventStateManager::DoScrollText(nsIScrol
   if (!WheelPrefs::GetInstance()->IsOverOnePageScrollAllowedY(aEvent) &&
       DeprecatedAbs(actualDevPixelScrollAmount.y) > devPixelPageSize.height) {
     actualDevPixelScrollAmount.y =
       (actualDevPixelScrollAmount.y >= 0) ? devPixelPageSize.height :
                                             -devPixelPageSize.height;
   }
 
   bool isDeltaModePixel =
-    (aEvent->mDeltaMode == WheelEventBinding::DOM_DELTA_PIXEL);
+    (aEvent->mDeltaMode == WheelEvent_Binding::DOM_DELTA_PIXEL);
 
   nsIScrollableFrame::ScrollMode mode;
   switch (aEvent->mScrollType) {
     case WidgetWheelEvent::SCROLL_DEFAULT:
       if (isDeltaModePixel) {
         mode = nsIScrollableFrame::NORMAL;
       } else if (aEvent->mFlags.mHandledByAPZ) {
         mode = nsIScrollableFrame::SMOOTH_MSD;
@@ -3311,17 +3311,17 @@ EventStateManager::PostHandleEvent(nsPre
           // focus to be shifted from the caret position instead of the root.
           if (newFocus) {
             // use the mouse flag and the noscroll flag so that the content
             // doesn't unexpectedly scroll when clicking an element that is
             // only half visible
             uint32_t flags = nsIFocusManager::FLAG_BYMOUSE |
                              nsIFocusManager::FLAG_NOSCROLL;
             // If this was a touch-generated event, pass that information:
-            if (mouseEvent->inputSource == MouseEventBinding::MOZ_SOURCE_TOUCH) {
+            if (mouseEvent->inputSource == MouseEvent_Binding::MOZ_SOURCE_TOUCH) {
               flags |= nsIFocusManager::FLAG_BYTOUCH;
             }
             fm->SetFocus(newFocus->AsElement(), flags);
           }
           else if (!suppressBlur) {
             // clear the focus within the frame and then set it as the
             // focused frame
             EnsureDocument(mPresContext);
@@ -3387,17 +3387,17 @@ EventStateManager::PostHandleEvent(nsPre
   case ePointerUp: {
     WidgetPointerEvent* pointerEvent = aEvent->AsPointerEvent();
     MOZ_ASSERT(pointerEvent);
     // Implicitly releasing capture for given pointer. ePointerLostCapture
     // should be send after ePointerUp or ePointerCancel.
     PointerEventHandler::ImplicitlyReleasePointerCapture(pointerEvent);
 
     if (pointerEvent->mMessage == ePointerCancel ||
-        pointerEvent->inputSource == MouseEventBinding::MOZ_SOURCE_TOUCH) {
+        pointerEvent->inputSource == MouseEvent_Binding::MOZ_SOURCE_TOUCH) {
       // After pointercancel, pointer becomes invalid so we can remove relevant
       // helper from table. Regarding pointerup with non-hoverable device, the
       // pointer also becomes invalid. Hoverable (mouse/pen) pointers are valid
       // all the time (not only between down/up).
       GenerateMouseEnterExit(pointerEvent);
       mPointersEnterLeaveHelper.Remove(pointerEvent->pointerId);
     }
     break;
@@ -5821,17 +5821,17 @@ EventStateManager::DeltaAccumulator::Ini
     }
     mLastTime = TimeStamp::Now();
     return;
   }
 
   mX += aEvent->mDeltaX;
   mY += aEvent->mDeltaY;
 
-  if (mHandlingDeltaMode == WheelEventBinding::DOM_DELTA_PIXEL) {
+  if (mHandlingDeltaMode == WheelEvent_Binding::DOM_DELTA_PIXEL) {
     // Records pixel delta values and init mLineOrPageDeltaX and
     // mLineOrPageDeltaY for wheel events which are caused by pixel only
     // devices.  Ignore mouse wheel transaction for computing this.  The
     // lineOrPageDelta values will be used by dispatching legacy
     // eMouseScrollEventClass (DOMMouseScroll) but not be used for scrolling
     // of default action.  The transaction should be used only for the default
     // action.
     nsIFrame* frame =
@@ -5875,22 +5875,22 @@ EventStateManager::DeltaAccumulator::Com
                      const nsIntSize& aScrollAmountInDevPixels)
 {
   MOZ_ASSERT(aEvent);
 
   // If the wheel event is line scroll and the delta value is computed from
   // system settings, allow to override the system speed.
   bool allowScrollSpeedOverride =
     (!aEvent->mCustomizedByUserPrefs &&
-     aEvent->mDeltaMode == WheelEventBinding::DOM_DELTA_LINE);
+     aEvent->mDeltaMode == WheelEvent_Binding::DOM_DELTA_LINE);
   DeltaValues acceleratedDelta =
     WheelTransaction::AccelerateWheelDelta(aEvent, allowScrollSpeedOverride);
 
   nsIntPoint result(0, 0);
-  if (aEvent->mDeltaMode == WheelEventBinding::DOM_DELTA_PIXEL) {
+  if (aEvent->mDeltaMode == WheelEvent_Binding::DOM_DELTA_PIXEL) {
     mPendingScrollAmountX += acceleratedDelta.deltaX;
     mPendingScrollAmountY += acceleratedDelta.deltaY;
   } else {
     mPendingScrollAmountX +=
       aScrollAmountInDevPixels.width * acceleratedDelta.deltaX;
     mPendingScrollAmountY +=
       aScrollAmountInDevPixels.height * acceleratedDelta.deltaY;
   }
--- a/dom/events/FocusEvent.h
+++ b/dom/events/FocusEvent.h
@@ -15,17 +15,17 @@ namespace dom {
 
 class FocusEvent : public UIEvent
 {
 public:
   NS_INLINE_DECL_REFCOUNTING_INHERITED(FocusEvent, UIEvent)
 
   virtual JSObject* WrapObjectInternal(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
   {
-    return FocusEventBinding::Wrap(aCx, this, aGivenProto);
+    return FocusEvent_Binding::Wrap(aCx, this, aGivenProto);
   }
 
   FocusEvent(EventTarget* aOwner,
              nsPresContext* aPresContext,
              InternalFocusEvent* aEvent);
 
   already_AddRefed<EventTarget> GetRelatedTarget();
 
--- a/dom/events/IMEStateManager.cpp
+++ b/dom/events/IMEStateManager.cpp
@@ -839,17 +839,17 @@ IMEStateManager::OnClickInEditor(nsPresC
   if (aMouseEvent->mClickCount != 1) {
     MOZ_LOG(sISMLog, LogLevel::Debug,
       ("  OnClickInEditor(), "
        "the mouse event isn't a single click event"));
     return; // should notify only first click event.
   }
 
   InputContextAction::Cause cause =
-    aMouseEvent->inputSource == MouseEventBinding::MOZ_SOURCE_TOUCH ?
+    aMouseEvent->inputSource == MouseEvent_Binding::MOZ_SOURCE_TOUCH ?
       InputContextAction::CAUSE_TOUCH : InputContextAction::CAUSE_MOUSE;
 
   InputContextAction action(cause, InputContextAction::FOCUS_NOT_CHANGED);
   IMEState newState = GetNewIMEState(aPresContext, aContent);
   SetIMEState(newState, aPresContext, aContent, widget, action, sOrigin);
 }
 
 // static
--- a/dom/events/ImageCaptureError.cpp
+++ b/dom/events/ImageCaptureError.cpp
@@ -35,17 +35,17 @@ nsISupports*
 ImageCaptureError::GetParentObject() const
 {
   return mParent;
 }
 
 JSObject*
 ImageCaptureError::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return ImageCaptureErrorBinding::Wrap(aCx, this, aGivenProto);
+  return ImageCaptureError_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 uint16_t
 ImageCaptureError::Code() const
 {
   return mCode;
 }
 
--- a/dom/events/InputEvent.h
+++ b/dom/events/InputEvent.h
@@ -25,17 +25,17 @@ public:
 
   static already_AddRefed<InputEvent> Constructor(const GlobalObject& aGlobal,
                                                   const nsAString& aType,
                                                   const InputEventInit& aParam,
                                                   ErrorResult& aRv);
 
   virtual JSObject* WrapObjectInternal(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
   {
-    return InputEventBinding::Wrap(aCx, this, aGivenProto);
+    return InputEvent_Binding::Wrap(aCx, this, aGivenProto);
   }
 
   bool IsComposing();
 
 protected:
   ~InputEvent() {}
 };
 
--- a/dom/events/KeyboardEvent.cpp
+++ b/dom/events/KeyboardEvent.cpp
@@ -355,17 +355,17 @@ KeyboardEvent::ShouldResistFingerprintin
   //   4. The caller type is system.
   //   5. The pref privcy.resistFingerprinting' is false, we fast return here since
   //      we don't need to do any QI of following codes.
   if (mInitializedByCtor ||
       aCallerType == CallerType::System ||
       mEvent->mFlags.mInSystemGroup ||
       !nsContentUtils::ShouldResistFingerprinting() ||
       mEvent->AsKeyboardEvent()->mLocation ==
-        KeyboardEventBinding::DOM_KEY_LOCATION_NUMPAD) {
+        KeyboardEvent_Binding::DOM_KEY_LOCATION_NUMPAD) {
     return false;
   }
 
   nsCOMPtr<nsIDocument> doc = GetDocument();
 
   return doc && !nsContentUtils::IsChromeDoc(doc);
 }
 
--- a/dom/events/KeyboardEvent.h
+++ b/dom/events/KeyboardEvent.h
@@ -34,17 +34,17 @@ public:
                                            const nsAString& aType,
                                            const KeyboardEventInit& aParam,
                                            ErrorResult& aRv);
 
   virtual JSObject*
     WrapObjectInternal(JSContext* aCx,
                        JS::Handle<JSObject*> aGivenProto) override
   {
-    return KeyboardEventBinding::Wrap(aCx, this, aGivenProto);
+    return KeyboardEvent_Binding::Wrap(aCx, this, aGivenProto);
   }
 
   bool AltKey(CallerType aCallerType = CallerType::System);
   bool CtrlKey(CallerType aCallerType = CallerType::System);
   bool ShiftKey(CallerType aCallerType = CallerType::System);
   bool MetaKey();
 
   bool GetModifierState(const nsAString& aKey,
--- a/dom/events/MessageEvent.cpp
+++ b/dom/events/MessageEvent.cpp
@@ -56,17 +56,17 @@ MessageEvent::~MessageEvent()
 {
   mData.setUndefined();
   DropJSObjects(this);
 }
 
 JSObject*
 MessageEvent::WrapObjectInternal(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return mozilla::dom::MessageEventBinding::Wrap(aCx, thi