Bug 1470325 - s/FooBinding/Foo_Binding/g - r=qdot draft
authorJeff Gilbert <jgilbert@mozilla.com>
Mon, 25 Jun 2018 14:20:54 -0700
changeset 810951 8c675731a513758d4f439769e5dd4d955949a5e1
parent 810950 0d80ef0279ff8cf11b6dab71b27bbbcf30645af5
push id114165
push userbmo:jgilbert@mozilla.com
push dateTue, 26 Jun 2018 19:49:43 +0000
reviewersqdot
bugs1470325
milestone62.0a1
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
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/AutoplayPolicy.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/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/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/CSSLexer.cpp
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/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/ServoCounterStyleRule.cpp
layout/style/ServoFontFaceRule.cpp
layout/style/ServoStyleRule.h
layout/style/StyleSheet.cpp
layout/style/nsAnimationManager.cpp
layout/style/nsDOMCSSAttrDeclaration.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/tree/TreeBoxObject.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
@@ -250,23 +250,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
@@ -712,17 +712,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
@@ -730,17 +730,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();
 }
@@ -785,18 +785,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/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
@@ -322,13 +322,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
@@ -685,13 +685,13 @@ DOMMatrix::SetMatrixValue(const nsAStrin
   }
 
   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
@@ -34,10 +34,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,26 +20,26 @@ 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);
 }
 
 // -----------------------------------------------------------------------------
 
 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, ErrorResult& aRV)
 {
   RefPtr<DOMRect> obj =
     new DOMRect(aGlobal.GetAsSupports(), 0.0, 0.0, 0.0, 0.0);
   return obj.forget();
@@ -65,17 +65,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
@@ -2242,17 +2242,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!
@@ -2391,18 +2391,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,
@@ -2440,17 +2440,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
@@ -2656,17 +2656,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);
     }
@@ -2891,17 +2891,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,
@@ -2974,34 +2974,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
@@ -669,18 +669,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,
@@ -696,18 +696,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,
@@ -1685,17 +1685,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
@@ -2028,17 +2028,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
@@ -997,13 +997,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
@@ -3857,17 +3857,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
@@ -2688,19 +2688,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)
 {
@@ -8452,18 +8452,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);
@@ -10371,18 +10371,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;
   }
 
@@ -10803,17 +10803,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
@@ -2076,17 +2076,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
@@ -3394,11 +3394,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
@@ -5863,18 +5863,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);
@@ -7662,18 +7662,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
@@ -743,21 +743,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
@@ -778,26 +778,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;
         }
       }
       NS_NOTREACHED("neither attribute in the element");
-      return NodeBinding::DOCUMENT_POSITION_DISCONNECTED;
+      return Node_Binding::DOCUMENT_POSITION_DISCONNECTED;
     }
 
     if (elem) {
       node2 = elem;
       parents2.AppendElement(attr2);
     }
   }
 
@@ -818,49 +818,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
@@ -100,18 +100,18 @@ nsStyledElement::SetInlineStyleDeclarati
   else if (aNotify && IsInUncomposedDoc()) {
     modification = !!mAttrsAndChildren.GetAttr(nsGkAtoms::style);
   }
 
   nsAttrValue attrValue(do_AddRef(aDeclaration), aSerialized);
 
   // XXXbz do we ever end up with ADDITION here?  I doubt it.
   uint8_t modType = 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);
 
   nsIDocument* document = GetComposedDoc();
   mozAutoDocUpdate updateBatch(document, aNotify);
   return SetAttrAndNotify(kNameSpaceID_None, nsGkAtoms::style, nullptr,
                           oldValueSet ? &oldValue : nullptr, attrValue,
                           nullptr, modType,
                           hasListeners, aNotify, kDontCallAfterSetAttr,
                           document, updateBatch);
--- 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
@@ -190,29 +190,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
@@ -254,17 +254,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;
@@ -5269,17 +5269,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);
@@ -5304,30 +5304,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;
@@ -6125,17 +6125,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
@@ -19,18 +19,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)
@@ -537,17 +537,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
@@ -1905,17 +1905,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
@@ -2338,37 +2338,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");
@@ -2739,17 +2739,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();
@@ -2799,25 +2799,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.
@@ -2834,17 +2834,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;
@@ -3309,17 +3309,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);
@@ -3385,17 +3385,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;
@@ -5819,17 +5819,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 =
@@ -5873,22 +5873,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, this, aGivenProto);
+  return mozilla::dom::MessageEvent_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 MessageEvent::GetData(JSContext* aCx, JS::MutableHandle<JS::Value> aData,
                       ErrorResult& aRv)
 {
   aData.set(mData);
   if (!JS_WrapValue(aCx, aData)) {
@@ -171,17 +171,17 @@ MessageEvent::InitMessageEvent(JSContext
       mPortSource = &aSource.Value().GetAsMessagePort();
     } else {
       mServiceWorkerSource = &aSource.Value().GetAsServiceWorker();
     }
   }
 
   mPorts.Clear();
   mPorts.AppendElements(aPorts);
-  MessageEventBinding::ClearCachedPortsValue(this);
+  MessageEvent_Binding::ClearCachedPortsValue(this);
 }
 
 void
 MessageEvent::GetPorts(nsTArray<RefPtr<MessagePort>>& aPorts)
 {
   aPorts = mPorts;
 }
 
--- a/dom/events/MouseEvent.cpp
+++ b/dom/events/MouseEvent.cpp
@@ -28,17 +28,17 @@ MouseEvent::MouseEvent(EventTarget* aOwn
   WidgetMouseEvent* mouseEvent = mEvent->AsMouseEvent();
   if (aEvent) {
     mEventIsInternal = false;
   }
   else {
     mEventIsInternal = true;
     mEvent->mTime = PR_Now();
     mEvent->mRefPoint = LayoutDeviceIntPoint(0, 0);
-    mouseEvent->inputSource = MouseEventBinding::MOZ_SOURCE_UNKNOWN;
+    mouseEvent->inputSource = MouseEvent_Binding::MOZ_SOURCE_UNKNOWN;
   }
 
   if (mouseEvent) {
     MOZ_ASSERT(mouseEvent->mReason != WidgetMouseEvent::eSynthesized,
                "Don't dispatch DOM events from synthesized mouse events");
     mDetail = mouseEvent->mClickCount;
   }
 }
--- a/dom/events/MouseEvent.h
+++ b/dom/events/MouseEvent.h
@@ -21,17 +21,17 @@ public:
   MouseEvent(EventTarget* aOwner,
              nsPresContext* aPresContext,
              WidgetMouseEventBase* aEvent);
 
   NS_INLINE_DECL_REFCOUNTING_INHERITED(MouseEvent, UIEvent)
 
   virtual JSObject* WrapObjectInternal(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
   {
-    return MouseEventBinding::Wrap(aCx, this, aGivenProto);
+    return MouseEvent_Binding::Wrap(aCx, this, aGivenProto);
   }
 
   virtual MouseEvent* AsMouseEvent() override
   {
     return this;
   }
 
   // Web IDL binding methods
--- a/dom/events/MouseScrollEvent.cpp
+++ b/dom/events/MouseScrollEvent.cpp
@@ -21,17 +21,17 @@ MouseScrollEvent::MouseScrollEvent(Event
 {
   if (aEvent) {
     mEventIsInternal = false;
   } else {
     mEventIsInternal = true;
     mEvent->mTime = PR_Now();
     mEvent->mRefPoint = LayoutDeviceIntPoint(0, 0);
     static_cast<WidgetMouseEventBase*>(mEvent)->inputSource =
-      MouseEventBinding::MOZ_SOURCE_UNKNOWN;
+      MouseEvent_Binding::MOZ_SOURCE_UNKNOWN;
   }
 
   mDetail = mEvent->AsMouseScrollEvent()->mDelta;
 }
 
 void
 MouseScrollEvent::InitMouseScrollEvent(const nsAString& aType,
                                        bool aCanBubble,
@@ -52,25 +52,25 @@ MouseScrollEvent::InitMouseScrollEvent(c
 {
   NS_ENSURE_TRUE_VOID(!mEvent->mFlags.mIsBeingDispatched);
 
   MouseEvent::InitMouseEvent(aType, aCanBubble, aCancelable, aView, aDetail,
                              aScreenX, aScreenY, aClientX, aClientY,
                              aCtrlKey, aAltKey, aShiftKey, aMetaKey, aButton,
                              aRelatedTarget);
   mEvent->AsMouseScrollEvent()->mIsHorizontal =
-    (aAxis == MouseScrollEventBinding::HORIZONTAL_AXIS);
+    (aAxis == MouseScrollEvent_Binding::HORIZONTAL_AXIS);
 }
 
 int32_t
 MouseScrollEvent::Axis()
 {
   return mEvent->AsMouseScrollEvent()->mIsHorizontal ?
-    MouseScrollEventBinding::HORIZONTAL_AXIS :
-    MouseScrollEventBinding::VERTICAL_AXIS;
+    MouseScrollEvent_Binding::HORIZONTAL_AXIS :
+    MouseScrollEvent_Binding::VERTICAL_AXIS;
 }
 
 } // namespace dom
 } // namespace mozilla
 
 using namespace mozilla;
 using namespace dom;
 
--- a/dom/events/MouseScrollEvent.h
+++ b/dom/events/MouseScrollEvent.h
@@ -19,17 +19,17 @@ public:
   MouseScrollEvent(EventTarget* aOwner,
                    nsPresContext* aPresContext,
                    WidgetMouseScrollEvent* aEvent);
 
   NS_INLINE_DECL_REFCOUNTING_INHERITED(MouseScrollEvent, MouseEvent)
 
   virtual JSObject* WrapObjectInternal(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
   {
-    return MouseScrollEventBinding::Wrap(aCx, this, aGivenProto);
+    return MouseScrollEvent_Binding::Wrap(aCx, this, aGivenProto);
   }
 
   int32_t Axis();
 
   void InitMouseScrollEvent(const nsAString& aType, bool aCanBubble,
                             bool aCancelable, nsGlobalWindowInner* aView,
                             int32_t aDetail, int32_t aScreenX, int32_t aScreenY,
                             int32_t aClientX, int32_t aClientY,
--- a/dom/events/MutationEvent.h
+++ b/dom/events/MutationEvent.h
@@ -21,17 +21,17 @@ public:
   MutationEvent(EventTarget* aOwner,
                 nsPresContext* aPresContext,
                 InternalMutationEvent* aEvent);
 
   NS_INLINE_DECL_REFCOUNTING_INHERITED(MutationEvent, Event)
 
   virtual JSObject* WrapObjectInternal(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
   {
-    return MutationEventBinding::Wrap(aCx, this, aGivenProto);
+    return MutationEvent_Binding::Wrap(aCx, this, aGivenProto);
   }
 
   void GetPrevValue(nsAString& aPrevValue) const;
   void GetNewValue(nsAString& aNewValue) const;
   void GetAttrName(nsAString& aAttrName) const;
 
   nsINode* GetRelatedNode();
 
--- a/dom/events/NotifyPaintEvent.h
+++ b/dom/events/NotifyPaintEvent.h
@@ -34,17 +34,17 @@ public:
 
   NS_INLINE_DECL_REFCOUNTING_INHERITED(NotifyPaintEvent, Event)
 
   void Serialize(IPC::Message* aMsg, bool aSerializeInterfaceType) override;
   bool Deserialize(const IPC::Message* aMsg, PickleIterator* aIter) override;
 
   virtual JSObject* WrapObjectInternal(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
   {
-    return NotifyPaintEventBinding::Wrap(aCx, this, aGivenProto);
+    return NotifyPaintEvent_Binding::Wrap(aCx, this, aGivenProto);
   }
 
   already_AddRefed<DOMRectList> ClientRects(SystemCallerGuarantee aGuarantee);
 
   already_AddRefed<DOMRect> BoundingClientRect(SystemCallerGuarantee aGuarantee);
 
   already_AddRefed<PaintRequestList> PaintRequests(SystemCallerGuarantee);
 
--- a/dom/events/PaintRequest.cpp
+++ b/dom/events/PaintRequest.cpp
@@ -25,17 +25,17 @@ NS_INTERFACE_TABLE_HEAD(PaintRequest)
 NS_INTERFACE_MAP_END
 
 NS_IMPL_CYCLE_COLLECTING_ADDREF(PaintRequest)
 NS_IMPL_CYCLE_COLLECTING_RELEASE(PaintRequest)
 
 /* virtual */ JSObject*
 PaintRequest::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return PaintRequestBinding::Wrap(aCx, this, aGivenProto);
+  return PaintRequest_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 already_AddRefed<DOMRect>
 PaintRequest::ClientRect()
 {
   RefPtr<DOMRect> clientRect = new DOMRect(this);
   clientRect->SetLayoutRect(mRequest);
   return clientRect.forget();
@@ -53,13 +53,13 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
 NS_INTERFACE_MAP_END
 
 NS_IMPL_CYCLE_COLLECTING_ADDREF(PaintRequestList)
 NS_IMPL_CYCLE_COLLECTING_RELEASE(PaintRequestList)
 
 JSObject*
 PaintRequestList::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return PaintRequestListBinding::Wrap(aCx, this, aGivenProto);
+  return PaintRequestList_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/events/PointerEvent.cpp
+++ b/dom/events/PointerEvent.cpp
@@ -27,57 +27,57 @@ PointerEvent::PointerEvent(EventTarget* 
 
   WidgetMouseEvent* mouseEvent = mEvent->AsMouseEvent();
   if (aEvent) {
     mEventIsInternal = false;
   } else {
     mEventIsInternal = true;
     mEvent->mTime = PR_Now();
     mEvent->mRefPoint = LayoutDeviceIntPoint(0, 0);
-    mouseEvent->inputSource = MouseEventBinding::MOZ_SOURCE_UNKNOWN;
+    mouseEvent->inputSource = MouseEvent_Binding::MOZ_SOURCE_UNKNOWN;
   }
   // 5.2 Pointer Event types, for all pointer events, |detail| attribute SHOULD
   // be 0.
   mDetail = 0;
 }
 
 JSObject*
 PointerEvent::WrapObjectInternal(JSContext* aCx,
                                  JS::Handle<JSObject*> aGivenProto)
 {
-  return PointerEventBinding::Wrap(aCx, this, aGivenProto);
+  return PointerEvent_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 static uint16_t
 ConvertStringToPointerType(const nsAString& aPointerTypeArg)
 {
   if (aPointerTypeArg.EqualsLiteral("mouse")) {
-    return MouseEventBinding::MOZ_SOURCE_MOUSE;
+    return MouseEvent_Binding::MOZ_SOURCE_MOUSE;
   }
   if (aPointerTypeArg.EqualsLiteral("pen")) {
-    return MouseEventBinding::MOZ_SOURCE_PEN;
+    return MouseEvent_Binding::MOZ_SOURCE_PEN;
   }
   if (aPointerTypeArg.EqualsLiteral("touch")) {
-    return MouseEventBinding::MOZ_SOURCE_TOUCH;
+    return MouseEvent_Binding::MOZ_SOURCE_TOUCH;
   }
 
-  return MouseEventBinding::MOZ_SOURCE_UNKNOWN;
+  return MouseEvent_Binding::MOZ_SOURCE_UNKNOWN;
 }
 
 void
 ConvertPointerTypeToString(uint16_t aPointerTypeSrc, nsAString& aPointerTypeDest)
 {
   switch (aPointerTypeSrc) {
-    case MouseEventBinding::MOZ_SOURCE_MOUSE:
+    case MouseEvent_Binding::MOZ_SOURCE_MOUSE:
       aPointerTypeDest.AssignLiteral("mouse");
       break;
-    case MouseEventBinding::MOZ_SOURCE_PEN:
+    case MouseEvent_Binding::MOZ_SOURCE_PEN:
       aPointerTypeDest.AssignLiteral("pen");
       break;
-    case MouseEventBinding::MOZ_SOURCE_TOUCH:
+    case MouseEvent_Binding::MOZ_SOURCE_TOUCH:
       aPointerTypeDest.AssignLiteral("touch");
       break;
     default:
       aPointerTypeDest.Truncate();
       break;
   }
 }
 
--- a/dom/events/PointerEventHandler.cpp
+++ b/dom/events/PointerEventHandler.cpp
@@ -111,17 +111,17 @@ PointerEventHandler::UpdateActivePointer
     break;
   case ePointerCancel:
     // pointercancel means a pointer is unlikely to continue to produce pointer
     // events. In that case, we should turn off active state or remove the
     // pointer from active pointers.
   case ePointerUp:
     // In this case we remove information about pointer or turn off active state
     if (WidgetPointerEvent* pointerEvent = aEvent->AsPointerEvent()) {
-      if(pointerEvent->inputSource != MouseEventBinding::MOZ_SOURCE_TOUCH) {
+      if(pointerEvent->inputSource != MouseEvent_Binding::MOZ_SOURCE_TOUCH) {
         sActivePointersIds->Put(pointerEvent->pointerId,
                                 new PointerInfo(false,
                                                 pointerEvent->inputSource,
                                                 pointerEvent->mIsPrimary));
       } else {
         sActivePointersIds->Remove(pointerEvent->pointerId);
       }
     }
@@ -136,17 +136,17 @@ PointerEventHandler::UpdateActivePointer
   }
 }
 
 /* static */ void
 PointerEventHandler::SetPointerCaptureById(uint32_t aPointerId,
                                            nsIContent* aContent)
 {
   MOZ_ASSERT(aContent);
-  if (MouseEventBinding::MOZ_SOURCE_MOUSE == GetPointerType(aPointerId)) {
+  if (MouseEvent_Binding::MOZ_SOURCE_MOUSE == GetPointerType(aPointerId)) {
     nsIPresShell::SetCapturingContent(aContent, CAPTURE_PREVENTDRAG);
   }
 
   PointerCaptureInfo* pointerCaptureInfo = GetPointerCaptureInfo(aPointerId);
   if (pointerCaptureInfo) {
     pointerCaptureInfo->mPendingContent = aContent;
   } else {
     sPointerCaptureList->Put(aPointerId, new PointerCaptureInfo(aContent));
@@ -161,17 +161,17 @@ PointerEventHandler::GetPointerCaptureIn
   return pointerCaptureInfo;
 }
 
 /* static */ void
 PointerEventHandler::ReleasePointerCaptureById(uint32_t aPointerId)
 {
   PointerCaptureInfo* pointerCaptureInfo = GetPointerCaptureInfo(aPointerId);
   if (pointerCaptureInfo && pointerCaptureInfo->mPendingContent) {
-    if (MouseEventBinding::MOZ_SOURCE_MOUSE == GetPointerType(aPointerId)) {
+    if (MouseEvent_Binding::MOZ_SOURCE_MOUSE == GetPointerType(aPointerId)) {
       nsIPresShell::SetCapturingContent(nullptr, CAPTURE_PREVENTDRAG);
     }
     pointerCaptureInfo->mPendingContent = nullptr;
   }
 }
 
 /* static */ void
 PointerEventHandler::ReleaseAllPointerCapture()
@@ -290,17 +290,17 @@ PointerEventHandler::ImplicitlyCapturePo
   MOZ_ASSERT(aEvent->mMessage == ePointerDown);
   if (!aFrame || !IsPointerEventEnabled() ||
       !IsPointerEventImplicitCaptureForTouchEnabled()) {
     return;
   }
   WidgetPointerEvent* pointerEvent = aEvent->AsPointerEvent();
   NS_WARNING_ASSERTION(pointerEvent,
                        "Call ImplicitlyCapturePointer with non-pointer event");
-  if (pointerEvent->inputSource != MouseEventBinding::MOZ_SOURCE_TOUCH) {
+  if (pointerEvent->inputSource != MouseEvent_Binding::MOZ_SOURCE_TOUCH) {
     // We only implicitly capture the pointer for touch device.
     return;
   }
   nsCOMPtr<nsIContent> target;
   aFrame->GetContentForEvent(aEvent, getter_AddRefs(target));
   while (target && !target->IsElement()) {
     target = target->GetParent();
   }
@@ -469,17 +469,17 @@ PointerEventHandler::InitPointerEventFro
   aPointerEvent->mHeight = aTouch->RadiusY(CallerType::System);
   aPointerEvent->tiltX = aTouch->tiltX;
   aPointerEvent->tiltY = aTouch->tiltY;
   aPointerEvent->mTime = aTouchEvent->mTime;
   aPointerEvent->mTimeStamp = aTouchEvent->mTimeStamp;
   aPointerEvent->mFlags = aTouchEvent->mFlags;
   aPointerEvent->button = button;
   aPointerEvent->buttons = buttons;
-  aPointerEvent->inputSource = MouseEventBinding::MOZ_SOURCE_TOUCH;
+  aPointerEvent->inputSource = MouseEvent_Binding::MOZ_SOURCE_TOUCH;
 }
 
 /* static */ void
 PointerEventHandler::DispatchPointerFromMouseOrTouch(
                        PresShell* aShell,
                        nsIFrame* aFrame,
                        nsIContent* aContent,
                        WidgetGUIEvent* aEvent,
@@ -602,17 +602,17 @@ PointerEventHandler::DispatchPointerFrom
 
 /* static */ uint16_t
 PointerEventHandler::GetPointerType(uint32_t aPointerId)
 {
   PointerInfo* pointerInfo = nullptr;
   if (sActivePointersIds->Get(aPointerId, &pointerInfo) && pointerInfo) {
     return pointerInfo->mPointerType;
   }
-  return MouseEventBinding::MOZ_SOURCE_UNKNOWN;
+  return MouseEvent_Binding::MOZ_SOURCE_UNKNOWN;
 }
 
 /* static */ bool
 PointerEventHandler::GetPointerPrimaryState(uint32_t aPointerId)
 {
   PointerInfo* pointerInfo = nullptr;
   if (sActivePointersIds->Get(aPointerId, &pointerInfo) && pointerInfo) {
     return pointerInfo->mPrimaryState;
--- a/dom/events/PointerEventHandler.h
+++ b/dom/events/PointerEventHandler.h
@@ -167,17 +167,17 @@ public:
     return aEvent->mMessage == eTouchStart || aEvent->mMessage == eTouchMove ||
            aEvent->mMessage == eTouchEnd || aEvent->mMessage == eTouchCancel ||
            aEvent->mMessage == eTouchPointerCancel;
   }
 
 private:
   // GetPointerType returns pointer type like mouse, pen or touch for pointer
   // event with pointerId. The return value must be one of
-  // MouseEventBinding::MOZ_SOURCE_*
+  // MouseEvent_Binding::MOZ_SOURCE_*
   static uint16_t GetPointerType(uint32_t aPointerId);
 
   // GetPointerPrimaryState returns state of attribute isPrimary for pointer
   // event with pointerId
   static bool GetPointerPrimaryState(uint32_t aPointerId);
 
   static void DispatchGotOrLostPointerCaptureEvent(
                 bool aIsGotCapture,
--- a/dom/events/ScrollAreaEvent.h
+++ b/dom/events/ScrollAreaEvent.h
@@ -26,17 +26,17 @@ public:
   NS_DECL_ISUPPORTS_INHERITED
   NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(ScrollAreaEvent, UIEvent)
 
   void Serialize(IPC::Message* aMsg, bool aSerializeInterfaceType) override;
   bool Deserialize(const IPC::Message* aMsg, PickleIterator* aIter) override;
 
   virtual JSObject* WrapObjectInternal(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
   {
-    return ScrollAreaEventBinding::Wrap(aCx, this, aGivenProto);
+    return ScrollAreaEvent_Binding::Wrap(aCx, this, aGivenProto);
   }
 
   float X() const
   {
     return mClientArea->Left();
   }
 
   float Y() const
--- a/dom/events/SimpleGestureEvent.cpp
+++ b/dom/events/SimpleGestureEvent.cpp
@@ -25,17 +25,17 @@ SimpleGestureEvent::SimpleGestureEvent(E
 
   if (aEvent) {
     mEventIsInternal = false;
   } else {
     mEventIsInternal = true;
     mEvent->mTime = PR_Now();
     mEvent->mRefPoint = LayoutDeviceIntPoint(0, 0);
     static_cast<WidgetMouseEventBase*>(mEvent)->inputSource =
-      MouseEventBinding::MOZ_SOURCE_UNKNOWN;
+      MouseEvent_Binding::MOZ_SOURCE_UNKNOWN;
   }
 }
 
 uint32_t
 SimpleGestureEvent::AllowedDirections() const
 {
   return mEvent->AsSimpleGestureEvent()->mAllowedDirections;
 }
--- a/dom/events/SimpleGestureEvent.h
+++ b/dom/events/SimpleGestureEvent.h
@@ -22,17 +22,17 @@ public:
   SimpleGestureEvent(EventTarget* aOwner,
                      nsPresContext* aPresContext,
                      WidgetSimpleGestureEvent* aEvent);
 
   NS_INLINE_DECL_REFCOUNTING_INHERITED(SimpleGestureEvent, MouseEvent)
 
   virtual JSObject* WrapObjectInternal(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
   {
-    return SimpleGestureEventBinding::Wrap(aCx, this, aGivenProto);
+    return SimpleGestureEvent_Binding::Wrap(aCx, this, aGivenProto);
   }
 
   uint32_t AllowedDirections() const;
   void SetAllowedDirections(uint32_t aAllowedDirections);
   uint32_t Direction() const;
   double Delta() const;
   uint32_t ClickCount() const;
 
--- a/dom/events/SpeechRecognitionError.h
+++ b/dom/events/SpeechRecognitionError.h
@@ -24,17 +24,17 @@ public:
   static already_AddRefed<SpeechRecognitionError>
   Constructor(const GlobalObject& aGlobal,
               const nsAString& aType,
               const SpeechRecognitionErrorInit& aParam,
               ErrorResult& aRv);
 
   virtual JSObject* WrapObjectInternal(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
   {
-    return mozilla::dom::SpeechRecognitionErrorBinding::Wrap(aCx, this, aGivenProto);
+    return mozilla::dom::SpeechRecognitionError_Binding::Wrap(aCx, this, aGivenProto);
   }
 
   void
   GetMessage(nsAString& aString)
   {
     aString = mMessage;
   }
 
--- a/dom/events/StorageEvent.cpp
+++ b/dom/events/StorageEvent.cpp
@@ -42,17 +42,17 @@ StorageEvent*
 StorageEvent::AsStorageEvent()
 {
   return this;
 }
 
 JSObject*
 StorageEvent::WrapObjectInternal(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return StorageEventBinding::Wrap(aCx, this, aGivenProto);
+  return StorageEvent_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 already_AddRefed<StorageEvent>
 StorageEvent::Constructor(EventTarget* aOwner,
                           const nsAString& aType,
                           const StorageEventInit& aEventInitDict)
 {
   RefPtr<StorageEvent> e = new StorageEvent(aOwner);
--- a/dom/events/TextClause.cpp
+++ b/dom/events/TextClause.cpp
@@ -36,15 +36,15 @@ TextClause::TextClause(nsPIDOMWindowInne
   } else {
     mIsCaret = true;
   }
 }
 
 JSObject*
 TextClause::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return TextClauseBinding::Wrap(aCx, this, aGivenProto);
+  return TextClause_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 TextClause::~TextClause() {}
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/events/Touch.cpp
+++ b/dom/events/Touch.cpp
@@ -234,17 +234,17 @@ Touch::Equals(Touch* aTouch)
          mRotationAngle == aTouch->mRotationAngle &&
          mRadius.x == aTouch->mRadius.x &&
          mRadius.y == aTouch->mRadius.y;
 }
 
 JSObject*
 Touch::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return TouchBinding::Wrap(aCx, this, aGivenProto);
+  return Touch_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 // Parent ourselves to the global of the target. This achieves the desirable
 // effects of parenting to the target, but avoids making the touch inaccessible
 // when the target happens to be NAC and therefore reflected into the XBL scope.
 nsIGlobalObject*
 Touch::GetParentObject()
 {
--- a/dom/events/TouchEvent.cpp
+++ b/dom/events/TouchEvent.cpp
@@ -30,17 +30,17 @@ NS_INTERFACE_MAP_END
 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(TouchList, mParent, mPoints)
 
 NS_IMPL_CYCLE_COLLECTING_ADDREF(TouchList)
 NS_IMPL_CYCLE_COLLECTING_RELEASE(TouchList)
 
 JSObject*
 TouchList::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return TouchListBinding::Wrap(aCx, this, aGivenProto);
+  return TouchList_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 // static
 bool
 TouchList::PrefEnabled(JSContext* aCx, JSObject* aGlobal)
 {
   return TouchEvent::PrefEnabled(aCx, aGlobal);
 }
--- a/dom/events/TouchEvent.h
+++ b/dom/events/TouchEvent.h
@@ -89,17 +89,17 @@ public:
              nsPresContext* aPresContext,
              WidgetTouchEvent* aEvent);
 
   NS_DECL_ISUPPORTS_INHERITED
   NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(TouchEvent, UIEvent)
 
   virtual JSObject* WrapObjectInternal(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
   {
-    return TouchEventBinding::Wrap(aCx, this, aGivenProto);
+    return TouchEvent_Binding::Wrap(aCx, this, aGivenProto);
   }
 
   already_AddRefed<TouchList>
   CopyTouches(const Sequence<OwningNonNull<Touch>>& aTouches);
 
   TouchList* Touches();
   // TargetTouches() populates mTargetTouches from widget event's touch list.
   TouchList* TargetTouches();
--- a/dom/events/TransitionEvent.h
+++ b/dom/events/TransitionEvent.h
@@ -26,17 +26,17 @@ public:
   static already_AddRefed<TransitionEvent>
   Constructor(const GlobalObject& aGlobal,
               const nsAString& aType,
               const TransitionEventInit& aParam,
               ErrorResult& aRv);
 
   virtual JSObject* WrapObjectInternal(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
   {
-    return TransitionEventBinding::Wrap(aCx, this, aGivenProto);
+    return TransitionEvent_Binding::Wrap(aCx, this, aGivenProto);
   }
 
   void GetPropertyName(nsAString& aPropertyName) const;
   void GetPseudoElement(nsAString& aPreudoElement) const;
 
   float ElapsedTime();
 
 protected:
--- a/dom/events/UIEvent.h
+++ b/dom/events/UIEvent.h
@@ -37,17 +37,17 @@ public:
                                                const nsAString& aType,
                                                const UIEventInit& aParam,
                                                ErrorResult& aRv);
 
   virtual JSObject*
     WrapObjectInternal(JSContext* aCx,
                        JS::Handle<JSObject*> aGivenProto) override
   {
-    return UIEventBinding::Wrap(aCx, this, aGivenProto);
+    return UIEvent_Binding::Wrap(aCx, this, aGivenProto);
   }
 
   UIEvent* AsUIEvent() override
   {
     return this;
   }
 
   void InitUIEvent(const nsAString& typeArg,
--- a/dom/events/VirtualKeyCodeList.h
+++ b/dom/events/VirtualKeyCodeList.h
@@ -6,30 +6,30 @@
 // IWYU pragma: private, include "mozilla/KeyTextEvents.h"
 
 /**
  * This header file defines all DOM keys which are defined in KeyboardEvent.
  * You must define NS_DEFINE_VK macro before including this.
  *
  * It must have two arguments, (aDOMKeyName, aDOMKeyCode)
  * aDOMKeyName is a key name in DOM.
- * aDOMKeyCode is one of mozilla::dom::KeyboardEventBinding::DOM_VK_*.
+ * aDOMKeyCode is one of mozilla::dom::KeyboardEvent_Binding::DOM_VK_*.
  *
  * Optionally, you can define NS_DISALLOW_SAME_KEYCODE.
  *
  * If NS_DISALLOW_SAME_KEYCODE is defined, same keyCode won't listed up.
  * This is useful when you create switch-case statement.
  */
 
 #define DEFINE_VK_INTERNAL(aKeyName) \
-  NS_DEFINE_VK(VK##aKeyName, mozilla::dom::KeyboardEventBinding::DOM_VK##aKeyName)
+  NS_DEFINE_VK(VK##aKeyName, mozilla::dom::KeyboardEvent_Binding::DOM_VK##aKeyName)
 
 // Some keycode may have different name in KeyboardEvent from its key name.
 #define DEFINE_VK_INTERNAL2(aKeyName, aKeyCodeName) \
-  NS_DEFINE_VK(VK##aKeyName, mozilla::dom::KeyboardEventBinding::DOM_VK##aKeyCodeName)
+  NS_DEFINE_VK(VK##aKeyName, mozilla::dom::KeyboardEvent_Binding::DOM_VK##aKeyCodeName)
 
 DEFINE_VK_INTERNAL(_CANCEL)
 DEFINE_VK_INTERNAL(_HELP)
 DEFINE_VK_INTERNAL2(_BACK, _BACK_SPACE)
 DEFINE_VK_INTERNAL(_TAB)
 DEFINE_VK_INTERNAL(_CLEAR)
 DEFINE_VK_INTERNAL(_RETURN)
 DEFINE_VK_INTERNAL(_SHIFT)
--- a/dom/events/WheelEvent.cpp
+++ b/dom/events/WheelEvent.cpp
@@ -21,24 +21,24 @@ WheelEvent::WheelEvent(EventTarget* aOwn
   , mAppUnitsPerDevPixel(0)
 {
   if (aWheelEvent) {
     mEventIsInternal = false;
     // If the delta mode is pixel, the WidgetWheelEvent's delta values are in
     // device pixels.  However, JS contents need the delta values in CSS pixels.
     // We should store the value of mAppUnitsPerDevPixel here because
     // it might be changed by changing zoom or something.
-    if (aWheelEvent->mDeltaMode == WheelEventBinding::DOM_DELTA_PIXEL) {
+    if (aWheelEvent->mDeltaMode == WheelEvent_Binding::DOM_DELTA_PIXEL) {
       mAppUnitsPerDevPixel = aPresContext->AppUnitsPerDevPixel();
     }
   } else {
     mEventIsInternal = true;
     mEvent->mTime = PR_Now();
     mEvent->mRefPoint = LayoutDeviceIntPoint(0, 0);
-    mEvent->AsWheelEvent()->inputSource = MouseEventBinding::MOZ_SOURCE_UNKNOWN;
+    mEvent->AsWheelEvent()->inputSource = MouseEvent_Binding::MOZ_SOURCE_UNKNOWN;
   }
 }
 
 void
 WheelEvent::InitWheelEvent(const nsAString& aType,
                            bool aCanBubble,
                            bool aCancelable,
                            nsGlobalWindowInner* aView,
--- a/dom/events/WheelEvent.h
+++ b/dom/events/WheelEvent.h
@@ -26,17 +26,17 @@ public:
   static
   already_AddRefed<WheelEvent> Constructor(const GlobalObject& aGlobal,
                                            const nsAString& aType,
                                            const WheelEventInit& aParam,
                                            ErrorResult& aRv);
 
   virtual JSObject* WrapObjectInternal(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
   {
-    return WheelEventBinding::Wrap(aCx, this, aGivenProto);
+    return WheelEvent_Binding::Wrap(aCx, this, aGivenProto);
   }
 
   // NOTE: DeltaX(), DeltaY() and DeltaZ() return CSS pixels when deltaMode is
   //       DOM_DELTA_PIXEL. (The internal event's delta values are device pixels
   //       if it's dispatched by widget)
   double DeltaX();
   double DeltaY();
   double DeltaZ();
--- a/dom/events/WheelHandlingHelper.cpp
+++ b/dom/events/WheelHandlingHelper.cpp
@@ -381,17 +381,17 @@ WheelTransaction::GetScreenPoint(WidgetG
 
 /* static */ DeltaValues
 WheelTransaction::AccelerateWheelDelta(WidgetWheelEvent* aEvent,
                                        bool aAllowScrollSpeedOverride)
 {
   DeltaValues result(aEvent);
 
   // Don't accelerate the delta values if the event isn't line scrolling.
-  if (aEvent->mDeltaMode != dom::WheelEventBinding::DOM_DELTA_LINE) {
+  if (aEvent->mDeltaMode != dom::WheelEvent_Binding::DOM_DELTA_LINE) {
     return result;
   }
 
   if (aAllowScrollSpeedOverride) {
     result = OverrideSystemScrollSpeed(aEvent);
   }
 
   // Accelerate by the sScrollSeriesCounter
@@ -412,17 +412,17 @@ WheelTransaction::ComputeAcceleratedWhee
 {
   return mozilla::ComputeAcceleratedWheelDelta(aDelta, sScrollSeriesCounter, aFactor);
 }
 
 /* static */ DeltaValues
 WheelTransaction::OverrideSystemScrollSpeed(WidgetWheelEvent* aEvent)
 {
   MOZ_ASSERT(sTargetFrame, "We don't have mouse scrolling transaction");
-  MOZ_ASSERT(aEvent->mDeltaMode == WheelEventBinding::DOM_DELTA_LINE);
+  MOZ_ASSERT(aEvent->mDeltaMode == WheelEvent_Binding::DOM_DELTA_LINE);
 
   // If the event doesn't scroll to both X and Y, we don't need to do anything
   // here.
   if (!aEvent->mDeltaX && !aEvent->mDeltaY) {
     return DeltaValues(aEvent);
   }
 
   return DeltaValues(aEvent->OverriddenDeltaX(),
--- a/dom/events/XULCommandEvent.h
+++ b/dom/events/XULCommandEvent.h
@@ -23,17 +23,17 @@ public:
                   nsPresContext* aPresContext,
                   WidgetInputEvent* aEvent);
 
   NS_DECL_ISUPPORTS_INHERITED
   NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(XULCommandEvent, UIEvent)
 
   virtual JSObject* WrapObjectInternal(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
   {
-    return XULCommandEventBinding::Wrap(aCx, this, aGivenProto);
+    return XULCommandEvent_Binding::Wrap(aCx, this, aGivenProto);
   }
 
   virtual XULCommandEvent* AsXULCommandEvent() override
   {
     return this;
   }
 
   bool AltKey();
--- a/dom/fetch/FetchObserver.cpp
+++ b/dom/fetch/FetchObserver.cpp
@@ -34,17 +34,17 @@ FetchObserver::FetchObserver(nsIGlobalOb
   if (aSignal) {
     Follow(aSignal);
   }
 }
 
 JSObject*
 FetchObserver::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return FetchObserverBinding::Wrap(aCx, this, aGivenProto);
+  return FetchObserver_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 FetchState
 FetchObserver::State() const
 {
   return mState;
 }
 
--- a/dom/fetch/Headers.cpp
+++ b/dom/fetch/Headers.cpp
@@ -81,17 +81,17 @@ Headers::Create(nsIGlobalObject* aGlobal
   }
 
   return headers.forget();
 }
 
 JSObject*
 Headers::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return mozilla::dom::HeadersBinding::Wrap(aCx, this, aGivenProto);
+  return mozilla::dom::Headers_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 Headers::~Headers()
 {
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/fetch/Request.h
+++ b/dom/fetch/Request.h
@@ -33,17 +33,17 @@ class Request final : public nsISupports
 
 public:
   Request(nsIGlobalObject* aOwner, InternalRequest* aRequest,
           AbortSignal* aSignal);
 
   JSObject*
   WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
   {
-    return RequestBinding::Wrap(aCx, this, aGivenProto);
+    return Request_Binding::Wrap(aCx, this, aGivenProto);
   }
 
   void
   GetUrl(nsAString& aUrl) const
   {
     nsAutoCString url;
     mRequest->GetURL(url);
     CopyUTF8toUTF16(url, aUrl);
--- a/dom/fetch/Response.h
+++ b/dom/fetch/Response.h
@@ -36,17 +36,17 @@ public:
   Response(nsIGlobalObject* aGlobal, InternalResponse* aInternalResponse,
            AbortSignal* aSignal);
 
   Response(const Response& aOther) = delete;
 
   JSObject*
   WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
   {
-    return ResponseBinding::Wrap(aCx, this, aGivenProto);
+    return Response_Binding::Wrap(aCx, this, aGivenProto);
   }
 
   ResponseType
   Type() const
   {
     return mInternalResponse->Type();
   }
   void
--- a/dom/file/Blob.cpp
+++ b/dom/file/Blob.cpp
@@ -225,17 +225,17 @@ NS_IMETHODIMP
 Blob::SetMutable(bool aMutable)
 {
   return mImpl->SetMutable(aMutable);
 }
 
 JSObject*
 Blob::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return BlobBinding::Wrap(aCx, this, aGivenProto);
+  return Blob_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 /* static */ already_AddRefed<Blob>
 Blob::Constructor(const GlobalObject& aGlobal,
                   const Optional<Sequence<BlobPart>>& aData,
                   const BlobPropertyBag& aBag,
                   ErrorResult& aRv)
 {
--- a/dom/file/File.cpp
+++ b/dom/file/File.cpp
@@ -74,17 +74,17 @@ File::CreateFromFile(nsISupports* aParen
   RefPtr<File> file = new File(aParent,
     new FileBlobImpl(aFile, aName, aContentType));
   return file.forget();
 }
 
 JSObject*
 File::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return FileBinding::Wrap(aCx, this, aGivenProto);
+  return File_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 File::GetName(nsAString& aFileName) const
 {
   mImpl->GetName(aFileName);
 }
 
--- a/dom/file/FileList.cpp
+++ b/dom/file/FileList.cpp
@@ -20,17 +20,17 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
 NS_INTERFACE_MAP_END
 
 NS_IMPL_CYCLE_COLLECTING_ADDREF(FileList)
 NS_IMPL_CYCLE_COLLECTING_RELEASE(FileList)
 
 JSObject*
 FileList::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return mozilla::dom::FileListBinding::Wrap(aCx, this, aGivenProto);
+  return mozilla::dom::FileList_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 File*
 FileList::Item(uint32_t aIndex) const
 {
   if (aIndex >= mFiles.Length()) {
     return nullptr;
   }
--- a/dom/file/FileReader.cpp
+++ b/dom/file/FileReader.cpp
@@ -229,17 +229,17 @@ FileReader::OnLoadEndArrayBuffer()
     AssignJSFlatString(errorName, name);
   }
 
   nsAutoCString errorMsg(er->message().c_str());
   nsAutoCString errorNameC = NS_LossyConvertUTF16toASCII(errorName);
   // XXX Code selected arbitrarily
   mError =
     new DOMException(NS_ERROR_DOM_INVALID_STATE_ERR, errorMsg,
-                     errorNameC, DOMExceptionBinding::INVALID_STATE_ERR);
+                     errorNameC, DOMException_Binding::INVALID_STATE_ERR);
 
   FreeDataAndDispatchError();
 }
 
 nsresult
 FileReader::DoAsyncWait()
 {
   nsresult rv = IncreaseBusyCounter();
@@ -522,17 +522,17 @@ FileReader::GetAsDataURL(Blob *aBlob,
   }
 
   return NS_OK;
 }
 
 /* virtual */ JSObject*
 FileReader::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return FileReaderBinding::Wrap(aCx, this, aGivenProto);
+  return FileReader_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 FileReader::StartProgressEventTimer()
 {
   if (!mProgressNotifier) {
     mProgressNotifier = NS_NewTimer();
   }
--- a/dom/file/FileReaderSync.cpp
+++ b/dom/file/FileReaderSync.cpp
@@ -42,17 +42,17 @@ FileReaderSync::Constructor(const Global
   return frs.forget();
 }
 
 bool
 FileReaderSync::WrapObject(JSContext* aCx,
                            JS::Handle<JSObject*> aGivenProto,
                            JS::MutableHandle<JSObject*> aReflector)
 {
-  return FileReaderSyncBinding::Wrap(aCx, this, aGivenProto, aReflector);
+  return FileReaderSync_Binding::Wrap(aCx, this, aGivenProto, aReflector);
 }
 
 void
 FileReaderSync::ReadAsArrayBuffer(JSContext* aCx,
                                   JS::Handle<JSObject*> aScopeObj,
                                   Blob& aBlob,
                                   JS::MutableHandle<JSObject*> aRetval,
                                   ErrorResult& aRv)
--- a/dom/filesystem/Directory.cpp
+++ b/dom/filesystem/Directory.cpp
@@ -98,17 +98,17 @@ nsISupports*
 Directory::GetParentObject() const
 {
   return mParent;
 }
 
 JSObject*
 Directory::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return DirectoryBinding::Wrap(aCx, this, aGivenProto);
+  return Directory_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 Directory::GetName(nsAString& aRetval, ErrorResult& aRv)
 {
   aRetval.Truncate();
 
   RefPtr<FileSystemBase> fs = GetFileSystem(aRv);
--- a/dom/filesystem/compat/FileSystem.cpp
+++ b/dom/filesystem/compat/FileSystem.cpp
@@ -56,17 +56,17 @@ FileSystem::FileSystem(nsIGlobalObject* 
 }
 
 FileSystem::~FileSystem()
 {}
 
 JSObject*
 FileSystem::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return FileSystemBinding::Wrap(aCx, this, aGivenProto);
+  return FileSystem_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 FileSystem::CreateRoot(const Sequence<RefPtr<FileSystemEntry>>& aEntries)
 {
   MOZ_ASSERT(!mRoot);
   mRoot = new FileSystemRootDirectoryEntry(mParent, aEntries, this);
 }
--- a/dom/filesystem/compat/FileSystemDirectoryEntry.cpp
+++ b/dom/filesystem/compat/FileSystemDirectoryEntry.cpp
@@ -35,17 +35,17 @@ FileSystemDirectoryEntry::FileSystemDire
 
 FileSystemDirectoryEntry::~FileSystemDirectoryEntry()
 {}
 
 JSObject*
 FileSystemDirectoryEntry::WrapObject(JSContext* aCx,
                                      JS::Handle<JSObject*> aGivenProto)
 {
-  return FileSystemDirectoryEntryBinding::Wrap(aCx, this, aGivenProto);
+  return FileSystemDirectoryEntry_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 FileSystemDirectoryEntry::GetName(nsAString& aName, ErrorResult& aRv) const
 {
   MOZ_ASSERT(mDirectory);
   mDirectory->GetName(aName, aRv);
 }
--- a/dom/filesystem/compat/FileSystemDirectoryReader.cpp
+++ b/dom/filesystem/compat/FileSystemDirectoryReader.cpp
@@ -145,17 +145,17 @@ FileSystemDirectoryReader::FileSystemDir
 
 FileSystemDirectoryReader::~FileSystemDirectoryReader()
 {}
 
 JSObject*
 FileSystemDirectoryReader::WrapObject(JSContext* aCx,
                                       JS::Handle<JSObject*> aGivenProto)
 {
-  return FileSystemDirectoryReaderBinding::Wrap(aCx, this, aGivenProto);
+  return FileSystemDirectoryReader_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 FileSystemDirectoryReader::ReadEntries(FileSystemEntriesCallback& aSuccessCallback,
                                        const Optional<OwningNonNull<ErrorCallback>>& aErrorCallback,
                                        ErrorResult& aRv)
 {
   MOZ_ASSERT(mDirectory);
--- a/dom/filesystem/compat/FileSystemEntry.cpp
+++ b/dom/filesystem/compat/FileSystemEntry.cpp
@@ -61,17 +61,17 @@ FileSystemEntry::FileSystemEntry(nsIGlob
 }
 
 FileSystemEntry::~FileSystemEntry()
 {}
 
 JSObject*
 FileSystemEntry::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return FileSystemEntryBinding::Wrap(aCx, this, aGivenProto);
+  return FileSystemEntry_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 FileSystemEntry::GetParent(const Optional<OwningNonNull<FileSystemEntryCallback>>& aSuccessCallback,
                            const Optional<OwningNonNull<ErrorCallback>>& aErrorCallback)
 {
   if (!aSuccessCallback.WasPassed() && !aErrorCallback.WasPassed()) {
     return;
--- a/dom/filesystem/compat/FileSystemFileEntry.cpp
+++ b/dom/filesystem/compat/FileSystemFileEntry.cpp
@@ -68,17 +68,17 @@ FileSystemFileEntry::FileSystemFileEntry
 
 FileSystemFileEntry::~FileSystemFileEntry()
 {}
 
 JSObject*
 FileSystemFileEntry::WrapObject(JSContext* aCx,
                                 JS::Handle<JSObject*> aGivenProto)
 {
-  return FileSystemFileEntryBinding::Wrap(aCx, this, aGivenProto);
+  return FileSystemFileEntry_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 FileSystemFileEntry::GetName(nsAString& aName, ErrorResult& aRv) const
 {
   mFile->GetName(aName);
 }
 
--- a/dom/flex/Flex.cpp
+++ b/dom/flex/Flex.cpp
@@ -41,17 +41,17 @@ Flex::Flex(Element* aParent,
     mLines.ElementAt(index) = line;
     index++;
   }
 }
 
 JSObject*
 Flex::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return FlexBinding::Wrap(aCx, this, aGivenProto);
+  return Flex_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 Flex::GetLines(nsTArray<RefPtr<FlexLine>>& aResult)
 {
   aResult.AppendElements(mLines);
 }
 
--- a/dom/flex/FlexItem.cpp
+++ b/dom/flex/FlexItem.cpp
@@ -44,17 +44,17 @@ FlexItem::FlexItem(FlexLine* aParent,
     aItem->mCrossMinSize);
   mCrossMaxSize = nsPresContext::AppUnitsToDoubleCSSPixels(
     aItem->mCrossMaxSize);
 }
 
 JSObject*
 FlexItem::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return FlexItemBinding::Wrap(aCx, this, aGivenProto);
+  return FlexItem_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsINode*
 FlexItem::GetNode() const
 {
   return mNode;
 }
 
--- a/dom/flex/FlexLine.cpp
+++ b/dom/flex/FlexLine.cpp
@@ -60,17 +60,17 @@ FlexLine::FlexLine(Flex* aParent,
     mItems.ElementAt(index) = item;
     index++;
   }
 }
 
 JSObject*
 FlexLine::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return FlexLineBinding::Wrap(aCx, this, aGivenProto);
+  return FlexLine_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 FlexLineGrowthState
 FlexLine::GrowthState() const
 {
   return mGrowthState;
 }
 
--- a/dom/gamepad/Gamepad.cpp
+++ b/dom/gamepad/Gamepad.cpp
@@ -90,17 +90,17 @@ Gamepad::SetButton(uint32_t aButton, boo
 }
 
 void
 Gamepad::SetAxis(uint32_t aAxis, double aValue)
 {
   MOZ_ASSERT(aAxis < mAxes.Length());
   if (mAxes[aAxis] != aValue) {
     mAxes[aAxis] = aValue;
-    GamepadBinding::ClearCachedAxesValue(this);
+    Gamepad_Binding::ClearCachedAxesValue(this);
   }
   UpdateTimestamp();
 }
 
 void
 Gamepad::SetPose(const GamepadPoseState& aPose)
 {
   mPose->SetPoseState(aPose);
@@ -131,17 +131,17 @@ Gamepad::SyncState(Gamepad* aOther)
   }
 
   bool changed = false;
   for (uint32_t i = 0; i < mAxes.Length(); ++i) {
     changed = changed || (mAxes[i] != aOther->mAxes[i]);
     mAxes[i] = aOther->mAxes[i];
   }
   if (changed) {
-    GamepadBinding::ClearCachedAxesValue(this);
+    Gamepad_Binding::ClearCachedAxesValue(this);
   }
 
   if (Preferences::GetBool(kGamepadExtEnabledPref)) {
     MOZ_ASSERT(aOther->GetPose());
     mPose->SetPoseState(aOther->GetPose()->GetPoseState());
     mHand = aOther->Hand();
     for (uint32_t i = 0; i < mHapticActuators.Length(); ++i) {
       mHapticActuators[i]->Set(aOther->mHapticActuators[i]);
@@ -160,13 +160,13 @@ Gamepad::Clone(nsISupports* aParent)
                 mHapticActuators.Length());
   out->SyncState(this);
   return out.forget();
 }
 
 /* virtual */ JSObject*
 Gamepad::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return GamepadBinding::Wrap(aCx, this, aGivenProto);
+  return Gamepad_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/gamepad/GamepadButton.cpp
+++ b/dom/gamepad/GamepadButton.cpp
@@ -18,13 +18,13 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(GamepadButton, mParent)
 
 /* virtual */ JSObject*
 GamepadButton::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return GamepadButtonBinding::Wrap(aCx, this, aGivenProto);
+  return GamepadButton_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/gamepad/GamepadHapticActuator.cpp
+++ b/dom/gamepad/GamepadHapticActuator.cpp
@@ -27,17 +27,17 @@ GamepadHapticActuator::GamepadHapticActu
     mType(GamepadHapticActuatorType::Vibration), mIndex(aIndex)
 {
 
 }
 
 /* virtual */ JSObject*
 GamepadHapticActuator::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return GamepadHapticActuatorBinding::Wrap(aCx, this, aGivenProto);
+  return GamepadHapticActuator_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsISupports*
 GamepadHapticActuator::GetParentObject() const
 {
   return mParent;
 }
 
--- a/dom/gamepad/GamepadPose.cpp
+++ b/dom/gamepad/GamepadPose.cpp
@@ -30,17 +30,17 @@ GamepadPose::GamepadPose(nsISupports* aP
 GamepadPose::~GamepadPose()
 {
   mozilla::DropJSObjects(this);
 }
 
 /* virtual */ JSObject*
 GamepadPose::WrapObject(JSContext* aJSContext, JS::Handle<JSObject*> aGivenProto)
 {
-  return GamepadPoseBinding::Wrap(aJSContext, this, aGivenProto);
+  return GamepadPose_Binding::Wrap(aJSContext, this, aGivenProto);
 }
 
 bool
 GamepadPose::HasOrientation() const
 {
   return bool(mPoseState.flags & GamepadCapabilityFlags::Cap_Position);
 }
 
--- a/dom/gamepad/GamepadServiceTest.cpp
+++ b/dom/gamepad/GamepadServiceTest.cpp
@@ -272,13 +272,13 @@ GamepadServiceTest::NewPoseMove(uint32_t
 
   uint32_t id = ++mEventNumber;
   mChild->SendGamepadTestEvent(id, e);
 }
 
 JSObject*
 GamepadServiceTest::WrapObject(JSContext* aCx, JS::HandleObject aGivenProto)
 {
-  return GamepadServiceTestBinding::Wrap(aCx, this, aGivenProto);
+  return GamepadServiceTest_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // dom
 } // mozilla
--- a/dom/geolocation/PositionError.cpp
+++ b/dom/geolocation/PositionError.cpp
@@ -24,40 +24,40 @@ PositionError::PositionError(Geolocation
 
 PositionError::~PositionError() = default;
 
 void
 PositionError::GetMessage(nsAString& aMessage) const
 {
   switch (mCode)
   {
-    case PositionErrorBinding::PERMISSION_DENIED:
+    case PositionError_Binding::PERMISSION_DENIED:
       aMessage = NS_LITERAL_STRING("User denied geolocation prompt");
       break;
-    case PositionErrorBinding::POSITION_UNAVAILABLE:
+    case PositionError_Binding::POSITION_UNAVAILABLE:
       aMessage = NS_LITERAL_STRING("Unknown error acquiring position");
       break;
-    case PositionErrorBinding::TIMEOUT:
+    case PositionError_Binding::TIMEOUT:
       aMessage = NS_LITERAL_STRING("Position acquisition timed out");
       break;
     default:
       break;
   }
 }
 
 nsWrapperCache*
 PositionError::GetParentObject() const
 {
   return mParent;
 }
 
 JSObject*
 PositionError::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return PositionErrorBinding::Wrap(aCx, this, aGivenProto);
+  return PositionError_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 PositionError::NotifyCallback(const GeoPositionErrorCallback& aCallback)
 {
   nsAutoMicroTask mt;
   if (aCallback.HasWebIDLCallback()) {
     PositionErrorCallback* callback = aCallback.GetWebIDLCallback();
--- a/dom/geolocation/nsGeoPosition.cpp
+++ b/dom/geolocation/nsGeoPosition.cpp
@@ -169,17 +169,17 @@ nsISupports*
 Position::GetParentObject() const
 {
   return mParent;
 }
 
 JSObject*
 Position::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return PositionBinding::Wrap(aCx, this, aGivenProto);
+  return Position_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 Coordinates*
 Position::Coords()
 {
   if (!mCoordinates) {
     nsCOMPtr<nsIDOMGeoPositionCoords> coords;
     mGeoPosition->GetCoords(getter_AddRefs(coords));
@@ -222,17 +222,17 @@ Position*
 Coordinates::GetParentObject() const
 {
   return mPosition;
 }
 
 JSObject*
 Coordinates::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return CoordinatesBinding::Wrap(aCx, this, aGivenProto);
+  return Coordinates_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 #define GENERATE_COORDS_WRAPPED_GETTER(name) \
 double                                       \
 Coordinates::name() const                    \
 {                                            \
   double rv;                                 \
   mCoords->Get##name(&rv);                   \
--- a/dom/geolocation/nsGeolocation.cpp
+++ b/dom/geolocation/nsGeolocation.cpp
@@ -265,17 +265,17 @@ NS_INTERFACE_MAP_END
 NS_IMPL_CYCLE_COLLECTING_ADDREF(nsGeolocationRequest)
 NS_IMPL_CYCLE_COLLECTING_RELEASE(nsGeolocationRequest)
 NS_IMPL_CYCLE_COLLECTION(nsGeolocationRequest, mCallback, mErrorCallback, mLocator)
 
 void
 nsGeolocationRequest::Notify()
 {
   SetTimeoutTimer();
-  NotifyErrorAndShutdown(PositionErrorBinding::TIMEOUT);
+  NotifyErrorAndShutdown(PositionError_Binding::TIMEOUT);
 }
 
 void
 nsGeolocationRequest::NotifyErrorAndShutdown(uint16_t aErrorCode)
 {
   MOZ_ASSERT(!mShutdown, "timeout after shutdown");
   if (!mIsWatchPositionRequest) {
     Shutdown();
@@ -341,17 +341,17 @@ nsGeolocationRequest::Cancel()
     // and is not called when the page is simply unloaded, or similar.
     Telemetry::Accumulate(Telemetry::GEOLOCATION_REQUEST_GRANTED, mProtocolType);
   }
 
   if (mLocator->ClearPendingRequest(this)) {
     return NS_OK;
   }
 
-  NotifyError(PositionErrorBinding::PERMISSION_DENIED);
+  NotifyError(PositionError_Binding::PERMISSION_DENIED);
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsGeolocationRequest::Allow(JS::HandleValue aChoices)
 {
   MOZ_ASSERT(aChoices.isUndefined());
 
@@ -409,28 +409,28 @@ nsGeolocationRequest::Allow(JS::HandleVa
     if (!mIsWatchPositionRequest) {
       return NS_OK;
     }
 
   } else {
     // if it is not a watch request and timeout is 0,
     // invoke the errorCallback (if present) with TIMEOUT code
     if (mOptions && mOptions->mTimeout == 0 && !mIsWatchPositionRequest) {
-      NotifyError(PositionErrorBinding::TIMEOUT);
+      NotifyError(PositionError_Binding::TIMEOUT);
       return NS_OK;
     }
 
   }
 
   // Kick off the geo device, if it isn't already running
   nsresult rv = gs->StartDevice(GetPrincipal());
 
   if (NS_FAILED(rv)) {
     // Location provider error
-    NotifyError(PositionErrorBinding::POSITION_UNAVAILABLE);
+    NotifyError(PositionError_Binding::POSITION_UNAVAILABLE);
     return NS_OK;
   }
 
   if (mIsWatchPositionRequest || !canUseCache) {
     // let the locator know we're pending
     // we will now be owned by the locator
     mLocator->NotifyAllowedRequest(this);
   }
@@ -499,17 +499,17 @@ nsGeolocationRequest::SendLocation(nsIDO
     nsCOMPtr<nsIDOMGeoPositionCoords> coords;
     aPosition->GetCoords(getter_AddRefs(coords));
     if (coords) {
       wrapped = new mozilla::dom::Position(ToSupports(mLocator), aPosition);
     }
   }
 
   if (!wrapped) {
-    NotifyError(PositionErrorBinding::POSITION_UNAVAILABLE);
+    NotifyError(PositionError_Binding::POSITION_UNAVAILABLE);
     return;
   }
 
   if (!mIsWatchPositionRequest) {
     // Cancel timer and position updates in case the position
     // callback spins the event loop
     Shutdown();
   }
@@ -784,17 +784,17 @@ nsGeolocationService::StartDevice(nsIPri
     return NS_ERROR_FAILURE;
   }
 
   nsresult rv;
 
   if (NS_FAILED(rv = mProvider->Startup()) ||
       NS_FAILED(rv = mProvider->Watch(this))) {
 
-    NotifyError(PositionErrorBinding::POSITION_UNAVAILABLE);
+    NotifyError(PositionError_Binding::POSITION_UNAVAILABLE);
     return rv;
   }
 
   obs->NotifyObservers(mProvider,
                        "geolocation-device-events",
                        u"starting");
 
   return NS_OK;
@@ -1413,10 +1413,10 @@ Geolocation::RegisterRequestWithPrompt(n
   nsCOMPtr<nsIRunnable> ev  = new RequestPromptEvent(request, mOwner);
   target->Dispatch(ev.forget());
   return true;
 }
 
 JSObject*
 Geolocation::WrapObject(JSContext *aCtx, JS::Handle<JSObject*> aGivenProto)
 {
-  return GeolocationBinding::Wrap(aCtx, this, aGivenProto);
+  return Geolocation_Binding::Wrap(aCtx, this, aGivenProto);
 }
--- a/dom/grid/Grid.cpp
+++ b/dom/grid/Grid.cpp
@@ -92,17 +92,17 @@ Grid::Grid(nsISupports* aParent,
 
 Grid::~Grid()
 {
 }
 
 JSObject*
 Grid::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return GridBinding::Wrap(aCx, this, aGivenProto);
+  return Grid_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 GridDimension*
 Grid::Rows() const
 {
   return mRows;
 }
 
--- a/dom/grid/GridArea.cpp
+++ b/dom/grid/GridArea.cpp
@@ -38,17 +38,17 @@ GridArea::GridArea(Grid* aParent,
 
 GridArea::~GridArea()
 {
 }
 
 JSObject*
 GridArea::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return GridAreaBinding::Wrap(aCx, this, aGivenProto);
+  return GridArea_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 GridArea::GetName(nsString& aName) const
 {
   aName = mName;
 }
 
--- a/dom/grid/GridDimension.cpp
+++ b/dom/grid/GridDimension.cpp
@@ -33,17 +33,17 @@ GridDimension::GridDimension(Grid* aPare
 
 GridDimension::~GridDimension()
 {
 }
 
 JSObject*
 GridDimension::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return GridDimensionBinding::Wrap(aCx, this, aGivenProto);
+  return GridDimension_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 GridLines*
 GridDimension::Lines() const
 {
   return mLines;
 }
 
--- a/dom/grid/GridLine.cpp
+++ b/dom/grid/GridLine.cpp
@@ -38,17 +38,17 @@ void
 GridLine::GetNames(nsTArray<nsString>& aNames) const
 {
   aNames = mNames;
 }
 
 JSObject*
 GridLine::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return GridLineBinding::Wrap(aCx, this, aGivenProto);
+  return GridLine_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 double
 GridLine::Start() const
 {
   return mStart;
 }
 
--- a/dom/grid/GridLines.cpp
+++ b/dom/grid/GridLines.cpp
@@ -31,17 +31,17 @@ GridLines::GridLines(GridDimension* aPar
 
 GridLines::~GridLines()
 {
 }
 
 JSObject*
 GridLines::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return GridLinesBinding::Wrap(aCx, this, aGivenProto);
+  return GridLines_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 uint32_t
 GridLines::Length() const
 {
   return mLines.Length();
 }
 
--- a/dom/grid/GridTrack.cpp
+++ b/dom/grid/GridTrack.cpp
@@ -32,17 +32,17 @@ GridTrack::GridTrack(GridTracks* aParent
 
 GridTrack::~GridTrack()
 {
 }
 
 JSObject*
 GridTrack::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return GridTrackBinding::Wrap(aCx, this, aGivenProto);
+  return GridTrack_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 double
 GridTrack::Start() const
 {
   return mStart;
 }
 
--- a/dom/grid/GridTracks.cpp
+++ b/dom/grid/GridTracks.cpp
@@ -31,17 +31,17 @@ GridTracks::GridTracks(GridDimension *aP
 
 GridTracks::~GridTracks()
 {
 }
 
 JSObject*
 GridTracks::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return GridTracksBinding::Wrap(aCx, this, aGivenProto);
+  return GridTracks_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 uint32_t
 GridTracks::Length() const
 {
   return mTracks.Length();
 }
 
--- a/dom/html/HTMLAllCollection.cpp
+++ b/dom/html/HTMLAllCollection.cpp
@@ -196,13 +196,13 @@ HTMLAllCollection::GetSupportedNames(nsT
     atoms[i]->ToString(names[i]);
   }
 }
 
 
 JSObject*
 HTMLAllCollection::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLAllCollectionBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLAllCollection_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/html/HTMLAnchorElement.cpp
+++ b/dom/html/HTMLAnchorElement.cpp
@@ -67,17 +67,17 @@ NS_IMPL_CYCLE_COLLECTION_INHERITED(HTMLA
                                    nsGenericHTMLElement,
                                    mRelList)
 
 NS_IMPL_ELEMENT_CLONE(HTMLAnchorElement)
 
 JSObject*
 HTMLAnchorElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLAnchorElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLAnchorElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 int32_t
 HTMLAnchorElement::TabIndexDefault()
 {
   return 0;
 }
 
--- a/dom/html/HTMLAreaElement.cpp
+++ b/dom/html/HTMLAreaElement.cpp
@@ -163,13 +163,13 @@ HTMLAreaElement::AddSizeOfExcludingThis(
 {
   nsGenericHTMLElement::AddSizeOfExcludingThis(aSizes, aNodeSize);
   *aNodeSize += Link::SizeOfExcludingThis(aSizes.mState);
 }
 
 JSObject*
 HTMLAreaElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLAreaElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLAreaElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/html/HTMLAudioElement.cpp
+++ b/dom/html/HTMLAudioElement.cpp
@@ -88,13 +88,13 @@ nsresult HTMLAudioElement::SetAcceptHead
     return aChannel->SetRequestHeader(NS_LITERAL_CSTRING("Accept"),
                                       value,
                                       false);
 }
 
 JSObject*
 HTMLAudioElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLAudioElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLAudioElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/html/HTMLBRElement.cpp
+++ b/dom/html/HTMLBRElement.cpp
@@ -83,13 +83,13 @@ nsMapRuleToAttributesFunc
 HTMLBRElement::GetAttributeMappingFunction() const
 {
   return &MapAttributesIntoRule;
 }
 
 JSObject*
 HTMLBRElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLBRElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLBRElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/html/HTMLBodyElement.cpp
+++ b/dom/html/HTMLBodyElement.cpp
@@ -30,17 +30,17 @@ namespace dom {
 
 HTMLBodyElement::~HTMLBodyElement()
 {
 }
 
 JSObject*
 HTMLBodyElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLBodyElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLBodyElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 NS_IMPL_ELEMENT_CLONE(HTMLBodyElement)
 
 bool
 HTMLBodyElement::ParseAttribute(int32_t aNamespaceID,
                                 nsAtom* aAttribute,
                                 const nsAString& aValue,
--- a/dom/html/HTMLButtonElement.cpp
+++ b/dom/html/HTMLButtonElement.cpp
@@ -492,13 +492,13 @@ HTMLButtonElement::IntrinsicState() cons
   }
 
   return state;
 }
 
 JSObject*
 HTMLButtonElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLButtonElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLButtonElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/html/HTMLCanvasElement.cpp
+++ b/dom/html/HTMLCanvasElement.cpp
@@ -241,17 +241,17 @@ HTMLCanvasPrintState::HTMLCanvasPrintSta
 
 HTMLCanvasPrintState::~HTMLCanvasPrintState()
 {
 }
 
 /* virtual */ JSObject*
 HTMLCanvasPrintState::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return MozCanvasPrintStateBinding::Wrap(aCx, this, aGivenProto);
+  return MozCanvasPrintState_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsISupports*
 HTMLCanvasPrintState::Context() const
 {
   return mContext;
 }
 
@@ -423,17 +423,17 @@ NS_IMPL_CYCLE_COLLECTION_INHERITED(HTMLC
 
 NS_IMPL_ISUPPORTS_CYCLE_COLLECTION_INHERITED_0(HTMLCanvasElement, nsGenericHTMLElement)
 
 NS_IMPL_ELEMENT_CLONE(HTMLCanvasElement)
 
 /* virtual */ JSObject*
 HTMLCanvasElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLCanvasElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLCanvasElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 already_AddRefed<nsICanvasRenderingContextInternal>
 HTMLCanvasElement::CreateContext(CanvasContextType aContextType)
 {
   // Note that the compositor backend will be LAYERS_NONE if there is no widget.
   RefPtr<nsICanvasRenderingContextInternal> ret =
     CreateContextHelper(aContextType, GetCompositorBackendType());
--- a/dom/html/HTMLDataElement.cpp
+++ b/dom/html/HTMLDataElement.cpp
@@ -22,13 +22,13 @@ HTMLDataElement::~HTMLDataElement()
 {
 }
 
 NS_IMPL_ELEMENT_CLONE(HTMLDataElement)
 
 JSObject*
 HTMLDataElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLDataElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLDataElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/html/HTMLDataListElement.cpp
+++ b/dom/html/HTMLDataListElement.cpp
@@ -14,17 +14,17 @@ namespace dom {
 
 HTMLDataListElement::~HTMLDataListElement()
 {
 }
 
 JSObject*
 HTMLDataListElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLDataListElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLDataListElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 NS_IMPL_CYCLE_COLLECTION_INHERITED(HTMLDataListElement,
                                    nsGenericHTMLElement,
                                    mOptions)
 
 NS_IMPL_ISUPPORTS_CYCLE_COLLECTION_INHERITED_0(HTMLDataListElement,
                                                nsGenericHTMLElement)
--- a/dom/html/HTMLDetailsElement.cpp
+++ b/dom/html/HTMLDetailsElement.cpp
@@ -73,13 +73,13 @@ HTMLDetailsElement::AsyncEventRunning(As
   if (mToggleEventDispatcher == aEvent) {
     mToggleEventDispatcher = nullptr;
   }
 }
 
 JSObject*
 HTMLDetailsElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLDetailsElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLDetailsElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/html/HTMLDialogElement.cpp
+++ b/dom/html/HTMLDialogElement.cpp
@@ -83,13 +83,13 @@ HTMLDialogElement::ShowModal(ErrorResult
 
   SetOpen(true, aError);
   aError.SuppressException();
 }
 
 JSObject*
 HTMLDialogElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLDialogElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLDialogElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/html/HTMLDivElement.cpp
+++ b/dom/html/HTMLDivElement.cpp
@@ -19,17 +19,17 @@ HTMLDivElement::~HTMLDivElement()
 {
 }
 
 NS_IMPL_ELEMENT_CLONE(HTMLDivElement)
 
 JSObject*
 HTMLDivElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return dom::HTMLDivElementBinding::Wrap(aCx, this, aGivenProto);
+  return dom::HTMLDivElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 bool
 HTMLDivElement::ParseAttribute(int32_t aNamespaceID,
                                nsAtom* aAttribute,
                                const nsAString& aValue,
                                nsIPrincipal* aMaybeScriptedPrincipal,
                                nsAttrValue& aResult)
--- a/dom/html/HTMLElement.cpp
+++ b/dom/html/HTMLElement.cpp
@@ -37,17 +37,17 @@ HTMLElement::~HTMLElement()
 {
 }
 
 NS_IMPL_ELEMENT_CLONE(HTMLElement)
 
 JSObject*
 HTMLElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return dom::HTMLElementBinding::Wrap(aCx, this, aGivenProto);
+  return dom::HTMLElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
 
 // Here, we expand 'NS_IMPL_NS_NEW_HTML_ELEMENT()' by hand.
 // (Calling the macro directly (with no args) produces compiler warnings.)
 nsGenericHTMLElement*
--- a/dom/html/HTMLEmbedElement.cpp
+++ b/dom/html/HTMLEmbedElement.cpp
@@ -327,17 +327,17 @@ HTMLEmbedElement::CopyInnerTo(Element* a
 
   return rv;
 }
 
 JSObject*
 HTMLEmbedElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
   JSObject* obj;
-  obj = HTMLEmbedElementBinding::Wrap(aCx, this, aGivenProto);
+  obj = HTMLEmbedElement_Binding::Wrap(aCx, this, aGivenProto);
 
   if (!obj) {
     return nullptr;
   }
   JS::Rooted<JSObject*> rootedObj(aCx, obj);
   SetupProtoChain(aCx, rootedObj);
   return rootedObj;
 }
--- a/dom/html/HTMLFieldSetElement.cpp
+++ b/dom/html/HTMLFieldSetElement.cpp
@@ -396,13 +396,13 @@ HTMLFieldSetElement::IntrinsicState() co
   }
 
   return state;
 }
 
 JSObject*
 HTMLFieldSetElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLFieldSetElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLFieldSetElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/html/HTMLFontElement.cpp
+++ b/dom/html/HTMLFontElement.cpp
@@ -18,17 +18,17 @@ namespace dom {
 
 HTMLFontElement::~HTMLFontElement()
 {
 }
 
 JSObject*
 HTMLFontElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLFontElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLFontElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 NS_IMPL_ELEMENT_CLONE(HTMLFontElement)
 
 bool
 HTMLFontElement::ParseAttribute(int32_t aNamespaceID,
                                 nsAtom* aAttribute,
                                 const nsAString& aValue,
--- a/dom/html/HTMLFormControlsCollection.cpp
+++ b/dom/html/HTMLFormControlsCollection.cpp
@@ -349,13 +349,13 @@ HTMLFormControlsCollection::GetSupported
   for (auto iter = mNameLookupTable.Iter(); !iter.Done(); iter.Next()) {
     aNames.AppendElement(iter.Key());
   }
 }
 
 /* virtual */ JSObject*
 HTMLFormControlsCollection::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLFormControlsCollectionBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLFormControlsCollection_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/html/HTMLFormElement.cpp
+++ b/dom/html/HTMLFormElement.cpp
@@ -2541,13 +2541,13 @@ HTMLFormElement::RemoveElementFromPastNa
   if (oldCount != mPastNameLookupTable.Count()) {
     ++mExpandoAndGeneration.generation;
   }
 }
 
 JSObject*
 HTMLFormElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLFormElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLFormElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/html/HTMLFrameElement.cpp
+++ b/dom/html/HTMLFrameElement.cpp
@@ -52,13 +52,13 @@ HTMLFrameElement::ParseAttribute(int32_t
 
   return nsGenericHTMLFrameElement::ParseAttribute(aNamespaceID, aAttribute,
                                                    aValue, aMaybeScriptedPrincipal, aResult);
 }
 
 JSObject*
 HTMLFrameElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLFrameElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLFrameElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/html/HTMLFrameSetElement.cpp
+++ b/dom/html/HTMLFrameSetElement.cpp
@@ -18,17 +18,17 @@ namespace dom {
 
 HTMLFrameSetElement::~HTMLFrameSetElement()
 {
 }
 
 JSObject*
 HTMLFrameSetElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLFrameSetElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLFrameSetElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 NS_IMPL_ELEMENT_CLONE(HTMLFrameSetElement)
 
 nsresult
 HTMLFrameSetElement::BeforeSetAttr(int32_t aNamespaceID, nsAtom* aName,
                                    const nsAttrValueOrString* aValue,
                                    bool aNotify)
--- a/dom/html/HTMLHRElement.cpp
+++ b/dom/html/HTMLHRElement.cpp
@@ -194,13 +194,13 @@ nsMapRuleToAttributesFunc
 HTMLHRElement::GetAttributeMappingFunction() const
 {
   return &MapAttributesIntoRule;
 }
 
 JSObject*
 HTMLHRElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLHRElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLHRElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/html/HTMLHeadingElement.cpp
+++ b/dom/html/HTMLHeadingElement.cpp
@@ -22,17 +22,17 @@ HTMLHeadingElement::~HTMLHeadingElement(
 {
 }
 
 NS_IMPL_ELEMENT_CLONE(HTMLHeadingElement)
 
 JSObject*
 HTMLHeadingElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLHeadingElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLHeadingElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 bool
 HTMLHeadingElement::ParseAttribute(int32_t aNamespaceID,
                                    nsAtom* aAttribute,
                                    const nsAString& aValue,
                                    nsIPrincipal* aMaybeScriptedPrincipal,
                                    nsAttrValue& aResult)
--- a/dom/html/HTMLIFrameElement.cpp
+++ b/dom/html/HTMLIFrameElement.cpp
@@ -191,13 +191,13 @@ HTMLIFrameElement::GetSandboxFlags()
     return SANDBOXED_NONE;
   }
   return nsContentUtils::ParseSandboxAttributeToFlags(sandboxAttr);
 }
 
 JSObject*
 HTMLIFrameElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLIFrameElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLIFrameElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/html/HTMLImageElement.cpp
+++ b/dom/html/HTMLImageElement.cpp
@@ -262,18 +262,18 @@ HTMLImageElement::GetAttributeChangeHint
                                          int32_t aModType) const
 {
   nsChangeHint retval =
     nsGenericHTMLElement::GetAttributeChangeHint(aAttribute, aModType);
   if (aAttribute == nsGkAtoms::usemap ||
       aAttribute == nsGkAtoms::ismap) {
     retval |= nsChangeHint_ReconstructFrame;
   } else if (aAttribute == nsGkAtoms::alt) {
-    if (aModType == MutationEventBinding::ADDITION ||
-        aModType == MutationEventBinding::REMOVAL) {
+    if (aModType == MutationEvent_Binding::ADDITION ||
+        aModType == MutationEvent_Binding::REMOVAL) {
       retval |= nsChangeHint_ReconstructFrame;
     }
   }
   return retval;
 }
 
 NS_IMETHODIMP_(bool)
 HTMLImageElement::IsAttributeMapped(const nsAtom* aAttribute) const
@@ -847,17 +847,17 @@ CORSMode
 HTMLImageElement::GetCORSMode()
 {
   return AttrValueToCORSMode(GetParsedAttr(nsGkAtoms::crossorigin));
 }
 
 JSObject*
 HTMLImageElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLImageElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLImageElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 #ifdef DEBUG
 HTMLFormElement*
 HTMLImageElement::GetForm() const
 {
   return mForm;
 }
--- a/dom/html/HTMLInputElement.cpp
+++ b/dom/html/HTMLInputElement.cpp
@@ -2567,17 +2567,17 @@ void
 HTMLInputElement::SetFilesOrDirectories(const nsTArray<OwningFileOrDirectory>& aFilesOrDirectories,
                                         bool aSetValueChanged)
 {
   MOZ_ASSERT(mFileData);
 
   mFileData->ClearGetFilesHelpers();
 
   if (IsWebkitFileSystemEnabled()) {
-    HTMLInputElementBinding::ClearCachedWebkitEntriesValue(this);
+    HTMLInputElement_Binding::ClearCachedWebkitEntriesValue(this);
     mFileData->mEntries.Clear();
   }
 
   mFileData->mFilesOrDirectories.Clear();
   mFileData->mFilesOrDirectories.AppendElements(aFilesOrDirectories);
 
   AfterSetFilesOrDirectories(aSetValueChanged);
 }
@@ -2587,17 +2587,17 @@ HTMLInputElement::SetFiles(FileList* aFi
                            bool aSetValueChanged)
 {
   MOZ_ASSERT(mFileData);
 
   mFileData->mFilesOrDirectories.Clear();
   mFileData->ClearGetFilesHelpers();
 
   if (IsWebkitFileSystemEnabled()) {
-    HTMLInputElementBinding::ClearCachedWebkitEntriesValue(this);
+    HTMLInputElement_Binding::ClearCachedWebkitEntriesValue(this);
     mFileData->mEntries.Clear();
   }
 
   if (aFiles) {
     uint32_t listLength = aFiles->Length();
     for (uint32_t i = 0; i < listLength; i++) {
       OwningFileOrDirectory* element =
         mFileData->mFilesOrDirectories.AppendElement();
@@ -4379,17 +4379,17 @@ HTMLInputElement::PostHandleEvent(EventC
 #if !defined(ANDROID) && !defined(XP_MACOSX)
         case eWheel: {
           // Handle wheel events as increasing / decreasing the input element's
           // value when it's focused and it's type is number or range.
           WidgetWheelEvent* wheelEvent = aVisitor.mEvent->AsWheelEvent();
           if (!aVisitor.mEvent->DefaultPrevented() &&
               aVisitor.mEvent->IsTrusted() && IsMutable() && wheelEvent &&
               wheelEvent->mDeltaY != 0 &&
-              wheelEvent->mDeltaMode != WheelEventBinding::DOM_DELTA_PIXEL) {
+              wheelEvent->mDeltaMode != WheelEvent_Binding::DOM_DELTA_PIXEL) {
             if (mType == NS_FORM_INPUT_NUMBER) {
               nsNumberControlFrame* numberControlFrame =
                 do_QueryFrame(GetPrimaryFrame());
               if (numberControlFrame && numberControlFrame->IsFocused()) {
                 StepNumberControlForUserEvent(wheelEvent->mDeltaY > 0 ? -1 : 1);
                 FireChangeEventIfNeeded();
                 aVisitor.mEvent->PreventDefault();
               }
@@ -7578,17 +7578,17 @@ void
 HTMLInputElement::PickerClosed()
 {
   mPickerRunning = false;
 }
 
 JSObject*
 HTMLInputElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLInputElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLInputElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 GetFilesHelper*
 HTMLInputElement::GetOrCreateGetFilesHelper(bool aRecursiveFlag,
                                             ErrorResult& aRv)
 {
   MOZ_ASSERT(mFileData);
 
--- a/dom/html/HTMLLIElement.cpp
+++ b/dom/html/HTMLLIElement.cpp
@@ -99,13 +99,13 @@ nsMapRuleToAttributesFunc
 HTMLLIElement::GetAttributeMappingFunction() const
 {
   return &MapAttributesIntoRule;
 }
 
 JSObject*
 HTMLLIElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLLIElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLLIElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/html/HTMLLabelElement.cpp
+++ b/dom/html/HTMLLabelElement.cpp
@@ -26,17 +26,17 @@ namespace dom {
 
 HTMLLabelElement::~HTMLLabelElement()
 {
 }
 
 JSObject*
 HTMLLabelElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLLabelElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLLabelElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 // nsIDOMHTMLLabelElement
 
 NS_IMPL_ELEMENT_CLONE(HTMLLabelElement)
 
 HTMLFormElement*
 HTMLLabelElement::GetForm() const
@@ -152,18 +152,18 @@ HTMLLabelElement::PostHandleEvent(EventC
               // Also, within HTMLInputElement::PostHandleEvent, inputs will
               // be selected only when focused via a key or when the navigation
               // flag is used and we want to select the text on label clicks as
               // well.
               // If the label has been clicked by the user, we also want to
               // pass FLAG_BYMOUSE so that we get correct focus ring behavior,
               // but we don't want to pass FLAG_BYMOUSE if this click event was
               // caused by the user pressing an accesskey.
-              bool byMouse = (mouseEvent->inputSource != MouseEventBinding::MOZ_SOURCE_KEYBOARD);
-              bool byTouch = (mouseEvent->inputSource == MouseEventBinding::MOZ_SOURCE_TOUCH);
+              bool byMouse = (mouseEvent->inputSource != MouseEvent_Binding::MOZ_SOURCE_KEYBOARD);
+              bool byTouch = (mouseEvent->inputSource == MouseEvent_Binding::MOZ_SOURCE_TOUCH);
               fm->SetFocus(content,
                            nsIFocusManager::FLAG_BYMOVEFOCUS |
                            (byMouse ? nsIFocusManager::FLAG_BYMOUSE : 0) |
                            (byTouch ? nsIFocusManager::FLAG_BYTOUCH : 0));
             }
           }
           // Dispatch a new click event to |content|
           //    (For compatibility with IE, we do only left click.  If
@@ -205,17 +205,17 @@ HTMLLabelElement::PerformAccesskey(bool 
     nsPresContext *presContext = GetPresContext(eForUncomposedDoc);
     if (!presContext) {
       return false;
     }
 
     // Click on it if the users prefs indicate to do so.
     WidgetMouseEvent event(aIsTrustedEvent, eMouseClick,
                            nullptr, WidgetMouseEvent::eReal);
-    event.inputSource = MouseEventBinding::MOZ_SOURCE_KEYBOARD;
+    event.inputSource = MouseEvent_Binding::MOZ_SOURCE_KEYBOARD;
 
     nsAutoPopupStatePusher popupStatePusher(aIsTrustedEvent ?
                                             openAllowed : openAbused);
 
     EventDispatcher::Dispatch(static_cast<nsIContent*>(this), presContext,
                               &event);
   }
 
--- a/dom/html/HTMLLegendElement.cpp
+++ b/dom/html/HTMLLegendElement.cpp
@@ -130,13 +130,13 @@ HTMLLegendElement::GetForm()
   MOZ_ASSERT_IF(form, form->IsHTMLElement(nsGkAtoms::form));
   RefPtr<HTMLFormElement> ret = static_cast<HTMLFormElement*>(form);
   return ret.forget();
 }
 
 JSObject*
 HTMLLegendElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLLegendElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLLegendElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/html/HTMLLinkElement.cpp
+++ b/dom/html/HTMLLinkElement.cpp
@@ -478,17 +478,17 @@ HTMLLinkElement::AddSizeOfExcludingThis(
 {
   nsGenericHTMLElement::AddSizeOfExcludingThis(aSizes, aNodeSize);
   *aNodeSize += Link::SizeOfExcludingThis(aSizes.mState);
 }
 
 JSObject*
 HTMLLinkElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLLinkElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLLinkElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 HTMLLinkElement::GetAs(nsAString& aResult)
 {
   GetEnumAttr(nsGkAtoms::as, EmptyCString().get(), aResult);
 }
 
--- a/dom/html/HTMLMapElement.cpp
+++ b/dom/html/HTMLMapElement.cpp
@@ -48,13 +48,13 @@ HTMLMapElement::Areas()
 
   return mAreas;
 }
 
 
 JSObject*
 HTMLMapElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLMapElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLMapElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/html/HTMLMediaElement.cpp
+++ b/dom/html/HTMLMediaElement.cpp
@@ -125,17 +125,17 @@
 mozilla::LazyLogModule gMediaElementLog("nsMediaElement");
 static mozilla::LazyLogModule gMediaElementEventsLog("nsMediaElementEvents");
 
 #define LOG(type, msg) MOZ_LOG(gMediaElementLog, type, msg)
 #define LOG_EVENT(type, msg) MOZ_LOG(gMediaElementEventsLog, type, msg)
 
 using namespace mozilla::layers;
 using mozilla::net::nsMediaFragmentURIParser;
-using namespace mozilla::dom::HTMLMediaElementBinding;
+using namespace mozilla::dom::HTMLMediaElement_Binding;
 
 namespace mozilla {
 namespace dom {
 
 // Number of milliseconds between progress events as defined by spec
 static const uint32_t PROGRESS_MS = 350;
 
 // Number of milliseconds of no data before a stall event is fired as defined by
--- a/dom/html/HTMLMediaElement.h
+++ b/dom/html/HTMLMediaElement.h
@@ -1456,18 +1456,18 @@ protected:
   nsCOMPtr<nsIDocument> mLoadBlockedDoc;
 
   // Contains names of events that have been raised while in the bfcache.
   // These events get re-dispatched when the bfcache is exited.
   nsTArray<nsString> mPendingEvents;
 
   // Media loading flags. See:
   //   http://www.whatwg.org/specs/web-apps/current-work/#video)
-  nsMediaNetworkState mNetworkState = HTMLMediaElementBinding::NETWORK_EMPTY;
-  nsMediaReadyState mReadyState = HTMLMediaElementBinding::HAVE_NOTHING;
+  nsMediaNetworkState mNetworkState = HTMLMediaElement_Binding::NETWORK_EMPTY;
+  nsMediaReadyState mReadyState = HTMLMediaElement_Binding::HAVE_NOTHING;
 
   enum LoadAlgorithmState {
     // No load algorithm instance is waiting for a source to be added to the
     // media in order to continue loading.
     NOT_WAITING,
     // We've run the load algorithm, and we tried all source children of the
     // media element, and failed to load any successfully. We're waiting for
     // another source element to be added to the media element, and will try
--- a/dom/html/HTMLMenuElement.cpp
+++ b/dom/html/HTMLMenuElement.cpp
@@ -239,13 +239,13 @@ HTMLMenuElement::AddSeparator(nsIMenuBui
 
   aBuilder->AddSeparator();
   aSeparator = ST_TRUE;
 }
 
 JSObject*
 HTMLMenuElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLMenuElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLMenuElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/html/HTMLMenuItemElement.cpp
+++ b/dom/html/HTMLMenuItemElement.cpp
@@ -473,15 +473,15 @@ HTMLMenuItemElement::InitChecked()
     ClearCheckedVisitor visitor(this);
     WalkRadioGroup(&visitor);
   }
 }
 
 JSObject*
 HTMLMenuItemElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLMenuItemElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLMenuItemElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
 
 #undef NS_ORIGINAL_CHECKED_VALUE
--- a/dom/html/HTMLMetaElement.cpp
+++ b/dom/html/HTMLMetaElement.cpp
@@ -158,13 +158,13 @@ HTMLMetaElement::CreateAndDispatchEvent(
   RefPtr<AsyncEventDispatcher> asyncDispatcher =
     new AsyncEventDispatcher(this, aEventName, true, true);
   asyncDispatcher->RunDOMEventWhenSafe();
 }
 
 JSObject*
 HTMLMetaElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLMetaElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLMetaElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/html/HTMLMeterElement.cpp
+++ b/dom/html/HTMLMeterElement.cpp
@@ -259,13 +259,13 @@ HTMLMeterElement::GetOptimumState() cons
     return NS_EVENT_STATE_OPTIMUM;
   }
   return NS_EVENT_STATE_SUB_OPTIMUM;
 }
 
 JSObject*
 HTMLMeterElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLMeterElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLMeterElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/html/HTMLModElement.cpp
+++ b/dom/html/HTMLModElement.cpp
@@ -22,13 +22,13 @@ HTMLModElement::~HTMLModElement()
 {
 }
 
 NS_IMPL_ELEMENT_CLONE(HTMLModElement)
 
 JSObject*
 HTMLModElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLModElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLModElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/html/HTMLObjectElement.cpp
+++ b/dom/html/HTMLObjectElement.cpp
@@ -541,17 +541,17 @@ HTMLObjectElement::CopyInnerTo(Element* 
 
   return rv;
 }
 
 JSObject*
 HTMLObjectElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
   JS::Rooted<JSObject*> obj(aCx,
-    HTMLObjectElementBinding::Wrap(aCx, this, aGivenProto));
+    HTMLObjectElement_Binding::Wrap(aCx, this, aGivenProto));
   if (!obj) {
     return nullptr;
   }
   SetupProtoChain(aCx, obj);
   return obj;
 }
 
 } // namespace dom
--- a/dom/html/HTMLOptGroupElement.cpp
+++ b/dom/html/HTMLOptGroupElement.cpp
@@ -151,13 +151,13 @@ HTMLOptGroupElement::AfterSetAttr(int32_
 
   return nsGenericHTMLElement::AfterSetAttr(aNameSpaceID, aName, aValue,
                                             aOldValue, aSubjectPrincipal, aNotify);
 }
 
 JSObject*
 HTMLOptGroupElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLOptGroupElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLOptGroupElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/html/HTMLOptionElement.cpp
+++ b/dom/html/HTMLOptionElement.cpp
@@ -399,13 +399,13 @@ HTMLOptionElement::CopyInnerTo(Element* 
     static_cast<HTMLOptionElement*>(aDest)->SetSelected(Selected());
   }
   return NS_OK;
 }
 
 JSObject*
 HTMLOptionElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLOptionElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLOptionElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/html/HTMLOptionsCollection.cpp
+++ b/dom/html/HTMLOptionsCollection.cpp
@@ -100,17 +100,17 @@ NS_INTERFACE_TABLE_HEAD(HTMLOptionsColle
 NS_INTERFACE_MAP_END
 
 NS_IMPL_CYCLE_COLLECTING_ADDREF(HTMLOptionsCollection)
 NS_IMPL_CYCLE_COLLECTING_RELEASE(HTMLOptionsCollection)
 
 JSObject*
 HTMLOptionsCollection::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLOptionsCollectionBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLOptionsCollection_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 uint32_t
 HTMLOptionsCollection::Length()
 {
   return mElements.Length();
 }
 
--- a/dom/html/HTMLOutputElement.cpp
+++ b/dom/html/HTMLOutputElement.cpp
@@ -199,13 +199,13 @@ void HTMLOutputElement::ContentRemoved(n
                                        nsIContent* aPreviousSibling)
 {
   DescendantsChanged();
 }
 
 JSObject*
 HTMLOutputElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLOutputElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLOutputElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/html/HTMLParagraphElement.cpp
+++ b/dom/html/HTMLParagraphElement.cpp
@@ -62,13 +62,13 @@ nsMapRuleToAttributesFunc
 HTMLParagraphElement::GetAttributeMappingFunction() const
 {
   return &MapAttributesIntoRule;
 }
 
 JSObject*
 HTMLParagraphElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLParagraphElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLParagraphElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/html/HTMLPictureElement.cpp
+++ b/dom/html/HTMLPictureElement.cpp
@@ -138,13 +138,13 @@ HTMLPictureElement::InsertChildAt_Deprec
   }
 
   return rv;
 }
 
 JSObject*
 HTMLPictureElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLPictureElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLPictureElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/html/HTMLPreElement.cpp
+++ b/dom/html/HTMLPreElement.cpp
@@ -82,13 +82,13 @@ HTMLPreElement::GetAttributeMappingFunct
   }
 
   return &MapAttributesIntoRule;
 }
 
 JSObject*
 HTMLPreElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLPreElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLPreElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/html/HTMLProgressElement.cpp
+++ b/dom/html/HTMLProgressElement.cpp
@@ -102,13 +102,13 @@ HTMLProgressElement::IsIndeterminate() c
 {
   const nsAttrValue* attrValue = mAttrsAndChildren.GetAttr(nsGkAtoms::value);
   return !attrValue || attrValue->Type() != nsAttrValue::eDoubleValue;
 }
 
 JSObject*
 HTMLProgressElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLProgressElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLProgressElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/html/HTMLScriptElement.cpp
+++ b/dom/html/HTMLScriptElement.cpp
@@ -27,17 +27,17 @@
 NS_IMPL_NS_NEW_HTML_ELEMENT_CHECK_PARSER(Script)
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 HTMLScriptElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLScriptElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLScriptElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 HTMLScriptElement::HTMLScriptElement(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo,
                                      FromParser aFromParser)
   : nsGenericHTMLElement(aNodeInfo)
   , ScriptElement(aFromParser)
 {
   AddMutationObserver(this);
--- a/dom/html/HTMLSelectElement.cpp
+++ b/dom/html/HTMLSelectElement.cpp
@@ -1831,13 +1831,13 @@ HTMLSelectElement::SetPreviewValue(const
   if (comboFrame) {
     comboFrame->RedisplaySelectedText();
   }
 }
 
 JSObject*
 HTMLSelectElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLSelectElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLSelectElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/html/HTMLSharedElement.cpp
+++ b/dom/html/HTMLSharedElement.cpp
@@ -278,29 +278,29 @@ HTMLSharedElement::GetAttributeMappingFu
 
   return nsGenericHTMLElement::GetAttributeMappingFunction();
 }
 
 JSObject*
 HTMLSharedElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
   if (mNodeInfo->Equals(nsGkAtoms::param)) {
-    return HTMLParamElementBinding::Wrap(aCx, this, aGivenProto);
+    return HTMLParamElement_Binding::Wrap(aCx, this, aGivenProto);
   }
   if (mNodeInfo->Equals(nsGkAtoms::base)) {
-    return HTMLBaseElementBinding::Wrap(aCx, this, aGivenProto);
+    return HTMLBaseElement_Binding::Wrap(aCx, this, aGivenProto);
   }
   if (mNodeInfo->Equals(nsGkAtoms::dir)) {
-    return HTMLDirectoryElementBinding::Wrap(aCx, this, aGivenProto);
+    return HTMLDirectoryElement_Binding::Wrap(aCx, this, aGivenProto);
   }
   if (mNodeInfo->Equals(nsGkAtoms::q) ||
       mNodeInfo->Equals(nsGkAtoms::blockquote)) {
-    return HTMLQuoteElementBinding::Wrap(aCx, this, aGivenProto);
+    return HTMLQuoteElement_Binding::Wrap(aCx, this, aGivenProto);
   }
   if (mNodeInfo->Equals(nsGkAtoms::head)) {
-    return HTMLHeadElementBinding::Wrap(aCx, this, aGivenProto);
+    return HTMLHeadElement_Binding::Wrap(aCx, this, aGivenProto);
   }
   MOZ_ASSERT(mNodeInfo->Equals(nsGkAtoms::html));
-  return HTMLHtmlElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLHtmlElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/html/HTMLSharedListElement.cpp
+++ b/dom/html/HTMLSharedListElement.cpp
@@ -125,19 +125,19 @@ HTMLSharedListElement::GetAttributeMappi
 
   return nsGenericHTMLElement::GetAttributeMappingFunction();
 }
 
 JSObject*
 HTMLSharedListElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
   if (mNodeInfo->Equals(nsGkAtoms::ol)) {
-    return HTMLOListElementBinding::Wrap(aCx, this, aGivenProto);
+    return HTMLOListElement_Binding::Wrap(aCx, this, aGivenProto);
   }
   if (mNodeInfo->Equals(nsGkAtoms::dl)) {
-    return HTMLDListElementBinding::Wrap(aCx, this, aGivenProto);
+    return HTMLDListElement_Binding::Wrap(aCx, this, aGivenProto);
   }
   MOZ_ASSERT(mNodeInfo->Equals(nsGkAtoms::ul));
-  return HTMLUListElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLUListElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/html/HTMLSlotElement.cpp
+++ b/dom/html/HTMLSlotElement.cpp
@@ -242,13 +242,13 @@ HTMLSlotElement::FireSlotChangeEvent()
                                        static_cast<nsIContent*>(this),
                                        NS_LITERAL_STRING("slotchange"), true,
                                        false);
 }
 
 JSObject*
 HTMLSlotElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLSlotElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLSlotElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/html/HTMLSourceElement.cpp
+++ b/dom/html/HTMLSourceElement.cpp
@@ -157,13 +157,13 @@ HTMLSourceElement::BindToTree(nsIDocumen
   }
 
   return NS_OK;
 }
 
 JSObject*
 HTMLSourceElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLSourceElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLSourceElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/html/HTMLSpanElement.cpp
+++ b/dom/html/HTMLSpanElement.cpp
@@ -21,13 +21,13 @@ HTMLSpanElement::~HTMLSpanElement()
 {
 }
 
 NS_IMPL_ELEMENT_CLONE(HTMLSpanElement)
 
 JSObject*
 HTMLSpanElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLSpanElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLSpanElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/html/HTMLStyleElement.cpp
+++ b/dom/html/HTMLStyleElement.cpp
@@ -218,14 +218,14 @@ HTMLStyleElement::GetStyleSheetInfo()
     HasAlternateRel::No,
     IsInline::Yes,
   });
 }
 
 JSObject*
 HTMLStyleElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLStyleElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLStyleElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
 
--- a/dom/html/HTMLSummaryElement.cpp
+++ b/dom/html/HTMLSummaryElement.cpp
@@ -144,13 +144,13 @@ HTMLDetailsElement*
 HTMLSummaryElement::GetDetails() const
 {
   return HTMLDetailsElement::FromNodeOrNull(GetParent());
 }
 
 JSObject*
 HTMLSummaryElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/html/HTMLTableCaptionElement.cpp
+++ b/dom/html/HTMLTableCaptionElement.cpp
@@ -18,17 +18,17 @@ namespace dom {
 
 HTMLTableCaptionElement::~HTMLTableCaptionElement()
 {
 }
 
 JSObject*
 HTMLTableCaptionElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLTableCaptionElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLTableCaptionElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 NS_IMPL_ELEMENT_CLONE(HTMLTableCaptionElement)
 
 static const nsAttrValue::EnumTable kCaptionAlignTable[] = {
   { "left",   NS_STYLE_CAPTION_SIDE_LEFT },
   { "right",  NS_STYLE_CAPTION_SIDE_RIGHT },
   { "top",    NS_STYLE_CAPTION_SIDE_TOP },
--- a/dom/html/HTMLTableCellElement.cpp
+++ b/dom/html/HTMLTableCellElement.cpp
@@ -20,17 +20,17 @@ namespace dom {
 
 HTMLTableCellElement::~HTMLTableCellElement()
 {
 }
 
 JSObject*
 HTMLTableCellElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLTableCellElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLTableCellElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 NS_IMPL_ELEMENT_CLONE(HTMLTableCellElement)
 
 
 // protected method
 HTMLTableRowElement*
 HTMLTableCellElement::GetRow() const
--- a/dom/html/HTMLTableColElement.cpp
+++ b/dom/html/HTMLTableColElement.cpp
@@ -21,17 +21,17 @@ namespace dom {
 
 HTMLTableColElement::~HTMLTableColElement()
 {
 }
 
 JSObject*
 HTMLTableColElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLTableColElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLTableColElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 NS_IMPL_ELEMENT_CLONE(HTMLTableColElement)
 
 bool
 HTMLTableColElement::ParseAttribute(int32_t aNamespaceID,
                                     nsAtom* aAttribute,
                                     const nsAString& aValue,
--- a/dom/html/HTMLTableElement.cpp
+++ b/dom/html/HTMLTableElement.cpp
@@ -202,17 +202,17 @@ TableRowsCollection::CleanUp()
   // we don't need to try to initialize first.
   mInitialized = true;
   mParent = nullptr;
 }
 
 JSObject*
 TableRowsCollection::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLCollectionBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLCollection_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(TableRowsCollection, mRows)
 NS_IMPL_CYCLE_COLLECTING_ADDREF(TableRowsCollection)
 NS_IMPL_CYCLE_COLLECTING_RELEASE_WITH_LAST_RELEASE(TableRowsCollection,
                                                    LastRelease())
 
 NS_INTERFACE_TABLE_HEAD(TableRowsCollection)
@@ -552,17 +552,17 @@ HTMLTableElement::~HTMLTableElement()
     mRows->ParentDestroyed();
   }
   ReleaseInheritedAttributes();
 }
 
 JSObject*
 HTMLTableElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLTableElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLTableElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 NS_IMPL_CYCLE_COLLECTION_CLASS(HTMLTableElement)
 
 NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(HTMLTableElement, nsGenericHTMLElement)
   NS_IMPL_CYCLE_COLLECTION_UNLINK(mTBodies)
   if (tmp->mRows) {
     tmp->mRows->ParentDestroyed();
--- a/dom/html/HTMLTableRowElement.cpp
+++ b/dom/html/HTMLTableRowElement.cpp
@@ -21,17 +21,17 @@ namespace dom {
 
 HTMLTableRowElement::~HTMLTableRowElement()
 {
 }
 
 JSObject*
 HTMLTableRowElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLTableRowElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLTableRowElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 NS_IMPL_CYCLE_COLLECTION_CLASS(HTMLTableRowElement)
 
 NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(HTMLTableRowElement,
                                                   nsGenericHTMLElement)
   NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mCells)
 NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
--- a/dom/html/HTMLTableSectionElement.cpp
+++ b/dom/html/HTMLTableSectionElement.cpp
@@ -21,17 +21,17 @@ namespace dom {
 
 HTMLTableSectionElement::~HTMLTableSectionElement()
 {
 }
 
 JSObject*
 HTMLTableSectionElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLTableSectionElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLTableSectionElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 NS_IMPL_CYCLE_COLLECTION_CLASS(HTMLTableSectionElement)
 
 NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(HTMLTableSectionElement,
                                                   nsGenericHTMLElement)
   NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mRows)
 NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
--- a/dom/html/HTMLTemplateElement.cpp
+++ b/dom/html/HTMLTemplateElement.cpp
@@ -56,14 +56,14 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_
   NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mContent)
 NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
 
 NS_IMPL_ELEMENT_CLONE(HTMLTemplateElement)
 
 JSObject*
 HTMLTemplateElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLTemplateElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLTemplateElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
 
--- a/dom/html/HTMLTextAreaElement.cpp
+++ b/dom/html/HTMLTextAreaElement.cpp
@@ -1327,17 +1327,17 @@ HTMLTextAreaElement::FieldSetDisabledCha
   UpdateValueMissingValidityState();
   UpdateBarredFromConstraintValidation();
   UpdateState(aNotify);
 }
 
 JSObject*
 HTMLTextAreaElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLTextAreaElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLTextAreaElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 HTMLTextAreaElement::GetAutocomplete(DOMString& aValue)
 {
   const nsAttrValue* attributeVal = GetParsedAttr(nsGkAtoms::autocomplete);
 
   mAutocompleteAttrState =
--- a/dom/html/HTMLTimeElement.cpp
+++ b/dom/html/HTMLTimeElement.cpp
@@ -24,13 +24,13 @@ HTMLTimeElement::~HTMLTimeElement()
 {
 }
 
 NS_IMPL_ELEMENT_CLONE(HTMLTimeElement)
 
 JSObject*
 HTMLTimeElement::WrapNode(JSContext* cx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLTimeElementBinding::Wrap(cx, this, aGivenProto);
+  return HTMLTimeElement_Binding::Wrap(cx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/html/HTMLTitleElement.cpp
+++ b/dom/html/HTMLTitleElement.cpp
@@ -31,17 +31,17 @@ HTMLTitleElement::~HTMLTitleElement()
 NS_IMPL_ISUPPORTS_INHERITED(HTMLTitleElement, nsGenericHTMLElement,
                             nsIMutationObserver)
 
 NS_IMPL_ELEMENT_CLONE(HTMLTitleElement)
 
 JSObject*
 HTMLTitleElement::WrapNode(JSContext* cx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLTitleElementBinding::Wrap(cx, this, aGivenProto);
+  return HTMLTitleElement_Binding::Wrap(cx, this, aGivenProto);
 }
 
 void
 HTMLTitleElement::GetText(DOMString& aText, ErrorResult& aError)
 {
   if (!nsContentUtils::GetNodeTextContent(this, false, aText, fallible)) {
     aError = NS_ERROR_OUT_OF_MEMORY;
   }
--- a/dom/html/HTMLTrackElement.cpp
+++ b/dom/html/HTMLTrackElement.cpp
@@ -162,17 +162,17 @@ HTMLTrackElement::OnChannelRedirect(nsIC
 {
   NS_ASSERTION(aChannel == mChannel, "Channels should match!");
   mChannel = aNewChannel;
 }
 
 JSObject*
 HTMLTrackElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLTrackElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLTrackElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 TextTrack*
 HTMLTrackElement::GetTrack()
 {
   if (!mTrack) {
     CreateTextTrack();
   }
--- a/dom/html/HTMLUnknownElement.cpp
+++ b/dom/html/HTMLUnknownElement.cpp
@@ -15,15 +15,15 @@ namespace mozilla {
 namespace dom {
 
 NS_IMPL_ISUPPORTS_INHERITED(HTMLUnknownElement, nsGenericHTMLElement,
                             HTMLUnknownElement)
 
 JSObject*
 HTMLUnknownElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLUnknownElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLUnknownElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 NS_IMPL_ELEMENT_CLONE(HTMLUnknownElement)
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/html/HTMLVideoElement.cpp
+++ b/dom/html/HTMLVideoElement.cpp
@@ -229,17 +229,17 @@ bool HTMLVideoElement::MozHasAudio() con
 {
   MOZ_ASSERT(NS_IsMainThread(), "Should be on main thread.");
   return HasAudio();
 }
 
 JSObject*
 HTMLVideoElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLVideoElementBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLVideoElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 FrameStatistics*
 HTMLVideoElement::GetFrameStatistics()
 {
   return mDecoder ? &(mDecoder->GetFrameStatistics()) : nullptr;
 }
 
--- a/dom/html/ImageDocument.cpp
+++ b/dom/html/ImageDocument.cpp
@@ -195,17 +195,17 @@ ImageDocument::Init()
   mFirstResize = true;
 
   return NS_OK;
 }
 
 JSObject*
 ImageDocument::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return ImageDocumentBinding::Wrap(aCx, this, aGivenProto);
+  return ImageDocument_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsresult
 ImageDocument::StartDocumentLoad(const char*         aCommand,
                                  nsIChannel*         aChannel,
                                  nsILoadGroup*       aLoadGroup,
                                  nsISupports*        aContainer,
                                  nsIStreamListener** aDocListener,
--- a/dom/html/MediaError.cpp
+++ b/dom/html/MediaError.cpp
@@ -82,13 +82,13 @@ MediaError::GetMessage(nsAString& aResul
   }
 
   CopyUTF8toUTF16(mMessage, aResult);
 }
 
 JSObject*
 MediaError::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return MediaErrorBinding::Wrap(aCx, this, aGivenProto);
+  return MediaError_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/html/RadioNodeList.cpp
+++ b/dom/html/RadioNodeList.cpp
@@ -13,17 +13,17 @@
 #include "HTMLInputElement.h"
 
 namespace mozilla {
 namespace dom {
 
 /* virtual */ JSObject*
 RadioNodeList::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return RadioNodeListBinding::Wrap(aCx, this, aGivenProto);
+  return RadioNodeList_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 HTMLInputElement*
 GetAsRadio(nsIContent* node)
 {
   HTMLInputElement* el = HTMLInputElement::FromNode(node);
   if (el && el->ControlType() == NS_FORM_INPUT_RADIO) {
     return el;
--- a/dom/html/TimeRanges.cpp
+++ b/dom/html/TimeRanges.cpp
@@ -180,17 +180,17 @@ TimeRanges::Find(double aTime, double aT
     }
   }
   return NoIndex;
 }
 
 JSObject*
 TimeRanges::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return TimeRangesBinding::Wrap(aCx, this, aGivenProto);
+  return TimeRanges_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsISupports*
 TimeRanges::GetParentObject() const
 {
   return mParent;
 }
 
--- a/dom/html/ValidityState.cpp
+++ b/dom/html/ValidityState.cpp
@@ -24,14 +24,14 @@ NS_INTERFACE_MAP_END
 ValidityState::ValidityState(nsIConstraintValidation* aConstraintValidation)
   : mConstraintValidation(aConstraintValidation)
 {
 }
 
 JSObject*
 ValidityState::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return ValidityStateBinding::Wrap(aCx, this, aGivenProto);
+  return ValidityState_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
 
--- a/dom/html/nsDOMStringMap.cpp
+++ b/dom/html/nsDOMStringMap.cpp
@@ -67,17 +67,17 @@ nsDOMStringMap::GetDocGroup() const
 {
   return mElement ? mElement->GetDocGroup() : nullptr;
 }
 
 /* virtual */
 JSObject*
 nsDOMStringMap::WrapObject(JSContext *cx, JS::Handle<JSObject*> aGivenProto)
 {
-  return DOMStringMapBinding::Wrap(cx, this, aGivenProto);
+  return DOMStringMap_Binding::Wrap(cx, this, aGivenProto);
 }
 
 void
 nsDOMStringMap::NamedGetter(const nsAString& aProp, bool& found,
                             DOMString& aResult) const
 {
   nsAutoString attr;
 
@@ -252,16 +252,16 @@ bool nsDOMStringMap::AttrToDataProp(cons
 
 void
 nsDOMStringMap::AttributeChanged(Element* aElement,
                                  int32_t aNameSpaceID,
                                  nsAtom* aAttribute,
                                  int32_t aModType,
                                  const nsAttrValue* aOldValue)
 {
-  if ((aModType == MutationEventBinding::ADDITION ||
-       aModType == MutationEventBinding::REMOVAL) &&
+  if ((aModType == MutationEvent_Binding::ADDITION ||
+       aModType == MutationEvent_Binding::REMOVAL) &&
       aNameSpaceID == kNameSpaceID_None &&
       StringBeginsWith(nsDependentAtomString(aAttribute),
                        NS_LITERAL_STRING("data-"))) {
     ++mExpandoAndGeneration.generation;
   }
 }
--- a/dom/html/nsGenericHTMLElement.cpp
+++ b/dom/html/nsGenericHTMLElement.cpp
@@ -2437,17 +2437,17 @@ nsGenericHTMLElement::Click(CallerType a
   }
 
   SetHandlingClick();
 
   // Mark this event trusted if Click() is called from system code.
   WidgetMouseEvent event(aCallerType == CallerType::System,
                          eMouseClick, nullptr, WidgetMouseEvent::eReal);
   event.mFlags.mIsPositionless = true;
-  event.inputSource = MouseEventBinding::MOZ_SOURCE_UNKNOWN;
+  event.inputSource = MouseEvent_Binding::MOZ_SOURCE_UNKNOWN;
 
   EventDispatcher::Dispatch(static_cast<nsIContent*>(this), context, &event);
 
   ClearHandlingClick();
 }
 
 bool
 nsGenericHTMLElement::IsHTMLFocusable(bool aWithMouse,
@@ -2560,17 +2560,17 @@ nsGenericHTMLElement::PerformAccesskey(b
 
 nsresult
 nsGenericHTMLElement::DispatchSimulatedClick(nsGenericHTMLElement* aElement,
                                              bool aIsTrusted,
                                              nsPresContext* aPresContext)
 {
   WidgetMouseEvent event(aIsTrusted, eMouseClick, nullptr,
                          WidgetMouseEvent::eReal);
-  event.inputSource = MouseEventBinding::MOZ_SOURCE_KEYBOARD;
+  event.inputSource = MouseEvent_Binding::MOZ_SOURCE_KEYBOARD;
   event.mFlags.mIsPositionless = true;
   return EventDispatcher::Dispatch(ToSupports(aElement), aPresContext, &event);
 }
 
 already_AddRefed<TextEditor>
 nsGenericHTMLElement::GetAssociatedEditor()
 {
   // If contenteditable is ever implemented, it might need to do something different here?
--- a/dom/html/nsHTMLDocument.cpp
+++ b/dom/html/nsHTMLDocument.cpp
@@ -197,17 +197,17 @@ NS_IMPL_CYCLE_COLLECTION_INHERITED(nsHTM
 
 NS_IMPL_ISUPPORTS_CYCLE_COLLECTION_INHERITED(nsHTMLDocument,
                                              nsDocument,
                                              nsIHTMLDocument)
 
 JSObject*
 nsHTMLDocument::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return HTMLDocumentBinding::Wrap(aCx, this, aGivenProto);
+  return HTMLDocument_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsresult
 nsHTMLDocument::Init()
 {
   nsresult rv = nsDocument::Init();
   NS_ENSURE_SUCCESS(rv, rv);
 
--- a/dom/indexedDB/IDBCursor.cpp
+++ b/dom/indexedDB/IDBCursor.cpp
@@ -975,21 +975,21 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_END
 JSObject*
 IDBCursor::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
   AssertIsOnOwningThread();
 
   switch (mType) {
     case Type_ObjectStore:
     case Type_Index:
-      return IDBCursorWithValueBinding::Wrap(aCx, this, aGivenProto);
+      return IDBCursorWithValue_Binding::Wrap(aCx, this, aGivenProto);
 
     case Type_ObjectStoreKey:
     case Type_IndexKey:
-      return IDBCursorBinding::Wrap(aCx, this, aGivenProto);
+      return IDBCursor_Binding::Wrap(aCx, this, aGivenProto);
 
     default:
       MOZ_CRASH("Bad type!");
   }
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/indexedDB/IDBDatabase.cpp
+++ b/dom/indexedDB/IDBDatabase.cpp
@@ -1226,17 +1226,17 @@ IDBDatabase::PostHandleEvent(EventChainP
   }
 
   return NS_OK;
 }
 
 JSObject*
 IDBDatabase::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return IDBDatabaseBinding::Wrap(aCx, this, aGivenProto);
+  return IDBDatabase_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 NS_IMETHODIMP
 CancelableRunnableWrapper::Run()
 {
   nsCOMPtr<nsIRunnable> runnable;
   mRunnable.swap(runnable);
 
--- a/dom/indexedDB/IDBEvents.cpp
+++ b/dom/indexedDB/IDBEvents.cpp
@@ -86,13 +86,13 @@ NS_IMPL_RELEASE_INHERITED(IDBVersionChan
 
 NS_INTERFACE_MAP_BEGIN(IDBVersionChangeEvent)
   NS_INTERFACE_MAP_ENTRY(IDBVersionChangeEvent)
 NS_INTERFACE_MAP_END_INHERITING(Event)
 
 JSObject*
 IDBVersionChangeEvent::WrapObjectInternal(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return IDBVersionChangeEventBinding::Wrap(aCx, this, aGivenProto);
+  return IDBVersionChangeEvent_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/indexedDB/IDBFactory.cpp
+++ b/dom/indexedDB/IDBFactory.cpp
@@ -944,13 +944,13 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_END
 NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN(IDBFactory)
   NS_IMPL_CYCLE_COLLECTION_TRACE_PRESERVED_WRAPPER
   NS_IMPL_CYCLE_COLLECTION_TRACE_JS_MEMBER_CALLBACK(mOwningObject)
 NS_IMPL_CYCLE_COLLECTION_TRACE_END
 
 JSObject*
 IDBFactory::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return IDBFactoryBinding::Wrap(aCx, this, aGivenProto);
+  return IDBFactory_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/indexedDB/IDBFileHandle.cpp
+++ b/dom/indexedDB/IDBFileHandle.cpp
@@ -791,13 +791,13 @@ IDBFileHandle::GetEventTargetParent(Even
 }
 
 // virtual
 JSObject*
 IDBFileHandle::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
   AssertIsOnOwningThread();
 
-  return IDBFileHandleBinding::Wrap(aCx, this, aGivenProto);
+  return IDBFileHandle_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/indexedDB/IDBFileRequest.cpp
+++ b/dom/indexedDB/IDBFileRequest.cpp
@@ -120,13 +120,13 @@ IDBFileRequest::GetEventTargetParent(Eve
 JSObject*
 IDBFileRequest::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
   AssertIsOnOwningThread();
 
   if (mWrapAsDOMRequest) {
     return DOMRequest::WrapObject(aCx, aGivenProto);
   }
-  return IDBFileRequestBinding::Wrap(aCx, this, aGivenProto);
+  return IDBFileRequest_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/indexedDB/IDBIndex.cpp
+++ b/dom/indexedDB/IDBIndex.cpp
@@ -668,13 +668,13 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(ID
     mozilla::DropJSObjects(tmp);
     tmp->mRooted = false;
   }
 NS_IMPL_CYCLE_COLLECTION_UNLINK_END
 
 JSObject*
 IDBIndex::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return IDBIndexBinding::Wrap(aCx, this, aGivenProto);
+  return IDBIndex_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/indexedDB/IDBKeyRange.cpp
+++ b/dom/indexedDB/IDBKeyRange.cpp
@@ -243,23 +243,23 @@ IDBKeyRange::DropJSObjects()
   mHaveCachedUpperVal = false;
   mRooted = false;
   mozilla::DropJSObjects(this);
 }
 
 bool
 IDBKeyRange::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto, JS::MutableHandle<JSObject*> aReflector)
 {
-  return IDBKeyRangeBinding::Wrap(aCx, this, aGivenProto, aReflector);
+  return IDBKeyRange_Binding::Wrap(aCx, this, aGivenProto, aReflector);
 }
 
 bool
 IDBLocaleAwareKeyRange::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto, JS::MutableHandle<JSObject*> aReflector)
 {
-  return IDBLocaleAwareKeyRangeBinding::Wrap(aCx, this, aGivenProto, aReflector);
+  return IDBLocaleAwareKeyRange_Binding::Wrap(aCx, this, aGivenProto, aReflector);
 }
 
 void
 IDBKeyRange::GetLower(JSContext* aCx, JS::MutableHandle<JS::Value> aResult,
                       ErrorResult& aRv)
 {
   AssertIsOnOwningThread();
 
--- a/dom/indexedDB/IDBMutableFile.cpp
+++ b/dom/indexedDB/IDBMutableFile.cpp
@@ -243,13 +243,13 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_IN
   tmp->AssertIsOnOwningThread();
 
   // Don't unlink mDatabase!
 NS_IMPL_CYCLE_COLLECTION_UNLINK_END
 
 JSObject*
 IDBMutableFile::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return IDBMutableFileBinding::Wrap(aCx, this, aGivenProto);
+  return IDBMutableFile_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/indexedDB/IDBObjectStore.cpp
+++ b/dom/indexedDB/IDBObjectStore.cpp
@@ -2182,17 +2182,17 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
 NS_INTERFACE_MAP_END
 
 NS_IMPL_CYCLE_COLLECTING_ADDREF(IDBObjectStore)
 NS_IMPL_CYCLE_COLLECTING_RELEASE(IDBObjectStore)
 
 JSObject*
 IDBObjectStore::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return IDBObjectStoreBinding::Wrap(aCx, this, aGivenProto);
+  return IDBObjectStore_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsPIDOMWindowInner*
 IDBObjectStore::GetParentObject() const
 {
   return mTransaction->GetParentObject();
 }
 
--- a/dom/indexedDB/IDBRequest.cpp
+++ b/dom/indexedDB/IDBRequest.cpp
@@ -278,17 +278,17 @@ IDBRequest::SetSource(IDBCursor* aSource
   MOZ_ASSERT(!mSourceAsCursor);
 
   mSourceAsCursor = aSource;
 }
 
 JSObject*
 IDBRequest::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return IDBRequestBinding::Wrap(aCx, this, aGivenProto);
+  return IDBRequest_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 IDBRequest::GetResult(JS::MutableHandle<JS::Value> aResult,
                       ErrorResult& aRv) const
 {
   AssertIsOnOwningThread();
 
@@ -602,13 +602,13 @@ IDBOpenDBRequest::PostHandleEvent(EventC
   return NS_OK;
 }
 
 JSObject*
 IDBOpenDBRequest::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
   AssertIsOnOwningThread();
 
-  return IDBOpenDBRequestBinding::Wrap(aCx, this, aGivenProto);
+  return IDBOpenDBRequest_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/indexedDB/IDBTransaction.cpp
+++ b/dom/indexedDB/IDBTransaction.cpp
@@ -1035,17 +1035,17 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_IN
   NS_IMPL_CYCLE_COLLECTION_UNLINK(mDeletedObjectStores)
 NS_IMPL_CYCLE_COLLECTION_UNLINK_END
 
 JSObject*
 IDBTransaction::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
   AssertIsOnOwningThread();
 
-  return IDBTransactionBinding::Wrap(aCx, this, aGivenProto);
+  return IDBTransaction_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 IDBTransaction::GetEventTargetParent(EventChainPreVisitor& aVisitor)
 {
   AssertIsOnOwningThread();
 
   aVisitor.mCanHandle = true;
--- a/dom/indexedDB/IndexedDatabaseManager.cpp
+++ b/dom/indexedDB/IndexedDatabaseManager.cpp
@@ -623,29 +623,29 @@ IndexedDatabaseManager::ResolveSandboxBi
              "Passed object is not a global object!");
 
   // We need to ensure that the manager has been created already here so that we
   // load preferences that may control which properties are exposed.
   if (NS_WARN_IF(!GetOrCreate())) {
     return false;
   }
 
-  if (!IDBCursorBinding::GetConstructorObject(aCx) ||
-      !IDBCursorWithValueBinding::GetConstructorObject(aCx) ||
-      !IDBDatabaseBinding::GetConstructorObject(aCx) ||
-      !IDBFactoryBinding::GetConstructorObject(aCx) ||
-      !IDBIndexBinding::GetConstructorObject(aCx) ||
-      !IDBKeyRangeBinding::GetConstructorObject(aCx) ||
-      !IDBLocaleAwareKeyRangeBinding::GetConstructorObject(aCx) ||
-      !IDBMutableFileBinding::GetConstructorObject(aCx) ||
-      !IDBObjectStoreBinding::GetConstructorObject(aCx) ||
-      !IDBOpenDBRequestBinding::GetConstructorObject(aCx) ||
-      !IDBRequestBinding::GetConstructorObject(aCx) ||
-      !IDBTransactionBinding::GetConstructorObject(aCx) ||
-      !IDBVersionChangeEventBinding::GetConstructorObject(aCx))
+  if (!IDBCursor_Binding::GetConstructorObject(aCx) ||
+      !IDBCursorWithValue_Binding::GetConstructorObject(aCx) ||
+      !IDBDatabase_Binding::GetConstructorObject(aCx) ||
+      !IDBFactory_Binding::GetConstructorObject(aCx) ||
+      !IDBIndex_Binding::GetConstructorObject(aCx) ||
+      !IDBKeyRange_Binding::GetConstructorObject(aCx) ||
+      !IDBLocaleAwareKeyRange_Binding::GetConstructorObject(aCx) ||
+      !IDBMutableFile_Binding::GetConstructorObject(aCx) ||
+      !IDBObjectStore_Binding::GetConstructorObject(aCx) ||
+      !IDBOpenDBRequest_Binding::GetConstructorObject(aCx) ||
+      !IDBRequest_Binding::GetConstructorObject(aCx) ||
+      !IDBTransaction_Binding::GetConstructorObject(aCx) ||
+      !IDBVersionChangeEvent_Binding::GetConstructorObject(aCx))
   {
     return false;
   }
 
   return true;
 }
 
 // static
--- a/dom/interfaces/base/nsIDOMWindowUtils.idl
+++ b/dom/interfaces/base/nsIDOMWindowUtils.idl
@@ -258,17 +258,17 @@ interface nsIDOMWindowUtils : nsISupport
    */
   attribute boolean isFirstPaint;
 
   uint32_t getPresShellId();
 
   /**
    * Following modifiers are for sent*Event() except sendNative*Event().
    * NOTE: MODIFIER_ALT, MODIFIER_CONTROL, MODIFIER_SHIFT and MODIFIER_META
-   *       are must be same values as EventBinding::*_MASK for backward
+   *       are must be same values as Event_Binding::*_MASK for backward
    *       compatibility.
    */
   const long MODIFIER_ALT        = 0x0001;
   const long MODIFIER_CONTROL    = 0x0002;
   const long MODIFIER_SHIFT      = 0x0004;
   const long MODIFIER_META       = 0x0008;
   const long MODIFIER_ALTGRAPH   = 0x0010;
   const long MODIFIER_CAPSLOCK   = 0x0020;
--- a/dom/ipc/TabChild.cpp
+++ b/dom/ipc/TabChild.cpp
@@ -1541,17 +1541,17 @@ TabChild::RecvMouseEvent(const nsString&
                          const int32_t&  aButton,
                          const int32_t&  aClickCount,
                          const int32_t&  aModifiers,
                          const bool&     aIgnoreRootScrollFrame)
 {
   APZCCallbackHelper::DispatchMouseEvent(GetPresShell(), aType,
                                          CSSPoint(aX, aY), aButton, aClickCount,
                                          aModifiers, aIgnoreRootScrollFrame,
-                                         MouseEventBinding::MOZ_SOURCE_UNKNOWN,
+                                         MouseEvent_Binding::MOZ_SOURCE_UNKNOWN,
                                          0 /* Use the default value here. */);
   return IPC_OK();
 }
 
 void
 TabChild::ProcessPendingCoalescedMouseDataAndDispatchEvents()
 {
   if (!mCoalesceMouseMoveEvents || !mCoalescedMouseEventFlusher) {
@@ -3534,19 +3534,19 @@ NS_INTERFACE_MAP_END_INHERITING(DOMEvent
 NS_IMPL_ADDREF_INHERITED(TabChildGlobal, DOMEventTargetHelper)
 NS_IMPL_RELEASE_INHERITED(TabChildGlobal, DOMEventTargetHelper)
 
 bool
 TabChildGlobal::WrapGlobalObject(JSContext* aCx,
                                  JS::RealmOptions& aOptions,
                                  JS::MutableHandle<JSObject*> aReflector)
 {
-  bool ok = ContentFrameMessageManagerBinding::Wrap(aCx, this, this, aOptions,
-                                                    nsJSPrincipals::get(mTabChild->GetPrincipal()),
-                                                    true, aReflector);
+  bool ok = ContentFrameMessageManager_Binding::Wrap(aCx, this, this, aOptions,
+                                                       nsJSPrincipals::get(mTabChild->GetPrincipal()),
+                                                       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/mathml/nsMathMLElement.cpp
+++ b/dom/mathml/nsMathMLElement.cpp
@@ -1095,10 +1095,10 @@ nsMathMLElement::AfterSetAttr(int32_t aN
 
   return nsMathMLElementBase::AfterSetAttr(aNameSpaceID, aName, aValue,
                                            aOldValue, aSubjectPrincipal, aNotify);
 }
 
 JSObject*
 nsMathMLElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return ElementBinding::Wrap(aCx, this, aGivenProto);
+  return Element_Binding::Wrap(aCx, this, aGivenProto);
 }
--- a/dom/media/AudioStreamTrack.cpp
+++ b/dom/media/AudioStreamTrack.cpp
@@ -10,17 +10,17 @@
 #include "mozilla/dom/AudioStreamTrackBinding.h"
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 AudioStreamTrack::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return AudioStreamTrackBinding::Wrap(aCx, this, aGivenProto);
+  return AudioStreamTrack_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 AudioStreamTrack::GetLabel(nsAString& aLabel, CallerType aCallerType)
 {
   if (nsContentUtils::ResistFingerprinting(aCallerType)) {
     aLabel.AssignLiteral("Internal Microphone");
     return;
--- a/dom/media/AudioTrack.cpp
+++ b/dom/media/AudioTrack.cpp
@@ -21,17 +21,17 @@ AudioTrack::AudioTrack(nsIGlobalObject* 
   : MediaTrack(aOwnerGlobal, aId, aKind, aLabel, aLanguage)
   , mEnabled(aEnabled)
 {
 }
 
 JSObject*
 AudioTrack::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return AudioTrackBinding::Wrap(aCx, this, aGivenProto);
+  return AudioTrack_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 AudioTrack::SetEnabled(bool aEnabled)
 {
   SetEnabledInternal(aEnabled, MediaTrack::DEFAULT);
 }
 
--- a/dom/media/AudioTrackList.cpp
+++ b/dom/media/AudioTrackList.cpp
@@ -8,17 +8,17 @@
 #include "mozilla/dom/AudioTrackListBinding.h"
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 AudioTrackList::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return AudioTrackListBinding::Wrap(aCx, this, aGivenProto);
+  return AudioTrackList_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 AudioTrack*
 AudioTrackList::operator[](uint32_t aIndex)
 {
   MediaTrack* track = MediaTrackList::operator[](aIndex);
   return track->AsAudioTrack();
 }
--- a/dom/media/AutoplayPolicy.cpp
+++ b/dom/media/AutoplayPolicy.cpp
@@ -45,17 +45,17 @@ AutoplayPolicy::IsMediaElementAllowedToP
 
   // Muted content
   if (aElement->Volume() == 0.0 || aElement->Muted()) {
     return true;
   }
 
   // Media has already loaded metadata and doesn't contain audio track
   if (aElement->IsVideo() &&
-      aElement->ReadyState() >= HTMLMediaElementBinding::HAVE_METADATA &&
+      aElement->ReadyState() >= HTMLMediaElement_Binding::HAVE_METADATA &&
       !aElement->HasAudio()) {
     return true;
   }
 
   // Whitelisted.
   if (nsContentUtils::IsExactSitePermAllow(
         aElement->NodePrincipal(), "autoplay-media")) {
     return true;
--- a/dom/media/CanvasCaptureMediaStream.cpp
+++ b/dom/media/CanvasCaptureMediaStream.cpp
@@ -244,17 +244,17 @@ CanvasCaptureMediaStream::~CanvasCapture
   if (mOutputStreamDriver) {
     mOutputStreamDriver->Forget();
   }
 }
 
 JSObject*
 CanvasCaptureMediaStream::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return dom::CanvasCaptureMediaStreamBinding::Wrap(aCx, this, aGivenProto);
+  return dom::CanvasCaptureMediaStream_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 CanvasCaptureMediaStream::RequestFrame()
 {
   if (mOutputStreamDriver) {
     mOutputStreamDriver->RequestFrameCapture();
   }
--- a/dom/media/DOMMediaStream.cpp
+++ b/dom/media/DOMMediaStream.cpp
@@ -501,17 +501,17 @@ DOMMediaStream::Destroy()
   }
   mRunOnTracksAvailable.Clear();
   mTrackListeners.Clear();
 }
 
 JSObject*
 DOMMediaStream::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return dom::MediaStreamBinding::Wrap(aCx, this, aGivenProto);
+  return dom::MediaStream_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 /* static */ already_AddRefed<DOMMediaStream>
 DOMMediaStream::Constructor(const GlobalObject& aGlobal,
                             ErrorResult& aRv)
 {
   Sequence<OwningNonNull<MediaStreamTrack>> emptyTrackSeq;
   return Constructor(aGlobal, emptyTrackSeq, aRv);
@@ -1521,17 +1521,17 @@ DOMLocalMediaStream::~DOMLocalMediaStrea
     // Make sure Listeners of this stream know it's going away
     StopImpl();
   }
 }
 
 JSObject*
 DOMLocalMediaStream::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return dom::LocalMediaStreamBinding::Wrap(aCx, this, aGivenProto);
+  return dom::LocalMediaStream_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 DOMLocalMediaStream::Stop()
 {
   LOG(LogLevel::Debug, ("DOMMediaStream %p Stop()", this));
   nsCOMPtr<nsPIDOMWindowInner> pWindow = GetParentObject();
   nsIDocument* document = pWindow ? pWindow->GetExtantDoc() : nullptr;
--- a/dom/media/GetUserMediaRequest.cpp
+++ b/dom/media/GetUserMediaRequest.cpp
@@ -46,17 +46,17 @@ NS_IMPL_CYCLE_COLLECTING_RELEASE(GetUser
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(GetUserMediaRequest)
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 JSObject*
 GetUserMediaRequest::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return GetUserMediaRequestBinding::Wrap(aCx, this, aGivenProto);
+  return GetUserMediaRequest_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsISupports* GetUserMediaRequest::GetParentObject()
 {
   return nullptr;
 }
 
 void GetUserMediaRequest::GetCallID(nsString& retval)
--- a/dom/media/MediaDeviceInfo.cpp
+++ b/dom/media/MediaDeviceInfo.cpp
@@ -25,17 +25,17 @@ NS_IMPL_CYCLE_COLLECTING_RELEASE(MediaDe
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(MediaDeviceInfo)
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 JSObject*
 MediaDeviceInfo::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return MediaDeviceInfoBinding::Wrap(aCx, this, aGivenProto);
+  return MediaDeviceInfo_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsISupports* MediaDeviceInfo::GetParentObject()
 {
   return nullptr;
 }
 
 void MediaDeviceInfo::GetDeviceId(nsString& retval)
--- a/dom/media/MediaDevices.cpp
+++ b/dom/media/MediaDevices.cpp
@@ -276,13 +276,13 @@ MediaDevices::EventListenerAdded(nsAtom*
 {
   MediaManager::Get()->AddDeviceChangeCallback(this);
   DOMEventTargetHelper::EventListenerAdded(aType);
 }
 
 JSObject*
 MediaDevices::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return MediaDevicesBinding::Wrap(aCx, this, aGivenProto);
+  return MediaDevices_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/media/MediaRecorder.cpp
+++ b/dom/media/MediaRecorder.cpp
@@ -1423,17 +1423,17 @@ MediaRecorder::RequestData(ErrorResult& 
   if (NS_FAILED(rv)) {
     NotifyError(rv);
   }
 }
 
 JSObject*
 MediaRecorder::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return MediaRecorderBinding::Wrap(aCx, this, aGivenProto);
+  return MediaRecorder_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 /* static */ already_AddRefed<MediaRecorder>
 MediaRecorder::Constructor(const GlobalObject& aGlobal,
                            DOMMediaStream& aStream,
                            const MediaRecorderOptions& aInitDict,
                            ErrorResult& aRv)
 {
--- a/dom/media/MediaStreamError.cpp
+++ b/dom/media/MediaStreamError.cpp
@@ -67,17 +67,17 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
   NS_INTERFACE_MAP_ENTRY(MediaStreamError)
 NS_INTERFACE_MAP_END
 
 JSObject*
 MediaStreamError::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return MediaStreamErrorBinding::Wrap(aCx, this, aGivenProto);
+  return MediaStreamError_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 MediaStreamError::GetName(nsAString& aName) const
 {
   aName = mNameString;
 }
 
--- a/dom/media/TextTrack.cpp
+++ b/dom/media/TextTrack.cpp
@@ -80,17 +80,17 @@ TextTrack::SetDefaultSettings()
   mActiveCueList = new TextTrackCueList(ownerWindow);
   mCuePos = 0;
   mDirty = false;
 }
 
 JSObject*
 TextTrack::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return TextTrackBinding::Wrap(aCx, this, aGivenProto);
+  return TextTrack_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 TextTrack::SetMode(TextTrackMode aValue)
 {
   if (mMode != aValue) {
     mMode = aValue;
     if (aValue == TextTrackMode::Disabled) {
--- a/dom/media/TextTrackCue.cpp
+++ b/dom/media/TextTrackCue.cpp
@@ -150,17 +150,17 @@ void
 TextTrackCue::SetTrackElement(HTMLTrackElement* aTrackElement)
 {
   mTrackElement = aTrackElement;
 }
 
 JSObject*
 TextTrackCue::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return VTTCueBinding::Wrap(aCx, this, aGivenProto);
+  return VTTCue_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 TextTrackRegion*
 TextTrackCue::GetRegion()
 {
   return mRegion;
 }
 
--- a/dom/media/TextTrackCueList.cpp
+++ b/dom/media/TextTrackCueList.cpp
@@ -37,17 +37,17 @@ TextTrackCueList::TextTrackCueList(nsISu
 }
 
 TextTrackCueList::~TextTrackCueList()
 {}
 
 JSObject*
 TextTrackCueList::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return TextTrackCueListBinding::Wrap(aCx, this, aGivenProto);
+  return TextTrackCueList_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 TextTrackCue*
 TextTrackCueList::IndexedGetter(uint32_t aIndex, bool& aFound)
 {
   aFound = aIndex < mList.Length();
   if (!aFound) {
     return nullptr;
--- a/dom/media/TextTrackList.cpp
+++ b/dom/media/TextTrackList.cpp
@@ -56,17 +56,17 @@ TextTrackList::GetShowingCues(nsTArray<R
       aCues.AppendElements(cues);
     }
   }
 }
 
 JSObject*
 TextTrackList::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return TextTrackListBinding::Wrap(aCx, this, aGivenProto);
+  return TextTrackList_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 TextTrack*
 TextTrackList::IndexedGetter(uint32_t aIndex, bool& aFound)
 {
   aFound = aIndex < mTextTracks.Length();
   if (!aFound) {
     return nullptr;
--- a/dom/media/TextTrackRegion.cpp
+++ b/dom/media/TextTrackRegion.cpp
@@ -15,17 +15,17 @@ NS_IMPL_CYCLE_COLLECTING_RELEASE(TextTra
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(TextTrackRegion)
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 JSObject*
 TextTrackRegion::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return VTTRegionBinding::Wrap(aCx, this, aGivenProto);
+  return VTTRegion_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 already_AddRefed<TextTrackRegion>
 TextTrackRegion::Constructor(const GlobalObject& aGlobal, ErrorResult& aRv)
 {
   nsCOMPtr<nsPIDOMWindowInner> window = do_QueryInterface(aGlobal.GetAsSupports());
   if (!window) {
     aRv.Throw(NS_ERROR_FAILURE);
--- a/dom/media/VideoPlaybackQuality.cpp
+++ b/dom/media/VideoPlaybackQuality.cpp
@@ -31,17 +31,17 @@ HTMLMediaElement*
 VideoPlaybackQuality::GetParentObject() const
 {
   return mElement;
 }
 
 JSObject*
 VideoPlaybackQuality::WrapObject(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return VideoPlaybackQualityBinding::Wrap(aCx, this, aGivenProto);
+  return VideoPlaybackQuality_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 NS_IMPL_CYCLE_COLLECTION_ROOT_NATIVE(VideoPlaybackQuality, AddRef)
 NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(VideoPlaybackQuality, Release)
 
 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(VideoPlaybackQuality, mElement)
 
 } // namespace dom
--- a/dom/media/VideoStreamTrack.cpp
+++ b/dom/media/VideoStreamTrack.cpp
@@ -12,17 +12,17 @@
 #include "mozilla/dom/VideoStreamTrackBinding.h"
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 VideoStreamTrack::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return VideoStreamTrackBinding::Wrap(aCx, this, aGivenProto);
+  return VideoStreamTrack_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 VideoStreamTrack::AddVideoOutput(MediaStreamVideoSink* aSink)
 {
   GetOwnedStream()->AddVideoOutput(aSink, mTrackID);
 }
 
--- a/dom/media/VideoTrack.cpp
+++ b/dom/media/VideoTrack.cpp
@@ -34,17 +34,17 @@ NS_IMPL_CYCLE_COLLECTION_INHERITED(Video
 NS_IMPL_ADDREF_INHERITED(VideoTrack, MediaTrack)
 NS_IMPL_RELEASE_INHERITED(VideoTrack, MediaTrack)
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(VideoTrack)
 NS_INTERFACE_MAP_END_INHERITING(MediaTrack)
 
 JSObject*
 VideoTrack::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return VideoTrackBinding::Wrap(aCx, this, aGivenProto);
+  return VideoTrack_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void VideoTrack::SetSelected(bool aSelected)
 {
   SetEnabledInternal(aSelected, MediaTrack::DEFAULT);
 }
 
 void
--- a/dom/media/VideoTrackList.cpp
+++ b/dom/media/VideoTrackList.cpp
@@ -8,17 +8,17 @@
 #include "mozilla/dom/VideoTrackListBinding.h"
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 VideoTrackList::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return VideoTrackListBinding::Wrap(aCx, this, aGivenProto);
+  return VideoTrackList_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 VideoTrack*
 VideoTrackList::operator[](uint32_t aIndex)
 {
   MediaTrack* track = MediaTrackList::operator[](aIndex);
   return track->AsVideoTrack();
 }
--- a/dom/media/eme/MediaEncryptedEvent.cpp
+++ b/dom/media/eme/MediaEncryptedEvent.cpp
@@ -44,17 +44,17 @@ MediaEncryptedEvent::~MediaEncryptedEven
 {
   mInitData = nullptr;
   mozilla::DropJSObjects(this);
 }
 
 JSObject*
 MediaEncryptedEvent::WrapObjectInternal(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return MediaEncryptedEventBinding::Wrap(aCx, this, aGivenProto);
+  return MediaEncryptedEvent_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 already_AddRefed<MediaEncryptedEvent>
 MediaEncryptedEvent::Constructor(EventTarget* aOwner)
 {
   RefPtr<MediaEncryptedEvent> e = new MediaEncryptedEvent(aOwner);
   e->InitEvent(NS_LITERAL_STRING("encrypted"), false, false);
   e->SetTrusted(true);
--- a/dom/media/eme/MediaKeyError.cpp
+++ b/dom/media/eme/MediaKeyError.cpp
@@ -26,14 +26,14 @@ uint32_t
 MediaKeyError::SystemCode() const
 {
   return mSystemCode;
 }
 
 JSObject*
 MediaKeyError::WrapObjectInternal(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return MediaKeyErrorBinding::Wrap(aCx, this, aGivenProto);
+  return MediaKeyError_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/media/eme/MediaKeyMessageEvent.cpp
+++ b/dom/media/eme/MediaKeyMessageEvent.cpp
@@ -54,17 +54,17 @@ MediaKeyMessageEvent*
 MediaKeyMessageEvent::AsMediaKeyMessageEvent()
 {
   return this;
 }
 
 JSObject*
 MediaKeyMessageEvent::WrapObjectInternal(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return MediaKeyMessageEventBinding::Wrap(aCx, this, aGivenProto);
+  return MediaKeyMessageEvent_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 already_AddRefed<MediaKeyMessageEvent>
 MediaKeyMessageEvent::Constructor(EventTarget* aOwner,
                                   MediaKeyMessageType aMessageType,
                                   const nsTArray<uint8_t>& aMessage)
 {
   RefPtr<MediaKeyMessageEvent> e = new MediaKeyMessageEvent(aOwner);
--- a/dom/media/eme/MediaKeySession.cpp
+++ b/dom/media/eme/MediaKeySession.cpp
@@ -109,17 +109,17 @@ const nsString&
 MediaKeySession::GetSessionId() const
 {
   return mSessionId;
 }
 
 JSObject*
 MediaKeySession::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return MediaKeySessionBinding::Wrap(aCx, this, aGivenProto);
+  return MediaKeySession_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 double
 MediaKeySession::Expiration() const
 {
   return mExpiration;
 }
 
--- a/dom/media/eme/MediaKeyStatusMap.cpp
+++ b/dom/media/eme/MediaKeyStatusMap.cpp
@@ -29,17 +29,17 @@ MediaKeyStatusMap::MediaKeyStatusMap(nsP
 
 MediaKeyStatusMap::~MediaKeyStatusMap()
 {
 }
 
 JSObject*
 MediaKeyStatusMap::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return MediaKeyStatusMapBinding::Wrap(aCx, this, aGivenProto);
+  return MediaKeyStatusMap_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsPIDOMWindowInner*
 MediaKeyStatusMap::GetParentObject() const
 {
   return mParent;
 }
 
--- a/dom/media/eme/MediaKeySystemAccess.cpp
+++ b/dom/media/eme/MediaKeySystemAccess.cpp
@@ -67,17 +67,17 @@ MediaKeySystemAccess::MediaKeySystemAcce
 
 MediaKeySystemAccess::~MediaKeySystemAccess()
 {
 }
 
 JSObject*
 MediaKeySystemAccess::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return MediaKeySystemAccessBinding::Wrap(aCx, this, aGivenProto);
+  return MediaKeySystemAccess_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsPIDOMWindowInner*
 MediaKeySystemAccess::GetParentObject() const
 {
   return mParent;
 }
 
--- a/dom/media/eme/MediaKeys.cpp
+++ b/dom/media/eme/MediaKeys.cpp
@@ -115,17 +115,17 @@ nsPIDOMWindowInner*
 MediaKeys::GetParentObject() const
 {
   return mParent;
 }
 
 JSObject*
 MediaKeys::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return MediaKeysBinding::Wrap(aCx, this, aGivenProto);
+  return MediaKeys_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 MediaKeys::GetKeySystem(nsString& aOutKeySystem) const
 {
   aOutKeySystem.Assign(mKeySystem);
 }
 
--- a/dom/media/imagecapture/ImageCapture.h
+++ b/dom/media/imagecapture/ImageCapture.h
@@ -50,17 +50,17 @@ public:
   void TakePhoto(ErrorResult& aResult);
 
   // The MediaStream passed into the constructor.
   VideoStreamTrack* GetVideoStreamTrack() const;
 
   // nsWrapperCache member
   JSObject* WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
   {
-    return ImageCaptureBinding::Wrap(aCx, this, aGivenProto);
+    return ImageCapture_Binding::Wrap(aCx, this, aGivenProto);
   }
 
   // ImageCapture class members
   nsPIDOMWindowInner* GetParentObject() { return GetOwner(); }
 
   static already_AddRefed<ImageCapture> Constructor(const GlobalObject& aGlobal,
                                                     VideoStreamTrack& aTrack,
                                                     ErrorResult& aRv);
--- a/dom/media/mediasource/MediaSource.cpp
+++ b/dom/media/mediasource/MediaSource.cpp
@@ -629,17 +629,17 @@ nsPIDOMWindowInner*
 MediaSource::GetParentObject() const
 {
   return GetOwner();
 }
 
 JSObject*
 MediaSource::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return MediaSourceBinding::Wrap(aCx, this, aGivenProto);
+  return MediaSource_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 NS_IMPL_CYCLE_COLLECTION_INHERITED(MediaSource, DOMEventTargetHelper,
                                    mMediaElement,
                                    mSourceBuffers, mActiveSourceBuffers)
 
 NS_IMPL_ADDREF_INHERITED(MediaSource, DOMEventTargetHelper)
 NS_IMPL_RELEASE_INHERITED(MediaSource, DOMEventTargetHelper)
--- a/dom/media/mediasource/SourceBuffer.cpp
+++ b/dom/media/mediasource/SourceBuffer.cpp
@@ -487,17 +487,17 @@ MediaSource*
 SourceBuffer::GetParentObject() const
 {
   return mMediaSource;
 }
 
 JSObject*
 SourceBuffer::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SourceBufferBinding::Wrap(aCx, this, aGivenProto);
+  return SourceBuffer_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 SourceBuffer::DispatchSimpleEvent(const char* aName)
 {
   MOZ_ASSERT(NS_IsMainThread());
   MSE_API("Dispatch event '%s'", aName);
   DispatchTrustedEvent(NS_ConvertUTF8toUTF16(aName));
--- a/dom/media/mediasource/SourceBufferList.cpp
+++ b/dom/media/mediasource/SourceBufferList.cpp
@@ -202,17 +202,17 @@ SourceBufferList::HighestEndTime()
       std::max(sourceBuffer->HighestEndTime(), highestEndTime);
   }
   return highestEndTime;
 }
 
 JSObject*
 SourceBufferList::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SourceBufferListBinding::Wrap(aCx, this, aGivenProto);
+  return SourceBufferList_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 NS_IMPL_CYCLE_COLLECTION_INHERITED(SourceBufferList, DOMEventTargetHelper,
                                    mMediaSource, mSourceBuffers)
 
 NS_IMPL_ADDREF_INHERITED(SourceBufferList, DOMEventTargetHelper)
 NS_IMPL_RELEASE_INHERITED(SourceBufferList, DOMEventTargetHelper)
 
--- a/dom/media/webaudio/AnalyserNode.cpp
+++ b/dom/media/webaudio/AnalyserNode.cpp
@@ -172,17 +172,17 @@ size_t
 AnalyserNode::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const
 {
   return aMallocSizeOf(this) + SizeOfExcludingThis(aMallocSizeOf);
 }
 
 JSObject*
 AnalyserNode::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return AnalyserNodeBinding::Wrap(aCx, this, aGivenProto);
+  return AnalyserNode_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 AnalyserNode::SetFftSize(uint32_t aValue, ErrorResult& aRv)
 {
   // Disallow values that are not a power of 2 and outside the [32,32768] range
   if (aValue < 32 ||
       aValue > MAX_FFT_SIZE ||
--- a/dom/media/webaudio/AudioBuffer.cpp
+++ b/dom/media/webaudio/AudioBuffer.cpp
@@ -262,17 +262,17 @@ AudioBuffer::Create(nsPIDOMWindowInner* 
   buffer->mSharedChannels = std::move(aInitialContents);
 
   return buffer.forget();
 }
 
 JSObject*
 AudioBuffer::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return AudioBufferBinding::Wrap(aCx, this, aGivenProto);
+  return AudioBuffer_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 static void
 CopyChannelDataToFloat(const AudioChunk& aChunk, uint32_t aChannel,
                        uint32_t aSrcOffset, float* aOutput, uint32_t aLength)
 {
   MOZ_ASSERT(aChunk.mVolume == 1.0f);
   if (aChunk.mBufferFormat == AUDIO_FORMAT_FLOAT32) {
--- a/dom/media/webaudio/AudioBufferSourceNode.cpp
+++ b/dom/media/webaudio/AudioBufferSourceNode.cpp
@@ -690,17 +690,17 @@ size_t
 AudioBufferSourceNode::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const
 {
   return aMallocSizeOf(this) + SizeOfExcludingThis(aMallocSizeOf);
 }
 
 JSObject*
 AudioBufferSourceNode::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return AudioBufferSourceNodeBinding::Wrap(aCx, this, aGivenProto);
+  return AudioBufferSourceNode_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 AudioBufferSourceNode::Start(double aWhen, double aOffset,
                              const Optional<double>& aDuration, ErrorResult& aRv)
 {
   if (!WebAudioUtils::IsTimeValid(aWhen) || aOffset < 0 ||
       (aDuration.WasPassed() && !WebAudioUtils::IsTimeValid(aDuration.Value()))) {
--- a/dom/media/webaudio/AudioContext.cpp
+++ b/dom/media/webaudio/AudioContext.cpp
@@ -204,19 +204,19 @@ AudioContext::~AudioContext()
   DisconnectFromWindow();
   UnregisterWeakMemoryReporter(this);
 }
 
 JSObject*
 AudioContext::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
   if (mIsOffline) {
-    return OfflineAudioContextBinding::Wrap(aCx, this, aGivenProto);
+    return OfflineAudioContext_Binding::Wrap(aCx, this, aGivenProto);
   } else {
-    return AudioContextBinding::Wrap(aCx, this, aGivenProto);
+    return AudioContext_Binding::Wrap(aCx, this, aGivenProto);
   }
 }
 
 /* static */ already_AddRefed<AudioContext>
 AudioContext::Constructor(const GlobalObject& aGlobal,
                           const AudioContextOptions& aOptions,
                           ErrorResult& aRv)
 {
--- a/dom/media/webaudio/AudioDestinationNode.cpp
+++ b/dom/media/webaudio/AudioDestinationNode.cpp
@@ -488,17 +488,17 @@ AudioDestinationNode::OfflineShutdown()
 
   MediaStreamGraph::DestroyNonRealtimeInstance(mStream->Graph());
   mOfflineRenderingRef.Drop(this);
 }
 
 JSObject*
 AudioDestinationNode::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return AudioDestinationNodeBinding::Wrap(aCx, this, aGivenProto);
+  return AudioDestinationNode_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 AudioDestinationNode::StartRendering(Promise* aPromise)
 {
   mOfflineRenderingPromise = aPromise;
   mOfflineRenderingRef.Take(this);
   mStream->Graph()->StartNonRealtimeProcessing(mFramesToProduce);
--- a/dom/media/webaudio/AudioListener.cpp
+++ b/dom/media/webaudio/AudioListener.cpp
@@ -26,17 +26,17 @@ AudioListener::AudioListener(AudioContex
   , mSpeedOfSound(343.3) // meters/second
 {
   MOZ_ASSERT(aContext);
 }
 
 JSObject*
 AudioListener::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return AudioListenerBinding::Wrap(aCx, this, aGivenProto);
+  return AudioListener_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 AudioListener::SetOrientation(double aX, double aY, double aZ,
                               double aXUp, double aYUp, double aZUp)
 {
   ThreeDPoint front(aX, aY, aZ);
   // The panning effect and the azimuth and elevation calculation in the Web
--- a/dom/media/webaudio/AudioParam.cpp
+++ b/dom/media/webaudio/AudioParam.cpp
@@ -51,17 +51,17 @@ AudioParam::AudioParam(AudioNode* aNode,
 AudioParam::~AudioParam()
 {
   DisconnectFromGraphAndDestroyStream();
 }
 
 JSObject*
 AudioParam::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return AudioParamBinding::Wrap(aCx, this, aGivenProto);
+  return AudioParam_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 AudioParam::DisconnectFromGraphAndDestroyStream()
 {
   MOZ_ASSERT(mRefCnt.get() > mInputNodes.Length(),
              "Caller should be holding a reference or have called "
              "mRefCnt.stabilizeForDeletion()");
--- a/dom/media/webaudio/AudioParamMap.cpp
+++ b/dom/media/webaudio/AudioParamMap.cpp
@@ -18,13 +18,13 @@ NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(A
 AudioParamMap::AudioParamMap(nsPIDOMWindowInner* aParent) :
   mParent(aParent)
 {
 }
 
 JSObject*
 AudioParamMap::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return AudioParamMapBinding::Wrap(aCx, this, aGivenProto);
+  return AudioParamMap_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/media/webaudio/AudioProcessingEvent.cpp
+++ b/dom/media/webaudio/AudioProcessingEvent.cpp
@@ -32,17 +32,17 @@ AudioProcessingEvent::AudioProcessingEve
 
 AudioProcessingEvent::~AudioProcessingEvent()
 {
 }
 
 JSObject*
 AudioProcessingEvent::WrapObjectInternal(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return AudioProcessingEventBinding::Wrap(aCx, this, aGivenProto);
+  return AudioProcessingEvent_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 already_AddRefed<AudioBuffer>
 AudioProcessingEvent::LazilyCreateBuffer(uint32_t aNumberOfChannels,
                                          ErrorResult& aRv)
 {
   RefPtr<AudioBuffer> buffer =
     AudioBuffer::Create(mNode->Context()->GetOwner(), aNumberOfChannels,
--- a/dom/media/webaudio/AudioScheduledSourceNode.cpp
+++ b/dom/media/webaudio/AudioScheduledSourceNode.cpp
@@ -17,13 +17,13 @@ AudioScheduledSourceNode::AudioScheduled
   : AudioNode(aContext, aChannelCount, aChannelCountMode,
               aChannelInterpretation)
 {}
 
 JSObject*
 AudioScheduledSourceNode::WrapObject(JSContext* aCx,
                                      JS::Handle<JSObject*> aGivenProto)
 {
-  return AudioScheduledSourceNodeBinding::Wrap(aCx, this, aGivenProto);
+  return AudioScheduledSourceNode_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // dom namespace
 } // mozilla namespace
--- a/dom/media/webaudio/BiquadFilterNode.cpp
+++ b/dom/media/webaudio/BiquadFilterNode.cpp
@@ -318,17 +318,17 @@ size_t
 BiquadFilterNode::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const
 {
   return aMallocSizeOf(this) + SizeOfExcludingThis(aMallocSizeOf);
 }
 
 JSObject*
 BiquadFilterNode::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return BiquadFilterNodeBinding::Wrap(aCx, this, aGivenProto);
+  return BiquadFilterNode_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 BiquadFilterNode::SetType(BiquadFilterType aType)
 {
   mType = aType;
   SendInt32ParameterToStream(BiquadFilterNodeEngine::TYPE,
                              static_cast<int32_t>(aType));
--- a/dom/media/webaudio/ChannelMergerNode.cpp
+++ b/dom/media/webaudio/ChannelMergerNode.cpp
@@ -97,13 +97,13 @@ ChannelMergerNode::Create(AudioContext& 
   }
 
   return audioNode.forget();
 }
 
 JSObject*
 ChannelMergerNode::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return ChannelMergerNodeBinding::Wrap(aCx, this, aGivenProto);
+  return ChannelMergerNode_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/media/webaudio/ChannelSplitterNode.cpp
+++ b/dom/media/webaudio/ChannelSplitterNode.cpp
@@ -102,13 +102,13 @@ ChannelSplitterNode::Create(AudioContext
   }
 
   return audioNode.forget();
 }
 
 JSObject*
 ChannelSplitterNode::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return ChannelSplitterNodeBinding::Wrap(aCx, this, aGivenProto);
+  return ChannelSplitterNode_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/media/webaudio/ConstantSourceNode.cpp
+++ b/dom/media/webaudio/ConstantSourceNode.cpp
@@ -178,17 +178,17 @@ size_t
 ConstantSourceNode::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const
 {
   return aMallocSizeOf(this) + SizeOfExcludingThis(aMallocSizeOf);
 }
 
 JSObject*
 ConstantSourceNode::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return ConstantSourceNodeBinding::Wrap(aCx, this, aGivenProto);
+  return ConstantSourceNode_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 already_AddRefed<ConstantSourceNode>
 ConstantSourceNode::Constructor(const GlobalObject& aGlobal,
                                 AudioContext& aContext,
                                 const ConstantSourceOptions& aOptions,
                                 ErrorResult& aRv)
 {
--- a/dom/media/webaudio/ConvolverNode.cpp
+++ b/dom/media/webaudio/ConvolverNode.cpp
@@ -227,17 +227,17 @@ size_t
 ConvolverNode::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const
 {
   return aMallocSizeOf(this) + SizeOfExcludingThis(aMallocSizeOf);
 }
 
 JSObject*
 ConvolverNode::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return ConvolverNodeBinding::Wrap(aCx, this, aGivenProto);
+  return ConvolverNode_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 ConvolverNode::SetBuffer(JSContext* aCx, AudioBuffer* aBuffer, ErrorResult& aRv)
 {
   if (aBuffer) {
     switch (aBuffer->NumberOfChannels()) {
     case 1:
--- a/dom/media/webaudio/DelayNode.cpp
+++ b/dom/media/webaudio/DelayNode.cpp
@@ -243,13 +243,13 @@ size_t
 DelayNode::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const
 {
   return aMallocSizeOf(this) + SizeOfExcludingThis(aMallocSizeOf);
 }
 
 JSObject*
 DelayNode::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return DelayNodeBinding::Wrap(aCx, this, aGivenProto);
+  return DelayNode_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/media/webaudio/DynamicsCompressorNode.cpp
+++ b/dom/media/webaudio/DynamicsCompressorNode.cpp
@@ -248,13 +248,13 @@ size_t
 DynamicsCompressorNode::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const
 {
   return aMallocSizeOf(this) + SizeOfExcludingThis(aMallocSizeOf);
 }
 
 JSObject*
 DynamicsCompressorNode::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return DynamicsCompressorNodeBinding::Wrap(aCx, this, aGivenProto);
+  return DynamicsCompressorNode_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/media/webaudio/GainNode.cpp
+++ b/dom/media/webaudio/GainNode.cpp
@@ -160,13 +160,13 @@ size_t
 GainNode::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const
 {
   return aMallocSizeOf(this) + SizeOfExcludingThis(aMallocSizeOf);
 }
 
 JSObject*
 GainNode::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return GainNodeBinding::Wrap(aCx, this, aGivenProto);
+  return GainNode_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/media/webaudio/IIRFilterNode.cpp
+++ b/dom/media/webaudio/IIRFilterNode.cpp
@@ -221,17 +221,17 @@ size_t
 IIRFilterNode::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const
 {
   return aMallocSizeOf(this) + SizeOfExcludingThis(aMallocSizeOf);
 }
 
 JSObject*
 IIRFilterNode::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return IIRFilterNodeBinding::Wrap(aCx, this, aGivenProto);
+  return IIRFilterNode_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 IIRFilterNode::GetFrequencyResponse(const Float32Array& aFrequencyHz,
                                     const Float32Array& aMagResponse,
                                     const Float32Array& aPhaseResponse)
 {
   aFrequencyHz.ComputeLengthAndData();
--- a/dom/media/webaudio/MediaElementAudioSourceNode.cpp
+++ b/dom/media/webaudio/MediaElementAudioSourceNode.cpp
@@ -47,13 +47,13 @@ MediaElementAudioSourceNode::Create(Audi
   }
 
   return node.forget();
 }
 
 JSObject*
 MediaElementAudioSourceNode::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return MediaElementAudioSourceNodeBinding::Wrap(aCx, this, aGivenProto);
+  return MediaElementAudioSourceNode_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/media/webaudio/MediaStreamAudioDestinationNode.cpp
+++ b/dom/media/webaudio/MediaStreamAudioDestinationNode.cpp
@@ -159,13 +159,13 @@ MediaStreamAudioDestinationNode::Destroy
     mPort->Destroy();
     mPort = nullptr;
   }
 }
 
 JSObject*
 MediaStreamAudioDestinationNode::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return MediaStreamAudioDestinationNodeBinding::Wrap(aCx, this, aGivenProto);
+  return MediaStreamAudioDestinationNode_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/media/webaudio/MediaStreamAudioSourceNode.cpp
+++ b/dom/media/webaudio/MediaStreamAudioSourceNode.cpp
@@ -266,13 +266,13 @@ MediaStreamAudioSourceNode::DestroyMedia
     mInputPort = nullptr;
   }
   AudioNode::DestroyMediaStream();
 }
 
 JSObject*
 MediaStreamAudioSourceNode::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return MediaStreamAudioSourceNodeBinding::Wrap(aCx, this, aGivenProto);
+  return MediaStreamAudioSourceNode_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/media/webaudio/OscillatorNode.cpp
+++ b/dom/media/webaudio/OscillatorNode.cpp
@@ -464,17 +464,17 @@ size_t
 OscillatorNode::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const
 {
   return aMallocSizeOf(this) + SizeOfExcludingThis(aMallocSizeOf);
 }
 
 JSObject*
 OscillatorNode::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return OscillatorNodeBinding::Wrap(aCx, this, aGivenProto);
+  return OscillatorNode_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 OscillatorNode::DestroyMediaStream()
 {
   if (mStream) {
     mStream->RemoveMainThreadListener(this);
   }
--- a/dom/media/webaudio/PannerNode.cpp
+++ b/dom/media/webaudio/PannerNode.cpp
@@ -386,17 +386,17 @@ size_t
 PannerNode::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const
 {
   return aMallocSizeOf(this) + SizeOfExcludingThis(aMallocSizeOf);
 }
 
 JSObject*
 PannerNode::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return PannerNodeBinding::Wrap(aCx, this, aGivenProto);
+  return PannerNode_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void PannerNode::DestroyMediaStream()
 {
   if (Context()) {
     Context()->UnregisterPannerNode(this);
   }
   AudioNode::DestroyMediaStream();
--- a/dom/media/webaudio/PeriodicWave.cpp
+++ b/dom/media/webaudio/PeriodicWave.cpp
@@ -117,13 +117,13 @@ size_t
 PeriodicWave::SizeOfIncludingThisIfNotShared(MallocSizeOf aMallocSizeOf) const
 {
   return aMallocSizeOf(this) + SizeOfExcludingThisIfNotShared(aMallocSizeOf);
 }
 
 JSObject*
 PeriodicWave::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return PeriodicWaveBinding::Wrap(aCx, this, aGivenProto);
+  return PeriodicWave_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/media/webaudio/ScriptProcessorNode.cpp
+++ b/dom/media/webaudio/ScriptProcessorNode.cpp
@@ -532,17 +532,17 @@ ScriptProcessorNode::EventListenerRemove
   if (aType == nsGkAtoms::onaudioprocess) {
     UpdateConnectedStatus();
   }
 }
 
 JSObject*
 ScriptProcessorNode::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return ScriptProcessorNodeBinding::Wrap(aCx, this, aGivenProto);
+  return ScriptProcessorNode_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 ScriptProcessorNode::UpdateConnectedStatus()
 {
   bool isConnected =
     mHasPhantomInput || !(OutputNodes().IsEmpty() && OutputParams().IsEmpty() &&
                           InputNodes().IsEmpty());
--- a/dom/media/webaudio/StereoPannerNode.cpp
+++ b/dom/media/webaudio/StereoPannerNode.cpp
@@ -215,13 +215,13 @@ size_t
 StereoPannerNode::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const
 {
   return aMallocSizeOf(this) + SizeOfExcludingThis(aMallocSizeOf);
 }
 
 JSObject*
 StereoPannerNode::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return StereoPannerNodeBinding::Wrap(aCx, this, aGivenProto);
+  return StereoPannerNode_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/media/webaudio/WaveShaperNode.cpp
+++ b/dom/media/webaudio/WaveShaperNode.cpp
@@ -345,24 +345,24 @@ WaveShaperNode::Create(AudioContext& aAu
 
   audioNode->SetOversample(aOptions.mOversample);
   return audioNode.forget();
 }
 
 JSObject*
 WaveShaperNode::WrapObject(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return WaveShaperNodeBinding::Wrap(aCx, this, aGivenProto);
+  return WaveShaperNode_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 WaveShaperNode::SetCurve(const Nullable<Float32Array>& aCurve, ErrorResult& aRv)
 {
   // Let's purge the cached value for the curve attribute.
-  WaveShaperNodeBinding::ClearCachedCurveValue(this);
+  WaveShaperNode_Binding::ClearCachedCurveValue(this);
 
   if (aCurve.IsNull()) {
     CleanCurveInternal();
     return;
   }
 
   const Float32Array& floats = aCurve.Value();
 
--- a/dom/media/webrtc/RTCCertificate.cpp
+++ b/dom/media/webrtc/RTCCertificate.cpp
@@ -316,17 +316,17 @@ RTCCertificate::CreateDtlsIdentity() con
   UniqueCERTCertificate cert(CERT_DupCertificate(mCertificate.get()));
   RefPtr<DtlsIdentity> id = new DtlsIdentity(std::move(key), std::move(cert), mAuthType);
   return id;
 }
 
 JSObject*
 RTCCertificate::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return RTCCertificateBinding::Wrap(aCx, this, aGivenProto);
+  return RTCCertificate_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 bool
 RTCCertificate::WritePrivateKey(JSStructuredCloneWriter* aWriter) const
 {
   JsonWebKey jwk;
   nsresult rv = CryptoKey::PrivateKeyToJwk(mPrivateKey.get(), jwk);
   if (NS_FAILED(rv)) {
--- a/dom/media/webrtc/RTCIdentityProviderRegistrar.cpp
+++ b/dom/media/webrtc/RTCIdentityProviderRegistrar.cpp
@@ -39,17 +39,17 @@ nsIGlobalObject*
 RTCIdentityProviderRegistrar::GetParentObject() const
 {
   return mGlobal;
 }
 
 JSObject*
 RTCIdentityProviderRegistrar::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return RTCIdentityProviderRegistrarBinding::Wrap(aCx, this, aGivenProto);
+  return RTCIdentityProviderRegistrar_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 RTCIdentityProviderRegistrar::Register(const RTCIdentityProvider& aIdp)
 {
   mGenerateAssertionCallback = aIdp.mGenerateAssertion;
   mValidateAssertionCallback = aIdp.mValidateAssertion;
 }
--- a/dom/media/webspeech/recognition/SpeechGrammar.cpp
+++ b/dom/media/webspeech/recognition/SpeechGrammar.cpp
@@ -41,17 +41,17 @@ nsISupports*
 SpeechGrammar::GetParentObject() const
 {
   return mParent;
 }
 
 JSObject*
 SpeechGrammar::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SpeechGrammarBinding::Wrap(aCx, this, aGivenProto);
+  return SpeechGrammar_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 SpeechGrammar::GetSrc(nsString& aRetVal, ErrorResult& aRv) const
 {
   aRetVal = mSrc;
 }
 
--- a/dom/media/webspeech/recognition/SpeechGrammarList.cpp
+++ b/dom/media/webspeech/recognition/SpeechGrammarList.cpp
@@ -38,17 +38,17 @@ SpeechGrammarList::Constructor(const Glo
   RefPtr<SpeechGrammarList> speechGrammarList =
     new SpeechGrammarList(aGlobal.GetAsSupports());
   return speechGrammarList.forget();
 }
 
 JSObject*
 SpeechGrammarList::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SpeechGrammarListBinding::Wrap(aCx, this, aGivenProto);
+  return SpeechGrammarList_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsISupports*
 SpeechGrammarList::GetParentObject() const
 {
   return mParent;
 }
 
--- a/dom/media/webspeech/recognition/SpeechRecognition.cpp
+++ b/dom/media/webspeech/recognition/SpeechRecognition.cpp
@@ -151,17 +151,17 @@ SpeechRecognition::SetState(FSMState sta
 {
   mCurrentState = state;
   SR_LOG("Transitioned to state %s", GetName(mCurrentState));
 }
 
 JSObject*
 SpeechRecognition::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SpeechRecognitionBinding::Wrap(aCx, this, aGivenProto);
+  return SpeechRecognition_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 bool
 SpeechRecognition::IsAuthorized(JSContext* aCx, JSObject* aGlobal)
 {
   nsCOMPtr<nsIPrincipal> principal = nsContentUtils::ObjectPrincipal(aGlobal);
 
   nsresult rv;
--- a/dom/media/webspeech/recognition/SpeechRecognitionAlternative.cpp
+++ b/dom/media/webspeech/recognition/SpeechRecognitionAlternative.cpp
@@ -29,17 +29,17 @@ SpeechRecognitionAlternative::SpeechReco
 
 SpeechRecognitionAlternative::~SpeechRecognitionAlternative()
 {
 }
 
 JSObject*
 SpeechRecognitionAlternative::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SpeechRecognitionAlternativeBinding::Wrap(aCx, this, aGivenProto);
+  return SpeechRecognitionAlternative_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsISupports*
 SpeechRecognitionAlternative::GetParentObject() const
 {
   return static_cast<DOMEventTargetHelper*>(mParent.get());
 }
 
--- a/dom/media/webspeech/recognition/SpeechRecognitionResult.cpp
+++ b/dom/media/webspeech/recognition/SpeechRecognitionResult.cpp
@@ -27,17 +27,17 @@ SpeechRecognitionResult::SpeechRecogniti
 
 SpeechRecognitionResult::~SpeechRecognitionResult()
 {
 }
 
 JSObject*
 SpeechRecognitionResult::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SpeechRecognitionResultBinding::Wrap(aCx, this, aGivenProto);
+  return SpeechRecognitionResult_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsISupports*
 SpeechRecognitionResult::GetParentObject() const
 {
   return static_cast<DOMEventTargetHelper*>(mParent.get());
 }
 
--- a/dom/media/webspeech/recognition/SpeechRecognitionResultList.cpp
+++ b/dom/media/webspeech/recognition/SpeechRecognitionResultList.cpp
@@ -34,17 +34,17 @@ nsISupports*
 SpeechRecognitionResultList::GetParentObject() const
 {
   return static_cast<DOMEventTargetHelper*>(mParent.get());
 }
 
 JSObject*
 SpeechRecognitionResultList::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SpeechRecognitionResultListBinding::Wrap(aCx, this, aGivenProto);
+  return SpeechRecognitionResultList_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 already_AddRefed<SpeechRecognitionResult>
 SpeechRecognitionResultList::IndexedGetter(uint32_t aIndex, bool& aPresent)
 {
   if (aIndex >= Length()) {
     aPresent = false;
     return nullptr;
--- a/dom/media/webspeech/synth/SpeechSynthesis.cpp
+++ b/dom/media/webspeech/synth/SpeechSynthesis.cpp
@@ -73,17 +73,17 @@ SpeechSynthesis::SpeechSynthesis(nsPIDOM
 
 SpeechSynthesis::~SpeechSynthesis()
 {
 }
 
 JSObject*
 SpeechSynthesis::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SpeechSynthesisBinding::Wrap(aCx, this, aGivenProto);
+  return SpeechSynthesis_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 bool
 SpeechSynthesis::Pending() const
 {
   switch (mSpeechQueue.Length()) {
   case 0:
     return false;
--- a/dom/media/webspeech/synth/SpeechSynthesisUtterance.cpp
+++ b/dom/media/webspeech/synth/SpeechSynthesisUtterance.cpp
@@ -39,17 +39,17 @@ SpeechSynthesisUtterance::SpeechSynthesi
 {
 }
 
 SpeechSynthesisUtterance::~SpeechSynthesisUtterance() {}
 
 JSObject*
 SpeechSynthesisUtterance::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SpeechSynthesisUtteranceBinding::Wrap(aCx, this, aGivenProto);
+  return SpeechSynthesisUtterance_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsISupports*
 SpeechSynthesisUtterance::GetParentObject() const
 {
   return GetOwner();
 }
 
--- a/dom/media/webspeech/synth/SpeechSynthesisVoice.cpp
+++ b/dom/media/webspeech/synth/SpeechSynthesisVoice.cpp
@@ -28,17 +28,17 @@ SpeechSynthesisVoice::SpeechSynthesisVoi
 
 SpeechSynthesisVoice::~SpeechSynthesisVoice()
 {
 }
 
 JSObject*
 SpeechSynthesisVoice::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SpeechSynthesisVoiceBinding::Wrap(aCx, this, aGivenProto);
+  return SpeechSynthesisVoice_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsISupports*
 SpeechSynthesisVoice::GetParentObject() const
 {
   return mParent;
 }
 
--- a/dom/messagechannel/MessageChannel.cpp
+++ b/dom/messagechannel/MessageChannel.cpp
@@ -36,17 +36,17 @@ MessageChannel::MessageChannel(nsIGlobal
 
 MessageChannel::~MessageChannel()
 {
 }
 
 JSObject*
 MessageChannel::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return MessageChannelBinding::Wrap(aCx, this, aGivenProto);
+  return MessageChannel_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 /* static */ already_AddRefed<MessageChannel>
 MessageChannel::Constructor(const GlobalObject& aGlobal, ErrorResult& aRv)
 {
   nsCOMPtr<nsIGlobalObject> global = do_QueryInterface(aGlobal.GetAsSupports());
   return Constructor(global, aRv);
 }
--- a/dom/messagechannel/MessagePort.cpp
+++ b/dom/messagechannel/MessagePort.cpp
@@ -313,17 +313,17 @@ MessagePort::Initialize(const nsID& aUUI
       obs->AddObserver(this, "inner-window-destroyed", false);
     }
   }
 }
 
 JSObject*
 MessagePort::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return MessagePortBinding::Wrap(aCx, this, aGivenProto);
+  return MessagePort_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 MessagePort::PostMessage(JSContext* aCx, JS::Handle<JS::Value> aMessage,
                          const Sequence<JSObject*>& aTransferable,
                          ErrorResult& aRv)
 {
   // We *must* clone the data here, or the JS::Value could be modified
--- a/dom/midi/MIDIAccess.cpp
+++ b/dom/midi/MIDIAccess.cpp
@@ -93,49 +93,49 @@ MIDIAccess::FireConnectionEvent(MIDIPort
   MOZ_ASSERT(aPort);
   MIDIConnectionEventInit init;
   init.mPort = aPort;
   nsAutoString id;
   aPort->GetId(id);
   ErrorResult rv;
   if (aPort->State() == MIDIPortDeviceState::Disconnected) {
     if (aPort->Type() == MIDIPortType::Input &&
-        MIDIInputMapBinding::MaplikeHelpers::Has(mInputMap, id, rv)) {
-      MIDIInputMapBinding::MaplikeHelpers::Delete(mInputMap, id, rv);
+        MIDIInputMap_Binding::MaplikeHelpers::Has(mInputMap, id, rv)) {
+      MIDIInputMap_Binding::MaplikeHelpers::Delete(mInputMap, id, rv);
     } else if (aPort->Type() == MIDIPortType::Output &&
-               MIDIOutputMapBinding::MaplikeHelpers::Has(mOutputMap, id, rv)) {
-      MIDIOutputMapBinding::MaplikeHelpers::Delete(mOutputMap, id, rv);
+               MIDIOutputMap_Binding::MaplikeHelpers::Has(mOutputMap, id, rv)) {
+      MIDIOutputMap_Binding::MaplikeHelpers::Delete(mOutputMap, id, rv);
     }
     // Check to make sure Has()/Delete() calls haven't failed.
     if(NS_WARN_IF(rv.Failed())) {
       return;
     }
   } else {
     // If we receive an event from a port that is not in one of our port maps,
     // this means a port that was disconnected has been reconnected, with the port
     // owner holding the object during that time, and we should add that port
     // object to our maps again.
     if (aPort->Type() == MIDIPortType::Input &&
-        !MIDIInputMapBinding::MaplikeHelpers::Has(mInputMap, id, rv)) {
+        !MIDIInputMap_Binding::MaplikeHelpers::Has(mInputMap, id, rv)) {
       if(NS_WARN_IF(rv.Failed())) {
         return;
       }
-      MIDIInputMapBinding::MaplikeHelpers::Set(mInputMap,
+      MIDIInputMap_Binding::MaplikeHelpers::Set(mInputMap,
                                                id,
                                                *(static_cast<MIDIInput*>(aPort)),
                                                rv);
       if(NS_WARN_IF(rv.Failed())) {
         return;
       }
     } else if (aPort->Type() == MIDIPortType::Output &&
-               !MIDIOutputMapBinding::MaplikeHelpers::Has(mOutputMap, id, rv)) {
+               !MIDIOutputMap_Binding::MaplikeHelpers::Has(mOutputMap, id, rv)) {
       if(NS_WARN_IF(rv.Failed())) {
         return;
       }
-      MIDIOutputMapBinding::MaplikeHelpers::Set(mOutputMap,
+      MIDIOutputMap_Binding::MaplikeHelpers::Set(mOutputMap,
                                                 id,
                                                 *(static_cast<MIDIOutput*>(aPort)),
                                                 rv);
       if(NS_WARN_IF(rv.Failed())) {
         return;
       }
     }
   }
@@ -146,45 +146,45 @@ MIDIAccess::FireConnectionEvent(MIDIPort
 
 void
 MIDIAccess::MaybeCreateMIDIPort(const MIDIPortInfo& aInfo, ErrorResult& aRv)
 {
   nsAutoString id(aInfo.id());
   MIDIPortType type = static_cast<MIDIPortType>(aInfo.type());
   RefPtr<MIDIPort> port;
   if (type == MIDIPortType::Input) {
-    bool hasPort = MIDIInputMapBinding::MaplikeHelpers::Has(mInputMap, id, aRv);
+    bool hasPort = MIDIInputMap_Binding::MaplikeHelpers::Has(mInputMap, id, aRv);
     if (hasPort || NS_WARN_IF(aRv.Failed())) {
       // We already have the port in our map.
       return;
     }
     port = MIDIInput::Create(GetOwner(), this, aInfo, mSysexEnabled);
     if (NS_WARN_IF(!port)) {
       aRv.Throw(NS_ERROR_FAILURE);
       return;
     }
-    MIDIInputMapBinding::MaplikeHelpers::Set(mInputMap,
+    MIDIInputMap_Binding::MaplikeHelpers::Set(mInputMap,
                                              id,
                                              *(static_cast<MIDIInput*>(port.get())),
                                              aRv);
     if (NS_WARN_IF(aRv.Failed())) {
       return;
     }
   } else if (type == MIDIPortType::Output) {
-    bool hasPort = MIDIOutputMapBinding::MaplikeHelpers::Has(mOutputMap, id, aRv);
+    bool hasPort = MIDIOutputMap_Binding::MaplikeHelpers::Has(mOutputMap, id, aRv);
     if (hasPort || NS_WARN_IF(aRv.Failed())) {
       // We already have the port in our map.
       return;
     }
     port = MIDIOutput::Create(GetOwner(), this, aInfo, mSysexEnabled);
     if (NS_WARN_IF(!port)) {
       aRv.Throw(NS_ERROR_FAILURE);
       return;
     }
-    MIDIOutputMapBinding::MaplikeHelpers::Set(mOutputMap,
+    MIDIOutputMap_Binding::MaplikeHelpers::Set(mOutputMap,
                                               id,
                                               *(static_cast<MIDIOutput*>(port.get())),
                                               aRv);
     if (NS_WARN_IF(aRv.Failed())) {
       return;
     }
   } else {
     // If we hit this, then we have some port that is neither input nor output.
@@ -226,17 +226,17 @@ MIDIAccess::Notify(const MIDIPortList& a
   }
   mAccessPromise->MaybeResolve(this);
   mAccessPromise = nullptr;
 }
 
 JSObject*
 MIDIAccess::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return MIDIAccessBinding::Wrap(aCx, this, aGivenProto);
+  return MIDIAccess_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 MIDIAccess::RemovePortListener(MIDIAccessDestructionObserver* aObs)
 {
   mDestructionObservers.RemoveObserver(aObs);
 }
 
--- a/dom/midi/MIDIInput.cpp
+++ b/dom/midi/MIDIInput.cpp
@@ -30,17 +30,17 @@ MIDIInput::Create(nsPIDOMWindowInner* aW
     return nullptr;
   }
   return port;
 }
 
 JSObject*
 MIDIInput::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return MIDIInputBinding::Wrap(aCx, this, aGivenProto);
+  return MIDIInput_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 MIDIInput::Receive(const nsTArray<MIDIMessage>& aMsgs)
 {
   nsCOMPtr<nsIDocument> doc = GetOwner() ? GetOwner()->GetDoc() : nullptr;
   if (!doc) {
     NS_WARNING("No document available to send MIDIMessageEvent to!");
--- a/dom/midi/MIDIInputMap.cpp
+++ b/dom/midi/MIDIInputMap.cpp
@@ -23,13 +23,13 @@ NS_INTERFACE_MAP_END
 MIDIInputMap::MIDIInputMap(nsPIDOMWindowInner* aParent) :
   mParent(aParent)
 {
 }
 
 JSObject*
 MIDIInputMap::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return MIDIInputMapBinding::Wrap(aCx, this, aGivenProto);
+  return MIDIInputMap_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/midi/MIDIMessageEvent.cpp
+++ b/dom/midi/MIDIMessageEvent.cpp
@@ -48,17 +48,17 @@ MIDIMessageEvent::~MIDIMessageEvent()
 {
   mData = nullptr;
   mozilla::DropJSObjects(this);
 }
 
 JSObject*
 MIDIMessageEvent::WrapObjectInternal(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return MIDIMessageEventBinding::Wrap(aCx, this, aGivenProto);
+  return MIDIMessageEvent_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 MIDIMessageEvent*
 MIDIMessageEvent::AsMIDIMessageEvent()
 {
   return this;
 }
 
--- a/dom/midi/MIDIOutput.cpp
+++ b/dom/midi/MIDIOutput.cpp
@@ -33,17 +33,17 @@ MIDIOutput::Create(nsPIDOMWindowInner* a
     return nullptr;
   }
   return port;
 }
 
 JSObject*
 MIDIOutput::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return MIDIOutputBinding::Wrap(aCx, this, aGivenProto);
+  return MIDIOutput_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 MIDIOutput::Send(const Sequence<uint8_t>& aData, const Optional<double>& aTimestamp, ErrorResult& aRv)
 {
   if (mPort->DeviceState() == MIDIPortDeviceState::Disconnected) {
     aRv.Throw(NS_ERROR_DOM_INVALID_STATE_ERR);
     return;
--- a/dom/midi/MIDIOutputMap.cpp
+++ b/dom/midi/MIDIOutputMap.cpp
@@ -23,13 +23,13 @@ NS_INTERFACE_MAP_END
 MIDIOutputMap::MIDIOutputMap(nsPIDOMWindowInner* aParent) :
   mParent(aParent)
 {
 }
 
 JSObject*
 MIDIOutputMap::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return MIDIOutputMapBinding::Wrap(aCx, this, aGivenProto);
+  return MIDIOutputMap_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/midi/MIDIPort.cpp
+++ b/dom/midi/MIDIPort.cpp
@@ -80,17 +80,17 @@ void
 MIDIPort::UnsetIPCPort()
 {
   mPort = nullptr;
 }
 
 JSObject*
 MIDIPort::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return MIDIPortBinding::Wrap(aCx, this, aGivenProto);
+  return MIDIPort_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 MIDIPort::GetId(nsString& aRetVal) const
 {
   MOZ_ASSERT(mPort);
   aRetVal = mPort->MIDIPortInterface::Id();
 }
--- a/dom/network/Connection.cpp
+++ b/dom/network/Connection.cpp
@@ -77,17 +77,17 @@ Connection::GetDhcpGateway(uint32_t* aGW
 
   *aGW = mDHCPGateway;
   return NS_OK;
 }
 
 JSObject*
 Connection::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return NetworkInformationBinding::Wrap(aCx, this, aGivenProto);
+  return NetworkInformation_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 Connection::Update(ConnectionType aType, bool aIsWifi, uint32_t aDHCPGateway,
                    bool aNotify)
 {
   NS_ASSERT_OWNINGTHREAD(Connection);
 
--- a/dom/network/TCPServerSocket.cpp
+++ b/dom/network/TCPServerSocket.cpp
@@ -183,10 +183,10 @@ void
 TCPServerSocket::SetServerBridgeParent(TCPServerSocketParent* aBridgeParent)
 {
   mServerBridgeParent = aBridgeParent;
 }
 
 JSObject*
 TCPServerSocket::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return TCPServerSocketBinding::Wrap(aCx, this, aGivenProto);
+  return TCPServerSocket_Binding::Wrap(aCx, this, aGivenProto);
 }
--- a/dom/network/TCPSocket.cpp
+++ b/dom/network/TCPSocket.cpp
@@ -85,17 +85,17 @@ LegacyMozTCPSocket::Listen(uint16_t aPor
   return TCPServerSocket::Constructor(globalObj, aPort, aOptions, aBacklog, aRv);
 }
 
 bool
 LegacyMozTCPSocket::WrapObject(JSContext* aCx,
                                JS::Handle<JSObject*> aGivenProto,
                                JS::MutableHandle<JSObject*> aReflector)
 {
-  return LegacyMozTCPSocketBinding::Wrap(aCx, this, aGivenProto, aReflector);
+  return LegacyMozTCPSocket_Binding::Wrap(aCx, this, aGivenProto, aReflector);
 }
 
 NS_IMPL_CYCLE_COLLECTION_CLASS(TCPSocket)
 
 NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN_INHERITED(TCPSocket,
                                                DOMEventTargetHelper)
 NS_IMPL_CYCLE_COLLECTION_TRACE_END
 
@@ -563,17 +563,17 @@ TCPSocket::FireDataEvent(JSContext* aCx,
   event->SetTrusted(true);
   DispatchEvent(*event);
   return NS_OK;
 }
 
 JSObject*
 TCPSocket::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return TCPSocketBinding::Wrap(aCx, this, aGivenProto);
+  return TCPSocket_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 TCPSocket::GetHost(nsAString& aHost)
 {
   aHost.Assign(mHost);
 }
 
--- a/dom/network/UDPSocket.cpp
+++ b/dom/network/UDPSocket.cpp
@@ -133,17 +133,17 @@ UDPSocket::UDPSocket(nsPIDOMWindowInner*
 UDPSocket::~UDPSocket()
 {
   CloseWithReason(NS_OK);
 }
 
 JSObject*
 UDPSocket::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return UDPSocketBinding::Wrap(aCx, this, aGivenProto);
+  return UDPSocket_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 UDPSocket::DisconnectFromOwner()
 {
   DOMEventTargetHelper::DisconnectFromOwner();
   CloseWithReason(NS_OK);
 }
--- a/dom/notification/Notification.cpp
+++ b/dom/notification/Notification.cpp
@@ -2193,17 +2193,17 @@ Notification::WorkerGet(WorkerPrivate* a
   // ServiceWorkerRegistration::GetNotifications, we can assert dispatch.
   MOZ_ALWAYS_SUCCEEDS(aWorkerPrivate->DispatchToMainThread(r.forget()));
   return p.forget();
 }
 
 JSObject*
 Notification::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return mozilla::dom::NotificationBinding::Wrap(aCx, this, aGivenProto);
+  return mozilla::dom::Notification_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 Notification::Close()
 {
   AssertIsOnTargetThread();
   auto ref = MakeUnique<NotificationRef>(this);
   if (!ref->Initialized()) {
--- a/dom/notification/NotificationEvent.h
+++ b/dom/notification/NotificationEvent.h
@@ -26,17 +26,17 @@ protected:
   {}
 
 public:
   NS_DECL_ISUPPORTS_INHERITED
   NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(NotificationEvent, ExtendableEvent)
 
   virtual JSObject* WrapObjectInternal(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
   {
-    return NotificationEventBinding::Wrap(aCx, this, aGivenProto);
+    return NotificationEvent_Binding::Wrap(aCx, this, aGivenProto);
   }
 
   static already_AddRefed<NotificationEvent>
   Constructor(mozilla::dom::EventTarget* aOwner,
               const nsAString& aType,
               const NotificationEventInit& aOptions,
               ErrorResult& aRv)
   {
--- a/dom/offline/nsDOMOfflineResourceList.cpp
+++ b/dom/offline/nsDOMOfflineResourceList.cpp
@@ -90,17 +90,17 @@ nsDOMOfflineResourceList::nsDOMOfflineRe
 nsDOMOfflineResourceList::~nsDOMOfflineResourceList()
 {
   ClearCachedKeys();
 }
 
 JSObject*
 nsDOMOfflineResourceList::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return OfflineResourceListBinding::Wrap(aCx, this, aGivenProto);
+  return OfflineResourceList_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsresult
 nsDOMOfflineResourceList::Init()
 {
   if (mInitialized) {
     return NS_OK;
   }
--- a/dom/payments/PaymentAddress.cpp
+++ b/dom/payments/PaymentAddress.cpp
@@ -115,14 +115,14 @@ PaymentAddress::GetPhone(nsAString& aRet
 
 PaymentAddress::~PaymentAddress()
 {
 }
 
 JSObject*
 PaymentAddress::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return PaymentAddressBinding::Wrap(aCx, this, aGivenProto);
+  return PaymentAddress_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/payments/PaymentRequest.cpp
+++ b/dom/payments/PaymentRequest.cpp
@@ -1046,13 +1046,13 @@ PaymentRequest::RejectedCallback(JSConte
 
 PaymentRequest::~PaymentRequest()
 {
 }
 
 JSObject*
 PaymentRequest::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return PaymentRequestBinding::Wrap(aCx, this, aGivenProto);
+  return PaymentRequest_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/payments/PaymentRequestUpdateEvent.cpp
+++ b/dom/payments/PaymentRequestUpdateEvent.cpp
@@ -135,14 +135,14 @@ PaymentRequestUpdateEvent::SetRequest(Pa
 PaymentRequestUpdateEvent::~PaymentRequestUpdateEvent()
 {
 }
 
 JSObject*
 PaymentRequestUpdateEvent::WrapObjectInternal(JSContext* aCx,
                                               JS::Handle<JSObject*> aGivenProto)
 {
-  return PaymentRequestUpdateEventBinding::Wrap(aCx, this, aGivenProto);
+  return PaymentRequestUpdateEvent_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/payments/PaymentResponse.cpp
+++ b/dom/payments/PaymentResponse.cpp
@@ -53,17 +53,17 @@ PaymentResponse::PaymentResponse(nsPIDOM
 
 PaymentResponse::~PaymentResponse()
 {
 }
 
 JSObject*
 PaymentResponse::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return PaymentResponseBinding::Wrap(aCx, this, aGivenProto);
+  return PaymentResponse_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 PaymentResponse::GetRequestId(nsString& aRetVal) const
 {
   aRetVal = mRequestId;
 }
 
--- a/dom/performance/Performance.cpp
+++ b/dom/performance/Performance.cpp
@@ -125,17 +125,17 @@ Performance::TimeOrigin()
 
   // Time Origin is an absolute timestamp, so we supply a 0 context mix-in
   return nsRFPService::ReduceTimePrecisionAsMSecs(rawTimeOrigin, 0);
 }
 
 JSObject*
 Performance::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return PerformanceBinding::Wrap(aCx, this, aGivenProto);
+  return Performance_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 Performance::GetEntries(nsTArray<RefPtr<PerformanceEntry>>& aRetval)
 {
   // We return an empty list when 'privacy.resistFingerprinting' is on.
   if (nsContentUtils::ShouldResistFingerprinting()) {
     aRetval.Clear();
--- a/dom/performance/PerformanceEntry.cpp
+++ b/dom/performance/PerformanceEntry.cpp
@@ -32,17 +32,17 @@ PerformanceEntry::PerformanceEntry(nsISu
 
 PerformanceEntry::~PerformanceEntry()
 {
 }
 
 JSObject*
 PerformanceEntry::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return mozilla::dom::PerformanceEntryBinding::Wrap(aCx, this, aGivenProto);
+  return mozilla::dom::PerformanceEntry_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 size_t
 PerformanceEntry::SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const
 {
   return mName.SizeOfExcludingThisIfUnshared(aMallocSizeOf) +
          mEntryType.SizeOfExcludingThisIfUnshared(aMallocSizeOf);
 }
--- a/dom/performance/PerformanceMark.cpp
+++ b/dom/performance/PerformanceMark.cpp
@@ -20,16 +20,16 @@ PerformanceMark::PerformanceMark(nsISupp
 
 PerformanceMark::~PerformanceMark()
 {
 }
 
 JSObject*
 PerformanceMark::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return PerformanceMarkBinding::Wrap(aCx, this, aGivenProto);
+  return PerformanceMark_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 size_t
 PerformanceMark::SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const
 {
   return aMallocSizeOf(this) + SizeOfExcludingThis(aMallocSizeOf);
 }
--- a/dom/performance/PerformanceMeasure.cpp
+++ b/dom/performance/PerformanceMeasure.cpp
@@ -22,16 +22,16 @@ PerformanceMeasure::PerformanceMeasure(n
 
 PerformanceMeasure::~PerformanceMeasure()
 {
 }
 
 JSObject*
 PerformanceMeasure::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return PerformanceMeasureBinding::Wrap(aCx, this, aGivenProto);
+  return PerformanceMeasure_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 size_t
 PerformanceMeasure::SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const
 {
   return aMallocSizeOf(this) + SizeOfExcludingThis(aMallocSizeOf);
 }
--- a/dom/performance/PerformanceNavigation.cpp
+++ b/dom/performance/PerformanceNavigation.cpp
@@ -25,17 +25,17 @@ PerformanceNavigation::PerformanceNaviga
 PerformanceNavigation::~PerformanceNavigation()
 {
 }
 
 JSObject*
 PerformanceNavigation::WrapObject(JSContext *cx,
                                   JS::Handle<JSObject*> aGivenProto)
 {
-  return PerformanceNavigationBinding::Wrap(cx, this, aGivenProto);
+  return PerformanceNavigation_Binding::Wrap(cx, this, aGivenProto);
 }
 
 uint16_t
 PerformanceNavigation::RedirectCount() const
 {
   return GetPerformanceTiming()->Data()->GetRedirectCount();
 }
 
--- a/dom/performance/PerformanceNavigationTiming.cpp
+++ b/dom/performance/PerformanceNavigationTiming.cpp
@@ -13,17 +13,17 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
 NS_INTERFACE_MAP_END_INHERITING(PerformanceResourceTiming)
 
 NS_IMPL_ADDREF_INHERITED(PerformanceNavigationTiming, PerformanceResourceTiming)
 NS_IMPL_RELEASE_INHERITED(PerformanceNavigationTiming, PerformanceResourceTiming)
 
 JSObject*
 PerformanceNavigationTiming::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return PerformanceNavigationTimingBinding::Wrap(aCx, this, aGivenProto);
+  return PerformanceNavigationTiming_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 #define REDUCE_TIME_PRECISION                               \
   if (mPerformance->IsSystemPrincipal()) {                  \
     return rawValue;                                        \
   }                                                         \
   return nsRFPService::ReduceTimePrecisionAsMSecs(rawValue, \
     mPerformance->GetRandomTimelineSeed())
--- a/dom/performance/PerformanceObserver.cpp
+++ b/dom/performance/PerformanceObserver.cpp
@@ -94,17 +94,17 @@ PerformanceObserver::Constructor(const G
   RefPtr<PerformanceObserver> observer =
     new PerformanceObserver(workerPrivate, aCb);
   return observer.forget();
 }
 
 JSObject*
 PerformanceObserver::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return PerformanceObserverBinding::Wrap(aCx, this, aGivenProto);
+  return PerformanceObserver_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 PerformanceObserver::Notify()
 {
   if (mQueuedEntries.IsEmpty()) {
     return;
   }
--- a/dom/performance/PerformanceObserverEntryList.cpp
+++ b/dom/performance/PerformanceObserverEntryList.cpp
@@ -28,17 +28,17 @@ NS_INTERFACE_MAP_END
 
 PerformanceObserverEntryList::~PerformanceObserverEntryList()
 {
 }
 
 JSObject*
 PerformanceObserverEntryList::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return PerformanceObserverEntryListBinding::Wrap(aCx, this, aGivenProto);
+  return PerformanceObserverEntryList_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 PerformanceObserverEntryList::GetEntries(
   const PerformanceEntryFilterOptions& aFilter,
   nsTArray<RefPtr<PerformanceEntry>>& aRetval)
 {
   aRetval.Clear();
--- a/dom/performance/PerformanceResourceTiming.cpp
+++ b/dom/performance/PerformanceResourceTiming.cpp
@@ -64,17 +64,17 @@ PerformanceResourceTiming::StartTime() c
   DOMHighResTimeStamp asyncOpen = mTimingData->AsyncOpenHighRes(mPerformance);
 
   return std::min(asyncOpen, std::min(redirect, worker));
 }
 
 JSObject*
 PerformanceResourceTiming::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return PerformanceResourceTimingBinding::Wrap(aCx, this, aGivenProto);
+  return PerformanceResourceTiming_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 size_t
 PerformanceResourceTiming::SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const
 {
   return aMallocSizeOf(this) + SizeOfExcludingThis(aMallocSizeOf);
 }
 
--- a/dom/performance/PerformanceServerTiming.cpp
+++ b/dom/performance/PerformanceServerTiming.cpp
@@ -20,17 +20,17 @@ NS_IMPL_CYCLE_COLLECTING_RELEASE(Perform
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(PerformanceServerTiming)
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 JSObject*
 PerformanceServerTiming::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return mozilla::dom::PerformanceServerTimingBinding::Wrap(aCx, this, aGivenProto);
+  return mozilla::dom::PerformanceServerTiming_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 PerformanceServerTiming::GetName(nsAString& aName) const
 {
   aName.Truncate();
 
   if (!mServerTiming) {
--- a/dom/performance/PerformanceTiming.cpp
+++ b/dom/performance/PerformanceTiming.cpp
@@ -646,17 +646,17 @@ DOMTimeMilliSec
 PerformanceTiming::ResponseEnd()
 {
   return static_cast<int64_t>(mTimingData->ResponseEndHighRes(mPerformance));
 }
 
 JSObject*
 PerformanceTiming::WrapObject(JSContext *cx, JS::Handle<JSObject*> aGivenProto)
 {
-  return PerformanceTimingBinding::Wrap(cx, this, aGivenProto);
+  return PerformanceTiming_Binding::Wrap(cx, this, aGivenProto);
 }
 
 bool
 PerformanceTiming::IsTopLevelContentDocument() const
 {
   nsCOMPtr<nsIDocument> document = mPerformance->GetDocumentIfCurrent();
   if (!document) {
     return false;
--- a/dom/permission/PermissionStatus.cpp
+++ b/dom/permission/PermissionStatus.cpp
@@ -60,17 +60,17 @@ PermissionStatus::~PermissionStatus()
   if (mObserver) {
     mObserver->RemoveSink(this);
   }
 }
 
 JSObject*
 PermissionStatus::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return PermissionStatusBinding::Wrap(aCx, this, aGivenProto);
+  return PermissionStatus_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsresult
 PermissionStatus::UpdateState()
 {
   nsCOMPtr<nsIPermissionManager> permMgr = services::GetPermissionManager();
   if (NS_WARN_IF(!permMgr)) {
     return NS_ERROR_FAILURE;
--- a/dom/permission/Permissions.cpp
+++ b/dom/permission/Permissions.cpp
@@ -33,17 +33,17 @@ Permissions::Permissions(nsPIDOMWindowIn
 
 Permissions::~Permissions()
 {
 }
 
 JSObject*
 Permissions::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return PermissionsBinding::Wrap(aCx, this, aGivenProto);
+  return Permissions_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 namespace {
 
 already_AddRefed<PermissionStatus>
 CreatePermissionStatus(JSContext* aCx,
                        JS::Handle<JSObject*> aPermission,
                        nsPIDOMWindowInner* aWindow,
--- a/dom/plugins/base/nsPluginInstanceOwner.cpp
+++ b/dom/plugins/base/nsPluginInstanceOwner.cpp
@@ -2135,66 +2135,66 @@ nsEventStatus nsPluginInstanceOwner::Pro
       // For plugins which don't support high-resolution scroll, we should
       // generate legacy resolution wheel messages.  I.e., the delta value
       // should be WHEEL_DELTA * n.
       case eWheel: {
         const WidgetWheelEvent* wheelEvent = anEvent.AsWheelEvent();
         int32_t delta = 0;
         if (wheelEvent->mLineOrPageDeltaY) {
           switch (wheelEvent->mDeltaMode) {
-            case WheelEventBinding::DOM_DELTA_PAGE:
+            case WheelEvent_Binding::DOM_DELTA_PAGE:
               pluginEvent.event = WM_MOUSEWHEEL;
               delta = -WHEEL_DELTA * wheelEvent->mLineOrPageDeltaY;
               break;
-            case WheelEventBinding::DOM_DELTA_LINE: {
+            case WheelEvent_Binding::DOM_DELTA_LINE: {
               UINT linesPerWheelDelta = 0;
               if (NS_WARN_IF(!::SystemParametersInfo(SPI_GETWHEELSCROLLLINES, 0,
                                                      &linesPerWheelDelta, 0))) {
                 // Use system default scroll amount, 3, when
                 // SPI_GETWHEELSCROLLLINES isn't available.
                 linesPerWheelDelta = 3;
               }
               if (!linesPerWheelDelta) {
                 break;
               }
               pluginEvent.event = WM_MOUSEWHEEL;
               delta = -WHEEL_DELTA / linesPerWheelDelta;
               delta *= wheelEvent->mLineOrPageDeltaY;
               break;
             }
-            case WheelEventBinding::DOM_DELTA_PIXEL:
+            case WheelEvent_Binding::DOM_DELTA_PIXEL:
             default:
               // We don't support WM_GESTURE with this path.
               MOZ_ASSERT(!pluginEvent.event);
               break;
           }
         } else if (wheelEvent->mLineOrPageDeltaX) {
           switch (wheelEvent->mDeltaMode) {
-            case WheelEventBinding::DOM_DELTA_PAGE:
+            case WheelEvent_Binding::DOM_DELTA_PAGE:
               pluginEvent.event = WM_MOUSEHWHEEL;
               delta = -WHEEL_DELTA * wheelEvent->mLineOrPageDeltaX;
               break;
-            case WheelEventBinding::DOM_DELTA_LINE: {
+            case WheelEvent_Binding::DOM_DELTA_LINE: {
               pluginEvent.event = WM_MOUSEHWHEEL;
               UINT charsPerWheelDelta = 0;
               // FYI: SPI_GETWHEELSCROLLCHARS is available on Vista or later.
               if (::SystemParametersInfo(SPI_GETWHEELSCROLLCHARS, 0,
                                          &charsPerWheelDelta, 0)) {
                 // Use system default scroll amount, 3, when
                 // SPI_GETWHEELSCROLLCHARS isn't available.
                 charsPerWheelDelta = 3;
               }
               if (!charsPerWheelDelta) {
                 break;
               }
               delta = WHEEL_DELTA / charsPerWheelDelta;
               delta *= wheelEvent->mLineOrPageDeltaX;
               break;
             }
-            case WheelEventBinding::DOM_DELTA_PIXEL:
+            case WheelEvent_Binding::DOM_DELTA_PIXEL:
             default:
               // We don't support WM_GESTURE with this path.
               MOZ_ASSERT(!pluginEvent.event);
               break;
           }
         }
 
         if (!pluginEvent.event) {
--- a/dom/presentation/Presentation.cpp
+++ b/dom/presentation/Presentation.cpp
@@ -52,17 +52,17 @@ Presentation::Presentation(nsPIDOMWindow
 Presentation::~Presentation()
 {
 }
 
 /* virtual */ JSObject*
 Presentation::WrapObject(JSContext* aCx,
                          JS::Handle<JSObject*> aGivenProto)
 {
-  return PresentationBinding::Wrap(aCx, this, aGivenProto);
+  return Presentation_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 Presentation::SetDefaultRequest(PresentationRequest* aRequest)
 {
   if (nsContentUtils::ShouldResistFingerprinting()) {
     return;
   }
--- a/dom/presentation/PresentationAvailability.cpp
+++ b/dom/presentation/PresentationAvailability.cpp
@@ -116,17 +116,17 @@ PresentationAvailability::DisconnectFrom
   Shutdown();
   DOMEventTargetHelper::DisconnectFromOwner();
 }
 
 /* virtual */ JSObject*
 PresentationAvailability::WrapObject(JSContext* aCx,
                                      JS::Handle<JSObject*> aGivenProto)
 {
-  return PresentationAvailabilityBinding::Wrap(aCx, this, aGivenProto);
+  return PresentationAvailability_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 bool
 PresentationAvailability::Equals(const uint64_t aWindowID,
                                  const nsTArray<nsString>& aUrls) const
 {
   if (GetOwner() && GetOwner()->WindowID() == aWindowID &&
       mUrls.Length() == aUrls.Length()) {
--- a/dom/presentation/PresentationConnection.cpp
+++ b/dom/presentation/PresentationConnection.cpp
@@ -146,17 +146,17 @@ PresentationConnection::DisconnectFromOw
   Unused << NS_WARN_IF(NS_FAILED(ProcessConnectionWentAway()));
   DOMEventTargetHelper::DisconnectFromOwner();
 }
 
 /* virtual */ JSObject*
 PresentationConnection::WrapObject(JSContext* aCx,
                                    JS::Handle<JSObject*> aGivenProto)
 {
-  return PresentationConnectionBinding::Wrap(aCx, this, aGivenProto);
+  return PresentationConnection_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 PresentationConnection::GetId(nsAString& aId) const
 {
   if (nsContentUtils::ShouldResistFingerprinting()) {
     aId = EmptyString();
     return;
--- a/dom/presentation/PresentationConnectionList.cpp
+++ b/dom/presentation/PresentationConnectionList.cpp
@@ -34,17 +34,17 @@ PresentationConnectionList::Presentation
   MOZ_ASSERT(aWindow);
   MOZ_ASSERT(aPromise);
 }
 
 /* virtual */ JSObject*
 PresentationConnectionList::WrapObject(JSContext* aCx,
                                        JS::Handle<JSObject*> aGivenProto)
 {
-  return PresentationConnectionListBinding::Wrap(aCx, this, aGivenProto);
+  return PresentationConnectionList_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 PresentationConnectionList::GetConnections(
   nsTArray<RefPtr<PresentationConnection>>& aConnections) const
 {
   if (nsContentUtils::ShouldResistFingerprinting()) {
     aConnections.Clear();
@@ -103,17 +103,17 @@ PresentationConnectionList::NotifyStateC
   if (!aConnection) {
     MOZ_ASSERT(false, "PresentationConnection can not be null.");
     return;
   }
 
   bool connectionFound =
     FindConnectionById(aSessionId) != ConnectionArray::NoIndex ? true : false;
 
-  PresentationConnectionListBinding::ClearCachedConnectionsValue(this);
+  PresentationConnectionList_Binding::ClearCachedConnectionsValue(this);
   switch (aConnection->State()) {
     case PresentationConnectionState::Connected:
       if (!connectionFound) {
         mConnections.AppendElement(aConnection);
         if (mGetConnectionListPromise) {
           if (!nsContentUtils::ShouldResistFingerprinting()) {
             mGetConnectionListPromise->MaybeResolve(this);
           }
--- a/dom/presentation/PresentationReceiver.cpp
+++ b/dom/presentation/PresentationReceiver.cpp
@@ -81,17 +81,17 @@ void PresentationReceiver::Shutdown()
   Unused <<
     NS_WARN_IF(NS_FAILED(service->UnregisterRespondingListener(mWindowId)));
 }
 
 /* virtual */ JSObject*
 PresentationReceiver::WrapObject(JSContext* aCx,
                                  JS::Handle<JSObject*> aGivenProto)
 {
-  return PresentationReceiverBinding::Wrap(aCx, this, aGivenProto);
+  return PresentationReceiver_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 NS_IMETHODIMP
 PresentationReceiver::NotifySessionConnect(uint64_t aWindowId,
                                            const nsAString& aSessionId)
 {
   PRES_DEBUG("receiver session connect:id[%s], windowId[%" PRIx64 "]\n",
              NS_ConvertUTF16toUTF8(aSessionId).get(), aWindowId);
--- a/dom/presentation/PresentationRequest.cpp
+++ b/dom/presentation/PresentationRequest.cpp
@@ -129,17 +129,17 @@ PresentationRequest::Init()
 {
   return true;
 }
 
 /* virtual */ JSObject*
 PresentationRequest::WrapObject(JSContext* aCx,
                                 JS::Handle<JSObject*> aGivenProto)
 {
-  return PresentationRequestBinding::Wrap(aCx, this, aGivenProto);
+  return PresentationRequest_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 already_AddRefed<Promise>
 PresentationRequest::Start(ErrorResult& aRv)
 {
   return StartWithDevice(VoidString(), aRv);
 }
 
--- a/dom/promise/Promise.cpp
+++ b/dom/promise/Promise.cpp
@@ -357,17 +357,17 @@ public:
     mInner->RejectedCallback(aCx, aValue);
     mInner = nullptr;
   }
 
   bool
   WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto,
              JS::MutableHandle<JSObject*> aWrapper)
   {
-    return PromiseNativeHandlerBinding::Wrap(aCx, this, aGivenProto, aWrapper);
+    return PromiseNativeHandler_Binding::Wrap(aCx, this, aGivenProto, aWrapper);
   }
 
   NS_DECL_CYCLE_COLLECTING_ISUPPORTS
   NS_DECL_CYCLE_COLLECTION_CLASS(PromiseNativeHandlerShim)
 };
 
 NS_IMPL_CYCLE_COLLECTION(PromiseNativeHandlerShim, mInner)
 
--- a/dom/push/PushManager.cpp
+++ b/dom/push/PushManager.cpp
@@ -462,17 +462,17 @@ NS_IMPL_CYCLE_COLLECTING_RELEASE(PushMan
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(PushManager)
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 JSObject*
 PushManager::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return PushManagerBinding::Wrap(aCx, this, aGivenProto);
+  return PushManager_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 // static
 already_AddRefed<PushManager>
 PushManager::Constructor(GlobalObject& aGlobal,
                          const nsAString& aScope,
                          ErrorResult& aRv)
 {
--- a/dom/push/PushSubscription.cpp
+++ b/dom/push/PushSubscription.cpp
@@ -229,17 +229,17 @@ NS_IMPL_CYCLE_COLLECTING_RELEASE(PushSub
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(PushSubscription)
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 JSObject*
 PushSubscription::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return PushSubscriptionBinding::Wrap(aCx, this, aGivenProto);
+  return PushSubscription_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 // static
 already_AddRefed<PushSubscription>
 PushSubscription::Constructor(GlobalObject& aGlobal,
                               const PushSubscriptionInit& aInitDict,
                               ErrorResult& aRv)
 {
--- a/dom/push/PushSubscriptionOptions.cpp
+++ b/dom/push/PushSubscriptionOptions.cpp
@@ -51,17 +51,17 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 JSObject*
 PushSubscriptionOptions::WrapObject(JSContext* aCx,
                                     JS::Handle<JSObject*> aGivenProto)
 {
-  return PushSubscriptionOptionsBinding::Wrap(aCx, this, aGivenProto);
+  return PushSubscriptionOptions_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 PushSubscriptionOptions::GetApplicationServerKey(JSContext* aCx,
                                                  JS::MutableHandle<JSObject*> aKey,
                                                  ErrorResult& aRv)
 {
   if (!mRawAppServerKey.IsEmpty() && !mAppServerKey) {
--- a/dom/quota/StorageManager.cpp
+++ b/dom/quota/StorageManager.cpp
@@ -873,13 +873,13 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 JSObject*
 StorageManager::WrapObject(JSContext* aCx,
                            JS::Handle<JSObject*> aGivenProto)
 {
-  return StorageManagerBinding::Wrap(aCx, this, aGivenProto);
+  return StorageManager_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/serviceworkers/ServiceWorker.cpp
+++ b/dom/serviceworkers/ServiceWorker.cpp
@@ -101,17 +101,17 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
   NS_INTERFACE_MAP_ENTRY(ServiceWorker)
 NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper)
 
 JSObject*
 ServiceWorker::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
   MOZ_ASSERT(NS_IsMainThread());
 
-  return ServiceWorkerBinding::Wrap(aCx, this, aGivenProto);
+  return ServiceWorker_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 ServiceWorkerState
 ServiceWorker::State() const
 {
   return mDescriptor.State();
 }
 
--- a/dom/serviceworkers/ServiceWorkerContainer.cpp
+++ b/dom/serviceworkers/ServiceWorkerContainer.cpp
@@ -105,17 +105,17 @@ ServiceWorkerContainer::ControllerChange
   }
   mControllerWorker = go->GetOrCreateServiceWorker(go->GetController().ref());
   aRv = DispatchTrustedEvent(NS_LITERAL_STRING("controllerchange"));
 }
 
 JSObject*
 ServiceWorkerContainer::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return ServiceWorkerContainerBinding::Wrap(aCx, this, aGivenProto);
+  return ServiceWorkerContainer_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 namespace {
 
 already_AddRefed<nsIURI>
 GetBaseURIFromGlobal(nsIGlobalObject* aGlobal, ErrorResult& aRv)
 {
   // It would be nice not to require a window here, but right
--- a/dom/serviceworkers/ServiceWorkerEvents.cpp
+++ b/dom/serviceworkers/ServiceWorkerEvents.cpp
@@ -798,17 +798,17 @@ RespondWithHandler::CancelRequest(nsresu
   mRequestWasHandled = true;
 }
 
 } // namespace
 
 void
 FetchEvent::RespondWith(JSContext* aCx, Promise& aArg, ErrorResult& aRv)
 {
-  if (EventPhase() == EventBinding::NONE || mWaitToRespond) {
+  if (EventPhase() == Event_Binding::NONE || mWaitToRespond) {
     aRv.Throw(NS_ERROR_DOM_INVALID_STATE_ERR);
     return;
   }
 
 
   // Record where respondWith() was called in the script so we can include the
   // information in any error reporting.  We should be guaranteed not to get
   // a file:// string here because service workers require http/https.
@@ -1088,17 +1088,17 @@ NS_IMPL_CYCLE_COLLECTING_RELEASE(PushMes
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(PushMessageData)
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 JSObject*
 PushMessageData::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return mozilla::dom::PushMessageDataBinding::Wrap(aCx, this, aGivenProto);
+  return mozilla::dom::PushMessageData_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 PushMessageData::Json(JSContext* cx, JS::MutableHandle<JS::Value> aRetval,
                       ErrorResult& aRv)
 {
   if (NS_FAILED(EnsureDecodedText())) {
     aRv.Throw(NS_ERROR_DOM_UNKNOWN_ERR);
@@ -1204,17 +1204,17 @@ NS_IMPL_RELEASE_INHERITED(PushEvent, Ext
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(PushEvent)
 NS_INTERFACE_MAP_END_INHERITING(ExtendableEvent)
 
 NS_IMPL_CYCLE_COLLECTION_INHERITED(PushEvent, ExtendableEvent, mData)
 
 JSObject*
 PushEvent::WrapObjectInternal(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return mozilla::dom::PushEventBinding::Wrap(aCx, this, aGivenProto);
+  return mozilla::dom::PushEvent_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 ExtendableMessageEvent::ExtendableMessageEvent(EventTarget* aOwner)
   : ExtendableEvent(aOwner)
   , mData(JS::UndefinedValue())
 {
   mozilla::HoldJSObjects(this);
 }
--- a/dom/serviceworkers/ServiceWorkerEvents.h
+++ b/dom/serviceworkers/ServiceWorkerEvents.h
@@ -75,17 +75,17 @@ protected:
 public:
   NS_DECL_ISUPPORTS_INHERITED
 
   void
   SetKeepAliveHandler(ExtensionsHandler* aExtensionsHandler);
 
   virtual JSObject* WrapObjectInternal(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
   {
-    return mozilla::dom::ExtendableEventBinding::Wrap(aCx, this, aGivenProto);
+    return mozilla::dom::ExtendableEvent_Binding::Wrap(aCx, this, aGivenProto);
   }
 
   static already_AddRefed<ExtendableEvent>
   Constructor(mozilla::dom::EventTarget* aOwner,
               const nsAString& aType,
               const EventInit& aOptions)
   {
     RefPtr<ExtendableEvent> e = new ExtendableEvent(aOwner);
@@ -132,17 +132,17 @@ protected:
   ~FetchEvent();
 
 public:
   NS_DECL_ISUPPORTS_INHERITED
   NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(FetchEvent, ExtendableEvent)
 
   virtual JSObject* WrapObjectInternal(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
   {
-    return FetchEventBinding::Wrap(aCx, this, aGivenProto);
+    return FetchEvent_Binding::Wrap(aCx, this, aGivenProto);
   }
 
   void PostInit(nsMainThreadPtrHandle<nsIInterceptedChannel>& aChannel,
                 nsMainThreadPtrHandle<ServiceWorkerRegistrationInfo>& aRegistration,
                 const nsACString& aScriptSpec);
 
   static already_AddRefed<FetchEvent>
   Constructor(const GlobalObject& aGlobal,
@@ -279,17 +279,17 @@ protected:
 public:
   NS_DECL_ISUPPORTS_INHERITED
   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS_INHERITED(ExtendableMessageEvent,
                                                          ExtendableEvent)
 
   virtual JSObject* WrapObjectInternal(
     JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
   {
-    return mozilla::dom::ExtendableMessageEventBinding::Wrap(aCx, this, aGivenProto);
+    return mozilla::dom::ExtendableMessageEvent_Binding::Wrap(aCx, this, aGivenProto);
   }
 
   static already_AddRefed<ExtendableMessageEvent>
   Constructor(mozilla::dom::EventTarget* aOwner,
               const nsAString& aType,
               const ExtendableMessageEventInit& aOptions,
               ErrorResult& aRv);
 
--- a/dom/serviceworkers/ServiceWorkerRegistration.cpp
+++ b/dom/serviceworkers/ServiceWorkerRegistration.cpp
@@ -54,17 +54,17 @@ ServiceWorkerRegistration::~ServiceWorke
 {
   mInner->ClearServiceWorkerRegistration(this);
 }
 
 JSObject*
 ServiceWorkerRegistration::WrapObject(JSContext* aCx,
                                       JS::Handle<JSObject*> aGivenProto)
 {
-  return ServiceWorkerRegistrationBinding::Wrap(aCx, this, aGivenProto);
+  return ServiceWorkerRegistration_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 /* static */ already_AddRefed<ServiceWorkerRegistration>
 ServiceWorkerRegistration::CreateForMainThread(nsPIDOMWindowInner* aWindow,
                                                const ServiceWorkerRegistrationDescriptor& aDescriptor)
 {
   MOZ_ASSERT(aWindow);
   MOZ_ASSERT(NS_IsMainThread());
--- a/dom/smil/TimeEvent.h
+++ b/dom/smil/TimeEvent.h
@@ -23,17 +23,17 @@ public:
             InternalSMILTimeEvent* aEvent);
 
   // nsISupports interface:
   NS_DECL_ISUPPORTS_INHERITED
   NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(TimeEvent, Event)
 
   virtual JSObject* WrapObjectInternal(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
   {
-    return TimeEventBinding::Wrap(aCx, this, aGivenProto);
+    return TimeEvent_Binding::Wrap(aCx, this, aGivenProto);
   }
 
   void InitTimeEvent(const nsAString& aType, nsGlobalWindowInner* aView,
                      int32_t aDetail);
 
 
   int32_t Detail() const
   {
--- a/dom/storage/Storage.cpp
+++ b/dom/storage/Storage.cpp
@@ -62,17 +62,17 @@ Storage::CanUseStorage(nsIPrincipal& aSu
   mIsSessionOnly = access <= nsContentUtils::StorageAccess::eSessionScoped;
 
   return aSubjectPrincipal.Subsumes(mPrincipal);
 }
 
 /* virtual */ JSObject*
 Storage::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return StorageBinding::Wrap(aCx, this, aGivenProto);
+  return Storage_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 namespace {
 
 class StorageNotifierRunnable : public Runnable
 {
 public:
   StorageNotifierRunnable(nsISupports* aSubject, const char16_t *aStorageType,
--- a/dom/svg/DOMSVGAnimatedLengthList.cpp
+++ b/dom/svg/DOMSVGAnimatedLengthList.cpp
@@ -28,17 +28,17 @@ SVGAnimatedLengthListTearoffTable()
 NS_SVG_VAL_IMPL_CYCLE_COLLECTION_WRAPPERCACHED(DOMSVGAnimatedLengthList, mElement)
 
 NS_IMPL_CYCLE_COLLECTION_ROOT_NATIVE(DOMSVGAnimatedLengthList, AddRef)
 NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(DOMSVGAnimatedLengthList, Release)
 
 JSObject*
 DOMSVGAnimatedLengthList::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return dom::SVGAnimatedLengthListBinding::Wrap(aCx, this, aGivenProto);
+  return dom::SVGAnimatedLengthList_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 already_AddRefed<DOMSVGLengthList>
 DOMSVGAnimatedLengthList::BaseVal()
 {
   if (!mBaseVal) {
     mBaseVal = new DOMSVGLengthList(this, InternalAList().GetBaseValue());
   }
--- a/dom/svg/DOMSVGAnimatedNumberList.cpp
+++ b/dom/svg/DOMSVGAnimatedNumberList.cpp
@@ -33,17 +33,17 @@ NS_IMPL_CYCLE_COLLECTING_RELEASE(DOMSVGA
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(DOMSVGAnimatedNumberList)
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 JSObject*
 DOMSVGAnimatedNumberList::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return mozilla::dom::SVGAnimatedNumberListBinding::Wrap(aCx, this, aGivenProto);
+  return mozilla::dom::SVGAnimatedNumberList_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 already_AddRefed<DOMSVGNumberList>
 DOMSVGAnimatedNumberList::BaseVal()
 {
   if (!mBaseVal) {
     mBaseVal = new DOMSVGNumberList(this, InternalAList().GetBaseValue());
   }
--- a/dom/svg/DOMSVGLength.cpp
+++ b/dom/svg/DOMSVGLength.cpp
@@ -95,17 +95,17 @@ private:
 DOMSVGLength::DOMSVGLength(DOMSVGLengthList *aList,
                            uint8_t aAttrEnum,
                            uint32_t aListIndex,
                            bool aIsAnimValItem)
   : mList(aList)
   , mListIndex(aListIndex)
   , mAttrEnum(aAttrEnum)
   , mIsAnimValItem(aIsAnimValItem)
-  , mUnit(SVGLengthBinding::SVG_LENGTHTYPE_NUMBER)
+  , mUnit(SVGLength_Binding::SVG_LENGTHTYPE_NUMBER)
   , mValue(0.0f)
   , mVal(nullptr)
 {
   // These shifts are in sync with the members in the header.
   MOZ_ASSERT(aList &&
              aAttrEnum < (1 << 4) &&
              aListIndex <= MaxListIndex(),
              "bad arg");
@@ -113,29 +113,29 @@ DOMSVGLength::DOMSVGLength(DOMSVGLengthL
   MOZ_ASSERT(IndexIsValid(), "Bad index for DOMSVGNumber!");
 }
 
 DOMSVGLength::DOMSVGLength()
   : mList(nullptr)
   , mListIndex(0)
   , mAttrEnum(0)
   , mIsAnimValItem(false)
-  , mUnit(SVGLengthBinding::SVG_LENGTHTYPE_NUMBER)
+  , mUnit(SVGLength_Binding::SVG_LENGTHTYPE_NUMBER)
   , mValue(0.0f)
   , mVal(nullptr)
 {
 }
 
 DOMSVGLength::DOMSVGLength(nsSVGLength2* aVal, nsSVGElement* aSVGElement,
                            bool aAnimVal)
   : mList(nullptr)
   , mListIndex(0)
   , mAttrEnum(0)
   , mIsAnimValItem(aAnimVal)
-  , mUnit(SVGLengthBinding::SVG_LENGTHTYPE_NUMBER)
+  , mUnit(SVGLength_Binding::SVG_LENGTHTYPE_NUMBER)
   , mValue(0.0f)
   , mVal(aVal)
   , mSVGElement(aSVGElement)
 {
 }
 
 void
 DOMSVGLength::CleanupWeakRefs()
@@ -227,18 +227,18 @@ DOMSVGLength::GetValue(ErrorResult& aRv)
     Element()->FlushAnimations(); // May make HasOwner() == false
   }
   if (HasOwner()) {
     float value = InternalItem().GetValueInUserUnits(Element(), Axis());
     if (!IsFinite(value)) {
       aRv.Throw(NS_ERROR_FAILURE);
     }
     return value;
-  } else if (mUnit == SVGLengthBinding::SVG_LENGTHTYPE_NUMBER ||
-             mUnit == SVGLengthBinding::SVG_LENGTHTYPE_PX) {
+  } else if (mUnit == SVGLength_Binding::SVG_LENGTHTYPE_NUMBER ||
+             mUnit == SVGLength_Binding::SVG_LENGTHTYPE_PX) {
     return mValue;
   }
   // else [SVGWG issue] Can't convert this length's value to user units
   // ReportToConsole
   aRv.Throw(NS_ERROR_FAILURE);
   return 0.0f;
 }
 
@@ -269,18 +269,18 @@ DOMSVGLength::SetValue(float aUserUnitVa
     if (uuPerUnit > 0) {
       float newValue = aUserUnitValue / uuPerUnit;
       if (IsFinite(newValue)) {
         AutoChangeLengthNotifier notifier(this);
         InternalItem().SetValueAndUnit(newValue, InternalItem().GetUnit());
         return;
       }
     }
-  } else if (mUnit == SVGLengthBinding::SVG_LENGTHTYPE_NUMBER ||
-             mUnit == SVGLengthBinding::SVG_LENGTHTYPE_PX) {
+  } else if (mUnit == SVGLength_Binding::SVG_LENGTHTYPE_NUMBER ||
+             mUnit == SVGLength_Binding::SVG_LENGTHTYPE_PX) {
     mValue = aUserUnitValue;
     return;
   }
   // else [SVGWG issue] Can't convert user unit value to this length's unit
   // ReportToConsole
   aRv.Throw(NS_ERROR_FAILURE);
 }
 
@@ -449,17 +449,17 @@ DOMSVGLength::ConvertToSpecifiedUnits(ui
   // else [SVGWG issue] Can't convert unit
   // ReportToConsole
   aRv.Throw(NS_ERROR_FAILURE);
 }
 
 JSObject*
 DOMSVGLength::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGLengthBinding::Wrap(aCx, this, aGivenProto);
+  return SVGLength_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 DOMSVGLength::InsertingIntoList(DOMSVGLengthList *aList,
                                 uint8_t aAttrEnum,
                                 uint32_t aListIndex,
                                 bool aIsAnimValItem)
 {
--- a/dom/svg/DOMSVGLengthList.cpp
+++ b/dom/svg/DOMSVGLengthList.cpp
@@ -66,17 +66,17 @@ NS_IMPL_CYCLE_COLLECTING_RELEASE(DOMSVGL
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(DOMSVGLengthList)
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 JSObject*
 DOMSVGLengthList::WrapObject(JSContext *cx, JS::Handle<JSObject*> aGivenProto)
 {
-  return mozilla::dom::SVGLengthListBinding::Wrap(cx, this, aGivenProto);
+  return mozilla::dom::SVGLengthList_Binding::Wrap(cx, this, aGivenProto);
 }
 
 //----------------------------------------------------------------------
 // Helper class: AutoChangeLengthListNotifier
 // Stack-based helper class to pair calls to WillChangeLengthList and
 // DidChangeLengthList.
 class MOZ_RAII AutoChangeLengthListNotifier
 {
--- a/dom/svg/DOMSVGNumber.cpp
+++ b/dom/svg/DOMSVGNumber.cpp
@@ -189,12 +189,12 @@ DOMSVGNumber::IndexIsValid()
          (!mIsAnimValItem &&
           mListIndex < alist->GetBaseValue().Length());
 }
 #endif
 
 JSObject*
 DOMSVGNumber::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return dom::SVGNumberBinding::Wrap(aCx, this, aGivenProto);
+  return dom::SVGNumber_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace mozilla
--- a/dom/svg/DOMSVGNumberList.cpp
+++ b/dom/svg/DOMSVGNumberList.cpp
@@ -67,17 +67,17 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 
 JSObject*
 DOMSVGNumberList::WrapObject(JSContext *cx, JS::Handle<JSObject*> aGivenProto)
 {
-  return mozilla::dom::SVGNumberListBinding::Wrap(cx, this, aGivenProto);
+  return mozilla::dom::SVGNumberList_Binding::Wrap(cx, this, aGivenProto);
 }
 
 //----------------------------------------------------------------------
 // Helper class: AutoChangeNumberListNotifier
 // Stack-based helper class to pair calls to WillChangeNumberList and
 // DidChangeNumberList.
 class MOZ_RAII AutoChangeNumberListNotifier
 {
--- a/dom/svg/DOMSVGPathSeg.cpp
+++ b/dom/svg/DOMSVGPathSeg.cpp
@@ -9,17 +9,17 @@
 #include "SVGAnimatedPathSegList.h"
 #include "nsSVGElement.h"
 #include "nsError.h"
 
 // See the architecture comment in DOMSVGPathSegList.h.
 
 namespace mozilla {
 
-using namespace dom::SVGPathSegBinding;
+using namespace dom::SVGPathSeg_Binding;
 
 // We could use NS_IMPL_CYCLE_COLLECTION(, except that in Unlink() we need to
 // clear our list's weak ref to us to be safe. (The other option would be to
 // not unlink and rely on the breaking of the other edges in the cycle, as
 // NS_SVG_VAL_IMPL_CYCLE_COLLECTION does.)
 NS_IMPL_CYCLE_COLLECTION_CLASS(DOMSVGPathSeg)
 
 NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(DOMSVGPathSeg)
--- a/dom/svg/DOMSVGPathSeg.h
+++ b/dom/svg/DOMSVGPathSeg.h
@@ -17,17 +17,17 @@ class nsSVGElement;
 
 #define MOZ_SVG_LIST_INDEX_BIT_COUNT 31
 
 namespace mozilla {
 
 #define CHECK_ARG_COUNT_IN_SYNC(segType)                                      \
   MOZ_ASSERT(ArrayLength(mArgs) ==                                            \
                SVGPathSegUtils::ArgCountForType(uint32_t(segType)) ||         \
-             uint32_t(segType) == dom::SVGPathSegBinding::PATHSEG_CLOSEPATH,  \
+             uint32_t(segType) == dom::SVGPathSeg_Binding::PATHSEG_CLOSEPATH,  \
              "Arg count/array size out of sync")
 
 #define IMPL_SVGPATHSEG_SUBCLASS_COMMON(segName, segType)                     \
   explicit DOMSVGPathSeg##segName(const float *aArgs)                         \
     : DOMSVGPathSeg()                                                         \
   {                                                                           \
     CHECK_ARG_COUNT_IN_SYNC(segType);                                         \
     memcpy(mArgs, aArgs,                                                      \
@@ -57,17 +57,17 @@ namespace mozilla {
   PtrToMemberArgs() override                                                  \
   {                                                                           \
     return mArgs;                                                             \
   }                                                                           \
                                                                               \
   virtual JSObject*                                                           \
   WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override      \
   {                                                                           \
-    return dom::SVGPathSeg##segName##Binding::Wrap(aCx, this, aGivenProto);   \
+    return dom::SVGPathSeg##segName##_Binding::Wrap(aCx, this, aGivenProto);   \
   }
 
 
 /**
  * Class DOMSVGPathSeg
  *
  * This class is the base class of the classes that create the DOM objects that
  * wrap the internal path segments that are encoded in an SVGPathData. Its
@@ -229,17 +229,17 @@ class DOMSVGPathSegClosePath
 {
 public:
   DOMSVGPathSegClosePath()
     : DOMSVGPathSeg()
   {
   }
 
   IMPL_SVGPATHSEG_SUBCLASS_COMMON(
-    ClosePath, dom::SVGPathSegBinding::PATHSEG_CLOSEPATH)
+    ClosePath, dom::SVGPathSeg_Binding::PATHSEG_CLOSEPATH)
 
 protected:
   // To allow IMPL_SVGPATHSEG_SUBCLASS_COMMON above to compile we need an
   // mArgs, but since C++ doesn't allow zero-sized arrays we need to give it
   // one (unused) element.
   float mArgs[1];
 };
 
@@ -250,17 +250,17 @@ public:
   DOMSVGPathSegMovetoAbs(float x, float y)
     : DOMSVGPathSeg()
   {
     mArgs[0] = x;
     mArgs[1] = y;
   }
 
   IMPL_SVGPATHSEG_SUBCLASS_COMMON(
-    MovetoAbs, dom::SVGPathSegBinding::PATHSEG_MOVETO_ABS)
+    MovetoAbs, dom::SVGPathSeg_Binding::PATHSEG_MOVETO_ABS)
 
   float X();
   void SetX(float aX, ErrorResult& rv);
   float Y();
   void SetY(float aY, ErrorResult& rv);
 
 protected:
   float mArgs[2];
@@ -273,17 +273,17 @@ public:
   DOMSVGPathSegMovetoRel(float x, float y)
     : DOMSVGPathSeg()
   {
     mArgs[0] = x;
     mArgs[1] = y;
   }
 
   IMPL_SVGPATHSEG_SUBCLASS_COMMON(
-    MovetoRel, dom::SVGPathSegBinding::PATHSEG_MOVETO_REL)
+    MovetoRel, dom::SVGPathSeg_Binding::PATHSEG_MOVETO_REL)
 
   float X();
   void SetX(float aX, ErrorResult& rv);
   float Y();
   void SetY(float aY, ErrorResult& rv);
 
 protected:
   float mArgs[2];
@@ -296,17 +296,17 @@ public:
   DOMSVGPathSegLinetoAbs(float x, float y)
     : DOMSVGPathSeg()
   {
     mArgs[0] = x;
     mArgs[1] = y;
   }
 
   IMPL_SVGPATHSEG_SUBCLASS_COMMON(
-    LinetoAbs, dom::SVGPathSegBinding::PATHSEG_LINETO_ABS)
+    LinetoAbs, dom::SVGPathSeg_Binding::PATHSEG_LINETO_ABS)
 
   float X();
   void SetX(float aX, ErrorResult& rv);
   float Y();
   void SetY(float aY, ErrorResult& rv);
 
 protected:
   float mArgs[2];
@@ -319,17 +319,17 @@ public:
   DOMSVGPathSegLinetoRel(float x, float y)
     : DOMSVGPathSeg()
   {
     mArgs[0] = x;
     mArgs[1] = y;
   }
 
   IMPL_SVGPATHSEG_SUBCLASS_COMMON(
-    LinetoRel, dom::SVGPathSegBinding::PATHSEG_LINETO_REL)
+    LinetoRel, dom::SVGPathSeg_Binding::PATHSEG_LINETO_REL)
 
   float X();
   void SetX(float aX, ErrorResult& rv);
   float Y();
   void SetY(float aY, ErrorResult& rv);
 
 protected:
   float mArgs[2];
@@ -361,17 +361,17 @@ public:
   float Y1();
   void SetY1(float aY1, ErrorResult& rv);
   float X2();
   void SetX2(float aX2, ErrorResult& rv);
   float Y2();
   void SetY2(float aY2, ErrorResult& rv);
 
   IMPL_SVGPATHSEG_SUBCLASS_COMMON(
-    CurvetoCubicAbs, dom::SVGPathSegBinding::PATHSEG_CURVETO_CUBIC_ABS)
+    CurvetoCubicAbs, dom::SVGPathSeg_Binding::PATHSEG_CURVETO_CUBIC_ABS)
 
 protected:
   float mArgs[6];
 };
 
 class DOMSVGPathSegCurvetoCubicRel
   : public DOMSVGPathSeg
 {
@@ -385,17 +385,17 @@ public:
     mArgs[1] = y1;
     mArgs[2] = x2;
     mArgs[3] = y2;
     mArgs[4] = x;
     mArgs[5] = y;
   }
 
   IMPL_SVGPATHSEG_SUBCLASS_COMMON(
-    CurvetoCubicRel, dom::SVGPathSegBinding::PATHSEG_CURVETO_CUBIC_REL)
+    CurvetoCubicRel, dom::SVGPathSeg_Binding::PATHSEG_CURVETO_CUBIC_REL)
 
   float X();
   void SetX(float aX, ErrorResult& rv);
   float Y();
   void SetY(float aY, ErrorResult& rv);
   float X1();
   void SetX1(float aX1, ErrorResult& rv);
   float Y1();
@@ -419,17 +419,17 @@ public:
   {
     mArgs[0] = x1;
     mArgs[1] = y1;
     mArgs[2] = x;
     mArgs[3] = y;
   }
 
   IMPL_SVGPATHSEG_SUBCLASS_COMMON(
-    CurvetoQuadraticAbs, dom::SVGPathSegBinding::PATHSEG_CURVETO_QUADRATIC_ABS)
+    CurvetoQuadraticAbs, dom::SVGPathSeg_Binding::PATHSEG_CURVETO_QUADRATIC_ABS)
 
   float X();
   void SetX(float aX, ErrorResult& rv);
   float Y();
   void SetY(float aY, ErrorResult& rv);
   float X1();
   void SetX1(float aX1, ErrorResult& rv);
   float Y1();
@@ -449,17 +449,17 @@ public:
   {
     mArgs[0] = x1;
     mArgs[1] = y1;
     mArgs[2] = x;
     mArgs[3] = y;
   }
 
   IMPL_SVGPATHSEG_SUBCLASS_COMMON(
-    CurvetoQuadraticRel, dom::SVGPathSegBinding::PATHSEG_CURVETO_QUADRATIC_REL)
+    CurvetoQuadraticRel, dom::SVGPathSeg_Binding::PATHSEG_CURVETO_QUADRATIC_REL)
 
   float X();
   void SetX(float aX, ErrorResult& rv);
   float Y();
   void SetY(float aY, ErrorResult& rv);
   float X1();
   void SetX1(float aX1, ErrorResult& rv);
   float Y1();
@@ -483,17 +483,17 @@ public:
     mArgs[2] = angle;
     mArgs[3] = largeArcFlag;
     mArgs[4] = sweepFlag;
     mArgs[5] = x;
     mArgs[6] = y;
   }
 
   IMPL_SVGPATHSEG_SUBCLASS_COMMON(
-    ArcAbs, dom::SVGPathSegBinding::PATHSEG_ARC_ABS)
+    ArcAbs, dom::SVGPathSeg_Binding::PATHSEG_ARC_ABS)
 
   float X();
   void SetX(float aX, ErrorResult& rv);
   float Y();
   void SetY(float aY, ErrorResult& rv);
   float R1();
   void SetR1(float aR1, ErrorResult& rv);
   float R2();
@@ -523,17 +523,17 @@ public:
     mArgs[2] = angle;
     mArgs[3] = largeArcFlag;
     mArgs[4] = sweepFlag;
     mArgs[5] = x;
     mArgs[6] = y;
   }
 
   IMPL_SVGPATHSEG_SUBCLASS_COMMON(
-    ArcRel, dom::SVGPathSegBinding::PATHSEG_ARC_REL)
+    ArcRel, dom::SVGPathSeg_Binding::PATHSEG_ARC_REL)
 
   float X();
   void SetX(float aX, ErrorResult& rv);
   float Y();
   void SetY(float aY, ErrorResult& rv);
   float R1();
   void SetR1(float aR1, ErrorResult& rv);
   float R2();
@@ -555,17 +555,17 @@ class DOMSVGPathSegLinetoHorizontalAbs
 public:
   explicit DOMSVGPathSegLinetoHorizontalAbs(float x)
     : DOMSVGPathSeg()
   {
     mArgs[0] = x;
   }
 
   IMPL_SVGPATHSEG_SUBCLASS_COMMON(
-    LinetoHorizontalAbs, dom::SVGPathSegBinding::PATHSEG_LINETO_HORIZONTAL_ABS)
+    LinetoHorizontalAbs, dom::SVGPathSeg_Binding::PATHSEG_LINETO_HORIZONTAL_ABS)
 
   float X();
   void SetX(float aX, ErrorResult& rv);
 
 protected:
   float mArgs[1];
 };
 
@@ -575,17 +575,17 @@ class DOMSVGPathSegLinetoHorizontalRel
 public:
   explicit DOMSVGPathSegLinetoHorizontalRel(float x)
     : DOMSVGPathSeg()
   {
     mArgs[0] = x;
   }
 
   IMPL_SVGPATHSEG_SUBCLASS_COMMON(
-    LinetoHorizontalRel, dom::SVGPathSegBinding::PATHSEG_LINETO_HORIZONTAL_REL)
+    LinetoHorizontalRel, dom::SVGPathSeg_Binding::PATHSEG_LINETO_HORIZONTAL_REL)
 
   float X();
   void SetX(float aX, ErrorResult& rv);
 
 protected:
   float mArgs[1];
 };
 
@@ -595,17 +595,17 @@ class DOMSVGPathSegLinetoVerticalAbs
 public:
   explicit DOMSVGPathSegLinetoVerticalAbs(float y)
     : DOMSVGPathSeg()
   {
     mArgs[0] = y;
   }
 
   IMPL_SVGPATHSEG_SUBCLASS_COMMON(
-    LinetoVerticalAbs, dom::SVGPathSegBinding::PATHSEG_LINETO_VERTICAL_ABS)
+    LinetoVerticalAbs, dom::SVGPathSeg_Binding::PATHSEG_LINETO_VERTICAL_ABS)
 
   float Y();
   void SetY(float aY, ErrorResult& rv);
 
 protected:
   float mArgs[1];
 };
 
@@ -615,17 +615,17 @@ class DOMSVGPathSegLinetoVerticalRel
 public:
   explicit DOMSVGPathSegLinetoVerticalRel(float y)
     : DOMSVGPathSeg()
   {
     mArgs[0] = y;
   }
 
   IMPL_SVGPATHSEG_SUBCLASS_COMMON(
-    LinetoVerticalRel, dom::SVGPathSegBinding::PATHSEG_LINETO_VERTICAL_REL)
+    LinetoVerticalRel, dom::SVGPathSeg_Binding::PATHSEG_LINETO_VERTICAL_REL)
 
   float Y();
   void SetY(float aY, ErrorResult& rv);
 
 protected:
   float mArgs[1];
 };
 
@@ -639,17 +639,17 @@ public:
   {
     mArgs[0] = x2;
     mArgs[1] = y2;
     mArgs[2] = x;
     mArgs[3] = y;
   }
 
   IMPL_SVGPATHSEG_SUBCLASS_COMMON(
-    CurvetoCubicSmoothAbs, dom::SVGPathSegBinding::PATHSEG_CURVETO_CUBIC_SMOOTH_ABS)
+    CurvetoCubicSmoothAbs, dom::SVGPathSeg_Binding::PATHSEG_CURVETO_CUBIC_SMOOTH_ABS)
 
   float X();
   void SetX(float aX, ErrorResult& rv);
   float Y();
   void SetY(float aY, ErrorResult& rv);
   float X2();
   void SetX2(float aX2, ErrorResult& rv);
   float Y2();
@@ -669,17 +669,17 @@ public:
   {
     mArgs[0] = x2;
     mArgs[1] = y2;
     mArgs[2] = x;
     mArgs[3] = y;
   }
 
   IMPL_SVGPATHSEG_SUBCLASS_COMMON(
-    CurvetoCubicSmoothRel, dom::SVGPathSegBinding::PATHSEG_CURVETO_CUBIC_SMOOTH_REL)
+    CurvetoCubicSmoothRel, dom::SVGPathSeg_Binding::PATHSEG_CURVETO_CUBIC_SMOOTH_REL)
 
   float X();
   void SetX(float aX, ErrorResult& rv);
   float Y();
   void SetY(float aY, ErrorResult& rv);
   float X2();
   void SetX2(float aX2, ErrorResult& rv);
   float Y2();
@@ -696,17 +696,17 @@ public:
   DOMSVGPathSegCurvetoQuadraticSmoothAbs(float x, float y)
     : DOMSVGPathSeg()
   {
     mArgs[0] = x;
     mArgs[1] = y;
   }
 
   IMPL_SVGPATHSEG_SUBCLASS_COMMON(
-    CurvetoQuadraticSmoothAbs, dom::SVGPathSegBinding::PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS)
+    CurvetoQuadraticSmoothAbs, dom::SVGPathSeg_Binding::PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS)
 
   float X();
   void SetX(float aX, ErrorResult& rv);
   float Y();
   void SetY(float aY, ErrorResult& rv);
 
 protected:
   float mArgs[2];
@@ -719,17 +719,17 @@ public:
   DOMSVGPathSegCurvetoQuadraticSmoothRel(float x, float y)
     : DOMSVGPathSeg()
   {
     mArgs[0] = x;
     mArgs[1] = y;
   }
 
   IMPL_SVGPATHSEG_SUBCLASS_COMMON(
-    CurvetoQuadraticSmoothRel, dom::SVGPathSegBinding::PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL)
+    CurvetoQuadraticSmoothRel, dom::SVGPathSeg_Binding::PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL)
 
   float X();
   void SetX(float aX, ErrorResult& rv);
   float Y();
   void SetY(float aY, ErrorResult& rv);
 
 protected:
   float mArgs[2];
--- a/dom/svg/DOMSVGPathSegList.cpp
+++ b/dom/svg/DOMSVGPathSegList.cpp
@@ -108,17 +108,17 @@ DOMSVGPathSegList::~DOMSVGPathSegList()
     InternalAList().GetAnimValKey() :
     InternalAList().GetBaseValKey();
   SVGPathSegListTearoffTable().RemoveTearoff(key);
 }
 
 JSObject*
 DOMSVGPathSegList::WrapObject(JSContext *cx, JS::Handle<JSObject*> aGivenProto)
 {
-  return mozilla::dom::SVGPathSegListBinding::Wrap(cx, this, aGivenProto);
+  return mozilla::dom::SVGPathSegList_Binding::Wrap(cx, this, aGivenProto);
 }
 
 void
 DOMSVGPathSegList::InternalListWillChangeTo(const SVGPathData& aNewValue)
 {
   // When the number of items in our internal counterpart changes, we MUST stay
   // in sync. Everything in the scary comment in
   // DOMSVGLengthList::InternalBaseValListWillChangeTo applies here just as
--- a/dom/svg/DOMSVGPointList.cpp
+++ b/dom/svg/DOMSVGPointList.cpp
@@ -127,17 +127,17 @@ DOMSVGPointList::~DOMSVGPointList()
     InternalAList().GetAnimValKey() :
     InternalAList().GetBaseValKey();
   SVGPointListTearoffTable().RemoveTearoff(key);
 }
 
 JSObject*
 DOMSVGPointList::WrapObject(JSContext *cx, JS::Handle<JSObject*> aGivenProto)
 {
-  return mozilla::dom::SVGPointListBinding::Wrap(cx, this, aGivenProto);
+  return mozilla::dom::SVGPointList_Binding::Wrap(cx, this, aGivenProto);
 }
 
 void
 DOMSVGPointList::InternalListWillChangeTo(const SVGPointList& aNewValue)
 {
   // When the number of items in our internal counterpart changes, we MUST stay
   // in sync. Everything in the scary comment in
   // DOMSVGLengthList::InternalBaseValListWillChangeTo applies here too!
--- a/dom/svg/DOMSVGStringList.cpp
+++ b/dom/svg/DOMSVGStringList.cpp
@@ -89,17 +89,17 @@ DOMSVGStringList::~DOMSVGStringList()
 {
   // Script no longer has any references to us.
   SVGStringListTearoffTable().RemoveTearoff(&InternalList());
 }
 
 /* virtual */ JSObject*
 DOMSVGStringList::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGStringListBinding::Wrap(aCx, this, aGivenProto);
+  return SVGStringList_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 // ----------------------------------------------------------------------------
 // SVGStringList implementation:
 
 uint32_t
 DOMSVGStringList::NumberOfItems() const
 {
--- a/dom/svg/DOMSVGTransformList.cpp
+++ b/dom/svg/DOMSVGTransformList.cpp
@@ -68,17 +68,17 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
 NS_INTERFACE_MAP_END
 
 //----------------------------------------------------------------------
 // DOMSVGTransformList methods:
 
 JSObject*
 DOMSVGTransformList::WrapObject(JSContext *cx, JS::Handle<JSObject*> aGivenProto)
 {
-  return mozilla::dom::SVGTransformListBinding::Wrap(cx, this, aGivenProto);
+  return mozilla::dom::SVGTransformList_Binding::Wrap(cx, this, aGivenProto);
 }
 
 //----------------------------------------------------------------------
 // Helper class: AutoChangeTransformListNotifier
 // Stack-based helper class to pair calls to WillChangeTransformList and
 // DidChangeTransformList.
 class MOZ_RAII AutoChangeTransformListNotifier
 {
--- a/dom/svg/SVGAElement.cpp
+++ b/dom/svg/SVGAElement.cpp
@@ -19,17 +19,17 @@
 NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(A)
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGAElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGAElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGAElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsSVGElement::StringInfo SVGAElement::sStringInfo[3] =
 {
   { &nsGkAtoms::href, kNameSpaceID_None, true },
   { &nsGkAtoms::href, kNameSpaceID_XLink, true },
   { &nsGkAtoms::target, kNameSpaceID_None, true }
 };
--- a/dom/svg/SVGAngle.cpp
+++ b/dom/svg/SVGAngle.cpp
@@ -14,17 +14,17 @@ using namespace mozilla::dom;
 NS_SVG_VAL_IMPL_CYCLE_COLLECTION_WRAPPERCACHED(SVGAngle, mSVGElement)
 
 NS_IMPL_CYCLE_COLLECTION_ROOT_NATIVE(SVGAngle, AddRef)
 NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(SVGAngle, Release)
 
 JSObject*
 SVGAngle::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGAngleBinding::Wrap(aCx, this, aGivenProto);
+  return SVGAngle_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 uint16_t
 SVGAngle::UnitType() const
 {
   if (mType == AnimValue) {
     return mVal->mAnimValUnit;
   }
--- a/dom/svg/SVGAnimateElement.cpp
+++ b/dom/svg/SVGAnimateElement.cpp
@@ -10,17 +10,17 @@
 NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(Animate)
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGAnimateElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGAnimateElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGAnimateElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 //----------------------------------------------------------------------
 // Implementation
 
 SVGAnimateElement::SVGAnimateElement(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo)
   : SVGAnimationElement(aNodeInfo)
 {
--- a/dom/svg/SVGAnimateMotionElement.cpp
+++ b/dom/svg/SVGAnimateMotionElement.cpp
@@ -10,17 +10,17 @@
 NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(AnimateMotion)
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGAnimateMotionElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGAnimateMotionElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGAnimateMotionElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 //----------------------------------------------------------------------
 // Implementation
 
 SVGAnimateMotionElement::SVGAnimateMotionElement(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo)
   : SVGAnimationElement(aNodeInfo)
 {
--- a/dom/svg/SVGAnimateTransformElement.cpp
+++ b/dom/svg/SVGAnimateTransformElement.cpp
@@ -10,17 +10,17 @@
 NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(AnimateTransform)
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGAnimateTransformElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGAnimateTransformElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGAnimateTransformElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 //----------------------------------------------------------------------
 // Implementation
 
 SVGAnimateTransformElement::SVGAnimateTransformElement(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo)
   : SVGAnimationElement(aNodeInfo)
 {
--- a/dom/svg/SVGAnimatedAngle.cpp
+++ b/dom/svg/SVGAnimatedAngle.cpp
@@ -14,17 +14,17 @@ using namespace mozilla::dom;
 NS_SVG_VAL_IMPL_CYCLE_COLLECTION_WRAPPERCACHED(SVGAnimatedAngle, mSVGElement)
 
 NS_IMPL_CYCLE_COLLECTION_ROOT_NATIVE(SVGAnimatedAngle, AddRef)
 NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(SVGAnimatedAngle, Release)
 
 JSObject*
 SVGAnimatedAngle::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGAnimatedAngleBinding::Wrap(aCx, this, aGivenProto);
+  return SVGAnimatedAngle_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 already_AddRefed<SVGAngle>
 SVGAnimatedAngle::BaseVal()
 {
   return mVal->ToDOMBaseVal(mSVGElement);
 }
 
--- a/dom/svg/SVGAnimatedBoolean.cpp
+++ b/dom/svg/SVGAnimatedBoolean.cpp
@@ -13,11 +13,11 @@ using namespace mozilla::dom;
 NS_SVG_VAL_IMPL_CYCLE_COLLECTION_WRAPPERCACHED(SVGAnimatedBoolean, mSVGElement)
 
 NS_IMPL_CYCLE_COLLECTION_ROOT_NATIVE(SVGAnimatedBoolean, AddRef)
 NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(SVGAnimatedBoolean, Release)
 
 JSObject*
 SVGAnimatedBoolean::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGAnimatedBooleanBinding::Wrap(aCx, this, aGivenProto);
+  return SVGAnimatedBoolean_Binding::Wrap(aCx, this, aGivenProto);
 }
 
--- a/dom/svg/SVGAnimatedEnumeration.cpp
+++ b/dom/svg/SVGAnimatedEnumeration.cpp
@@ -20,13 +20,13 @@ NS_IMPL_CYCLE_COLLECTING_RELEASE(SVGAnim
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(SVGAnimatedEnumeration)
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 JSObject*
 SVGAnimatedEnumeration::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGAnimatedEnumerationBinding::Wrap(aCx, this, aGivenProto);
+  return SVGAnimatedEnumeration_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/svg/SVGAnimatedInteger.cpp
+++ b/dom/svg/SVGAnimatedInteger.cpp
@@ -20,13 +20,13 @@ NS_IMPL_CYCLE_COLLECTING_RELEASE(SVGAnim
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(SVGAnimatedInteger)
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 JSObject*
 SVGAnimatedInteger::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGAnimatedIntegerBinding::Wrap(aCx, this, aGivenProto);
+  return SVGAnimatedInteger_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/svg/SVGAnimatedLength.cpp
+++ b/dom/svg/SVGAnimatedLength.cpp
@@ -15,17 +15,17 @@ namespace dom {
 NS_SVG_VAL_IMPL_CYCLE_COLLECTION_WRAPPERCACHED(SVGAnimatedLength, mSVGElement)
 
 NS_IMPL_CYCLE_COLLECTION_ROOT_NATIVE(SVGAnimatedLength, AddRef)
 NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(SVGAnimatedLength, Release)
 
 JSObject*
 SVGAnimatedLength::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGAnimatedLengthBinding::Wrap(aCx, this, aGivenProto);
+  return SVGAnimatedLength_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 already_AddRefed<DOMSVGLength>
 SVGAnimatedLength::BaseVal()
 {
   RefPtr<DOMSVGLength> angle;
   mVal->ToDOMBaseVal(getter_AddRefs(angle), mSVGElement);
   return angle.forget();
--- a/dom/svg/SVGAnimatedLengthList.cpp
+++ b/dom/svg/SVGAnimatedLengthList.cpp
@@ -158,19 +158,19 @@ SVGAnimatedLengthList::
     // recalculate the result of the sandwich if the context changes, so we
     // take the (substantial) performance hit of preventing caching of the
     // sandwich layer, causing the animation sandwich to be recalculated every
     // single sample.
 
     aPreventCachingOfSandwich = false;
     for (uint32_t i = 0; i < llai->Length(); ++i) {
       uint8_t unit = (*llai)[i].GetUnit();
-      if (unit == SVGLengthBinding::SVG_LENGTHTYPE_PERCENTAGE ||
-          unit == SVGLengthBinding::SVG_LENGTHTYPE_EMS ||
-          unit == SVGLengthBinding::SVG_LENGTHTYPE_EXS) {
+      if (unit == SVGLength_Binding::SVG_LENGTHTYPE_PERCENTAGE ||
+          unit == SVGLength_Binding::SVG_LENGTHTYPE_EMS ||
+          unit == SVGLength_Binding::SVG_LENGTHTYPE_EXS) {
         aPreventCachingOfSandwich = true;
         break;
       }
     }
   }
   return rv;
 }
 
--- a/dom/svg/SVGAnimatedNumber.cpp
+++ b/dom/svg/SVGAnimatedNumber.cpp
@@ -20,13 +20,13 @@ NS_IMPL_CYCLE_COLLECTING_RELEASE(SVGAnim
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(SVGAnimatedNumber)
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 JSObject*
 SVGAnimatedNumber::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGAnimatedNumberBinding::Wrap(aCx, this, aGivenProto);
+  return SVGAnimatedNumber_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/svg/SVGAnimatedPreserveAspectRatio.cpp
+++ b/dom/svg/SVGAnimatedPreserveAspectRatio.cpp
@@ -26,17 +26,17 @@ NS_IMPL_CYCLE_COLLECTING_RELEASE(DOMSVGA
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(DOMSVGAnimatedPreserveAspectRatio)
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 JSObject*
 DOMSVGAnimatedPreserveAspectRatio::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGAnimatedPreserveAspectRatioBinding::Wrap(aCx, this, aGivenProto);
+  return SVGAnimatedPreserveAspectRatio_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 /* Implementation */
 
 static nsSVGAttrTearoffTable<SVGAnimatedPreserveAspectRatio, DOMSVGAnimatedPreserveAspectRatio>
   sSVGAnimatedPAspectRatioTearoffTable;
 static nsSVGAttrTearoffTable<SVGAnimatedPreserveAspectRatio, DOMSVGPreserveAspectRatio>
   sBaseSVGPAspectRatioTearoffTable;
--- a/dom/svg/SVGAnimatedPreserveAspectRatio.h
+++ b/dom/svg/SVGAnimatedPreserveAspectRatio.h
@@ -23,19 +23,19 @@ class DOMSVGAnimatedPreserveAspectRatio;
 class SVGAnimationElement;
 } // namespace dom
 
 class SVGAnimatedPreserveAspectRatio final
 {
 public:
   void Init() {
     mBaseVal.mAlign =
-      dom::SVGPreserveAspectRatioBinding::SVG_PRESERVEASPECTRATIO_XMIDYMID;
+      dom::SVGPreserveAspectRatio_Binding::SVG_PRESERVEASPECTRATIO_XMIDYMID;
     mBaseVal.mMeetOrSlice =
-      dom::SVGPreserveAspectRatioBinding::SVG_MEETORSLICE_MEET;
+      dom::SVGPreserveAspectRatio_Binding::SVG_MEETORSLICE_MEET;
     mAnimVal = mBaseVal;
     mIsAnimated = false;
     mIsBaseSet = false;
   }
 
   nsresult SetBaseValueString(const nsAString& aValue,
                               nsSVGElement *aSVGElement,
                               bool aDoSetAttr);
--- a/dom/svg/SVGAnimatedRect.cpp
+++ b/dom/svg/SVGAnimatedRect.cpp
@@ -39,13 +39,13 @@ already_AddRefed<SVGIRect>
 SVGAnimatedRect::GetAnimVal()
 {
   return mVal->ToDOMAnimVal(mSVGElement);
 }
 
 JSObject*
 SVGAnimatedRect::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGAnimatedRectBinding::Wrap(aCx, this, aGivenProto);
+  return SVGAnimatedRect_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/svg/SVGAnimatedString.cpp
+++ b/dom/svg/SVGAnimatedString.cpp
@@ -8,13 +8,13 @@
 #include "mozilla/dom/SVGAnimatedStringBinding.h"
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGAnimatedString::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGAnimatedStringBinding::Wrap(aCx, this, aGivenProto);
+  return SVGAnimatedString_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/svg/SVGAnimatedTransformList.cpp
+++ b/dom/svg/SVGAnimatedTransformList.cpp
@@ -20,17 +20,17 @@ static
 NS_SVG_VAL_IMPL_CYCLE_COLLECTION_WRAPPERCACHED(SVGAnimatedTransformList, mElement)
 
 NS_IMPL_CYCLE_COLLECTION_ROOT_NATIVE(SVGAnimatedTransformList, AddRef)
 NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(SVGAnimatedTransformList, Release)
 
 JSObject*
 SVGAnimatedTransformList::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGAnimatedTransformListBinding::Wrap(aCx, this, aGivenProto);
+  return SVGAnimatedTransformList_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 //----------------------------------------------------------------------
 already_AddRefed<DOMSVGTransformList>
 SVGAnimatedTransformList::BaseVal()
 {
   if (!mBaseVal) {
     mBaseVal = new DOMSVGTransformList(this, InternalAList().GetBaseValue());
--- a/dom/svg/SVGCircleElement.cpp
+++ b/dom/svg/SVGCircleElement.cpp
@@ -15,24 +15,24 @@ NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(Ci
 using namespace mozilla::gfx;
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGCircleElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGCircleElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGCircleElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsSVGElement::LengthInfo SVGCircleElement::sLengthInfo[3] =
 {
-  { &nsGkAtoms::cx, 0, SVGLengthBinding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::X },
-  { &nsGkAtoms::cy, 0, SVGLengthBinding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::Y },
-  { &nsGkAtoms::r, 0, SVGLengthBinding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::XY }
+  { &nsGkAtoms::cx, 0, SVGLength_Binding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::X },
+  { &nsGkAtoms::cy, 0, SVGLength_Binding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::Y },
+  { &nsGkAtoms::r, 0, SVGLength_Binding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::XY }
 };
 
 //----------------------------------------------------------------------
 // Implementation
 
 SVGCircleElement::SVGCircleElement(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo)
   : SVGCircleElementBase(aNodeInfo)
 {
--- a/dom/svg/SVGClipPathElement.cpp
+++ b/dom/svg/SVGClipPathElement.cpp
@@ -11,22 +11,22 @@
 #include "mozilla/dom/SVGUnitTypesBinding.h"
 #include "nsGkAtoms.h"
 
 NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(ClipPath)
 
 namespace mozilla {
 namespace dom {
 
-using namespace SVGUnitTypesBinding;
+using namespace SVGUnitTypes_Binding;
 
 JSObject*
 SVGClipPathElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGClipPathElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGClipPathElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsSVGElement::EnumInfo SVGClipPathElement::sEnumInfo[1] =
 {
   { &nsGkAtoms::clipPathUnits,
     sSVGUnitTypesMap,
     SVG_UNIT_TYPE_USERSPACEONUSE
   }
--- a/dom/svg/SVGContentUtils.cpp
+++ b/dom/svg/SVGContentUtils.cpp
@@ -30,17 +30,17 @@
 #include "mozilla/FloatingPoint.h"
 #include "mozilla/ComputedStyle.h"
 #include "nsSVGPathDataParser.h"
 #include "SVGPathData.h"
 #include "SVGPathElement.h"
 
 using namespace mozilla;
 using namespace mozilla::dom;
-using namespace mozilla::dom::SVGPreserveAspectRatioBinding;
+using namespace mozilla::dom::SVGPreserveAspectRatio_Binding;
 using namespace mozilla::gfx;
 
 SVGSVGElement*
 SVGContentUtils::GetOuterSVGElement(nsSVGElement *aSVGElement)
 {
   nsIContent *element = nullptr;
   nsIContent *ancestor = aSVGElement->GetFlattenedTreeParent();
 
--- a/dom/svg/SVGDefsElement.cpp
+++ b/dom/svg/SVGDefsElement.cpp
@@ -10,17 +10,17 @@
 NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(Defs)
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGDefsElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGDefsElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGDefsElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 //----------------------------------------------------------------------
 // Implementation
 
 SVGDefsElement::SVGDefsElement(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo)
   : SVGGraphicsElement(aNodeInfo)
 {
--- a/dom/svg/SVGDescElement.cpp
+++ b/dom/svg/SVGDescElement.cpp
@@ -10,17 +10,17 @@
 NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(Desc)
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGDescElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGDescElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGDescElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 //----------------------------------------------------------------------
 // Implementation
 
 SVGDescElement::SVGDescElement(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo)
   : SVGDescElementBase(aNodeInfo)
 {
--- a/dom/svg/SVGEllipseElement.cpp
+++ b/dom/svg/SVGEllipseElement.cpp
@@ -16,25 +16,25 @@ NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(El
 using namespace mozilla::gfx;
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGEllipseElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGEllipseElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGEllipseElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsSVGElement::LengthInfo SVGEllipseElement::sLengthInfo[4] =
 {
-  { &nsGkAtoms::cx, 0, SVGLengthBinding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::X },
-  { &nsGkAtoms::cy, 0, SVGLengthBinding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::Y },
-  { &nsGkAtoms::rx, 0, SVGLengthBinding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::X },
-  { &nsGkAtoms::ry, 0, SVGLengthBinding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::Y },
+  { &nsGkAtoms::cx, 0, SVGLength_Binding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::X },
+  { &nsGkAtoms::cy, 0, SVGLength_Binding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::Y },
+  { &nsGkAtoms::rx, 0, SVGLength_Binding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::X },
+  { &nsGkAtoms::ry, 0, SVGLength_Binding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::Y },
 };
 
 //----------------------------------------------------------------------
 // Implementation
 
 SVGEllipseElement::SVGEllipseElement(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo)
   : SVGEllipseElementBase(aNodeInfo)
 {
--- a/dom/svg/SVGFEBlendElement.cpp
+++ b/dom/svg/SVGFEBlendElement.cpp
@@ -13,17 +13,17 @@ NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(FE
 using namespace mozilla::gfx;
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGFEBlendElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGFEBlendElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGFEBlendElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsSVGEnumMapping SVGFEBlendElement::sModeMap[] = {
   {&nsGkAtoms::normal, SVG_FEBLEND_MODE_NORMAL},
   {&nsGkAtoms::multiply, SVG_FEBLEND_MODE_MULTIPLY},
   {&nsGkAtoms::screen, SVG_FEBLEND_MODE_SCREEN},
   {&nsGkAtoms::darken, SVG_FEBLEND_MODE_DARKEN},
   {&nsGkAtoms::lighten, SVG_FEBLEND_MODE_LIGHTEN},
--- a/dom/svg/SVGFEColorMatrixElement.cpp
+++ b/dom/svg/SVGFEColorMatrixElement.cpp
@@ -16,17 +16,17 @@ NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(FE
 using namespace mozilla::gfx;
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGFEColorMatrixElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGFEColorMatrixElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGFEColorMatrixElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsSVGEnumMapping SVGFEColorMatrixElement::sTypeMap[] = {
   {&nsGkAtoms::matrix, SVG_FECOLORMATRIX_TYPE_MATRIX},
   {&nsGkAtoms::saturate, SVG_FECOLORMATRIX_TYPE_SATURATE},
   {&nsGkAtoms::hueRotate, SVG_FECOLORMATRIX_TYPE_HUE_ROTATE},
   {&nsGkAtoms::luminanceToAlpha, SVG_FECOLORMATRIX_TYPE_LUMINANCE_TO_ALPHA},
   {nullptr, 0}
--- a/dom/svg/SVGFEComponentTransferElement.cpp
+++ b/dom/svg/SVGFEComponentTransferElement.cpp
@@ -15,17 +15,17 @@ NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(FE
 using namespace mozilla::gfx;;
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGFEComponentTransferElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGFEComponentTransferElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGFEComponentTransferElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsSVGElement::StringInfo SVGFEComponentTransferElement::sStringInfo[2] =
 {
   { &nsGkAtoms::result, kNameSpaceID_None, true },
   { &nsGkAtoms::in, kNameSpaceID_None, true }
 };
 
--- a/dom/svg/SVGFECompositeElement.cpp
+++ b/dom/svg/SVGFECompositeElement.cpp
@@ -12,17 +12,17 @@ NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(FE
 using namespace mozilla::gfx;
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGFECompositeElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGFECompositeElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGFECompositeElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsSVGElement::NumberInfo SVGFECompositeElement::sNumberInfo[4] =
 {
   { &nsGkAtoms::k1, 0, false },
   { &nsGkAtoms::k2, 0, false },
   { &nsGkAtoms::k3, 0, false },
   { &nsGkAtoms::k4, 0, false }
--- a/dom/svg/SVGFEConvolveMatrixElement.cpp
+++ b/dom/svg/SVGFEConvolveMatrixElement.cpp
@@ -17,17 +17,17 @@ NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(FE
 using namespace mozilla::gfx;
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGFEConvolveMatrixElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGFEConvolveMatrixElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGFEConvolveMatrixElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsSVGElement::NumberInfo SVGFEConvolveMatrixElement::sNumberInfo[2] =
 {
   { &nsGkAtoms::divisor, 1, false },
   { &nsGkAtoms::bias, 0, false }
 };
 
--- a/dom/svg/SVGFEDiffuseLightingElement.cpp
+++ b/dom/svg/SVGFEDiffuseLightingElement.cpp
@@ -14,17 +14,17 @@ NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(FE
 using namespace mozilla::gfx;
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGFEDiffuseLightingElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGFEDiffuseLightingElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGFEDiffuseLightingElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 //----------------------------------------------------------------------
 // nsINode methods
 
 NS_IMPL_ELEMENT_CLONE_WITH_INIT(SVGFEDiffuseLightingElement)
 
 //----------------------------------------------------------------------
--- a/dom/svg/SVGFEDisplacementMapElement.cpp
+++ b/dom/svg/SVGFEDisplacementMapElement.cpp
@@ -14,17 +14,17 @@ NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(FE
 using namespace mozilla::gfx;
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGFEDisplacementMapElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGFEDisplacementMapElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGFEDisplacementMapElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsSVGElement::NumberInfo SVGFEDisplacementMapElement::sNumberInfo[1] =
 {
   { &nsGkAtoms::scale, 0, false },
 };
 
 nsSVGEnumMapping SVGFEDisplacementMapElement::sChannelMap[] = {
--- a/dom/svg/SVGFEDistantLightElement.cpp
+++ b/dom/svg/SVGFEDistantLightElement.cpp
@@ -13,17 +13,17 @@ NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(FE
 using namespace mozilla::gfx;
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGFEDistantLightElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGFEDistantLightElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGFEDistantLightElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsSVGElement::NumberInfo SVGFEDistantLightElement::sNumberInfo[2] =
 {
   { &nsGkAtoms::azimuth,   0, false },
   { &nsGkAtoms::elevation, 0, false }
 };
 
--- a/dom/svg/SVGFEDropShadowElement.cpp
+++ b/dom/svg/SVGFEDropShadowElement.cpp
@@ -14,17 +14,17 @@ NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(FE
 using namespace mozilla::gfx;
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGFEDropShadowElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGFEDropShadowElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGFEDropShadowElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsSVGElement::NumberInfo SVGFEDropShadowElement::sNumberInfo[2] =
 {
   { &nsGkAtoms::dx, 2, false },
   { &nsGkAtoms::dy, 2, false }
 };
 
--- a/dom/svg/SVGFEFloodElement.cpp
+++ b/dom/svg/SVGFEFloodElement.cpp
@@ -16,17 +16,17 @@ NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(FE
 using namespace mozilla::gfx;
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGFEFloodElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGFEFloodElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGFEFloodElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsSVGElement::StringInfo SVGFEFloodElement::sStringInfo[1] =
 {
   { &nsGkAtoms::result, kNameSpaceID_None, true }
 };
 
 //----------------------------------------------------------------------
--- a/dom/svg/SVGFEGaussianBlurElement.cpp
+++ b/dom/svg/SVGFEGaussianBlurElement.cpp
@@ -14,17 +14,17 @@ NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(FE
 using namespace mozilla::gfx;
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGFEGaussianBlurElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGFEGaussianBlurElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGFEGaussianBlurElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsSVGElement::NumberPairInfo SVGFEGaussianBlurElement::sNumberPairInfo[1] =
 {
   { &nsGkAtoms::stdDeviation, 0, 0 }
 };
 
 nsSVGElement::StringInfo SVGFEGaussianBlurElement::sStringInfo[2] =
--- a/dom/svg/SVGFEImageElement.cpp
+++ b/dom/svg/SVGFEImageElement.cpp
@@ -24,17 +24,17 @@ NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(FE
 using namespace mozilla::gfx;
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGFEImageElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGFEImageElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGFEImageElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsSVGElement::StringInfo SVGFEImageElement::sStringInfo[3] =
 {
   { &nsGkAtoms::result, kNameSpaceID_None, true },
   { &nsGkAtoms::href, kNameSpaceID_None, true },
   { &nsGkAtoms::href, kNameSpaceID_XLink, true }
 };
--- a/dom/svg/SVGFEMergeElement.cpp
+++ b/dom/svg/SVGFEMergeElement.cpp
@@ -13,17 +13,17 @@ NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(FE
 using namespace mozilla::gfx;
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGFEMergeElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGFEMergeElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGFEMergeElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsSVGElement::StringInfo SVGFEMergeElement::sStringInfo[1] =
 {
   { &nsGkAtoms::result, kNameSpaceID_None, true }
 };
 
 NS_IMPL_ELEMENT_CLONE_WITH_INIT(SVGFEMergeElement)
--- a/dom/svg/SVGFEMergeNodeElement.cpp
+++ b/dom/svg/SVGFEMergeNodeElement.cpp
@@ -10,17 +10,17 @@
 NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(FEMergeNode)
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGFEMergeNodeElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGFEMergeNodeElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGFEMergeNodeElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsSVGElement::StringInfo SVGFEMergeNodeElement::sStringInfo[1] =
 {
   { &nsGkAtoms::in, kNameSpaceID_None, true }
 };
 
 //----------------------------------------------------------------------
--- a/dom/svg/SVGFEMorphologyElement.cpp
+++ b/dom/svg/SVGFEMorphologyElement.cpp
@@ -13,17 +13,17 @@ NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(FE
 using namespace mozilla::gfx;
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGFEMorphologyElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGFEMorphologyElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGFEMorphologyElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsSVGElement::NumberPairInfo SVGFEMorphologyElement::sNumberPairInfo[1] =
 {
   { &nsGkAtoms::radius, 0, 0 }
 };
 
 nsSVGEnumMapping SVGFEMorphologyElement::sOperatorMap[] = {
--- a/dom/svg/SVGFEOffsetElement.cpp
+++ b/dom/svg/SVGFEOffsetElement.cpp
@@ -13,17 +13,17 @@ NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(FE
 using namespace mozilla::gfx;
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGFEOffsetElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGFEOffsetElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGFEOffsetElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsSVGElement::NumberInfo SVGFEOffsetElement::sNumberInfo[2] =
 {
   { &nsGkAtoms::dx, 0, false },
   { &nsGkAtoms::dy, 0, false }
 };
 
--- a/dom/svg/SVGFEPointLightElement.cpp
+++ b/dom/svg/SVGFEPointLightElement.cpp
@@ -13,17 +13,17 @@ NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(FE
 using namespace mozilla::gfx;
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGFEPointLightElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGFEPointLightElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGFEPointLightElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsSVGElement::NumberInfo SVGFEPointLightElement::sNumberInfo[3] =
 {
   { &nsGkAtoms::x, 0, false },
   { &nsGkAtoms::y, 0, false },
   { &nsGkAtoms::z, 0, false }
 };
--- a/dom/svg/SVGFESpecularLightingElement.cpp
+++ b/dom/svg/SVGFESpecularLightingElement.cpp
@@ -14,17 +14,17 @@ NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(FE
 using namespace mozilla::gfx;
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGFESpecularLightingElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGFESpecularLightingElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGFESpecularLightingElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 //----------------------------------------------------------------------
 // nsINode methods
 
 NS_IMPL_ELEMENT_CLONE_WITH_INIT(SVGFESpecularLightingElement)
 
 already_AddRefed<SVGAnimatedString>
--- a/dom/svg/SVGFESpotLightElement.cpp
+++ b/dom/svg/SVGFESpotLightElement.cpp
@@ -13,17 +13,17 @@ NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(FE
 using namespace mozilla::gfx;
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGFESpotLightElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGFESpotLightElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGFESpotLightElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsSVGElement::NumberInfo SVGFESpotLightElement::sNumberInfo[8] =
 {
   { &nsGkAtoms::x, 0, false },
   { &nsGkAtoms::y, 0, false },
   { &nsGkAtoms::z, 0, false },
   { &nsGkAtoms::pointsAtX, 0, false },
--- a/dom/svg/SVGFETileElement.cpp
+++ b/dom/svg/SVGFETileElement.cpp
@@ -13,17 +13,17 @@ NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(FE
 using namespace mozilla::gfx;
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGFETileElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGFETileElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGFETileElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsSVGElement::StringInfo SVGFETileElement::sStringInfo[2] =
 {
   { &nsGkAtoms::result, kNameSpaceID_None, true },
   { &nsGkAtoms::in, kNameSpaceID_None, true }
 };
 
--- a/dom/svg/SVGFETurbulenceElement.cpp
+++ b/dom/svg/SVGFETurbulenceElement.cpp
@@ -20,17 +20,17 @@ namespace dom {
 static const unsigned short SVG_STITCHTYPE_STITCH = 1;
 static const unsigned short SVG_STITCHTYPE_NOSTITCH = 2;
 
 static const int32_t MAX_OCTAVES = 10;
 
 JSObject*
 SVGFETurbulenceElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGFETurbulenceElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGFETurbulenceElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsSVGElement::NumberInfo SVGFETurbulenceElement::sNumberInfo[1] =
 {
   { &nsGkAtoms::seed, 0, false }
 };
 
 nsSVGElement::NumberPairInfo SVGFETurbulenceElement::sNumberPairInfo[1] =
--- a/dom/svg/SVGFilterElement.cpp
+++ b/dom/svg/SVGFilterElement.cpp
@@ -14,30 +14,30 @@
 #include "mozilla/dom/SVGUnitTypesBinding.h"
 #include "nsSVGUtils.h"
 
 NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(Filter)
 
 namespace mozilla {
 namespace dom {
 
-using namespace SVGUnitTypesBinding;
+using namespace SVGUnitTypes_Binding;
 
 JSObject*
 SVGFilterElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGFilterElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGFilterElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsSVGElement::LengthInfo SVGFilterElement::sLengthInfo[4] =
 {
-  { &nsGkAtoms::x, -10, SVGLengthBinding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::X },
-  { &nsGkAtoms::y, -10, SVGLengthBinding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::Y },
-  { &nsGkAtoms::width, 120, SVGLengthBinding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::X },
-  { &nsGkAtoms::height, 120, SVGLengthBinding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::Y },
+  { &nsGkAtoms::x, -10, SVGLength_Binding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::X },
+  { &nsGkAtoms::y, -10, SVGLength_Binding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::Y },
+  { &nsGkAtoms::width, 120, SVGLength_Binding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::X },
+  { &nsGkAtoms::height, 120, SVGLength_Binding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::Y },
 };
 
 nsSVGElement::EnumInfo SVGFilterElement::sEnumInfo[2] =
 {
   { &nsGkAtoms::filterUnits,
     sSVGUnitTypesMap,
     SVG_UNIT_TYPE_OBJECTBOUNDINGBOX
   },
--- a/dom/svg/SVGForeignObjectElement.cpp
+++ b/dom/svg/SVGForeignObjectElement.cpp
@@ -15,25 +15,25 @@
 NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(ForeignObject)
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGForeignObjectElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGForeignObjectElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGForeignObjectElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsSVGElement::LengthInfo SVGForeignObjectElement::sLengthInfo[4] =
 {
-  { &nsGkAtoms::x, 0, SVGLengthBinding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::X },
-  { &nsGkAtoms::y, 0, SVGLengthBinding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::Y },
-  { &nsGkAtoms::width, 0, SVGLengthBinding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::X },
-  { &nsGkAtoms::height, 0, SVGLengthBinding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::Y },
+  { &nsGkAtoms::x, 0, SVGLength_Binding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::X },
+  { &nsGkAtoms::y, 0, SVGLength_Binding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::Y },
+  { &nsGkAtoms::width, 0, SVGLength_Binding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::X },
+  { &nsGkAtoms::height, 0, SVGLength_Binding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::Y },
 };
 
 //----------------------------------------------------------------------
 // Implementation
 
 SVGForeignObjectElement::SVGForeignObjectElement(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo)
   : SVGGraphicsElement(aNodeInfo)
 {
--- a/dom/svg/SVGGElement.cpp
+++ b/dom/svg/SVGGElement.cpp
@@ -10,17 +10,17 @@
 NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(G)
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGGElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGGElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGGElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 //----------------------------------------------------------------------
 // Implementation
 
 SVGGElement::SVGGElement(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo)
   : SVGGraphicsElement(aNodeInfo)
 {
--- a/dom/svg/SVGGeometryElement.cpp
+++ b/dom/svg/SVGGeometryElement.cpp
@@ -80,17 +80,17 @@ SVGGeometryElement::AttributeDefinesGeom
 
 bool
 SVGGeometryElement::GeometryDependsOnCoordCtx()
 {
   // Check the nsSVGLength2 attribute
   LengthAttributesInfo info = const_cast<SVGGeometryElement*>(this)->GetLengthInfo();
   for (uint32_t i = 0; i < info.mLengthCount; i++) {
     if (info.mLengths[i].GetSpecifiedUnitType() ==
-          SVGLengthBinding::SVG_LENGTHTYPE_PERCENTAGE) {
+          SVGLength_Binding::SVG_LENGTHTYPE_PERCENTAGE) {
       return true;
     }
   }
   return false;
 }
 
 bool
 SVGGeometryElement::IsMarkable()
--- a/dom/svg/SVGGradientElement.cpp
+++ b/dom/svg/SVGGradientElement.cpp
@@ -18,18 +18,18 @@
 #include "nsSVGElement.h"
 
 NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(LinearGradient)
 NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(RadialGradient)
 
 namespace mozilla {
 namespace dom {
 
-using namespace SVGGradientElementBinding;
-using namespace SVGUnitTypesBinding;
+using namespace SVGGradientElement_Binding;
+using namespace SVGUnitTypes_Binding;
 
 //--------------------- Gradients------------------------
 
 nsSVGEnumMapping SVGGradientElement::sSpreadMethodMap[] = {
   {&nsGkAtoms::pad, SVG_SPREADMETHOD_PAD},
   {&nsGkAtoms::reflect, SVG_SPREADMETHOD_REFLECT},
   {&nsGkAtoms::repeat, SVG_SPREADMETHOD_REPEAT},
   {nullptr, 0}
@@ -122,25 +122,25 @@ SVGGradientElement::IsAttributeMapped(co
     SVGGradientElementBase::IsAttributeMapped(name);
 }
 
 //---------------------Linear Gradients------------------------
 
 JSObject*
 SVGLinearGradientElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGLinearGradientElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGLinearGradientElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsSVGElement::LengthInfo SVGLinearGradientElement::sLengthInfo[4] =
 {
-  { &nsGkAtoms::x1, 0, SVGLengthBinding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::X },
-  { &nsGkAtoms::y1, 0, SVGLengthBinding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::Y },
-  { &nsGkAtoms::x2, 100, SVGLengthBinding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::X },
-  { &nsGkAtoms::y2, 0, SVGLengthBinding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::Y },
+  { &nsGkAtoms::x1, 0, SVGLength_Binding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::X },
+  { &nsGkAtoms::y1, 0, SVGLength_Binding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::Y },
+  { &nsGkAtoms::x2, 100, SVGLength_Binding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::X },
+  { &nsGkAtoms::y2, 0, SVGLength_Binding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::Y },
 };
 
 //----------------------------------------------------------------------
 // Implementation
 
 SVGLinearGradientElement::SVGLinearGradientElement(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo)
   : SVGLinearGradientElementBase(aNodeInfo)
 {
@@ -196,27 +196,27 @@ SVGLinearGradientElement::GetLengthInfo(
                               ArrayLength(sLengthInfo));
 }
 
 //-------------------------- Radial Gradients ----------------------------
 
 JSObject*
 SVGRadialGradientElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGRadialGradientElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGRadialGradientElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsSVGElement::LengthInfo SVGRadialGradientElement::sLengthInfo[6] =
 {
-  { &nsGkAtoms::cx, 50, SVGLengthBinding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::X },
-  { &nsGkAtoms::cy, 50, SVGLengthBinding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::Y },
-  { &nsGkAtoms::r, 50, SVGLengthBinding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::XY },
-  { &nsGkAtoms::fx, 50, SVGLengthBinding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::X },
-  { &nsGkAtoms::fy, 50, SVGLengthBinding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::Y },
-  { &nsGkAtoms::fr, 0, SVGLengthBinding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::XY },
+  { &nsGkAtoms::cx, 50, SVGLength_Binding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::X },
+  { &nsGkAtoms::cy, 50, SVGLength_Binding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::Y },
+  { &nsGkAtoms::r, 50, SVGLength_Binding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::XY },
+  { &nsGkAtoms::fx, 50, SVGLength_Binding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::X },
+  { &nsGkAtoms::fy, 50, SVGLength_Binding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::Y },
+  { &nsGkAtoms::fr, 0, SVGLength_Binding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::XY },
 };
 
 //----------------------------------------------------------------------
 // Implementation
 
 SVGRadialGradientElement::SVGRadialGradientElement(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo)
   : SVGRadialGradientElementBase(aNodeInfo)
 {
--- a/dom/svg/SVGIRect.h
+++ b/dom/svg/SVGIRect.h
@@ -23,17 +23,17 @@ class SVGIRect : public nsISupports,
 {
 public:
   virtual ~SVGIRect()
   {
   }
 
   JSObject* WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override
   {
-    return SVGRectBinding::Wrap(aCx, this, aGivenProto);
+    return SVGRect_Binding::Wrap(aCx, this, aGivenProto);
   }
 
   virtual nsIContent* GetParentObject() const = 0;
 
   virtual float X() const = 0;
 
   virtual void SetX(float aX, ErrorResult& aRv) = 0;
 
--- a/dom/svg/SVGImageElement.cpp
+++ b/dom/svg/SVGImageElement.cpp
@@ -23,25 +23,25 @@ NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(Im
 using namespace mozilla::gfx;
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGImageElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGImageElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGImageElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsSVGElement::LengthInfo SVGImageElement::sLengthInfo[4] =
 {
-  { &nsGkAtoms::x, 0, SVGLengthBinding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::X },
-  { &nsGkAtoms::y, 0, SVGLengthBinding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::Y },
-  { &nsGkAtoms::width, 0, SVGLengthBinding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::X },
-  { &nsGkAtoms::height, 0, SVGLengthBinding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::Y },
+  { &nsGkAtoms::x, 0, SVGLength_Binding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::X },
+  { &nsGkAtoms::y, 0, SVGLength_Binding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::Y },
+  { &nsGkAtoms::width, 0, SVGLength_Binding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::X },
+  { &nsGkAtoms::height, 0, SVGLength_Binding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::Y },
 };
 
 nsSVGElement::StringInfo SVGImageElement::sStringInfo[2] =
 {
   { &nsGkAtoms::href, kNameSpaceID_None, true },
   { &nsGkAtoms::href, kNameSpaceID_XLink, true }
 };
 
--- a/dom/svg/SVGLength.cpp
+++ b/dom/svg/SVGLength.cpp
@@ -54,30 +54,30 @@ SVGLength::SetValueFromString(const nsAS
   mValue = value;
   mUnit = uint8_t(unitType);
   return true;
 }
 
 inline static bool
 IsAbsoluteUnit(uint8_t aUnit)
 {
-  return aUnit >= SVGLengthBinding::SVG_LENGTHTYPE_CM &&
-         aUnit <= SVGLengthBinding::SVG_LENGTHTYPE_PC;
+  return aUnit >= SVGLength_Binding::SVG_LENGTHTYPE_CM &&
+         aUnit <= SVGLength_Binding::SVG_LENGTHTYPE_PC;
 }
 
 /**
  * Helper to convert between different CSS absolute units without the need for
  * an element, which provides more flexibility at the DOM level (and without
  * the need for an intermediary conversion to user units, which avoids
  * unnecessary overhead and rounding error).
  *
  * Example usage: to find out how many centimeters there are per inch:
  *
- *   GetAbsUnitsPerAbsUnit(SVGLengthBinding::SVG_LENGTHTYPE_CM,
- *                         SVGLengthBinding::SVG_LENGTHTYPE_IN)
+ *   GetAbsUnitsPerAbsUnit(SVGLength_Binding::SVG_LENGTHTYPE_CM,
+ *                         SVGLength_Binding::SVG_LENGTHTYPE_IN)
  */
 inline static float GetAbsUnitsPerAbsUnit(uint8_t aUnits, uint8_t aPerUnit)
 {
   MOZ_ASSERT(IsAbsoluteUnit(aUnits), "Not a CSS absolute unit");
   MOZ_ASSERT(IsAbsoluteUnit(aPerUnit), "Not a CSS absolute unit");
 
   float CSSAbsoluteUnitConversionFactors[5][5] = { // columns: cm, mm, in, pt, pc
     // cm per...:
@@ -99,20 +99,20 @@ inline static float GetAbsUnitsPerAbsUni
 float
 SVGLength::GetValueInSpecifiedUnit(uint8_t aUnit,
                                    const nsSVGElement *aElement,
                                    uint8_t aAxis) const
 {
   if (aUnit == mUnit) {
     return mValue;
   }
-  if ((aUnit == SVGLengthBinding::SVG_LENGTHTYPE_NUMBER &&
-       mUnit == SVGLengthBinding::SVG_LENGTHTYPE_PX) ||
-      (aUnit == SVGLengthBinding::SVG_LENGTHTYPE_PX &&
-       mUnit == SVGLengthBinding::SVG_LENGTHTYPE_NUMBER)) {
+  if ((aUnit == SVGLength_Binding::SVG_LENGTHTYPE_NUMBER &&
+       mUnit == SVGLength_Binding::SVG_LENGTHTYPE_PX) ||
+      (aUnit == SVGLength_Binding::SVG_LENGTHTYPE_PX &&
+       mUnit == SVGLength_Binding::SVG_LENGTHTYPE_NUMBER)) {
     return mValue;
   }
   if (IsAbsoluteUnit(aUnit) && IsAbsoluteUnit(mUnit)) {
     return mValue * GetAbsUnitsPerAbsUnit(aUnit, mUnit);
   }
 
   // Otherwise we do a two step conversion via user units. This can only
   // succeed if aElement is non-null (although that's not sufficient to
@@ -141,34 +141,34 @@ SVGLength::GetValueInSpecifiedUnit(uint8
 
 #define INCHES_PER_MM_FLOAT float(0.0393700787)
 #define INCHES_PER_CM_FLOAT float(0.393700787)
 
 float
 SVGLength::GetUserUnitsPerUnit(const nsSVGElement *aElement, uint8_t aAxis) const
 {
   switch (mUnit) {
-    case SVGLengthBinding::SVG_LENGTHTYPE_NUMBER:
-    case SVGLengthBinding::SVG_LENGTHTYPE_PX:
+    case SVGLength_Binding::SVG_LENGTHTYPE_NUMBER:
+    case SVGLength_Binding::SVG_LENGTHTYPE_PX:
       return 1.0f;
-    case SVGLengthBinding::SVG_LENGTHTYPE_MM:
+    case SVGLength_Binding::SVG_LENGTHTYPE_MM:
       return INCHES_PER_MM_FLOAT * GetUserUnitsPerInch();
-    case SVGLengthBinding::SVG_LENGTHTYPE_CM:
+    case SVGLength_Binding::SVG_LENGTHTYPE_CM:
       return INCHES_PER_CM_FLOAT * GetUserUnitsPerInch();
-    case SVGLengthBinding::SVG_LENGTHTYPE_IN:
+    case SVGLength_Binding::SVG_LENGTHTYPE_IN:
       return GetUserUnitsPerInch();
-    case SVGLengthBinding::SVG_LENGTHTYPE_PT:
+    case SVGLength_Binding::SVG_LENGTHTYPE_PT:
       return (1.0f/POINTS_PER_INCH_FLOAT) * GetUserUnitsPerInch();
-    case SVGLengthBinding::SVG_LENGTHTYPE_PC:
+    case SVGLength_Binding::SVG_LENGTHTYPE_PC:
       return (12.0f/POINTS_PER_INCH_FLOAT) * GetUserUnitsPerInch();
-    case SVGLengthBinding::SVG_LENGTHTYPE_PERCENTAGE:
+    case SVGLength_Binding::SVG_LENGTHTYPE_PERCENTAGE:
       return GetUserUnitsPerPercent(aElement, aAxis);
-    case SVGLengthBinding::SVG_LENGTHTYPE_EMS:
+    case SVGLength_Binding::SVG_LENGTHTYPE_EMS:
       return SVGContentUtils::GetFontSize(const_cast<nsSVGElement*>(aElement));
-    case SVGLengthBinding::SVG_LENGTHTYPE_EXS:
+    case SVGLength_Binding::SVG_LENGTHTYPE_EXS:
       return SVGContentUtils::GetFontXHeight(const_cast<nsSVGElement*>(aElement));
     default:
       NS_NOTREACHED("Unknown unit type");
       return std::numeric_limits<float>::quiet_NaN();
   }
 }
 
 /* static */ float
@@ -212,23 +212,23 @@ GetUnitString(nsAString& unit, uint16_t 
   }
   NS_NOTREACHED("Unknown unit type"); // Someone's using an SVGLength with an invalid unit?
 }
 
 static uint16_t
 GetUnitTypeForString(const nsAString& unitStr)
 {
   if (unitStr.IsEmpty())
-    return SVGLengthBinding::SVG_LENGTHTYPE_NUMBER;
+    return SVGLength_Binding::SVG_LENGTHTYPE_NUMBER;
 
   nsAtom* unitAtom = NS_GetStaticAtom(unitStr);
 
   if (unitAtom) {
     for (uint32_t i = 1 ; i < ArrayLength(unitMap) ; i++) {
       if (unitMap[i] && *unitMap[i] == unitAtom) {
         return i;
       }
     }
   }
-  return SVGLengthBinding::SVG_LENGTHTYPE_UNKNOWN;
+  return SVGLength_Binding::SVG_LENGTHTYPE_UNKNOWN;
 }
 
 } // namespace mozilla
--- a/dom/svg/SVGLength.h
+++ b/dom/svg/SVGLength.h
@@ -30,17 +30,17 @@ namespace mozilla {
  */
 class SVGLength
 {
 public:
 
   SVGLength()
 #ifdef DEBUG
     : mValue(0.0f)
-    , mUnit(dom::SVGLengthBinding::SVG_LENGTHTYPE_UNKNOWN) // caught by IsValid()
+    , mUnit(dom::SVGLength_Binding::SVG_LENGTHTYPE_UNKNOWN) // caught by IsValid()
 #endif
   {}
 
   SVGLength(float aValue, uint8_t aUnit)
     : mValue(aValue)
     , mUnit(aUnit)
   {
     NS_ASSERTION(IsValid(), "Constructed an invalid length");
@@ -115,22 +115,22 @@ public:
    * This method returns numeric_limits<float>::quiet_NaN() if it is not
    * possible to convert the value to the specified unit.
    */
   float GetValueInSpecifiedUnit(uint8_t aUnit,
                                 const nsSVGElement *aElement,
                                 uint8_t aAxis) const;
 
   bool IsPercentage() const {
-    return mUnit == dom::SVGLengthBinding::SVG_LENGTHTYPE_PERCENTAGE;
+    return mUnit == dom::SVGLength_Binding::SVG_LENGTHTYPE_PERCENTAGE;
   }
 
   static bool IsValidUnitType(uint16_t unit) {
-    return unit > dom::SVGLengthBinding::SVG_LENGTHTYPE_UNKNOWN &&
-           unit <= dom::SVGLengthBinding::SVG_LENGTHTYPE_PC;
+    return unit > dom::SVGLength_Binding::SVG_LENGTHTYPE_UNKNOWN &&
+           unit <= dom::SVGLength_Binding::SVG_LENGTHTYPE_PC;
   }
 
   /**
    * Returns the number of user units per current unit.
    *
    * This method returns numeric_limits<float>::quiet_NaN() if the conversion
    * factor between the length's current unit and user units is undefined (see
    * the comments for GetUserUnitsPerInch and GetUserUnitsPerPercent).
--- a/dom/svg/SVGLengthList.h
+++ b/dom/svg/SVGLengthList.h
@@ -333,17 +333,17 @@ public:
 
   /// This may return a non-finite value
   float operator[](uint32_t aIndex) const {
     return (*mList)[aIndex].GetValueInUserUnits(mElement, mAxis);
   }
 
   bool HasPercentageValueAt(uint32_t aIndex) const {
     const SVGLength& length = (*mList)[aIndex];
-    return length.GetUnit() == dom::SVGLengthBinding::SVG_LENGTHTYPE_PERCENTAGE;
+    return length.GetUnit() == dom::SVGLength_Binding::SVG_LENGTHTYPE_PERCENTAGE;
   }
 
 private:
   const SVGLengthList *mList;
   nsSVGElement *mElement;
   uint8_t mAxis;
 };
 
--- a/dom/svg/SVGLineElement.cpp
+++ b/dom/svg/SVGLineElement.cpp
@@ -14,25 +14,25 @@ NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(Li
 using namespace mozilla::gfx;
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGLineElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGLineElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGLineElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsSVGElement::LengthInfo SVGLineElement::sLengthInfo[4] =
 {
-  { &nsGkAtoms::x1, 0, SVGLengthBinding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::X },
-  { &nsGkAtoms::y1, 0, SVGLengthBinding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::Y },
-  { &nsGkAtoms::x2, 0, SVGLengthBinding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::X },
-  { &nsGkAtoms::y2, 0, SVGLengthBinding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::Y },
+  { &nsGkAtoms::x1, 0, SVGLength_Binding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::X },
+  { &nsGkAtoms::y1, 0, SVGLength_Binding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::Y },
+  { &nsGkAtoms::x2, 0, SVGLength_Binding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::X },
+  { &nsGkAtoms::y2, 0, SVGLength_Binding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::Y },
 };
 
 //----------------------------------------------------------------------
 // Implementation
 
 SVGLineElement::SVGLineElement(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo)
   : SVGLineElementBase(aNodeInfo)
 {
--- a/dom/svg/SVGMPathElement.cpp
+++ b/dom/svg/SVGMPathElement.cpp
@@ -17,17 +17,17 @@
 NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(MPath)
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGMPathElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGMPathElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGMPathElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsSVGElement::StringInfo SVGMPathElement::sStringInfo[2] =
 {
   { &nsGkAtoms::href, kNameSpaceID_None, false },
   { &nsGkAtoms::href, kNameSpaceID_XLink, false }
 };
 
--- a/dom/svg/SVGMarkerElement.cpp
+++ b/dom/svg/SVGMarkerElement.cpp
@@ -15,37 +15,37 @@
 #include "mozilla/dom/SVGMarkerElement.h"
 #include "mozilla/dom/SVGMarkerElementBinding.h"
 #include "mozilla/Preferences.h"
 #include "mozilla/gfx/Matrix.h"
 #include "mozilla/FloatingPoint.h"
 #include "SVGContentUtils.h"
 
 using namespace mozilla::gfx;
-using namespace mozilla::dom::SVGMarkerElementBinding;
+using namespace mozilla::dom::SVGMarkerElement_Binding;
 
 NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(Marker)
 
 namespace mozilla {
 namespace dom {
 
-using namespace SVGAngleBinding;
+using namespace SVGAngle_Binding;
 
 JSObject*
 SVGMarkerElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGMarkerElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGMarkerElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsSVGElement::LengthInfo SVGMarkerElement::sLengthInfo[4] =
 {
-  { &nsGkAtoms::refX, 0, SVGLengthBinding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::X },
-  { &nsGkAtoms::refY, 0, SVGLengthBinding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::Y },
-  { &nsGkAtoms::markerWidth, 3, SVGLengthBinding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::X },
-  { &nsGkAtoms::markerHeight, 3, SVGLengthBinding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::Y },
+  { &nsGkAtoms::refX, 0, SVGLength_Binding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::X },
+  { &nsGkAtoms::refY, 0, SVGLength_Binding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::Y },
+  { &nsGkAtoms::markerWidth, 3, SVGLength_Binding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::X },
+  { &nsGkAtoms::markerHeight, 3, SVGLength_Binding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::Y },
 };
 
 nsSVGEnumMapping SVGMarkerElement::sUnitsMap[] = {
   {&nsGkAtoms::strokeWidth, SVG_MARKERUNITS_STROKEWIDTH},
   {&nsGkAtoms::userSpaceOnUse, SVG_MARKERUNITS_USERSPACEONUSE},
   {nullptr, 0}
 };
 
--- a/dom/svg/SVGMarkerElement.h
+++ b/dom/svg/SVGMarkerElement.h
@@ -29,38 +29,38 @@ namespace dom {
 
 // Non-Exposed Marker Orientation Types
 static const uint16_t SVG_MARKER_ORIENT_AUTO_START_REVERSE = 3;
 
 class nsSVGOrientType
 {
 public:
   nsSVGOrientType()
-   : mAnimVal(SVGMarkerElementBinding::SVG_MARKER_ORIENT_ANGLE),
-     mBaseVal(SVGMarkerElementBinding::SVG_MARKER_ORIENT_ANGLE) {}
+   : mAnimVal(SVGMarkerElement_Binding::SVG_MARKER_ORIENT_ANGLE),
+     mBaseVal(SVGMarkerElement_Binding::SVG_MARKER_ORIENT_ANGLE) {}
 
   nsresult SetBaseValue(uint16_t aValue,
                         nsSVGElement *aSVGElement);
 
   // XXX FIXME like https://bugzilla.mozilla.org/show_bug.cgi?id=545550 but
   // without adding an mIsAnimated member...?
   void SetBaseValue(uint16_t aValue)
     { mAnimVal = mBaseVal = uint8_t(aValue); }
   // no need to notify, since nsSVGAngle does that
   void SetAnimValue(uint16_t aValue)
     { mAnimVal = uint8_t(aValue); }
 
   // we want to avoid exposing SVG_MARKER_ORIENT_AUTO_START_REVERSE to
   // Web content
   uint16_t GetBaseValue() const
     { return mAnimVal == SVG_MARKER_ORIENT_AUTO_START_REVERSE ?
-               SVGMarkerElementBinding::SVG_MARKER_ORIENT_UNKNOWN : mBaseVal; }
+               SVGMarkerElement_Binding::SVG_MARKER_ORIENT_UNKNOWN : mBaseVal; }
   uint16_t GetAnimValue() const
     { return mAnimVal == SVG_MARKER_ORIENT_AUTO_START_REVERSE ?
-               SVGMarkerElementBinding::SVG_MARKER_ORIENT_UNKNOWN : mAnimVal; }
+               SVGMarkerElement_Binding::SVG_MARKER_ORIENT_UNKNOWN : mAnimVal; }
   uint16_t GetAnimValueInternal() const
     { return mAnimVal; }
 
   already_AddRefed<SVGAnimatedEnumeration>
     ToDOMAnimatedEnum(nsSVGElement* aSVGElement);
 
 private:
   nsSVGEnumValue mAnimVal;
--- a/dom/svg/SVGMaskElement.cpp
+++ b/dom/svg/SVGMaskElement.cpp
@@ -13,32 +13,32 @@
 #include "mozilla/dom/SVGMaskElementBinding.h"
 #include "mozilla/dom/SVGUnitTypesBinding.h"
 
 NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(Mask)
 
 namespace mozilla {
 namespace dom {
 
-using namespace SVGUnitTypesBinding;
+using namespace SVGUnitTypes_Binding;
 
 JSObject*
 SVGMaskElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGMaskElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGMaskElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 //--------------------- Masks ------------------------
 
 nsSVGElement::LengthInfo SVGMaskElement::sLengthInfo[4] =
 {
-  { &nsGkAtoms::x, -10, SVGLengthBinding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::X },
-  { &nsGkAtoms::y, -10, SVGLengthBinding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::Y },
-  { &nsGkAtoms::width, 120, SVGLengthBinding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::X },
-  { &nsGkAtoms::height, 120, SVGLengthBinding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::Y },
+  { &nsGkAtoms::x, -10, SVGLength_Binding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::X },
+  { &nsGkAtoms::y, -10, SVGLength_Binding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::Y },
+  { &nsGkAtoms::width, 120, SVGLength_Binding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::X },
+  { &nsGkAtoms::height, 120, SVGLength_Binding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::Y },
 };
 
 nsSVGElement::EnumInfo SVGMaskElement::sEnumInfo[2] =
 {
   { &nsGkAtoms::maskUnits,
     sSVGUnitTypesMap,
     SVG_UNIT_TYPE_OBJECTBOUNDINGBOX
   },
--- a/dom/svg/SVGMatrix.cpp
+++ b/dom/svg/SVGMatrix.cpp
@@ -24,17 +24,17 @@ SVGTransform*
 SVGMatrix::GetParentObject() const
 {
   return mTransform;
 }
 
 JSObject*
 SVGMatrix::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGMatrixBinding::Wrap(aCx, this, aGivenProto);
+  return SVGMatrix_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 SVGMatrix::SetA(float aA, ErrorResult& rv)
 {
   if (IsAnimVal()) {
     rv.Throw(NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR);
     return;
--- a/dom/svg/SVGMetadataElement.cpp
+++ b/dom/svg/SVGMetadataElement.cpp
@@ -10,17 +10,17 @@
 NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(Metadata)
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGMetadataElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGMetadataElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGMetadataElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 //----------------------------------------------------------------------
 // Implementation
 
 SVGMetadataElement::SVGMetadataElement(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo)
   : SVGMetadataElementBase(aNodeInfo)
 {
--- a/dom/svg/SVGMotionSMILAnimationFunction.cpp
+++ b/dom/svg/SVGMotionSMILAnimationFunction.cpp
@@ -13,17 +13,17 @@
 #include "nsAttrValueInlines.h"
 #include "nsSMILParserUtils.h"
 #include "nsSVGAngle.h"
 #include "nsSVGPathDataParser.h"
 #include "SVGMotionSMILType.h"
 #include "SVGMotionSMILPathUtils.h"
 
 using namespace mozilla::dom;
-using namespace mozilla::dom::SVGAngleBinding;
+using namespace mozilla::dom::SVGAngle_Binding;
 using namespace mozilla::gfx;
 
 namespace mozilla {
 
 SVGMotionSMILAnimationFunction::SVGMotionSMILAnimationFunction()
   : mRotateType(eRotateType_Explicit),
     mRotateAngle(0.0f),
     mPathSourceType(ePathSourceType_None),
--- a/dom/svg/SVGOrientSMILType.cpp
+++ b/dom/svg/SVGOrientSMILType.cpp
@@ -8,18 +8,18 @@
 #include "nsSMILValue.h"
 #include "nsSVGAngle.h"
 #include "nsDebug.h"
 #include "mozilla/dom/SVGMarkerElement.h"
 #include <math.h>
 
 namespace mozilla {
 
-using namespace dom::SVGAngleBinding;
-using namespace dom::SVGMarkerElementBinding;
+using namespace dom::SVGAngle_Binding;
+using namespace dom::SVGMarkerElement_Binding;
 
 /*static*/ SVGOrientSMILType SVGOrientSMILType::sSingleton;
 
 void
 SVGOrientSMILType::Init(nsSMILValue& aValue) const
 {
   MOZ_ASSERT(aValue.IsNull(), "Unexpected value type");
 
--- a/dom/svg/SVGPathData.cpp
+++ b/dom/svg/SVGPathData.cpp
@@ -18,17 +18,17 @@
 #include <stdarg.h>
 #include "nsStyleConsts.h"
 #include "SVGContentUtils.h"
 #include "SVGGeometryElement.h" // for nsSVGMark
 #include "SVGPathSegUtils.h"
 #include <algorithm>
 
 using namespace mozilla;
-using namespace mozilla::dom::SVGPathSegBinding;
+using namespace mozilla::dom::SVGPathSeg_Binding;
 using namespace mozilla::gfx;
 
 static bool IsMoveto(uint16_t aSegType)
 {
   return aSegType == PATHSEG_MOVETO_ABS ||
          aSegType == PATHSEG_MOVETO_REL;
 }
 
--- a/dom/svg/SVGPathElement.cpp
+++ b/dom/svg/SVGPathElement.cpp
@@ -28,17 +28,17 @@ NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(Pa
 using namespace mozilla::gfx;
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGPathElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGPathElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGPathElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 //----------------------------------------------------------------------
 // Implementation
 
 SVGPathElement::SVGPathElement(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo)
   : SVGPathElementBase(aNodeInfo)
 {
--- a/dom/svg/SVGPathSegUtils.h
+++ b/dom/svg/SVGPathSegUtils.h
@@ -10,18 +10,18 @@
 #include "mozilla/ArrayUtils.h"
 #include "mozilla/dom/SVGPathSegBinding.h"
 #include "mozilla/gfx/Point.h"
 #include "nsDebug.h"
 
 namespace mozilla {
 
 #define NS_SVG_PATH_SEG_MAX_ARGS         7
-#define NS_SVG_PATH_SEG_FIRST_VALID_TYPE dom::SVGPathSegBinding::PATHSEG_CLOSEPATH
-#define NS_SVG_PATH_SEG_LAST_VALID_TYPE  dom::SVGPathSegBinding::PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL
+#define NS_SVG_PATH_SEG_FIRST_VALID_TYPE dom::SVGPathSeg_Binding::PATHSEG_CLOSEPATH
+#define NS_SVG_PATH_SEG_LAST_VALID_TYPE  dom::SVGPathSeg_Binding::PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL
 #define NS_SVG_PATH_SEG_TYPE_COUNT       (NS_SVG_PATH_SEG_LAST_VALID_TYPE + 1)
 
 /**
  * Code that works with path segments can use an instance of this class to
  * store/provide information about the start of the current subpath and the
  * last path segment (if any).
  */
 struct SVGPathTraversalState
@@ -175,69 +175,69 @@ public:
   }
 
   static bool IsValidType(uint32_t aType) {
     return aType >= NS_SVG_PATH_SEG_FIRST_VALID_TYPE &&
            aType <= NS_SVG_PATH_SEG_LAST_VALID_TYPE;
   }
 
   static bool IsCubicType(uint32_t aType) {
-    return aType == dom::SVGPathSegBinding::PATHSEG_CURVETO_CUBIC_REL ||
-           aType == dom::SVGPathSegBinding::PATHSEG_CURVETO_CUBIC_ABS ||
-           aType == dom::SVGPathSegBinding::PATHSEG_CURVETO_CUBIC_SMOOTH_REL ||
-           aType == dom::SVGPathSegBinding::PATHSEG_CURVETO_CUBIC_SMOOTH_ABS;
+    return aType == dom::SVGPathSeg_Binding::PATHSEG_CURVETO_CUBIC_REL ||
+           aType == dom::SVGPathSeg_Binding::PATHSEG_CURVETO_CUBIC_ABS ||
+           aType == dom::SVGPathSeg_Binding::PATHSEG_CURVETO_CUBIC_SMOOTH_REL ||
+           aType == dom::SVGPathSeg_Binding::PATHSEG_CURVETO_CUBIC_SMOOTH_ABS;
   }
 
   static bool IsQuadraticType(uint32_t aType) {
-    return aType == dom::SVGPathSegBinding::PATHSEG_CURVETO_QUADRATIC_REL ||
-           aType == dom::SVGPathSegBinding::PATHSEG_CURVETO_QUADRATIC_ABS ||
-           aType == dom::SVGPathSegBinding::PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL ||
-           aType == dom::SVGPathSegBinding::PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS;
+    return aType == dom::SVGPathSeg_Binding::PATHSEG_CURVETO_QUADRATIC_REL ||
+           aType == dom::SVGPathSeg_Binding::PATHSEG_CURVETO_QUADRATIC_ABS ||
+           aType == dom::SVGPathSeg_Binding::PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL ||
+           aType == dom::SVGPathSeg_Binding::PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS;
   }
 
   static bool IsArcType(uint32_t aType) {
-    return aType == dom::SVGPathSegBinding::PATHSEG_ARC_ABS ||
-           aType == dom::SVGPathSegBinding::PATHSEG_ARC_REL;
+    return aType == dom::SVGPathSeg_Binding::PATHSEG_ARC_ABS ||
+           aType == dom::SVGPathSeg_Binding::PATHSEG_ARC_REL;
   }
 
   static bool IsRelativeOrAbsoluteType(uint32_t aType) {
     MOZ_ASSERT(IsValidType(aType), "Seg type not recognized");
 
     // When adding a new path segment type, ensure that the returned condition
     // below is still correct.
     static_assert(NS_SVG_PATH_SEG_LAST_VALID_TYPE ==
-                    dom::SVGPathSegBinding::PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL,
+                    dom::SVGPathSeg_Binding::PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL,
                   "Unexpected type");
 
-    return aType >= dom::SVGPathSegBinding::PATHSEG_MOVETO_ABS;
+    return aType >= dom::SVGPathSeg_Binding::PATHSEG_MOVETO_ABS;
   }
 
   static bool IsRelativeType(uint32_t aType) {
     MOZ_ASSERT
       (IsRelativeOrAbsoluteType(aType),
        "IsRelativeType called with segment type that does not come in relative and absolute forms");
 
     // When adding a new path segment type, ensure that the returned condition
     // below is still correct.
     static_assert(NS_SVG_PATH_SEG_LAST_VALID_TYPE ==
-                    dom::SVGPathSegBinding::PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL,
+                    dom::SVGPathSeg_Binding::PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL,
                   "Unexpected type");
 
     return aType & 1;
   }
 
   static uint32_t RelativeVersionOfType(uint32_t aType) {
     MOZ_ASSERT
       (IsRelativeOrAbsoluteType(aType),
        "RelativeVersionOfType called with segment type that does not come in relative and absolute forms");
 
     // When adding a new path segment type, ensure that the returned condition
     // below is still correct.
     static_assert(NS_SVG_PATH_SEG_LAST_VALID_TYPE ==
-                   dom::SVGPathSegBinding::PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL,
+                   dom::SVGPathSeg_Binding::PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL,
                   "Unexpected type");
 
     return aType | 1;
   }
 
   static uint32_t SameTypeModuloRelativeness(uint32_t aType1, uint32_t aType2) {
     if (!IsRelativeOrAbsoluteType(aType1)) {
       return aType1 == aType2;
--- a/dom/svg/SVGPatternElement.cpp
+++ b/dom/svg/SVGPatternElement.cpp
@@ -14,32 +14,32 @@
 #include "mozilla/dom/SVGPatternElementBinding.h"
 #include "mozilla/dom/SVGUnitTypesBinding.h"
 
 NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(Pattern)
 
 namespace mozilla {
 namespace dom {
 
-using namespace SVGUnitTypesBinding;
+using namespace SVGUnitTypes_Binding;
 
 JSObject*
 SVGPatternElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGPatternElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGPatternElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 //--------------------- Patterns ------------------------
 
 nsSVGElement::LengthInfo SVGPatternElement::sLengthInfo[4] =
 {
-  { &nsGkAtoms::x, 0, SVGLengthBinding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::X },
-  { &nsGkAtoms::y, 0, SVGLengthBinding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::Y },
-  { &nsGkAtoms::width, 0, SVGLengthBinding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::X },
-  { &nsGkAtoms::height, 0, SVGLengthBinding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::Y },
+  { &nsGkAtoms::x, 0, SVGLength_Binding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::X },
+  { &nsGkAtoms::y, 0, SVGLength_Binding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::Y },
+  { &nsGkAtoms::width, 0, SVGLength_Binding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::X },
+  { &nsGkAtoms::height, 0, SVGLength_Binding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::Y },
 };
 
 nsSVGElement::EnumInfo SVGPatternElement::sEnumInfo[2] =
 {
   { &nsGkAtoms::patternUnits,
     sSVGUnitTypesMap,
     SVG_UNIT_TYPE_OBJECTBOUNDINGBOX
   },
--- a/dom/svg/SVGPolygonElement.cpp
+++ b/dom/svg/SVGPolygonElement.cpp
@@ -15,17 +15,17 @@ using namespace mozilla::gfx;
 NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(Polygon)
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGPolygonElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGPolygonElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGPolygonElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 //----------------------------------------------------------------------
 // Implementation
 
 SVGPolygonElement::SVGPolygonElement(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo)
   : SVGPolygonElementBase(aNodeInfo)
 {
--- a/dom/svg/SVGPolylineElement.cpp
+++ b/dom/svg/SVGPolylineElement.cpp
@@ -14,17 +14,17 @@ using namespace mozilla::gfx;
 NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(Polyline)
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGPolylineElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGPolylineElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGPolylineElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 //----------------------------------------------------------------------
 // Implementation
 
 SVGPolylineElement::SVGPolylineElement(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo)
   : SVGPolylineElementBase(aNodeInfo)
 {
--- a/dom/svg/SVGPreserveAspectRatio.cpp
+++ b/dom/svg/SVGPreserveAspectRatio.cpp
@@ -8,17 +8,17 @@
 
 #include "mozilla/dom/SVGPreserveAspectRatioBinding.h"
 #include "nsContentUtils.h"
 #include "nsWhitespaceTokenizer.h"
 #include "SVGAnimatedPreserveAspectRatio.h"
 
 using namespace mozilla;
 using namespace dom;
-using namespace SVGPreserveAspectRatioBinding;
+using namespace SVGPreserveAspectRatio_Binding;
 
 NS_SVG_VAL_IMPL_CYCLE_COLLECTION_WRAPPERCACHED(DOMSVGPreserveAspectRatio, mSVGElement)
 
 NS_IMPL_CYCLE_COLLECTING_ADDREF(DOMSVGPreserveAspectRatio)
 NS_IMPL_CYCLE_COLLECTING_RELEASE(DOMSVGPreserveAspectRatio)
 
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(DOMSVGPreserveAspectRatio)
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
@@ -114,17 +114,17 @@ SVGPreserveAspectRatio::operator==(const
 {
   return mAlign == aOther.mAlign &&
     mMeetOrSlice == aOther.mMeetOrSlice;
 }
 
 JSObject*
 DOMSVGPreserveAspectRatio::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return mozilla::dom::SVGPreserveAspectRatioBinding::Wrap(aCx, this, aGivenProto);
+  return mozilla::dom::SVGPreserveAspectRatio_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 uint16_t
 DOMSVGPreserveAspectRatio::Align()
 {
   if (mIsBaseValue) {
     return mVal->GetBaseValue().GetAlign();
   }
--- a/dom/svg/SVGPreserveAspectRatio.h
+++ b/dom/svg/SVGPreserveAspectRatio.h
@@ -15,36 +15,36 @@
 #include "mozilla/ErrorResult.h"
 #include "nsSVGElement.h"
 
 namespace mozilla {
 
 // These constants represent the range of valid enum values for the <align>
 // parameter. They exclude the sentinel _UNKNOWN value.
 const uint16_t SVG_ALIGN_MIN_VALID =
-  dom::SVGPreserveAspectRatioBinding::SVG_PRESERVEASPECTRATIO_NONE;
+  dom::SVGPreserveAspectRatio_Binding::SVG_PRESERVEASPECTRATIO_NONE;
 const uint16_t SVG_ALIGN_MAX_VALID =
-  dom::SVGPreserveAspectRatioBinding::SVG_PRESERVEASPECTRATIO_XMAXYMAX;
+  dom::SVGPreserveAspectRatio_Binding::SVG_PRESERVEASPECTRATIO_XMAXYMAX;
 
 // These constants represent the range of valid enum values for the
 // <meetOrSlice> parameter. They exclude the sentinel _UNKNOWN value.
 const uint16_t SVG_MEETORSLICE_MIN_VALID =
-  dom::SVGPreserveAspectRatioBinding::SVG_MEETORSLICE_MEET;
+  dom::SVGPreserveAspectRatio_Binding::SVG_MEETORSLICE_MEET;
 const uint16_t SVG_MEETORSLICE_MAX_VALID =
-  dom::SVGPreserveAspectRatioBinding::SVG_MEETORSLICE_SLICE;
+  dom::SVGPreserveAspectRatio_Binding::SVG_MEETORSLICE_SLICE;
 
 class SVGAnimatedPreserveAspectRatio;
 
 class SVGPreserveAspectRatio final
 {
   friend class SVGAnimatedPreserveAspectRatio;
 public:
   explicit SVGPreserveAspectRatio()
-    : mAlign(dom::SVGPreserveAspectRatioBinding::SVG_PRESERVEASPECTRATIO_UNKNOWN)
-    , mMeetOrSlice(dom::SVGPreserveAspectRatioBinding::SVG_MEETORSLICE_UNKNOWN)
+    : mAlign(dom::SVGPreserveAspectRatio_Binding::SVG_PRESERVEASPECTRATIO_UNKNOWN)
+    , mMeetOrSlice(dom::SVGPreserveAspectRatio_Binding::SVG_MEETORSLICE_UNKNOWN)
   {}
 
   SVGPreserveAspectRatio(uint16_t aAlign, uint16_t aMeetOrSlice)
     : mAlign(aAlign)
     , mMeetOrSlice(aMeetOrSlice)
   {}
 
   static nsresult FromString(const nsAString& aString,
--- a/dom/svg/SVGRectElement.cpp
+++ b/dom/svg/SVGRectElement.cpp
@@ -21,27 +21,27 @@ using namespace mozilla::gfx;
 namespace mozilla {
 namespace dom {
 
 class SVGAnimatedLength;
 
 JSObject*
 SVGRectElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGRectElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGRectElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsSVGElement::LengthInfo SVGRectElement::sLengthInfo[6] =
 {
-  { &nsGkAtoms::x, 0, SVGLengthBinding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::X },
-  { &nsGkAtoms::y, 0, SVGLengthBinding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::Y },
-  { &nsGkAtoms::width, 0, SVGLengthBinding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::X },
-  { &nsGkAtoms::height, 0, SVGLengthBinding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::Y },
-  { &nsGkAtoms::rx, 0, SVGLengthBinding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::X },
-  { &nsGkAtoms::ry, 0, SVGLengthBinding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::Y }
+  { &nsGkAtoms::x, 0, SVGLength_Binding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::X },
+  { &nsGkAtoms::y, 0, SVGLength_Binding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::Y },
+  { &nsGkAtoms::width, 0, SVGLength_Binding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::X },
+  { &nsGkAtoms::height, 0, SVGLength_Binding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::Y },
+  { &nsGkAtoms::rx, 0, SVGLength_Binding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::X },
+  { &nsGkAtoms::ry, 0, SVGLength_Binding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::Y }
 };
 
 //----------------------------------------------------------------------
 // Implementation
 
 SVGRectElement::SVGRectElement(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo)
   : SVGRectElementBase(aNodeInfo)
 {
--- a/dom/svg/SVGSVGElement.cpp
+++ b/dom/svg/SVGSVGElement.cpp
@@ -27,18 +27,18 @@
 
 NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT_CHECK_PARSER(SVG)
 
 using namespace mozilla::gfx;
 
 namespace mozilla {
 namespace dom {
 
-using namespace SVGPreserveAspectRatioBinding;
-using namespace SVGSVGElementBinding;
+using namespace SVGPreserveAspectRatio_Binding;
+using namespace SVGSVGElement_Binding;
 
 nsSVGEnumMapping SVGSVGElement::sZoomAndPanMap[] = {
   {&nsGkAtoms::disable, SVG_ZOOMANDPAN_DISABLE},
   {&nsGkAtoms::magnify, SVG_ZOOMANDPAN_MAGNIFY},
   {nullptr, 0}
 };
 
 nsSVGElement::EnumInfo SVGSVGElement::sEnumInfo[1] =
@@ -97,17 +97,17 @@ DOMSVGTranslatePoint::MatrixTransform(SV
 
   nsCOMPtr<nsISVGPoint> point = new DOMSVGPoint(a*x + c*y + e, b*x + d*y + f);
   return point.forget();
 }
 
 JSObject*
 SVGSVGElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGSVGElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGSVGElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 //----------------------------------------------------------------------
 // nsISupports methods
 
 NS_IMPL_CYCLE_COLLECTION_CLASS(SVGSVGElement)
 
 NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(SVGSVGElement,
--- a/dom/svg/SVGScriptElement.cpp
+++ b/dom/svg/SVGScriptElement.cpp
@@ -14,17 +14,17 @@
 NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT_CHECK_PARSER(Script)
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGScriptElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGScriptElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGScriptElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsSVGElement::StringInfo SVGScriptElement::sStringInfo[2] =
 {
   { &nsGkAtoms::href, kNameSpaceID_None, false },
   { &nsGkAtoms::href, kNameSpaceID_XLink, false }
 };
 
--- a/dom/svg/SVGSetElement.cpp
+++ b/dom/svg/SVGSetElement.cpp
@@ -10,17 +10,17 @@
 NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(Set)
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGSetElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGSetElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGSetElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 //----------------------------------------------------------------------
 // Implementation
 
 SVGSetElement::SVGSetElement(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo)
   : SVGAnimationElement(aNodeInfo)
 {
--- a/dom/svg/SVGStopElement.cpp
+++ b/dom/svg/SVGStopElement.cpp
@@ -10,17 +10,17 @@
 NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(Stop)
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGStopElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGStopElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGStopElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsSVGElement::NumberInfo SVGStopElement::sNumberInfo =
 { &nsGkAtoms::offset, 0, true };
 
 //----------------------------------------------------------------------
 // Implementation
 
--- a/dom/svg/SVGStyleElement.cpp
+++ b/dom/svg/SVGStyleElement.cpp
@@ -12,17 +12,17 @@
 NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(Style)
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGStyleElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGStyleElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGStyleElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 //----------------------------------------------------------------------
 // nsISupports methods
 
 NS_IMPL_ISUPPORTS_CYCLE_COLLECTION_INHERITED(SVGStyleElement,
                                              SVGStyleElementBase,
                                              nsIStyleSheetLinkingElement,
--- a/dom/svg/SVGSwitchElement.cpp
+++ b/dom/svg/SVGSwitchElement.cpp
@@ -16,17 +16,17 @@ class nsIFrame;
 NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(Switch)
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGSwitchElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGSwitchElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGSwitchElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 //----------------------------------------------------------------------
 // nsISupports methods
 
 NS_IMPL_CYCLE_COLLECTION_INHERITED(SVGSwitchElement, SVGSwitchElementBase,
                                    mActiveChild)
 
--- a/dom/svg/SVGSymbolElement.cpp
+++ b/dom/svg/SVGSymbolElement.cpp
@@ -10,17 +10,17 @@
 NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(Symbol)
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGSymbolElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGSymbolElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGSymbolElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 //----------------------------------------------------------------------
 // nsISupports methods
 
 NS_IMPL_ISUPPORTS_INHERITED(SVGSymbolElement, SVGSymbolElementBase,
                             mozilla::dom::SVGTests)
 
--- a/dom/svg/SVGTSpanElement.cpp
+++ b/dom/svg/SVGTSpanElement.cpp
@@ -10,17 +10,17 @@
 NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(TSpan)
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGTSpanElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGTSpanElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGTSpanElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 
 //----------------------------------------------------------------------
 // Implementation
 
 SVGTSpanElement::SVGTSpanElement(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo)
   : SVGTSpanElementBase(aNodeInfo)
--- a/dom/svg/SVGTextContentElement.cpp
+++ b/dom/svg/SVGTextContentElement.cpp
@@ -14,32 +14,32 @@
 #include "nsTextFragment.h"
 #include "nsTextFrameUtils.h"
 #include "nsTextNode.h"
 #include "SVGTextFrame.h"
 
 namespace mozilla {
 namespace dom {
 
-using namespace SVGTextContentElementBinding;
+using namespace SVGTextContentElement_Binding;
 
 nsSVGEnumMapping SVGTextContentElement::sLengthAdjustMap[] = {
   { &nsGkAtoms::spacing, LENGTHADJUST_SPACING },
   { &nsGkAtoms::spacingAndGlyphs, LENGTHADJUST_SPACINGANDGLYPHS },
   { nullptr, 0 }
 };
 
 nsSVGElement::EnumInfo SVGTextContentElement::sEnumInfo[1] =
 {
   { &nsGkAtoms::lengthAdjust, sLengthAdjustMap, LENGTHADJUST_SPACING }
 };
 
 nsSVGElement::LengthInfo SVGTextContentElement::sLengthInfo[1] =
 {
-  { &nsGkAtoms::textLength, 0, SVGLengthBinding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::XY }
+  { &nsGkAtoms::textLength, 0, SVGLength_Binding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::XY }
 };
 
 SVGTextFrame*
 SVGTextContentElement::GetSVGTextFrame()
 {
   nsIFrame* frame = GetPrimaryFrame(FlushType::Layout);
   nsIFrame* textFrame =
     nsLayoutUtils::GetClosestFrameOfType(frame, LayoutFrameType::SVGText);
--- a/dom/svg/SVGTextElement.cpp
+++ b/dom/svg/SVGTextElement.cpp
@@ -10,17 +10,17 @@
 NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(Text)
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGTextElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGTextElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGTextElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 //----------------------------------------------------------------------
 // Implementation
 
 SVGTextElement::SVGTextElement(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo)
   : SVGTextElementBase(aNodeInfo)
 {
--- a/dom/svg/SVGTextPathElement.cpp
+++ b/dom/svg/SVGTextPathElement.cpp
@@ -12,33 +12,33 @@
 #include "nsGkAtoms.h"
 #include "nsError.h"
 
 NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(TextPath)
 
 namespace mozilla {
 namespace dom {
 
-using namespace SVGTextContentElementBinding;
-using namespace SVGTextPathElementBinding;
+using namespace SVGTextContentElement_Binding;
+using namespace SVGTextPathElement_Binding;
 
 class SVGAnimatedLength;
 
 JSObject*
 SVGTextPathElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGTextPathElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGTextPathElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsSVGElement::LengthInfo SVGTextPathElement::sLengthInfo[2] =
 {
   // from SVGTextContentElement:
-  { &nsGkAtoms::textLength, 0, SVGLengthBinding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::XY },
+  { &nsGkAtoms::textLength, 0, SVGLength_Binding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::XY },
   // from SVGTextPathElement:
-  { &nsGkAtoms::startOffset, 0, SVGLengthBinding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::X }
+  { &nsGkAtoms::startOffset, 0, SVGLength_Binding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::X }
 };
 
 nsSVGEnumMapping SVGTextPathElement::sMethodMap[] = {
   {&nsGkAtoms::align, TEXTPATH_METHODTYPE_ALIGN},
   {&nsGkAtoms::stretch, TEXTPATH_METHODTYPE_STRETCH},
   {nullptr, 0}
 };
 
--- a/dom/svg/SVGTitleElement.cpp
+++ b/dom/svg/SVGTitleElement.cpp
@@ -10,17 +10,17 @@
 NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(Title)
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGTitleElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGTitleElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGTitleElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 //----------------------------------------------------------------------
 // nsISupports methods
 
 NS_IMPL_ISUPPORTS_INHERITED(SVGTitleElement, SVGTitleElementBase,
                             nsIMutationObserver)
 
--- a/dom/svg/SVGTransform.cpp
+++ b/dom/svg/SVGTransform.cpp
@@ -17,17 +17,17 @@
 
 namespace {
   const double kRadPerDegree = 2.0 * M_PI / 360.0;
 } // namespace
 
 namespace mozilla {
 namespace dom {
 
-using namespace SVGTransformBinding;
+using namespace SVGTransform_Binding;
 
 static nsSVGAttrTearoffTable<SVGTransform, SVGMatrix>&
 SVGMatrixTearoffTable()
 {
   static nsSVGAttrTearoffTable<SVGTransform, SVGMatrix> sSVGMatrixTearoffTable;
   return sSVGMatrixTearoffTable;
 }
 
@@ -60,17 +60,17 @@ NS_IMPL_CYCLE_COLLECTION_TRACE_PRESERVED
 NS_IMPL_CYCLE_COLLECTION_TRACE_END
 
 NS_IMPL_CYCLE_COLLECTION_ROOT_NATIVE(SVGTransform, AddRef)
 NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(SVGTransform, Release)
 
 JSObject*
 SVGTransform::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGTransformBinding::Wrap(aCx, this, aGivenProto);
+  return SVGTransform_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 //----------------------------------------------------------------------
 // Helper class: AutoChangeTransformNotifier
 // Stack-based helper class to pair calls to WillChangeTransformList
 // and DidChangeTransformList.
 class MOZ_RAII AutoChangeTransformNotifier
 {
--- a/dom/svg/SVGTransformListSMILType.cpp
+++ b/dom/svg/SVGTransformListSMILType.cpp
@@ -7,17 +7,17 @@
 #include "SVGTransformListSMILType.h"
 #include "SVGTransformList.h"
 #include "nsSVGTransform.h"
 #include "nsSMILValue.h"
 #include "nsCRT.h"
 #include <math.h>
 
 using namespace mozilla;
-using namespace dom::SVGTransformBinding;
+using namespace dom::SVGTransform_Binding;
 
 typedef FallibleTArray<SVGTransformSMILData> TransformArray;
 
 //----------------------------------------------------------------------
 // nsISMILType implementation
 
 void
 SVGTransformListSMILType::Init(nsSMILValue &aValue) const
--- a/dom/svg/SVGTransformableElement.cpp
+++ b/dom/svg/SVGTransformableElement.cpp
@@ -60,21 +60,21 @@ SVGTransformableElement::GetAttributeCha
     nsIFrame* frame =
       const_cast<SVGTransformableElement*>(this)->GetPrimaryFrame();
     retval |= nsChangeHint_InvalidateRenderingObservers;
     if (!frame || (frame->GetStateBits() & NS_FRAME_IS_NONDISPLAY)) {
       return retval;
     }
 
     bool isAdditionOrRemoval = false;
-    if (aModType == MutationEventBinding::ADDITION ||
-        aModType == MutationEventBinding::REMOVAL) {
+    if (aModType == MutationEvent_Binding::ADDITION ||
+        aModType == MutationEvent_Binding::REMOVAL) {
       isAdditionOrRemoval = true;
     } else {
-      MOZ_ASSERT(aModType == MutationEventBinding::MODIFICATION,
+      MOZ_ASSERT(aModType == MutationEvent_Binding::MODIFICATION,
                  "Unknown modification type.");
       if (!mTransforms ||
           !mTransforms->HasTransform()) {
         // New value is empty, treat as removal.
         isAdditionOrRemoval = true;
       } else if (mTransforms->RequiresFrameReconstruction()) {
         // Old value was empty, treat as addition.
         isAdditionOrRemoval = true;
@@ -128,21 +128,21 @@ SVGTransformableElement::SetAnimateMotio
     return;
   }
   bool transformSet = mTransforms && mTransforms->IsExplicitlySet();
   bool prevSet = mAnimateMotionTransform || transformSet;
   mAnimateMotionTransform = aMatrix ? new gfx::Matrix(*aMatrix) : nullptr;
   bool nowSet = mAnimateMotionTransform || transformSet;
   int32_t modType;
   if (prevSet && !nowSet) {
-    modType = MutationEventBinding::REMOVAL;
+    modType = MutationEvent_Binding::REMOVAL;
   } else if(!prevSet && nowSet) {
-    modType = MutationEventBinding::ADDITION;
+    modType = MutationEvent_Binding::ADDITION;
   } else {
-    modType = MutationEventBinding::MODIFICATION;
+    modType = MutationEvent_Binding::MODIFICATION;
   }
   DidAnimateTransformList(modType);
   nsIFrame* frame = GetPrimaryFrame();
   if (frame) {
     // If the result of this transform and any other transforms on this frame
     // is the identity matrix, then DoApplyRenderingChangeToTree won't handle
     // our nsChangeHint_UpdateTransformLayer hint since aFrame->IsTransformed()
     // will return false. That's fine, but we still need to schedule a repaint,
--- a/dom/svg/SVGUseElement.cpp
+++ b/dom/svg/SVGUseElement.cpp
@@ -24,28 +24,28 @@
 NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(Use)
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGUseElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGUseElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGUseElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 ////////////////////////////////////////////////////////////////////////
 // implementation
 
 nsSVGElement::LengthInfo SVGUseElement::sLengthInfo[4] =
 {
-  { &nsGkAtoms::x, 0, SVGLengthBinding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::X },
-  { &nsGkAtoms::y, 0, SVGLengthBinding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::Y },
-  { &nsGkAtoms::width, 0, SVGLengthBinding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::X },
-  { &nsGkAtoms::height, 0, SVGLengthBinding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::Y },
+  { &nsGkAtoms::x, 0, SVGLength_Binding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::X },
+  { &nsGkAtoms::y, 0, SVGLength_Binding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::Y },
+  { &nsGkAtoms::width, 0, SVGLength_Binding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::X },
+  { &nsGkAtoms::height, 0, SVGLength_Binding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::Y },
 };
 
 nsSVGElement::StringInfo SVGUseElement::sStringInfo[2] =
 {
   { &nsGkAtoms::href, kNameSpaceID_None, true },
   { &nsGkAtoms::href, kNameSpaceID_XLink, true }
 };
 
@@ -341,17 +341,17 @@ SVGUseElement::SyncWidthOrHeight(nsAtom*
       // content that's being cloned.
       TriggerReclone();
       return;
     }
     // Our width/height attribute is now no longer explicitly set, so we
     // need to set the value to 100%
     nsSVGLength2 length;
     length.Init(SVGContentUtils::XY, 0xff,
-                100, SVGLengthBinding::SVG_LENGTHTYPE_PERCENTAGE);
+                100, SVGLength_Binding::SVG_LENGTHTYPE_PERCENTAGE);
     target->SetLength(aName, length);
     return;
   }
 }
 
 void
 SVGUseElement::LookupHref()
 {
--- a/dom/svg/SVGViewElement.cpp
+++ b/dom/svg/SVGViewElement.cpp
@@ -7,22 +7,22 @@
 #include "mozilla/dom/SVGViewElement.h"
 #include "mozilla/dom/SVGViewElementBinding.h"
 
 NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(View)
 
 namespace mozilla {
 namespace dom {
 
-using namespace SVGViewElementBinding;
+using namespace SVGViewElement_Binding;
 
 JSObject*
 SVGViewElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGViewElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGViewElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsSVGEnumMapping SVGViewElement::sZoomAndPanMap[] = {
   {&nsGkAtoms::disable, SVG_ZOOMANDPAN_DISABLE},
   {&nsGkAtoms::magnify, SVG_ZOOMANDPAN_MAGNIFY},
   {nullptr, 0}
 };
 
--- a/dom/svg/SVGViewportElement.cpp
+++ b/dom/svg/SVGViewportElement.cpp
@@ -35,20 +35,20 @@
 
 using namespace mozilla::gfx;
 
 namespace mozilla {
 namespace dom {
 
 nsSVGElement::LengthInfo SVGViewportElement::sLengthInfo[4] =
 {
-  { &nsGkAtoms::x, 0, SVGLengthBinding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::X },
-  { &nsGkAtoms::y, 0, SVGLengthBinding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::Y },
-  { &nsGkAtoms::width, 100, SVGLengthBinding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::X },
-  { &nsGkAtoms::height, 100, SVGLengthBinding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::Y },
+  { &nsGkAtoms::x, 0, SVGLength_Binding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::X },
+  { &nsGkAtoms::y, 0, SVGLength_Binding::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::Y },
+  { &nsGkAtoms::width, 100, SVGLength_Binding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::X },
+  { &nsGkAtoms::height, 100, SVGLength_Binding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::Y },
 };
 
 //----------------------------------------------------------------------
 // Implementation
 
 SVGViewportElement::SVGViewportElement(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo)
   : SVGGraphicsElement(aNodeInfo),
     mViewportWidth(0),
--- a/dom/svg/nsISVGPoint.h
+++ b/dom/svg/nsISVGPoint.h
@@ -139,17 +139,17 @@ public:
 
   // WebIDL
   virtual float X() = 0;
   virtual void SetX(float aX, ErrorResult& rv) = 0;
   virtual float Y() = 0;
   virtual void SetY(float aY, ErrorResult& rv) = 0;
   virtual already_AddRefed<nsISVGPoint> MatrixTransform(dom::SVGMatrix& matrix) = 0;
   virtual JSObject* WrapObject(JSContext *cx, JS::Handle<JSObject*> aGivenProto) override
-    { return dom::SVGPointBinding::Wrap(cx, this, aGivenProto); }
+    { return dom::SVGPoint_Binding::Wrap(cx, this, aGivenProto); }
 
   virtual nsISupports* GetParentObject() = 0;
 
 protected:
 #ifdef DEBUG
   bool IndexIsValid();
 #endif
 
--- a/dom/svg/nsSVGAngle.cpp
+++ b/dom/svg/nsSVGAngle.cpp
@@ -14,18 +14,18 @@
 #include "nsSVGAttrTearoffTable.h"
 #include "nsTextFormatter.h"
 #include "SVGAngle.h"
 #include "SVGAnimatedAngle.h"
 #include "SVGOrientSMILType.h"
 
 using namespace mozilla;
 using namespace mozilla::dom;
-using namespace mozilla::dom::SVGAngleBinding;
-using namespace mozilla::dom::SVGMarkerElementBinding;
+using namespace mozilla::dom::SVGAngle_Binding;
+using namespace mozilla::dom::SVGMarkerElement_Binding;
 
 static nsStaticAtom** const unitMap[] =
 {
   nullptr, /* SVG_ANGLETYPE_UNKNOWN */
   nullptr, /* SVG_ANGLETYPE_UNSPECIFIED */
   &nsGkAtoms::deg,
   &nsGkAtoms::rad,
   &nsGkAtoms::grad
--- a/dom/svg/nsSVGAngle.h
+++ b/dom/svg/nsSVGAngle.h
@@ -32,17 +32,17 @@ class nsSVGAngle
 {
   friend class mozilla::dom::SVGAngle;
   friend class mozilla::dom::SVGAnimatedAngle;
 
 public:
   void Init(uint8_t aAttrEnum = 0xff,
             float aValue = 0,
             uint8_t aUnitType =
-              mozilla::dom::SVGAngleBinding::SVG_ANGLETYPE_UNSPECIFIED) {
+              mozilla::dom::SVGAngle_Binding::SVG_ANGLETYPE_UNSPECIFIED) {
     mAnimVal = mBaseVal = aValue;
     mAnimValUnit = mBaseValUnit = aUnitType;
     mAttrEnum = aAttrEnum;
     mIsAnimated = false;
   }
 
   nsresult SetBaseValueString(const nsAString& aValue,
                               nsSVGElement *aSVGElement,
--- a/dom/svg/nsSVGAnimatedTransformList.cpp
+++ b/dom/svg/nsSVGAnimatedTransformList.cpp
@@ -119,19 +119,19 @@ nsSVGAnimatedTransformList::SetAnimValue
   if (NS_FAILED(rv)) {
     // OOM. We clear the animation, and, importantly, ClearAnimValue() ensures
     // that mAnimVal and its DOM wrapper (if any) will have the same length!
     ClearAnimValue(aElement);
     return rv;
   }
   int32_t modType;
   if(prevSet) {
-    modType = MutationEventBinding::MODIFICATION;
+    modType = MutationEvent_Binding::MODIFICATION;
   } else {
-    modType = MutationEventBinding::ADDITION;
+    modType = MutationEvent_Binding::ADDITION;
   }
   aElement->DidAnimateTransformList(modType);
   return NS_OK;
 }
 
 void
 nsSVGAnimatedTransformList::ClearAnimValue(nsSVGElement *aElement)
 {
@@ -143,19 +143,19 @@ nsSVGAnimatedTransformList::ClearAnimVal
     // keep the length of our animVal's DOM wrapper list in sync, and again we
     // must do that before touching mAnimVal. See comments above.
     //
     domWrapper->InternalAnimValListWillChangeLengthTo(mBaseVal.Length());
   }
   mAnimVal = nullptr;
   int32_t modType;
   if (HasTransform() || aElement->GetAnimateMotionTransform()) {
-    modType = MutationEventBinding::MODIFICATION;
+    modType = MutationEvent_Binding::MODIFICATION;
   } else {
-    modType = MutationEventBinding::REMOVAL;
+    modType = MutationEvent_Binding::REMOVAL;
   }
   aElement->DidAnimateTransformList(modType);
 }
 
 bool
 nsSVGAnimatedTransformList::IsExplicitlySet() const
 {
   // Like other methods of this name, we need to know when a transform value has
--- a/dom/svg/nsSVGElement.cpp
+++ b/dom/svg/nsSVGElement.cpp
@@ -53,17 +53,17 @@
 #include "mozilla/dom/MutationEventBinding.h"
 #include "mozilla/dom/SVGElementBinding.h"
 #include "mozilla/DeclarationBlock.h"
 #include "mozilla/Unused.h"
 #include "mozilla/RestyleManager.h"
 
 using namespace mozilla;
 using namespace mozilla::dom;
-using namespace mozilla::dom::SVGUnitTypesBinding;
+using namespace mozilla::dom::SVGUnitTypes_Binding;
 
 // This is needed to ensure correct handling of calls to the
 // vararg-list methods in this file:
 //   nsSVGElement::GetAnimated{Length,Number,Integer}Values
 // See bug 547964 for details:
 static_assert(sizeof(void*) == sizeof(nullptr),
               "nullptr should be the correct size");
 
@@ -97,17 +97,17 @@ nsSVGElement::nsSVGElement(already_AddRe
 nsSVGElement::~nsSVGElement()
 {
   OwnerDoc()->UnscheduleSVGForPresAttrEvaluation(this);
 }
 
 JSObject*
 nsSVGElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 //----------------------------------------------------------------------
 // nsSVGElement methods
 
 void
 nsSVGElement::DidAnimateClass()
 {
@@ -1371,18 +1371,18 @@ nsSVGElement::WillChangeValue(nsAtom* aN
   if (attrValue &&
       nsContentUtils::HasMutationListeners(this,
                                            NS_EVENT_BITS_MUTATION_ATTRMODIFIED,
                                            this)) {
     emptyOrOldAttrValue.SetToSerialized(*attrValue);
   }
 
   uint8_t modType = attrValue
-                  ? 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, aName, modType,
                                    nullptr);
 
   // This is not strictly correct--the attribute value parameter for
   // BeforeSetAttr should reflect the value that *will* be set but that implies
   // allocating, e.g. an extra nsSVGLength2, and isn't necessary at the moment
   // since no SVG elements overload BeforeSetAttr. For now we just pass the
   // current value.
@@ -1417,18 +1417,18 @@ nsSVGElement::DidChangeValue(nsAtom* aNa
                              const nsAttrValue& aEmptyOrOldValue,
                              nsAttrValue& aNewValue)
 {
   bool hasListeners =
     nsContentUtils::HasMutationListeners(this,
                                          NS_EVENT_BITS_MUTATION_ATTRMODIFIED,
                                          this);
   uint8_t modType = HasAttr(kNameSpaceID_None, aName)
-                  ? 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);
 
   nsIDocument* document = GetComposedDoc();
   mozAutoDocUpdate updateBatch(document, kNotifyDocumentObservers);
   // XXX Really, the fourth argument to SetAttrAndNotify should be null if
   // aEmptyOrOldValue does not represent the actual previous value of the
   // attribute, but currently SVG elements do not even use the old attribute
   // value in |AfterSetAttr|, so this should be ok.
   SetAttrAndNotify(kNameSpaceID_None, aName, nullptr, &aEmptyOrOldValue,
@@ -1552,17 +1552,17 @@ nsSVGElement::DidAnimateLength(uint8_t a
   ClearAnyCachedPath();
 
   nsIFrame* frame = GetPrimaryFrame();
 
   if (frame) {
     LengthAttributesInfo info = GetLengthInfo();
     frame->AttributeChanged(kNameSpaceID_None,
                             *info.mLengthInfo[aAttrEnum].mName,
-                            MutationEventBinding::SMIL);
+                            MutationEvent_Binding::SMIL);
   }
 }
 
 nsSVGLength2*
 nsSVGElement::GetAnimatedLength(const nsAtom *aAttrName)
 {
   LengthAttributesInfo lengthInfo = GetLengthInfo();
 
@@ -1589,22 +1589,22 @@ nsSVGElement::GetAnimatedLengthValues(fl
   uint32_t i = 0;
 
   va_list args;
   va_start(args, aFirst);
 
   while (f && i < info.mLengthCount) {
     uint8_t type = info.mLengths[i].GetSpecifiedUnitType();
     if (!ctx) {
-      if (type != SVGLengthBinding::SVG_LENGTHTYPE_NUMBER &&
-          type != SVGLengthBinding::SVG_LENGTHTYPE_PX)
+      if (type != SVGLength_Binding::SVG_LENGTHTYPE_NUMBER &&
+          type != SVGLength_Binding::SVG_LENGTHTYPE_PX)
         ctx = GetCtx();
     }
-    if (type == SVGLengthBinding::SVG_LENGTHTYPE_EMS ||
-        type == SVGLengthBinding::SVG_LENGTHTYPE_EXS)
+    if (type == SVGLength_Binding::SVG_LENGTHTYPE_EMS ||
+        type == SVGLength_Binding::SVG_LENGTHTYPE_EXS)
       *f = info.mLengths[i++].GetAnimValue(this);
     else
       *f = info.mLengths[i++].GetAnimValue(ctx);
     f = va_arg(args, float*);
   }
 
   va_end(args);
 }
@@ -1649,17 +1649,17 @@ void
 nsSVGElement::DidAnimateLengthList(uint8_t aAttrEnum)
 {
   nsIFrame* frame = GetPrimaryFrame();
 
   if (frame) {
     LengthListAttributesInfo info = GetLengthListInfo();
     frame->AttributeChanged(kNameSpaceID_None,
                             *info.mLengthListInfo[aAttrEnum].mName,
-                            MutationEventBinding::SMIL);
+                            MutationEvent_Binding::SMIL);
   }
 }
 
 void
 nsSVGElement::GetAnimatedLengthListValues(SVGUserUnitList *aFirst, ...)
 {
   LengthListAttributesInfo info = GetLengthListInfo();
 
@@ -1737,17 +1737,17 @@ nsSVGElement::DidAnimateNumberList(uint8
   nsIFrame* frame = GetPrimaryFrame();
 
   if (frame) {
     NumberListAttributesInfo info = GetNumberListInfo();
     MOZ_ASSERT(aAttrEnum < info.mNumberListCount, "aAttrEnum out of range");
 
     frame->AttributeChanged(kNameSpaceID_None,
                             *info.mNumberListInfo[aAttrEnum].mName,
-                            MutationEventBinding::SMIL);
+                            MutationEvent_Binding::SMIL);
   }
 }
 
 SVGAnimatedNumberList*
 nsSVGElement::GetAnimatedNumberList(uint8_t aAttrEnum)
 {
   NumberListAttributesInfo info = GetNumberListInfo();
   if (aAttrEnum < info.mNumberListCount) {
@@ -1798,17 +1798,17 @@ nsSVGElement::DidAnimatePointList()
 
   ClearAnyCachedPath();
 
   nsIFrame* frame = GetPrimaryFrame();
 
   if (frame) {
     frame->AttributeChanged(kNameSpaceID_None,
                             GetPointListAttrName(),
-                            MutationEventBinding::SMIL);
+                            MutationEvent_Binding::SMIL);
   }
 }
 
 nsAttrValue
 nsSVGElement::WillChangePathSegList()
 {
   MOZ_ASSERT(GetPathDataAttrName(),
              "Changing non-existent path seg list?");
@@ -1835,17 +1835,17 @@ nsSVGElement::DidAnimatePathSegList()
 
   ClearAnyCachedPath();
 
   nsIFrame* frame = GetPrimaryFrame();
 
   if (frame) {
     frame->AttributeChanged(kNameSpaceID_None,
                             GetPathDataAttrName(),
-                            MutationEventBinding::SMIL);
+                            MutationEvent_Binding::SMIL);
   }
 }
 
 nsSVGElement::NumberAttributesInfo
 nsSVGElement::GetNumberInfo()
 {
   return NumberAttributesInfo(nullptr, nullptr, 0);
 }
@@ -1877,17 +1877,17 @@ void
 nsSVGElement::DidAnimateNumber(uint8_t aAttrEnum)
 {
   nsIFrame* frame = GetPrimaryFrame();
 
   if (frame) {
     NumberAttributesInfo info = GetNumberInfo();
     frame->AttributeChanged(kNameSpaceID_None,
                             *info.mNumberInfo[aAttrEnum].mName,
-                            MutationEventBinding::SMIL);
+                            MutationEvent_Binding::SMIL);
   }
 }
 
 void
 nsSVGElement::GetAnimatedNumberValues(float *aFirst, ...)
 {
   NumberAttributesInfo info = GetNumberInfo();
 
@@ -1948,17 +1948,17 @@ void
 nsSVGElement::DidAnimateNumberPair(uint8_t aAttrEnum)
 {
   nsIFrame* frame = GetPrimaryFrame();
 
   if (frame) {
     NumberPairAttributesInfo info = GetNumberPairInfo();
     frame->AttributeChanged(kNameSpaceID_None,
                             *info.mNumberPairInfo[aAttrEnum].mName,
-                            MutationEventBinding::SMIL);
+                            MutationEvent_Binding::SMIL);
   }
 }
 
 nsSVGElement::IntegerAttributesInfo
 nsSVGElement::GetIntegerInfo()
 {
   return IntegerAttributesInfo(nullptr, nullptr, 0);
 }
@@ -1990,17 +1990,17 @@ void
 nsSVGElement::DidAnimateInteger(uint8_t aAttrEnum)
 {
   nsIFrame* frame = GetPrimaryFrame();
 
   if (frame) {
     IntegerAttributesInfo info = GetIntegerInfo();
     frame->AttributeChanged(kNameSpaceID_None,
                             *info.mIntegerInfo[aAttrEnum].mName,
-                            MutationEventBinding::SMIL);
+                            MutationEvent_Binding::SMIL);
   }
 }
 
 void
 nsSVGElement::GetAnimatedIntegerValues(int32_t *aFirst, ...)
 {
   IntegerAttributesInfo info = GetIntegerInfo();
 
@@ -2062,17 +2062,17 @@ void
 nsSVGElement::DidAnimateIntegerPair(uint8_t aAttrEnum)
 {
   nsIFrame* frame = GetPrimaryFrame();
 
   if (frame) {
     IntegerPairAttributesInfo info = GetIntegerPairInfo();
     frame->AttributeChanged(kNameSpaceID_None,
                             *info.mIntegerPairInfo[aAttrEnum].mName,
-                            MutationEventBinding::SMIL);
+                            MutationEvent_Binding::SMIL);
   }
 }
 
 nsSVGElement::AngleAttributesInfo
 nsSVGElement::GetAngleInfo()
 {
   return AngleAttributesInfo(nullptr, nullptr, 0);
 }
@@ -2111,17 +2111,17 @@ void
 nsSVGElement::DidAnimateAngle(uint8_t aAttrEnum)
 {
   nsIFrame* frame = GetPrimaryFrame();
 
   if (frame) {
     AngleAttributesInfo info = GetAngleInfo();
     frame->AttributeChanged(kNameSpaceID_None,
                             *info.mAngleInfo[aAttrEnum].mName,
-                            MutationEventBinding::SMIL);
+                            MutationEvent_Binding::SMIL);
   }
 }
 
 nsSVGElement::BooleanAttributesInfo
 nsSVGElement::GetBooleanInfo()
 {
   return BooleanAttributesInfo(nullptr, nullptr, 0);
 }
@@ -2151,17 +2151,17 @@ void
 nsSVGElement::DidAnimateBoolean(uint8_t aAttrEnum)
 {
   nsIFrame* frame = GetPrimaryFrame();
 
   if (frame) {
     BooleanAttributesInfo info = GetBooleanInfo();
     frame->AttributeChanged(kNameSpaceID_None,
                             *info.mBooleanInfo[aAttrEnum].mName,
-                            MutationEventBinding::SMIL);
+                            MutationEvent_Binding::SMIL);
   }
 }
 
 nsSVGElement::EnumAttributesInfo
 nsSVGElement::GetEnumInfo()
 {
   return EnumAttributesInfo(nullptr, nullptr, 0);
 }
@@ -2198,17 +2198,17 @@ void
 nsSVGElement::DidAnimateEnum(uint8_t aAttrEnum)
 {
   nsIFrame* frame = GetPrimaryFrame();
 
   if (frame) {
     EnumAttributesInfo info = GetEnumInfo();
     frame->AttributeChanged(kNameSpaceID_None,
                             *info.mEnumInfo[aAttrEnum].mName,
-                            MutationEventBinding::SMIL);
+                            MutationEvent_Binding::SMIL);
   }
 }
 
 nsSVGViewBox *
 nsSVGElement::GetViewBox()
 {
   return nullptr;
 }
@@ -2235,17 +2235,17 @@ nsSVGElement::DidChangeViewBox(const nsA
 void
 nsSVGElement::DidAnimateViewBox()
 {
   nsIFrame* frame = GetPrimaryFrame();
 
   if (frame) {
     frame->AttributeChanged(kNameSpaceID_None,
                             nsGkAtoms::viewBox,
-                            MutationEventBinding::SMIL);
+                            MutationEvent_Binding::SMIL);
   }
 }
 
 SVGAnimatedPreserveAspectRatio *
 nsSVGElement::GetPreserveAspectRatio()
 {
   return nullptr;
 }
@@ -2275,17 +2275,17 @@ nsSVGElement::DidChangePreserveAspectRat
 void
 nsSVGElement::DidAnimatePreserveAspectRatio()
 {
   nsIFrame* frame = GetPrimaryFrame();
 
   if (frame) {
     frame->AttributeChanged(kNameSpaceID_None,
                             nsGkAtoms::preserveAspectRatio,
-                            MutationEventBinding::SMIL);
+                            MutationEvent_Binding::SMIL);
   }
 }
 
 nsAttrValue
 nsSVGElement::WillChangeTransformList()
 {
   return WillChangeValue(GetTransformListAttrName());
 }
@@ -2376,17 +2376,17 @@ void
 nsSVGElement::DidAnimateString(uint8_t aAttrEnum)
 {
   nsIFrame* frame = GetPrimaryFrame();
 
   if (frame) {
     StringAttributesInfo info = GetStringInfo();
     frame->AttributeChanged(info.mStringInfo[aAttrEnum].mNamespaceID,
                             *info.mStringInfo[aAttrEnum].mName,
-                            MutationEventBinding::SMIL);
+                            MutationEvent_Binding::SMIL);
   }
 }
 
 nsSVGElement::StringListAttributesInfo
 nsSVGElement::GetStringListInfo()
 {
   return StringListAttributesInfo(nullptr, nullptr, 0);
 }
--- a/dom/svg/nsSVGFilters.cpp
+++ b/dom/svg/nsSVGFilters.cpp
@@ -48,20 +48,20 @@
 using namespace mozilla;
 using namespace mozilla::dom;
 using namespace mozilla::gfx;
 
 //--------------------Filter Element Base Class-----------------------
 
 nsSVGElement::LengthInfo nsSVGFE::sLengthInfo[4] =
 {
-  { &nsGkAtoms::x, 0, SVGLengthBinding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::X },
-  { &nsGkAtoms::y, 0, SVGLengthBinding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::Y },
-  { &nsGkAtoms::width, 100, SVGLengthBinding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::X },
-  { &nsGkAtoms::height, 100, SVGLengthBinding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::Y }
+  { &nsGkAtoms::x, 0, SVGLength_Binding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::X },
+  { &nsGkAtoms::y, 0, SVGLength_Binding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::Y },
+  { &nsGkAtoms::width, 100, SVGLength_Binding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::X },
+  { &nsGkAtoms::height, 100, SVGLength_Binding::SVG_LENGTHTYPE_PERCENTAGE, SVGContentUtils::Y }
 };
 
 //----------------------------------------------------------------------
 // nsISupports methods
 
 NS_IMPL_ADDREF_INHERITED(nsSVGFE,nsSVGFEBase)
 NS_IMPL_RELEASE_INHERITED(nsSVGFE,nsSVGFEBase)
 
@@ -356,65 +356,65 @@ SVGComponentTransferFunctionElement::Get
 {
   return NumberAttributesInfo(mNumberAttributes, sNumberInfo,
                               ArrayLength(sNumberInfo));
 }
 
 /* virtual */ JSObject*
 SVGFEFuncRElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGFEFuncRElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGFEFuncRElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
 
 NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(FEFuncR)
 
 namespace mozilla {
 namespace dom {
 
 NS_IMPL_ELEMENT_CLONE_WITH_INIT(SVGFEFuncRElement)
 
 /* virtual */ JSObject*
 SVGFEFuncGElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGFEFuncGElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGFEFuncGElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
 
 NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(FEFuncG)
 
 namespace mozilla {
 namespace dom {
 
 NS_IMPL_ELEMENT_CLONE_WITH_INIT(SVGFEFuncGElement)
 
 /* virtual */ JSObject*
 SVGFEFuncBElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGFEFuncBElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGFEFuncBElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
 
 NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(FEFuncB)
 
 namespace mozilla {
 namespace dom {
 
 NS_IMPL_ELEMENT_CLONE_WITH_INIT(SVGFEFuncBElement)
 
 /* virtual */ JSObject*
 SVGFEFuncAElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return SVGFEFuncAElementBinding::Wrap(aCx, this, aGivenProto);
+  return SVGFEFuncAElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
 
 NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(FEFuncA)
 
 namespace mozilla {
--- a/dom/svg/nsSVGLength2.cpp
+++ b/dom/svg/nsSVGLength2.cpp
@@ -40,18 +40,18 @@ static nsStaticAtom** const unitMap[] =
 static nsSVGAttrTearoffTable<nsSVGLength2, SVGAnimatedLength>
   sSVGAnimatedLengthTearoffTable;
 
 /* Helper functions */
 
 static bool
 IsValidUnitType(uint16_t unit)
 {
-  if (unit > SVGLengthBinding::SVG_LENGTHTYPE_UNKNOWN &&
-      unit <= SVGLengthBinding::SVG_LENGTHTYPE_PC)
+  if (unit > SVGLength_Binding::SVG_LENGTHTYPE_UNKNOWN &&
+      unit <= SVGLength_Binding::SVG_LENGTHTYPE_PC)
     return true;
 
   return false;
 }
 
 static void
 GetUnitString(nsAString& unit, uint16_t unitType)
 {
@@ -64,28 +64,28 @@ GetUnitString(nsAString& unit, uint16_t 
 
   NS_NOTREACHED("Unknown unit type");
 }
 
 static uint16_t
 GetUnitTypeForString(const nsAString& unitStr)
 {
   if (unitStr.IsEmpty())
-    return SVGLengthBinding::SVG_LENGTHTYPE_NUMBER;
+    return SVGLength_Binding::SVG_LENGTHTYPE_NUMBER;
 
   nsAtom *unitAtom = NS_GetStaticAtom(unitStr);
   if (unitAtom) {
     for (uint32_t i = 0 ; i < ArrayLength(unitMap) ; i++) {
       if (unitMap[i] && *unitMap[i] == unitAtom) {
         return i;
       }
     }
   }
 
-  return SVGLengthBinding::SVG_LENGTHTYPE_UNKNOWN;
+  return SVGLength_Binding::SVG_LENGTHTYPE_UNKNOWN;
 }
 
 static void
 GetValueString(nsAString &aValueAsString, float aValue, uint16_t aUnitType)
 {
   nsTextFormatter::ssprintf(aValueAsString, u"%g", (double)aValue);
 
   nsAutoString unitString;
@@ -238,34 +238,34 @@ nsSVGLength2::GetPixelsPerUnit(nsIFrame*
 // See https://www.w3.org/TR/css-values-3/#absolute-lengths
 static const float DPI = 96.0f;
 
 float
 nsSVGLength2::GetPixelsPerUnit(const UserSpaceMetrics& aMetrics,
                                uint8_t aUnitType) const
 {
   switch (aUnitType) {
-  case SVGLengthBinding::SVG_LENGTHTYPE_NUMBER:
-  case SVGLengthBinding::SVG_LENGTHTYPE_PX:
+  case SVGLength_Binding::SVG_LENGTHTYPE_NUMBER:
+  case SVGLength_Binding::SVG_LENGTHTYPE_PX:
     return 1;
-  case SVGLengthBinding::SVG_LENGTHTYPE_MM:
+  case SVGLength_Binding::SVG_LENGTHTYPE_MM:
     return DPI / MM_PER_INCH_FLOAT;
-  case SVGLengthBinding::SVG_LENGTHTYPE_CM:
+  case SVGLength_Binding::SVG_LENGTHTYPE_CM:
     return 10.0f * DPI / MM_PER_INCH_FLOAT;
-  case SVGLengthBinding::SVG_LENGTHTYPE_IN:
+  case SVGLength_Binding::SVG_LENGTHTYPE_IN:
     return DPI;
-  case SVGLengthBinding::SVG_LENGTHTYPE_PT:
+  case SVGLength_Binding::SVG_LENGTHTYPE_PT:
     return DPI / POINTS_PER_INCH_FLOAT;
-  case SVGLengthBinding::SVG_LENGTHTYPE_PC:
+  case SVGLength_Binding::SVG_LENGTHTYPE_PC:
     return 12.0f * DPI / POINTS_PER_INCH_FLOAT;
-  case SVGLengthBinding::SVG_LENGTHTYPE_PERCENTAGE:
+  case SVGLength_Binding::SVG_LENGTHTYPE_PERCENTAGE:
     return aMetrics.GetAxisLength(mCtxType) / 100.0f;
-  case SVGLengthBinding::SVG_LENGTHTYPE_EMS:
+  case SVGLength_Binding::SVG_LENGTHTYPE_EMS:
     return aMetrics.GetEmLength();
-  case SVGLengthBinding::SVG_LENGTHTYPE_EXS:
+  case SVGLength_Binding::SVG_LENGTHTYPE_EXS:
     return aMetrics.GetExLength();
   default:
     NS_NOTREACHED("Unknown unit type");
     return 0;
   }
 }
 
 void
@@ -513,19 +513,19 @@ nsSVGLength2::SMILLength::ValueFromStrin
   if (!GetValueFromString(aStr, value, &unitType)) {
     return NS_ERROR_DOM_SYNTAX_ERR;
   }
 
   nsSMILValue val(nsSMILFloatType::Singleton());
   val.mU.mDouble = value * mVal->GetPixelsPerUnit(mSVGElement, unitType);
   aValue = val;
   aPreventCachingOfSandwich =
-              (unitType == SVGLengthBinding::SVG_LENGTHTYPE_PERCENTAGE ||
-               unitType == SVGLengthBinding::SVG_LENGTHTYPE_EMS ||
-               unitType == SVGLengthBinding::SVG_LENGTHTYPE_EXS);
+              (unitType == SVGLength_Binding::SVG_LENGTHTYPE_PERCENTAGE ||
+               unitType == SVGLength_Binding::SVG_LENGTHTYPE_EMS ||
+               unitType == SVGLength_Binding::SVG_LENGTHTYPE_EXS);
 
   return NS_OK;
 }
 
 nsSMILValue
 nsSVGLength2::SMILLength::GetBaseValue() const
 {
   nsSMILValue val(nsSMILFloatType::Singleton());
--- a/dom/svg/nsSVGLength2.h
+++ b/dom/svg/nsSVGLength2.h
@@ -93,17 +93,17 @@ class nsSVGLength2
   typedef mozilla::dom::UserSpaceMetrics UserSpaceMetrics;
   typedef mozilla::dom::SVGViewportElement SVGViewportElement;
 
 public:
   void Init(uint8_t aCtxType = SVGContentUtils::XY,
             uint8_t aAttrEnum = 0xff,
             float aValue = 0,
             uint8_t aUnitType =
-              mozilla::dom::SVGLengthBinding::SVG_LENGTHTYPE_NUMBER) {
+              mozilla::dom::SVGLength_Binding::SVG_LENGTHTYPE_NUMBER) {
     mAnimVal = mBaseVal = aValue;
     mSpecifiedUnitType = aUnitType;
     mAttrEnum = aAttrEnum;
     mCtxType = aCtxType;
     mIsAnimated = false;
     mIsBaseSet = false;
   }
 
@@ -133,17 +133,17 @@ public:
     { return mAnimVal * GetPixelsPerUnit(aCtx, mSpecifiedUnitType); }
   float GetAnimValue(const UserSpaceMetrics& aMetrics) const
     { return mAnimVal * GetPixelsPerUnit(aMetrics, mSpecifiedUnitType); }
 
   uint8_t GetCtxType() const { return mCtxType; }
   uint8_t GetSpecifiedUnitType() const { return mSpecifiedUnitType; }
   bool IsPercentage() const
     { return mSpecifiedUnitType ==
-        mozilla::dom::SVGLengthBinding::SVG_LENGTHTYPE_PERCENTAGE; }
+        mozilla::dom::SVGLength_Binding::SVG_LENGTHTYPE_PERCENTAGE; }
   float GetAnimValInSpecifiedUnits() const { return mAnimVal; }
   float GetBaseValInSpecifiedUnits() const { return mBaseVal; }
 
   float GetBaseValue(SVGViewportElement* aCtx) const
     { return mBaseVal * GetPixelsPerUnit(aCtx, mSpecifiedUnitType); }
 
   bool HasBaseVal() const {
     return mIsBaseSet;
--- a/dom/svg/nsSVGPathDataParser.cpp
+++ b/dom/svg/nsSVGPathDataParser.cpp
@@ -8,17 +8,17 @@
 
 #include "mozilla/gfx/Point.h"
 #include "nsSVGDataParser.h"
 #include "SVGContentUtils.h"
 #include "SVGPathData.h"
 #include "SVGPathSegUtils.h"
 
 using namespace mozilla;
-using namespace mozilla::dom::SVGPathSegBinding;
+using namespace mozilla::dom::SVGPathSeg_Binding;
 using namespace mozilla::gfx;
 
 static inline char16_t ToUpper(char16_t aCh)
 {
   return aCh >= 'a' && aCh <= 'z' ? aCh - 'a' + 'A' : aCh;
 }
 
 bool
--- a/dom/svg/nsSVGTransform.cpp
+++ b/dom/svg/nsSVGTransform.cpp
@@ -10,17 +10,17 @@
 #include "nsTextFormatter.h"
 
 namespace {
   const double kRadPerDegree = 2.0 * M_PI / 360.0;
 } // namespace
 
 namespace mozilla {
 
-using namespace dom::SVGTransformBinding;
+using namespace dom::SVGTransform_Binding;
 
 void
 nsSVGTransform::GetValueAsString(nsAString& aValue) const
 {
   switch (mType) {
     case SVG_TRANSFORM_TRANSLATE:
       // The spec say that if Y is not provided, it is assumed to be zero.
       if (mMatrix._32 != 0)
--- a/dom/svg/nsSVGTransform.h
+++ b/dom/svg/nsSVGTransform.h
@@ -21,25 +21,25 @@ class nsSVGTransform
 {
 public:
   // Default ctor initialises to matrix type with identity matrix
   nsSVGTransform()
     : mMatrix() // Initialises to identity
     , mAngle(0.f)
     , mOriginX(0.f)
     , mOriginY(0.f)
-    , mType(dom::SVGTransformBinding::SVG_TRANSFORM_MATRIX)
+    , mType(dom::SVGTransform_Binding::SVG_TRANSFORM_MATRIX)
   { }
 
   explicit nsSVGTransform(const gfxMatrix& aMatrix)
     : mMatrix(aMatrix)
     , mAngle(0.f)
     , mOriginX(0.f)
     , mOriginY(0.f)
-    , mType(dom::SVGTransformBinding::SVG_TRANSFORM_MATRIX)
+    , mType(dom::SVGTransform_Binding::SVG_TRANSFORM_MATRIX)
   { }
 
   bool operator==(const nsSVGTransform& rhs) const {
     return mType == rhs.mType &&
       MatricesEqual(mMatrix, rhs.mMatrix) &&
       mAngle == rhs.mAngle &&
       mOriginX == rhs.mOriginX &&
       mOriginY == rhs.mOriginY;
@@ -114,29 +114,29 @@ public:
 
   // Number of float-params required in constructor for matrix type.
   // This is also the number of params we actually store, regardless of type.
   static const uint32_t NUM_STORED_PARAMS = 6;
 
   explicit SVGTransformSMILData(uint16_t aType)
   : mTransformType(aType)
   {
-    MOZ_ASSERT(aType >=dom::SVGTransformBinding:: SVG_TRANSFORM_MATRIX &&
-               aType <= dom::SVGTransformBinding::SVG_TRANSFORM_SKEWY,
+    MOZ_ASSERT(aType >=dom::SVGTransform_Binding:: SVG_TRANSFORM_MATRIX &&
+               aType <= dom::SVGTransform_Binding::SVG_TRANSFORM_SKEWY,
                "Unexpected transform type");
     for (uint32_t i = 0; i < NUM_STORED_PARAMS; ++i) {
       mParams[i] = 0.f;
     }
   }
 
   SVGTransformSMILData(uint16_t aType, float (&aParams)[NUM_SIMPLE_PARAMS])
   : mTransformType(aType)
   {
-    MOZ_ASSERT(aType >= dom::SVGTransformBinding::SVG_TRANSFORM_TRANSLATE &&
-               aType <= dom::SVGTransformBinding::SVG_TRANSFORM_SKEWY,
+    MOZ_ASSERT(aType >= dom::SVGTransform_Binding::SVG_TRANSFORM_TRANSLATE &&
+               aType <= dom::SVGTransform_Binding::SVG_TRANSFORM_SKEWY,
                "Expected 'simple' transform type");
     for (uint32_t i = 0; i < NUM_SIMPLE_PARAMS; ++i) {
       mParams[i] = aParams[i];
     }
     for (uint32_t i = NUM_SIMPLE_PARAMS; i < NUM_STORED_PARAMS; ++i) {
       mParams[i] = 0.f;
     }
   }
--- a/dom/system/linux/GpsdLocationProvider.cpp
+++ b/dom/system/linux/GpsdLocationProvider.cpp
@@ -180,17 +180,17 @@ public:
   {
     int err;
 
     switch (GPSD_API_MAJOR_VERSION) {
       case 5:
         err = PollLoop5();
         break;
       default:
-        err = PositionErrorBinding::POSITION_UNAVAILABLE;
+        err = PositionError_Binding::POSITION_UNAVAILABLE;
         break;
     }
 
     if (err) {
       NS_DispatchToMainThread(
         MakeAndAddRef<NotifyErrorRunnable>(mLocationProvider, err));
     }
 
@@ -296,35 +296,35 @@ protected:
                                                         PR_Now() / PR_USEC_PER_MSEC)));
     }
 
     gps_stream(&gpsData, WATCH_DISABLE, NULL);
     gps_close(&gpsData);
 
     return err;
 #else
-    return PositionErrorBinding::POSITION_UNAVAILABLE;
+    return PositionError_Binding::POSITION_UNAVAILABLE;
 #endif // GPSD_MAJOR_API_VERSION
   }
 
   static int ErrnoToError(int aErrno)
   {
     switch (aErrno) {
       case EACCES:
           MOZ_FALLTHROUGH;
       case EPERM:
           MOZ_FALLTHROUGH;
       case EROFS:
-        return PositionErrorBinding::PERMISSION_DENIED;
+        return PositionError_Binding::PERMISSION_DENIED;
       case ETIME:
           MOZ_FALLTHROUGH;
       case ETIMEDOUT:
-        return PositionErrorBinding::TIMEOUT;
+        return PositionError_Binding::TIMEOUT;
       default:
-        return PositionErrorBinding::POSITION_UNAVAILABLE;
+        return PositionError_Binding::POSITION_UNAVAILABLE;
     }
   }
 
 private:
   nsMainThreadPtrHandle<GpsdLocationProvider> mLocationProvider;
   Atomic<bool> mRunning;
 };
 
--- a/dom/system/mac/CoreLocationLocationProvider.mm
+++ b/dom/system/mac/CoreLocationLocationProvider.mm
@@ -62,17 +62,17 @@ static const CLLocationAccuracy kDEFAULT
   NS_ENSURE_TRUE_VOID(console);
 
   NSString* message =
     [@"Failed to acquire position: " stringByAppendingString: [aError localizedDescription]];
 
   console->LogStringMessage(NS_ConvertUTF8toUTF16([message UTF8String]).get());
 
   if ([aError code] == kCLErrorDenied) {
-    mProvider->NotifyError(dom::PositionErrorBinding::PERMISSION_DENIED);
+    mProvider->NotifyError(dom::PositionError_Binding::PERMISSION_DENIED);
     return;
   }
 
   // The CL provider does not fallback to GeoIP, so use NetworkGeolocationProvider for this.
   // The concept here is: on error, hand off geolocation to MLS, which will then report
   // back a location or error. We can't call this with no delay however, as this method
   // is called with an error code of 0 in both failed geolocation cases, and also when
   // geolocation is not immediately available.
--- a/dom/system/windows/WindowsLocationProvider.cpp
+++ b/dom/system/windows/WindowsLocationProvider.cpp
@@ -124,21 +124,21 @@ LocationEvent::OnStatusChanged(REFIID aR
     return S_OK;
   }
 
   // Cannot watch location by MLS provider.  We must return error by
   // Location API.
   uint16_t err;
   switch (aStatus) {
   case REPORT_ACCESS_DENIED:
-    err = PositionErrorBinding::PERMISSION_DENIED;
+    err = PositionError_Binding::PERMISSION_DENIED;
     break;
   case REPORT_NOT_SUPPORTED:
   case REPORT_ERROR:
-    err = PositionErrorBinding::POSITION_UNAVAILABLE;
+    err = PositionError_Binding::POSITION_UNAVAILABLE;
     break;
   default:
     return S_OK;
   }
   mCallback->NotifyError(err);
   return S_OK;
 }
 
--- a/dom/u2f/U2F.cpp
+++ b/dom/u2f/U2F.cpp
@@ -166,17 +166,17 @@ U2F::Init(ErrorResult& aRv)
     aRv.Throw(NS_ERROR_FAILURE);
     return;
   }
 }
 
 /* virtual */ JSObject*
 U2F::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return U2FBinding::Wrap(aCx, this, aGivenProto);
+  return U2F_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 template<typename T, typename C>
 void
 U2F::ExecuteCallback(T& aResp, nsMainThreadPtrHandle<C>& aCb)
 {
   MOZ_ASSERT(NS_IsMainThread());
   MOZ_ASSERT(aCb);
--- a/dom/url/URL.cpp
+++ b/dom/url/URL.cpp
@@ -26,17 +26,17 @@ NS_IMPL_CYCLE_COLLECTING_RELEASE(URL)
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(URL)
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 JSObject*
 URL::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return URLBinding::Wrap(aCx, this, aGivenProto);
+  return URL_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 /* static */ already_AddRefed<URL>
 URL::Constructor(const GlobalObject& aGlobal, const nsAString& aURL,
                  const Optional<nsAString>& aBase, ErrorResult& aRv)
 {
   if (NS_IsMainThread()) {
     return URLMainThread::Constructor(aGlobal, aURL, aBase, aRv);
--- a/dom/url/URLSearchParams.cpp
+++ b/dom/url/URLSearchParams.cpp
@@ -354,17 +354,17 @@ URLSearchParams::URLSearchParams(nsISupp
 URLSearchParams::~URLSearchParams()
 {
   DeleteAll();
 }
 
 JSObject*
 URLSearchParams::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return URLSearchParamsBinding::Wrap(aCx, this, aGivenProto);
+  return URLSearchParams_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 /* static */ already_AddRefed<URLSearchParams>
 URLSearchParams::Constructor(const GlobalObject& aGlobal,
                              const USVStringSequenceSequenceOrUSVStringUSVStringRecordOrUSVString& aInit,
                              ErrorResult& aRv)
 {
   RefPtr<URLSearchParams> sp =
--- a/dom/vr/VRDisplay.cpp
+++ b/dom/vr/VRDisplay.cpp
@@ -119,17 +119,17 @@ NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(VR
 NS_IMPL_CYCLE_COLLECTION_ROOT_NATIVE(VRFieldOfView, AddRef)
 NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(VRFieldOfView, Release)
 
 
 JSObject*
 VRFieldOfView::WrapObject(JSContext* aCx,
                           JS::Handle<JSObject*> aGivenProto)
 {
-  return VRFieldOfViewBinding::Wrap(aCx, this, aGivenProto);
+  return VRFieldOfView_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 NS_IMPL_CYCLE_COLLECTION_CLASS(VREyeParameters)
 
 NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(VREyeParameters)
   NS_IMPL_CYCLE_COLLECTION_UNLINK(mParent, mFOV)
   NS_IMPL_CYCLE_COLLECTION_UNLINK_PRESERVED_WRAPPER
   tmp->mOffset = nullptr;
@@ -182,17 +182,17 @@ VREyeParameters::GetOffset(JSContext* aC
     }
   }
   aRetval.set(mOffset);
 }
 
 JSObject*
 VREyeParameters::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return VREyeParametersBinding::Wrap(aCx, this, aGivenProto);
+  return VREyeParameters_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 VRStageParameters::VRStageParameters(nsISupports* aParent,
                                      const gfx::Matrix4x4& aSittingToStandingTransform,
                                      const gfx::Size& aSize)
   : mParent(aParent)
   , mSittingToStandingTransform(aSittingToStandingTransform)
   , mSittingToStandingTransformArray(nullptr)
@@ -204,17 +204,17 @@ VRStageParameters::VRStageParameters(nsI
 VRStageParameters::~VRStageParameters()
 {
   mozilla::DropJSObjects(this);
 }
 
 JSObject*
 VRStageParameters::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return VRStageParametersBinding::Wrap(aCx, this, aGivenProto);
+  return VRStageParameters_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 NS_IMPL_CYCLE_COLLECTION_CLASS(VRStageParameters)
 
 NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(VRStageParameters)
   NS_IMPL_CYCLE_COLLECTION_UNLINK(mParent)
   NS_IMPL_CYCLE_COLLECTION_UNLINK_PRESERVED_WRAPPER
   tmp->mSittingToStandingTransformArray = nullptr;
@@ -251,17 +251,17 @@ VRStageParameters::GetSittingToStandingT
 
 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(VRDisplayCapabilities, mParent)
 NS_IMPL_CYCLE_COLLECTION_ROOT_NATIVE(VRDisplayCapabilities, AddRef)
 NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(VRDisplayCapabilities, Release)
 
 JSObject*
 VRDisplayCapabilities::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return VRDisplayCapabilitiesBinding::Wrap(aCx, this, aGivenProto);
+  return VRDisplayCapabilities_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 VRPose::VRPose(nsISupports* aParent, const gfx::VRHMDSensorState& aState)
   : Pose(aParent)
   , mVRState(aState)
 {
   mFrameId = aState.inputFrameID;
   mozilla::HoldJSObjects(this);
@@ -338,23 +338,23 @@ VRPose::GetAngularAcceleration(JSContext
   SetFloat32Array(aCx, aRetval, mAngularAcceleration, mVRState.angularAcceleration, 3,
     !mAngularAcceleration && bool(mVRState.flags & gfx::VRDisplayCapabilityFlags::Cap_AngularAcceleration),
     aRv);
 }
 
 JSObject*
 VRPose::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return VRPoseBinding::Wrap(aCx, this, aGivenProto);
+  return VRPose_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 /* virtual */ JSObject*
 VRDisplay::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return VRDisplayBinding::Wrap(aCx, this, aGivenProto);
+  return VRDisplay_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 VRDisplay::VRDisplay(nsPIDOMWindowInner* aWindow, gfx::VRDisplayClient* aClient)
   : DOMEventTargetHelper(aWindow)
   , mClient(aClient)
   , mDepthNear(0.01f) // Default value from WebVR Spec
   , mDepthFar(10000.0f) // Default value from WebVR Spec
   , mVRNavigationEventDepth(0)
@@ -797,17 +797,17 @@ VRFrameData::Constructor(const GlobalObj
   RefPtr<VRFrameData> obj = new VRFrameData(aGlobal.GetAsSupports());
   return obj.forget();
 }
 
 JSObject*
 VRFrameData::WrapObject(JSContext* aCx,
                         JS::Handle<JSObject*> aGivenProto)
 {
-  return VRFrameDataBinding::Wrap(aCx, this, aGivenProto);
+  return VRFrameData_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 VRPose*
 VRFrameData::Pose()
 {
   return mPose;
 }
 
@@ -961,17 +961,17 @@ VRSubmitFrameResult::Constructor(const G
   RefPtr<VRSubmitFrameResult> obj = new VRSubmitFrameResult(aGlobal.GetAsSupports());
   return obj.forget();
 }
 
 JSObject*
 VRSubmitFrameResult::WrapObject(JSContext* aCx,
                                 JS::Handle<JSObject*> aGivenProto)
 {
-  return VRSubmitFrameResultBinding::Wrap(aCx, this, aGivenProto);
+  return VRSubmitFrameResult_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 VRSubmitFrameResult::Update(uint64_t aFrameNum, const nsACString& aBase64Image)
 {
   mFrameNum = aFrameNum;
   mBase64Image = NS_ConvertASCIItoUTF16(aBase64Image);
 }
--- a/dom/vr/VRDisplayEvent.cpp
+++ b/dom/vr/VRDisplayEvent.cpp
@@ -41,17 +41,17 @@ VRDisplayEvent::Display()
 {
   return mDisplay;
 }
 
 JSObject*
 VRDisplayEvent::WrapObjectInternal(JSContext* aCx,
                                    JS::Handle<JSObject*> aGivenProto)
 {
-  return VRDisplayEventBinding::Wrap(aCx, this, aGivenProto);
+  return VRDisplayEvent_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 already_AddRefed<VRDisplayEvent>
 VRDisplayEvent::Constructor(mozilla::dom::EventTarget* aOwner,
                             const nsAString& aType,
                             const VRDisplayEventInit& aEventInitDict)
 {
   RefPtr<VRDisplayEvent> e = new VRDisplayEvent(aOwner);
--- a/dom/vr/VRServiceTest.cpp
+++ b/dom/vr/VRServiceTest.cpp
@@ -46,17 +46,17 @@ VRMockDisplay::VRMockDisplay(const nsCSt
                            VRDisplayCapabilityFlags::Cap_Present |
                            VRDisplayCapabilityFlags::Cap_StageParameters |
                            VRDisplayCapabilityFlags::Cap_MountDetection;
 }
 
 JSObject*
 VRMockDisplay::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return VRMockDisplayBinding::Wrap(aCx, this, aGivenProto);
+  return VRMockDisplay_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void VRMockDisplay::SetEyeResolution(unsigned long aRenderWidth, unsigned long aRenderHeight)
 {
   mDisplayInfo.mDisplayState.mEyeResolution.width = aRenderWidth;
   mDisplayInfo.mDisplayState.mEyeResolution.height = aRenderHeight;
 }
 
@@ -170,17 +170,17 @@ NS_IMPL_RELEASE_INHERITED(VRMockControll
 VRMockController::VRMockController(const nsCString& aID, uint32_t aDeviceID)
  : mID(aID), mDeviceID(aDeviceID)
 {
 }
 
 JSObject*
 VRMockController::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return VRMockControllerBinding::Wrap(aCx, this, aGivenProto);
+  return VRMockController_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 VRMockController::NewButtonEvent(unsigned long aButton, bool aPressed)
 {
   gfx::VRManagerChild* vm = gfx::VRManagerChild::Get();
   vm->SendNewButtonEventToMockController(mDeviceID, aButton, aPressed);
 }
@@ -276,17 +276,17 @@ NS_INTERFACE_MAP_END_INHERITING(DOMEvent
 
 NS_IMPL_ADDREF_INHERITED(VRServiceTest, DOMEventTargetHelper)
 NS_IMPL_RELEASE_INHERITED(VRServiceTest, DOMEventTargetHelper)
 
 
 JSObject*
 VRServiceTest::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return VRServiceTestBinding::Wrap(aCx, this, aGivenProto);
+  return VRServiceTest_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 // static
 already_AddRefed<VRServiceTest>
 VRServiceTest::CreateTestService(nsPIDOMWindowInner* aWindow)
 {
   MOZ_ASSERT(aWindow);
   RefPtr<VRServiceTest> service = new VRServiceTest(aWindow);
--- a/dom/webauthn/AuthenticatorAssertionResponse.cpp
+++ b/dom/webauthn/AuthenticatorAssertionResponse.cpp
@@ -49,17 +49,17 @@ AuthenticatorAssertionResponse::~Authent
 {
   mozilla::DropJSObjects(this);
 }
 
 JSObject*
 AuthenticatorAssertionResponse::WrapObject(JSContext* aCx,
                                            JS::Handle<JSObject*> aGivenProto)
 {
-  return AuthenticatorAssertionResponseBinding::Wrap(aCx, this, aGivenProto);
+  return AuthenticatorAssertionResponse_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 AuthenticatorAssertionResponse::GetAuthenticatorData(JSContext* aCx,
                                                      JS::MutableHandle<JSObject*> aRetVal)
 {
   if (!mAuthenticatorDataCachedObj) {
     mAuthenticatorDataCachedObj = mAuthenticatorData.ToArrayBuffer(aCx);
--- a/dom/webauthn/AuthenticatorAttestationResponse.cpp
+++ b/dom/webauthn/AuthenticatorAttestationResponse.cpp
@@ -43,17 +43,17 @@ AuthenticatorAttestationResponse::~Authe
 {
   mozilla::DropJSObjects(this);
 }
 
 JSObject*
 AuthenticatorAttestationResponse::WrapObject(JSContext* aCx,
                                              JS::Handle<JSObject*> aGivenProto)
 {
-  return AuthenticatorAttestationResponseBinding::Wrap(aCx, this, aGivenProto);
+  return AuthenticatorAttestationResponse_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 AuthenticatorAttestationResponse::GetAttestationObject(JSContext* aCx,
                                                        JS::MutableHandle<JSObject*> aRetVal)
 {
   if (!mAttestationObjectCachedObj) {
     mAttestationObjectCachedObj = mAttestationObject.ToArrayBuffer(aCx);
--- a/dom/webauthn/AuthenticatorResponse.cpp
+++ b/dom/webauthn/AuthenticatorResponse.cpp
@@ -45,17 +45,17 @@ AuthenticatorResponse::~AuthenticatorRes
 {
   mozilla::DropJSObjects(this);
 }
 
 JSObject*
 AuthenticatorResponse::WrapObject(JSContext* aCx,
                                   JS::Handle<JSObject*> aGivenProto)
 {
-  return AuthenticatorResponseBinding::Wrap(aCx, this, aGivenProto);
+  return AuthenticatorResponse_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 AuthenticatorResponse::GetClientDataJSON(JSContext* aCx,
                                          JS::MutableHandle<JSObject*> aRetVal)
 {
   if (!mClientDataJSONCachedObj) {
     mClientDataJSONCachedObj = mClientDataJSON.ToArrayBuffer(aCx);
--- a/dom/webauthn/PublicKeyCredential.cpp
+++ b/dom/webauthn/PublicKeyCredential.cpp
@@ -43,17 +43,17 @@ PublicKeyCredential::~PublicKeyCredentia
 {
   mozilla::DropJSObjects(this);
 }
 
 JSObject*
 PublicKeyCredential::WrapObject(JSContext* aCx,
                                 JS::Handle<JSObject*> aGivenProto)
 {
-  return PublicKeyCredentialBinding::Wrap(aCx, this, aGivenProto);
+  return PublicKeyCredential_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 PublicKeyCredential::GetRawId(JSContext* aCx,
                               JS::MutableHandle<JSObject*> aRetVal)
 {
   if (!mRawIdCachedObj) {
     mRawIdCachedObj = mRawId.ToArrayBuffer(aCx);
--- a/dom/webbrowserpersist/WebBrowserPersistLocalDocument.cpp
+++ b/dom/webbrowserpersist/WebBrowserPersistLocalDocument.cpp
@@ -1136,19 +1136,19 @@ WebBrowserPersistLocalDocument::ReadReso
     nsresult rv = NS_OK;
     nsCOMPtr<nsIWebBrowserPersistResourceVisitor> visitor = aVisitor;
 
     NS_ENSURE_TRUE(mDocument, NS_ERROR_FAILURE);
 
     ErrorResult err;
     RefPtr<dom::TreeWalker> walker =
         mDocument->CreateTreeWalker(*mDocument,
-            dom::NodeFilterBinding::SHOW_ELEMENT |
-            dom::NodeFilterBinding::SHOW_DOCUMENT |
-            dom::NodeFilterBinding::SHOW_PROCESSING_INSTRUCTION,
+            dom::NodeFilter_Binding::SHOW_ELEMENT |
+            dom::NodeFilter_Binding::SHOW_DOCUMENT |
+            dom::NodeFilter_Binding::SHOW_PROCESSING_INSTRUCTION,
             nullptr, err);
 
     if (NS_WARN_IF(err.Failed())) {
         return err.StealNSResult();
     }
     MOZ_ASSERT(walker);
 
     RefPtr<ResourceReader> reader = new ResourceReader(this, aVisitor);
--- a/dom/websocket/WebSocket.cpp
+++ b/dom/websocket/WebSocket.cpp
@@ -946,17 +946,17 @@ WebSocket::WebSocket(nsPIDOMWindowInner*
 
 WebSocket::~WebSocket()
 {
 }
 
 JSObject*
 WebSocket::WrapObject(JSContext* cx, JS::Handle<JSObject*> aGivenProto)
 {
-  return WebSocketBinding::Wrap(cx, this, aGivenProto);
+  return WebSocket_Binding::Wrap(cx, this, aGivenProto);
 }
 
 void
 WebSocket::BindToOwner(nsIGlobalObject* aNew)
 {
   auto scopeExit = MakeScopeExit([&] {
     DOMEventTargetHelper::BindToOwner(aNew);
   });
--- a/dom/workers/ChromeWorker.cpp
+++ b/dom/workers/ChromeWorker.cpp
@@ -56,17 +56,17 @@ ChromeWorker::ChromeWorker(nsIGlobalObje
 {}
 
 ChromeWorker::~ChromeWorker() = default;
 
 JSObject*
 ChromeWorker::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
   JS::Rooted<JSObject*> wrapper(aCx,
-    ChromeWorkerBinding::Wrap(aCx, this, aGivenProto));
+    ChromeWorker_Binding::Wrap(aCx, this, aGivenProto));
   if (wrapper) {
     // Most DOM objects don't assume they have a reflector. If they don't have
     // one and need one, they create it. But in workers code, we assume that the
     // reflector is always present.  In order to guarantee that it's always
     // present, we have to preserve it. Otherwise the GC will happily collect it
     // as needed.
     MOZ_ALWAYS_TRUE(TryPreserveWrapper(wrapper));
   }
--- a/dom/workers/SharedWorker.cpp
+++ b/dom/workers/SharedWorker.cpp
@@ -179,17 +179,17 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_IN
   NS_IMPL_CYCLE_COLLECTION_UNLINK(mFrozenEvents)
 NS_IMPL_CYCLE_COLLECTION_UNLINK_END
 
 JSObject*
 SharedWorker::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
   AssertIsOnMainThread();
 
-  return SharedWorkerBinding::Wrap(aCx, this, aGivenProto);
+  return SharedWorker_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 SharedWorker::GetEventTargetParent(EventChainPreVisitor& aVisitor)
 {
   AssertIsOnMainThread();
 
   if (IsFrozen()) {
--- a/dom/workers/Worker.cpp
+++ b/dom/workers/Worker.cpp
@@ -50,17 +50,17 @@ Worker::~Worker()
 {
   Terminate();
 }
 
 JSObject*
 Worker::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
   JS::Rooted<JSObject*> wrapper(aCx,
-    WorkerBinding::Wrap(aCx, this, aGivenProto));
+    Worker_Binding::Wrap(aCx, this, aGivenProto));
   if (wrapper) {
     // Most DOM objects don't assume they have a reflector. If they don't have
     // one and need one, they create it. But in workers code, we assume that the
     // reflector is always present.  In order to guarantee that it's always
     // present, we have to preserve it. Otherwise the GC will happily collect it
     // as needed.
     MOZ_ALWAYS_TRUE(TryPreserveWrapper(wrapper));
   }
--- a/dom/workers/WorkerLocation.cpp
+++ b/dom/workers/WorkerLocation.cpp
@@ -31,13 +31,13 @@ WorkerLocation::Create(WorkerPrivate::Lo
                        aInfo.mOrigin);
 
   return location.forget();
 }
 
 JSObject*
 WorkerLocation::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return WorkerLocationBinding::Wrap(aCx, this, aGivenProto);
+  return WorkerLocation_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/workers/WorkerNavigator.cpp
+++ b/dom/workers/WorkerNavigator.cpp
@@ -60,23 +60,23 @@ WorkerNavigator::Create(bool aOnLine)
     new WorkerNavigator(properties, aOnLine);
 
   return navigator.forget();
 }
 
 JSObject*
 WorkerNavigator::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return WorkerNavigatorBinding::Wrap(aCx, this, aGivenProto);
+  return WorkerNavigator_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 WorkerNavigator::SetLanguages(const nsTArray<nsString>& aLanguages)
 {
-  WorkerNavigatorBinding::ClearCachedLanguagesValue(this);
+  WorkerNavigator_Binding::ClearCachedLanguagesValue(this);
   mProperties.mLanguages = aLanguages;
 }
 
 void
 WorkerNavigator::GetAppName(nsString& aAppName, CallerType aCallerType) const
 {
   WorkerPrivate* workerPrivate = GetCurrentThreadWorkerPrivate();
   MOZ_ASSERT(workerPrivate);
--- a/dom/workers/WorkerScope.cpp
+++ b/dom/workers/WorkerScope.cpp
@@ -611,17 +611,17 @@ DedicatedWorkerGlobalScope::WrapGlobalOb
   behaviors.setDiscardSource(discardSource)
            .extraWarningsOverride().set(extraWarnings);
 
   const bool sharedMemoryEnabled = xpc::SharedMemoryEnabled();
 
   JS::RealmCreationOptions& creationOptions = options.creationOptions();
   creationOptions.setSharedMemoryAndAtomicsEnabled(sharedMemoryEnabled);
 
-  return DedicatedWorkerGlobalScopeBinding::Wrap(aCx, this, this,
+  return DedicatedWorkerGlobalScope_Binding::Wrap(aCx, this, this,
                                                  options,
                                                  GetWorkerPrincipal(),
                                                  true, aReflector);
 }
 
 void
 DedicatedWorkerGlobalScope::PostMessage(JSContext* aCx,
                                         JS::Handle<JS::Value> aMessage,
@@ -650,17 +650,17 @@ SharedWorkerGlobalScope::WrapGlobalObjec
                                           JS::MutableHandle<JSObject*> aReflector)
 {
   mWorkerPrivate->AssertIsOnWorkerThread();
   MOZ_ASSERT(mWorkerPrivate->IsSharedWorker());
 
   JS::RealmOptions options;
   mWorkerPrivate->CopyJSRealmOptions(options);
 
-  return SharedWorkerGlobalScopeBinding::Wrap(aCx, this, this, options,
+  return SharedWorkerGlobalScope_Binding::Wrap(aCx, this, this, options,
                                               GetWorkerPrincipal(),
                                               true, aReflector);
 }
 
 void
 SharedWorkerGlobalScope::Close()
 {
   mWorkerPrivate->AssertIsOnWorkerThread();
@@ -696,17 +696,17 @@ ServiceWorkerGlobalScope::WrapGlobalObje
                                            JS::MutableHandle<JSObject*> aReflector)
 {
   mWorkerPrivate->AssertIsOnWorkerThread();
   MOZ_ASSERT(mWorkerPrivate->IsServiceWorker());
 
   JS::RealmOptions options;
   mWorkerPrivate->CopyJSRealmOptions(options);
 
-  return ServiceWorkerGlobalScopeBinding::Wrap(aCx, this, this, options,
+  return ServiceWorkerGlobalScope_Binding::Wrap(aCx, this, this, options,
                                                GetWorkerPrincipal(),
                                                true, aReflector);
 }
 
 already_AddRefed<Clients>
 ServiceWorkerGlobalScope::GetClients()
 {
   if (!mClients) {
@@ -952,17 +952,17 @@ bool
 WorkerDebuggerGlobalScope::WrapGlobalObject(JSContext* aCx,
                                             JS::MutableHandle<JSObject*> aReflector)
 {
   mWorkerPrivate->AssertIsOnWorkerThread();
 
   JS::RealmOptions options;
   mWorkerPrivate->CopyJSRealmOptions(options);
 
-  return WorkerDebuggerGlobalScopeBinding::Wrap(aCx, this, this, options,
+  return WorkerDebuggerGlobalScope_Binding::Wrap(aCx, this, this, options,
                                                 GetWorkerPrincipal(), true,
                                                 aReflector);
 }
 
 void
 WorkerDebuggerGlobalScope::GetGlobal(JSContext* aCx,
                                      JS::MutableHandle<JSObject*> aGlobal,
                                      ErrorResult& aRv)
--- a/dom/worklet/AudioWorkletGlobalScope.cpp
+++ b/dom/worklet/AudioWorkletGlobalScope.cpp
@@ -18,17 +18,17 @@ AudioWorkletGlobalScope::AudioWorkletGlo
   , mSampleRate(0.0)
 {}
 
 bool
 AudioWorkletGlobalScope::WrapGlobalObject(JSContext* aCx,
                                           JS::MutableHandle<JSObject*> aReflector)
 {
   JS::RealmOptions options;
-  return AudioWorkletGlobalScopeBinding::Wrap(aCx, this, this,
+  return AudioWorkletGlobalScope_Binding::Wrap(aCx, this, this,
                                               options,
                                               WorkletPrincipal::GetWorkletPrincipal(),
                                               true, aReflector);
 }
 
 void
 AudioWorkletGlobalScope::RegisterProcessor(const nsAString& aType,
                                            VoidFunction& aProcessorCtor)
--- a/dom/worklet/PaintWorkletGlobalScope.cpp
+++ b/dom/worklet/PaintWorkletGlobalScope.cpp
@@ -14,17 +14,17 @@ namespace dom {
 
 PaintWorkletGlobalScope::PaintWorkletGlobalScope() = default;
 
 bool
 PaintWorkletGlobalScope::WrapGlobalObject(JSContext* aCx,
                                           JS::MutableHandle<JSObject*> aReflector)
 {
   JS::RealmOptions options;
-  return PaintWorkletGlobalScopeBinding::Wrap(aCx, this, this,
+  return PaintWorkletGlobalScope_Binding::Wrap(aCx, this, this,
                                               options,
                                               WorkletPrincipal::GetWorkletPrincipal(),
                                               true, aReflector);
 }
 
 void
 PaintWorkletGlobalScope::RegisterPaint(const nsAString& aType,
                                        VoidFunction& aProcessorCtor)
--- a/dom/worklet/Worklet.cpp
+++ b/dom/worklet/Worklet.cpp
@@ -503,17 +503,17 @@ Worklet::~Worklet()
 {
   TerminateThread();
 }
 
 JSObject*
 Worklet::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
   MOZ_ASSERT(NS_IsMainThread());
-  return WorkletBinding::Wrap(aCx, this, aGivenProto);
+  return Worklet_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 already_AddRefed<Promise>
 Worklet::Import(const nsAString& aModuleURL, CallerType aCallerType,
                 ErrorResult& aRv)
 {
   MOZ_ASSERT(NS_IsMainThread());
   return WorkletFetchHandler::Fetch(this, aModuleURL, aCallerType, aRv);
--- a/dom/xbl/XBLChildrenElement.cpp
+++ b/dom/xbl/XBLChildrenElement.cpp
@@ -188,10 +188,10 @@ nsAnonymousContentList::IndexOf(nsIConte
   }
 
   return -1;
 }
 
 JSObject*
 nsAnonymousContentList::WrapObject(JSContext *cx, JS::Handle<JSObject*> aGivenProto)
 {
-  return mozilla::dom::NodeListBinding::Wrap(cx, this, aGivenProto);
+  return mozilla::dom::NodeList_Binding::Wrap(cx, this, aGivenProto);
 }
--- a/dom/xbl/nsXBLEventHandler.cpp
+++ b/dom/xbl/nsXBLEventHandler.cpp
@@ -32,17 +32,17 @@ NS_IMPL_ISUPPORTS(nsXBLEventHandler, nsI
 NS_IMETHODIMP
 nsXBLEventHandler::HandleEvent(Event* aEvent)
 {
   if (!mProtoHandler)
     return NS_ERROR_FAILURE;
 
   uint8_t phase = mProtoHandler->GetPhase();
   if (phase == NS_PHASE_TARGET) {
-    if (aEvent->EventPhase() != EventBinding::AT_TARGET) {
+    if (aEvent->EventPhase() != Event_Binding::AT_TARGET) {
       return NS_OK;
     }
   }
 
   if (!EventMatched(aEvent))
     return NS_OK;
 
   mProtoHandler->ExecuteHandler(aEvent->GetCurrentTarget(), aEvent);
@@ -123,17 +123,17 @@ nsXBLKeyEventHandler::ExecuteMatchedHand
 NS_IMETHODIMP
 nsXBLKeyEventHandler::HandleEvent(Event* aEvent)
 {
   uint32_t count = mProtoHandlers.Length();
   if (count == 0)
     return NS_ERROR_FAILURE;
 
   if (mPhase == NS_PHASE_TARGET) {
-    if (aEvent->EventPhase() != EventBinding::AT_TARGET) {
+    if (aEvent->EventPhase() != Event_Binding::AT_TARGET) {
       return NS_OK;
     }
   }
 
   RefPtr<KeyboardEvent> key = aEvent->AsKeyboardEvent();
   if (!key) {
     return NS_OK;
   }
--- a/dom/xbl/nsXBLProtoImpl.cpp
+++ b/dom/xbl/nsXBLProtoImpl.cpp
@@ -203,18 +203,18 @@ nsXBLProtoImpl::InitTargetObjects(nsXBLP
   // class for the concrete implementation in the bound document.
   AutoJSContext cx;
   JS::Rooted<JSObject*> global(cx, sgo->GetGlobalJSObject());
   JS::Rooted<JS::Value> v(cx);
 
   JSAutoRealm ar(cx, global);
   // Make sure the interface object is created before the prototype object
   // so that XULElement is hidden from content. See bug 909340.
-  bool defineOnGlobal = dom::XULElementBinding::ConstructorEnabled(cx, global);
-  dom::XULElementBinding::GetConstructorObjectHandle(cx, defineOnGlobal);
+  bool defineOnGlobal = dom::XULElement_Binding::ConstructorEnabled(cx, global);
+  dom::XULElement_Binding::GetConstructorObjectHandle(cx, defineOnGlobal);
 
   rv = nsContentUtils::WrapNative(cx, aBoundElement, &v,
                                   /* aAllowWrapping = */ false);
   NS_ENSURE_SUCCESS(rv, rv);
 
   JS::Rooted<JSObject*> value(cx, &v.toObject());
   JSAutoRealm ar2(cx, value);
 
--- a/dom/xbl/nsXBLPrototypeHandler.cpp
+++ b/dom/xbl/nsXBLPrototypeHandler.cpp
@@ -236,17 +236,17 @@ nsXBLPrototypeHandler::InitAccessKeys()
     return;
   }
 
   // Compiled-in defaults, in case we can't get the pref --
   // mac doesn't have menu shortcuts, other platforms use alt.
 #ifdef XP_MACOSX
   kMenuAccessKey = 0;
 #else
-  kMenuAccessKey = KeyboardEventBinding::DOM_VK_ALT;
+  kMenuAccessKey = KeyboardEvent_Binding::DOM_VK_ALT;
 #endif
 
   // Get the menu access key value from prefs, overriding the default:
   kMenuAccessKey =
     Preferences::GetInt("ui.key.menuAccessKey", kMenuAccessKey);
 }
 
 nsresult
@@ -515,17 +515,17 @@ nsXBLPrototypeHandler::DispatchXBLComman
     controller = GetController(aTarget); // We're attached to the receiver possibly.
   }
 
   // We are the default action for this command.
   // Stop any other default action from executing.
   aEvent->PreventDefault();
 
   if (mEventName == nsGkAtoms::keypress &&
-      mDetail == KeyboardEventBinding::DOM_VK_SPACE &&
+      mDetail == KeyboardEvent_Binding::DOM_VK_SPACE &&
       mMisc == 1) {
     // get the focused element so that we can pageDown only at
     // certain times.
 
     nsCOMPtr<nsPIDOMWindowOuter> windowToCheck;
     if (windowRoot)
       windowToCheck = windowRoot->GetWindow();
     else
@@ -777,45 +777,45 @@ int32_t nsXBLPrototypeHandler::GetMatchi
 
   return 0;
 }
 
 int32_t nsXBLPrototypeHandler::KeyToMask(int32_t key)
 {
   switch (key)
   {
-    case KeyboardEventBinding::DOM_VK_META:
+    case KeyboardEvent_Binding::DOM_VK_META:
       return cMeta | cMetaMask;
 
-    case KeyboardEventBinding::DOM_VK_WIN:
+    case KeyboardEvent_Binding::DOM_VK_WIN:
       return cOS | cOSMask;
 
-    case KeyboardEventBinding::DOM_VK_ALT:
+    case KeyboardEvent_Binding::DOM_VK_ALT:
       return cAlt | cAltMask;
 
-    case KeyboardEventBinding::DOM_VK_CONTROL:
+    case KeyboardEvent_Binding::DOM_VK_CONTROL:
     default:
       return cControl | cControlMask;
   }
   return cControl | cControlMask;  // for warning avoidance
 }
 
 // static
 int32_t
 nsXBLPrototypeHandler::AccelKeyMask()
 {
   switch (WidgetInputEvent::AccelModifier()) {
     case MODIFIER_ALT:
-      return KeyToMask(KeyboardEventBinding::DOM_VK_ALT);
+      return KeyToMask(KeyboardEvent_Binding::DOM_VK_ALT);
     case MODIFIER_CONTROL:
-      return KeyToMask(KeyboardEventBinding::DOM_VK_CONTROL);
+      return KeyToMask(KeyboardEvent_Binding::DOM_VK_CONTROL);
     case MODIFIER_META:
-      return KeyToMask(KeyboardEventBinding::DOM_VK_META);
+      return KeyToMask(KeyboardEvent_Binding::DOM_VK_META);
     case MODIFIER_OS:
-      return KeyToMask(KeyboardEventBinding::DOM_VK_WIN);
+      return KeyToMask(KeyboardEvent_Binding::DOM_VK_WIN);
     default:
       MOZ_CRASH("Handle the new result of WidgetInputEvent::AccelModifier()");
       return 0;
   }
 }
 
 void
 nsXBLPrototypeHandler::GetEventType(nsAString& aEvent)
--- a/dom/xbl/nsXBLPrototypeHandler.h
+++ b/dom/xbl/nsXBLPrototypeHandler.h
@@ -46,17 +46,17 @@ class KeyboardShortcut;
 #define NS_HANDLER_TYPE_XBL_JS              (1 << 0)
 #define NS_HANDLER_TYPE_XBL_COMMAND         (1 << 1)
 #define NS_HANDLER_TYPE_XUL                 (1 << 2)
 #define NS_HANDLER_HAS_ALLOW_UNTRUSTED_ATTR (1 << 4)
 #define NS_HANDLER_ALLOW_UNTRUSTED          (1 << 5)
 #define NS_HANDLER_TYPE_SYSTEM              (1 << 6)
 #define NS_HANDLER_TYPE_PREVENTDEFAULT      (1 << 7)
 
-// XXX Use EventBinding:: codes?
+// XXX Use Event_Binding:: codes?
 #define NS_PHASE_CAPTURING          1
 #define NS_PHASE_TARGET             2
 #define NS_PHASE_BUBBLING           3
 
 // Values of the reserved attribute. When unset, the default value depends on
 // the permissions.default.shortcuts preference.
 enum XBLReservedKey : uint8_t
 {
--- a/dom/xbl/nsXBLWindowKeyHandler.cpp
+++ b/dom/xbl/nsXBLWindowKeyHandler.cpp
@@ -486,17 +486,17 @@ nsXBLWindowKeyHandler::ConvertEventToDOM
 }
 
 NS_IMETHODIMP
 nsXBLWindowKeyHandler::HandleEvent(Event* aEvent)
 {
   RefPtr<KeyboardEvent> keyEvent = aEvent->AsKeyboardEvent();
   NS_ENSURE_TRUE(keyEvent, NS_ERROR_INVALID_ARG);
 
-  if (aEvent->EventPhase() == EventBinding::CAPTURING_PHASE) {
+  if (aEvent->EventPhase() == Event_Binding::CAPTURING_PHASE) {
     if (aEvent->WidgetEventPtr()->mFlags.mInSystemGroup) {
       HandleEventOnCaptureInSystemEventGroup(keyEvent);
     } else {
       HandleEventOnCaptureInDefaultEventGroup(keyEvent);
     }
     return NS_OK;
   }
 
--- a/dom/xhr/XMLHttpRequest.h
+++ b/dom/xhr/XMLHttpRequest.h
@@ -148,16 +148,16 @@ public:
   MozAnon() const = 0;
 
   virtual bool
   MozSystem() const = 0;
 
   virtual JSObject*
   WrapObject(JSContext *aCx, JS::Handle<JSObject*> aGivenProto) override
   {
-    return mozilla::dom::XMLHttpRequestBinding::Wrap(aCx, this, aGivenProto);
+    return mozilla::dom::XMLHttpRequest_Binding::Wrap(aCx, this, aGivenProto);
   }
 };
 
 } // dom namespace
 } // mozilla namespace
 
 #endif // mozilla_dom_XMLHttpRequest_h
--- a/dom/xhr/XMLHttpRequestMainThread.cpp
+++ b/dom/xhr/XMLHttpRequestMainThread.cpp
@@ -192,17 +192,17 @@ static void AddLoadFlags(nsIRequest *req
 bool
 XMLHttpRequestMainThread::sDontWarnAboutSyncXHR = false;
 
 XMLHttpRequestMainThread::XMLHttpRequestMainThread()
   : mResponseBodyDecodedPos(0),
     mResponseCharset(nullptr),
     mResponseType(XMLHttpRequestResponseType::_empty),
     mRequestObserver(nullptr),
-    mState(XMLHttpRequestBinding::UNSENT),
+    mState(XMLHttpRequest_Binding::UNSENT),
     mFlagSynchronous(false), mFlagAborted(false), mFlagParseBody(false),
     mFlagSyncLooping(false), mFlagBackgroundRequest(false),
     mFlagHadUploadListenersOnSend(false), mFlagACwithCredentials(false),
     mFlagTimedOut(false), mFlagDeleted(false), mFlagSend(false),
     mUploadTransferred(0), mUploadTotal(0), mUploadComplete(true),
     mProgressSinceLastProgressEvent(false),
     mRequestSentTime(0), mTimeoutMilliseconds(0),
     mErrorLoad(ErrorType::eOK), mErrorParsingXML(false),
@@ -223,18 +223,18 @@ XMLHttpRequestMainThread::XMLHttpRequest
 {
   mozilla::HoldJSObjects(this);
 }
 
 XMLHttpRequestMainThread::~XMLHttpRequestMainThread()
 {
   mFlagDeleted = true;
 
-  if ((mState == XMLHttpRequestBinding::OPENED && mFlagSend) ||
-      mState == XMLHttpRequestBinding::LOADING) {
+  if ((mState == XMLHttpRequest_Binding::OPENED && mFlagSend) ||
+      mState == XMLHttpRequest_Binding::LOADING) {
     Abort();
   }
 
   if (mParseEndListener) {
     mParseEndListener->SetIsStale();
     mParseEndListener = nullptr;
   }
 
@@ -437,17 +437,17 @@ XMLHttpRequestMainThread::GetResponseXML
       mResponseType != XMLHttpRequestResponseType::Document) {
     aRv.Throw(NS_ERROR_DOM_INVALID_STATE_XHR_HAS_WRONG_RESPONSETYPE_FOR_RESPONSEXML);
     return nullptr;
   }
   if (mWarnAboutSyncHtml) {
     mWarnAboutSyncHtml = false;
     LogMessage("HTMLSyncXHRWarning", GetOwner());
   }
-  if (mState != XMLHttpRequestBinding::DONE) {
+  if (mState != XMLHttpRequest_Binding::DONE) {
     return nullptr;
   }
   return mResponseXML;
 }
 
 /*
  * This piece copied from XMLDocument, we try to get the charset
  * from HTTP headers.
@@ -551,18 +551,18 @@ XMLHttpRequestMainThread::GetResponseTex
   aSnapshot.Reset();
 
   if (mResponseType != XMLHttpRequestResponseType::_empty &&
       mResponseType != XMLHttpRequestResponseType::Text) {
     aRv.Throw(NS_ERROR_DOM_INVALID_STATE_XHR_HAS_WRONG_RESPONSETYPE_FOR_RESPONSETEXT);
     return;
   }
 
-  if (mState != XMLHttpRequestBinding::LOADING &&
-      mState != XMLHttpRequestBinding::DONE) {
+  if (mState != XMLHttpRequest_Binding::LOADING &&
+      mState != XMLHttpRequest_Binding::DONE) {
     return;
   }
 
   // Main Fetch step 18 requires to ignore body for head/connect methods.
   if (mRequestMethod.EqualsLiteral("HEAD") ||
       mRequestMethod.EqualsLiteral("CONNECT")) {
     return;
   }
@@ -583,17 +583,17 @@ XMLHttpRequestMainThread::GetResponseTex
   aRv = AppendToResponseText(mResponseBody.get() + mResponseBodyDecodedPos,
                              mResponseBody.Length() - mResponseBodyDecodedPos);
   if (aRv.Failed()) {
     return;
   }
 
   mResponseBodyDecodedPos = mResponseBody.Length();
 
-  if (mState == XMLHttpRequestBinding::DONE) {
+  if (mState == XMLHttpRequest_Binding::DONE) {
     // Free memory buffer which we no longer need
     mResponseBody.Truncate();
     mResponseBodyDecodedPos = 0;
   }
 
   mResponseText.CreateSnapshot(aSnapshot);
 }
 
@@ -620,25 +620,25 @@ XMLHttpRequestMainThread::CreateResponse
 }
 
 void
 XMLHttpRequestMainThread::SetResponseType(XMLHttpRequestResponseType aResponseType,
                                           ErrorResult& aRv)
 {
   NOT_CALLABLE_IN_SYNC_SEND_RV
 
-  if (mState == XMLHttpRequestBinding::LOADING ||
-      mState == XMLHttpRequestBinding::DONE) {
+  if (mState == XMLHttpRequest_Binding::LOADING ||
+      mState == XMLHttpRequest_Binding::DONE) {
     aRv.Throw(NS_ERROR_DOM_INVALID_STATE_XHR_MUST_NOT_BE_LOADING_OR_DONE);
     return;
   }
 
   // sync request is not allowed setting responseType in window context
   if (HasOrHasHadOwner() &&
-      mState != XMLHttpRequestBinding::UNSENT && mFlagSynchronous) {
+      mState != XMLHttpRequest_Binding::UNSENT && mFlagSynchronous) {
     LogMessage("ResponseTypeSyncXHRWarning", GetOwner());
     aRv.Throw(NS_ERROR_DOM_INVALID_ACCESS_XHR_TIMEOUT_AND_RESPONSETYPE_UNSUPPORTED_FOR_SYNC);
     return;
   }
 
   if (mFlagSynchronous &&
       aResponseType == XMLHttpRequestResponseType::Moz_chunked_arraybuffer) {
     aRv.Throw(NS_ERROR_DOM_INVALID_STATE_XHR_CHUNKED_RESPONSETYPES_UNSUPPORTED_FOR_SYNC);
@@ -673,17 +673,17 @@ XMLHttpRequestMainThread::GetResponse(JS
     }
     return;
   }
 
   case XMLHttpRequestResponseType::Arraybuffer:
   case XMLHttpRequestResponseType::Moz_chunked_arraybuffer:
   {
     if (!(mResponseType == XMLHttpRequestResponseType::Arraybuffer &&
-          mState == XMLHttpRequestBinding::DONE) &&
+          mState == XMLHttpRequest_Binding::DONE) &&
         !(mResponseType == XMLHttpRequestResponseType::Moz_chunked_arraybuffer &&
           mInLoadProgressEvent)) {
       aResponse.setNull();
       return;
     }
 
     if (!mResultArrayBuffer) {
       mResultArrayBuffer = mArrayBufferBuilder.getArrayBuffer(aCx);
@@ -692,42 +692,42 @@ XMLHttpRequestMainThread::GetResponse(JS
         return;
       }
     }
     aResponse.setObject(*mResultArrayBuffer);
     return;
   }
   case XMLHttpRequestResponseType::Blob:
   {
-    if (mState != XMLHttpRequestBinding::DONE) {
+    if (mState != XMLHttpRequest_Binding::DONE) {
       aResponse.setNull();
       return;
     }
 
     if (!mResponseBlob) {
       aResponse.setNull();
       return;
     }
 
     GetOrCreateDOMReflector(aCx, mResponseBlob, aResponse);
     return;
   }
   case XMLHttpRequestResponseType::Document:
   {
-    if (!mResponseXML || mState != XMLHttpRequestBinding::DONE) {
+    if (!mResponseXML || mState != XMLHttpRequest_Binding::DONE) {
       aResponse.setNull();
       return;
     }
 
     aRv = nsContentUtils::WrapNative(aCx, mResponseXML, aResponse);
     return;
   }
   case XMLHttpRequestResponseType::Json:
   {
-    if (mState != XMLHttpRequestBinding::DONE) {
+    if (mState != XMLHttpRequest_Binding::DONE) {
       aResponse.setNull();
       return;
     }
 
     if (mResultJSON.isUndefined()) {
       aRv = CreateResponseParsedJSON(aCx);
       TruncateResponseText();
       if (aRv.Failed()) {
@@ -779,18 +779,18 @@ XMLHttpRequestMainThread::IsDeniedCrossS
   return false;
 }
 
 void
 XMLHttpRequestMainThread::GetResponseURL(nsAString& aUrl)
 {
   aUrl.Truncate();
 
-  if ((mState == XMLHttpRequestBinding::UNSENT ||
-       mState == XMLHttpRequestBinding::OPENED) || !mChannel) {
+  if ((mState == XMLHttpRequest_Binding::UNSENT ||
+       mState == XMLHttpRequest_Binding::OPENED) || !mChannel) {
     return;
   }
 
   // Make sure we don't leak responseURL information from denied cross-site
   // requests.
   if (IsDeniedCrossSiteCORSRequest()) {
     return;
   }
@@ -811,18 +811,18 @@ uint32_t
 XMLHttpRequestMainThread::GetStatus(ErrorResult& aRv)
 {
   // Make sure we don't leak status information from denied cross-site
   // requests.
   if (IsDeniedCrossSiteCORSRequest()) {
     return 0;
   }
 
-  if (mState == XMLHttpRequestBinding::UNSENT ||
-      mState == XMLHttpRequestBinding::OPENED) {
+  if (mState == XMLHttpRequest_Binding::UNSENT ||
+      mState == XMLHttpRequest_Binding::OPENED) {
     return 0;
   }
 
   if (mErrorLoad != ErrorType::eOK) {
     // Let's simulate the http protocol for jar/app requests:
     nsCOMPtr<nsIJARChannel> jarChannel = GetCurrentJARChannel();
     if (jarChannel) {
       nsresult status;
@@ -865,18 +865,18 @@ XMLHttpRequestMainThread::GetStatusText(
   if (IsDeniedCrossSiteCORSRequest()) {
     return;
   }
 
   // Check the current XHR state to see if it is valid to obtain the statusText
   // value.  This check is to prevent the status text for redirects from being
   // available before all the redirects have been followed and HTTP headers have
   // been received.
-  if (mState == XMLHttpRequestBinding::UNSENT ||
-      mState == XMLHttpRequestBinding::OPENED) {
+  if (mState == XMLHttpRequest_Binding::UNSENT ||
+      mState == XMLHttpRequest_Binding::OPENED) {
     return;
   }
 
   if (mErrorLoad != ErrorType::eOK) {
     return;
   }
 
   nsCOMPtr<nsIHttpChannel> httpChannel = GetCurrentHttpChannel();
@@ -884,19 +884,19 @@ XMLHttpRequestMainThread::GetStatusText(
     Unused << httpChannel->GetResponseStatusText(aStatusText);
   } else {
     aStatusText.AssignLiteral("OK");
   }
 }
 
 void
 XMLHttpRequestMainThread::TerminateOngoingFetch() {
-  if ((mState == XMLHttpRequestBinding::OPENED && mFlagSend) ||
-      mState == XMLHttpRequestBinding::HEADERS_RECEIVED ||
-      mState == XMLHttpRequestBinding::LOADING) {
+  if ((mState == XMLHttpRequest_Binding::OPENED && mFlagSend) ||
+      mState == XMLHttpRequest_Binding::HEADERS_RECEIVED ||
+      mState == XMLHttpRequest_Binding::LOADING) {
     CloseRequest();
   }
 }
 
 void
 XMLHttpRequestMainThread::CloseRequest()
 {
   mWaitingForOnStopRequest = false;
@@ -917,47 +917,47 @@ XMLHttpRequestMainThread::CloseRequestWi
   ResetResponse();
 
   // If we're in the destructor, don't risk dispatching an event.
   if (mFlagDeleted) {
     mFlagSyncLooping = false;
     return;
   }
 
-  if (mState != XMLHttpRequestBinding::UNSENT &&
-      !(mState == XMLHttpRequestBinding::OPENED && !mFlagSend) &&
-      mState != XMLHttpRequestBinding::DONE) {
-    ChangeState(XMLHttpRequestBinding::DONE, true);
+  if (mState != XMLHttpRequest_Binding::UNSENT &&
+      !(mState == XMLHttpRequest_Binding::OPENED && !mFlagSend) &&
+      mState != XMLHttpRequest_Binding::DONE) {
+    ChangeState(XMLHttpRequest_Binding::DONE, true);
 
     if (!mFlagSyncLooping) {
       if (mUpload && !mUploadComplete) {
         mUploadComplete = true;
         DispatchProgressEvent(mUpload, aType, 0, -1);
       }
       DispatchProgressEvent(this, aType, 0, -1);
     }
   }
 
   // The ChangeState call above calls onreadystatechange handlers which
   // if they load a new url will cause XMLHttpRequestMainThread::Open to clear
   // the abort state bit. If this occurs we're not uninitialized (bug 361773).
   if (mFlagAborted) {
-    ChangeState(XMLHttpRequestBinding::UNSENT, false);  // IE seems to do it
+    ChangeState(XMLHttpRequest_Binding::UNSENT, false);  // IE seems to do it
   }
 
   mFlagSyncLooping = false;
 }
 
 void
 XMLHttpRequestMainThread::RequestErrorSteps(const ProgressEventType aEventType,
                                             const nsresult aOptionalException,
                                             ErrorResult& aRv)
 {
   // Step 1
-  mState = XMLHttpRequestBinding::DONE;
+  mState = XMLHttpRequest_Binding::DONE;
 
   StopProgressEventTimer();
 
   // Step 2
   mFlagSend = false;
 
   // Step 3
   ResetResponse();
@@ -1006,25 +1006,25 @@ void
 XMLHttpRequestMainThread::AbortInternal(ErrorResult& aRv)
 {
   mFlagAborted = true;
 
   // Step 1
   TerminateOngoingFetch();
 
   // Step 2
-  if ((mState == XMLHttpRequestBinding::OPENED && mFlagSend) ||
-       mState == XMLHttpRequestBinding::HEADERS_RECEIVED ||
-       mState == XMLHttpRequestBinding::LOADING) {
+  if ((mState == XMLHttpRequest_Binding::OPENED && mFlagSend) ||
+       mState == XMLHttpRequest_Binding::HEADERS_RECEIVED ||
+       mState == XMLHttpRequest_Binding::LOADING) {
     RequestErrorSteps(ProgressEventType::abort, NS_OK, aRv);
   }
 
   // Step 3
-  if (mState == XMLHttpRequestBinding::DONE) {
-    ChangeState(XMLHttpRequestBinding::UNSENT, false); // no ReadystateChange event
+  if (mState == XMLHttpRequest_Binding::DONE) {
+    ChangeState(XMLHttpRequest_Binding::UNSENT, false); // no ReadystateChange event
   }
 
   mFlagSyncLooping = false;
 }
 
 /*Method that checks if it is safe to expose a header value to the client.
 It is used to check what headers are exposed for CORS requests.*/
 bool
@@ -1087,18 +1087,18 @@ XMLHttpRequestMainThread::GetAllResponse
                                                 ErrorResult& aRv)
 {
   NOT_CALLABLE_IN_SYNC_SEND_RV
 
   aResponseHeaders.Truncate();
 
   // If the state is UNSENT or OPENED,
   // return the empty string and terminate these steps.
-  if (mState == XMLHttpRequestBinding::UNSENT ||
-      mState == XMLHttpRequestBinding::OPENED) {
+  if (mState == XMLHttpRequest_Binding::UNSENT ||
+      mState == XMLHttpRequest_Binding::OPENED) {
     return;
   }
 
   if (mErrorLoad != ErrorType::eOK) {
     return;
   }
 
   if (nsCOMPtr<nsIHttpChannel> httpChannel = GetCurrentHttpChannel()) {
@@ -1149,18 +1149,18 @@ XMLHttpRequestMainThread::GetResponseHea
 
   _retval.SetIsVoid(true);
 
   nsCOMPtr<nsIHttpChannel> httpChannel = GetCurrentHttpChannel();
 
   if (!httpChannel) {
     // If the state is UNSENT or OPENED,
     // return null and terminate these steps.
-    if (mState == XMLHttpRequestBinding::UNSENT ||
-        mState == XMLHttpRequestBinding::OPENED) {
+    if (mState == XMLHttpRequest_Binding::UNSENT ||
+        mState == XMLHttpRequest_Binding::OPENED) {
       return;
     }
 
     // Even non-http channels supply content type and content length.
     // Remember we don't leak header information from denied cross-site
     // requests.
     nsresult status;
     if (!mChannel ||
@@ -1227,17 +1227,17 @@ XMLHttpRequestMainThread::GetLoadGroup()
   }
 
   return nullptr;
 }
 
 nsresult
 XMLHttpRequestMainThread::FireReadystatechangeEvent()
 {
-  MOZ_ASSERT(mState != XMLHttpRequestBinding::UNSENT);
+  MOZ_ASSERT(mState != XMLHttpRequest_Binding::UNSENT);
   RefPtr<Event> event = NS_NewDOMEvent(this, nullptr, nullptr);
   event->InitEvent(kLiteralString_readystatechange, false, false);
   // We assume anyone who managed to call CreateReadystatechangeEvent is trusted
   event->SetTrusted(true);
   DispatchOrStoreEvent(this, event);
   return NS_OK;
 }
 
@@ -1367,17 +1367,17 @@ XMLHttpRequestMainThread::IsSystemXHR() 
 {
   return mIsSystem || nsContentUtils::IsSystemPrincipal(mPrincipal);
 }
 
 bool
 XMLHttpRequestMainThread::InUploadPhase() const
 {
   // We're in the upload phase while our state is OPENED.
-  return mState == XMLHttpRequestBinding::OPENED;
+  return mState == XMLHttpRequest_Binding::OPENED;
 }
 
 // This case is hit when the async parameter is outright omitted, which
 // should set it to true (and the username and password to null).
 void
 XMLHttpRequestMainThread::Open(const nsACString& aMethod, const nsAString& aUrl,
                                ErrorResult& aRv)
 {
@@ -1512,28 +1512,28 @@ XMLHttpRequestMainThread::Open(const nsA
 
   // Per spec we should only create the channel on send(), but we have internal
   // code that relies on the channel being created now, and that code is not
   // always IsSystemXHR(). However, we're not supposed to throw channel-creation
   // errors during open(), so we silently ignore those here.
   CreateChannel();
 
   // Step 12
-  if (mState != XMLHttpRequestBinding::OPENED) {
-    mState = XMLHttpRequestBinding::OPENED;
+  if (mState != XMLHttpRequest_Binding::OPENED) {
+    mState = XMLHttpRequest_Binding::OPENED;
     FireReadystatechangeEvent();
   }
 
   return NS_OK;
 }
 
 void
 XMLHttpRequestMainThread::SetOriginAttributes(const OriginAttributesDictionary& aAttrs)
 {
-  MOZ_ASSERT((mState == XMLHttpRequestBinding::OPENED) && !mFlagSend);
+  MOZ_ASSERT((mState == XMLHttpRequest_Binding::OPENED) && !mFlagSend);
 
   OriginAttributes attrs(aAttrs);
 
   nsCOMPtr<nsILoadInfo> loadInfo = mChannel->GetLoadInfo();
   MOZ_ASSERT(loadInfo);
   if (loadInfo) {
     loadInfo->SetOriginAttributes(attrs);
   }
@@ -1714,17 +1714,17 @@ private:
 
 NS_IMPL_ISUPPORTS0(FileCreationHandler)
 
 } // namespace
 
 void
 XMLHttpRequestMainThread::LocalFileToBlobCompleted(Blob* aBlob)
 {
-  MOZ_ASSERT(mState != XMLHttpRequestBinding::DONE);
+  MOZ_ASSERT(mState != XMLHttpRequest_Binding::DONE);
 
   mResponseBlob = aBlob;
   mBlobStorage = nullptr;
   NS_ASSERTION(mResponseBody.IsEmpty(), "mResponseBody should be empty");
 
   ChangeStateToDone();
 }
 
@@ -1735,17 +1735,17 @@ XMLHttpRequestMainThread::OnDataAvailabl
                                           uint64_t sourceOffset,
                                           uint32_t count)
 {
   NS_ENSURE_ARG_POINTER(inStr);
 
   MOZ_ASSERT(mContext.get() == ctxt,"start context different from OnDataAvailable context");
 
   mProgressSinceLastProgressEvent = true;
-  XMLHttpRequestBinding::ClearCachedResponseTextValue(this);
+  XMLHttpRequest_Binding::ClearCachedResponseTextValue(this);
 
   nsresult rv;
 
   nsCOMPtr<nsIFile> localFile;
   if (mResponseType == XMLHttpRequestResponseType::Blob) {
     rv = GetLocalFileFromChannel(request, getter_AddRefs(localFile));
     if (NS_WARN_IF(NS_FAILED(rv))) {
       return rv;
@@ -1757,33 +1757,33 @@ XMLHttpRequestMainThread::OnDataAvailabl
 
       // The nsIStreamListener contract mandates us to read from the stream
       // before returning.
       uint32_t totalRead;
       rv =
         inStr->ReadSegments(DummyStreamReaderFunc, nullptr, count, &totalRead);
       NS_ENSURE_SUCCESS(rv, rv);
 
-      ChangeState(XMLHttpRequestBinding::LOADING);
+      ChangeState(XMLHttpRequest_Binding::LOADING);
 
       // Cancel() must be called with an error. We use
       // NS_ERROR_FILE_ALREADY_EXISTS to know that we've aborted the operation
       // just because we can retrieve the File from the channel directly.
       return request->Cancel(NS_ERROR_FILE_ALREADY_EXISTS);
     }
   }
 
   uint32_t totalRead;
   rv = inStr->ReadSegments(XMLHttpRequestMainThread::StreamReaderFunc,
                            (void*)this, count, &totalRead);
   NS_ENSURE_SUCCESS(rv, rv);
 
   // Fire the first progress event/loading state change
-  if (mState == XMLHttpRequestBinding::HEADERS_RECEIVED) {
-    ChangeState(XMLHttpRequestBinding::LOADING);
+  if (mState == XMLHttpRequest_Binding::HEADERS_RECEIVED) {
+    ChangeState(XMLHttpRequest_Binding::LOADING);
     if (!mFlagSynchronous) {
       DispatchProgressEvent(this, ProgressEventType::progress,
                             mLoadTransferred, mLoadTotal);
     }
     mProgressSinceLastProgressEvent = false;
   }
 
   if (!mFlagSynchronous && !mProgressTimerIsActive) {
@@ -1805,17 +1805,17 @@ XMLHttpRequestMainThread::OnStartRequest
   }
 
   if (request != mChannel) {
     // Can this still happen?
     return NS_OK;
   }
 
   // Don't do anything if we have been aborted
-  if (mState == XMLHttpRequestBinding::UNSENT) {
+  if (mState == XMLHttpRequest_Binding::UNSENT) {
     return NS_OK;
   }
 
   /* Apparently, Abort() should set UNSENT.  See bug 361773.
      XHR2 spec says this is correct. */
   if (mFlagAborted) {
     NS_ERROR("Ugh, still getting data on an aborted XMLHttpRequest!");
 
@@ -1851,17 +1851,17 @@ XMLHttpRequestMainThread::OnStartRequest
 
     mUploadComplete = true;
     DispatchProgressEvent(mUpload, ProgressEventType::load,
                           mUploadTotal, mUploadTotal);
   }
 
   mContext = ctxt;
   mFlagParseBody = true;
-  ChangeState(XMLHttpRequestBinding::HEADERS_RECEIVED);
+  ChangeState(XMLHttpRequest_Binding::HEADERS_RECEIVED);
 
   ResetResponse();
 
   if (!mOverrideMimeType.IsEmpty()) {
     channel->SetContentType(NS_ConvertUTF16toUTF8(mOverrideMimeType));
   }
 
   // Fallback to 'application/octet-stream'
@@ -2079,17 +2079,17 @@ XMLHttpRequestMainThread::OnStopRequest(
     NS_ASSERTION(mFirstStartRequestSeen, "Inconsistent state!");
     mFirstStartRequestSeen = false;
     mRequestObserver->OnStopRequest(request, ctxt, status);
   }
 
   // make sure to notify the listener if we were aborted
   // XXX in fact, why don't we do the cleanup below in this case??
   // UNSENT is for abort calls.  See OnStartRequest above.
-  if (mState == XMLHttpRequestBinding::UNSENT || mFlagTimedOut) {
+  if (mState == XMLHttpRequest_Binding::UNSENT || mFlagTimedOut) {
     if (mXMLParserStreamListener)
       (void) mXMLParserStreamListener->OnStopRequest(request, ctxt, status);
     return NS_OK;
   }
 
   // Is this good enough here?
   if (mXMLParserStreamListener && mFlagParseBody) {
     mXMLParserStreamListener->OnStopRequest(request, ctxt, status);
@@ -2188,18 +2188,18 @@ XMLHttpRequestMainThread::OnStopRequest(
 
     mErrorLoad = ErrorType::eUnreachable;
     mResponseXML = nullptr;
   }
 
   // If we're uninitialized at this point, we encountered an error
   // earlier and listeners have already been notified. Also we do
   // not want to do this if we already completed.
-  if (mState == XMLHttpRequestBinding::UNSENT ||
-      mState == XMLHttpRequestBinding::DONE) {
+  if (mState == XMLHttpRequest_Binding::UNSENT ||
+      mState == XMLHttpRequest_Binding::DONE) {
     return NS_OK;
   }
 
   if (!mResponseXML) {
     mFlagParseBody = false;
 
     //We postpone the 'done' until the creation of the Blob is completed.
     if (!waitingForBlobCreation) {
@@ -2275,17 +2275,17 @@ XMLHttpRequestMainThread::ChangeStateToD
   if (!mFlagSynchronous &&
       (!mLoadTransferred || mProgressSinceLastProgressEvent)) {
     DispatchProgressEvent(this, ProgressEventType::progress,
                           mLoadTransferred, mLoadTotal);
     mProgressSinceLastProgressEvent = false;
   }
 
   // Per spec, fire readystatechange=4/done before final error events.
-  ChangeState(XMLHttpRequestBinding::DONE, true);
+  ChangeState(XMLHttpRequest_Binding::DONE, true);
 
   // Per spec, if we failed in the upload phase, fire a final error
   // and loadend events for the upload after readystatechange=4/done.
   if (!mFlagSynchronous && mUpload && !mUploadComplete) {
     DispatchProgressEvent(mUpload, ProgressEventType::error, 0, -1);
   }
 
   // Per spec, fire download's load/error and loadend events after
@@ -2638,17 +2638,17 @@ XMLHttpRequestMainThread::InitiateFetch(
     // ref to us to be extra safe.
     mChannel->SetNotificationCallbacks(mNotificationCallbacks);
     mChannel = nullptr;
 
     mErrorLoad = ErrorType::eChannelOpen;
 
     // Per spec, we throw on sync errors, but not async.
     if (mFlagSynchronous) {
-      mState = XMLHttpRequestBinding::DONE;
+      mState = XMLHttpRequest_Binding::DONE;
       return NS_ERROR_DOM_NETWORK_ERR;
     }
   }
 
   return NS_OK;
 }
 
 void
@@ -2725,17 +2725,17 @@ XMLHttpRequestMainThread::Send(JSContext
   }
 }
 
 nsresult
 XMLHttpRequestMainThread::MaybeSilentSendFailure(nsresult aRv)
 {
   // Per spec, silently fail on async request failures; throw for sync.
   if (mFlagSynchronous) {
-    mState = XMLHttpRequestBinding::DONE;
+    mState = XMLHttpRequest_Binding::DONE;
     return NS_ERROR_DOM_NETWORK_ERR;
   }
 
   // Defer the actual sending of async events just in case listeners
   // are attached after the send() method is called.
   Unused << NS_WARN_IF(NS_FAILED(
     DispatchToMainThread(NewRunnableMethod<ProgressEventType>(
       "dom::XMLHttpRequestMainThread::CloseRequestWithError",
@@ -2748,17 +2748,17 @@ XMLHttpRequestMainThread::MaybeSilentSen
 nsresult
 XMLHttpRequestMainThread::SendInternal(const BodyExtractorBase* aBody)
 {
   MOZ_ASSERT(NS_IsMainThread());
 
   NS_ENSURE_TRUE(mPrincipal, NS_ERROR_NOT_INITIALIZED);
 
   // Step 1
-  if (mState != XMLHttpRequestBinding::OPENED) {
+  if (mState != XMLHttpRequest_Binding::OPENED) {
     return NS_ERROR_DOM_INVALID_STATE_XHR_MUST_BE_OPENED;
   }
 
   // Step 2
   if (mFlagSend) {
     return NS_ERROR_DOM_INVALID_STATE_XHR_MUST_NOT_BE_SENDING;
   }
 
@@ -2967,17 +2967,17 @@ XMLHttpRequestMainThread::IsLowercaseRes
 void
 XMLHttpRequestMainThread::SetRequestHeader(const nsACString& aName,
                                            const nsACString& aValue,
                                            ErrorResult& aRv)
 {
   NOT_CALLABLE_IN_SYNC_SEND_RV
 
   // Step 1
-  if (mState != XMLHttpRequestBinding::OPENED) {
+  if (mState != XMLHttpRequest_Binding::OPENED) {
     aRv.Throw(NS_ERROR_DOM_INVALID_STATE_XHR_MUST_BE_OPENED);
     return;
   }
 
   // Step 2
   if (mFlagSend) {
     aRv.Throw(NS_ERROR_DOM_INVALID_STATE_XHR_MUST_NOT_BE_SENDING);
     return;
@@ -3018,17 +3018,17 @@ XMLHttpRequestMainThread::SetRequestHead
 }
 
 void
 XMLHttpRequestMainThread::SetTimeout(uint32_t aTimeout, ErrorResult& aRv)
 {
   NOT_CALLABLE_IN_SYNC_SEND_RV
 
   if (mFlagSynchronous &&
-      mState != XMLHttpRequestBinding::UNSENT && HasOrHasHadOwner()) {
+      mState != XMLHttpRequest_Binding::UNSENT && HasOrHasHadOwner()) {
     /* Timeout is not supported for synchronous requests with an owning window,
        per XHR2 spec. */
     LogMessage("TimeoutSyncXHRWarning", GetOwner());
     aRv.Throw(NS_ERROR_DOM_INVALID_ACCESS_XHR_TIMEOUT_AND_RESPONSETYPE_UNSUPPORTED_FOR_SYNC);
     return;
   }
 
   mTimeoutMilliseconds = aTimeout;
@@ -3059,17 +3059,17 @@ XMLHttpRequestMainThread::DispatchToMain
   return NS_DispatchToMainThread(std::move(aRunnable));
 }
 
 void
 XMLHttpRequestMainThread::StartTimeoutTimer()
 {
   MOZ_ASSERT(mRequestSentTime,
              "StartTimeoutTimer mustn't be called before the request was sent!");
-  if (mState == XMLHttpRequestBinding::DONE) {
+  if (mState == XMLHttpRequest_Binding::DONE) {
     // do nothing!
     return;
   }
 
   if (mTimeoutTimer) {
     mTimeoutTimer->Cancel();
   }
 
@@ -3097,18 +3097,18 @@ XMLHttpRequestMainThread::ReadyState() c
 }
 
 void
 XMLHttpRequestMainThread::OverrideMimeType(const nsAString& aMimeType,
                                            ErrorResult& aRv)
 {
   NOT_CALLABLE_IN_SYNC_SEND_RV
 
-  if (mState == XMLHttpRequestBinding::LOADING ||
-      mState == XMLHttpRequestBinding::DONE) {
+  if (mState == XMLHttpRequest_Binding::LOADING ||
+      mState == XMLHttpRequest_Binding::DONE) {
     ResetResponse();
     aRv.Throw(NS_ERROR_DOM_INVALID_STATE_XHR_MUST_NOT_BE_LOADING_OR_DONE);
     return;
   }
 
   mOverrideMimeType = aMimeType;
 }
 
@@ -3120,17 +3120,17 @@ XMLHttpRequestMainThread::MozBackgroundR
 
 nsresult
 XMLHttpRequestMainThread::SetMozBackgroundRequest(bool aMozBackgroundRequest)
 {
   if (!IsSystemXHR()) {
     return NS_ERROR_DOM_SECURITY_ERR;
   }
 
-  if (mState != XMLHttpRequestBinding::UNSENT) {
+  if (mState != XMLHttpRequest_Binding::UNSENT) {
     // Can't change this while we're in the middle of something.
     return NS_ERROR_DOM_INVALID_STATE_XHR_MUST_NOT_BE_SENDING;
   }
 
   mFlagBackgroundRequest = aMozBackgroundRequest;
 
   return NS_OK;
 }
@@ -3153,41 +3153,41 @@ void
 XMLHttpRequestMainThread::SetWithCredentials(bool aWithCredentials, ErrorResult& aRv)
 {
   NOT_CALLABLE_IN_SYNC_SEND_RV
 
   // Return error if we're already processing a request.  Note that we can't use
   // ReadyState() here, because it can't differentiate between "opened" and
   // "sent", so we use mState directly.
 
-  if ((mState != XMLHttpRequestBinding::UNSENT &&
-       mState != XMLHttpRequestBinding::OPENED) ||
+  if ((mState != XMLHttpRequest_Binding::UNSENT &&
+       mState != XMLHttpRequest_Binding::OPENED) ||
       mFlagSend || mIsAnon) {
     aRv.Throw(NS_ERROR_DOM_INVALID_STATE_XHR_MUST_NOT_BE_SENDING);
     return;
   }
 
   mFlagACwithCredentials = aWithCredentials;
 }
 
 nsresult
 XMLHttpRequestMainThread::ChangeState(uint16_t aState, bool aBroadcast)
 {
   mState = aState;
   nsresult rv = NS_OK;
 
-  if (aState != XMLHttpRequestBinding::HEADERS_RECEIVED &&
-      aState != XMLHttpRequestBinding::LOADING) {
+  if (aState != XMLHttpRequest_Binding::HEADERS_RECEIVED &&
+      aState != XMLHttpRequest_Binding::LOADING) {
     StopProgressEventTimer();
   }
 
 
   if (aBroadcast && (!mFlagSynchronous ||
-                     aState == XMLHttpRequestBinding::OPENED ||
-                     aState == XMLHttpRequestBinding::DONE)) {
+                     aState == XMLHttpRequest_Binding::OPENED ||
+                     aState == XMLHttpRequest_Binding::DONE)) {
     rv = FireReadystatechangeEvent();
   }
 
   return rv;
 }
 
 /////////////////////////////////////////////////////
 // nsIChannelEventSink methods:
@@ -3410,17 +3410,17 @@ bool
 XMLHttpRequestMainThread::MozSystem() const
 {
   return IsSystemXHR();
 }
 
 void
 XMLHttpRequestMainThread::HandleTimeoutCallback()
 {
-  if (mState == XMLHttpRequestBinding::DONE) {
+  if (mState == XMLHttpRequest_Binding::DONE) {
     NS_NOTREACHED("XMLHttpRequestMainThread::HandleTimeoutCallback with completed request");
     // do nothing!
     return;
   }
 
   mFlagTimedOut = true;
   CloseRequestWithError(ProgressEventType::timeout);
 }
@@ -3594,17 +3594,17 @@ XMLHttpRequestMainThread::ShouldBlockAut
 
   return false;
 }
 
 void
 XMLHttpRequestMainThread::TruncateResponseText()
 {
   mResponseText.Truncate();
-  XMLHttpRequestBinding::ClearCachedResponseTextValue(this);
+  XMLHttpRequest_Binding::ClearCachedResponseTextValue(this);
 }
 
 NS_IMPL_ISUPPORTS(XMLHttpRequestMainThread::nsHeaderVisitor, nsIHttpHeaderVisitor)
 
 NS_IMETHODIMP XMLHttpRequestMainThread::
 nsHeaderVisitor::VisitHeader(const nsACString &header, const nsACString &value)
 {
   if (mXHR.IsSafeHeader(header, mHttpChannel)) {
@@ -3652,17 +3652,17 @@ void
 XMLHttpRequestMainThread::BlobStoreCompleted(MutableBlobStorage* aBlobStorage,
                                              Blob* aBlob, nsresult aRv)
 {
   // Ok, the state is changed...
   if (mBlobStorage != aBlobStorage || NS_FAILED(aRv)) {
     return;
   }
 
-  MOZ_ASSERT(mState != XMLHttpRequestBinding::DONE);
+  MOZ_ASSERT(mState != XMLHttpRequest_Binding::DONE);
 
   mResponseBlob = aBlob;
   mBlobStorage = nullptr;
 
   ChangeStateToDone();
 }
 
 NS_IMETHODIMP
--- a/dom/xhr/XMLHttpRequestUpload.cpp
+++ b/dom/xhr/XMLHttpRequestUpload.cpp
@@ -14,13 +14,13 @@ NS_INTERFACE_MAP_BEGIN(XMLHttpRequestUpl
 NS_INTERFACE_MAP_END_INHERITING(XMLHttpRequestEventTarget)
 
 NS_IMPL_ADDREF_INHERITED(XMLHttpRequestUpload, XMLHttpRequestEventTarget)
 NS_IMPL_RELEASE_INHERITED(XMLHttpRequestUpload, XMLHttpRequestEventTarget)
 
 /* virtual */ JSObject*
 XMLHttpRequestUpload::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return XMLHttpRequestUploadBinding::Wrap(aCx, this, aGivenProto);
+  return XMLHttpRequestUpload_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // dom namespace
 } // mozilla namespace
--- a/dom/xhr/XMLHttpRequestWorker.cpp
+++ b/dom/xhr/XMLHttpRequestWorker.cpp
@@ -2166,20 +2166,20 @@ XMLHttpRequestWorker::Abort(ErrorResult&
 
   if (!mProxy) {
     return;
   }
 
   // Set our status to 0 and statusText to "" if we
   // will be aborting an ongoing fetch, so the upcoming
   // abort events we dispatch have the correct info.
-  if ((mStateData.mReadyState == XMLHttpRequestBinding::OPENED && mStateData.mFlagSend) ||
-      mStateData.mReadyState == XMLHttpRequestBinding::HEADERS_RECEIVED ||
-      mStateData.mReadyState == XMLHttpRequestBinding::LOADING ||
-      mStateData.mReadyState == XMLHttpRequestBinding::DONE) {
+  if ((mStateData.mReadyState == XMLHttpRequest_Binding::OPENED && mStateData.mFlagSend) ||
+      mStateData.mReadyState == XMLHttpRequest_Binding::HEADERS_RECEIVED ||
+      mStateData.mReadyState == XMLHttpRequest_Binding::LOADING ||
+      mStateData.mReadyState == XMLHttpRequest_Binding::DONE) {
     mStateData.mStatus = 0;
     mStateData.mStatusText.Truncate();
   }
 
   MaybeDispatchPrematureAbortEvents(aRv);
   if (aRv.Failed()) {
     return;
   }
@@ -2376,13 +2376,13 @@ XMLHttpRequestWorker::UpdateState(const 
                                    mStateData.mResponse);
     mStateData = aStateData;
     mStateData.mResponse = response;
   }
   else {
     mStateData = aStateData;
   }
 
-  XMLHttpRequestBinding::ClearCachedResponseTextValue(this);
+  XMLHttpRequest_Binding::ClearCachedResponseTextValue(this);
 }
 
 } // dom namespace
 } // mozilla namespace
--- a/dom/xml/CDATASection.cpp
+++ b/dom/xml/CDATASection.cpp
@@ -13,17 +13,17 @@ namespace dom {
 
 CDATASection::~CDATASection()
 {
 }
 
 JSObject*
 CDATASection::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return CDATASectionBinding::Wrap(aCx, this, aGivenProto);
+  return CDATASection_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 bool
 CDATASection::IsNodeOfType(uint32_t aFlags) const
 {
   return false;
 }
 
--- a/dom/xml/ProcessingInstruction.cpp
+++ b/dom/xml/ProcessingInstruction.cpp
@@ -64,17 +64,17 @@ ProcessingInstruction::~ProcessingInstru
 
 // If you add nsIStyleSheetLinkingElement here, make sure we actually
 // implement the nsStyleLinkElement methods.
 NS_IMPL_ISUPPORTS_INHERITED0(ProcessingInstruction, CharacterData)
 
 JSObject*
 ProcessingInstruction::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return ProcessingInstructionBinding::Wrap(aCx, this, aGivenProto);
+  return ProcessingInstruction_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 bool
 ProcessingInstruction::GetAttrValue(nsAtom *aName, nsAString& aValue)
 {
   nsAutoString data;
 
   GetData(data);
--- a/dom/xml/XMLDocument.cpp
+++ b/dom/xml/XMLDocument.cpp
@@ -624,16 +624,16 @@ XMLDocument::Clone(mozilla::dom::NodeInf
 
   return CallQueryInterface(clone.get(), aResult);
 }
 
 JSObject*
 XMLDocument::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
   if (mIsPlainDocument) {
-    return DocumentBinding::Wrap(aCx, this, aGivenProto);
+    return Document_Binding::Wrap(aCx, this, aGivenProto);
   }
 
-  return XMLDocumentBinding::Wrap(aCx, this, aGivenProto);
+  return XMLDocument_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/xml/nsXMLElement.cpp
+++ b/dom/xml/nsXMLElement.cpp
@@ -19,17 +19,17 @@ NS_NewXMLElement(Element** aInstancePtrR
   nsXMLElement* it = new nsXMLElement(aNodeInfo);
   NS_ADDREF(*aInstancePtrResult = it);
   return NS_OK;
 }
 
 JSObject*
 nsXMLElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return ElementBinding::Wrap(aCx, this, aGivenProto);
+  return Element_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 nsXMLElement::UnbindFromTree(bool aDeep, bool aNullParent)
 {
   CSSPseudoElementType pseudoType = GetPseudoElementType();
   bool isBefore = pseudoType == CSSPseudoElementType::before;
   nsAtom* property = isBefore
--- a/dom/xslt/xpath/XPathEvaluator.cpp
+++ b/dom/xslt/xpath/XPathEvaluator.cpp
@@ -119,17 +119,17 @@ XPathEvaluator::CreateExpression(const n
     return new XPathExpression(std::move(expression), mRecycler, aDocument);
 }
 
 bool
 XPathEvaluator::WrapObject(JSContext* aCx,
                            JS::Handle<JSObject*> aGivenProto,
                            JS::MutableHandle<JSObject*> aReflector)
 {
-    return dom::XPathEvaluatorBinding::Wrap(aCx, this, aGivenProto, aReflector);
+    return dom::XPathEvaluator_Binding::Wrap(aCx, this, aGivenProto, aReflector);
 }
 
 /* static */ XPathEvaluator*
 XPathEvaluator::Constructor(const GlobalObject& aGlobal,
                             ErrorResult& rv)
 {
     return new XPathEvaluator(nullptr);
 }
--- a/dom/xslt/xpath/XPathExpression.cpp
+++ b/dom/xslt/xpath/XPathExpression.cpp
@@ -93,17 +93,17 @@ XPathExpression::EvaluateWithContext(nsI
                                      XPathResult* aInResult,
                                      ErrorResult& aRv)
 {
     if (aContextPosition > aContextSize) {
         aRv.Throw(NS_ERROR_FAILURE);
         return nullptr;
     }
 
-    if (aType > XPathResultBinding::FIRST_ORDERED_NODE_TYPE) {
+    if (aType > XPathResult_Binding::FIRST_ORDERED_NODE_TYPE) {
         aRv.Throw(NS_ERROR_DOM_NOT_SUPPORTED_ERR);
         return nullptr;
     }
 
     if (!nsContentUtils::LegacyIsCallerNativeCode() &&
         !nsContentUtils::CanCallerAccess(&aContextNode))
     {
         aRv.Throw(NS_ERROR_DOM_SECURITY_ERR);
--- a/dom/xslt/xpath/XPathExpression.h
+++ b/dom/xslt/xpath/XPathExpression.h
@@ -30,17 +30,17 @@ class XPathExpression final : public Non
 {
 public:
     XPathExpression(nsAutoPtr<Expr>&& aExpression, txResultRecycler* aRecycler,
                     nsIDocument *aDocument);
     ~XPathExpression();
 
     bool WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto, JS::MutableHandle<JSObject*> aReflector)
     {
-        return XPathExpressionBinding::Wrap(aCx, this, aGivenProto, aReflector);
+        return XPathExpression_Binding::Wrap(aCx, this, aGivenProto, aReflector);
     }
 
     already_AddRefed<XPathResult>
         Evaluate(JSContext* aCx, nsINode& aContextNode, uint16_t aType,
                  JS::Handle<JSObject*> aInResult, ErrorResult& aRv)
     {
         return EvaluateWithContext(aCx, aContextNode, 1, 1, aType, aInResult,
                                    aRv);
--- a/dom/xslt/xpath/XPathResult.cpp
+++ b/dom/xslt/xpath/XPathResult.cpp
@@ -73,17 +73,17 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
     NS_INTERFACE_MAP_ENTRY(nsIMutationObserver)
     NS_INTERFACE_MAP_ENTRY(nsIXPathResult)
     NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIXPathResult)
 NS_INTERFACE_MAP_END
 
 JSObject*
 XPathResult::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-    return XPathResultBinding::Wrap(aCx, this, aGivenProto);
+    return XPathResult_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 XPathResult::RemoveObserver()
 {
     if (mDocument) {
         mDocument->RemoveMutationObserver(this);
     }
--- a/dom/xslt/xslt/txMozillaXSLTProcessor.cpp
+++ b/dom/xslt/xslt/txMozillaXSLTProcessor.cpp
@@ -1241,17 +1241,17 @@ txMozillaXSLTProcessor::ContentRemoved(n
                                        nsIContent* aPreviousSibling)
 {
     mStylesheet = nullptr;
 }
 
 /* virtual */ JSObject*
 txMozillaXSLTProcessor::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-    return XSLTProcessorBinding::Wrap(aCx, this, aGivenProto);
+    return XSLTProcessor_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 DocGroup*
 txMozillaXSLTProcessor::GetDocGroup() const
 {
     return mStylesheetDocument ? mStylesheetDocument->GetDocGroup() : nullptr;
 }
 
--- a/dom/xslt/xslt/txMozillaXSLTProcessor.h
+++ b/dom/xslt/xslt/txMozillaXSLTProcessor.h
@@ -126,17 +126,17 @@ public:
         return mSource;
     }
 
     nsresult TransformToDoc(nsIDocument **aResult,
                             bool aCreateDataDocument);
 
     bool IsLoadDisabled()
     {
-        return (mFlags & mozilla::dom::XSLTProcessorBinding::DISABLE_ALL_LOADS) != 0;
+        return (mFlags & mozilla::dom::XSLTProcessor_Binding::DISABLE_ALL_LOADS) != 0;
     }
 
     static nsresult Startup();
     static void Shutdown();
 
 private:
     explicit txMozillaXSLTProcessor(nsISupports* aOwner);
     /**
--- a/dom/xul/XULDocument.cpp
+++ b/dom/xul/XULDocument.cpp
@@ -4153,13 +4153,13 @@ XULDocument::ThreadSafeGetDocumentLWThem
         }
     }
     return theme;
 }
 
 JSObject*
 XULDocument::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return XULDocumentBinding::Wrap(aCx, this, aGivenProto);
+  return XULDocument_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/dom/xul/XULPopupElement.cpp
+++ b/dom/xul/XULPopupElement.cpp
@@ -26,17 +26,17 @@ nsXULElement*
 NS_NewXULPopupElement(already_AddRefed<mozilla::dom::NodeInfo>&& aNodeInfo)
 {
   return new XULPopupElement(aNodeInfo);
 }
 
 JSObject*
 XULPopupElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return XULPopupElementBinding::Wrap(aCx, this, aGivenProto);
+  return XULPopupElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsIFrame*
 XULPopupElement::GetFrame(bool aFlushLayout)
 {
   nsCOMPtr<nsIContent> kungFuDeathGrip = this; // keep a reference
 
   nsCOMPtr<nsIDocument> doc = GetUncomposedDoc();
--- a/dom/xul/nsXULElement.cpp
+++ b/dom/xul/nsXULElement.cpp
@@ -625,17 +625,17 @@ nsXULElement::PerformAccesskey(bool aKey
               // Return true if the element became focused.
               nsPIDOMWindowOuter* window = OwnerDoc()->GetWindow();
               focused = (window && window->GetFocusedElement());
             }
           }
         }
         if (aKeyCausesActivation &&
             !content->IsAnyOfXULElements(nsGkAtoms::textbox, nsGkAtoms::menulist)) {
-          elm->ClickWithInputSource(MouseEventBinding::MOZ_SOURCE_KEYBOARD, aIsTrustedEvent);
+          elm->ClickWithInputSource(MouseEvent_Binding::MOZ_SOURCE_KEYBOARD, aIsTrustedEvent);
         }
     } else {
         return content->PerformAccesskey(aKeyCausesActivation, aIsTrustedEvent);
     }
 
     return focused;
 }
 
@@ -1311,17 +1311,17 @@ nsXULElement::DispatchXULCommand(const E
     NS_ENSURE_STATE(doc);
     RefPtr<Element> commandElt = doc->GetElementById(aCommand);
     if (commandElt) {
         // Create a new command event to dispatch to the element
         // pointed to by the command attribute. The new event's
         // sourceEvent will be the original command event that we're
         // handling.
         RefPtr<Event> event = aVisitor.mDOMEvent;
-        uint16_t inputSource = MouseEventBinding::MOZ_SOURCE_UNKNOWN;
+        uint16_t inputSource = MouseEvent_Binding::MOZ_SOURCE_UNKNOWN;
         while (event) {
             NS_ENSURE_STATE(event->GetOriginalTarget() != commandElt);
             RefPtr<XULCommandEvent> commandEvent = event->AsXULCommandEvent();
             if (commandEvent) {
                 event = commandEvent->GetSourceEvent();
                 inputSource = commandEvent->InputSource();
             } else {
                 event = nullptr;
@@ -1400,18 +1400,18 @@ nsXULElement::PreHandleEvent(EventChainV
 
 nsChangeHint
 nsXULElement::GetAttributeChangeHint(const nsAtom* aAttribute,
                                      int32_t aModType) const
 {
     nsChangeHint retval(nsChangeHint(0));
 
     if (aAttribute == nsGkAtoms::value &&
-        (aModType == MutationEventBinding::REMOVAL ||
-         aModType == MutationEventBinding::ADDITION)) {
+        (aModType == MutationEvent_Binding::REMOVAL ||
+         aModType == MutationEvent_Binding::ADDITION)) {
       if (IsAnyOfXULElements(nsGkAtoms::label, nsGkAtoms::description))
         // Label and description dynamically morph between a normal
         // block and a cropping single-line XUL text frame.  If the
         // value attribute is being added or removed, then we need to
         // return a hint of frame change.  (See bugzilla bug 95475 for
         // details.)
         retval = nsChangeHint_ReconstructFrame;
     } else {
@@ -1600,17 +1600,17 @@ nsXULElement::GetParentTree(nsIDOMXULMul
     }
 
     return NS_OK;
 }
 
 void
 nsXULElement::Click(CallerType aCallerType)
 {
-  ClickWithInputSource(MouseEventBinding::MOZ_SOURCE_UNKNOWN,
+  ClickWithInputSource(MouseEvent_Binding::MOZ_SOURCE_UNKNOWN,
                        aCallerType == CallerType::System);
 }
 
 void
 nsXULElement::ClickWithInputSource(uint16_t aInputSource, bool aIsTrustedEvent)
 {
     if (BoolAttrIsTrue(nsGkAtoms::disabled))
         return;
@@ -1969,17 +1969,17 @@ bool
 nsXULElement::IsEventAttributeNameInternal(nsAtom *aName)
 {
   return nsContentUtils::IsEventAttributeName(aName, EventNameType_XUL);
 }
 
 JSObject*
 nsXULElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 {
-    return dom::XULElementBinding::Wrap(aCx, this, aGivenProto);
+    return dom::XULElement_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 NS_IMPL_CYCLE_COLLECTION_CLASS(nsXULPrototypeNode)
 
 NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(nsXULPrototypeNode)
     if (tmp->mType == nsXULPrototypeNode::eType_Element) {
         static_cast<nsXULPrototypeElement*>(tmp)->Unlink();
     } else if (tmp->mType == nsXULPrototypeNode::eType_Script) {
--- a/dom/xul/nsXULPopupListener.cpp
+++ b/dom/xul/nsXULPopupListener.cpp
@@ -163,17 +163,17 @@ nsXULPopupListener::HandleEvent(Event* a
   if (!mIsContext &&
       targetContent->IsAnyOfXULElements(nsGkAtoms::menu, nsGkAtoms::menuitem)) {
     return NS_OK;
   }
 
   if (mIsContext) {
 #ifndef NS_CONTEXT_MENU_IS_MOUSEUP
     uint16_t inputSource = mouseEvent->MozInputSource();
-    bool isTouch = inputSource == MouseEventBinding::MOZ_SOURCE_TOUCH;
+    bool isTouch = inputSource == MouseEvent_Binding::MOZ_SOURCE_TOUCH;
     // If the context menu launches on mousedown,
     // we have to fire focus on the content we clicked on
     FireFocusOnTargetContent(targetContent, isTouch);
 #endif
   }
   else {
     // Only open popups when the left mouse button is down.
     if (mouseEvent->Button() != 0) {
--- a/editor/libeditor/HTMLEditRules.cpp
+++ b/editor/libeditor/HTMLEditRules.cpp
@@ -10425,17 +10425,17 @@ HTMLEditRules::UpdateDocChangeRange(nsRa
 
   if (!mDocChangeRange) {
     // clone aRange.
     mDocChangeRange = aRange->CloneRange();
   } else {
     // compare starts of ranges
     ErrorResult error;
     int16_t result =
-      mDocChangeRange->CompareBoundaryPoints(RangeBinding::START_TO_START,
+      mDocChangeRange->CompareBoundaryPoints(Range_Binding::START_TO_START,
                                              *aRange, error);
     if (error.ErrorCodeIs(NS_ERROR_NOT_INITIALIZED)) {
       // This will happen is mDocChangeRange is non-null, but the range is
       // uninitialized. In this case we'll set the start to aRange start.
       // The same test won't be needed further down since after we've set
       // the start the range will be collapsed to that point.
       result = 1;
       error.SuppressException();
@@ -10449,17 +10449,17 @@ HTMLEditRules::UpdateDocChangeRange(nsRa
       mDocChangeRange->SetStart(atStart.AsRaw(), error);
       if (NS_WARN_IF(error.Failed())) {
         return error.StealNSResult();
       }
     }
 
     // compare ends of ranges
     result =
-      mDocChangeRange->CompareBoundaryPoints(RangeBinding::END_TO_END,
+      mDocChangeRange->CompareBoundaryPoints(Range_Binding::END_TO_END,
                                              *aRange, error);
     if (NS_WARN_IF(error.Failed())) {
       return error.StealNSResult();
     }
 
     // Negative result means mDocChangeRange end is before aRange end.
     if (result < 0) {
       const RangeBoundary& atEnd = aRange->EndRef();
--- a/editor/libeditor/SelectionState.cpp
+++ b/editor/libeditor/SelectionState.cpp
@@ -121,22 +121,22 @@ SelectionState::IsEqual(SelectionState* 
 
   for (size_t i = 0; i < myCount; i++) {
     RefPtr<nsRange> myRange = mArray[i]->GetRange();
     RefPtr<nsRange> itsRange = aSelState->mArray[i]->GetRange();
     NS_ENSURE_TRUE(myRange && itsRange, false);
 
     IgnoredErrorResult rv;
     int16_t compResult =
-      myRange->CompareBoundaryPoints(RangeBinding::START_TO_START, *itsRange, rv);
+      myRange->CompareBoundaryPoints(Range_Binding::START_TO_START, *itsRange, rv);
     if (rv.Failed() || compResult) {
       return false;
     }
     compResult =
-      myRange->CompareBoundaryPoints(RangeBinding::END_TO_END, *itsRange, rv);
+      myRange->CompareBoundaryPoints(Range_Binding::END_TO_END, *itsRange, rv);
     if (rv.Failed() || compResult) {
       return false;
     }
   }
   // if we got here, they are equal
   return true;
 }
 
--- a/editor/libeditor/TextEditRules.cpp
+++ b/editor/libeditor/TextEditRules.cpp
@@ -569,17 +569,17 @@ TextEditRules::GetTextNodeAroundSelectio
     nsCOMPtr<nsINode> node = selectionStartPoint.GetContainer();
     return node.forget();
   }
   // This should be the root node, walk the tree looking for text nodes.
   // XXX NodeIterator sets mutation observer even for this temporary use.
   //     It's too expensive if this is called from a hot path.
   nsCOMPtr<nsINode> node = selectionStartPoint.GetContainer();
   RefPtr<NodeIterator> iter =
-    new NodeIterator(node, NodeFilterBinding::SHOW_TEXT, nullptr);
+    new NodeIterator(node, NodeFilter_Binding::SHOW_TEXT, nullptr);
   while (!EditorBase::IsTextNode(node)) {
     node = iter->NextNode(IgnoreErrors());
     if (!node) {
       return nullptr;
     }
   }
   return node.forget();
 }
--- a/extensions/spellcheck/src/mozInlineSpellChecker.cpp
+++ b/extensions/spellcheck/src/mozInlineSpellChecker.cpp
@@ -1861,28 +1861,28 @@ mozInlineSpellChecker::OnKeyPress(Event*
   RefPtr<KeyboardEvent> keyEvent = aKeyEvent->AsKeyboardEvent();
   NS_ENSURE_TRUE(keyEvent, NS_OK);
 
   uint32_t keyCode = keyEvent->KeyCode();
 
   // we only care about navigation keys that moved selection
   switch (keyCode)
   {
-    case KeyboardEventBinding::DOM_VK_RIGHT:
-    case KeyboardEventBinding::DOM_VK_LEFT:
+    case KeyboardEvent_Binding::DOM_VK_RIGHT:
+    case KeyboardEvent_Binding::DOM_VK_LEFT:
       HandleNavigationEvent(false,
-                            keyCode == KeyboardEventBinding::DOM_VK_RIGHT ?
+                            keyCode == KeyboardEvent_Binding::DOM_VK_RIGHT ?
                               1 : -1);
       break;
-    case KeyboardEventBinding::DOM_VK_UP:
-    case KeyboardEventBinding::DOM_VK_DOWN:
-    case KeyboardEventBinding::DOM_VK_HOME:
-    case KeyboardEventBinding::DOM_VK_END:
-    case KeyboardEventBinding::DOM_VK_PAGE_UP:
-    case KeyboardEventBinding::DOM_VK_PAGE_DOWN:
+    case KeyboardEvent_Binding::DOM_VK_UP:
+    case KeyboardEvent_Binding::DOM_VK_DOWN:
+    case KeyboardEvent_Binding::DOM_VK_HOME:
+    case KeyboardEvent_Binding::DOM_VK_END:
+    case KeyboardEvent_Binding::DOM_VK_PAGE_UP:
+    case KeyboardEvent_Binding::DOM_VK_PAGE_DOWN:
       HandleNavigationEvent(true /* force a spelling correction */);
       break;
   }
 
   return NS_OK;
 }
 
 // Used as the nsIEditorSpellCheck::UpdateCurrentDictionary callback.
--- a/gfx/layers/apz/src/APZCTreeManager.cpp
+++ b/gfx/layers/apz/src/APZCTreeManager.cpp
@@ -1741,17 +1741,17 @@ APZCTreeManager::ProcessTouchInputForScr
   MOZ_ASSERT(mRetainedTouchIdentifier == -1);
   MOZ_ASSERT(mApzcForInputBlock);
   MOZ_ASSERT(aTouchInput.mTouches.Length() == 1);
 
   // Synthesize a mouse event based on the touch event, so that we can
   // reuse code in InputQueue and APZC for handling scrollbar mouse-drags.
   MouseInput mouseInput{MultiTouchTypeToMouseType(aTouchInput.mType),
                         MouseInput::LEFT_BUTTON,
-                        dom::MouseEventBinding::MOZ_SOURCE_TOUCH,
+                        dom::MouseEvent_Binding::MOZ_SOURCE_TOUCH,
                         WidgetMouseEvent::eLeftButtonFlag,
                         aTouchInput.mTouches[0].mScreenPoint,
                         aTouchInput.mTime,
                         aTouchInput.mTimeStamp,
                         aTouchInput.modifiers};
   mouseInput.mHandledByAPZ = true;
 
   // The value of |targetConfirmed| passed to InputQueue::ReceiveInputEvent()
--- a/gfx/layers/apz/src/APZInputBridge.cpp
+++ b/gfx/layers/apz/src/APZInputBridge.cpp
@@ -28,19 +28,19 @@ WillHandleMouseEvent(const WidgetMouseEv
          aEvent.mMessage == eMouseUp ||
          aEvent.mMessage == eDragEnd ||
          (gfxPrefs::TestEventsAsyncEnabled() && aEvent.mMessage == eMouseHitTest);
 }
 
 /* static */ Maybe<APZWheelAction>
 APZInputBridge::ActionForWheelEvent(WidgetWheelEvent* aEvent)
 {
-  if (!(aEvent->mDeltaMode == dom::WheelEventBinding::DOM_DELTA_LINE ||
-        aEvent->mDeltaMode == dom::WheelEventBinding::DOM_DELTA_PIXEL ||
-        aEvent->mDeltaMode == dom::WheelEventBinding::DOM_DELTA_PAGE)) {
+  if (!(aEvent->mDeltaMode == dom::WheelEvent_Binding::DOM_DELTA_LINE ||
+        aEvent->mDeltaMode == dom::WheelEvent_Binding::DOM_DELTA_PIXEL ||
+        aEvent->mDeltaMode == dom::WheelEvent_Binding::DOM_DELTA_PAGE)) {
     return Nothing();
   }
   return EventStateManager::APZWheelActionFor(aEvent);
 }
 
 nsEventStatus
 APZInputBridge::ReceiveInputEvent(
     WidgetInputEvent& aEvent,
@@ -106,19 +106,19 @@ APZInputBridge::ReceiveInputEvent(
     }
     case eWheelEventClass: {
       WidgetWheelEvent& wheelEvent = *aEvent.AsWheelEvent();
 
       if (Maybe<APZWheelAction> action = ActionForWheelEvent(&wheelEvent)) {
 
         ScrollWheelInput::ScrollMode scrollMode = ScrollWheelInput::SCROLLMODE_INSTANT;
         if (gfxPrefs::SmoothScrollEnabled() &&
-            ((wheelEvent.mDeltaMode == dom::WheelEventBinding::DOM_DELTA_LINE &&
+            ((wheelEvent.mDeltaMode == dom::WheelEvent_Binding::DOM_DELTA_LINE &&
               gfxPrefs::WheelSmoothScrollEnabled()) ||
-             (wheelEvent.mDeltaMode == dom::WheelEventBinding::DOM_DELTA_PAGE &&
+             (wheelEvent.mDeltaMode == dom::WheelEvent_Binding::DOM_DELTA_PAGE &&
               gfxPrefs::PageSmoothScrollEnabled())))
         {
           scrollMode = ScrollWheelInput::SCROLLMODE_SMOOTH;
         }
 
         WheelDeltaAdjustmentStrategy strategy =
           EventStateManager::GetWheelDeltaAdjustmentStrategy(wheelEvent);
         // Adjust the delta values of the wheel event if the current default
--- a/gfx/layers/apz/util/APZCCallbackHelper.cpp
+++ b/gfx/layers/apz/util/APZCCallbackHelper.cpp
@@ -513,17 +513,17 @@ APZCCallbackHelper::DispatchSynthesizedM
   MOZ_ASSERT(aMsg == eMouseMove || aMsg == eMouseDown ||
              aMsg == eMouseUp || aMsg == eMouseLongTap);
 
   WidgetMouseEvent event(true, aMsg, aWidget,
                          WidgetMouseEvent::eReal, WidgetMouseEvent::eNormal);
   event.mRefPoint = LayoutDeviceIntPoint::Truncate(aRefPoint.x, aRefPoint.y);
   event.mTime = aTime;
   event.button = WidgetMouseEvent::eLeftButton;
-  event.inputSource = dom::MouseEventBinding::MOZ_SOURCE_TOUCH;
+  event.inputSource = dom::MouseEvent_Binding::MOZ_SOURCE_TOUCH;
   if (aMsg == eMouseLongTap) {
     event.mFlags.mOnlyChromeDispatch = true;
   }
   event.mIgnoreRootScrollFrame = true;
   if (aMsg != eMouseMove) {
     event.mClickCount = aClickCount;
   }
   event.mModifiers = aModifiers;
--- a/gfx/layers/apz/util/APZEventState.cpp
+++ b/gfx/layers/apz/util/APZEventState.cpp
@@ -236,17 +236,17 @@ APZEventState::FireContextmenuEvents(con
 {
   // Converting the modifiers to DOM format for the DispatchMouseEvent call
   // is the most useless thing ever because nsDOMWindowUtils::SendMouseEvent
   // just converts them back to widget format, but that API has many callers,
   // including in JS code, so it's not trivial to change.
   bool eventHandled =
       APZCCallbackHelper::DispatchMouseEvent(aPresShell, NS_LITERAL_STRING("contextmenu"),
                          aPoint, 2, 1, WidgetModifiersToDOMModifiers(aModifiers), true,
-                         dom::MouseEventBinding::MOZ_SOURCE_TOUCH,
+                         dom::MouseEvent_Binding::MOZ_SOURCE_TOUCH,
                          0 /* Use the default value here. */);
 
   APZES_LOG("Contextmenu event handled: %d\n", eventHandled);
   if (eventHandled) {
     // If the contextmenu event was handled then we're showing a contextmenu,
     // and so we should remove any activation
     mActiveElementManager->ClearActivation();
 #ifndef XP_WIN
--- a/gfx/layers/apz/util/CheckerboardReportService.cpp
+++ b/gfx/layers/apz/util/CheckerboardReportService.cpp
@@ -175,17 +175,17 @@ CheckerboardReportService::Constructor(c
 CheckerboardReportService::CheckerboardReportService(nsISupports* aParent)
   : mParent(aParent)
 {
 }
 
 JSObject*
 CheckerboardReportService::WrapObject(JSContext* aCtx, JS::Handle<JSObject*> aGivenProto)
 {
-  return CheckerboardReportServiceBinding::Wrap(aCtx, this, aGivenProto);
+  return CheckerboardReportService_Binding::Wrap(aCtx, this, aGivenProto);
 }
 
 nsISupports*
 CheckerboardReportService::GetParentObject()
 {
   return mParent;
 }
 
--- a/image/VectorImage.cpp
+++ b/image/VectorImage.cpp
@@ -39,17 +39,17 @@
 #include "nsDocument.h"
 
 // undef the GetCurrentTime macro defined in WinBase.h from the MS Platform SDK
 #undef GetCurrentTime
 
 namespace mozilla {
 
 using namespace dom;
-using namespace dom::SVGPreserveAspectRatioBinding;
+using namespace dom::SVGPreserveAspectRatio_Binding;
 using namespace gfx;
 using namespace layers;
 
 namespace image {
 
 // Helper-class: SVGRootRenderingObserver
 class SVGRootRenderingObserver final : public nsSVGRenderingObserver {
 public:
--- a/js/xpconnect/loader/ChromeScriptLoader.cpp
+++ b/js/xpconnect/loader/ChromeScriptLoader.cpp
@@ -331,17 +331,17 @@ bool
 PrecompiledScript::HasReturnValue()
 {
     return mHasReturnValue;
 }
 
 JSObject*
 PrecompiledScript::WrapObject(JSContext* aCx, HandleObject aGivenProto)
 {
-    return PrecompiledScriptBinding::Wrap(aCx, this, aGivenProto);
+    return PrecompiledScript_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 bool
 PrecompiledScript::IsBlackForCC(bool aTracingNeeded)
 {
     return (nsCCUncollectableMarker::sGeneration &&
             HasKnownLiveWrapper() &&
             (!aTracingNeeded || HasNothingToTrace(this)));
--- a/js/xpconnect/src/Sandbox.cpp
+++ b/js/xpconnect/src/Sandbox.cpp
@@ -329,19 +329,19 @@ static bool SandboxFetchPromise(JSContex
 
 
 static bool
 SandboxCreateFetch(JSContext* cx, HandleObject obj)
 {
     MOZ_ASSERT(JS_IsGlobalObject(obj));
 
     return JS_DefineFunction(cx, obj, "fetch", SandboxFetchPromise, 2, 0) &&
-        dom::RequestBinding::GetConstructorObject(cx) &&
-        dom::ResponseBinding::GetConstructorObject(cx) &&
-        dom::HeadersBinding::GetConstructorObject(cx);
+        dom::Request_Binding::GetConstructorObject(cx) &&
+        dom::Response_Binding::GetConstructorObject(cx) &&
+        dom::Headers_Binding::GetConstructorObject(cx);
 }
 
 static bool
 SandboxIsProxy(JSContext* cx, unsigned argc, Value* vp)
 {
     CallArgs args = CallArgsFromVp(argc, vp);
     if (args.length() < 1) {
         JS_ReportErrorASCII(cx, "Function requires at least 1 argument");
@@ -876,92 +876,92 @@ xpc::GlobalProperties::Define(JSContext*
 {
     MOZ_ASSERT(js::GetContextCompartment(cx) == js::GetObjectCompartment(obj));
     // Properties will be exposed to System automatically but not to Sandboxes
     // if |[Exposed=System]| is specified.
     // This function holds common properties not exposed automatically but able
     // to be requested either in |Cu.importGlobalProperties| or
     // |wantGlobalProperties| of a sandbox.
     if (Blob &&
-        !dom::BlobBinding::GetConstructorObject(cx))
+        !dom::Blob_Binding::GetConstructorObject(cx))
         return false;
 
-    if (ChromeUtils && !dom::ChromeUtilsBinding::GetConstructorObject(cx))
+    if (ChromeUtils && !dom::ChromeUtils_Binding::GetConstructorObject(cx))
         return false;
 
-    if (CSS && !dom::CSSBinding::GetConstructorObject(cx))
+    if (CSS && !dom::CSS_Binding::GetConstructorObject(cx))
         return false;
 
-    if (CSSRule && !dom::CSSRuleBinding::GetConstructorObject(cx))
+    if (CSSRule && !dom::CSSRule_Binding::GetConstructorObject(cx))
         return false;
 
     if (Directory &&
-        !dom::DirectoryBinding::GetConstructorObject(cx))
+        !dom::Directory_Binding::GetConstructorObject(cx))
         return false;
 
     if (DOMParser &&
-        !dom::DOMParserBinding::GetConstructorObject(cx))
+        !dom::DOMParser_Binding::GetConstructorObject(cx))
         return false;
 
     if (Element &&
-        !dom::ElementBinding::GetConstructorObject(cx))
+        !dom::Element_Binding::GetConstructorObject(cx))
         return false;
 
     if (Event &&
-        !dom::EventBinding::GetConstructorObject(cx))
+        !dom::Event_Binding::GetConstructorObject(cx))
         return false;
 
     if (File &&
-        !dom::FileBinding::GetConstructorObject(cx))
+        !dom::File_Binding::GetConstructorObject(cx))
         return false;
 
-    if (FileReader && !dom::FileReaderBinding::GetConstructorObject(cx))
+    if (FileReader && !dom::FileReader_Binding::GetConstructorObject(cx))
         return false;
 
     if (FormData &&
-        !dom::FormDataBinding::GetConstructorObject(cx))
+        !dom::FormData_Binding::GetConstructorObject(cx))
         return false;
 
     if (InspectorUtils &&
-        !dom::InspectorUtilsBinding::GetConstructorObject(cx))
+        !dom::InspectorUtils_Binding::GetConstructorObject(cx))
         return false;
 
     if (MessageChannel &&
-        (!dom::MessageChannelBinding::GetConstructorObject(cx) ||
-         !dom::MessagePortBinding::GetConstructorObject(cx)))
+        (!dom::MessageChannel_Binding::GetConstructorObject(cx) ||
+         !dom::MessagePort_Binding::GetConstructorObject(cx)))
         return false;
 
-    if (Node && !dom::NodeBinding::GetConstructorObject(cx))
+    if (Node && !dom::Node_Binding::GetConstructorObject(cx))
         return false;
 
-    if (NodeFilter && !dom::NodeFilterBinding::GetConstructorObject(cx))
+    if (NodeFilter && !dom::NodeFilter_Binding::GetConstructorObject(cx))
         return false;
 
     if (TextDecoder &&
-        !dom::TextDecoderBinding::GetConstructorObject(cx))
+        !dom::TextDecoder_Binding::GetConstructorObject(cx))
         return false;
 
     if (TextEncoder &&
-        !dom::TextEncoderBinding::GetConstructorObject(cx))
+        !dom::TextEncoder_Binding::GetConstructorObject(cx))
         return false;
 
     if (URL &&
-        !dom::URLBinding::GetConstructorObject(cx))
+        !dom::URL_Binding::GetConstructorObject(cx))
         return false;
 
     if (URLSearchParams &&
-        !dom::URLSearchParamsBinding::GetConstructorObject(cx))
+        !dom::URLSearchParams_Binding::GetConstructorObject(cx))
         return false;
 
     if (XMLHttpRequest &&
-        !dom::XMLHttpRequestBinding::GetConstructorObject(cx))
+        !dom::XMLHttpRequest_Binding::GetConstructorObject(cx))
         return false;
 
     if (XMLSerializer &&
-        !dom::XMLSerializerBinding::GetConstructorObject(cx))
+        !dom::XMLSerializer_Binding::GetConstructorObject(cx))
         return false;
 
     if (atob &&
         !JS_DefineFunction(cx, obj, "atob", Atob, 1, 0))
         return false;
 
     if (btoa &&
         !JS_DefineFunction(cx, obj, "btoa", Btoa, 1, 0))
--- a/js/xpconnect/wrappers/AccessCheck.cpp
+++ b/js/xpconnect/wrappers/AccessCheck.cpp
@@ -117,19 +117,19 @@ static bool
 IsPermitted(CrossOriginObjectType type, JSFlatString* prop, bool set)
 {
     size_t propLength = JS_GetStringLength(JS_FORGET_STRING_FLATNESS(prop));
     if (!propLength)
         return false;
 
     char16_t propChar0 = JS_GetFlatStringCharAt(prop, 0);
     if (type == CrossOriginLocation)
-        return dom::LocationBinding::IsPermitted(prop, propChar0, set);
+        return dom::Location_Binding::IsPermitted(prop, propChar0, set);
     if (type == CrossOriginWindow)
-        return dom::WindowBinding::IsPermitted(prop, propChar0, set);
+        return dom::Window_Binding::IsPermitted(prop, propChar0, set);
 
     return false;
 }
 
 static bool
 IsFrameId(JSContext* cx, JSObject* obj, jsid idArg)
 {
     MOZ_ASSERT(!js::IsWrapper(obj));
--- a/layout/base/AccessibleCaretEventHub.cpp
+++ b/layout/base/AccessibleCaretEventHub.cpp
@@ -546,17 +546,17 @@ AccessibleCaretEventHub::HandleTouchEven
 
   nsEventStatus rv = nsEventStatus_eIgnore;
 
   int32_t id =
     (mActiveTouchId == kInvalidTouchId ? aEvent->mTouches[0]->Identifier()
                                        : mActiveTouchId);
   nsPoint point = GetTouchEventPosition(aEvent, id);
 
-  mManager->SetLastInputSource(MouseEventBinding::MOZ_SOURCE_TOUCH);
+  mManager->SetLastInputSource(MouseEvent_Binding::MOZ_SOURCE_TOUCH);
 
   switch (aEvent->mMessage) {
     case eTouchStart:
       AC_LOGV("Before eTouchStart, state: %s", mState->Name());
       rv = mState->OnPress(this, point, id, eTouchEventClass);
       AC_LOGV("After eTouchStart, state: %s, consume: %d", mState->Name(), rv);
       break;
 
@@ -582,17 +582,17 @@ AccessibleCaretEventHub::HandleTouchEven
   }
 
   return rv;
 }
 
 nsEventStatus
 AccessibleCaretEventHub::HandleKeyboardEvent(WidgetKeyboardEvent* aEvent)
 {
-  mManager->SetLastInputSource(MouseEventBinding::MOZ_SOURCE_KEYBOARD);
+  mManager->SetLastInputSource(MouseEvent_Binding::MOZ_SOURCE_KEYBOARD);
 
   switch (aEvent->mMessage) {
     case eKeyUp:
       AC_LOGV("eKeyUp, state: %s", mState->Name());
       mManager->OnKeyboardEvent();
       break;
 
     case eKeyDown:
--- a/layout/base/AccessibleCaretManager.cpp
+++ b/layout/base/AccessibleCaretManager.cpp
@@ -186,25 +186,25 @@ AccessibleCaretManager::OnSelectionChang
   if (aReason & (nsISelectionListener::COLLAPSETOSTART_REASON |
                  nsISelectionListener::COLLAPSETOEND_REASON)) {
     HideCarets();
     return NS_OK;
   }
 
   // For mouse input we don't want to show the carets.
   if (sHideCaretsForMouseInput &&
-      mLastInputSource == MouseEventBinding::MOZ_SOURCE_MOUSE) {
+      mLastInputSource == MouseEvent_Binding::MOZ_SOURCE_MOUSE) {
     HideCarets();
     return NS_OK;
   }
 
   // When we want to hide the carets for mouse input, hide them for select
   // all action fired by keyboard as well.
   if (sHideCaretsForMouseInput &&
-      mLastInputSource == MouseEventBinding::MOZ_SOURCE_KEYBOARD &&
+      mLastInputSource == MouseEvent_Binding::MOZ_SOURCE_KEYBOARD &&
       (aReason & nsISelectionListener::SELECTALL_REASON)) {
     HideCarets();
     return NS_OK;
   }
 
   UpdateCarets();
   return NS_OK;
 }
@@ -672,17 +672,17 @@ AccessibleCaretManager::OnScrollEnd()
       // If the caret is hidden (Appearance::None) due to blur, no
       // need to update it.
       return;
     }
   }
 
   // For mouse input we don't want to show the carets.
   if (sHideCaretsForMouseInput &&
-      mLastInputSource == MouseEventBinding::MOZ_SOURCE_MOUSE) {
+      mLastInputSource == MouseEvent_Binding::MOZ_SOURCE_MOUSE) {
     AC_LOG("%s: HideCarets()", __FUNCTION__);
     HideCarets();
     return;
   }
 
   AC_LOG("%s: UpdateCarets()", __FUNCTION__);
   UpdateCarets();
 }
@@ -1068,17 +1068,17 @@ AccessibleCaretManager::GetFrameForFirst
   nsCOMPtr<nsIContent> startContent = do_QueryInterface(startNode);
   RefPtr<nsFrameSelection> fs = GetFrameSelection();
   nsIFrame* startFrame =
     fs->GetFrameForNodeOffset(startContent, nodeOffset, hint, aOutOffset);
 
   if (!startFrame) {
     ErrorResult err;
     RefPtr<TreeWalker> walker = mPresShell->GetDocument()->CreateTreeWalker(
-      *startNode, dom::NodeFilterBinding::SHOW_ALL, nullptr, err);
+      *startNode, dom::NodeFilter_Binding::SHOW_ALL, nullptr, err);
 
     if (!walker) {
       return nullptr;
     }
 
     startFrame = startContent ? startContent->GetPrimaryFrame() : nullptr;
     while (!startFrame && startNode != endNode) {
       startNode = findInFirstRangeStart ? walker->NextNode(err)
--- a/layout/base/AccessibleCaretManager.h
+++ b/layout/base/AccessibleCaretManager.h
@@ -310,17 +310,17 @@ protected:
 
   // The caret mode since last update carets.
   CaretMode mLastUpdateCaretMode = CaretMode::None;
 
   // The last input source that the event hub saw. We use this to decide whether
   // or not show the carets when the selection is updated, as we want to hide
   // the carets for mouse-triggered selection changes but show them for other
   // input types such as touch.
-  uint16_t mLastInputSource = dom::MouseEventBinding::MOZ_SOURCE_UNKNOWN;
+  uint16_t mLastInputSource = dom::MouseEvent_Binding::MOZ_SOURCE_UNKNOWN;
 
   // Set to true in OnScrollStart() and set to false in OnScrollEnd().
   bool mIsScrollStarted = false;
 
   // Whether we're flushing layout, used for sanity-checking.
   bool mFlushingLayout = false;
 
   static const int32_t kAutoScrollTimerDelay = 30;
--- a/layout/base/PositionedEventTargeting.cpp
+++ b/layout/base/PositionedEventTargeting.cpp
@@ -572,17 +572,17 @@ FindFrameTargetedByInputEvent(WidgetGUIE
     }
   }
 
   // Do not modify targeting for actual mouse hardware; only for mouse
   // events generated by touch-screen hardware.
   if (aEvent->mClass == eMouseEventClass &&
       prefs->mTouchOnly &&
       aEvent->AsMouseEvent()->inputSource !=
-        MouseEventBinding::MOZ_SOURCE_TOUCH) {
+        MouseEvent_Binding::MOZ_SOURCE_TOUCH) {
     PET_LOG("Mouse input event is not from a touch source\n");
     return target;
   }
 
   // If the exact target is non-null, only consider candidate targets in the same
   // document as the exact target. Otherwise, if an ancestor document has
   // a mouse event handler for example, targets that are !GetClickableAncestor can
   // never be targeted --- something nsSubDocumentFrame in an ancestor document
--- a/layout/base/nsLayoutUtils.cpp
+++ b/layout/base/nsLayoutUtils.cpp
@@ -150,18 +150,18 @@
 #endif
 
 using namespace mozilla;
 using namespace mozilla::dom;
 using namespace mozilla::image;
 using namespace mozilla::layers;
 using namespace mozilla::layout;
 using namespace mozilla::gfx;
-using mozilla::dom::HTMLMediaElementBinding::HAVE_NOTHING;
-using mozilla::dom::HTMLMediaElementBinding::HAVE_METADATA;
+using mozilla::dom::HTMLMediaElement_Binding::HAVE_NOTHING;
+using mozilla::dom::HTMLMediaElement_Binding::HAVE_METADATA;
 
 #define INTERCHARACTER_RUBY_ENABLED_PREF_NAME "layout.css.ruby.intercharacter.enabled"
 #define CONTENT_SELECT_ENABLED_PREF_NAME "dom.select_popup_in_content.enabled"
 
 // The time in number of frames that we estimate for a refresh driver
 // to be quiescent
 #define DEFAULT_QUIESCENT_FRAMES 2
 // The time (milliseconds) we estimate is needed between the end of an
--- a/layout/forms/nsDateTimeControlFrame.cpp
+++ b/layout/forms/nsDateTimeControlFrame.cpp
@@ -416,24 +416,24 @@ nsDateTimeControlFrame::AttributeChanged
         if (aAttribute == nsGkAtoms::value) {
           if (inputAreaContent) {
             nsContentUtils::AddScriptRunner(NewRunnableMethod(
               "nsIDateTimeInputArea::NotifyInputElementValueChanged",
               inputAreaContent,
               &nsIDateTimeInputArea::NotifyInputElementValueChanged));
           }
         } else {
-          if (aModType == MutationEventBinding::REMOVAL) {
+          if (aModType == MutationEvent_Binding::REMOVAL) {
             if (inputAreaContent) {
               nsAtomString name(aAttribute);
               inputAreaContent->RemoveEditAttribute(name);
             }
           } else {
-            MOZ_ASSERT(aModType == MutationEventBinding::ADDITION ||
-                       aModType == MutationEventBinding::MODIFICATION);
+            MOZ_ASSERT(aModType == MutationEvent_Binding::ADDITION ||
+                       aModType == MutationEvent_Binding::MODIFICATION);
             if (inputAreaContent) {
               nsAtomString name(aAttribute);
               nsAutoString value;
               contentAsInputElem->GetAttr(aNameSpaceID, aAttribute, value);
               inputAreaContent->SetEditAttribute(name, value);
             }
           }
         }
--- a/layout/forms/nsFileControlFrame.cpp
+++ b/layout/forms/nsFileControlFrame.cpp
@@ -435,17 +435,17 @@ nsFileControlFrame::SyncDisabledState()
 }
 
 nsresult
 nsFileControlFrame::AttributeChanged(int32_t  aNameSpaceID,
                                      nsAtom* aAttribute,
                                      int32_t  aModType)
 {
   if (aNameSpaceID == kNameSpaceID_None && aAttribute == nsGkAtoms::tabindex) {
-    if (aModType == MutationEventBinding::REMOVAL) {
+    if (aModType == MutationEvent_Binding::REMOVAL) {
       mBrowseFilesOrDirs->UnsetAttr(aNameSpaceID, aAttribute, true);
     } else {
       nsAutoString value;
       mContent->AsElement()->GetAttr(aNameSpaceID, aAttribute, value);
       mBrowseFilesOrDirs->SetAttr(aNameSpaceID, aAttribute, value, true);
     }
   }
 
--- a/layout/forms/nsListControlFrame.cpp
+++ b/layout/forms/nsListControlFrame.cpp
@@ -1846,17 +1846,17 @@ nsListControlFrame::MouseDown(dom::Event
           do_QueryInterface(aMouseEvent->GetTarget());
         HTMLOptionElement* option = HTMLOptionElement::FromNodeOrNull(econtent);
         if (option) {
           return NS_OK;
         }
       }
 
       uint16_t inputSource = mouseEvent->MozInputSource();
-      bool isSourceTouchEvent = inputSource == MouseEventBinding::MOZ_SOURCE_TOUCH;
+      bool isSourceTouchEvent = inputSource == MouseEvent_Binding::MOZ_SOURCE_TOUCH;
       if (FireShowDropDownEvent(mContent, !mComboboxFrame->IsDroppedDownOrHasParentPopup(),
                                 isSourceTouchEvent)) {
         return NS_OK;
       }
 
       if (!IgnoreMouseEventForSelection(aMouseEvent)) {
         return NS_OK;
       }
--- a/layout/forms/nsNumberControlFrame.cpp
+++ b/layout/forms/nsNumberControlFrame.cpp
@@ -262,21 +262,21 @@ nsNumberControlFrame::AttributeChanged(i
                                        nsAtom* aAttribute,
                                        int32_t  aModType)
 {
   // nsGkAtoms::disabled is handled by SyncDisabledState
   if (aNameSpaceID == kNameSpaceID_None) {
     if (aAttribute == nsGkAtoms::placeholder ||
         aAttribute == nsGkAtoms::readonly ||
         aAttribute == nsGkAtoms::tabindex) {
-      if (aModType == MutationEventBinding::REMOVAL) {
+      if (aModType == MutationEvent_Binding::REMOVAL) {
         mTextField->UnsetAttr(aNameSpaceID, aAttribute, true);
       } else {
-        MOZ_ASSERT(aModType == MutationEventBinding::ADDITION ||
-                   aModType == MutationEventBinding::MODIFICATION);
+        MOZ_ASSERT(aModType == MutationEvent_Binding::ADDITION ||
+                   aModType == MutationEvent_Binding::MODIFICATION);
         nsAutoString value;
         mContent->AsElement()->GetAttr(aNameSpaceID, aAttribute, value);
         mTextField->SetAttr(aNameSpaceID, aAttribute, value, true);
       }
     }
   }
 
   return nsContainerFrame::AttributeChanged(aNameSpaceID, aAttribute,
--- a/layout/inspector/InspectorFontFace.h
+++ b/layout/inspector/InspectorFontFace.h
@@ -72,17 +72,17 @@ public:
                    ErrorResult& aRV);
 
   void GetRanges(nsTArray<RefPtr<nsRange>>& aResult);
 
   bool WrapObject(JSContext* aCx,
                   JS::Handle<JSObject*> aGivenProto,
                   JS::MutableHandle<JSObject*> aReflector)
   {
-    return InspectorFontFaceBinding::Wrap(aCx, this, aGivenProto, aReflector);
+    return InspectorFontFace_Binding::Wrap(aCx, this, aGivenProto, aReflector);
   }
 
 protected:
   RefPtr<gfxFontEntry> mFontEntry;
   RefPtr<gfxFontGroup> mFontGroup;
   RefPtr<ServoFontFaceRule> mRule;
   gfxTextRange::MatchType mMatchType;
 
--- a/layout/inspector/ServoStyleRuleMap.cpp
+++ b/layout/inspector/ServoStyleRuleMap.cpp
@@ -86,36 +86,36 @@ void
 ServoStyleRuleMap::RuleRemoved(StyleSheet& aStyleSheet,
                                css::Rule& aStyleRule)
 {
   if (IsEmpty()) {
     return;
   }
 
   switch (aStyleRule.Type()) {
-    case CSSRuleBinding::STYLE_RULE: {
+    case CSSRule_Binding::STYLE_RULE: {
       auto& rule = static_cast<ServoStyleRule&>(aStyleRule);
       mTable.Remove(rule.Raw());
       break;
     }
-    case CSSRuleBinding::IMPORT_RULE:
-    case CSSRuleBinding::MEDIA_RULE:
-    case CSSRuleBinding::SUPPORTS_RULE:
-    case CSSRuleBinding::DOCUMENT_RULE: {
+    case CSSRule_Binding::IMPORT_RULE:
+    case CSSRule_Binding::MEDIA_RULE:
+    case CSSRule_Binding::SUPPORTS_RULE:
+    case CSSRule_Binding::DOCUMENT_RULE: {
       // See the comment in StyleSheetRemoved.
       mTable.Clear();
       break;
     }
-    case CSSRuleBinding::FONT_FACE_RULE:
-    case CSSRuleBinding::PAGE_RULE:
-    case CSSRuleBinding::KEYFRAMES_RULE:
-    case CSSRuleBinding::KEYFRAME_RULE:
-    case CSSRuleBinding::NAMESPACE_RULE:
-    case CSSRuleBinding::COUNTER_STYLE_RULE:
-    case CSSRuleBinding::FONT_FEATURE_VALUES_RULE:
+    case CSSRule_Binding::FONT_FACE_RULE:
+    case CSSRule_Binding::PAGE_RULE:
+    case CSSRule_Binding::KEYFRAMES_RULE:
+    case CSSRule_Binding::KEYFRAME_RULE:
+    case CSSRule_Binding::NAMESPACE_RULE:
+    case CSSRule_Binding::COUNTER_STYLE_RULE:
+    case CSSRule_Binding::FONT_FEATURE_VALUES_RULE:
       break;
     default:
       MOZ_ASSERT_UNREACHABLE("Unhandled rule");
   }
 }
 
 size_t
 ServoStyleRuleMap::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const
@@ -124,30 +124,30 @@ ServoStyleRuleMap::SizeOfIncludingThis(M
   n += mTable.ShallowSizeOfExcludingThis(aMallocSizeOf);
   return n;
 }
 
 void
 ServoStyleRuleMap::FillTableFromRule(css::Rule& aRule)
 {
   switch (aRule.Type()) {
-    case CSSRuleBinding::STYLE_RULE: {
+    case CSSRule_Binding::STYLE_RULE: {
       auto& rule = static_cast<ServoStyleRule&>(aRule);
       mTable.Put(rule.Raw(), &rule);
       break;
     }
-    case CSSRuleBinding::MEDIA_RULE:
-    case CSSRuleBinding::SUPPORTS_RULE:
-    case CSSRuleBinding::DOCUMENT_RULE: {
+    case CSSRule_Binding::MEDIA_RULE:
+    case CSSRule_Binding::SUPPORTS_RULE:
+    case CSSRule_Binding::DOCUMENT_RULE: {
       auto& rule = static_cast<css::GroupRule&>(aRule);
       auto ruleList = static_cast<ServoCSSRuleList*>(rule.CssRules());
       FillTableFromRuleList(*ruleList);
       break;
     }
-    case CSSRuleBinding::IMPORT_RULE: {
+    case CSSRule_Binding::IMPORT_RULE: {
       auto& rule = static_cast<ServoImportRule&>(aRule);
       MOZ_ASSERT(aRule.GetStyleSheet());
       FillTableFromStyleSheet(*rule.GetStyleSheet());
       break;
     }
   }
 }
 
--- a/layout/inspector/inDeepTreeWalker.cpp
+++ b/layout/inspector/inDeepTreeWalker.cpp
@@ -23,17 +23,17 @@
  *****************************************************************************/
 
 ////////////////////////////////////////////////////
 
 inDeepTreeWalker::inDeepTreeWalker()
   : mShowAnonymousContent(false),
     mShowSubDocuments(false),
     mShowDocumentsAsNodes(false),
-    mWhatToShow(mozilla::dom::NodeFilterBinding::SHOW_ALL)
+    mWhatToShow(mozilla::dom::NodeFilter_Binding::SHOW_ALL)
 {
 }
 
 inDeepTreeWalker::~inDeepTreeWalker()
 {
 }
 
 NS_IMPL_ISUPPORTS(inDeepTreeWalker,
--- a/layout/mathml/nsMathMLContainerFrame.cpp
+++ b/layout/mathml/nsMathMLContainerFrame.cpp
@@ -734,36 +734,36 @@ nsMathMLContainerFrame::ChildListChanged
 }
 
 void
 nsMathMLContainerFrame::AppendFrames(ChildListID     aListID,
                                      nsFrameList&    aFrameList)
 {
   MOZ_ASSERT(aListID == kPrincipalList);
   mFrames.AppendFrames(this, aFrameList);
-  ChildListChanged(dom::MutationEventBinding::ADDITION);
+  ChildListChanged(dom::MutationEvent_Binding::ADDITION);
 }
 
 void
 nsMathMLContainerFrame::InsertFrames(ChildListID     aListID,
                                      nsIFrame*       aPrevFrame,
                                      nsFrameList&    aFrameList)
 {
   MOZ_ASSERT(aListID == kPrincipalList);
   mFrames.InsertFrames(this, aPrevFrame, aFrameList);
-  ChildListChanged(dom::MutationEventBinding::ADDITION);
+  ChildListChanged(dom::MutationEvent_Binding::ADDITION);
 }
 
 void
 nsMathMLContainerFrame::RemoveFrame(ChildListID     aListID,
                                     nsIFrame*       aOldFrame)
 {
   MOZ_ASSERT(aListID == kPrincipalList);
   mFrames.DestroyFrame(aOldFrame);
-  ChildListChanged(dom::MutationEventBinding::REMOVAL);
+  ChildListChanged(dom::MutationEvent_Binding::REMOVAL);
 }
 
 nsresult
 nsMathMLContainerFrame::AttributeChanged(int32_t         aNameSpaceID,
                                          nsAtom*        aAttribute,
                                          int32_t         aModType)
 {
   // XXX Since they are numerous MathML attributes that affect layout, and
--- a/layout/style/BindingStyleRule.cpp
+++ b/layout/style/BindingStyleRule.cpp
@@ -8,12 +8,12 @@
 #include "mozilla/dom/CSSStyleRuleBinding.h"
 
 namespace mozilla {
 
 /* virtual */ JSObject*
 BindingStyleRule::WrapObject(JSContext* aCx,
 			     JS::Handle<JSObject*> aGivenProto)
 {
-  return dom::CSSStyleRuleBinding::Wrap(aCx, this, aGivenProto);
+  return dom::CSSStyleRule_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace mozilla
--- a/layout/style/CSSFontFeatureValuesRule.cpp
+++ b/layout/style/CSSFontFeatureValuesRule.cpp
@@ -18,13 +18,13 @@ CSSFontFeatureValuesRule::IsCCLeaf() con
 {
   return Rule::IsCCLeaf();
 }
 
 /* virtual */ JSObject*
 CSSFontFeatureValuesRule::WrapObject(JSContext* aCx,
                                        JS::Handle<JSObject*> aGivenProto)
 {
-  return CSSFontFeatureValuesRuleBinding::Wrap(aCx, this, aGivenProto);
+  return CSSFontFeatureValuesRule_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/layout/style/CSSFontFeatureValuesRule.h
+++ b/layout/style/CSSFontFeatureValuesRule.h
@@ -15,17 +15,17 @@ namespace mozilla {
 namespace dom {
 
 class CSSFontFeatureValuesRule : public css::Rule
 {
 public:
   virtual bool IsCCLeaf() const override;
 
   // WebIDL interfaces
-  uint16_t Type() const final { return CSSRuleBinding::FONT_FEATURE_VALUES_RULE; }
+  uint16_t Type() const final { return CSSRule_Binding::FONT_FEATURE_VALUES_RULE; }
   virtual void GetCssText(nsAString& aCssText) const override = 0;
   virtual void GetFontFamily(nsAString& aFamily) = 0;
   virtual void SetFontFamily(const nsAString& aFamily, mozilla::ErrorResult& aRv) = 0;
   virtual void GetValueText(nsAString& aValueText) = 0;
   virtual void SetValueText(const nsAString& aValueText, mozilla::ErrorResult& aRv) = 0;
 
   virtual size_t
   SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const override = 0;
--- a/layout/style/CSSImportRule.cpp
+++ b/layout/style/CSSImportRule.cpp
@@ -18,13 +18,13 @@ CSSImportRule::IsCCLeaf() const
   // We're not a leaf.
   return false;
 }
 
 /* virtual */ JSObject*
 CSSImportRule::WrapObject(JSContext* aCx,
                           JS::Handle<JSObject*> aGivenProto)
 {
-  return CSSImportRuleBinding::Wrap(aCx, this, aGivenProto);
+  return CSSImportRule_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/layout/style/CSSImportRule.h
+++ b/layout/style/CSSImportRule.h
@@ -20,17 +20,17 @@ protected:
 
 public:
   bool IsCCLeaf() const final;
 
   size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf)
     const override = 0;
 
   // WebIDL interface
-  uint16_t Type() const final { return CSSRuleBinding::IMPORT_RULE; }
+  uint16_t Type() const final { return CSSRule_Binding::IMPORT_RULE; }
   virtual void GetHref(nsAString& aHref) const = 0;
   virtual dom::MediaList* GetMedia() const = 0;
   virtual StyleSheet* GetStyleSheet() const = 0;
 
   JSObject* WrapObject(JSContext* aCx,
                        JS::Handle<JSObject*> aGivenProto) override;
 };
 
--- a/layout/style/CSSKeyframeRule.cpp
+++ b/layout/style/CSSKeyframeRule.cpp
@@ -11,13 +11,13 @@
 
 namespace mozilla {
 namespace dom {
 
 /* virtual */ JSObject*
 CSSKeyframeRule::WrapObject(JSContext* aCx,
                             JS::Handle<JSObject*> aGivenProto)
 {
-  return CSSKeyframeRuleBinding::Wrap(aCx, this, aGivenProto);
+  return CSSKeyframeRule_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/layout/style/CSSKeyframeRule.h
+++ b/layout/style/CSSKeyframeRule.h
@@ -19,17 +19,17 @@ class CSSKeyframeRule : public css::Rule
 protected:
   using css::Rule::Rule;
   virtual ~CSSKeyframeRule() {}
 
 public:
   bool IsCCLeaf() const override { return Rule::IsCCLeaf(); }
 
   // WebIDL interface
-  uint16_t Type() const final { return CSSRuleBinding::KEYFRAME_RULE; }
+  uint16_t Type() const final { return CSSRule_Binding::KEYFRAME_RULE; }
   virtual void GetKeyText(nsAString& aKey) = 0;
   virtual void SetKeyText(const nsAString& aKey) = 0;
   virtual nsICSSDeclaration* Style() = 0;
 
   size_t SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const override = 0;
 
   JSObject* WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) final;
 };
--- a/layout/style/CSSKeyframesRule.cpp
+++ b/layout/style/CSSKeyframesRule.cpp
@@ -10,13 +10,13 @@
 
 namespace mozilla {
 namespace dom {
 
 
 /* virtual */ JSObject*
 CSSKeyframesRule::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return CSSKeyframesRuleBinding::Wrap(aCx, this, aGivenProto);
+  return CSSKeyframesRule_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/layout/style/CSSKeyframesRule.h
+++ b/layout/style/CSSKeyframesRule.h
@@ -19,17 +19,17 @@ protected:
   using css::Rule::Rule;
   virtual ~CSSKeyframesRule() {}
 
 public:
   // Let's not worry for now about sorting out whether we're a leaf or not.
   bool IsCCLeaf() const override { return false; }
 
   // WebIDL interface
-  uint16_t Type() const final { return CSSRuleBinding::KEYFRAMES_RULE; }
+  uint16_t Type() const final { return CSSRule_Binding::KEYFRAMES_RULE; }
   virtual void GetName(nsAString& aName) const = 0;
   virtual void SetName(const nsAString& aName) = 0;
   virtual CSSRuleList* CssRules() = 0;
   virtual void AppendRule(const nsAString& aRule) = 0;
   virtual void DeleteRule(const nsAString& aKey) = 0;
   virtual CSSKeyframeRule* FindRule(const nsAString& aKey) = 0;
 
 
--- a/layout/style/CSSLexer.cpp
+++ b/layout/style/CSSLexer.cpp
@@ -52,17 +52,17 @@ CSSLexer::CSSLexer(const nsAString& aTex
 CSSLexer::~CSSLexer()
 {
 }
 
 bool
 CSSLexer::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto,
                      JS::MutableHandle<JSObject*> aReflector)
 {
-  return CSSLexerBinding::Wrap(aCx, this, aGivenProto, aReflector);
+  return CSSLexer_Binding::Wrap(aCx, this, aGivenProto, aReflector);
 }
 
 uint32_t
 CSSLexer::LineNumber()
 {
   // The scanner uses 1-based line numbers, but our callers expect
   // 0-based.
   return mScanner.GetLineNumber() - 1;
--- a/layout/style/CSSMediaRule.cpp
+++ b/layout/style/CSSMediaRule.cpp
@@ -10,13 +10,13 @@
 #include "mozilla/dom/MediaList.h"
 
 namespace mozilla {
 namespace dom {
 
 /* virtual */ JSObject*
 CSSMediaRule::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return CSSMediaRuleBinding::Wrap(aCx, this, aGivenProto);
+  return CSSMediaRule_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/layout/style/CSSMediaRule.h
+++ b/layout/style/CSSMediaRule.h
@@ -15,17 +15,17 @@ namespace dom {
 class CSSMediaRule : public css::ConditionRule
 {
 protected:
   using ConditionRule::ConditionRule;
   virtual ~CSSMediaRule() {}
 
 public:
   // WebIDL interface
-  uint16_t Type() const override { return CSSRuleBinding::MEDIA_RULE; }
+  uint16_t Type() const override { return CSSRule_Binding::MEDIA_RULE; }
   virtual MediaList* Media() = 0;
 
   JSObject* WrapObject(JSContext* aCx,
                        JS::Handle<JSObject*> aGivenProto) override;
 };
 
 } // namespace dom
 } // namespace mozilla
--- a/layout/style/CSSMozDocumentRule.cpp
+++ b/layout/style/CSSMozDocumentRule.cpp
@@ -12,17 +12,17 @@ namespace mozilla {
 namespace dom {
 
 using namespace mozilla::css;
 
 /* virtual */ JSObject*
 CSSMozDocumentRule::WrapObject(JSContext* aCx,
                                JS::Handle<JSObject*> aGivenProto)
 {
-  return CSSMozDocumentRuleBinding::Wrap(aCx, this, aGivenProto);
+  return CSSMozDocumentRule_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 bool
 CSSMozDocumentRule::Match(nsIDocument* aDoc,
                           nsIURI* aDocURI,
                           const nsACString& aDocURISpec,
                           const nsACString& aPattern,
                           URLMatchingFunction aUrlMatchingFunction)
--- a/layout/style/CSSMozDocumentRule.h
+++ b/layout/style/CSSMozDocumentRule.h
@@ -22,17 +22,17 @@ protected:
 public:
   static bool Match(nsIDocument* aDoc,
                     nsIURI* aDocURI,
                     const nsACString& aDocURISpec,
                     const nsACString& aPattern,
                     css::URLMatchingFunction aUrlMatchingFunction);
 
   // WebIDL interface
-  uint16_t Type() const final { return CSSRuleBinding::DOCUMENT_RULE; }
+  uint16_t Type() const final { return CSSRule_Binding::DOCUMENT_RULE; }
 
   JSObject* WrapObject(JSContext* aCx,
                        JS::Handle<JSObject*> aGivenProto) override;
 };
 
 } // namespace dom
 } // namespace mozilla
 
--- a/layout/style/CSSNamespaceRule.h
+++ b/layout/style/CSSNamespaceRule.h
@@ -24,28 +24,28 @@ public:
   bool IsCCLeaf() const final {
     return Rule::IsCCLeaf();
   }
 
   virtual nsAtom* GetPrefix() const = 0;
   virtual void GetURLSpec(nsString& aURLSpec) const = 0;
 
   // WebIDL interfaces
-  uint16_t Type() const final { return CSSRuleBinding::NAMESPACE_RULE; }
+  uint16_t Type() const final { return CSSRule_Binding::NAMESPACE_RULE; }
   void GetNamespaceURI(nsString& aNamespaceURI) {
     GetURLSpec(aNamespaceURI);
   }
   void GetPrefix(DOMString& aPrefix) {
     aPrefix.SetKnownLiveAtom(GetPrefix(), DOMString::eTreatNullAsEmpty);
   }
 
   size_t SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const override = 0;
 
   JSObject* WrapObject(JSContext* aCx,
                        JS::Handle<JSObject*> aGivenProto) final {
-    return CSSNamespaceRuleBinding::Wrap(aCx, this, aGivenProto);
+    return CSSNamespaceRule_Binding::Wrap(aCx, this, aGivenProto);
   }
 };
 
 } // namespace dom
 } // namespace mozilla
 
 #endif // mozilla_dom_CSSNamespaceRule_h
--- a/layout/style/CSSPageRule.cpp
+++ b/layout/style/CSSPageRule.cpp
@@ -9,13 +9,13 @@
 #include "mozilla/dom/CSSPageRuleBinding.h"
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 CSSPageRule::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return CSSPageRuleBinding::Wrap(aCx, this, aGivenProto);
+  return CSSPageRule_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/layout/style/CSSPageRule.h
+++ b/layout/style/CSSPageRule.h
@@ -19,17 +19,17 @@ class CSSPageRule : public css::Rule
 protected:
   using Rule::Rule;
   virtual ~CSSPageRule() {};
 
 public:
   virtual bool IsCCLeaf() const override = 0;
 
   // WebIDL interfaces
-  uint16_t Type() const final { return CSSRuleBinding::PAGE_RULE; }
+  uint16_t Type() const final { return CSSRule_Binding::PAGE_RULE; }
   virtual void GetCssText(nsAString& aCssText) const override = 0;
   virtual nsICSSDeclaration* Style() = 0;
 
   virtual size_t
   SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const override = 0;
 
   JSObject*
   WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override;
--- a/layout/style/CSSRuleList.cpp
+++ b/layout/style/CSSRuleList.cpp
@@ -20,13 +20,13 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
 NS_INTERFACE_MAP_END
 
 NS_IMPL_CYCLE_COLLECTING_ADDREF(CSSRuleList)
 NS_IMPL_CYCLE_COLLECTING_RELEASE(CSSRuleList)
 
 /* virtual */ JSObject*
 CSSRuleList::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return CSSRuleListBinding::Wrap(aCx, this, aGivenProto);
+  return CSSRuleList_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/layout/style/CSSSupportsRule.cpp
+++ b/layout/style/CSSSupportsRule.cpp
@@ -12,13 +12,13 @@ using namespace mozilla::css;
 
 namespace mozilla {
 namespace dom {
 
 /* virtual */ JSObject*
 CSSSupportsRule::WrapObject(JSContext* aCx,
                             JS::Handle<JSObject*> aGivenProto)
 {
-  return CSSSupportsRuleBinding::Wrap(aCx, this, aGivenProto);
+  return CSSSupportsRule_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
--- a/layout/style/CSSSupportsRule.h
+++ b/layout/style/CSSSupportsRule.h
@@ -15,17 +15,17 @@ namespace dom {
 class CSSSupportsRule : public css::ConditionRule
 {
 protected:
   using ConditionRule::ConditionRule;
   virtual ~CSSSupportsRule() {}
 
 public:
   // WebIDL interface
-  uint16_t Type() const override { return CSSRuleBinding::SUPPORTS_RULE; }
+  uint16_t Type() const override { return CSSRule_Binding::SUPPORTS_RULE; }
 
   JSObject* WrapObject(JSContext* aCx,
                        JS::Handle<JSObject*> aGivenProto) override;
 };
 
 } // namespace dom
 } // namespace mozilla
 
--- a/layout/style/FontFace.cpp
+++ b/layout/style/FontFace.cpp
@@ -125,17 +125,17 @@ FontFace::~FontFace()
   if (mSourceBuffer) {
     free(mSourceBuffer);
   }
 }
 
 JSObject*
 FontFace::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return FontFaceBinding::Wrap(aCx, this, aGivenProto);
+  return FontFace_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 static FontFaceLoadStatus
 LoadStateToStatus(gfxUserFontEntry::UserFontLoadState aLoadState)
 {
   switch (aLoadState) {
     case gfxUserFontEntry::UserFontLoadState::STATUS_NOT_LOADED:
       return FontFaceLoadStatus::Unloaded;
--- a/layout/style/FontFaceSet.cpp
+++ b/layout/style/FontFaceSet.cpp
@@ -171,17 +171,17 @@ FontFaceSet::~FontFaceSet()
   for (auto it = mLoaders.Iter(); !it.Done(); it.Next()) {
     it.Get()->GetKey()->Cancel();
   }
 }
 
 JSObject*
 FontFaceSet::WrapObject(JSContext* aContext, JS::Handle<JSObject*> aGivenProto)
 {
-  return FontFaceSetBinding::Wrap(aContext, this, aGivenProto);
+  return FontFaceSet_Binding::Wrap(aContext, this, aGivenProto);
 }
 
 void
 FontFaceSet::Disconnect()
 {
   RemoveDOMContentLoadedListener();
 
   if (mDocument && mDocument->CSSLoader()) {
--- a/layout/style/FontFaceSetIterator.cpp
+++ b/layout/style/FontFaceSetIterator.cpp
@@ -28,17 +28,17 @@ FontFaceSetIterator::~FontFaceSetIterato
   MOZ_COUNT_DTOR(FontFaceSetIterator);
 }
 
 bool
 FontFaceSetIterator::WrapObject(JSContext* aCx,
                                 JS::Handle<JSObject*> aGivenProto,
                                 JS::MutableHandle<JSObject*> aReflector)
 {
-  return FontFaceSetIteratorBinding::Wrap(aCx, this, aGivenProto, aReflector);
+  return FontFaceSetIterator_Binding::Wrap(aCx, this, aGivenProto, aReflector);
 }
 
 void
 FontFaceSetIterator::Next(JSContext* aCx, FontFaceSetIteratorResult& aResult,
                           ErrorResult& aRv)
 {
   if (!mFontFaceSet) {
     aResult.mDone = true;
--- a/layout/style/MediaList.cpp
+++ b/layout/style/MediaList.cpp
@@ -25,17 +25,17 @@ NS_INTERFACE_MAP_END
 NS_IMPL_CYCLE_COLLECTING_ADDREF(MediaList)
 NS_IMPL_CYCLE_COLLECTING_RELEASE(MediaList)
 
 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE_0(MediaList)
 
 JSObject*
 MediaList::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return MediaListBinding::Wrap(aCx, this, aGivenProto);
+  return MediaList_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 MediaList::SetStyleSheet(StyleSheet* aSheet)
 {
   MOZ_ASSERT(aSheet == mStyleSheet || !aSheet || !mStyleSheet,
              "Multiple style sheets competing for one media list");
   mStyleSheet = aSheet;
--- a/layout/style/MediaQueryList.cpp
+++ b/layout/style/MediaQueryList.cpp
@@ -161,17 +161,17 @@ nsISupports*
 MediaQueryList::GetParentObject() const
 {
   return mDocument;
 }
 
 JSObject*
 MediaQueryList::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return MediaQueryListBinding::Wrap(aCx, this, aGivenProto);
+  return MediaQueryList_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 MediaQueryList::MaybeNotify()
 {
   mMatchesValid = false;
 
   if (!HasListeners()) {
--- a/layout/style/Rule.h
+++ b/layout/style/Rule.h
@@ -72,21 +72,21 @@ public:
   virtual void SetStyleSheet(StyleSheet* aSheet);
 
   // We don't reference count this up reference. The rule will tell us
   // when it's going away or when we're detached from it.
   void SetParentRule(Rule* aRule) {
 #ifdef DEBUG
     if (aRule) {
       int16_t type = aRule->Type();
-      MOZ_ASSERT(type == dom::CSSRuleBinding::MEDIA_RULE ||
-                 type == dom::CSSRuleBinding::DOCUMENT_RULE ||
-                 type == dom::CSSRuleBinding::SUPPORTS_RULE ||
-                 (type == dom::CSSRuleBinding::KEYFRAMES_RULE &&
-                  Type() == dom::CSSRuleBinding::KEYFRAME_RULE));
+      MOZ_ASSERT(type == dom::CSSRule_Binding::MEDIA_RULE ||
+                 type == dom::CSSRule_Binding::DOCUMENT_RULE ||
+                 type == dom::CSSRule_Binding::SUPPORTS_RULE ||
+                 (type == dom::CSSRule_Binding::KEYFRAMES_RULE &&
+                  Type() == dom::CSSRule_Binding::KEYFRAME_RULE));
     }
 #endif
     mParentRule = aRule;
   }
 
   uint32_t GetLineNumber() const { return mLineNumber; }
   uint32_t GetColumnNumber() const { return mColumnNumber; }
 
--- a/layout/style/ServoCSSRuleList.cpp
+++ b/layout/style/ServoCSSRuleList.cpp
@@ -78,17 +78,17 @@ ServoCSSRuleList::SetStyleSheet(StyleShe
 css::Rule*
 ServoCSSRuleList::GetRule(uint32_t aIndex)
 {
   uintptr_t rule = mRules[aIndex];
   if (rule <= kMaxRuleType) {
     RefPtr<css::Rule> ruleObj = nullptr;
     switch (rule) {
 #define CASE_RULE(const_, name_)                                            \
-      case CSSRuleBinding::const_##_RULE: {                                 \
+      case CSSRule_Binding::const_##_RULE: {                                 \
         uint32_t line = 0, column = 0;                                      \
         RefPtr<RawServo##name_##Rule> rule =                                \
           Servo_CssRules_Get##name_##RuleAt(                                \
               mRawRules, aIndex, &line, &column                             \
           ).Consume();                                                      \
         MOZ_ASSERT(rule);                                                   \
         ruleObj = new Servo##name_##Rule(rule.forget(), line, column);      \
         break;                                                              \
@@ -100,17 +100,17 @@ ServoCSSRuleList::GetRule(uint32_t aInde
       CASE_RULE(PAGE, Page)
       CASE_RULE(SUPPORTS, Supports)
       CASE_RULE(DOCUMENT, Document)
       CASE_RULE(IMPORT, Import)
       CASE_RULE(FONT_FEATURE_VALUES, FontFeatureValues)
       CASE_RULE(FONT_FACE, FontFace)
       CASE_RULE(COUNTER_STYLE, CounterStyle)
 #undef CASE_RULE
-      case CSSRuleBinding::KEYFRAME_RULE:
+      case CSSRule_Binding::KEYFRAME_RULE:
         MOZ_ASSERT_UNREACHABLE("keyframe rule cannot be here");
         return nullptr;
       default:
         NS_WARNING("stylo: not implemented yet");
         return nullptr;
     }
     ruleObj->SetStyleSheet(mStyleSheet);
     ruleObj->SetParentRule(mParentRule);
--- a/layout/style/ServoCounterStyleRule.cpp
+++ b/layout/style/ServoCounterStyleRule.cpp
@@ -30,17 +30,17 @@ ServoCounterStyleRule::List(FILE* out, i
   Servo_CounterStyleRule_Debug(mRawRule, &str);
   fprintf_stderr(out, "%s\n", str.get());
 }
 #endif
 
 uint16_t
 ServoCounterStyleRule::Type() const
 {
-  return CSSRuleBinding::COUNTER_STYLE_RULE;
+  return CSSRule_Binding::COUNTER_STYLE_RULE;
 }
 
 void
 ServoCounterStyleRule::GetCssText(nsAString& aCssText) const
 {
   Servo_CounterStyleRule_GetCssText(mRawRule, &aCssText);
 }
 
@@ -91,12 +91,12 @@ ServoCounterStyleRule::SizeOfIncludingTh
 {
   return aMallocSizeOf(this);
 }
 
 /* virtual */ JSObject*
 ServoCounterStyleRule::WrapObject(JSContext* aCx,
                                   JS::Handle<JSObject*> aGivenProto)
 {
-  return CSSCounterStyleRuleBinding::Wrap(aCx, this, aGivenProto);
+  return CSSCounterStyleRule_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace mozilla
--- a/layout/style/ServoFontFaceRule.cpp
+++ b/layout/style/ServoFontFaceRule.cpp
@@ -133,17 +133,17 @@ nsINode*
 ServoFontFaceRuleDecl::GetParentObject()
 {
   return ContainingRule()->GetParentObject();
 }
 
 JSObject*
 ServoFontFaceRuleDecl::WrapObject(JSContext *cx, JS::Handle<JSObject*> aGivenProto)
 {
-  return CSSStyleDeclarationBinding::Wrap(cx, this, aGivenProto);
+  return CSSStyleDeclaration_Binding::Wrap(cx, this, aGivenProto);
 }
 
 // -------------------------------------------
 // ServoFontFaceRule
 //
 
 NS_IMPL_CYCLE_COLLECTION_CLASS(ServoFontFaceRule)
 
@@ -195,17 +195,17 @@ ServoFontFaceRule::List(FILE* out, int32
   Servo_FontFaceRule_Debug(Raw(), &str);
   fprintf_stderr(out, "%s\n", str.get());
 }
 #endif
 
 uint16_t
 ServoFontFaceRule::Type() const
 {
-  return CSSRuleBinding::FONT_FACE_RULE;
+  return CSSRule_Binding::FONT_FACE_RULE;
 }
 
 void
 ServoFontFaceRule::GetCssText(nsAString& aCssText) const
 {
   aCssText.Truncate();
   Servo_FontFaceRule_GetCssText(Raw(), &aCssText);
 }
@@ -221,10 +221,10 @@ ServoFontFaceRule::SizeOfIncludingThis(M
 {
   return aMallocSizeOf(this);
 }
 
 /* virtual */ JSObject*
 ServoFontFaceRule::WrapObject(JSContext* aCx,
                               JS::Handle<JSObject*> aGivenProto)
 {
-  return CSSFontFaceRuleBinding::Wrap(aCx, this, aGivenProto);
+  return CSSFontFaceRule_Binding::Wrap(aCx, this, aGivenProto);
 }
--- a/layout/style/ServoStyleRule.h
+++ b/layout/style/ServoStyleRule.h
@@ -74,17 +74,17 @@ public:
                           uint64_t* aSpecificity) override;
   nsresult SelectorMatchesElement(dom::Element* aElement,
                                   uint32_t aSelectorIndex,
                                   const nsAString& aPseudo,
                                   bool* aMatches) override;
   NotNull<DeclarationBlock*> GetDeclarationBlock() const override;
 
   // WebIDL interface
-  uint16_t Type() const final { return dom::CSSRuleBinding::STYLE_RULE; }
+  uint16_t Type() const final { return dom::CSSRule_Binding::STYLE_RULE; }
   void GetCssText(nsAString& aCssText) const final;
   void GetSelectorText(nsAString& aSelectorText) final;
   void SetSelectorText(const nsAString& aSelectorText) final;
   nsICSSDeclaration* Style() final;
 
   RawServoStyleRule* Raw() const { return mRawRule; }
 
   // Methods of mozilla::css::Rule
--- a/layout/style/StyleSheet.cpp
+++ b/layout/style/StyleSheet.cpp
@@ -911,23 +911,23 @@ StyleSheet::Media()
   return mMedia;
 }
 
 // nsWrapperCache
 
 JSObject*
 StyleSheet::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return dom::CSSStyleSheetBinding::Wrap(aCx, this, aGivenProto);
+  return dom::CSSStyleSheet_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 /* static */ bool
 StyleSheet::RuleHasPendingChildSheet(css::Rule* aRule)
 {
-  MOZ_ASSERT(aRule->Type() == dom::CSSRuleBinding::IMPORT_RULE);
+  MOZ_ASSERT(aRule->Type() == dom::CSSRule_Binding::IMPORT_RULE);
   auto rule = static_cast<dom::CSSImportRule*>(aRule);
   if (StyleSheet* childSheet = rule->GetStyleSheet()) {
     return !childSheet->IsComplete();
   }
   return false;
 }
 
 void
@@ -1146,17 +1146,17 @@ StyleSheet::ReparseSheet(const nsAString
   {
     ServoCSSRuleList* ruleList = GetCssRulesInternal();
     MOZ_ASSERT(ruleList);
 
     uint32_t ruleCount = ruleList->Length();
     for (uint32_t i = 0; i < ruleCount; ++i) {
       css::Rule* rule = ruleList->GetRule(i);
       MOZ_ASSERT(rule);
-      if (rule->Type() == dom::CSSRuleBinding::IMPORT_RULE &&
+      if (rule->Type() == dom::CSSRule_Binding::IMPORT_RULE &&
           RuleHasPendingChildSheet(rule)) {
         continue; // notify when loaded (see StyleSheetLoaded)
       }
       RuleRemoved(*rule);
     }
   }
 
   DropRuleList();
@@ -1172,17 +1172,17 @@ StyleSheet::ReparseSheet(const nsAString
     // Get the rule list (which will need to be regenerated after ParseSheet).
     ServoCSSRuleList* ruleList = GetCssRulesInternal();
     MOZ_ASSERT(ruleList);
 
     uint32_t ruleCount = ruleList->Length();
     for (uint32_t i = 0; i < ruleCount; ++i) {
       css::Rule* rule = ruleList->GetRule(i);
       MOZ_ASSERT(rule);
-      if (rule->Type() == CSSRuleBinding::IMPORT_RULE &&
+      if (rule->Type() == CSSRule_Binding::IMPORT_RULE &&
           RuleHasPendingChildSheet(rule)) {
         continue; // notify when loaded (see StyleSheetLoaded)
       }
 
       RuleAdded(*rule);
     }
   }
 
@@ -1260,17 +1260,17 @@ StyleSheet::InsertRuleInternal(const nsA
   aRv = mRuleList->InsertRule(aRule, aIndex);
   if (aRv.Failed()) {
     return 0;
   }
 
   // XXX We may not want to get the rule when stylesheet change event
   // is not enabled.
   css::Rule* rule = mRuleList->GetRule(aIndex);
-  if (rule->Type() != CSSRuleBinding::IMPORT_RULE ||
+  if (rule->Type() != CSSRule_Binding::IMPORT_RULE ||
       !RuleHasPendingChildSheet(rule)) {
     RuleAdded(*rule);
   }
 
   return aIndex;
 }
 
 void
--- a/layout/style/nsAnimationManager.cpp
+++ b/layout/style/nsAnimationManager.cpp
@@ -42,17 +42,17 @@ using mozilla::dom::CSSAnimation;
 
 typedef mozilla::ComputedTiming::AnimationPhase AnimationPhase;
 
 ////////////////////////// CSSAnimation ////////////////////////////
 
 JSObject*
 CSSAnimation::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return dom::CSSAnimationBinding::Wrap(aCx, this, aGivenProto);
+  return dom::CSSAnimation_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 mozilla::dom::Promise*
 CSSAnimation::GetReady(ErrorResult& aRv)
 {
   FlushUnanimatedStyle();
   return Animation::GetReady(aRv);
 }
--- a/layout/style/nsDOMCSSAttrDeclaration.cpp
+++ b/layout/style/nsDOMCSSAttrDeclaration.cpp
@@ -111,17 +111,17 @@ nsDOMCSSAttributeDeclaration::GetCSSDecl
   // BeginUpdate(), but this is a good chokepoint where we know we
   // plan to modify the CSSDeclaration, so need to notify
   // AttributeWillChange if this is inline style.
   if (!mIsSMILOverride &&
       ((aOperation == eOperation_Modify) ||
        (aOperation == eOperation_RemoveProperty && declaration))) {
     nsNodeUtils::AttributeWillChange(mElement, kNameSpaceID_None,
                                      nsGkAtoms::style,
-                                     dom::MutationEventBinding::MODIFICATION,
+                                     dom::MutationEvent_Binding::MODIFICATION,
                                      nullptr);
   }
 
   if (declaration) {
     if (aOperation != eOperation_Read &&
         nsContentUtils::HasMutationListeners(
           mElement, NS_EVENT_BITS_MUTATION_ATTRMODIFIED, mElement)) {
       // If there is any mutation listener on the element, we need to
--- a/layout/style/nsDOMCSSDeclaration.cpp
+++ b/layout/style/nsDOMCSSDeclaration.cpp
@@ -23,17 +23,17 @@
 
 using namespace mozilla;
 
 nsDOMCSSDeclaration::~nsDOMCSSDeclaration() = default;
 
 /* virtual */ JSObject*
 nsDOMCSSDeclaration::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return dom::CSS2PropertiesBinding::Wrap(aCx, this, aGivenProto);
+  return dom::CSS2Properties_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 NS_IMPL_QUERY_INTERFACE(nsDOMCSSDeclaration,
                         nsICSSDeclaration)
 
 nsresult
 nsDOMCSSDeclaration::GetPropertyValue(const nsCSSPropertyID aPropID,
                                       nsAString& aValue)
--- a/layout/style/nsTransitionManager.cpp
+++ b/layout/style/nsTransitionManager.cpp
@@ -125,17 +125,17 @@ ElementPropertyTransition::UpdateStartVa
   mReplacedTransition.reset();
 }
 
 ////////////////////////// CSSTransition ////////////////////////////
 
 JSObject*
 CSSTransition::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return dom::CSSTransitionBinding::Wrap(aCx, this, aGivenProto);
+  return dom::CSSTransition_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 CSSTransition::GetTransitionProperty(nsString& aRetVal) const
 {
   MOZ_ASSERT(eCSSProperty_UNKNOWN != mTransitionProperty,
              "Transition Property should be initialized");
   aRetVal =
--- a/layout/svg/SVGFEImageFrame.cpp
+++ b/layout/svg/SVGFEImageFrame.cpp
@@ -127,17 +127,17 @@ SVGFEImageFrame::AttributeChanged(int32_
     MOZ_ASSERT(GetParent()->IsSVGFilterFrame(),
                "Observers observe the filter, so that's what we must invalidate");
     SVGObserverUtils::InvalidateDirectRenderingObservers(GetParent());
   }
 
   // Currently our SMIL implementation does not modify the DOM attributes. Once
   // we implement the SVG 2 SMIL behaviour this can be removed
   // SVGFEImageElement::AfterSetAttr's implementation will be sufficient.
-  if (aModType == MutationEventBinding::SMIL &&
+  if (aModType == MutationEvent_Binding::SMIL &&
       aAttribute == nsGkAtoms::href &&
       (aNameSpaceID == kNameSpaceID_XLink ||
        aNameSpaceID == kNameSpaceID_None)) {
     bool hrefIsSet =
       element->mStringAttributes[SVGFEImageElement::HREF].IsExplicitlySet() ||
       element->mStringAttributes[SVGFEImageElement::XLINK_HREF]
         .IsExplicitlySet();
     if (hrefIsSet) {
--- a/layout/svg/SVGTextFrame.cpp
+++ b/layout/svg/SVGTextFrame.cpp
@@ -48,17 +48,17 @@
 #include "nsFrameSelection.h"
 #include "nsStyleStructInlines.h"
 #include <algorithm>
 #include <cmath>
 #include <limits>
 
 using namespace mozilla;
 using namespace mozilla::dom;
-using namespace mozilla::dom::SVGTextContentElementBinding;
+using namespace mozilla::dom::SVGTextContentElement_Binding;
 using namespace mozilla::gfx;
 using namespace mozilla::image;
 
 // ============================================================================
 // Utility functions
 
 /**
  * Using the specified gfxSkipCharsIterator, converts an offset and length
--- a/layout/svg/nsSVGAFrame.cpp
+++ b/layout/svg/nsSVGAFrame.cpp
@@ -86,17 +86,17 @@ nsSVGAFrame::AttributeChanged(int32_t   
     // return nsChangeHint_UpdateOverflow for "transform" attribute changes
     // and cause DoApplyRenderingChangeToTree to make the SchedulePaint call.
     NotifySVGChanged(TRANSFORM_CHANGED);
   }
 
   // Currently our SMIL implementation does not modify the DOM attributes. Once
   // we implement the SVG 2 SMIL behaviour this can be removed
   // SVGAElement::SetAttr/UnsetAttr's ResetLinkState() call will be sufficient.
-  if (aModType == dom::MutationEventBinding::SMIL &&
+  if (aModType == dom::MutationEvent_Binding::SMIL &&
       aAttribute == nsGkAtoms::href &&
       (aNameSpaceID == kNameSpaceID_None ||
        aNameSpaceID == kNameSpaceID_XLink)) {
 
     dom::SVGAElement* content = static_cast<dom::SVGAElement*>(GetContent());
 
     // SMIL may change whether an <a> element is a link, in which case we will
     // need to update the link state.
--- a/layout/svg/nsSVGFilterInstance.cpp
+++ b/layout/svg/nsSVGFilterInstance.cpp
@@ -20,17 +20,17 @@
 #include "nsSVGFilterFrame.h"
 #include "nsSVGUtils.h"
 #include "SVGContentUtils.h"
 #include "FilterSupport.h"
 #include "gfx2DGlue.h"
 
 using namespace mozilla;
 using namespace mozilla::dom;
-using namespace mozilla::dom::SVGUnitTypesBinding;
+using namespace mozilla::dom::SVGUnitTypes_Binding;
 using namespace mozilla::gfx;
 
 nsSVGFilterInstance::nsSVGFilterInstance(const nsStyleFilter& aFilter,
                                          nsIFrame* aTargetFrame,
                                          nsIContent* aTargetContent,
                                          const UserSpaceMetrics& aMetrics,
                                          const gfxRect& aTargetBBox,
                                          const gfxSize& aUserSpaceToFilterSpaceScale) :
@@ -159,17 +159,17 @@ nsSVGFilterInstance::GetFilterFrame(nsIF
   return static_cast<nsSVGFilterFrame*>(frame);
 }
 
 float
 nsSVGFilterInstance::GetPrimitiveNumber(uint8_t aCtxType, float aValue) const
 {
   nsSVGLength2 val;
   val.Init(aCtxType, 0xff, aValue,
-           SVGLengthBinding::SVG_LENGTHTYPE_NUMBER);
+           SVGLength_Binding::SVG_LENGTHTYPE_NUMBER);
 
   float value;
   if (mPrimitiveUnits == SVG_UNIT_TYPE_OBJECTBOUNDINGBOX) {
     value = nsSVGUtils::ObjectSpace(mTargetBBox, &val);
   } else {
     value = nsSVGUtils::UserSpace(mMetrics, &val);
   }
 
@@ -186,24 +186,24 @@ nsSVGFilterInstance::GetPrimitiveNumber(
   }
 }
 
 Point3D
 nsSVGFilterInstance::ConvertLocation(const Point3D& aPoint) const
 {
   nsSVGLength2 val[4];
   val[0].Init(SVGContentUtils::X, 0xff, aPoint.x,
-              SVGLengthBinding::SVG_LENGTHTYPE_NUMBER);
+              SVGLength_Binding::SVG_LENGTHTYPE_NUMBER);
   val[1].Init(SVGContentUtils::Y, 0xff, aPoint.y,
-              SVGLengthBinding::SVG_LENGTHTYPE_NUMBER);
+              SVGLength_Binding::SVG_LENGTHTYPE_NUMBER);
   // Dummy width/height values
   val[2].Init(SVGContentUtils::X, 0xff, 0,
-              SVGLengthBinding::SVG_LENGTHTYPE_NUMBER);
+              SVGLength_Binding::SVG_LENGTHTYPE_NUMBER);
   val[3].Init(SVGContentUtils::Y, 0xff, 0,
-              SVGLengthBinding::SVG_LENGTHTYPE_NUMBER);
+              SVGLength_Binding::SVG_LENGTHTYPE_NUMBER);
 
   gfxRect feArea = nsSVGUtils::GetRelativeRect(mPrimitiveUnits,
     val, mTargetBBox, mMetrics);
   gfxRect r = UserSpaceToFilterSpace(feArea);
   return Point3D(r.x, r.y, GetPrimitiveNumber(SVGContentUtils::XY, aPoint.z));
 }
 
 gfxRect
--- a/layout/svg/nsSVGGradientFrame.cpp
+++ b/layout/svg/nsSVGGradientFrame.cpp
@@ -18,18 +18,18 @@
 #include "nsContentUtils.h"
 #include "SVGObserverUtils.h"
 #include "nsSVGAnimatedTransformList.h"
 
 // XXX Tight coupling with content classes ahead!
 
 using namespace mozilla;
 using namespace mozilla::dom;
-using namespace mozilla::dom::SVGGradientElementBinding;
-using namespace mozilla::dom::SVGUnitTypesBinding;
+using namespace mozilla::dom::SVGGradientElement_Binding;
+using namespace mozilla::dom::SVGUnitTypes_Binding;
 using namespace mozilla::gfx;
 
 //----------------------------------------------------------------------
 // Implementation
 
 nsSVGGradientFrame::nsSVGGradientFrame(ComputedStyle* aStyle,
                                        ClassID aID)
   : nsSVGPaintServerFrame(aStyle, aID)
--- a/layout/svg/nsSVGImageFrame.cpp
+++ b/layout/svg/nsSVGImageFrame.cpp
@@ -142,17 +142,17 @@ nsSVGImageFrame::AttributeChanged(int32_
       InvalidateFrame();
       return NS_OK;
     }
   }
 
   // Currently our SMIL implementation does not modify the DOM attributes. Once
   // we implement the SVG 2 SMIL behaviour this can be removed
   // SVGImageElement::AfterSetAttr's implementation will be sufficient.
-  if (aModType == MutationEventBinding::SMIL &&
+  if (aModType == MutationEvent_Binding::SMIL &&
       aAttribute == nsGkAtoms::href &&
       (aNameSpaceID == kNameSpaceID_XLink ||
        aNameSpaceID == kNameSpaceID_None)) {
     SVGImageElement* element = static_cast<SVGImageElement*>(GetContent());
 
     bool hrefIsSet =
       element->mStringAttributes[SVGImageElement::HREF].IsExplicitlySet() ||
       element->mStringAttributes[SVGImageElement::XLINK_HREF].IsExplicitlySet();
--- a/layout/svg/nsSVGMaskFrame.cpp
+++ b/layout/svg/nsSVGMaskFrame.cpp
@@ -14,17 +14,17 @@
 #include "mozilla/gfx/2D.h"
 #include "mozilla/RefPtr.h"
 #include "SVGObserverUtils.h"
 #include "mozilla/dom/SVGMaskElement.h"
 #include "mozilla/dom/SVGUnitTypesBinding.h"
 
 using namespace mozilla;
 using namespace mozilla::dom;
-using namespace mozilla::dom::SVGUnitTypesBinding;
+using namespace mozilla::dom::SVGUnitTypes_Binding;
 using namespace mozilla::gfx;
 using namespace mozilla::image;
 
 static LuminanceType
 GetLuminanceType(uint8_t aNSMaskType)
 {
   switch (aNSMaskType) {
     case NS_STYLE_MASK_TYPE_LUMINANCE:
--- a/layout/svg/nsSVGPatternFrame.cpp
+++ b/layout/svg/nsSVGPatternFrame.cpp
@@ -24,17 +24,17 @@
 #include "mozilla/dom/SVGPatternElement.h"
 #include "mozilla/dom/SVGUnitTypesBinding.h"
 #include "nsSVGUtils.h"
 #include "nsSVGAnimatedTransformList.h"
 #include "SVGContentUtils.h"
 
 using namespace mozilla;
 using namespace mozilla::dom;
-using namespace mozilla::dom::SVGUnitTypesBinding;
+using namespace mozilla::dom::SVGUnitTypes_Binding;
 using namespace mozilla::gfx;
 using namespace mozilla::image;
 
 //----------------------------------------------------------------------
 // Implementation
 
 nsSVGPatternFrame::nsSVGPatternFrame(ComputedStyle* aStyle)
   : nsSVGPaintServerFrame(aStyle, kClassID)
--- a/layout/svg/nsSVGUtils.cpp
+++ b/layout/svg/nsSVGUtils.cpp
@@ -54,17 +54,17 @@
 #include "mozilla/dom/SVGViewportElement.h"
 #include "nsTextFrame.h"
 #include "SVGContentUtils.h"
 #include "SVGTextFrame.h"
 #include "mozilla/Unused.h"
 
 using namespace mozilla;
 using namespace mozilla::dom;
-using namespace mozilla::dom::SVGUnitTypesBinding;
+using namespace mozilla::dom::SVGUnitTypes_Binding;
 using namespace mozilla::gfx;
 using namespace mozilla::image;
 
 static bool sSVGDisplayListHitTestingEnabled;
 static bool sSVGDisplayListPaintingEnabled;
 static bool sSVGNewGetBBoxEnabled;
 
 bool
--- a/layout/xul/BoxObject.cpp
+++ b/layout/xul/BoxObject.cpp
@@ -467,17 +467,17 @@ Element*
 BoxObject::GetParentObject() const
 {
   return mContent;
 }
 
 JSObject*
 BoxObject::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return BoxObjectBinding::Wrap(aCx, this, aGivenProto);
+  return BoxObject_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 Element*
 BoxObject::GetElement() const
 {
   return mContent;
 }
 
--- a/layout/xul/ListBoxObject.cpp
+++ b/layout/xul/ListBoxObject.cpp
@@ -26,17 +26,17 @@ ListBoxObject::ListBoxObject()
 }
 
 ListBoxObject::~ListBoxObject()
 {
 }
 
 JSObject* ListBoxObject::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return ListBoxObjectBinding::Wrap(aCx, this, aGivenProto);
+  return ListBoxObject_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 // nsIListBoxObject
 NS_IMETHODIMP
 ListBoxObject::GetRowCount(int32_t *aResult)
 {
   *aResult = GetRowCount();
   return NS_OK;
--- a/layout/xul/MenuBoxObject.cpp
+++ b/layout/xul/MenuBoxObject.cpp
@@ -24,17 +24,17 @@ MenuBoxObject::MenuBoxObject()
 }
 
 MenuBoxObject::~MenuBoxObject()
 {
 }
 
 JSObject* MenuBoxObject::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return MenuBoxObjectBinding::Wrap(aCx, this, aGivenProto);
+  return MenuBoxObject_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void MenuBoxObject::OpenMenu(bool aOpenFlag)
 {
   nsXULPopupManager* pm = nsXULPopupManager::GetInstance();
   if (pm) {
     nsIFrame* frame = GetFrame(false);
     if (frame) {
@@ -96,20 +96,20 @@ bool MenuBoxObject::HandleKeyPress(Keybo
 
   nsMenuPopupFrame* popupFrame = menu->GetPopup();
   if (!popupFrame) {
     return false;
   }
 
   uint32_t keyCode = keyEvent.KeyCode();
   switch (keyCode) {
-    case KeyboardEventBinding::DOM_VK_UP:
-    case KeyboardEventBinding::DOM_VK_DOWN:
-    case KeyboardEventBinding::DOM_VK_HOME:
-    case KeyboardEventBinding::DOM_VK_END:
+    case KeyboardEvent_Binding::DOM_VK_UP:
+    case KeyboardEvent_Binding::DOM_VK_DOWN:
+    case KeyboardEvent_Binding::DOM_VK_HOME:
+    case KeyboardEvent_Binding::DOM_VK_END:
     {
       nsNavigationDirection theDirection;
       theDirection = NS_DIRECTION_FROM_KEY_CODE(popupFrame, keyCode);
       return pm->HandleKeyboardNavigationInPopup(popupFrame, theDirection);
     }
     default:
       return pm->HandleShortcutNavigation(&keyEvent, popupFrame);
   }
--- a/layout/xul/ScrollBoxObject.cpp
+++ b/layout/xul/ScrollBoxObject.cpp
@@ -23,17 +23,17 @@ ScrollBoxObject::ScrollBoxObject()
 }
 
 ScrollBoxObject::~ScrollBoxObject()
 {
 }
 
 JSObject* ScrollBoxObject::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return ScrollBoxObjectBinding::Wrap(aCx, this, aGivenProto);
+  return ScrollBoxObject_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsIScrollableFrame* ScrollBoxObject::GetScrollFrame()
 {
   return do_QueryFrame(GetFrame(false));
 }
 
 void ScrollBoxObject::ScrollTo(int32_t x, int32_t y, ErrorResult& aRv)
--- a/layout/xul/nsButtonBoxFrame.cpp
+++ b/layout/xul/nsButtonBoxFrame.cpp
@@ -212,10 +212,10 @@ nsButtonBoxFrame::MouseClicked(WidgetGUI
   // Execute the oncommand event handler.
   WidgetInputEvent* inputEvent = aEvent->AsInputEvent();
   WidgetMouseEventBase* mouseEvent = aEvent->AsMouseEventBase();
   nsContentUtils::DispatchXULCommand(mContent, aEvent->IsTrusted(), nullptr,
                                      shell, inputEvent->IsControl(),
                                      inputEvent->IsAlt(), inputEvent->IsShift(),
                                      inputEvent->IsMeta(),
                                      mouseEvent ? mouseEvent->inputSource
-                                                : MouseEventBinding::MOZ_SOURCE_UNKNOWN);
+                                                : MouseEvent_Binding::MOZ_SOURCE_UNKNOWN);
 }
--- a/layout/xul/nsMenuBarListener.cpp
+++ b/layout/xul/nsMenuBarListener.cpp
@@ -144,36 +144,36 @@ void nsMenuBarListener::InitAccessKey()
     return;
 
   // Compiled-in defaults, in case we can't get LookAndFeel --
   // mac doesn't have menu shortcuts, other platforms use alt.
 #ifdef XP_MACOSX
   mAccessKey = 0;
   mAccessKeyMask = 0;
 #else
-  mAccessKey = dom::KeyboardEventBinding::DOM_VK_ALT;
+  mAccessKey = dom::KeyboardEvent_Binding::DOM_VK_ALT;
   mAccessKeyMask = MODIFIER_ALT;
 #endif
 
   // Get the menu access key value from prefs, overriding the default:
   mAccessKey = Preferences::GetInt("ui.key.menuAccessKey", mAccessKey);
   switch (mAccessKey) {
-  case dom::KeyboardEventBinding::DOM_VK_SHIFT:
+  case dom::KeyboardEvent_Binding::DOM_VK_SHIFT:
     mAccessKeyMask = MODIFIER_SHIFT;
     break;
-  case dom::KeyboardEventBinding::DOM_VK_CONTROL:
+  case dom::KeyboardEvent_Binding::DOM_VK_CONTROL:
     mAccessKeyMask = MODIFIER_CONTROL;
     break;
-  case dom::KeyboardEventBinding::DOM_VK_ALT:
+  case dom::KeyboardEvent_Binding::DOM_VK_ALT:
     mAccessKeyMask = MODIFIER_ALT;
     break;
-  case dom::KeyboardEventBinding::DOM_VK_META:
+  case dom::KeyboardEvent_Binding::DOM_VK_META:
     mAccessKeyMask = MODIFIER_META;
     break;
-  case dom::KeyboardEventBinding::DOM_VK_WIN:
+  case dom::KeyboardEvent_Binding::DOM_VK_WIN:
     mAccessKeyMask = MODIFIER_OS;
     break;
   default:
     // Don't touch mAccessKeyMask.
     break;
   }
 }
 
@@ -430,17 +430,17 @@ nsMenuBarListener::KeyDown(Event* aKeyEv
   RefPtr<KeyboardEvent> keyEvent = aKeyEvent->AsKeyboardEvent();
   if (!keyEvent) {
     return NS_OK;
   }
 
   uint32_t theChar = keyEvent->KeyCode();
 
   uint16_t eventPhase = keyEvent->EventPhase();
-  bool capturing = (eventPhase == dom::EventBinding::CAPTURING_PHASE);
+  bool capturing = (eventPhase == dom::Event_Binding::CAPTURING_PHASE);
 
 #ifndef XP_MACOSX
   if (capturing && !mAccessKeyDown && theChar == NS_VK_F10 &&
       (GetModifiersForAccessKey(keyEvent) & ~MODIFIER_CONTROL) == 0) {
     ReserveKeyIfNeeded(aKeyEvent);
   }
 #endif
 
@@ -524,17 +524,17 @@ nsMenuBarListener::MouseDown(Event* aMou
   // Even if the mousedown event is canceled, it means the user don't want
   // to activate the menu.  Therefore, we need to record it at capturing (or
   // target) phase.
   if (mAccessKeyDown) {
     mAccessKeyDownCanceled = true;
   }
 
   // Don't do anything at capturing phase, any behavior should be cancelable.
-  if (aMouseEvent->EventPhase() == dom::EventBinding::CAPTURING_PHASE) {
+  if (aMouseEvent->EventPhase() == dom::Event_Binding::CAPTURING_PHASE) {
     return NS_OK;
   }
 
   if (!mMenuBarFrame->IsMenuOpen() && mMenuBarFrame->IsActive())
     ToggleMenuActiveState();
 
   return NS_OK; // means I am NOT consuming event
 }
--- a/layout/xul/nsMenuPopupFrame.cpp
+++ b/layout/xul/nsMenuPopupFrame.cpp
@@ -2050,17 +2050,17 @@ nsMenuPopupFrame::FindMenuWithShortcut(K
   nsIContent* parentContent = mContent->GetParent();
 
   bool isMenu = parentContent &&
                   !parentContent->NodeInfo()->Equals(nsGkAtoms::menulist, kNameSpaceID_XUL);
 
   DOMTimeStamp keyTime = aKeyEvent->TimeStamp();
 
   if (charCode == 0) {
-    if (keyCode == dom::KeyboardEventBinding::DOM_VK_BACK_SPACE) {
+    if (keyCode == dom::KeyboardEvent_Binding::DOM_VK_BACK_SPACE) {
       if (!isMenu && !mIncrementalString.IsEmpty()) {
         mIncrementalString.SetLength(mIncrementalString.Length() - 1);
         return nullptr;
       }
       else {
 #ifdef XP_WIN
         nsCOMPtr<nsISound> soundInterface = do_CreateInstance("@mozilla.org/sound;1");
         if (soundInterface)
--- a/layout/xul/nsScrollbarFrame.cpp
+++ b/layout/xul/nsScrollbarFrame.cpp
@@ -278,30 +278,30 @@ nsScrollbarFrame::MoveToNewPosition()
 
   AutoWeakFrame weakFrame(this);
   if (mSmoothScroll) {
     content->SetAttr(kNameSpaceID_None, nsGkAtoms::smooth, NS_LITERAL_STRING("true"), false);
   }
   content->SetAttr(kNameSpaceID_None, nsGkAtoms::curpos, curposStr, false);
   // notify the nsScrollbarFrame of the change
   AttributeChanged(kNameSpaceID_None, nsGkAtoms::curpos,
-                   dom::MutationEventBinding::MODIFICATION);
+                   dom::MutationEvent_Binding::MODIFICATION);
   if (!weakFrame.IsAlive()) {
     return curpos;
   }
   // notify all nsSliderFrames of the change
   nsIFrame::ChildListIterator childLists(this);
   for (; !childLists.IsDone(); childLists.Next()) {
     nsFrameList::Enumerator childFrames(childLists.CurrentList());
     for (; !childFrames.AtEnd(); childFrames.Next()) {
       nsIFrame* f = childFrames.get();
       nsSliderFrame* sliderFrame = do_QueryFrame(f);
       if (sliderFrame) {
         sliderFrame->AttributeChanged(kNameSpaceID_None, nsGkAtoms::curpos,
-                                      dom::MutationEventBinding::MODIFICATION);
+                                      dom::MutationEvent_Binding::MODIFICATION);
         if (!weakFrame.IsAlive()) {
           return curpos;
         }
       }
     }
   }
   content->UnsetAttr(kNameSpaceID_None, nsGkAtoms::smooth, false);
   return curpos;
--- a/layout/xul/nsXULPopupManager.cpp
+++ b/layout/xul/nsXULPopupManager.cpp
@@ -42,44 +42,44 @@
 #include "mozilla/LookAndFeel.h"
 #include "mozilla/MouseEvents.h"
 #include "mozilla/Services.h"
 #include "mozilla/widget/nsAutoRollup.h"
 
 using namespace mozilla;
 using namespace mozilla::dom;
 
-static_assert(KeyboardEventBinding::DOM_VK_HOME  ==
-                KeyboardEventBinding::DOM_VK_END + 1 &&
-              KeyboardEventBinding::DOM_VK_LEFT  ==
-                KeyboardEventBinding::DOM_VK_END + 2 &&
-              KeyboardEventBinding::DOM_VK_UP    ==
-                KeyboardEventBinding::DOM_VK_END + 3 &&
-              KeyboardEventBinding::DOM_VK_RIGHT ==
-                KeyboardEventBinding::DOM_VK_END + 4 &&
-              KeyboardEventBinding::DOM_VK_DOWN  ==
-                KeyboardEventBinding::DOM_VK_END + 5,
+static_assert(KeyboardEvent_Binding::DOM_VK_HOME  ==
+                KeyboardEvent_Binding::DOM_VK_END + 1 &&
+              KeyboardEvent_Binding::DOM_VK_LEFT  ==
+                KeyboardEvent_Binding::DOM_VK_END + 2 &&
+              KeyboardEvent_Binding::DOM_VK_UP    ==
+                KeyboardEvent_Binding::DOM_VK_END + 3 &&
+              KeyboardEvent_Binding::DOM_VK_RIGHT ==
+                KeyboardEvent_Binding::DOM_VK_END + 4 &&
+              KeyboardEvent_Binding::DOM_VK_DOWN  ==
+                KeyboardEvent_Binding::DOM_VK_END + 5,
               "nsXULPopupManager assumes some keyCode values are consecutive");
 
 const nsNavigationDirection DirectionFromKeyCodeTable[2][6] = {
   {
-    eNavigationDirection_Last,   // KeyboardEventBinding::DOM_VK_END
-    eNavigationDirection_First,  // KeyboardEventBinding::DOM_VK_HOME
-    eNavigationDirection_Start,  // KeyboardEventBinding::DOM_VK_LEFT
-    eNavigationDirection_Before, // KeyboardEventBinding::DOM_VK_UP
-    eNavigationDirection_End,    // KeyboardEventBinding::DOM_VK_RIGHT
-    eNavigationDirection_After   // KeyboardEventBinding::DOM_VK_DOWN
+    eNavigationDirection_Last,   // KeyboardEvent_Binding::DOM_VK_END
+    eNavigationDirection_First,  // KeyboardEvent_Binding::DOM_VK_HOME
+    eNavigationDirection_Start,  // KeyboardEvent_Binding::DOM_VK_LEFT
+    eNavigationDirection_Before, // KeyboardEvent_Binding::DOM_VK_UP
+    eNavigationDirection_End,    // KeyboardEvent_Binding::DOM_VK_RIGHT
+    eNavigationDirection_After   // KeyboardEvent_Binding::DOM_VK_DOWN
   },
   {
-    eNavigationDirection_Last,   // KeyboardEventBinding::DOM_VK_END
-    eNavigationDirection_First,  // KeyboardEventBinding::DOM_VK_HOME
-    eNavigationDirection_End,    // KeyboardEventBinding::DOM_VK_LEFT
-    eNavigationDirection_Before, // KeyboardEventBinding::DOM_VK_UP
-    eNavigationDirection_Start,  // KeyboardEventBinding::DOM_VK_RIGHT
-    eNavigationDirection_After   // KeyboardEventBinding::DOM_VK_DOWN
+    eNavigationDirection_Last,   // KeyboardEvent_Binding::DOM_VK_END
+    eNavigationDirection_First,  // KeyboardEvent_Binding::DOM_VK_HOME
+    eNavigationDirection_End,    // KeyboardEvent_Binding::DOM_VK_LEFT
+    eNavigationDirection_Before, // KeyboardEvent_Binding::DOM_VK_UP
+    eNavigationDirection_Start,  // KeyboardEvent_Binding::DOM_VK_RIGHT
+    eNavigationDirection_After   // KeyboardEvent_Binding::DOM_VK_DOWN
   }
 };
 
 nsXULPopupManager* nsXULPopupManager::sInstance = nullptr;
 
 nsIContent* nsMenuChainItem::Content()
 {
   return mFrame->GetContent();
@@ -2157,18 +2157,18 @@ nsXULPopupManager::HandleKeyboardNavigat
   if (item)
     itemFrame = item->Frame();
   else if (mActiveMenuBar)
     itemFrame = mActiveMenuBar;
   else
     return false;
 
   nsNavigationDirection theDirection;
-  NS_ASSERTION(aKeyCode >= KeyboardEventBinding::DOM_VK_END &&
-                 aKeyCode <= KeyboardEventBinding::DOM_VK_DOWN, "Illegal key code");
+  NS_ASSERTION(aKeyCode >= KeyboardEvent_Binding::DOM_VK_END &&
+                 aKeyCode <= KeyboardEvent_Binding::DOM_VK_DOWN, "Illegal key code");
   theDirection = NS_DIRECTION_FROM_KEY_CODE(itemFrame, aKeyCode);
 
   bool selectFirstItem = true;
 #ifdef MOZ_WIDGET_GTK
   nsMenuFrame* currentItem = nullptr;
   if (item && mActiveMenuBar && NS_DIRECTION_IS_INLINE(theDirection)) {
     currentItem = item->Frame()->GetCurrentMenuItem();
     // If nothing is selected in the menu and we have a menubar, let it
@@ -2307,86 +2307,86 @@ nsXULPopupManager::HandleKeyboardEventWi
                         KeyboardEvent* aKeyEvent,
                         nsMenuChainItem* aTopVisibleMenuItem)
 {
   uint32_t keyCode = aKeyEvent->KeyCode();
 
   // Escape should close panels, but the other keys should have no effect.
   if (aTopVisibleMenuItem &&
       aTopVisibleMenuItem->PopupType() != ePopupTypeMenu) {
-    if (keyCode == KeyboardEventBinding::DOM_VK_ESCAPE) {
+    if (keyCode == KeyboardEvent_Binding::DOM_VK_ESCAPE) {
       HidePopup(aTopVisibleMenuItem->Content(), false, false, false, true);
       aKeyEvent->StopPropagation();
       aKeyEvent->StopCrossProcessForwarding();
       aKeyEvent->PreventDefault();
     }
     return true;
   }
 
   bool consume = (aTopVisibleMenuItem || mActiveMenuBar);
   switch (keyCode) {
-    case KeyboardEventBinding::DOM_VK_UP:
-    case KeyboardEventBinding::DOM_VK_DOWN:
+    case KeyboardEvent_Binding::DOM_VK_UP:
+    case KeyboardEvent_Binding::DOM_VK_DOWN:
 #ifndef XP_MACOSX
       // roll up the popup when alt+up/down are pressed within a menulist.
       if (aKeyEvent->AltKey() &&
           aTopVisibleMenuItem &&
           aTopVisibleMenuItem->Frame()->IsMenuList()) {
         Rollup(0, false, nullptr, nullptr);
         break;
       }
       MOZ_FALLTHROUGH;
 #endif
 
-    case KeyboardEventBinding::DOM_VK_LEFT:
-    case KeyboardEventBinding::DOM_VK_RIGHT:
-    case KeyboardEventBinding::DOM_VK_HOME:
-    case KeyboardEventBinding::DOM_VK_END:
+    case KeyboardEvent_Binding::DOM_VK_LEFT:
+    case KeyboardEvent_Binding::DOM_VK_RIGHT:
+    case KeyboardEvent_Binding::DOM_VK_HOME:
+    case KeyboardEvent_Binding::DOM_VK_END:
       HandleKeyboardNavigation(keyCode);
       break;
 
-    case KeyboardEventBinding::DOM_VK_PAGE_DOWN:
-    case KeyboardEventBinding::DOM_VK_PAGE_UP:
+    case KeyboardEvent_Binding::DOM_VK_PAGE_DOWN:
+    case KeyboardEvent_Binding::DOM_VK_PAGE_UP:
       if (aTopVisibleMenuItem) {
         aTopVisibleMenuItem->Frame()->ChangeByPage(
-          keyCode == KeyboardEventBinding::DOM_VK_PAGE_UP);
+          keyCode == KeyboardEvent_Binding::DOM_VK_PAGE_UP);
       }
       break;
 
-    case KeyboardEventBinding::DOM_VK_ESCAPE:
+    case KeyboardEvent_Binding::DOM_VK_ESCAPE:
       // Pressing Escape hides one level of menus only. If no menu is open,
       // check if a menubar is active and inform it that a menu closed. Even
       // though in this latter case, a menu didn't actually close, the effect
       // ends up being the same. Similar for the tab key below.
       if (aTopVisibleMenuItem) {
         HidePopup(aTopVisibleMenuItem->Content(), false, false, false, true);
       } else if (mActiveMenuBar) {
         mActiveMenuBar->MenuClosed();
       }
       break;
 
-    case KeyboardEventBinding::DOM_VK_TAB:
+    case KeyboardEvent_Binding::DOM_VK_TAB:
 #ifndef XP_MACOSX
-    case KeyboardEventBinding::DOM_VK_F10:
+    case KeyboardEvent_Binding::DOM_VK_F10:
 #endif
       if (aTopVisibleMenuItem &&
           !aTopVisibleMenuItem->Frame()->GetContent()->AsElement()->AttrValueIs(
             kNameSpaceID_None, nsGkAtoms::activateontab, nsGkAtoms::_true,
             eCaseMatters)) {
         // close popups or deactivate menubar when Tab or F10 are pressed
         Rollup(0, false, nullptr, nullptr);
         break;
       } else if (mActiveMenuBar) {
         mActiveMenuBar->MenuClosed();
         break;
       }
       // Intentional fall-through to RETURN case
       MOZ_FALLTHROUGH;
 
-    case KeyboardEventBinding::DOM_VK_RETURN: {
+    case KeyboardEvent_Binding::DOM_VK_RETURN: {
       // If there is a popup open, check if the current item needs to be opened.
       // Otherwise, tell the active menubar, if any, to activate the menu. The
       // Enter method will return a menu if one needs to be opened as a result.
       nsMenuFrame* menuToOpen = nullptr;
       WidgetGUIEvent* GUIEvent = aKeyEvent->WidgetEventPtr()->AsGUIEvent();
 
       if (aTopVisibleMenuItem) {
         menuToOpen = aTopVisibleMenuItem->Frame()->Enter(GUIEvent);
@@ -2670,23 +2670,23 @@ nsXULPopupManager::KeyDown(KeyboardEvent
   // If the key just pressed is the access key (usually Alt),
   // dismiss and unfocus the menu.
 
   nsMenuBarListener::GetMenuAccessKey(&menuAccessKey);
   if (menuAccessKey) {
     uint32_t theChar = aKeyEvent->KeyCode();
 
     if (theChar == (uint32_t)menuAccessKey) {
-      bool ctrl = (menuAccessKey != KeyboardEventBinding::DOM_VK_CONTROL &&
+      bool ctrl = (menuAccessKey != KeyboardEvent_Binding::DOM_VK_CONTROL &&
                    aKeyEvent->CtrlKey());
-      bool alt = (menuAccessKey != KeyboardEventBinding::DOM_VK_ALT &&
+      bool alt = (menuAccessKey != KeyboardEvent_Binding::DOM_VK_ALT &&
                   aKeyEvent->AltKey());
-      bool shift = (menuAccessKey != KeyboardEventBinding::DOM_VK_SHIFT &&
+      bool shift = (menuAccessKey != KeyboardEvent_Binding::DOM_VK_SHIFT &&
                     aKeyEvent->ShiftKey());
-      bool meta = (menuAccessKey != KeyboardEventBinding::DOM_VK_META &&
+      bool meta = (menuAccessKey != KeyboardEvent_Binding::DOM_VK_META &&
                    aKeyEvent->MetaKey());
       if (!(ctrl || alt || shift || meta)) {
         // The access key just went down and no other
         // modifiers are already down.
         nsMenuChainItem* item = GetTopVisibleMenu();
         if (item && !item->Frame()->IsMenuList()) {
           Rollup(0, false, nullptr, nullptr);
         } else if (mActiveMenuBar) {
--- a/layout/xul/nsXULPopupManager.h
+++ b/layout/xul/nsXULPopupManager.h
@@ -126,17 +126,17 @@ static_assert(NS_STYLE_DIRECTION_LTR == 
  * DirectionFromKeyCodeTable: two arrays, the first for left-to-right and the
  * other for right-to-left, that map keycodes to values of
  * nsNavigationDirection.
  */
 extern const nsNavigationDirection DirectionFromKeyCodeTable[2][6];
 
 #define NS_DIRECTION_FROM_KEY_CODE(frame, keycode)                                      \
   (DirectionFromKeyCodeTable[frame->StyleVisibility()->mDirection]                      \
-                            [keycode - mozilla::dom::KeyboardEventBinding::DOM_VK_END])
+                            [keycode - mozilla::dom::KeyboardEvent_Binding::DOM_VK_END])
 
 // nsMenuChainItem holds info about an open popup. Items are stored in a
 // doubly linked list. Note that the linked list is stored beginning from
 // the lowest child in a chain of menus, as this is the active submenu.
 class nsMenuChainItem
 {
 private:
   nsMenuPopupFrame* mFrame; // the popup frame
--- a/layout/xul/tree/TreeBoxObject.cpp
+++ b/layout/xul/tree/TreeBoxObject.cpp
@@ -674,17 +674,17 @@ void
 TreeBoxObject::ClearCachedValues()
 {
   mTreeBody = nullptr;
 }
 
 JSObject*
 TreeBoxObject::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return TreeBoxObjectBinding::Wrap(aCx, this, aGivenProto);
+  return TreeBoxObject_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace dom
 } // namespace mozilla
 
 // Creation Routine ///////////////////////////////////////////////////////////////////////
 
 using namespace mozilla::dom;
--- a/layout/xul/tree/nsTreeColumns.cpp
+++ b/layout/xul/tree/nsTreeColumns.cpp
@@ -348,17 +348,17 @@ nsIContent*
 nsTreeColumn::GetParentObject() const
 {
   return mContent;
 }
 
 /* virtual */ JSObject*
 nsTreeColumn::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return dom::TreeColumnBinding::Wrap(aCx, this, aGivenProto);
+  return dom::TreeColumn_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 mozilla::dom::Element*
 nsTreeColumn::GetElement(mozilla::ErrorResult& aRv)
 {
   RefPtr<Element> element;
   aRv = GetElement(getter_AddRefs(element));
   if (aRv.Failed()) {
@@ -414,17 +414,17 @@ nsIContent*
 nsTreeColumns::GetParentObject() const
 {
   return mTree ? mTree->GetBaseElement() : nullptr;
 }
 
 /* virtual */ JSObject*
 nsTreeColumns::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return dom::TreeColumnsBinding::Wrap(aCx, this, aGivenProto);
+  return dom::TreeColumns_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 dom::TreeBoxObject*
 nsTreeColumns::GetTree() const
 {
   return mTree ? static_cast<mozilla::dom::TreeBoxObject*>(mTree->GetTreeBoxObject()) : nullptr;
 }
 
--- a/layout/xul/tree/nsTreeContentView.cpp
+++ b/layout/xul/tree/nsTreeContentView.cpp
@@ -122,17 +122,17 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
   NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsITreeView)
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
 NS_INTERFACE_MAP_END
 
 JSObject*
 nsTreeContentView::WrapObject(JSContext* aCx,
                               JS::Handle<JSObject*> aGivenProto)
 {
-  return TreeContentViewBinding::Wrap(aCx, this, aGivenProto);
+  return TreeContentView_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 nsISupports*
 nsTreeContentView::GetParentObject()
 {
   return mBoxObject;
 }
 
--- a/media/webrtc/signaling/src/peerconnection/PeerConnectionImpl.cpp
+++ b/media/webrtc/signaling/src/peerconnection/PeerConnectionImpl.cpp
@@ -264,17 +264,17 @@ PeerConnectionImpl* PeerConnectionImpl::
   return pc;
 }
 
 bool
 PeerConnectionImpl::WrapObject(JSContext* aCx,
                                JS::Handle<JSObject*> aGivenProto,
                                JS::MutableHandle<JSObject*> aReflector)
 {
-  return PeerConnectionImplBinding::Wrap(aCx, this, aGivenProto, aReflector);
+  return PeerConnectionImpl_Binding::Wrap(aCx, this, aGivenProto, aReflector);
 }
 
 bool PCUuidGenerator::Generate(std::string* idp) {
   nsresult rv;
 
   if(!mGenerator) {
     mGenerator = do_GetService("@mozilla.org/uuid-generator;1", &rv);
     if (NS_FAILED(rv)) {
--- a/media/webrtc/signaling/src/peerconnection/TransceiverImpl.cpp
+++ b/media/webrtc/signaling/src/peerconnection/TransceiverImpl.cpp
@@ -597,17 +597,17 @@ TransceiverImpl::HasReceiveTrack(const d
 
   return mReceiveTrack == aRecvTrack;
 }
 
 bool
 TransceiverImpl::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto,
                             JS::MutableHandle<JSObject*> aReflector)
 {
-  return dom::TransceiverImplBinding::Wrap(aCx, this, aGivenProto, aReflector);
+  return dom::TransceiverImpl_Binding::Wrap(aCx, this, aGivenProto, aReflector);
 }
 
 already_AddRefed<dom::MediaStreamTrack>
 TransceiverImpl::GetReceiveTrack()
 {
   return do_AddRef(mReceiveTrack);
 }
 
--- a/storage/mozStorageAsyncStatementParams.cpp
+++ b/storage/mozStorageAsyncStatementParams.cpp
@@ -35,17 +35,17 @@ AsyncStatementParams::AsyncStatementPara
   mStatement(aStatement)
 {
   NS_ASSERTION(mStatement != nullptr, "mStatement is null");
 }
 
 JSObject*
 AsyncStatementParams::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return dom::MozStorageAsyncStatementParamsBinding::Wrap(aCx, this, aGivenProto);
+  return dom::MozStorageAsyncStatementParams_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 AsyncStatementParams::NamedGetter(JSContext* aCx,
                                   const nsAString& aName,
                                   bool& aFound,
                                   JS::MutableHandle<JS::Value> aResult,
                                   mozilla::ErrorResult& aRv)
--- a/storage/mozStorageStatementParams.cpp
+++ b/storage/mozStorageStatementParams.cpp
@@ -37,17 +37,17 @@ StatementParams::StatementParams(nsPIDOM
 {
   NS_ASSERTION(mStatement != nullptr, "mStatement is null");
   (void)mStatement->GetParameterCount(&mParamCount);
 }
 
 JSObject*
 StatementParams::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return dom::MozStorageStatementParamsBinding::Wrap(aCx, this, aGivenProto);
+  return dom::MozStorageStatementParams_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 StatementParams::NamedGetter(JSContext* aCx,
                              const nsAString& aName,
                              bool& aFound,
                              JS::MutableHandle<JS::Value> aResult,
                              mozilla::ErrorResult& aRv)
--- a/storage/mozStorageStatementRow.cpp
+++ b/storage/mozStorageStatementRow.cpp
@@ -36,17 +36,17 @@ StatementRow::StatementRow(nsPIDOMWindow
 : mWindow(aWindow),
   mStatement(aStatement)
 {
 }
 
 JSObject*
 StatementRow::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return dom::MozStorageStatementRowBinding::Wrap(aCx, this, aGivenProto);
+  return dom::MozStorageStatementRow_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 StatementRow::NamedGetter(JSContext* aCx,
                           const nsAString& aName,
                           bool& aFound,
                           JS::MutableHandle<JS::Value> aResult,
                           mozilla::ErrorResult& aRv)
--- a/toolkit/components/autocomplete/nsAutoCompleteController.cpp
+++ b/toolkit/components/autocomplete/nsAutoCompleteController.cpp
@@ -280,17 +280,17 @@ nsAutoCompleteController::HandleText(boo
   SetSearchStringInternal(newValue);
 
   // Don't search if the value is empty
   if (newValue.Length() == 0) {
     // If autocomplete popup was closed by compositionstart event handler,
     // we should reopen it forcibly even if the value is empty.
     if (popupClosedByCompositionStart && handlingCompositionCommit) {
       bool cancel;
-      HandleKeyNavigation(dom::KeyboardEventBinding::DOM_VK_DOWN, &cancel);
+      HandleKeyNavigation(dom::KeyboardEvent_Binding::DOM_VK_DOWN, &cancel);
       return NS_OK;
     }
     ClosePopup();
     return NS_OK;
   }
 
   *_retval = true;
   StartSearches();
@@ -430,32 +430,32 @@ nsAutoCompleteController::HandleKeyNavig
   nsCOMPtr<nsIAutoCompletePopup> popup;
   input->GetPopup(getter_AddRefs(popup));
   NS_ENSURE_TRUE(popup != nullptr, NS_ERROR_FAILURE);
 
   bool disabled;
   input->GetDisableAutoComplete(&disabled);
   NS_ENSURE_TRUE(!disabled, NS_OK);
 
-  if (aKey == dom::KeyboardEventBinding::DOM_VK_UP ||
-      aKey == dom::KeyboardEventBinding::DOM_VK_DOWN ||
-      aKey == dom::KeyboardEventBinding::DOM_VK_PAGE_UP ||
-      aKey == dom::KeyboardEventBinding::DOM_VK_PAGE_DOWN)
+  if (aKey == dom::KeyboardEvent_Binding::DOM_VK_UP ||
+      aKey == dom::KeyboardEvent_Binding::DOM_VK_DOWN ||
+      aKey == dom::KeyboardEvent_Binding::DOM_VK_PAGE_UP ||
+      aKey == dom::KeyboardEvent_Binding::DOM_VK_PAGE_DOWN)
   {
     // Prevent the input from handling up/down events, as it may move
     // the cursor to home/end on some systems
     *_retval = true;
 
     bool isOpen = false;
     input->GetPopupOpen(&isOpen);
     if (isOpen) {
-      bool reverse = aKey == dom::KeyboardEventBinding::DOM_VK_UP ||
-                      aKey == dom::KeyboardEventBinding::DOM_VK_PAGE_UP ? true : false;
-      bool page = aKey == dom::KeyboardEventBinding::DOM_VK_PAGE_UP ||
-                    aKey == dom::KeyboardEventBinding::DOM_VK_PAGE_DOWN ? true : false;
+      bool reverse = aKey == dom::KeyboardEvent_Binding::DOM_VK_UP ||
+                      aKey == dom::KeyboardEvent_Binding::DOM_VK_PAGE_UP ? true : false;
+      bool page = aKey == dom::KeyboardEvent_Binding::DOM_VK_PAGE_UP ||
+                    aKey == dom::KeyboardEvent_Binding::DOM_VK_PAGE_DOWN ? true : false;
 
       // Fill in the value of the textbox with whatever is selected in the popup
       // if the completeSelectedIndex attribute is set.  We check this before
       // calling SelectBy of an earlier attempt to avoid crashing.
       bool completeSelection;
       input->GetCompleteSelectedIndex(&completeSelection);
 
       // The user has keyed up or down to change the selection.  Stop the search
@@ -503,23 +503,23 @@ nsAutoCompleteController::HandleKeyNavig
       }
     } else {
 #ifdef XP_MACOSX
       // on Mac, only show the popup if the caret is at the start or end of
       // the input and there is no selection, so that the default defined key
       // shortcuts for up and down move to the beginning and end of the field
       // otherwise.
       int32_t start, end;
-      if (aKey == dom::KeyboardEventBinding::DOM_VK_UP) {
+      if (aKey == dom::KeyboardEvent_Binding::DOM_VK_UP) {
         input->GetSelectionStart(&start);
         input->GetSelectionEnd(&end);
         if (start > 0 || start != end)
           *_retval = false;
       }
-      else if (aKey == dom::KeyboardEventBinding::DOM_VK_DOWN) {
+      else if (aKey == dom::KeyboardEvent_Binding::DOM_VK_DOWN) {
         nsAutoString text;
         input->GetTextValue(text);
         input->GetSelectionStart(&start);
         input->GetSelectionEnd(&end);
         if (start != end || end < (int32_t)text.Length())
           *_retval = false;
       }
 #endif
@@ -549,20 +549,20 @@ nsAutoCompleteController::HandleKeyNavig
           nsAutoString value;
           input->GetTextValue(value);
           SetSearchStringInternal(value);
 
           StartSearches();
         }
       }
     }
-  } else if (   aKey == dom::KeyboardEventBinding::DOM_VK_LEFT
-             || aKey == dom::KeyboardEventBinding::DOM_VK_RIGHT
+  } else if (   aKey == dom::KeyboardEvent_Binding::DOM_VK_LEFT
+             || aKey == dom::KeyboardEvent_Binding::DOM_VK_RIGHT
 #ifndef XP_MACOSX
-             || aKey == dom::KeyboardEventBinding::DOM_VK_HOME
+             || aKey == dom::KeyboardEvent_Binding::DOM_VK_HOME
 #endif
             )
   {
     // The user hit a text-navigation key.
     bool isOpen = false;
     input->GetPopupOpen(&isOpen);
 
     // If minresultsforpopup > 1 and there's less matches than the minimum
--- a/toolkit/components/extensions/MatchPattern.cpp
+++ b/toolkit/components/extensions/MatchPattern.cpp
@@ -499,17 +499,17 @@ MatchPattern::Overlaps(const MatchPatter
 
   return SubsumesDomain(aPattern) || aPattern.SubsumesDomain(*this);
 }
 
 
 JSObject*
 MatchPattern::WrapObject(JSContext* aCx, JS::HandleObject aGivenProto)
 {
-  return MatchPatternBinding::Wrap(aCx, this, aGivenProto);
+  return MatchPattern_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 /* static */ bool
 MatchPattern::MatchesAllURLs(const URLInfo& aURL)
 {
   RefPtr<AtomSet> permittedSchemes = AtomSet::Get<PERMITTED_SCHEMES>();
   return permittedSchemes->Contains(aURL.Scheme());
 }
@@ -636,17 +636,17 @@ MatchPatternSet::OverlapsAll(const Match
   }
   return aPatternSet.mPatterns.Length() > 0;
 }
 
 
 JSObject*
 MatchPatternSet::WrapObject(JSContext* aCx, JS::HandleObject aGivenProto)
 {
-  return MatchPatternSetBinding::Wrap(aCx, this, aGivenProto);
+  return MatchPatternSet_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 
 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(MatchPatternSet, mPatterns, mParent)
 
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(MatchPatternSet)
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRY(nsISupports)
@@ -762,17 +762,17 @@ MatchGlob::Matches(const nsAString& aStr
 
   return mPathLiteral == aString;
 }
 
 
 JSObject*
 MatchGlob::WrapObject(JSContext* aCx, JS::HandleObject aGivenProto)
 {
-  return MatchGlobBinding::Wrap(aCx, this, aGivenProto);
+  return MatchGlob_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 
 NS_IMPL_CYCLE_COLLECTION_CLASS(MatchGlob)
 
 NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(MatchGlob)
   NS_IMPL_CYCLE_COLLECTION_UNLINK_PRESERVED_WRAPPER
   NS_IMPL_CYCLE_COLLECTION_UNLINK(mParent)
--- a/toolkit/components/extensions/WebExtensionPolicy.cpp
+++ b/toolkit/components/extensions/WebExtensionPolicy.cpp
@@ -237,29 +237,29 @@ WebExtensionPolicy::RegisterContentScrip
 
   RefPtr<WebExtensionContentScript> newScript = &script;
 
   if (!mContentScripts.AppendElement(std::move(newScript), fallible)) {
     aRv.Throw(NS_ERROR_OUT_OF_MEMORY);
     return;
   }
 
-  WebExtensionPolicyBinding::ClearCachedContentScriptsValue(this);
+  WebExtensionPolicy_Binding::ClearCachedContentScriptsValue(this);
 }
 
 void
 WebExtensionPolicy::UnregisterContentScript(const WebExtensionContentScript& script,
                                             ErrorResult& aRv)
 {
   if (script.mExtension != this || !mContentScripts.RemoveElement(&script)) {
     aRv.Throw(NS_ERROR_INVALID_ARG);
     return;
   }
 
-  WebExtensionPolicyBinding::ClearCachedContentScriptsValue(this);
+  WebExtensionPolicy_Binding::ClearCachedContentScriptsValue(this);
 }
 
 /* static */ bool
 WebExtensionPolicy::UseRemoteWebExtensions(GlobalObject& aGlobal)
 {
   return EPS().UseRemoteExtensions();
 }
 
@@ -397,17 +397,17 @@ WebExtensionPolicy::Localize(const nsASt
 {
   mLocalizeCallback->Call(aInput, aOutput);
 }
 
 
 JSObject*
 WebExtensionPolicy::WrapObject(JSContext* aCx, JS::HandleObject aGivenProto)
 {
-  return WebExtensionPolicyBinding::Wrap(aCx, this, aGivenProto);
+  return WebExtensionPolicy_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 void
 WebExtensionPolicy::GetContentScripts(nsTArray<RefPtr<WebExtensionContentScript>>& aScripts) const
 {
   aScripts.AppendElements(mContentScripts);
 }
 
@@ -532,17 +532,17 @@ WebExtensionContentScript::MatchesURI(co
 
   return true;
 }
 
 
 JSObject*
 WebExtensionContentScript::WrapObject(JSContext* aCx, JS::HandleObject aGivenProto)
 {
-  return WebExtensionContentScriptBinding::Wrap(aCx, this, aGivenProto);
+  return WebExtensionContentScript_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 
 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(WebExtensionContentScript,
                                       mMatches, mExcludeMatches,
                                       mIncludeGlobs, mExcludeGlobs,
                                       mExtension)
 
--- a/toolkit/components/extensions/webrequest/ChannelWrapper.cpp
+++ b/toolkit/components/extensions/webrequest/ChannelWrapper.cpp
@@ -97,30 +97,30 @@ ChannelWrapper::GetRegisteredChannel(con
   return ChannelWrapper::Get(global, chan);
 }
 
 void
 ChannelWrapper::SetChannel(nsIChannel* aChannel)
 {
   detail::ChannelHolder::SetChannel(aChannel);
   ClearCachedAttributes();
-  ChannelWrapperBinding::ClearCachedFinalURIValue(this);
-  ChannelWrapperBinding::ClearCachedFinalURLValue(this);
+  ChannelWrapper_Binding::ClearCachedFinalURIValue(this);
+  ChannelWrapper_Binding::ClearCachedFinalURLValue(this);
   mFinalURLInfo.reset();
-  ChannelWrapperBinding::ClearCachedProxyInfoValue(this);
+  ChannelWrapper_Binding::ClearCachedProxyInfoValue(this);
 }
 
 void
 ChannelWrapper::ClearCachedAttributes()
 {
-  ChannelWrapperBinding::ClearCachedRemoteAddressValue(this);
-  ChannelWrapperBinding::ClearCachedStatusCodeValue(this);
-  ChannelWrapperBinding::ClearCachedStatusLineValue(this);
+  ChannelWrapper_Binding::ClearCachedRemoteAddressValue(this);
+  ChannelWrapper_Binding::ClearCachedStatusCodeValue(this);
+  ChannelWrapper_Binding::ClearCachedStatusLineValue(this);
   if (!mFiredErrorEvent) {
-    ChannelWrapperBinding::ClearCachedErrorStringValue(this);
+    ChannelWrapper_Binding::ClearCachedErrorStringValue(this);
   }
 }
 
 /*****************************************************************************
  * ...
  *****************************************************************************/
 
 void
@@ -910,17 +910,17 @@ void
 ChannelWrapper::ErrorCheck()
 {
   if (!mFiredErrorEvent) {
     nsAutoString error;
     GetErrorString(error);
     if (error.Length()) {
       mChannelEntry = nullptr;
       mFiredErrorEvent = true;
-      ChannelWrapperBinding::ClearCachedErrorStringValue(this);
+      ChannelWrapper_Binding::ClearCachedErrorStringValue(this);
       FireEvent(NS_LITERAL_STRING("error"));
     }
   }
 }
 
 /*****************************************************************************
  * nsIWebRequestListener
  *****************************************************************************/
@@ -1037,17 +1037,17 @@ ChannelWrapper::EventListenerRemoved(nsA
 
 /*****************************************************************************
  * Glue
  *****************************************************************************/
 
 JSObject*
 ChannelWrapper::WrapObject(JSContext* aCx, HandleObject aGivenProto)
 {
-  return ChannelWrapperBinding::Wrap(aCx, this, aGivenProto);
+  return ChannelWrapper_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 NS_IMPL_CYCLE_COLLECTION_CLASS(ChannelWrapper)
 
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(ChannelWrapper)
   NS_INTERFACE_MAP_ENTRY(ChannelWrapper)
 NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper)
 
--- a/toolkit/components/extensions/webrequest/StreamFilter.cpp
+++ b/toolkit/components/extensions/webrequest/StreamFilter.cpp
@@ -290,17 +290,17 @@ StreamFilter::FireErrorEvent(const nsASt
 StreamFilter::IsAllowedInContext(JSContext* aCx, JSObject* /* unused */)
 {
   return nsContentUtils::CallerHasPermission(aCx, nsGkAtoms::webRequestBlocking);
 }
 
 JSObject*
 StreamFilter::WrapObject(JSContext* aCx, HandleObject aGivenProto)
 {
-  return StreamFilterBinding::Wrap(aCx, this, aGivenProto);
+  return StreamFilter_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 NS_IMPL_CYCLE_COLLECTION_CLASS(StreamFilter)
 
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(StreamFilter)
 NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper)
 
 NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(StreamFilter, DOMEventTargetHelper)
--- a/toolkit/components/extensions/webrequest/StreamFilterEvents.cpp
+++ b/toolkit/components/extensions/webrequest/StreamFilterEvents.cpp
@@ -44,13 +44,13 @@ StreamFilterDataEvent::Constructor(Event
   event->SetData(aParam.mData);
 
   return event.forget();
 }
 
 JSObject*
 StreamFilterDataEvent::WrapObjectInternal(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
 {
-  return StreamFilterDataEventBinding::Wrap(aCx, this, aGivenProto);
+  return StreamFilterDataEvent_Binding::Wrap(aCx, this, aGivenProto);
 }
 
 } // namespace extensions
 } // namespace mozilla
--- a/toolkit/components/resistfingerprinting/KeyCodeConsensus_En_US.h
+++ b/toolkit/components/resistfingerprinting/KeyCodeConsensus_En_US.h
@@ -28,145 +28,145 @@
  *   @param modifiers     The spoofing modifier states for this key.
  *                        See BasicEvents.h for details.
  */
 
 /**
  * Spoofed keycodes for English content (US English keyboard layout).
  */
 
-CONTROL(Alt,         AltLeft,     dom::KeyboardEventBinding::DOM_VK_ALT)
-CONTROL(ArrowDown,   ArrowDown,   dom::KeyboardEventBinding::DOM_VK_DOWN)
-CONTROL(ArrowLeft,   ArrowLeft,   dom::KeyboardEventBinding::DOM_VK_LEFT)
-CONTROL(ArrowRight,  ArrowRight,  dom::KeyboardEventBinding::DOM_VK_RIGHT)
-CONTROL(ArrowUp,     ArrowUp,     dom::KeyboardEventBinding::DOM_VK_UP)
-CONTROL(Backspace,   Backspace,   dom::KeyboardEventBinding::DOM_VK_BACK_SPACE)
-CONTROL(CapsLock,    CapsLock,    dom::KeyboardEventBinding::DOM_VK_CAPS_LOCK)
+CONTROL(Alt,         AltLeft,     dom::KeyboardEvent_Binding::DOM_VK_ALT)
+CONTROL(ArrowDown,   ArrowDown,   dom::KeyboardEvent_Binding::DOM_VK_DOWN)
+CONTROL(ArrowLeft,   ArrowLeft,   dom::KeyboardEvent_Binding::DOM_VK_LEFT)
+CONTROL(ArrowRight,  ArrowRight,  dom::KeyboardEvent_Binding::DOM_VK_RIGHT)
+CONTROL(ArrowUp,     ArrowUp,     dom::KeyboardEvent_Binding::DOM_VK_UP)
+CONTROL(Backspace,   Backspace,   dom::KeyboardEvent_Binding::DOM_VK_BACK_SPACE)
+CONTROL(CapsLock,    CapsLock,    dom::KeyboardEvent_Binding::DOM_VK_CAPS_LOCK)
 // Leaving "ContextMenu" key unimplemented; not every english keyboard has this.
 // For example, MACOS doesn't have this.
-CONTROL(Control,     ControlLeft, dom::KeyboardEventBinding::DOM_VK_CONTROL)
-CONTROL(Delete,      Delete,      dom::KeyboardEventBinding::DOM_VK_DELETE)
-CONTROL(End,         End,         dom::KeyboardEventBinding::DOM_VK_END)
-CONTROL(Enter,       Enter,       dom::KeyboardEventBinding::DOM_VK_RETURN)
-CONTROL(Escape,      Escape,      dom::KeyboardEventBinding::DOM_VK_ESCAPE)
+CONTROL(Control,     ControlLeft, dom::KeyboardEvent_Binding::DOM_VK_CONTROL)
+CONTROL(Delete,      Delete,      dom::KeyboardEvent_Binding::DOM_VK_DELETE)
+CONTROL(End,         End,         dom::KeyboardEvent_Binding::DOM_VK_END)
+CONTROL(Enter,       Enter,       dom::KeyboardEvent_Binding::DOM_VK_RETURN)
+CONTROL(Escape,      Escape,      dom::KeyboardEvent_Binding::DOM_VK_ESCAPE)
 // Leaving "Help" key unimplemented; it only appears in some keyboard in Linux.
-CONTROL(Home,        Home,        dom::KeyboardEventBinding::DOM_VK_HOME)
-CONTROL(Insert,      Insert,      dom::KeyboardEventBinding::DOM_VK_INSERT)
-CONTROL(Meta,        OSLeft,      dom::KeyboardEventBinding::DOM_VK_WIN)
-CONTROL(OS,          OSLeft,      dom::KeyboardEventBinding::DOM_VK_WIN)
-CONTROL(PageDown,    PageDown,    dom::KeyboardEventBinding::DOM_VK_PAGE_DOWN)
-CONTROL(PageUp,      PageUp,      dom::KeyboardEventBinding::DOM_VK_PAGE_UP)
+CONTROL(Home,        Home,        dom::KeyboardEvent_Binding::DOM_VK_HOME)
+CONTROL(Insert,      Insert,      dom::KeyboardEvent_Binding::DOM_VK_INSERT)
+CONTROL(Meta,        OSLeft,      dom::KeyboardEvent_Binding::DOM_VK_WIN)
+CONTROL(OS,          OSLeft,      dom::KeyboardEvent_Binding::DOM_VK_WIN)
+CONTROL(PageDown,    PageDown,    dom::KeyboardEvent_Binding::DOM_VK_PAGE_DOWN)
+CONTROL(PageUp,      PageUp,      dom::KeyboardEvent_Binding::DOM_VK_PAGE_UP)
 // Leaving "Pause", "PrintScreen" and "ScrollLock" keys unimplemented; they are
 // non-MACOS only.
-CONTROL(Shift,       ShiftLeft,   dom::KeyboardEventBinding::DOM_VK_SHIFT)
-CONTROL(Tab,         Tab,         dom::KeyboardEventBinding::DOM_VK_TAB)
-CONTROL(F1,          F1,          dom::KeyboardEventBinding::DOM_VK_F1)
-CONTROL(F2,          F2,          dom::KeyboardEventBinding::DOM_VK_F2)
-CONTROL(F3,          F3,          dom::KeyboardEventBinding::DOM_VK_F3)
-CONTROL(F4,          F4,          dom::KeyboardEventBinding::DOM_VK_F4)
-CONTROL(F5,          F5,          dom::KeyboardEventBinding::DOM_VK_F5)
-CONTROL(F6,          F6,          dom::KeyboardEventBinding::DOM_VK_F6)
-CONTROL(F7,          F7,          dom::KeyboardEventBinding::DOM_VK_F7)
-CONTROL(F8,          F8,          dom::KeyboardEventBinding::DOM_VK_F8)
-CONTROL(F9,          F9,          dom::KeyboardEventBinding::DOM_VK_F9)
-CONTROL(F10,         F10,         dom::KeyboardEventBinding::DOM_VK_F10)
-CONTROL(F11,         F11,         dom::KeyboardEventBinding::DOM_VK_F11)
-CONTROL(F12,         F12,         dom::KeyboardEventBinding::DOM_VK_F12)
+CONTROL(Shift,       ShiftLeft,   dom::KeyboardEvent_Binding::DOM_VK_SHIFT)
+CONTROL(Tab,         Tab,         dom::KeyboardEvent_Binding::DOM_VK_TAB)
+CONTROL(F1,          F1,          dom::KeyboardEvent_Binding::DOM_VK_F1)
+CONTROL(F2,          F2,          dom::KeyboardEvent_Binding::DOM_VK_F2)
+CONTROL(F3,          F3,          dom::KeyboardEvent_Binding::DOM_VK_F3)
+CONTROL(F4,          F4,          dom::KeyboardEvent_Binding::DOM_VK_F4)
+CONTROL(F5,          F5,          dom::KeyboardEvent_Binding::DOM_VK_F5)
+CONTROL(F6,          F6,          dom::KeyboardEvent_Binding::DOM_VK_F6)
+CONTROL(F7,          F7,          dom::KeyboardEvent_Binding::DOM_VK_F7)
+CONTROL(F8,          F8,          dom::KeyboardEvent_Binding::DOM_VK_F8)
+CONTROL(F9,          F9,          dom::KeyboardEvent_Binding::DOM_VK_F9)
+CONTROL(F10,         F10,         dom::KeyboardEvent_Binding::DOM_VK_F10)
+CONTROL(F11,         F11,         dom::KeyboardEvent_Binding::DOM_VK_F11)
+CONTROL(F12,         F12,         dom::KeyboardEvent_Binding::DOM_VK_F12)
 // Leaving "F13" to "F35" key unimplemented; they are some how platform dependent.
 // "F13" to "F19" are on MAC's full keyboard but may not exist on usual keyboard.
 // "F20" to "F24" are only available on Windows and Linux.
 // "F25" to "F35" are Linux only.
 // Leaving "Clear" key unimplemented; it's inconsistent between platforms.
-KEY(" ",  Space,        dom::KeyboardEventBinding::DOM_VK_SPACE,  MODIFIER_NONE)
-KEY(",",  Comma,        dom::KeyboardEventBinding::DOM_VK_COMMA, MODIFIER_NONE)
-KEY("<",  Comma,        dom::KeyboardEventBinding::DOM_VK_COMMA, MODIFIER_SHIFT)
-KEY(".",  Period,       dom::KeyboardEventBinding::DOM_VK_PERIOD, MODIFIER_NONE)
-KEY(">",  Period,       dom::KeyboardEventBinding::DOM_VK_PERIOD, MODIFIER_SHIFT)
-KEY("/",  Slash,        dom::KeyboardEventBinding::DOM_VK_SLASH, MODIFIER_NONE)
-KEY("?",  Slash,        dom::KeyboardEventBinding::DOM_VK_SLASH, MODIFIER_SHIFT)
-KEY(";",  Semicolon,    dom::KeyboardEventBinding::DOM_VK_SEMICOLON,  MODIFIER_NONE)
-KEY(":",  Semicolon,    dom::KeyboardEventBinding::DOM_VK_SEMICOLON,  MODIFIER_SHIFT)
-KEY("'",  Quote,        dom::KeyboardEventBinding::DOM_VK_QUOTE, MODIFIER_NONE)
-KEY("\"", Quote,        dom::KeyboardEventBinding::DOM_VK_QUOTE, MODIFIER_SHIFT)
-KEY("[",  BracketLeft,  dom::KeyboardEventBinding::DOM_VK_OPEN_BRACKET, MODIFIER_NONE)
-KEY("{",  BracketLeft,  dom::KeyboardEventBinding::DOM_VK_OPEN_BRACKET, MODIFIER_SHIFT)
-KEY("]",  BracketRight, dom::KeyboardEventBinding::DOM_VK_CLOSE_BRACKET, MODIFIER_NONE)
-KEY("}",  BracketRight, dom::KeyboardEventBinding::DOM_VK_CLOSE_BRACKET, MODIFIER_SHIFT)
-KEY("`",  Backquote,    dom::KeyboardEventBinding::DOM_VK_BACK_QUOTE, MODIFIER_NONE)
-KEY("~",  Backquote,    dom::KeyboardEventBinding::DOM_VK_BACK_QUOTE, MODIFIER_SHIFT)
-KEY("\\", Backslash,    dom::KeyboardEventBinding::DOM_VK_BACK_SLASH, MODIFIER_NONE)
-KEY("|",  Backslash,    dom::KeyboardEventBinding::DOM_VK_BACK_SLASH, MODIFIER_SHIFT)
-KEY("-",  Minus,        dom::KeyboardEventBinding::DOM_VK_HYPHEN_MINUS, MODIFIER_NONE)
-KEY("_",  Minus,        dom::KeyboardEventBinding::DOM_VK_HYPHEN_MINUS, MODIFIER_SHIFT)
-KEY("=",  Equal,        dom::KeyboardEventBinding::DOM_VK_EQUALS, MODIFIER_NONE)
-KEY("+",  Equal,        dom::KeyboardEventBinding::DOM_VK_EQUALS, MODIFIER_SHIFT)
-KEY("A",  KeyA,         dom::KeyboardEventBinding::DOM_VK_A, MODIFIER_SHIFT)
-KEY("B",  KeyB,         dom::KeyboardEventBinding::DOM_VK_B, MODIFIER_SHIFT)
-KEY("C",  KeyC,         dom::KeyboardEventBinding::DOM_VK_C, MODIFIER_SHIFT)
-KEY("D",  KeyD,         dom::KeyboardEventBinding::DOM_VK_D, MODIFIER_SHIFT)
-KEY("E",  KeyE,         dom::KeyboardEventBinding::DOM_VK_E, MODIFIER_SHIFT)
-KEY("F",  KeyF,         dom::KeyboardEventBinding::DOM_VK_F, MODIFIER_SHIFT)
-KEY("G",  KeyG,         dom::KeyboardEventBinding::DOM_VK_G, MODIFIER_SHIFT)
-KEY("H",  KeyH,         dom::KeyboardEventBinding::DOM_VK_H, MODIFIER_SHIFT)
-KEY("I",  KeyI,         dom::KeyboardEventBinding::DOM_VK_I, MODIFIER_SHIFT)
-KEY("J",  KeyJ,         dom::KeyboardEventBinding::DOM_VK_J, MODIFIER_SHIFT)
-KEY("K",  KeyK,         dom::KeyboardEventBinding::DOM_VK_K, MODIFIER_SHIFT)
-KEY("L",  KeyL,         dom::KeyboardEventBinding::DOM_VK_L, MODIFIER_SHIFT)
-KEY("M",  KeyM,         dom::KeyboardEventBinding::DOM_VK_M, MODIFIER_SHIFT)
-KEY("N",  KeyN,         dom::KeyboardEventBinding::DOM_VK_N, MODIFIER_SHIFT)
-KEY("O",  KeyO,         dom::KeyboardEventBinding::DOM_VK_O, MODIFIER_SHIFT)
-KEY("P",  KeyP,         dom::KeyboardEventBinding::DOM_VK_P, MODIFIER_SHIFT)
-KEY("Q",  KeyQ,         dom::KeyboardEventBinding::DOM_VK_Q, MODIFIER_SHIFT)
-KEY("R",  KeyR,         dom::KeyboardEventBinding::DOM_VK_R, MODIFIER_SHIFT)
-KEY("S",  KeyS,         dom::KeyboardEventBinding::DOM_VK_S, MODIFIER_SHIFT)
-KEY("T",  KeyT,         dom::KeyboardEventBinding::DOM_VK_T, MODIFIER_SHIFT)
-KEY("U",  KeyU,         dom::KeyboardEventBinding::DOM_VK_U, MODIFIER_SHIFT)
-KEY("V",  KeyV,         dom::KeyboardEventBinding::DOM_VK_V, MODIFIER_SHIFT)
-KEY("W",  KeyW,         dom::KeyboardEventBinding::DOM_VK_W, MODIFIER_SHIFT)
-KEY("X",  KeyX,         dom::KeyboardEventBinding::DOM_VK_X, MODIFIER_SHIFT)
-KEY("Y",  KeyY,         dom::KeyboardEventBinding::DOM_VK_Y, MODIFIER_SHIFT)
-KEY("Z",  KeyZ,         dom::KeyboardEventBinding::DOM_VK_Z, MODIFIER_SHIFT)
-KEY("a",  KeyA,         dom::KeyboardEventBinding::DOM_VK_A, MODIFIER_NONE)
-KEY("b",  KeyB,         dom::KeyboardEventBinding::DOM_VK_B, MODIFIER_NONE)
-KEY("c",  KeyC,         dom::KeyboardEventBinding::DOM_VK_C, MODIFIER_NONE)
-KEY("d",  KeyD,         dom::KeyboardEventBinding::DOM_VK_D, MODIFIER_NONE)
-KEY("e",  KeyE,         dom::KeyboardEventBinding::DOM_VK_E, MODIFIER_NONE)
-KEY("f",  KeyF,         dom::KeyboardEventBinding::DOM_VK_F, MODIFIER_NONE)
-KEY("g",  KeyG,         dom::KeyboardEventBinding::DOM_VK_G, MODIFIER_NONE)
-KEY("h",  KeyH,         dom::KeyboardEventBinding::DOM_VK_H, MODIFIER_NONE)
-KEY("i",  KeyI,         dom::KeyboardEventBinding::DOM_VK_I, MODIFIER_NONE)
-KEY("j",  KeyJ,         dom::KeyboardEventBinding::DOM_VK_J, MODIFIER_NONE)
-KEY("k",  KeyK,         dom::KeyboardEventBinding::DOM_VK_K, MODIFIER_NONE)
-KEY("l",  KeyL,         dom::KeyboardEventBinding::DOM_VK_L, MODIFIER_NONE)
-KEY("m",  KeyM,         dom::KeyboardEventBinding::DOM_VK_M, MODIFIER_NONE)
-KEY("n",  KeyN,         dom::KeyboardEventBinding::DOM_VK_N, MODIFIER_NONE)
-KEY("o",  KeyO,         dom::KeyboardEventBinding::DOM_VK_O, MODIFIER_NONE)
-KEY("p",  KeyP,         dom::KeyboardEventBinding::DOM_VK_P, MODIFIER_NONE)
-KEY("q",  KeyQ,         dom::KeyboardEventBinding::DOM_VK_Q, MODIFIER_NONE)
-KEY("r",  KeyR,         dom::KeyboardEventBinding::DOM_VK_R, MODIFIER_NONE)
-KEY("s",  KeyS,         dom::KeyboardEventBinding::DOM_VK_S, MODIFIER_NONE)
-KEY("t",  KeyT,         dom::KeyboardEventBinding::DOM_VK_T, MODIFIER_NONE)
-KEY("u",  KeyU,         dom::KeyboardEventBinding::DOM_VK_U, MODIFIER_NONE)
-KEY("v",  KeyV,         dom::KeyboardEventBinding::DOM_VK_V, MODIFIER_NONE)
-KEY("w",  KeyW,         dom::KeyboardEventBinding::DOM_VK_W, MODIFIER_NONE)
-KEY("x",  KeyX,         dom::KeyboardEventBinding::DOM_VK_X, MODIFIER_NONE)
-KEY("y",  KeyY,         dom::KeyboardEventBinding::DOM_VK_Y, MODIFIER_NONE)
-KEY("z",  KeyZ,         dom::KeyboardEventBinding::DOM_VK_Z, MODIFIER_NONE)
-KEY("0",  Digit0,       dom::KeyboardEventBinding::DOM_VK_0, MODIFIER_NONE)
-KEY("1",  Digit1,       dom::KeyboardEventBinding::DOM_VK_1, MODIFIER_NONE)
-KEY("2",  Digit2,       dom::KeyboardEventBinding::DOM_VK_2, MODIFIER_NONE)
-KEY("3",  Digit3,       dom::KeyboardEventBinding::DOM_VK_3, MODIFIER_NONE)
-KEY("4",  Digit4,       dom::KeyboardEventBinding::DOM_VK_4, MODIFIER_NONE)
-KEY("5",  Digit5,       dom::KeyboardEventBinding::DOM_VK_5, MODIFIER_NONE)
-KEY("6",  Digit6,       dom::KeyboardEventBinding::DOM_VK_6, MODIFIER_NONE)
-KEY("7",  Digit7,       dom::KeyboardEventBinding::DOM_VK_7, MODIFIER_NONE)
-KEY("8",  Digit8,       dom::KeyboardEventBinding::DOM_VK_8, MODIFIER_NONE)
-KEY("9",  Digit9,       dom::KeyboardEventBinding::DOM_VK_9, MODIFIER_NONE)
-KEY(")",  Digit0,       dom::KeyboardEventBinding::DOM_VK_0, MODIFIER_SHIFT)
-KEY("!",  Digit1,       dom::KeyboardEventBinding::DOM_VK_1, MODIFIER_SHIFT)
-KEY("@",  Digit2,       dom::KeyboardEventBinding::DOM_VK_2, MODIFIER_SHIFT)
-KEY("#",  Digit3,       dom::KeyboardEventBinding::DOM_VK_3, MODIFIER_SHIFT)
-KEY("$",  Digit4,       dom::KeyboardEventBinding::DOM_VK_4, MODIFIER_SHIFT)
-KEY("%",  Digit5,       dom::KeyboardEventBinding::DOM_VK_5, MODIFIER_SHIFT)
-KEY("^",  Digit6,       dom::KeyboardEventBinding::DOM_VK_6, MODIFIER_SHIFT)
-KEY("&",  Digit7,       dom::KeyboardEventBinding::DOM_VK_7, MODIFIER_SHIFT)
-KEY("*",  Digit8,       dom::KeyboardEventBinding::DOM_VK_8, MODIFIER_SHIFT)
-KEY("(",  Digit9,       dom::KeyboardEventBinding::DOM_VK_9, MODIFIER_SHIFT)
+KEY(" ",  Space,        dom::KeyboardEvent_Binding::DOM_VK_SPACE,  MODIFIER_NONE)
+KEY(",",  Comma,        dom::KeyboardEvent_Binding::DOM_VK_COMMA, MODIFIER_NONE)
+KEY("<",  Comma,        dom::KeyboardEvent_Binding::DOM_VK_COMMA, MODIFIER_SHIFT)
+KEY(".",  Period,       dom::KeyboardEvent_Binding::DOM_VK_PERIOD, MODIFIER_NONE)
+KEY(">",  Period,       dom::KeyboardEvent_Binding::DOM_VK_PERIOD, MODIFIER_SHIFT)
+KEY("/",  Slash,        dom::KeyboardEvent_Binding::DOM_VK_SLASH, MODIFIER_NONE)
+KEY("?",  Slash,        dom::KeyboardEvent_Binding::DOM_VK_SLASH, MODIFIER_SHIFT)
+KEY(";",  Semicolon,    dom::KeyboardEvent_Binding::DOM_VK_SEMICOLON,  MODIFIER_NONE)
+KEY(":",  Semicolon,    dom::KeyboardEvent_Binding::DOM_VK_SEMICOLON,  MODIFIER_SHIFT)
+KEY("'",  Quote,        dom::KeyboardEvent_Binding::DOM_VK_QUOTE, MODIFIER_NONE)
+KEY("\"", Quote,        dom::KeyboardEvent_Binding::DOM_VK_QUOTE, MODIFIER_SHIFT)
+KEY("[",  BracketLeft,  dom::KeyboardEvent_Binding::DOM_VK_OPEN_BRACKET, MODIFIER_NONE)
+KEY("{",  BracketLeft,  dom::KeyboardEvent_Binding::DOM_VK_OPEN_BRACKET, MODIFIER_SHIFT)
+KEY("]",  BracketRight, dom::KeyboardEvent_Binding::DOM_VK_CLOSE_BRACKET, MODIFIER_NONE)
+KEY("}",  BracketRight, dom::KeyboardEvent_Binding::DOM_VK_CLOSE_BRACKET, MODIFIER_SHIFT)
+KEY("`",  Backquote,    dom::KeyboardEvent_Binding::DOM_VK_BACK_QUOTE, MODIFIER_NONE)
+KEY("~",  Backquote,    dom::KeyboardEvent_Binding::DOM_VK_BACK_QUOTE, MODIFIER_SHIFT)
+KEY("\\", Backslash,    dom::KeyboardEvent_Binding::DOM_VK_BACK_SLASH, MODIFIER_NONE)
+KEY("|",  Backslash,    dom::KeyboardEvent_Binding::DOM_VK_BACK_SLASH, MODIFIER_SHIFT)
+KEY("-",  Minus,        dom::KeyboardEvent_Binding::DOM_VK_HYPHEN_MINUS, MODIFIER_NONE)
+KEY("_",  Minus,        dom::KeyboardEvent_Binding::DOM_VK_HYPHEN_MINUS, MODIFIER_SHIFT)
+KEY("=",  Equal,        dom::KeyboardEvent_Binding::DOM_VK_EQUALS, MODIFIER_NONE)
+KEY("+",  Equal,        dom::KeyboardEvent_Binding::DOM_VK_EQUALS, MODIFIER_SHIFT)
+KEY("A",  KeyA,         dom::KeyboardEvent_Binding::DOM_VK_A, MODIFIER_SHIFT)
+KEY("B",  KeyB,         dom::KeyboardEvent_Binding::DOM_VK_B, MODIFIER_SHIFT)
+KEY("C",  KeyC,         dom::KeyboardEvent_Binding::DOM_VK_C, MODIFIER_SHIFT)
+KEY("D",  KeyD,         dom::KeyboardEvent_Binding::DOM_VK_D, MODIFIER_SHIFT)
+KEY("E",  KeyE,         dom::KeyboardEvent_Binding::DOM_VK_E, MODIFIER_SHIFT)
+KEY("F",  KeyF,         dom::KeyboardEvent_Binding::DOM_VK_F, MODIFIER_SHIFT)
+KEY("G",  KeyG,         dom::KeyboardEvent_Binding::DOM_VK_G, MODIFIER_SHIFT)
+KEY("H",  KeyH,         dom::KeyboardEvent_Binding::DOM_VK_H, MODIFIER_SHIFT)
+KEY("I",  KeyI,         dom::KeyboardEvent_Binding::DOM_VK_I, MODIFIER_SHIFT)
+KEY("J",  KeyJ,         dom::KeyboardEvent_Binding::DOM_VK_J, MODIFIER_SHIFT)
+KEY("K",  KeyK,         dom::KeyboardEvent_Binding::DOM_VK_K, MODIFIER_SHIFT)
+KEY("L",  KeyL,         dom::KeyboardEvent_Binding::DOM_VK_L, MODIFIER_SHIFT)
+KEY("M",  KeyM,         dom::KeyboardEvent_Binding::DOM_VK_M, MODIFIER_SHIFT)
+KEY("N",  KeyN,         dom::KeyboardEvent_Binding::DOM_VK_N, MODIFIER_SHIFT)
+KEY("O",  KeyO,         dom::KeyboardEvent_Binding::DOM_VK_O, MODIFIER_SHIFT)
+KEY("P",  KeyP,         dom::KeyboardEvent_Binding::DOM_VK_P, MODIFIER_SHIFT)
+KEY("Q",  KeyQ,         dom::KeyboardEvent_Binding::DOM_VK_Q, MODIFIER_SHIFT)
+KEY("R",  KeyR,         dom::KeyboardEvent_Binding::DOM_VK_R, MODIFIER_SHIFT)
+KEY("S",  KeyS,         dom::KeyboardEvent_Binding::DOM_VK_S, MODIFIER_SHIFT)
+KEY("T",  KeyT,         dom::KeyboardEvent_Binding::DOM_VK_T, MODIFIER_SHIFT)
+KEY("U",  KeyU,         dom::KeyboardEvent_Binding::DOM_VK_U, MODIFIER_SHIFT)
+KEY("V",  KeyV,         dom::KeyboardEvent_Binding::DOM_VK_V, MODIFIER_SHIFT)
+KEY("W",  KeyW,         dom::KeyboardEvent_Binding::DOM_VK_W, MODIFIER_SHIFT)
+KEY("X",  KeyX,         dom::KeyboardEvent_Binding::DOM_VK_X, MODIFIER_SHIFT)
+KEY("Y",  KeyY,         dom::KeyboardEvent_Binding::DOM_VK_Y, MODIFIER_SHIFT)
+KEY("Z",  KeyZ,         dom::KeyboardEvent_Binding::DOM_VK_Z, MODIFIER_SHIFT)
+KEY("a",  KeyA,         dom::KeyboardEvent_Binding::DOM_VK_A, MODIFIER_NONE)
+KEY("b",  KeyB,         dom::KeyboardEvent_Binding::DOM_VK_B, MODIFIER_NONE)
+KEY("c",  KeyC,         dom::KeyboardEvent_Binding::DOM_VK_C, MODIFIER_NONE)
+KEY("d",  KeyD,         dom::KeyboardEvent_Binding::DOM_VK_D, MODIFIER_NONE)
+KEY("e",  KeyE,         dom::KeyboardEvent_Binding::DOM_VK_E, MODIFIER_NONE)
+KEY("f",  KeyF,         dom::KeyboardEvent_Binding::DOM_VK_F, MODIFIER_NONE)
+KEY("g",  KeyG,         dom::KeyboardEvent_Binding::DOM_VK_G, MODIFIER_NONE)
+KEY("h",  KeyH,         dom::KeyboardEvent_Binding::DOM_VK_H, MODIFIER_NONE)
+KEY("i",  KeyI,         dom::KeyboardEvent_Binding::DOM_VK_I, MODIFIER_NONE)
+KEY("j",  KeyJ,         dom::KeyboardEvent_Binding::DOM_VK_J, MODIFIER_NONE)
+KEY("k",  KeyK,         dom::KeyboardEvent_Binding::DOM_VK_K, MODIFIER_NONE)
+KEY("l",  KeyL,         dom::KeyboardEvent_Binding::DOM_VK_L, MODIFIER_NONE)
+KEY("m",  KeyM,         dom::KeyboardEvent_Binding::DOM_VK_M, MODIFIER_NONE)
+KEY("n",  KeyN,         dom::KeyboardEvent_Binding::DOM_VK_N, MODIFIER_NONE)
+KEY("o",  KeyO,         dom::KeyboardEvent_Binding::DOM_VK_O, MODIFIER_NONE)
+KEY("p",  KeyP,         dom::KeyboardEvent_Binding::DOM_VK_P, MODIFIER_NONE)
+KEY("q",  KeyQ,         dom::KeyboardEvent_Binding::DOM_VK_Q, MODIFIER_NONE)
+KEY("r",  KeyR,         dom::KeyboardEvent_Binding::DOM_VK_R, MODIFIER_NONE)
+KEY("s",  KeyS,         dom::KeyboardEvent_Binding::DOM_VK_S, MODIFIER_NONE)
+KEY("t",  KeyT,         dom::KeyboardEvent_Binding::DOM_VK_T, MODIFIER_NONE)
+KEY("u",  KeyU,         dom::KeyboardEvent_Binding::DOM_VK_U, MODIFIER_NONE)
+KEY("v",  KeyV,         dom::KeyboardEvent_Binding::DOM_VK_V, MODIFIER_NONE)
+KEY("w",  KeyW,         dom::KeyboardEvent_Binding::DOM_VK_W, MODIFIER_NONE)
+KEY("x",  KeyX,         dom::KeyboardEvent_Binding::DOM_VK_X, MODIFIER_NONE)
+KEY("y",  KeyY,         dom::KeyboardEvent_Binding::DOM_VK_Y, MODIFIER_NONE)
+KEY("z",  KeyZ,         dom::KeyboardEvent_Binding::DOM_VK_Z, MODIFIER_NONE)
+KEY("0",  Digit0,       dom::KeyboardEvent_Binding::DOM_VK_0, MODIFIER_NONE)
+KEY("1",  Digit1,       dom::KeyboardEvent_Binding::DOM_VK_1, MODIFIER_NONE)
+KEY("2",  Digit2,       dom::KeyboardEvent_Binding::DOM_VK_2, MODIFIER_NONE)
+KEY("3",  Digit3,       dom::KeyboardEvent_Binding::DOM_VK_3, MODIFIER_NONE)
+KEY("4",  Digit4,       dom::KeyboardEvent_Binding::DOM_VK_4, MODIFIER_NONE)
+KEY("5",  Digit5,       dom::KeyboardEvent_Binding::DOM_VK_5, MODIFIER_NONE)
+KEY("6",  Digit6,       dom::KeyboardEvent_Binding::DOM_VK_6, MODIFIER_NONE)
+KEY("7",  Digit7,       dom::KeyboardEvent_Binding::DOM_VK_7, MODIFIER_NONE)
+KEY("8",  Digit8,       dom::KeyboardEvent_Binding::DOM_VK_8, MODIFIER_NONE)
+KEY("9",  Digit9,       dom::KeyboardEvent_Binding::DOM_VK_9, MODIFIER_NONE)
+KEY(")",  Digit0,       dom::KeyboardEvent_Binding::DOM_VK_0, MODIFIER_SHIFT)
+KEY("!",  Digit1,       dom::KeyboardEvent_Binding::DOM_VK_1, MODIFIER_SHIFT)
+KEY("@",  Digit2,       dom::KeyboardEvent_Binding::DOM_VK_2, MODIFIER_SHIFT)
+KEY("#",  Digit3,       dom::KeyboardEvent_Binding::DOM_VK_3, MODIFIER_SHIFT)
+KEY("$",  Digit4,       dom::KeyboardEvent_Binding::DOM_VK_4, MODIFIER_SHIFT)
+KEY("%",  Digit5,       dom::KeyboardEvent_Binding::DOM_VK_5, MODIFIER_SHIFT)
+KEY("^",  Digit6,       dom::KeyboardEvent_Binding::DOM_VK_6, MODIFIER_SHIFT)
+KEY("&",  Digit7,       dom::KeyboardEvent_Binding::DOM_VK_7, MODIFIER_SHIFT)
+KEY("*",  Digit8,       dom::KeyboardEvent_Binding::DOM_VK_8, MODIFIER_SHIFT)
+KEY("(",  Digit9,       dom::KeyboardEvent_Binding::DOM_VK_9, MODIFIER_SHIFT)
--- a/toolkit/components/resistfingerprinting/nsRFPService.cpp
+++ b/toolkit/components/resistfingerprinting/nsRFPService.cpp
@@ -1063,17 +1063,17 @@ nsRFPService::GetSpoofedCode(const nsIDo
     return false;
   }
 
   WidgetKeyboardEvent::GetDOMCodeName(keyCodeInfo.mCode, aOut);
 
   // We need to change the 'Left' with 'Right' if the location indicates
   // it's a right key.
   if (aKeyboardEvent->mLocation ==
-        dom::KeyboardEventBinding::DOM_KEY_LOCATION_RIGHT &&
+        dom::KeyboardEvent_Binding::DOM_KEY_LOCATION_RIGHT &&
       StringEndsWith(aOut, NS_LITERAL_STRING("Left"))) {
     aOut.ReplaceLiteral(aOut.Length() - 4, 4, u"Right");
   }
 
   return true;
 }
 
 /* static */
--- a/toolkit/components/satchel/nsFormFillController.cpp
+++ b/toolkit/components/satchel/nsFormFillController.cpp
@@ -1073,99 +1073,99 @@ nsFormFillController::KeyPress(Event* aE
     return NS_ERROR_FAILURE;
   }
 
   bool cancel = false;
   bool unused = false;
 
   uint32_t k = keyEvent->KeyCode();
   switch (k) {
-  case KeyboardEventBinding::DOM_VK_DELETE:
+  case KeyboardEvent_Binding::DOM_VK_DELETE:
 #ifndef XP_MACOSX
     mController->HandleDelete(&cancel);
     break;
-  case KeyboardEventBinding::DOM_VK_BACK_SPACE:
+  case KeyboardEvent_Binding::DOM_VK_BACK_SPACE:
     mController->HandleText(&unused);
     break;
 #else
-  case KeyboardEventBinding::DOM_VK_BACK_SPACE:
+  case KeyboardEvent_Binding::DOM_VK_BACK_SPACE:
     {
       if (keyEvent->ShiftKey()) {
         mController->HandleDelete(&cancel);
       } else {
         mController->HandleText(&unused);
       }
 
       break;
     }
 #endif
-  case KeyboardEventBinding::DOM_VK_PAGE_UP:
-  case KeyboardEventBinding::DOM_VK_PAGE_DOWN:
+  case KeyboardEvent_Binding::DOM_VK_PAGE_UP:
+  case KeyboardEvent_Binding::DOM_VK_PAGE_DOWN:
     {
       if (keyEvent->CtrlKey() ||
           keyEvent->AltKey() ||
           keyEvent->MetaKey()) {
         break;
       }
     }
     MOZ_FALLTHROUGH;
-  case KeyboardEventBinding::DOM_VK_UP:
-  case KeyboardEventBinding::DOM_VK_DOWN:
-  case KeyboardEventBinding::DOM_VK_LEFT:
-  case KeyboardEventBinding::DOM_VK_RIGHT:
+  case KeyboardEvent_Binding::DOM_VK_UP:
+  case KeyboardEvent_Binding::DOM_VK_DOWN:
+  case KeyboardEvent_Binding::DOM_VK_LEFT:
+  case KeyboardEvent_Binding::DOM_VK_RIGHT:
     {
       // Get the writing-mode of the relevant input element,
       // so that we can remap arrow keys if necessary.
       mozilla::WritingMode wm;
       if (mFocusedInput) {
         nsIFrame *frame = mFocusedInput->GetPrimaryFrame();
         if (frame) {
           wm = frame->GetWritingMode();
         }
       }
       if (wm.IsVertical()) {
         switch (k) {
-        case KeyboardEventBinding::DOM_VK_LEFT:
-          k = wm.IsVerticalLR() ? KeyboardEventBinding::DOM_VK_UP
-                                : KeyboardEventBinding::DOM_VK_DOWN;
+        case KeyboardEvent_Binding::DOM_VK_LEFT:
+          k = wm.IsVerticalLR() ? KeyboardEvent_Binding::DOM_VK_UP
+                                : KeyboardEvent_Binding::DOM_VK_DOWN;
           break;
-        case KeyboardEventBinding::DOM_VK_RIGHT:
-          k = wm.IsVerticalLR() ? KeyboardEventBinding::DOM_VK_DOWN
-                                : KeyboardEventBinding::DOM_VK_UP;
+        case KeyboardEvent_Binding::DOM_VK_RIGHT:
+          k = wm.IsVerticalLR() ? KeyboardEvent_Binding::DOM_VK_DOWN
+                                : KeyboardEvent_Binding::DOM_VK_UP;
           break;
-        case KeyboardEventBinding::DOM_VK_UP:
-          k = KeyboardEventBinding::DOM_VK_LEFT;
+        case KeyboardEvent_Binding::DOM_VK_UP:
+          k = KeyboardEvent_Binding::DOM_VK_LEFT;
           break;
-        case KeyboardEventBinding::DOM_VK_DOWN:
-          k = KeyboardEventBinding::DOM_VK_RIGHT;
+        case KeyboardEvent_Binding::DOM_VK_DOWN:
+          k = KeyboardEvent_Binding::DOM_VK_RIGHT;
           break;
         }
       }
     }
     mController->HandleKeyNavigation(k, &cancel);
     break;
-  case KeyboardEventBinding::DOM_VK_ESCAPE:
+  case KeyboardEvent_Binding::DOM_VK_ESCAPE:
     mController->HandleEscape(&cancel);
     break;
-  case KeyboardEventBinding::DOM_VK_TAB:
+  case KeyboardEvent_Binding::DOM_VK_TAB:
     mController->HandleTab();
     cancel = false;
     break;
-  case KeyboardEventBinding::DOM_VK_RETURN:
+  case KeyboardEvent_Binding::DOM_VK_RETURN:
     mController->HandleEnter(false, aEvent, &cancel);
     break;
   }
 
   if (cancel) {
     aEvent->PreventDefault();
     // Don't let the page see the RETURN event when the popup is open
     // (indicated by cancel=true) so sites don't manually submit forms
     // (e.g. via submit.click()) without the autocompleted value being filled.
     // Bug 286933 will fix this for other key events.
-    if (k == KeyboardEventBinding::DOM_VK_RETURN) {
+    if (k == KeyboardEvent_Binding::DOM_VK_RETURN) {
       aEvent->StopPropagation();
     }
   }
 
   return NS_OK;
 }
 
 nsresult
@@ -1219,17 +1219,17 @@ nsFormFillController::ShowPopup()
     // Show the popup with a filtered result set
     mController->SetSearchString(EmptyString());
     bool unused = false;
     mController->HandleText(&unused);
   } else {
     // Show the popup with the complete result set.  Can't use HandleText()
     // because it doesn't display the popup if the input is blank.
     bool cancel = false;
-    mController->HandleKeyNavigation(KeyboardEventBinding::DOM_VK_DOWN, &cancel);
+    mController->HandleKeyNavigation(KeyboardEvent_Binding::DOM_VK_DOWN, &cancel);
   }
 
   return NS_OK;
 }
 
 ////////////////////////////////////////////////////////////////////////
 //// nsFormFillController
 
--- a/toolkit/components/typeaheadfind/nsTypeAheadFind.cpp
+++ b/toolkit/components/typeaheadfind/nsTypeAheadFind.cpp
@@ -435,17 +435,17 @@ nsTypeAheadFind::FindItNow(nsIPresShell 
   }
 
   if (!mStartPointRange) {
     mStartPointRange = new nsRange(presShell->GetDocument());
   }
 
   // XXXbz Should this really be ignoring errors?
   int16_t rangeCompareResult =
-    mStartPointRange->CompareBoundaryPoints(RangeBinding::START_TO_START,
+    mStartPointRange->CompareBoundaryPoints(Range_Binding::START_TO_START,
                                             *mSearchRange, IgnoreErrors());
   // No need to wrap find in doc if starting at beginning
   bool hasWrapped = (rangeCompareResult < 0);
 
   if (mTypeAheadBuffer.IsEmpty() || !EnsureFind())
     return NS_ERROR_FAILURE;
 
   mFind->SetFindBackwards(aFindPrev);
@@ -489,33 +489,33 @@ nsTypeAheadFind::FindItNow(nsIPresShell 
         // visible range in the viewport.  We _may_ be able to just
         // start there, if it's not taking us in the wrong direction.
         if (aFindPrev) {
           // We can continue at the end of mStartPointRange if its end is before
           // the start of returnRange or coincides with it.  Otherwise, we need
           // to continue at the start of returnRange.
           IgnoredErrorResult rv;
           int16_t compareResult =
-            mStartPointRange->CompareBoundaryPoints(RangeBinding::START_TO_END,
+            mStartPointRange->CompareBoundaryPoints(Range_Binding::START_TO_END,
                                                     *returnRange, rv);
           if (!rv.Failed() && compareResult <= 0) {
             // OK to start at the end of mStartPointRange
             mStartPointRange->Collapse(false);
           } else {
             // Start at the beginning of returnRange
             mStartPointRange = returnRange->CloneRange();
             mStartPointRange->Collapse(true);
           }
         } else {
           // We can continue at the start of mStartPointRange if its start is
           // after the end of returnRange or coincides with it.  Otherwise, we
           // need to continue at the end of returnRange.
           IgnoredErrorResult rv;
           int16_t compareResult =
-            mStartPointRange->CompareBoundaryPoints(RangeBinding::END_TO_START,
+            mStartPointRange->CompareBoundaryPoints(Range_Binding::END_TO_START,
                                                     *returnRange, rv);
           if (!rv.Failed() && compareResult >= 0) {
             // OK to start at the start of mStartPointRange
             mStartPointRange->Collapse(true);
           } else {
             // Start at the end of returnRange
             mStartPointRange = returnRange->CloneRange();
             mStartPointRange->Collapse(false);
--- a/widget/InputData.cpp
+++ b/widget/InputData.cpp
@@ -268,17 +268,17 @@ MultiTouchInput::ToWidgetMouseEvent(nsIW
                          WidgetMouseEvent::eReal, WidgetMouseEvent::eNormal);
 
   const SingleTouchData& firstTouch = mTouches[0];
   event.mRefPoint.x = firstTouch.mScreenPoint.x;
   event.mRefPoint.y = firstTouch.mScreenPoint.y;
 
   event.mTime = mTime;
   event.button = WidgetMouseEvent::eLeftButton;
-  event.inputSource = MouseEventBinding::MOZ_SOURCE_TOUCH;
+  event.inputSource = MouseEvent_Binding::MOZ_SOURCE_TOUCH;
   event.mModifiers = modifiers;
   event.mFlags.mHandledByAPZ = mHandledByAPZ;
   event.mFocusSequenceNumber = mFocusSequenceNumber;
 
   if (mouseEventMessage != eMouseMove) {
     event.mClickCount = 1;
   }
 
@@ -541,17 +541,17 @@ PanGestureInput::ToWidgetWheelEvent(nsIW
   WidgetWheelEvent wheelEvent(true, eWheel, aWidget);
   wheelEvent.mModifiers = this->modifiers;
   wheelEvent.mTime = mTime;
   wheelEvent.mTimeStamp = mTimeStamp;
   wheelEvent.mRefPoint =
     RoundedToInt(ViewAs<LayoutDevicePixel>(mPanStartPoint,
       PixelCastJustification::LayoutDeviceIsScreenForUntransformedEvent));
   wheelEvent.buttons = 0;
-  wheelEvent.mDeltaMode = WheelEventBinding::DOM_DELTA_PIXEL;
+  wheelEvent.mDeltaMode = WheelEvent_Binding::DOM_DELTA_PIXEL;
   wheelEvent.mMayHaveMomentum = true; // pan inputs may have momentum
   wheelEvent.mIsMomentum = IsMomentum();
   wheelEvent.mLineOrPageDeltaX = mLineOrPageDeltaX;
   wheelEvent.mLineOrPageDeltaY = mLineOrPageDeltaY;
   wheelEvent.mDeltaX = mPanDisplacement.x;
   wheelEvent.mDeltaY = mPanDisplacement.y;
   wheelEvent.mFlags.mHandledByAPZ = mHandledByAPZ;
   wheelEvent.mFocusSequenceNumber = mFocusSequenceNumber;
@@ -740,39 +740,39 @@ ScrollWheelInput::ScrollWheelInput(const
     ScreenPoint(ViewAs<ScreenPixel>(aWheelEvent.mRefPoint,
       PixelCastJustification::LayoutDeviceIsScreenForUntransformedEvent));
 }
 
 ScrollWheelInput::ScrollDeltaType
 ScrollWheelInput::DeltaTypeForDeltaMode(uint32_t aDeltaMode)
 {
   switch (aDeltaMode) {
-  case WheelEventBinding::DOM_DELTA_LINE:
+  case WheelEvent_Binding::DOM_DELTA_LINE:
     return SCROLLDELTA_LINE;
-  case WheelEventBinding::DOM_DELTA_PAGE:
+  case WheelEvent_Binding::DOM_DELTA_PAGE:
     return SCROLLDELTA_PAGE;
-  case WheelEventBinding::DOM_DELTA_PIXEL:
+  case WheelEvent_Binding::DOM_DELTA_PIXEL:
     return SCROLLDELTA_PIXEL;
   default:
     MOZ_CRASH();
   }
   return SCROLLDELTA_LINE;
 }
 
 uint32_t
 ScrollWheelInput::DeltaModeForDeltaType(ScrollDeltaType aDeltaType)
 {
   switch (aDeltaType) {
   case ScrollWheelInput::SCROLLDELTA_LINE:
-    return WheelEventBinding::DOM_DELTA_LINE;
+    return WheelEvent_Binding::DOM_DELTA_LINE;
   case ScrollWheelInput::SCROLLDELTA_PAGE:
-    return WheelEventBinding::DOM_DELTA_PAGE;
+    return WheelEvent_Binding::DOM_DELTA_PAGE;
   case ScrollWheelInput::SCROLLDELTA_PIXEL:
   default:
-    return WheelEventBinding::DOM_DELTA_PIXEL;
+    return WheelEvent_Binding::DOM_DELTA_PIXEL;
   }
 }
 
 nsIScrollableFrame::ScrollUnit
 ScrollWheelInput::ScrollUnitForDeltaType(ScrollDeltaType aDeltaType)
 {
   switch (aDeltaType) {
   case SCROLLDELTA_LINE:
--- a/widget/MouseEvents.h
+++ b/widget/MouseEvents.h
@@ -105,31 +105,31 @@ private:
 
 protected:
   WidgetMouseEventBase()
     : button(0)
     , buttons(0)
     , pressure(0)
     , hitCluster(false)
     // Including MouseEventBinding.h here leads to an include loop, so
-    // we have to hardcode MouseEventBinding::MOZ_SOURCE_MOUSE.
-    , inputSource(/* MouseEventBinding::MOZ_SOURCE_MOUSE = */ 1)
+    // we have to hardcode MouseEvent_Binding::MOZ_SOURCE_MOUSE.
+    , inputSource(/* MouseEvent_Binding::MOZ_SOURCE_MOUSE = */ 1)
   {
   }
 
   WidgetMouseEventBase(bool aIsTrusted, EventMessage aMessage,
                        nsIWidget* aWidget, EventClassID aEventClassID)
     : WidgetInputEvent(aIsTrusted, aMessage, aWidget, aEventClassID)
     , button(0)
     , buttons(0)
     , pressure(0)
     , hitCluster(false)
     // Including MouseEventBinding.h here leads to an include loop, so
-    // we have to hardcode MouseEventBinding::MOZ_SOURCE_MOUSE.
-    , inputSource(/* MouseEventBinding::MOZ_SOURCE_MOUSE = */ 1)
+    // we have to hardcode MouseEvent_Binding::MOZ_SOURCE_MOUSE.
+    , inputSource(/* MouseEvent_Binding::MOZ_SOURCE_MOUSE = */ 1)
  {
  }
 
 public:
   virtual WidgetMouseEventBase* AsMouseEventBase() override { return this; }
 
   virtual WidgetEvent* Duplicate() const override
   {
@@ -487,18 +487,18 @@ private:
 
   WidgetWheelEvent()
     : mDeltaX(0.0)
     , mDeltaY(0.0)
     , mDeltaZ(0.0)
     , mOverflowDeltaX(0.0)
     , mOverflowDeltaY(0.0)
     // Including WheelEventBinding.h here leads to an include loop, so
-    // we have to hardcode WheelEventBinding::DOM_DELTA_PIXEL.
-    , mDeltaMode(/* WheelEventBinding::DOM_DELTA_PIXEL = */ 0)
+    // we have to hardcode WheelEvent_Binding::DOM_DELTA_PIXEL.
+    , mDeltaMode(/* WheelEvent_Binding::DOM_DELTA_PIXEL = */ 0)
     , mLineOrPageDeltaX(0)
     , mLineOrPageDeltaY(0)
     , mScrollType(SCROLL_DEFAULT)
     , mCustomizedByUserPrefs(false)
     , mIsMomentum(false)
     , mIsNoLineOrPageDelta(false)
     , mViewPortIsOverscrolled(false)
     , mCanTriggerSwipe(false)
@@ -513,18 +513,18 @@ public:
   WidgetWheelEvent(bool aIsTrusted, EventMessage aMessage, nsIWidget* aWidget)
     : WidgetMouseEventBase(aIsTrusted, aMessage, aWidget, eWheelEventClass)
     , mDeltaX(0.0)
     , mDeltaY(0.0)
     , mDeltaZ(0.0)
     , mOverflowDeltaX(0.0)
     , mOverflowDeltaY(0.0)
     // Including WheelEventBinding.h here leads to an include loop, so
-    // we have to hardcode WheelEventBinding::DOM_DELTA_PIXEL.
-    , mDeltaMode(/* WheelEventBinding::DOM_DELTA_PIXEL = */ 0)
+    // we have to hardcode WheelEvent_Binding::DOM_DELTA_PIXEL.
+    , mDeltaMode(/* WheelEvent_Binding::DOM_DELTA_PIXEL = */ 0)
     , mLineOrPageDeltaX(0)
     , mLineOrPageDeltaY(0)
     , mScrollType(SCROLL_DEFAULT)
     , mCustomizedByUserPrefs(false)
     , mMayHaveMomentum(false)
     , mIsMomentum(false)
     , mIsNoLineOrPageDelta(false)
     , mViewPortIsOverscrolled(false)
@@ -570,17 +570,17 @@ public:
   // NOTE: mDeltaX, mDeltaY and mDeltaZ may be modified by EventStateManager.
   //       However, mOverflowDeltaX and mOverflowDeltaY indicate unused original
   //       delta values which are not applied the delta_multiplier prefs.
   //       So, if widget wanted to know the actual direction to be scrolled,
   //       it would need to check the mDeltaX and mDeltaY.
   double mOverflowDeltaX;
   double mOverflowDeltaY;
 
-  // Should be one of WheelEventBinding::DOM_DELTA_*
+  // Should be one of WheelEvent_Binding::DOM_DELTA_*
   uint32_t mDeltaMode;
 
   // If widget sets mLineOrPageDelta, EventStateManager will dispatch
   // eLegacyMouseLineOrPageScroll event for compatibility.  Note that the delta
   // value means pages if the mDeltaMode is DOM_DELTA_PAGE, otherwise, lines.
   int32_t mLineOrPageDeltaX;
   int32_t mLineOrPageDeltaY;
 
--- a/widget/TextEvents.h
+++ b/widget/TextEvents.h
@@ -38,20 +38,20 @@ enum
 #undef NS_DEFINE_VK
   NS_VK_UNKNOWN = 0xFF
 };
 
 namespace mozilla {
 
 enum : uint32_t
 {
-  eKeyLocationStandard = dom::KeyboardEventBinding::DOM_KEY_LOCATION_STANDARD,
-  eKeyLocationLeft     = dom::KeyboardEventBinding::DOM_KEY_LOCATION_LEFT,
-  eKeyLocationRight    = dom::KeyboardEventBinding::DOM_KEY_LOCATION_RIGHT,
-  eKeyLocationNumpad   = dom::KeyboardEventBinding::DOM_KEY_LOCATION_NUMPAD
+  eKeyLocationStandard = dom::KeyboardEvent_Binding::DOM_KEY_LOCATION_STANDARD,
+  eKeyLocationLeft     = dom::KeyboardEvent_Binding::DOM_KEY_LOCATION_LEFT,
+  eKeyLocationRight    = dom::KeyboardEvent_Binding::DOM_KEY_LOCATION_RIGHT,
+  eKeyLocationNumpad   = dom::KeyboardEvent_Binding::DOM_KEY_LOCATION_NUMPAD
 };
 
 const nsCString GetDOMKeyCodeName(uint32_t aKeyCode);
 
 namespace dom {
   class PBrowserParent;
   class PBrowserChild;
 } // namespace dom
--- a/widget/WidgetEventImpl.cpp
+++ b/widget/WidgetEventImpl.cpp
@@ -621,26 +621,26 @@ WidgetInputEvent::GetModifier(const nsAS
 
 /* static */
 Modifier
 WidgetInputEvent::AccelModifier()
 {
   static Modifier sAccelModifier = MODIFIER_NONE;
   if (sAccelModifier == MODIFIER_NONE) {
     switch (Preferences::GetInt("ui.key.accelKey", 0)) {
-      case dom::KeyboardEventBinding::DOM_VK_META:
+      case dom::KeyboardEvent_Binding::DOM_VK_META:
         sAccelModifier = MODIFIER_META;
         break;
-      case dom::KeyboardEventBinding::DOM_VK_WIN:
+      case dom::KeyboardEvent_Binding::DOM_VK_WIN:
         sAccelModifier = MODIFIER_OS;
         break;
-      case dom::KeyboardEventBinding::DOM_VK_ALT:
+      case dom::KeyboardEvent_Binding::DOM_VK_ALT:
         sAccelModifier = MODIFIER_ALT;
         break;
-      case dom::KeyboardEventBinding::DOM_VK_CONTROL:
+      case dom::KeyboardEvent_Binding::DOM_VK_CONTROL:
         sAccelModifier = MODIFIER_CONTROL;
         break;
       default:
 #ifdef XP_MACOSX
         sAccelModifier = MODIFIER_META;
 #else
         sAccelModifier = MODIFIER_CONTROL;
 #endif
@@ -1173,41 +1173,41 @@ WidgetKeyboardEvent::GetCodeNameIndex(co
 }
 
 /* static */ uint32_t
 WidgetKeyboardEvent::GetFallbackKeyCodeOfPunctuationKey(
                        CodeNameIndex aCodeNameIndex)
 {
   switch (aCodeNameIndex) {
     case CODE_NAME_INDEX_Semicolon:     // VK_OEM_1 on Windows
-      return dom::KeyboardEventBinding::DOM_VK_SEMICOLON;
+      return dom::KeyboardEvent_Binding::DOM_VK_SEMICOLON;
     case CODE_NAME_INDEX_Equal:         // VK_OEM_PLUS on Windows
-      return dom::KeyboardEventBinding::DOM_VK_EQUALS;
+      return dom::KeyboardEvent_Binding::DOM_VK_EQUALS;
     case CODE_NAME_INDEX_Comma:         // VK_OEM_COMMA on Windows
-      return dom::KeyboardEventBinding::DOM_VK_COMMA;
+      return dom::KeyboardEvent_Binding::DOM_VK_COMMA;
     case CODE_NAME_INDEX_Minus:         // VK_OEM_MINUS on Windows
-      return dom::KeyboardEventBinding::DOM_VK_HYPHEN_MINUS;
+      return dom::KeyboardEvent_Binding::DOM_VK_HYPHEN_MINUS;
     case CODE_NAME_INDEX_Period:        // VK_OEM_PERIOD on Windows
-      return dom::KeyboardEventBinding::DOM_VK_PERIOD;
+      return dom::KeyboardEvent_Binding::DOM_VK_PERIOD;
     case CODE_NAME_INDEX_Slash:         // VK_OEM_2 on Windows
-      return dom::KeyboardEventBinding::DOM_VK_SLASH;
+      return dom::KeyboardEvent_Binding::DOM_VK_SLASH;
     case CODE_NAME_INDEX_Backquote:     // VK_OEM_3 on Windows
-      return dom::KeyboardEventBinding::DOM_VK_BACK_QUOTE;
+      return dom::KeyboardEvent_Binding::DOM_VK_BACK_QUOTE;
     case CODE_NAME_INDEX_BracketLeft:   // VK_OEM_4 on Windows
-      return dom::KeyboardEventBinding::DOM_VK_OPEN_BRACKET;
+      return dom::KeyboardEvent_Binding::DOM_VK_OPEN_BRACKET;
     case CODE_NAME_INDEX_Backslash:     // VK_OEM_5 on Windows
-      return dom::KeyboardEventBinding::DOM_VK_BACK_SLASH;
+      return dom::KeyboardEvent_Binding::DOM_VK_BACK_SLASH;
     case CODE_NAME_INDEX_BracketRight:  // VK_OEM_6 on Windows
-      return dom::KeyboardEventBinding::DOM_VK_CLOSE_BRACKET;
+      return dom::KeyboardEvent_Binding::DOM_VK_CLOSE_BRACKET;
     case CODE_NAME_INDEX_Quote:         // VK_OEM_7 on Windows
-      return dom::KeyboardEventBinding::DOM_VK_QUOTE;
+      return dom::KeyboardEvent_Binding::DOM_VK_QUOTE;
     case CODE_NAME_INDEX_IntlBackslash: // VK_OEM_5 on Windows (ABNT, etc)
     case CODE_NAME_INDEX_IntlYen:       // VK_OEM_5 on Windows (JIS)
     case CODE_NAME_INDEX_IntlRo:        // VK_OEM_102 on Windows
-      return dom::KeyboardEventBinding::DOM_VK_BACK_SLASH;
+      return dom::KeyboardEvent_Binding::DOM_VK_BACK_SLASH;
     default:
       return 0;
   }
 }
 
 /* static */ const char*
 WidgetKeyboardEvent::GetCommandStr(Command aCommand)
 {
@@ -1276,178 +1276,178 @@ WidgetKeyboardEvent::ComputeLocationFrom
   }
 }
 
 /* static */ uint32_t
 WidgetKeyboardEvent::ComputeKeyCodeFromKeyNameIndex(KeyNameIndex aKeyNameIndex)
 {
   switch (aKeyNameIndex) {
     case KEY_NAME_INDEX_Cancel:
-      return dom::KeyboardEventBinding::DOM_VK_CANCEL;
+      return dom::KeyboardEvent_Binding::DOM_VK_CANCEL;
     case KEY_NAME_INDEX_Help:
-      return dom::KeyboardEventBinding::DOM_VK_HELP;
+      return dom::KeyboardEvent_Binding::DOM_VK_HELP;
     case KEY_NAME_INDEX_Backspace:
-      return dom::KeyboardEventBinding::DOM_VK_BACK_SPACE;
+      return dom::KeyboardEvent_Binding::DOM_VK_BACK_SPACE;
     case KEY_NAME_INDEX_Tab:
-      return dom::KeyboardEventBinding::DOM_VK_TAB;
+      return dom::KeyboardEvent_Binding::DOM_VK_TAB;
     case KEY_NAME_INDEX_Clear:
-      return dom::KeyboardEventBinding::DOM_VK_CLEAR;
+      return dom::KeyboardEvent_Binding::DOM_VK_CLEAR;
     case KEY_NAME_INDEX_Enter:
-      return dom::KeyboardEventBinding::DOM_VK_RETURN;
+      return dom::KeyboardEvent_Binding::DOM_VK_RETURN;
     case KEY_NAME_INDEX_Shift:
-      return dom::KeyboardEventBinding::DOM_VK_SHIFT;
+      return dom::KeyboardEvent_Binding::DOM_VK_SHIFT;
     case KEY_NAME_INDEX_Control:
-      return dom::KeyboardEventBinding::DOM_VK_CONTROL;
+      return dom::KeyboardEvent_Binding::DOM_VK_CONTROL;
     case KEY_NAME_INDEX_Alt:
-      return dom::KeyboardEventBinding::DOM_VK_ALT;
+      return dom::KeyboardEvent_Binding::DOM_VK_ALT;
     case KEY_NAME_INDEX_Pause:
-      return dom::KeyboardEventBinding::DOM_VK_PAUSE;
+      return dom::KeyboardEvent_Binding::DOM_VK_PAUSE;
     case KEY_NAME_INDEX_CapsLock:
-      return dom::KeyboardEventBinding::DOM_VK_CAPS_LOCK;
+      return dom::KeyboardEvent_Binding::DOM_VK_CAPS_LOCK;
     case KEY_NAME_INDEX_Hiragana:
     case KEY_NAME_INDEX_Katakana:
     case KEY_NAME_INDEX_HiraganaKatakana:
     case KEY_NAME_INDEX_KanaMode:
-      return dom::KeyboardEventBinding::DOM_VK_KANA;
+      return dom::KeyboardEvent_Binding::DOM_VK_KANA;
     case KEY_NAME_INDEX_HangulMode:
-      return dom::KeyboardEventBinding::DOM_VK_HANGUL;
+      return dom::KeyboardEvent_Binding::DOM_VK_HANGUL;
     case KEY_NAME_INDEX_Eisu:
-      return dom::KeyboardEventBinding::DOM_VK_EISU;
+      return dom::KeyboardEvent_Binding::DOM_VK_EISU;
     case KEY_NAME_INDEX_JunjaMode:
-      return dom::KeyboardEventBinding::DOM_VK_JUNJA;
+      return dom::KeyboardEvent_Binding::DOM_VK_JUNJA;
     case KEY_NAME_INDEX_FinalMode:
-      return dom::KeyboardEventBinding::DOM_VK_FINAL;
+      return dom::KeyboardEvent_Binding::DOM_VK_FINAL;
     case KEY_NAME_INDEX_HanjaMode:
-      return dom::KeyboardEventBinding::DOM_VK_HANJA;
+      return dom::KeyboardEvent_Binding::DOM_VK_HANJA;
     case KEY_NAME_INDEX_KanjiMode:
-      return dom::KeyboardEventBinding::DOM_VK_KANJI;
+      return dom::KeyboardEvent_Binding::DOM_VK_KANJI;
     case KEY_NAME_INDEX_Escape:
-      return dom::KeyboardEventBinding::DOM_VK_ESCAPE;
+      return dom::KeyboardEvent_Binding::DOM_VK_ESCAPE;
     case KEY_NAME_INDEX_Convert:
-      return dom::KeyboardEventBinding::DOM_VK_CONVERT;
+      return dom::KeyboardEvent_Binding::DOM_VK_CONVERT;
     case KEY_NAME_INDEX_NonConvert:
-      return dom::KeyboardEventBinding::DOM_VK_NONCONVERT;
+      return dom::KeyboardEvent_Binding::DOM_VK_NONCONVERT;
     case KEY_NAME_INDEX_Accept:
-      return dom::KeyboardEventBinding::DOM_VK_ACCEPT;
+      return dom::KeyboardEvent_Binding::DOM_VK_ACCEPT;
     case KEY_NAME_INDEX_ModeChange:
-      return dom::KeyboardEventBinding::DOM_VK_MODECHANGE;
+      return dom::KeyboardEvent_Binding::DOM_VK_MODECHANGE;
     case KEY_NAME_INDEX_PageUp:
-      return dom::KeyboardEventBinding::DOM_VK_PAGE_UP;
+      return dom::KeyboardEvent_Binding::DOM_VK_PAGE_UP;
     case KEY_NAME_INDEX_PageDown:
-      return dom::KeyboardEventBinding::DOM_VK_PAGE_DOWN;
+      return dom::KeyboardEvent_Binding::DOM_VK_PAGE_DOWN;
     case KEY_NAME_INDEX_End:
-      return dom::KeyboardEventBinding::DOM_VK_END;
+      return dom::KeyboardEvent_Binding::DOM_VK_END;
     case KEY_NAME_INDEX_Home:
-      return dom::KeyboardEventBinding::DOM_VK_HOME;
+      return dom::KeyboardEvent_Binding::DOM_VK_HOME;
     case KEY_NAME_INDEX_ArrowLeft:
-      return dom::KeyboardEventBinding::DOM_VK_LEFT;
+      return dom::KeyboardEvent_Binding::DOM_VK_LEFT;
     case KEY_NAME_INDEX_ArrowUp:
-      return dom::KeyboardEventBinding::DOM_VK_UP;
+      return dom::KeyboardEvent_Binding::DOM_VK_UP;
     case KEY_NAME_INDEX_ArrowRight:
-      return dom::KeyboardEventBinding::DOM_VK_RIGHT;
+      return dom::KeyboardEvent_Binding::DOM_VK_RIGHT;
     case KEY_NAME_INDEX_ArrowDown:
-      return dom::KeyboardEventBinding::DOM_VK_DOWN;
+      return dom::KeyboardEvent_Binding::DOM_VK_DOWN;
     case KEY_NAME_INDEX_Select:
-      return dom::KeyboardEventBinding::DOM_VK_SELECT;
+      return dom::KeyboardEvent_Binding::DOM_VK_SELECT;
     case KEY_NAME_INDEX_Print:
-      return dom::KeyboardEventBinding::DOM_VK_PRINT;
+      return dom::KeyboardEvent_Binding::DOM_VK_PRINT;
     case KEY_NAME_INDEX_Execute:
-      return dom::KeyboardEventBinding::DOM_VK_EXECUTE;
+      return dom::KeyboardEvent_Binding::DOM_VK_EXECUTE;
     case KEY_NAME_INDEX_PrintScreen:
-      return dom::KeyboardEventBinding::DOM_VK_PRINTSCREEN;
+      return dom::KeyboardEvent_Binding::DOM_VK_PRINTSCREEN;
     case KEY_NAME_INDEX_Insert:
-      return dom::KeyboardEventBinding::DOM_VK_INSERT;
+      return dom::KeyboardEvent_Binding::DOM_VK_INSERT;
     case KEY_NAME_INDEX_Delete:
-      return dom::KeyboardEventBinding::DOM_VK_DELETE;
+      return dom::KeyboardEvent_Binding::DOM_VK_DELETE;
     case KEY_NAME_INDEX_OS:
     // case KEY_NAME_INDEX_Super:
     // case KEY_NAME_INDEX_Hyper:
-      return dom::KeyboardEventBinding::DOM_VK_WIN;
+      return dom::KeyboardEvent_Binding::DOM_VK_WIN;
     case KEY_NAME_INDEX_ContextMenu:
-      return dom::KeyboardEventBinding::DOM_VK_CONTEXT_MENU;
+      return dom::KeyboardEvent_Binding::DOM_VK_CONTEXT_MENU;
     case KEY_NAME_INDEX_Standby:
-      return dom::KeyboardEventBinding::DOM_VK_SLEEP;
+      return dom::KeyboardEvent_Binding::DOM_VK_SLEEP;
     case KEY_NAME_INDEX_F1:
-      return dom::KeyboardEventBinding::DOM_VK_F1;
+      return dom::KeyboardEvent_Binding::DOM_VK_F1;
     case KEY_NAME_INDEX_F2:
-      return dom::KeyboardEventBinding::DOM_VK_F2;
+      return dom::KeyboardEvent_Binding::DOM_VK_F2;
     case KEY_NAME_INDEX_F3:
-      return dom::KeyboardEventBinding::DOM_VK_F3;
+      return dom::KeyboardEvent_Binding::DOM_VK_F3;
     case KEY_NAME_INDEX_F4:
-      return dom::KeyboardEventBinding::DOM_VK_F4;
+      return dom::KeyboardEvent_Binding::DOM_VK_F4;
     case KEY_NAME_INDEX_F5:
-      return dom::KeyboardEventBinding::DOM_VK_F5;
+      return dom::KeyboardEvent_Binding::DOM_VK_F5;
     case KEY_NAME_INDEX_F6:
-      return dom::KeyboardEventBinding::DOM_VK_F6;
+      return dom::KeyboardEvent_Binding::DOM_VK_F6;
     case KEY_NAME_INDEX_F7:
-      return dom::KeyboardEventBinding::DOM_VK_F7;
+      return dom::KeyboardEvent_Binding::DOM_VK_F7;
     case KEY_NAME_INDEX_F8:
-      return dom::KeyboardEventBinding::DOM_VK_F8;
+      return dom::KeyboardEvent_Binding::DOM_VK_F8;
     case KEY_NAME_INDEX_F9:
-      return dom::KeyboardEventBinding::DOM_VK_F9;
+      return dom::KeyboardEvent_Binding::DOM_VK_F9;
     case KEY_NAME_INDEX_F10:
-      return dom::KeyboardEventBinding::DOM_VK_F10;
+      return dom::KeyboardEvent_Binding::DOM_VK_F10;
     case KEY_NAME_INDEX_F11:
-      return dom::KeyboardEventBinding::DOM_VK_F11;
+      return dom::KeyboardEvent_Binding::DOM_VK_F11;
     case KEY_NAME_INDEX_F12:
-      return dom::KeyboardEventBinding::DOM_VK_F12;
+      return dom::KeyboardEvent_Binding::DOM_VK_F12;
     case KEY_NAME_INDEX_F13:
-      return dom::KeyboardEventBinding::DOM_VK_F13;
+      return dom::KeyboardEvent_Binding::DOM_VK_F13;
     case KEY_NAME_INDEX_F14:
-      return dom::KeyboardEventBinding::DOM_VK_F14;
+      return dom::KeyboardEvent_Binding::DOM_VK_F14;
     case KEY_NAME_INDEX_F15:
-      return dom::KeyboardEventBinding::DOM_VK_F15;
+      return dom::KeyboardEvent_Binding::DOM_VK_F15;
     case KEY_NAME_INDEX_F16:
-      return dom::KeyboardEventBinding::DOM_VK_F16;
+      return dom::KeyboardEvent_Binding::DOM_VK_F16;
     case KEY_NAME_INDEX_F17:
-      return dom::KeyboardEventBinding::DOM_VK_F17;
+      return dom::KeyboardEvent_Binding::DOM_VK_F17;
     case KEY_NAME_INDEX_F18:
-      return dom::KeyboardEventBinding::DOM_VK_F18;
+      return dom::KeyboardEvent_Binding::DOM_VK_F18;
     case KEY_NAME_INDEX_F19:
-      return dom::KeyboardEventBinding::DOM_VK_F19;
+      return dom::KeyboardEvent_Binding::DOM_VK_F19;
     case KEY_NAME_INDEX_F20:
-      return dom::KeyboardEventBinding::DOM_VK_F20;
+      return dom::KeyboardEvent_Binding::DOM_VK_F20;
     case KEY_NAME_INDEX_F21:
-      return dom::KeyboardEventBinding::DOM_VK_F21;
+      return dom::KeyboardEvent_Binding::DOM_VK_F21;
     case KEY_NAME_INDEX_F22:
-      return dom::KeyboardEventBinding::DOM_VK_F22;
+      return dom::KeyboardEvent_Binding::DOM_VK_F22;
     case KEY_NAME_INDEX_F23:
-      return dom::KeyboardEventBinding::DOM_VK_F23;
+      return dom::KeyboardEvent_Binding::DOM_VK_F23;
     case KEY_NAME_INDEX_F24:
-      return dom::KeyboardEventBinding::DOM_VK_F24;
+      return dom::KeyboardEvent_Binding::DOM_VK_F24;
     case KEY_NAME_INDEX_NumLock:
-      return dom::KeyboardEventBinding::DOM_VK_NUM_LOCK;
+      return dom::KeyboardEvent_Binding::DOM_VK_NUM_LOCK;
     case KEY_NAME_INDEX_ScrollLock:
-      return dom::KeyboardEventBinding::DOM_VK_SCROLL_LOCK;
+      return dom::KeyboardEvent_Binding::DOM_VK_SCROLL_LOCK;
     case KEY_NAME_INDEX_AudioVolumeMute:
-      return dom::KeyboardEventBinding::DOM_VK_VOLUME_MUTE;
+      return dom::KeyboardEvent_Binding::DOM_VK_VOLUME_MUTE;
     case KEY_NAME_INDEX_AudioVolumeDown:
-      return dom::KeyboardEventBinding::DOM_VK_VOLUME_DOWN;
+      return dom::KeyboardEvent_Binding::DOM_VK_VOLUME_DOWN;
     case KEY_NAME_INDEX_AudioVolumeUp:
-      return dom::KeyboardEventBinding::DOM_VK_VOLUME_UP;
+      return dom::KeyboardEvent_Binding::DOM_VK_VOLUME_UP;
     case KEY_NAME_INDEX_Meta:
-      return dom::KeyboardEventBinding::DOM_VK_META;
+      return dom::KeyboardEvent_Binding::DOM_VK_META;
     case KEY_NAME_INDEX_AltGraph:
-      return dom::KeyboardEventBinding::DOM_VK_ALTGR;
+      return dom::KeyboardEvent_Binding::DOM_VK_ALTGR;
     case KEY_NAME_INDEX_Process:
-      return dom::KeyboardEventBinding::DOM_VK_PROCESSKEY;
+      return dom::KeyboardEvent_Binding::DOM_VK_PROCESSKEY;
     case KEY_NAME_INDEX_Attn:
-      return dom::KeyboardEventBinding::DOM_VK_ATTN;
+      return dom::KeyboardEvent_Binding::DOM_VK_ATTN;
     case KEY_NAME_INDEX_CrSel:
-      return dom::KeyboardEventBinding::DOM_VK_CRSEL;
+      return dom::KeyboardEvent_Binding::DOM_VK_CRSEL;
     case KEY_NAME_INDEX_ExSel:
-      return dom::KeyboardEventBinding::DOM_VK_EXSEL;
+      return dom::KeyboardEvent_Binding::DOM_VK_EXSEL;
     case KEY_NAME_INDEX_EraseEof:
-      return dom::KeyboardEventBinding::DOM_VK_EREOF;
+      return dom::KeyboardEvent_Binding::DOM_VK_EREOF;
     case KEY_NAME_INDEX_Play:
-      return dom::KeyboardEventBinding::DOM_VK_PLAY;
+      return dom::KeyboardEvent_Binding::DOM_VK_PLAY;
     case KEY_NAME_INDEX_ZoomToggle:
     case KEY_NAME_INDEX_ZoomIn:
     case KEY_NAME_INDEX_ZoomOut:
-      return dom::KeyboardEventBinding::DOM_VK_ZOOM;
+      return dom::KeyboardEvent_Binding::DOM_VK_ZOOM;
     default:
       return 0;
   }
 }
 
 /* static */ Modifier
 WidgetKeyboardEvent::GetModifierForKeyName(KeyNameIndex aKeyNameIndex)
 {
--- a/widget/android/nsWindow.cpp
+++ b/widget/android/nsWindow.cpp
@@ -604,17 +604,17 @@ public:
         }
 
         if (mouseType == MouseInput::MOUSE_NONE) {
             return false;
         }
 
         ScreenPoint origin = ScreenPoint(aX, aY);
 
-        MouseInput input(mouseType, buttonType, MouseEventBinding::MOZ_SOURCE_MOUSE, ConvertButtons(buttons), origin, aTime, GetEventTimeStamp(aTime), GetModifiers(aMetaState));
+        MouseInput input(mouseType, buttonType, MouseEvent_Binding::MOZ_SOURCE_MOUSE, ConvertButtons(buttons), origin, aTime, GetEventTimeStamp(aTime), GetModifiers(aMetaState));
 
         ScrollableLayerGuid guid;
         uint64_t blockId;
         nsEventStatus status = controller->InputBridge()->ReceiveInputEvent(input, &guid, &blockId);
 
         if (status == nsEventStatus_eConsumeNoDefault) {
             return true;
         }
@@ -2001,17 +2001,17 @@ nsWindow::DispatchHitTest(const WidgetTo
         // Since touch events don't get retargeted by PositionedEventTargeting.cpp
         // code on Fennec, we dispatch a dummy mouse event that *does* get
         // retargeted. The Fennec browser.js code can use this to activate the
         // highlight element in case the this touchstart is the start of a tap.
         WidgetMouseEvent hittest(true, eMouseHitTest, this,
                                  WidgetMouseEvent::eReal);
         hittest.mRefPoint = aEvent.mTouches[0]->mRefPoint;
         hittest.mIgnoreRootScrollFrame = true;
-        hittest.inputSource = MouseEventBinding::MOZ_SOURCE_TOUCH;
+        hittest.inputSource = MouseEvent_Binding::MOZ_SOURCE_TOUCH;
         nsEventStatus status;
         DispatchEvent(&hittest, status);
 
         if (mAPZEventState && hittest.hitCluster) {
             mAPZEventState->ProcessClusterHit();
         }
     }
 }
--- a/widget/cocoa/SwipeTracker.mm
+++ b/widget/cocoa/SwipeTracker.mm
@@ -66,30 +66,30 @@ SwipeTracker::Destroy()
 SwipeTracker::~SwipeTracker()
 {
   MOZ_ASSERT(!mRegisteredWithRefreshDriver, "Destroy needs to be called before deallocating");
 }
 
 double
 SwipeTracker::SwipeSuccessTargetValue() const
 {
-  return (mSwipeDirection == dom::SimpleGestureEventBinding::DIRECTION_RIGHT) ?
+  return (mSwipeDirection == dom::SimpleGestureEvent_Binding::DIRECTION_RIGHT) ?
     -1.0 : 1.0;
 }
 
 double
 SwipeTracker::ClampToAllowedRange(double aGestureAmount) const
 {
   // gestureAmount needs to stay between -1 and 0 when swiping right and
   // between 0 and 1 when swiping left.
   double min =
-    (mSwipeDirection == dom::SimpleGestureEventBinding::DIRECTION_RIGHT) ?
+    (mSwipeDirection == dom::SimpleGestureEvent_Binding::DIRECTION_RIGHT) ?
       -1.0 : 0.0;
   double max =
-    (mSwipeDirection == dom::SimpleGestureEventBinding::DIRECTION_LEFT) ?
+    (mSwipeDirection == dom::SimpleGestureEvent_Binding::DIRECTION_LEFT) ?
       1.0 : 0.0;
   return clamped(aGestureAmount, min, max);
 }
 
 bool
 SwipeTracker::ComputeSwipeSuccess() const
 {
   double targetValue = SwipeSuccessTargetValue();
--- a/widget/cocoa/nsChildView.mm
+++ b/widget/cocoa/nsChildView.mm
@@ -2707,18 +2707,18 @@ nsChildView::EnsureVibrancyManager()
 }
 
 nsChildView::SwipeInfo
 nsChildView::SendMayStartSwipe(const mozilla::PanGestureInput& aSwipeStartEvent)
 {
   nsCOMPtr<nsIWidget> kungFuDeathGrip(this);
 
   uint32_t direction = (aSwipeStartEvent.mPanDisplacement.x > 0.0)
-    ? (uint32_t)dom::SimpleGestureEventBinding::DIRECTION_RIGHT
-    : (uint32_t)dom::SimpleGestureEventBinding::DIRECTION_LEFT;
+    ? (uint32_t)dom::SimpleGestureEvent_Binding::DIRECTION_RIGHT
+    : (uint32_t)dom::SimpleGestureEvent_Binding::DIRECTION_LEFT;
 
   // We're ready to start the animation. Tell Gecko about it, and at the same
   // time ask it if it really wants to start an animation for this event.
   // This event also reports back the directions that we can swipe in.
   LayoutDeviceIntPoint position =
     RoundedToInt(aSwipeStartEvent.mPanStartPoint * ScreenToLayoutDeviceScale(1));
   WidgetSimpleGestureEvent geckoEvent =
     SwipeTracker::CreateSwipeGestureEvent(eSwipeGestureMayStart, this,
@@ -2741,18 +2741,18 @@ nsChildView::TrackScrollEventAsSwipe(con
   // by another gesture event.
   if (mSwipeTracker) {
     mSwipeTracker->CancelSwipe(aSwipeStartEvent.mTimeStamp);
     mSwipeTracker->Destroy();
     mSwipeTracker = nullptr;
   }
 
   uint32_t direction = (aSwipeStartEvent.mPanDisplacement.x > 0.0)
-    ? (uint32_t)dom::SimpleGestureEventBinding::DIRECTION_RIGHT
-    : (uint32_t)dom::SimpleGestureEventBinding::DIRECTION_LEFT;
+    ? (uint32_t)dom::SimpleGestureEvent_Binding::DIRECTION_RIGHT
+    : (uint32_t)dom::SimpleGestureEvent_Binding::DIRECTION_LEFT;
 
   mSwipeTracker = new SwipeTracker(*this, aSwipeStartEvent,
                                    aAllowedDirections, direction);
 
   if (!mAPZC) {
     mCurrentPanGestureBelongsToSwipe = true;
   }
 }
@@ -4168,25 +4168,25 @@ NSEvent* gLastDragMouseDownEvent = nil;
   float deltaY = [anEvent deltaY];  // up=1.0, down=-1.0
 
   // Setup the "swipe" event.
   WidgetSimpleGestureEvent geckoEvent(true, eSwipeGesture, mGeckoChild);
   [self convertCocoaMouseEvent:anEvent toGeckoEvent:&geckoEvent];
 
   // Record the left/right direction.
   if (deltaX > 0.0)
-    geckoEvent.mDirection |= dom::SimpleGestureEventBinding::DIRECTION_LEFT;
+    geckoEvent.mDirection |= dom::SimpleGestureEvent_Binding::DIRECTION_LEFT;
   else if (deltaX < 0.0)
-    geckoEvent.mDirection |= dom::SimpleGestureEventBinding::DIRECTION_RIGHT;
+    geckoEvent.mDirection |= dom::SimpleGestureEvent_Binding::DIRECTION_RIGHT;
 
   // Record the up/down direction.
   if (deltaY > 0.0)
-    geckoEvent.mDirection |= dom::SimpleGestureEventBinding::DIRECTION_UP;
+    geckoEvent.mDirection |= dom::SimpleGestureEvent_Binding::DIRECTION_UP;
   else if (deltaY < 0.0)
-    geckoEvent.mDirection |= dom::SimpleGestureEventBinding::DIRECTION_DOWN;
+    geckoEvent.mDirection |= dom::SimpleGestureEvent_Binding::DIRECTION_DOWN;
 
   // Send the event.
   mGeckoChild->DispatchWindowEvent(geckoEvent);
 
   NS_OBJC_END_TRY_ABORT_BLOCK;
 }
 
 // Pinch zoom gesture.
@@ -4367,19 +4367,19 @@ NSEvent* gLastDragMouseDownEvent = nil;
   }
 
   // Setup the event.
   WidgetSimpleGestureEvent geckoEvent(true, msg, mGeckoChild);
   [self convertCocoaMouseEvent:anEvent toGeckoEvent:&geckoEvent];
   geckoEvent.mDelta = -rotation;
   if (rotation > 0.0) {
     geckoEvent.mDirection =
-      dom::SimpleGestureEventBinding::ROTATION_COUNTERCLOCKWISE;
+      dom::SimpleGestureEvent_Binding::ROTATION_COUNTERCLOCKWISE;
   } else {
-    geckoEvent.mDirection = dom::SimpleGestureEventBinding::ROTATION_CLOCKWISE;
+    geckoEvent.mDirection = dom::SimpleGestureEvent_Binding::ROTATION_CLOCKWISE;
   }
 
   // Send the event.
   mGeckoChild->DispatchWindowEvent(geckoEvent);
 
   // Keep track of the cumulative rotation for the final "rotate" event.
   mCumulativeRotation += rotation;
 
@@ -4460,20 +4460,20 @@ NSEvent* gLastDragMouseDownEvent = nil;
   case eGestureState_RotateGesture:
     {
       // Setup the "rotate" event.
       WidgetSimpleGestureEvent geckoEvent(true, eRotateGesture, mGeckoChild);
       [self convertCocoaMouseEvent:anEvent toGeckoEvent:&geckoEvent];
       geckoEvent.mDelta = -mCumulativeRotation;
       if (mCumulativeRotation > 0.0) {
         geckoEvent.mDirection =
-          dom::SimpleGestureEventBinding::ROTATION_COUNTERCLOCKWISE;
+          dom::SimpleGestureEvent_Binding::ROTATION_COUNTERCLOCKWISE;
       } else {
         geckoEvent.mDirection =
-          dom::SimpleGestureEventBinding::ROTATION_CLOCKWISE;
+          dom::SimpleGestureEvent_Binding::ROTATION_CLOCKWISE;
       }
 
       // Send the event.
       mGeckoChild->DispatchWindowEvent(geckoEvent);
     }
     break;
 
   case eGestureState_None:
@@ -5284,18 +5284,18 @@ GetIntegerDeltaForEvent(NSEvent* aEvent)
                         toGeckoEvent:(WidgetWheelEvent*)outWheelEvent
 {
   [self convertCocoaMouseEvent:aMouseEvent toGeckoEvent:outWheelEvent];
 
   bool usePreciseDeltas = nsCocoaUtils::HasPreciseScrollingDeltas(aMouseEvent) &&
     Preferences::GetBool("mousewheel.enable_pixel_scrolling", true);
 
   outWheelEvent->mDeltaMode =
-    usePreciseDeltas ? dom::WheelEventBinding::DOM_DELTA_PIXEL
-                     : dom::WheelEventBinding::DOM_DELTA_LINE;
+    usePreciseDeltas ? dom::WheelEvent_Binding::DOM_DELTA_PIXEL
+                     : dom::WheelEvent_Binding::DOM_DELTA_LINE;
   outWheelEvent->mIsMomentum = nsCocoaUtils::IsMomentumScrollEvent(aMouseEvent);
 }
 
 - (void) convertCocoaMouseEvent:(NSEvent*)aMouseEvent
                    toGeckoEvent:(WidgetInputEvent*)outGeckoEvent
 {
   NS_OBJC_BEGIN_TRY_ABORT_BLOCK;
 
@@ -5362,17 +5362,17 @@ GetIntegerDeltaForEvent(NSEvent* aEvent)
   if (!aOutGeckoEvent || !sIsTabletPointerActivated) {
     return;
   }
   if ([aPointerEvent type] != NSMouseMoved) {
     aOutGeckoEvent->pressure = [aPointerEvent pressure];
     MOZ_ASSERT(aOutGeckoEvent->pressure >= 0.0 &&
                aOutGeckoEvent->pressure <= 1.0);
   }
-  aOutGeckoEvent->inputSource = dom::MouseEventBinding::MOZ_SOURCE_PEN;
+  aOutGeckoEvent->inputSource = dom::MouseEvent_Binding::MOZ_SOURCE_PEN;
   aOutGeckoEvent->tiltX = lround([aPointerEvent tilt].x * 90);
   aOutGeckoEvent->tiltY = lround([aPointerEvent tilt].y * 90);
   aOutGeckoEvent->tangentialPressure = [aPointerEvent tangentialPressure];
   // Make sure the twist value is in the range of 0-359.
   int32_t twist = fmod([aPointerEvent rotation], 360);
   aOutGeckoEvent->twist = twist >= 0 ? twist : twist + 360;
   NS_OBJC_END_TRY_ABORT_BLOCK;
 }
--- a/widget/gtk/nsWindow.cpp
+++ b/widget/gtk/nsWindow.cpp
@@ -3227,17 +3227,17 @@ nsWindow::OnScrollEvent(GdkEventScroll *
         return;
 #if GTK_CHECK_VERSION(3,4,0)
     // check for duplicate legacy scroll event, see GNOME bug 726878
     if (aEvent->direction != GDK_SCROLL_SMOOTH &&
         mLastScrollEventTime == aEvent->time)
         return;
 #endif
     WidgetWheelEvent wheelEvent(true, eWheel, this);
-    wheelEvent.mDeltaMode = dom::WheelEventBinding::DOM_DELTA_LINE;
+    wheelEvent.mDeltaMode = dom::WheelEvent_Binding::DOM_DELTA_LINE;
     switch (aEvent->direction) {
 #if GTK_CHECK_VERSION(3,4,0)
     case GDK_SCROLL_SMOOTH:
     {
         // As of GTK 3.4, all directional scroll events are provided by
         // the GDK_SCROLL_SMOOTH direction on XInput2 devices.
         mLastScrollEventTime = aEvent->time;
         // TODO - use a more appropriate scrolling unit than lines.
--- a/widget/headless/HeadlessWidget.h
+++ b/widget/headless/HeadlessWidget.h
@@ -14,35 +14,35 @@
 
 // The various synthesized event values are hardcoded to avoid pulling
 // in the platform specific widget code.
 #if defined(MOZ_WIDGET_GTK)
 #define MOZ_HEADLESS_MOUSE_MOVE 3 // GDK_MOTION_NOTIFY
 #define MOZ_HEADLESS_MOUSE_DOWN 4 // GDK_BUTTON_PRESS
 #define MOZ_HEADLESS_MOUSE_UP   7 // GDK_BUTTON_RELEASE
 #define MOZ_HEADLESS_SCROLL_MULTIPLIER 3
-#define MOZ_HEADLESS_SCROLL_DELTA_MODE mozilla::dom::WheelEventBinding::DOM_DELTA_LINE
+#define MOZ_HEADLESS_SCROLL_DELTA_MODE mozilla::dom::WheelEvent_Binding::DOM_DELTA_LINE
 #elif defined(XP_WIN)
 #define MOZ_HEADLESS_MOUSE_MOVE 1 // MOUSEEVENTF_MOVE
 #define MOZ_HEADLESS_MOUSE_DOWN 2 // MOUSEEVENTF_LEFTDOWN
 #define MOZ_HEADLESS_MOUSE_UP   4 // MOUSEEVENTF_LEFTUP
 #define MOZ_HEADLESS_SCROLL_MULTIPLIER .025 // default scroll lines (3) / WHEEL_DELTA (120)
-#define MOZ_HEADLESS_SCROLL_DELTA_MODE mozilla::dom::WheelEventBinding::DOM_DELTA_LINE
+#define MOZ_HEADLESS_SCROLL_DELTA_MODE mozilla::dom::WheelEvent_Binding::DOM_DELTA_LINE
 #elif defined(XP_MACOSX)
 #define MOZ_HEADLESS_MOUSE_MOVE 5 // NSMouseMoved
 #define MOZ_HEADLESS_MOUSE_DOWN 1 // NSLeftMouseDown
 #define MOZ_HEADLESS_MOUSE_UP   2 // NSLeftMouseUp
 #define MOZ_HEADLESS_SCROLL_MULTIPLIER 1
-#define MOZ_HEADLESS_SCROLL_DELTA_MODE mozilla::dom::WheelEventBinding::DOM_DELTA_PIXEL
+#define MOZ_HEADLESS_SCROLL_DELTA_MODE mozilla::dom::WheelEvent_Binding::DOM_DELTA_PIXEL
 #elif defined(ANDROID)
 #define MOZ_HEADLESS_MOUSE_MOVE 7 // ACTION_HOVER_MOVE
 #define MOZ_HEADLESS_MOUSE_DOWN 5 // ACTION_POINTER_DOWN
 #define MOZ_HEADLESS_MOUSE_UP   6 // ACTION_POINTER_UP
 #define MOZ_HEADLESS_SCROLL_MULTIPLIER 1
-#define MOZ_HEADLESS_SCROLL_DELTA_MODE mozilla::dom::WheelEventBinding::DOM_DELTA_LINE
+#define MOZ_HEADLESS_SCROLL_DELTA_MODE mozilla::dom::WheelEvent_Binding::DOM_DELTA_LINE
 #else
 #define MOZ_HEADLESS_MOUSE_MOVE -1
 #define MOZ_HEADLESS_MOUSE_DOWN -1
 #define MOZ_HEADLESS_MOUSE_UP   -1
 #define MOZ_HEADLESS_SCROLL_MULTIPLIER -1
 #define MOZ_HEADLESS_SCROLL_DELTA_MODE -1
 #endif
 
--- a/widget/nsBaseDragService.cpp
+++ b/widget/nsBaseDragService.cpp
@@ -55,17 +55,17 @@ using namespace mozilla::image;
 
 nsBaseDragService::nsBaseDragService()
   : mCanDrop(false), mOnlyChromeDrop(false), mDoingDrag(false),
     mHasImage(false), mUserCancelled(false),
     mDragEventDispatchedToChildProcess(false),
     mDragAction(DRAGDROP_ACTION_NONE),
     mDragActionFromChildProcess(DRAGDROP_ACTION_UNINITIALIZED), mTargetSize(0,0),
     mContentPolicyType(nsIContentPolicy::TYPE_OTHER),
-    mSuppressLevel(0), mInputSource(MouseEventBinding::MOZ_SOURCE_MOUSE)
+    mSuppressLevel(0), mInputSource(MouseEvent_Binding::MOZ_SOURCE_MOUSE)
 {
 }
 
 nsBaseDragService::~nsBaseDragService() = default;
 
 NS_IMPL_ISUPPORTS(nsBaseDragService, nsIDragService, nsIDragSession)
 
 //---------------------------------------------------------
@@ -458,17 +458,17 @@ nsBaseDragService::EndDragSession(bool a
   mDataTransfer = nullptr;
   mHasImage = false;
   mUserCancelled = false;
   mDragPopup = nullptr;
   mImage = nullptr;
   mImageOffset = CSSIntPoint();
   mScreenPosition = CSSIntPoint();
   mEndDragPoint = LayoutDeviceIntPoint(0, 0);
-  mInputSource = MouseEventBinding::MOZ_SOURCE_MOUSE;
+  mInputSource = MouseEvent_Binding::MOZ_SOURCE_MOUSE;
 
   return NS_OK;
 }
 
 void
 nsBaseDragService::DiscardInternalTransferData()
 {
   if (mDataTransfer && mSourceNode) {
--- a/widget/uikit/nsWindow.mm
+++ b/widget/uikit/nsWindow.mm
@@ -143,17 +143,17 @@ private:
 {
     WidgetMouseEvent event(true, aType, aWindow,
                            WidgetMouseEvent::eReal, WidgetMouseEvent::eNormal);
 
     event.mRefPoint = aPoint;
     event.mClickCount = 1;
     event.button = WidgetMouseEvent::eLeftButton;
     event.mTime = PR_IntervalNow();
-    event.inputSource = MouseEventBinding::MOZ_SOURCE_UNKNOWN;
+    event.inputSource = MouseEvent_Binding::MOZ_SOURCE_UNKNOWN;
 
     nsEventStatus status;
     aWindow->DispatchEvent(&event, status);
 }
 
 - (void)handleTap:(UITapGestureRecognizer *)sender
 {
     if (sender.state == UIGestureRecognizerStateEnded) {
--- a/widget/windows/WinMouseScrollHandler.cpp
+++ b/widget/windows/WinMouseScrollHandler.cpp
@@ -688,24 +688,24 @@ MouseScrollHandler::HandleScrollMessageA
   delta = 1.0;
   lineOrPageDelta = 1;
 
   switch (LOWORD(aWParam)) {
     case SB_PAGEUP:
       delta = -1.0;
       lineOrPageDelta = -1;
     case SB_PAGEDOWN:
-      wheelEvent.mDeltaMode = dom::WheelEventBinding::DOM_DELTA_PAGE;
+      wheelEvent.mDeltaMode = dom::WheelEvent_Binding::DOM_DELTA_PAGE;
       break;
 
     case SB_LINEUP:
       delta = -1.0;
       lineOrPageDelta = -1;
     case SB_LINEDOWN:
-      wheelEvent.mDeltaMode = dom::WheelEventBinding::DOM_DELTA_LINE;
+      wheelEvent.mDeltaMode = dom::WheelEvent_Binding::DOM_DELTA_LINE;
       break;
 
     default:
       return;
   }
   modKeyState.InitInputEvent(wheelEvent);
   // XXX Current mouse position may not be same as when the original message
   //     is received.  We need to know the actual mouse cursor position when
@@ -844,35 +844,35 @@ MouseScrollHandler::LastEventInfo::InitW
 
   aModKeyState.InitInputEvent(aWheelEvent);
 
   // Our positive delta value means to bottom or right.
   // But positive native delta value means to top or right.
   // Use orienter for computing our delta value with native delta value.
   int32_t orienter = mIsVertical ? -1 : 1;
 
-  aWheelEvent.mDeltaMode = mIsPage ? dom::WheelEventBinding::DOM_DELTA_PAGE :
-                                     dom::WheelEventBinding::DOM_DELTA_LINE;
+  aWheelEvent.mDeltaMode = mIsPage ? dom::WheelEvent_Binding::DOM_DELTA_PAGE :
+                                     dom::WheelEvent_Binding::DOM_DELTA_LINE;
 
   double& delta = mIsVertical ? aWheelEvent.mDeltaY : aWheelEvent.mDeltaX;
   int32_t& lineOrPageDelta = mIsVertical ? aWheelEvent.mLineOrPageDeltaY :
                                            aWheelEvent.mLineOrPageDeltaX;
 
   double nativeDeltaPerUnit =
     mIsPage ? static_cast<double>(WHEEL_DELTA) :
               static_cast<double>(WHEEL_DELTA) / GetScrollAmount();
 
   delta = static_cast<double>(mDelta) * orienter / nativeDeltaPerUnit;
   mAccumulatedDelta += mDelta;
   lineOrPageDelta =
     mAccumulatedDelta * orienter / RoundDelta(nativeDeltaPerUnit);
   mAccumulatedDelta -=
     lineOrPageDelta * orienter * RoundDelta(nativeDeltaPerUnit);
 
-  if (aWheelEvent.mDeltaMode != dom::WheelEventBinding::DOM_DELTA_LINE) {
+  if (aWheelEvent.mDeltaMode != dom::WheelEvent_Binding::DOM_DELTA_LINE) {
     // If the scroll delta mode isn't per line scroll, we shouldn't allow to
     // override the system scroll speed setting.
     aWheelEvent.mAllowToOverrideSystemScrollSpeed = false;
   } else if (!MouseScrollHandler::sInstance->
                 mSystemSettings.IsOverridingSystemScrollSpeedAllowed()) {
     // If the system settings are customized by either the user or
     // the mouse utility, we shouldn't allow to override the system scroll
     // speed setting.
--- a/widget/windows/WinPointerEvents.cpp
+++ b/widget/windows/WinPointerEvents.cpp
@@ -154,17 +154,17 @@ WinPointerEvents::ShouldFirePointerEvent
   MOZ_ASSERT(sLibraryHandle && sPointerEventEnabled);
   return sFirePointerEventsByWinPointerMessages;
 }
 
 WinPointerInfo*
 WinPointerEvents::GetCachedPointerInfo(UINT aMsg, WPARAM aWParam)
 {
   if (!sLibraryHandle || !sPointerEventEnabled ||
-      MOUSE_INPUT_SOURCE() != dom::MouseEventBinding::MOZ_SOURCE_PEN ||
+      MOUSE_INPUT_SOURCE() != dom::MouseEvent_Binding::MOZ_SOURCE_PEN ||
       ShouldFirePointerEventByWinPointerMessages()) {
     return nullptr;
   }
   switch (aMsg) {
   case WM_LBUTTONDOWN:
   case WM_MBUTTONDOWN:
   case WM_RBUTTONDOWN:
     return &mPenPointerDownInfo;
--- a/widget/windows/WinUtils.cpp
+++ b/widget/windows/WinUtils.cpp
@@ -1073,22 +1073,22 @@ WinUtils::GetNativeMessage(UINT aInterna
       return aInternalMessage;
   }
 }
 
 /* static */
 uint16_t
 WinUtils::GetMouseInputSource()
 {
-  int32_t inputSource = dom::MouseEventBinding::MOZ_SOURCE_MOUSE;
+  int32_t inputSource = dom::MouseEvent_Binding::MOZ_SOURCE_MOUSE;
   LPARAM lParamExtraInfo = ::GetMessageExtraInfo();
   if ((lParamExtraInfo & TABLET_INK_SIGNATURE) == TABLET_INK_CHECK) {
     inputSource = (lParamExtraInfo & TABLET_INK_TOUCH) ?
-      dom::MouseEventBinding::MOZ_SOURCE_TOUCH :
-      dom::MouseEventBinding::MOZ_SOURCE_PEN;
+      dom::MouseEvent_Binding::MOZ_SOURCE_TOUCH :
+      dom::MouseEvent_Binding::MOZ_SOURCE_PEN;
   }
   return static_cast<uint16_t>(inputSource);
 }
 
 /* static */
 uint16_t
 WinUtils::GetMousePointerID()
 {
--- a/widget/windows/WinUtils.h
+++ b/widget/windows/WinUtils.h
@@ -389,17 +389,17 @@ public:
   /**
    * GetNativeMessage() converts an internal message to a native message.
    * If aInternalMessage is a native message, returns the native message itself.
    */
   static UINT GetNativeMessage(UINT aInternalMessage);
 
   /**
    * GetMouseInputSource() returns a pointing device information.  The value is
-   * one of MouseEventBinding::MOZ_SOURCE_*.  This method MUST be called during
+   * one of MouseEvent_Binding::MOZ_SOURCE_*.  This method MUST be called during
    * mouse message handling.
    */
   static uint16_t GetMouseInputSource();
 
   /**
    * Windows also fires mouse window messages for pens and touches, so we should
    * retrieve their pointer ID on receiving mouse events as well. Please refer to
    * https://msdn.microsoft.com/en-us/library/windows/desktop/ms703320(v=vs.85).aspx
--- a/widget/windows/nsWinGesture.cpp
+++ b/widget/windows/nsWinGesture.cpp
@@ -204,20 +204,20 @@ nsWinGesture::ProcessGestureMessage(HWND
       }
 
       evt.mDirection = 0;
       evt.mDelta = degrees - mRotateIntermediate;
       mRotateIntermediate = degrees;
 
       if (evt.mDelta > 0) {
         evt.mDirection =
-          dom::SimpleGestureEventBinding::ROTATION_COUNTERCLOCKWISE;
+          dom::SimpleGestureEvent_Binding::ROTATION_COUNTERCLOCKWISE;
       }
       else if (evt.mDelta < 0) {
-        evt.mDirection = dom::SimpleGestureEventBinding::ROTATION_CLOCKWISE;
+        evt.mDirection = dom::SimpleGestureEvent_Binding::ROTATION_CLOCKWISE;
       }
 
       if (gi.dwFlags & GF_BEGIN) {
         evt.mMessage = eRotateGestureStart;
       } else if (gi.dwFlags & GF_END) {
         evt.mMessage = eRotateGesture;
       } else {
         evt.mMessage = eRotateGestureUpdate;
@@ -394,17 +394,17 @@ nsWinGesture::PanFeedbackFinalize(HWND h
 
 bool
 nsWinGesture::PanDeltaToPixelScroll(WidgetWheelEvent& aWheelEvent)
 {
   aWheelEvent.mDeltaX = aWheelEvent.mDeltaY = aWheelEvent.mDeltaZ = 0.0;
   aWheelEvent.mLineOrPageDeltaX = aWheelEvent.mLineOrPageDeltaY = 0;
 
   aWheelEvent.mRefPoint = LayoutDeviceIntPoint(mPanRefPoint.x, mPanRefPoint.y);
-  aWheelEvent.mDeltaMode = dom::WheelEventBinding::DOM_DELTA_PIXEL;
+  aWheelEvent.mDeltaMode = dom::WheelEvent_Binding::DOM_DELTA_PIXEL;
   aWheelEvent.mScrollType = WidgetWheelEvent::SCROLL_SYNCHRONOUSLY;
   aWheelEvent.mIsNoLineOrPageDelta = true;
 
   aWheelEvent.mOverflowDeltaX = 0.0;
   aWheelEvent.mOverflowDeltaY = 0.0;
 
   // Don't scroll the view if we are currently at a bounds, or, if we are
   // panning back from a max feedback position. This keeps the original drag point
--- a/widget/windows/nsWindow.cpp
+++ b/widget/windows/nsWindow.cpp
@@ -4328,17 +4328,17 @@ bool nsWindow::TouchEventShouldStartDrag
 
   // In chrome UI, allow touchdownstartsdrag attributes
   // to cause any touchdown event to trigger a drag.
   if (aEventMessage == eMouseDown) {
     WidgetMouseEvent hittest(true, eMouseHitTest, this,
                              WidgetMouseEvent::eReal);
     hittest.mRefPoint = aEventPoint;
     hittest.mIgnoreRootScrollFrame = true;
-    hittest.inputSource = MouseEventBinding::MOZ_SOURCE_TOUCH;
+    hittest.inputSource = MouseEvent_Binding::MOZ_SOURCE_TOUCH;
     DispatchInputEvent(&hittest);
 
     EventTarget* target = hittest.GetDOMEventTarget();
     if (target) {
       nsCOMPtr<nsIContent> node = do_QueryInterface(target);
 
       // Check if the element or any parent element has the
       // attribute we're looking for.
@@ -4432,17 +4432,17 @@ nsWindow::DispatchMouseEvent(EventMessag
     }
   }
 
   uint32_t pointerId = aPointerInfo ? aPointerInfo->pointerId :
                                       MOUSE_POINTERID();
 
   // Since it is unclear whether a user will use the digitizer,
   // Postpone initialization until first PEN message will be found.
-  if (MouseEventBinding::MOZ_SOURCE_PEN == aInputSource
+  if (MouseEvent_Binding::MOZ_SOURCE_PEN == aInputSource
       // Messages should be only at topLevel window.
       && nsWindowType::eWindowType_toplevel == mWindowType
       // Currently this scheme is used only when pointer events is enabled.
       && gfxPrefs::PointerEventsEnabled() && InkCollector::sInkCollector) {
     InkCollector::sInkCollector->SetTarget(mWnd);
     InkCollector::sInkCollector->SetPointerId(pointerId);
   }
 
@@ -5704,29 +5704,29 @@ nsWindow::ProcessMessage(UINT msg, WPARA
       LPARAM pos = lParamToClient(::GetMessagePos());
       MOZ_ASSERT(InkCollector::sInkCollector);
       uint16_t pointerId = InkCollector::sInkCollector->GetPointerId();
       if (pointerId != 0) {
         WinPointerInfo pointerInfo;
         pointerInfo.pointerId = pointerId;
         DispatchMouseEvent(eMouseExitFromWidget, wParam, pos, false,
                            WidgetMouseEvent::eLeftButton,
-                           MouseEventBinding::MOZ_SOURCE_PEN, &pointerInfo);
+                           MouseEvent_Binding::MOZ_SOURCE_PEN, &pointerInfo);
         InkCollector::sInkCollector->ClearTarget();
         InkCollector::sInkCollector->ClearPointerId();
       }
     }
     break;
 
     case WM_CONTEXTMENU:
     {
       // If the context menu is brought up by a touch long-press, then
       // the APZ code is responsible for dealing with this, so we don't
       // need to do anything.
-      if (mTouchWindow && MOUSE_INPUT_SOURCE() == MouseEventBinding::MOZ_SOURCE_TOUCH) {
+      if (mTouchWindow && MOUSE_INPUT_SOURCE() == MouseEvent_Binding::MOZ_SOURCE_TOUCH) {
         MOZ_ASSERT(mAPZC); // since mTouchWindow is true, APZ must be enabled
         result = true;
         break;
       }
 
       // if the context menu is brought up from the keyboard, |lParam|
       // will be -1.
       LPARAM pos;
@@ -7063,17 +7063,17 @@ bool nsWindow::OnGesture(WPARAM wParam, 
     WidgetWheelEvent wheelEvent(true, eWheel, this);
 
     ModifierKeyState modifierKeyState;
     modifierKeyState.InitInputEvent(wheelEvent);
 
     wheelEvent.button      = 0;
     wheelEvent.mTime       = ::GetMessageTime();
     wheelEvent.mTimeStamp  = GetMessageTimeStamp(wheelEvent.mTime);
-    wheelEvent.inputSource = MouseEventBinding::MOZ_SOURCE_TOUCH;
+    wheelEvent.inputSource = MouseEvent_Binding::MOZ_SOURCE_TOUCH;
 
     bool endFeedback = true;
 
     if (mGesture.PanDeltaToPixelScroll(wheelEvent)) {
       DispatchEvent(&wheelEvent, status);
     }
 
     if (mDisplayPanFeedback) {
@@ -7100,17 +7100,17 @@ bool nsWindow::OnGesture(WPARAM wParam, 
   }
   
   // Polish up and send off the new event
   ModifierKeyState modifierKeyState;
   modifierKeyState.InitInputEvent(event);
   event.button    = 0;
   event.mTime     = ::GetMessageTime();
   event.mTimeStamp = GetMessageTimeStamp(event.mTime);
-  event.inputSource = MouseEventBinding::MOZ_SOURCE_TOUCH;
+  event.inputSource = MouseEvent_Binding::MOZ_SOURCE_TOUCH;
 
   nsEventStatus status;
   DispatchEvent(&event, status);
   if (status == nsEventStatus_eIgnore) {
     return false; // Ignored, fall through
   }
 
   // Only close this if we process and return true.
@@ -7984,17 +7984,17 @@ nsWindow::DealWithPopups(HWND aWnd, UINT
     case WM_LBUTTONDOWN:
     case WM_RBUTTONDOWN:
     case WM_MBUTTONDOWN:
     case WM_NCLBUTTONDOWN:
     case WM_NCRBUTTONDOWN:
     case WM_NCMBUTTONDOWN:
       if (nativeMessage != WM_TOUCH &&
           IsTouchSupportEnabled(aWnd) &&
-          MOUSE_INPUT_SOURCE() == MouseEventBinding::MOZ_SOURCE_TOUCH) {
+          MOUSE_INPUT_SOURCE() == MouseEvent_Binding::MOZ_SOURCE_TOUCH) {
         // If any of these mouse events are really compatibility events that
         // Windows is sending for touch inputs, then don't allow them to dismiss
         // popups when APZ is enabled (instead we do the dismissing as part of
         // WM_TOUCH handling which is more correct).
         // If we don't do this, then when the user lifts their finger after a
         // long-press, the WM_RBUTTONDOWN compatibility event that Windows sends
         // us will dismiss the contextmenu popup that we displayed as part of
         // handling the long-tap-up.
@@ -8533,17 +8533,17 @@ bool nsWindow::OnPointerEvents(UINT msg,
                    WidgetMouseEvent::eNoButtonFlag;
   WinPointerInfo pointerInfo(pointerId, penInfo.tiltX, penInfo.tiltY, pressure,
                              buttons);
 
   // The aLParam of WM_POINTER* is the screen location. Convert it to client
   // location
   LPARAM newLParam = lParamToClient(aLParam);
   DispatchMouseEvent(message, aWParam, newLParam, false, button,
-                     MouseEventBinding::MOZ_SOURCE_PEN, &pointerInfo);
+                     MouseEvent_Binding::MOZ_SOURCE_PEN, &pointerInfo);
   // Consume WM_POINTER* to stop Windows fires WM_*BUTTONDOWN / WM_*BUTTONUP
   // WM_MOUSEMOVE.
   return true;
 }
 
 void
 nsWindow::GetCompositorWidgetInitData(mozilla::widget::CompositorWidgetInitData* aInitData)
 {
--- a/widget/windows/nsWindow.h
+++ b/widget/windows/nsWindow.h
@@ -231,17 +231,17 @@ public:
   virtual bool            DispatchMouseEvent(
                             mozilla::EventMessage aEventMessage,
                             WPARAM wParam,
                             LPARAM lParam,
                             bool aIsContextMenuKey = false,
                             int16_t aButton =
                               mozilla::WidgetMouseEvent::eLeftButton,
                             uint16_t aInputSource =
-                              mozilla::dom::MouseEventBinding::MOZ_SOURCE_MOUSE,
+                              mozilla::dom::MouseEvent_Binding::MOZ_SOURCE_MOUSE,
                             WinPointerInfo* aPointerInfo = nullptr);
   virtual bool            DispatchWindowEvent(mozilla::WidgetGUIEvent* aEvent,
                                               nsEventStatus& aStatus);
   void                    DispatchPendingEvents();
   bool                    DispatchPluginEvent(UINT aMessage,
                                               WPARAM aWParam,
                                               LPARAM aLParam,
                                               bool aDispatchPendingEvents);