Changeset 230158 in webkit


Ignore:
Timestamp:
Apr 2, 2018 8:40:20 AM (6 years ago)
Author:
jer.noble@apple.com
Message:

AudioBufferSourceNode start method causes OfflineAudioContext to start running
https://bugs.webkit.org/show_bug.cgi?id=181939
<rdar://problem/36755393>

Reviewed by Eric Carlson.

Source/WebCore:

Test: webaudio/offlineaudiocontext-restriction.html

Don't respect playback restrictions for offline AudioContexts.

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::constructCommon):

  • Modules/webaudio/AudioContext.h:

(WebCore::AudioContext::isOfflineContext const):
(WebCore::AudioContext::userGestureRequiredForAudioStart const):
(WebCore::AudioContext::pageConsentRequiredForAudioStart const):
(WebCore::AudioContext::isOfflineContext): Deleted.

LayoutTests:

  • webaudio/offlineaudiocontext-restriction-expected.txt: Added.
  • webaudio/offlineaudiocontext-restriction.html: Added.
Location:
trunk
Files:
2 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r230146 r230158  
     12018-04-02  Jer Noble  <jer.noble@apple.com>
     2
     3        AudioBufferSourceNode start method causes OfflineAudioContext to start running
     4        https://bugs.webkit.org/show_bug.cgi?id=181939
     5        <rdar://problem/36755393>
     6
     7        Reviewed by Eric Carlson.
     8
     9        * webaudio/offlineaudiocontext-restriction-expected.txt: Added.
     10        * webaudio/offlineaudiocontext-restriction.html: Added.
     11
    1122018-03-31  Brent Fulgham  <bfulgham@apple.com>
    213
  • trunk/Source/WebCore/ChangeLog

    r230152 r230158  
     12018-04-02  Jer Noble  <jer.noble@apple.com>
     2
     3        AudioBufferSourceNode start method causes OfflineAudioContext to start running
     4        https://bugs.webkit.org/show_bug.cgi?id=181939
     5        <rdar://problem/36755393>
     6
     7        Reviewed by Eric Carlson.
     8
     9        Test: webaudio/offlineaudiocontext-restriction.html
     10
     11        Don't respect playback restrictions for offline AudioContexts.
     12
     13        * Modules/webaudio/AudioContext.cpp:
     14        (WebCore::AudioContext::constructCommon):
     15        * Modules/webaudio/AudioContext.h:
     16        (WebCore::AudioContext::isOfflineContext const):
     17        (WebCore::AudioContext::userGestureRequiredForAudioStart const):
     18        (WebCore::AudioContext::pageConsentRequiredForAudioStart const):
     19        (WebCore::AudioContext::isOfflineContext): Deleted.
     20
    1212018-04-02  Alejandro G. Castro  <alex@igalia.com>
    222
  • trunk/Source/WebCore/Modules/webaudio/AudioContext.cpp

    r228818 r230158  
    167167    m_listener = AudioListener::create();
    168168
    169 #if PLATFORM(IOS)
    170     if (document()->settings().audioPlaybackRequiresUserGesture())
     169    if (document()->audioPlaybackRequiresUserGesture())
    171170        addBehaviorRestriction(RequireUserGestureForAudioStartRestriction);
    172171    else
    173172        m_restrictions = NoRestrictions;
    174 #endif
    175173
    176174#if PLATFORM(COCOA)
  • trunk/Source/WebCore/Modules/webaudio/AudioContext.h

    r228218 r230158  
    8686    bool isInitialized() const;
    8787   
    88     bool isOfflineContext() { return m_isOfflineContext; }
     88    bool isOfflineContext() const { return m_isOfflineContext; }
    8989
    9090    Document* document() const; // ASSERTs if document no longer exists.
     
    277277    bool willPausePlayback();
    278278
    279     bool userGestureRequiredForAudioStart() const { return m_restrictions & RequireUserGestureForAudioStartRestriction; }
    280     bool pageConsentRequiredForAudioStart() const { return m_restrictions & RequirePageConsentForAudioStartRestriction; }
     279    bool userGestureRequiredForAudioStart() const { return !isOfflineContext() && m_restrictions & RequireUserGestureForAudioStartRestriction; }
     280    bool pageConsentRequiredForAudioStart() const { return !isOfflineContext() && m_restrictions & RequirePageConsentForAudioStartRestriction; }
    281281
    282282    void setState(State);
Note: See TracChangeset for help on using the changeset viewer.