void AudioContext::startRendering() { if (ScriptController::processingUserGesture()) removeBehaviorRestriction(AudioContext::RequireUserGestureForAudioStartRestriction); if (pageConsentRequiredForAudioStart()) { Page* page = document()->page(); if (page && !page->canStartMedia()) document()->addMediaCanStartListener(this); else removeBehaviorRestriction(AudioContext::RequirePageConsentForAudioStartRestriction); } destination()->startRendering(); }
bool AudioContext::willPausePlayback() { if (userGestureRequiredForAudioStart()) { if (!ScriptController::processingUserGestureForMedia()) return false; removeBehaviorRestriction(AudioContext::RequireUserGestureForAudioStartRestriction); } if (pageConsentRequiredForAudioStart()) { Page* page = document()->page(); if (page && !page->canStartMedia()) { document()->addMediaCanStartListener(this); return false; } removeBehaviorRestriction(AudioContext::RequirePageConsentForAudioStartRestriction); } return m_mediaSession->clientWillPausePlayback(); }