Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(786)

Issue 1123603002: Process suspend() and resume() in call order (Closed)

Created:
5 years, 7 months ago by Raymond Toy
Modified:
5 years, 7 months ago
CC:
blink-reviews
Target Ref:
refs/heads/master
Project:
blink
Visibility:
Public.

Description

Process suspend() and resume() in call order Previously, the promises for suspend and resume were kept on separate lists and each list was processed at once which then actually took care of suspending the context This is incorrect if there are back-to-back calls of suspend and resume. Instead, suspend the context at the call and resolve the promise immediately instead of waiting. For resume, we were already resuming at the call. The list for the promises for resume is still needed because we want to resolve them when the audio hardware has resumed. BUG=483002, 483269 TEST=Run ManualTests/webaudio/{suspend-resume,suspend-resume-2}.html Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=195476

Patch Set 1 #

Total comments: 6

Patch Set 2 : #

Total comments: 10

Patch Set 3 : Update according to review. #

Total comments: 9

Patch Set 4 : WIP: Not for review #

Patch Set 5 : Simplified implementation #

Total comments: 4

Patch Set 6 : Update according to review #

Unified diffs Side-by-side diffs Delta from patch set Stats (+172 lines, -55 lines) Patch
A ManualTests/webaudio/suspend-resume-2.html View 1 2 3 4 1 chunk +161 lines, -0 lines 0 comments Download
M Source/modules/webaudio/AudioContext.h View 1 2 3 4 1 chunk +0 lines, -5 lines 0 comments Download
M Source/modules/webaudio/AudioContext.cpp View 1 2 3 4 5 5 chunks +11 lines, -50 lines 0 comments Download

Messages

