Changeset 289896 in webkit


Ignore:
Timestamp:
Feb 16, 2022, 9:27:51 AM (3 years ago)
Author:
commit-queue@webkit.org
Message:

Allow exposed WebGL and WebAudio interfaces to be controlled via a setting
https://bugs.webkit.org/show_bug.cgi?id=236648
<rdar://problem/87821817>

We want to be able to enable/disable various WebGL/WebAudio interfaces via a setting
so that we can block them when CaptivePortalMode is enabled.

Patch by Gavin Phillips <gavin.p@apple.com> on 2022-02-16
Reviewed by Brent Fulgham.

  • Modules/webaudio/AnalyserNode.idl:
  • Modules/webaudio/AudioBuffer.idl:
  • Modules/webaudio/AudioBufferSourceNode.idl:
  • Modules/webaudio/AudioDestinationNode.idl:
  • Modules/webaudio/AudioListener.idl:
  • Modules/webaudio/AudioNode.idl:
  • Modules/webaudio/AudioParam.idl:
  • Modules/webaudio/AudioProcessingEvent.idl:
  • Modules/webaudio/AudioScheduledSourceNode.idl:
  • Modules/webaudio/AudioWorkletProcessor.idl:
  • Modules/webaudio/BiquadFilterNode.idl:
  • Modules/webaudio/ChannelMergerNode.idl:
  • Modules/webaudio/ChannelSplitterNode.idl:
  • Modules/webaudio/ConvolverNode.idl:
  • Modules/webaudio/DelayNode.idl:
  • Modules/webaudio/DynamicsCompressorNode.idl:
  • Modules/webaudio/GainNode.idl:
  • Modules/webaudio/MediaElementAudioSourceNode.idl:
  • Modules/webaudio/MediaStreamAudioDestinationNode.idl:
  • Modules/webaudio/MediaStreamAudioSourceNode.idl:
  • Modules/webaudio/OfflineAudioCompletionEvent.idl:
  • Modules/webaudio/OscillatorNode.idl:
  • Modules/webaudio/PeriodicWave.idl:
  • Modules/webaudio/WaveShaperNode.idl:
  • bindings/js/WebCoreBuiltinNames.h:
  • html/canvas/WebGLActiveInfo.idl:
  • html/canvas/WebGLBuffer.idl:
  • html/canvas/WebGLContextEvent.idl:
  • html/canvas/WebGLFramebuffer.idl:
  • html/canvas/WebGLProgram.idl:
  • html/canvas/WebGLQuery.idl:
  • html/canvas/WebGLRenderbuffer.idl:
  • html/canvas/WebGLRenderingContext.idl:
  • html/canvas/WebGLSampler.idl:
  • html/canvas/WebGLShader.idl:
  • html/canvas/WebGLShaderPrecisionFormat.idl:
  • html/canvas/WebGLSync.idl:
  • html/canvas/WebGLTexture.idl:
  • html/canvas/WebGLUniformLocation.idl:
