Make QueryInterface opt-in for WebIDL interfaces

RESOLVED FIXED in mozilla27

Status

()

Core
DOM
RESOLVED FIXED
5 years ago
5 years ago

People

(Reporter: peterv, Assigned: peterv)

Tracking

Trunk
mozilla27
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(2 attachments)

(Assignee)

Description

5 years ago
Created attachment 809385 [details] [diff] [review]
v1

I removed it from a bunch of interfaces that have it now:

AnalyserNode
ArchiveReader
AudioBuffer
AudioBufferSourceNode
AudioContext
AudioDestinationNode
AudioListener
AudioParam
AudioStreamTrack
battery::BatteryManager
BiquadFilterNode
CallsList
CameraControl
CameraManager
CanvasGradient
CanvasPattern
CanvasRenderingContext2D
TextMetrics
ChannelMergerNode
ChannelSplitterNode
ConvolverNode
Coordinates
DataChannel
DOMError
DOMRequest
DelayNode
DesktopNotification
DesktopNotificationCenter
DeviceStorage
DynamicsCompressorNode
FileHandle
FileReader
GainNode
Gamepad
Geolocation
GetUserMediaRequest
HTMLCanvasPrintState
MozInterAppConnection
MozInterAppConnectionRequest
MozInterAppMessagePort
MediaElementAudioSourceNode
MediaError
MediaRecorder
MediaSource
MediaStreamAudioDestinationNode
MediaStreamAudioSourceNode
MediaStream
MediaStreamList
MessageChannel
MessagePort
MessagePortList
PowerManager
time::TimeManager
Notification
OscillatorNode
PannerNode
PeriodicWave
PhoneNumberService
Position
PositionError
Promise
PushManager
mozRTCIceCandidate
mozRTCPeerConnection
mozRTCSessionDescription
ScriptProcessorNode
SettingsLock
SettingsManager
SourceBuffer
SourceBufferList
SpeechGrammar
SpeechGrammarList
SpeechRecognitionAlternative
SpeechRecognition
SpeechRecognitionResult
SpeechRecognitionResultList
SpeechSynthesis
SpeechSynthesisUtterance
SpeechSynthesisVoice
Telephony
TelephonyCall
TelephonyCallGroup
TextTrack
TextTrackCueList
TextTrackList
TextTrackRegion
TextTrackRegionList
TimeRanges
TextTrackCue
VideoPlaybackQuality
VideoStreamTrack
WaveShaperNode
WebGLQuery
WebGLActiveInfo
WebGLBuffer
WebGLExtensionCompressedTextureATC
WebGLExtensionCompressedTexturePVRTC
WebGLExtensionCompressedTextureS3TC
WebGLExtensionDebugRendererInfo
WebGLExtensionDepthTexture
WebGLExtensionDrawBuffers
WebGLExtensionElementIndexUint
WebGLExtensionInstancedArrays
WebGLExtensionLoseContext
WebGLExtensionStandardDerivatives
WebGLExtensionTextureFilterAnisotropic
WebGLExtensionTextureFloat
WebGLExtensionTextureFloatLinear
WebGLExtensionVertexArray
WebGLFramebuffer
WebGLProgram
WebGLRenderbuffer
WebGLContext
WebGLShader
WebGLShaderPrecisionFormat
WebGLTexture
WebGLUniformLocation
WebGLVertexArray

I did it a bit randomly, so let me know if there's any that you think we shouldn't remove it from.
Attachment #809385 - Flags: review?(bzbarsky)
Comment on attachment 809385 [details] [diff] [review]
v1

r=awesomesauce
Attachment #809385 - Flags: review?(bzbarsky) → review+
Maybe we can remove QI from TextDecoder and TextEncoder. They have never implemented XPCOM interfaces.
TextDecoder/Encoder have not had QI since I removed the nsISupports inheritance in bug 903772.  Things that don't inherit from nsISupports don't get QI.
(Assignee)

Comment 4

5 years ago
Created attachment 809995 [details] [diff] [review]
Remove some more interfaces v1

So it turns out that I had a bunch of interfaces that wouldn't have a QI anyway because they don't inherit from nsISupports. This removes them and makes the WantsQI static assert that the interface inherits from nsISupports.
Attachment #809995 - Flags: review?
(Assignee)

Updated

5 years ago
Attachment #809995 - Flags: review? → review?(bzbarsky)
Comment on attachment 809995 [details] [diff] [review]
Remove some more interfaces v1

Sweet!
Attachment #809995 - Flags: review?(bzbarsky) → review+
https://hg.mozilla.org/mozilla-central/rev/6ea361ff5333
Status: ASSIGNED → RESOLVED
Last Resolved: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla27
You need to log in before you can comment on or make changes to this bug.