Total messages: 21 (4 generated)
Raymond Toy
PTAL. haraken@: please check for oilpan correctness
5 years, 7 months ago (2015-05-04 17:05:02 UTC) #2
hongchan
Thanks for nice changes! LGTM with nits. Taking this CL out of AudioContext is a ...
5 years, 7 months ago (2015-05-04 17:28:38 UTC) #3
Raymond Toy
https://codereview.chromium.org/1123603002/diff/1/Source/modules/webaudio/AudioContext.cpp File Source/modules/webaudio/AudioContext.cpp (right): https://codereview.chromium.org/1123603002/diff/1/Source/modules/webaudio/AudioContext.cpp#newcode81 Source/modules/webaudio/AudioContext.cpp:81: AudioContext::SuspendResumeHandler::SuspendResumeHandler( On 2015/05/04 17:28:38, hoch wrote: > Can we ...
5 years, 7 months ago (2015-05-04 17:38:34 UTC) #4
hongchan
https://codereview.chromium.org/1123603002/diff/1/Source/modules/webaudio/AudioContext.cpp File Source/modules/webaudio/AudioContext.cpp (right): https://codereview.chromium.org/1123603002/diff/1/Source/modules/webaudio/AudioContext.cpp#newcode81 Source/modules/webaudio/AudioContext.cpp:81: AudioContext::SuspendResumeHandler::SuspendResumeHandler( On 2015/05/04 17:38:34, Raymond Toy wrote: > On ...
5 years, 7 months ago (2015-05-04 17:41:50 UTC) #5
Raymond Toy
https://codereview.chromium.org/1123603002/diff/1/Source/modules/webaudio/AudioContext.cpp File Source/modules/webaudio/AudioContext.cpp (right): https://codereview.chromium.org/1123603002/diff/1/Source/modules/webaudio/AudioContext.cpp#newcode823 Source/modules/webaudio/AudioContext.cpp:823: m_suspendResumeHandlers.append(SuspendResumeHandler::createResumeHandler(resolver)); On 2015/05/04 17:28:38, hoch wrote: > At a ...
5 years, 7 months ago (2015-05-04 17:44:07 UTC) #6
hongchan
https://codereview.chromium.org/1123603002/diff/1/Source/modules/webaudio/AudioContext.cpp File Source/modules/webaudio/AudioContext.cpp (right): https://codereview.chromium.org/1123603002/diff/1/Source/modules/webaudio/AudioContext.cpp#newcode823 Source/modules/webaudio/AudioContext.cpp:823: m_suspendResumeHandlers.append(SuspendResumeHandler::createResumeHandler(resolver)); On 2015/05/04 17:44:07, Raymond Toy wrote: > On ...
5 years, 7 months ago (2015-05-04 17:50:52 UTC) #7
Raymond Toy
https://codereview.chromium.org/1123603002/diff/20001/Source/modules/webaudio/AudioContext.cpp File Source/modules/webaudio/AudioContext.cpp (right): https://codereview.chromium.org/1123603002/diff/20001/Source/modules/webaudio/AudioContext.cpp#newcode89 Source/modules/webaudio/AudioContext.cpp:89: AudioContext::SuspendResumeResolver* AudioContext::SuspendResumeResolver::createSuspendHandler( On 2015/05/04 17:50:52, hoch wrote: > Shouldn't ...
5 years, 7 months ago (2015-05-04 17:58:23 UTC) #8
haraken
https://codereview.chromium.org/1123603002/diff/40001/Source/modules/webaudio/AudioContext.cpp File Source/modules/webaudio/AudioContext.cpp (left): https://codereview.chromium.org/1123603002/diff/40001/Source/modules/webaudio/AudioContext.cpp#oldcode872 Source/modules/webaudio/AudioContext.cpp:872: resolvePromisesForResume(); Why don't we need to call resolvePromisesForSuspendResume() here? ...
5 years, 7 months ago (2015-05-04 23:24:41 UTC) #10
Raymond Toy
https://codereview.chromium.org/1123603002/diff/40001/Source/modules/webaudio/AudioContext.h File Source/modules/webaudio/AudioContext.h (right): https://codereview.chromium.org/1123603002/diff/40001/Source/modules/webaudio/AudioContext.h#newcode246 Source/modules/webaudio/AudioContext.h:246: class SuspendResumeResolver { On 2015/05/04 23:24:41, haraken wrote: > ...
5 years, 7 months ago (2015-05-14 21:26:05 UTC) #11
haraken
https://codereview.chromium.org/1123603002/diff/40001/Source/modules/webaudio/AudioContext.h File Source/modules/webaudio/AudioContext.h (right): https://codereview.chromium.org/1123603002/diff/40001/Source/modules/webaudio/AudioContext.h#newcode246 Source/modules/webaudio/AudioContext.h:246: class SuspendResumeResolver { On 2015/05/14 21:26:05, Raymond Toy wrote: ...
5 years, 7 months ago (2015-05-14 21:28:27 UTC) #12
Raymond Toy
On 2015/05/14 21:28:27, haraken wrote: > https://codereview.chromium.org/1123603002/diff/40001/Source/modules/webaudio/AudioContext.h > File Source/modules/webaudio/AudioContext.h (right): > > https://codereview.chromium.org/1123603002/diff/40001/Source/modules/webaudio/AudioContext.h#newcode246 > ...
5 years, 7 months ago (2015-05-15 16:39:25 UTC) #13
Raymond Toy
After some discussions with Hongchan, I've concluded that this approach is more complicated than it ...
5 years, 7 months ago (2015-05-15 18:17:49 UTC) #14
Raymond Toy
PTAL
5 years, 7 months ago (2015-05-18 14:41:57 UTC) #15
haraken
LGTM https://codereview.chromium.org/1123603002/diff/80001/Source/modules/webaudio/AudioContext.cpp File Source/modules/webaudio/AudioContext.cpp (left): https://codereview.chromium.org/1123603002/diff/80001/Source/modules/webaudio/AudioContext.cpp#oldcode768 Source/modules/webaudio/AudioContext.cpp:768: resolvePromisesForSuspendOnMainThread(); Actually I was wondering why we need ...
5 years, 7 months ago (2015-05-18 14:48:00 UTC) #16
Raymond Toy
https://codereview.chromium.org/1123603002/diff/80001/Source/modules/webaudio/AudioContext.cpp File Source/modules/webaudio/AudioContext.cpp (left): https://codereview.chromium.org/1123603002/diff/80001/Source/modules/webaudio/AudioContext.cpp#oldcode768 Source/modules/webaudio/AudioContext.cpp:768: resolvePromisesForSuspendOnMainThread(); On 2015/05/18 14:47:59, haraken wrote: > > Actually ...
5 years, 7 months ago (2015-05-18 18:25:08 UTC) #17
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1123603002/100001
5 years, 7 months ago (2015-05-18 18:26:51 UTC) #20
commit-bot: I haz the power
5 years, 7 months ago (2015-05-18 20:56:22 UTC) #21
Message was sent while issue was closed.
Committed patchset #6 (id:100001) as
https://src.chromium.org/viewvc/blink?view=rev&revision=195476

Powered by Google App Engine
This is Rietveld 408576698