Location:
trunk/Source/WebCore
Files:
40 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r289894 r289896  
     12022-02-16  Gavin Phillips  <gavin.p@apple.com>
     2
     3        Allow exposed WebGL and WebAudio interfaces to be controlled via a setting
     4        https://bugs.webkit.org/show_bug.cgi?id=236648
     5        <rdar://problem/87821817>
     6
     7        We want to be able to enable/disable various WebGL/WebAudio interfaces via a setting
     8        so that we can block them when CaptivePortalMode is enabled.
     9
     10        Reviewed by Brent Fulgham.
     11
     12        * Modules/webaudio/AnalyserNode.idl:
     13        * Modules/webaudio/AudioBuffer.idl:
     14        * Modules/webaudio/AudioBufferSourceNode.idl:
     15        * Modules/webaudio/AudioDestinationNode.idl:
     16        * Modules/webaudio/AudioListener.idl:
     17        * Modules/webaudio/AudioNode.idl:
     18        * Modules/webaudio/AudioParam.idl:
     19        * Modules/webaudio/AudioProcessingEvent.idl:
     20        * Modules/webaudio/AudioScheduledSourceNode.idl:
     21        * Modules/webaudio/AudioWorkletProcessor.idl:
     22        * Modules/webaudio/BiquadFilterNode.idl:
     23        * Modules/webaudio/ChannelMergerNode.idl:
     24        * Modules/webaudio/ChannelSplitterNode.idl:
     25        * Modules/webaudio/ConvolverNode.idl:
     26        * Modules/webaudio/DelayNode.idl:
     27        * Modules/webaudio/DynamicsCompressorNode.idl:
     28        * Modules/webaudio/GainNode.idl:
     29        * Modules/webaudio/MediaElementAudioSourceNode.idl:
     30        * Modules/webaudio/MediaStreamAudioDestinationNode.idl:
     31        * Modules/webaudio/MediaStreamAudioSourceNode.idl:
     32        * Modules/webaudio/OfflineAudioCompletionEvent.idl:
     33        * Modules/webaudio/OscillatorNode.idl:
     34        * Modules/webaudio/PeriodicWave.idl:
     35        * Modules/webaudio/WaveShaperNode.idl:
     36        * bindings/js/WebCoreBuiltinNames.h:
     37        * html/canvas/WebGLActiveInfo.idl:
     38        * html/canvas/WebGLBuffer.idl:
     39        * html/canvas/WebGLContextEvent.idl:
     40        * html/canvas/WebGLFramebuffer.idl:
     41        * html/canvas/WebGLProgram.idl:
     42        * html/canvas/WebGLQuery.idl:
     43        * html/canvas/WebGLRenderbuffer.idl:
     44        * html/canvas/WebGLRenderingContext.idl:
     45        * html/canvas/WebGLSampler.idl:
     46        * html/canvas/WebGLShader.idl:
     47        * html/canvas/WebGLShaderPrecisionFormat.idl:
     48        * html/canvas/WebGLSync.idl:
     49        * html/canvas/WebGLTexture.idl:
     50        * html/canvas/WebGLUniformLocation.idl:
     51
    1522022-02-16  Philippe Normand  <pnormand@igalia.com>
    253
  • trunk/Source/WebCore/Modules/webaudio/AnalyserNode.idl

    r283463 r289896  
    2525[
    2626    Conditional=WEB_AUDIO,
     27    EnabledBySetting=WebAudioEnabled,
    2728    JSGenerateToJSObject,
    2829    Exposed=Window
  • trunk/Source/WebCore/Modules/webaudio/AudioBuffer.idl

    r289117 r289896  
    2929[
    3030    Conditional=WEB_AUDIO,
     31    EnabledBySetting=WebAudioEnabled,
    3132    GenerateIsReachable=Impl,
    3233    JSCustomMarkFunction,
  • trunk/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.idl

    r283463 r289896  
    2727[
    2828    Conditional=WEB_AUDIO,
     29    EnabledBySetting=WebAudioEnabled,
    2930    JSCustomMarkFunction,
    3031    JSGenerateToJSObject,
  • trunk/Source/WebCore/Modules/webaudio/AudioDestinationNode.idl

    r267813 r289896  
    2525[
    2626    Conditional=WEB_AUDIO,
     27    EnabledBySetting=WebAudioEnabled,
    2728    JSGenerateToJSObject,
    2829    SkipVTableValidation,
  • trunk/Source/WebCore/Modules/webaudio/AudioListener.idl

    r288118 r289896  
    3030[
    3131    Conditional=WEB_AUDIO,
     32    EnabledBySetting=WebAudioEnabled,
    3233    Exposed=Window,
    3334] interface AudioListener {
  • trunk/Source/WebCore/Modules/webaudio/AudioNode.idl

    r277530 r289896  
    2525[
    2626    Conditional=WEB_AUDIO,
     27    EnabledBySetting=WebAudioEnabled,
    2728    CustomToJSObject,
    2829    Exposed=Window
  • trunk/Source/WebCore/Modules/webaudio/AudioParam.idl

    r274832 r289896  
    2929[
    3030    Conditional=WEB_AUDIO,
     31    EnabledBySetting=WebAudioEnabled,
    3132    Exposed=Window
    3233] interface AudioParam {
  • trunk/Source/WebCore/Modules/webaudio/AudioProcessingEvent.idl

    r283463 r289896  
    2525[
    2626    Conditional=WEB_AUDIO,
     27    EnabledBySetting=WebAudioEnabled,
    2728    JSGenerateToJSObject,
    2829    Exposed=Window
  • trunk/Source/WebCore/Modules/webaudio/AudioScheduledSourceNode.idl

    r274832 r289896  
    2525[
    2626    Conditional=WEB_AUDIO,
     27    EnabledBySetting=WebAudioEnabled,
    2728    JSGenerateToJSObject,
    2829    ActiveDOMObject,
  • trunk/Source/WebCore/Modules/webaudio/AudioWorkletProcessor.idl

    r289117 r289896  
    2929[
    3030    Conditional=WEB_AUDIO,
     31    EnabledBySetting=WebAudioEnabled,
    3132    Exposed=AudioWorklet,
    3233    GenerateIsReachable=Impl,
  • trunk/Source/WebCore/Modules/webaudio/BiquadFilterNode.idl

    r283463 r289896  
    2626[
    2727    Conditional=WEB_AUDIO,
     28    EnabledBySetting=WebAudioEnabled,
    2829    JSGenerateToJSObject,
    2930    Exposed=Window
  • trunk/Source/WebCore/Modules/webaudio/ChannelMergerNode.idl

    r283463 r289896  
    2929[
    3030    Conditional=WEB_AUDIO,
     31    EnabledBySetting=WebAudioEnabled,
    3132    JSGenerateToJSObject,
    3233    Exposed=Window
  • trunk/Source/WebCore/Modules/webaudio/ChannelSplitterNode.idl

    r283463 r289896  
    2525[
    2626    Conditional=WEB_AUDIO,
     27    EnabledBySetting=WebAudioEnabled,
    2728    JSGenerateToJSObject,
    2829    Exposed=Window
  • trunk/Source/WebCore/Modules/webaudio/ConvolverNode.idl

    r283463 r289896  
    2727[
    2828    Conditional=WEB_AUDIO,
     29    EnabledBySetting=WebAudioEnabled,
    2930    JSGenerateToJSObject,
    3031    Exposed=Window
  • trunk/Source/WebCore/Modules/webaudio/DelayNode.idl

    r283463 r289896  
    2525[
    2626    Conditional=WEB_AUDIO,
     27    EnabledBySetting=WebAudioEnabled,
    2728    JSGenerateToJSObject,
    2829    Exposed=Window
  • trunk/Source/WebCore/Modules/webaudio/DynamicsCompressorNode.idl

    r283463 r289896  
    2626[
    2727    Conditional=WEB_AUDIO,
     28    EnabledBySetting=WebAudioEnabled,
    2829    JSGenerateToJSObject,
    2930    Exposed=Window
  • trunk/Source/WebCore/Modules/webaudio/GainNode.idl

    r283463 r289896  
    2525[
    2626    Conditional=WEB_AUDIO,
     27    EnabledBySetting=WebAudioEnabled,
    2728    JSGenerateToJSObject,
    2829    Exposed=Window
  • trunk/Source/WebCore/Modules/webaudio/MediaElementAudioSourceNode.idl

    r283463 r289896  
    2626[
    2727    Conditional=WEB_AUDIO&VIDEO,
     28    EnabledBySetting=WebAudioEnabled,
    2829    JSGenerateToJSObject,
    2930    Exposed=Window
  • trunk/Source/WebCore/Modules/webaudio/MediaStreamAudioDestinationNode.idl

    r283463 r289896  
    2525[
    2626    Conditional=WEB_AUDIO&MEDIA_STREAM,
     27    EnabledBySetting=WebAudioEnabled,
    2728    JSGenerateToJSObject,
    2829    Exposed=Window
  • trunk/Source/WebCore/Modules/webaudio/MediaStreamAudioSourceNode.idl

    r283463 r289896  
    2525[
    2626    Conditional=WEB_AUDIO&MEDIA_STREAM,
     27    EnabledBySetting=WebAudioEnabled,
    2728    JSGenerateToJSObject,
    2829    Exposed=Window
  • trunk/Source/WebCore/Modules/webaudio/OfflineAudioCompletionEvent.idl

    r267813 r289896  
    2525[
    2626    Conditional=WEB_AUDIO,
     27    EnabledBySetting=WebAudioEnabled,
    2728    JSGenerateToJSObject,
    2829    Exposed=Window
  • trunk/Source/WebCore/Modules/webaudio/OscillatorNode.idl

    r283463 r289896  
    2626[
    2727    Conditional=WEB_AUDIO,
     28    EnabledBySetting=WebAudioEnabled,
    2829    JSGenerateToJSObject,
    2930    ActiveDOMObject,
  • trunk/Source/WebCore/Modules/webaudio/PeriodicWave.idl

    r288118 r289896  
    2626[
    2727    Conditional=WEB_AUDIO,
     28    EnabledBySetting=WebAudioEnabled,
    2829    Exposed=Window
    2930] interface PeriodicWave {
  • trunk/Source/WebCore/Modules/webaudio/WaveShaperNode.idl

    r283463 r289896  
    2525[
    2626    Conditional=WEB_AUDIO,
     27    EnabledBySetting=WebAudioEnabled,
    2728    JSGenerateToJSObject,
    2829    Exposed=Window
  • trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h

    r288804 r289896  
    4343    macro(AbortSignal) \
    4444    macro(AbstractRange) \
     45    macro(AnalyserNode) \
    4546    macro(Animation) \
    4647    macro(AnimationEffect) \
     
    5253    macro(AttachmentElement) \
    5354    macro(Audio) \
     55    macro(AudioBuffer) \
    5456    macro(AudioBufferSourceNode) \
    5557    macro(AudioContext) \
     58    macro(AudioDestinationNode) \
    5659    macro(AudioListener) \
     60    macro(AudioNode) \
     61    macro(AudioParam) \
    5762    macro(AudioParamMap) \
     63    macro(AudioProcessingEvent) \
     64    macro(AudioScheduledSourceNode) \
    5865    macro(AudioWorklet) \
    5966    macro(AudioWorkletGlobalScope) \
    6067    macro(AudioWorkletNode) \
     68    macro(AudioWorkletProcessor) \
    6169    macro(AuthenticatorAssertionResponse) \
    6270    macro(AuthenticatorAttestationResponse) \
    6371    macro(AuthenticatorResponse) \
    6472    macro(BaseAudioContext) \
     73    macro(BiquadFilterNode) \
    6574    macro(BlobEvent) \
    6675    macro(BroadcastChannel) \
    6776    macro(Cache) \
    6877    macro(CacheStorage) \
     78    macro(ChannelMergerNode) \
     79    macro(ChannelSplitterNode) \
    6980    macro(Client) \
    7081    macro(Clients) \
     
    7384    macro(ConstantSourceNode) \
    7485    macro(ContactsManager) \
     86    macro(ConvolverNode) \
    7587    macro(Credential) \
    7688    macro(CredentialsContainer) \
     
    110122    macro(DataTransferItem) \
    111123    macro(DataTransferItemList) \
     124    macro(DelayNode) \
    112125    macro(DocumentTimeline) \
     126    macro(DynamicsCompressorNode) \
    113127    macro(EnterPictureInPictureEvent) \
    114128    macro(ExtendableEvent) \
     
    127141    macro(FileSystemHandle) \
    128142    macro(FileSystemSyncAccessHandle) \
     143    macro(GainNode) \
    129144    macro(GPU) \
    130145    macro(GPUAdapter) \
     
    201216    macro(MediaCapabilitiesInfo) \
    202217    macro(MediaDevices) \
     218    macro(MediaElementAudioSourceNode) \
    203219    macro(MediaEncryptedEvent) \
    204220    macro(MediaKeyMessageEvent) \
     
    213229    macro(MediaSource) \
    214230    macro(MediaStream) \
     231    macro(MediaStreamAudioDestinationNode) \
     232    macro(MediaStreamAudioSourceNode) \
    215233    macro(MediaStreamTrack) \
    216234    macro(MerchantValidationEvent) \
     
    223241    macro(Notification) \
    224242    macro(NotificationEvent) \
     243    macro(OfflineAudioCompletionEvent) \
    225244    macro(OfflineAudioContext) \
    226245    macro(OffscreenCanvas) \
     
    246265    macro(PerformanceResourceTiming) \
    247266    macro(PerformanceServerTiming) \
     267    macro(PeriodicWave) \
    248268    macro(PermissionDescriptor) \
    249269    macro(PermissionStatus) \
     
    335355    macro(UndoManager) \
    336356    macro(VisualViewport) \
     357    macro(WaveShaperNode) \
    337358    macro(WebGL2RenderingContext) \
     359    macro(WebGLActiveInfo) \
     360    macro(WebGLBuffer) \
     361    macro(WebGLContextEvent) \
     362    macro(WebGLFramebuffer) \
     363    macro(WebGLProgram) \
     364    macro(WebGLQuery) \
     365    macro(WebGLRenderbuffer) \
     366    macro(WebGLRenderingContext) \
     367    macro(WebGLSampler) \
     368    macro(WebGLShader) \
     369    macro(WebGLShaderPrecisionFormat) \
     370    macro(WebGLSync) \
     371    macro(WebGLTexture) \
     372    macro(WebGLTransformFeedback) \
     373    macro(WebGLUniformLocation) \
    338374    macro(WebGLVertexArrayObject) \
    339     macro(WebGLTransformFeedback) \
    340375    macro(WebKitMediaKeyError) \
    341376    macro(WebKitMediaKeyMessageEvent) \
  • trunk/Source/WebCore/html/canvas/WebGLActiveInfo.idl

    r288118 r289896  
    2727[
    2828    Conditional=WEBGL,
     29    EnabledBySetting=WebGLEnabled,
    2930    Exposed=Window
    3031] interface WebGLActiveInfo {
  • trunk/Source/WebCore/html/canvas/WebGLBuffer.idl

    r267813 r289896  
    2727[
    2828    Conditional=WEBGL,
     29    EnabledBySetting=WebGLEnabled,
    2930    GenerateIsReachable=Impl,
    3031    Exposed=Window
  • trunk/Source/WebCore/html/canvas/WebGLContextEvent.idl

    r267813 r289896  
    2626[
    2727    Conditional=WEBGL,
     28    EnabledBySetting=WebGLEnabled,
    2829    Exposed=Window
    2930] interface WebGLContextEvent : Event {
  • trunk/Source/WebCore/html/canvas/WebGLFramebuffer.idl

    r267813 r289896  
    2727[
    2828    Conditional=WEBGL,
     29    EnabledBySetting=WebGLEnabled,
    2930    GenerateIsReachable=Impl,
    3031    Exposed=Window
  • trunk/Source/WebCore/html/canvas/WebGLProgram.idl

    r267813 r289896  
    2727[
    2828    Conditional=WEBGL,
     29    EnabledBySetting=WebGLEnabled,
    2930    GenerateIsReachable=Impl,
    3031    Exposed=Window
  • trunk/Source/WebCore/html/canvas/WebGLQuery.idl

    r267813 r289896  
    2727[
    2828    Conditional=WEBGL,
     29    EnabledBySetting=WebGLEnabled,
    2930    GenerateIsReachable=Impl,
    3031    Exposed=Window
  • trunk/Source/WebCore/html/canvas/WebGLRenderbuffer.idl

    r267813 r289896  
    2727[
    2828    Conditional=WEBGL,
     29    EnabledBySetting=WebGLEnabled,
    2930    GenerateIsReachable=Impl,
    3031    Exposed=Window
  • trunk/Source/WebCore/html/canvas/WebGLRenderingContext.idl

    r273865 r289896  
    3737    ActiveDOMObject,
    3838    Conditional=WEBGL,
     39    EnabledBySetting=WebGLEnabled,
    3940    GenerateIsReachable=ImplCanvasBase,
    4041    JSCustomMarkFunction,
  • trunk/Source/WebCore/html/canvas/WebGLSampler.idl

    r267813 r289896  
    2727[
    2828    Conditional=WEBGL,
     29    EnabledBySetting=WebGLEnabled,
    2930    GenerateIsReachable=Impl,
    3031    Exposed=Window
  • trunk/Source/WebCore/html/canvas/WebGLShader.idl

    r267813 r289896  
    2727[
    2828    Conditional=WEBGL,
     29    EnabledBySetting=WebGLEnabled,
    2930    GenerateIsReachable=Impl,
    3031    Exposed=Window
  • trunk/Source/WebCore/html/canvas/WebGLShaderPrecisionFormat.idl

    r288118 r289896  
    2828[
    2929    Conditional=WEBGL,
     30    EnabledBySetting=WebGLEnabled,
    3031    Exposed=Window
    3132] interface WebGLShaderPrecisionFormat {
  • trunk/Source/WebCore/html/canvas/WebGLSync.idl

    r267813 r289896  
    2727[
    2828    Conditional=WEBGL,
     29    EnabledBySetting=WebGLEnabled,
    2930    Exposed=Window
    3031] interface WebGLSync {
  • trunk/Source/WebCore/html/canvas/WebGLTexture.idl

    r267813 r289896  
    2727[
    2828    Conditional=WEBGL,
     29    EnabledBySetting=WebGLEnabled,
    2930    GenerateIsReachable=Impl,
    3031    Exposed=Window
  • trunk/Source/WebCore/html/canvas/WebGLUniformLocation.idl

    r288118 r289896  
    2828[
    2929    Conditional=WEBGL,
     30    EnabledBySetting=WebGLEnabled,
    3031    Exposed=Window
    3132] interface WebGLUniformLocation {
Note: See TracChangeset for help on using the changeset viewer.