[webkit-changes] [WebKit/WebKit] f9c441: Introduce plumbing for a policy flag that introduc...

Wenson Hsieh noreply at github.com
Fri Feb 17 16:10:27 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: f9c441099509da64d9be105a21d01c9bbcf8cee2
      https://github.com/WebKit/WebKit/commit/f9c441099509da64d9be105a21d01c9bbcf8cee2
  Author: Wenson Hsieh <wenson_hsieh at apple.com>
  Date:   2023-02-17 (Fri, 17 Feb 2023)

  Changed paths:
    M Source/WebCore/Modules/webaudio/AudioBuffer.cpp
    M Source/WebCore/Modules/webaudio/AudioBuffer.h
    M Source/WebCore/Modules/webaudio/AudioNode.cpp
    M Source/WebCore/Modules/webaudio/AudioNode.h
    M Source/WebCore/Modules/webaudio/BaseAudioContext.cpp
    M Source/WebCore/Modules/webaudio/BaseAudioContext.h
    A Source/WebCore/Modules/webaudio/NoiseInjectionPolicy.h
    M Source/WebCore/Modules/webaudio/OfflineAudioContext.cpp
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj

  Log Message:
  -----------
  Introduce plumbing for a policy flag that introduces noise when using some web audio APIs
https://bugs.webkit.org/show_bug.cgi?id=252498

Reviewed by Chris Dumez.

Introduce a new enum flag, `NoiseInjectionPolicy`, and plumb it through some web audio codepaths.
See below for more details. No test yet, since there is no change in behavior.

* Source/WebCore/Modules/webaudio/AudioBuffer.cpp:
(WebCore::AudioBuffer::releaseMemory):
(WebCore::AudioBuffer::copyTo const):

Add a simple boolean `m_needsAdditionalNoise` flag to `AudioBuffer`. This will be turned on by
either audio nodes or the audio context itself, with the intent that `AudioBuffer` will reset it to
`false` once noise has been applied.

* Source/WebCore/Modules/webaudio/AudioBuffer.h:
(WebCore::AudioBuffer::setNeedsAdditionalNoise):
* Source/WebCore/Modules/webaudio/AudioNode.cpp:
(WebCore::AudioNode::noiseInjectionPolicy const):

Expose a helper method on `AudioNode` that returns the context's policy flag.

* Source/WebCore/Modules/webaudio/AudioNode.h:
* Source/WebCore/Modules/webaudio/BaseAudioContext.cpp:
(WebCore::noiseInjectionPolicy):
(WebCore::BaseAudioContext::BaseAudioContext):
* Source/WebCore/Modules/webaudio/BaseAudioContext.h:
(WebCore::BaseAudioContext::noiseInjectionPolicy const):

Consult the `Document` here upon initialization, to determine whether or not noise injection is
needed. This noise injection policy is then propagated to any nodes attached to the context.

* Source/WebCore/Modules/webaudio/NoiseInjectionPolicy.h: Added.
* Source/WebCore/Modules/webaudio/OfflineAudioContext.cpp:
(WebCore::OfflineAudioContext::OfflineAudioContext):
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:

Canonical link: https://commits.webkit.org/260478@main




More information about the webkit-changes mailing list