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

Issue 438293003: Enable Oilpan by default for webaudio/ (Closed)

Created:
6 years, 4 months ago by haraken
Modified:
6 years, 4 months ago
CC:
Raymond Toy, blink-reviews, blink-reviews-html_chromium.org, dglazkov+blink, eric.carlson_apple.com, feature-media-reviews_chromium.org, fs, gasubic, philipj_slow, nessy, vcarbune.chromium
Project:
blink
Visibility:
Public.

Description

Enable Oilpan by default for webaudio/ (1) This CL basically does the following two things: - Drop "WillBe" types from webaudio/. - Replace the hand-written reference counting system with RefCountedGarbageCollected. (2) Given that AudioNode inherits from EventTarget, which is still on-heap in non-oilpan builds, we need to make AudioNode RefCountedGarbageCollected. (3) Ideally the following collections should use strong Members, but we cannot do that because these collections are touched by audio threads (which are not registered to oilpan). Thus we use raw pointers with GC_PLUGIN_IGNORE. - AudioNodeInput::m_disabledOutputs - AudioSummingJunction::m_outputs - AudioSummingJunction::m_renderingOutputs - AudioContext::m_finishedNodes - AudioContext::m_referencedNodes - AudioContext::m_nodesMarkForDeletion - AudioContext::m_nodesToDelete - AudioContext::m_dirtySummingJunctions - AudioContext::m_dirtyAudioNodeOutputs - AudioContext::m_automaticPullNodes - AudioContext::m_renderingAutomaticPullNodes - AudioContext::m_deferredBreakConnectionList - AudioContext::m_deferredFinishDerefList (4) Ideally AudioDSPKernel should be moved to the heap and AudioDSPKernel::m_kernelProcessor should be a Member. However, we cannot do that because AudioDSPKernel can be allocated by audio threads. Thus we leave AudioDSPKernel::m_kernelProcessor as a raw pointer. This raw pointer is guaranteed to be safe. (5) This CL fixes leaks of webaudio tests in LeakExpectations. BUG=340522 Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=180457

Patch Set 1 #

Patch Set 2 : #

Patch Set 3 : #

Patch Set 4 : #

Patch Set 5 : #

Patch Set 6 : #

Patch Set 7 : #

Patch Set 8 : #

Patch Set 9 : #

Patch Set 10 : #

Total comments: 8

Patch Set 11 : #

Patch Set 12 : #

Patch Set 13 : #

Patch Set 14 : #

Total comments: 4

Patch Set 15 : #

Patch Set 16 : #

Total comments: 4

Patch Set 17 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+311 lines, -601 lines) Patch
M LayoutTests/LeakExpectations View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +0 lines, -4 lines 0 comments Download
M Source/core/html/HTMLMediaElement.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +1 line, -0 lines 0 comments Download
M Source/core/html/HTMLMediaElement.cpp View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M Source/modules/webaudio/AnalyserNode.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +2 lines, -2 lines 0 comments Download
M Source/modules/webaudio/AsyncAudioDecoder.h View 1 2 3 4 5 6 7 8 1 chunk +1 line, -1 line 0 comments Download
M Source/modules/webaudio/AsyncAudioDecoder.cpp View 1 2 3 4 5 6 7 8 1 chunk +4 lines, -4 lines 0 comments Download
M Source/modules/webaudio/AudioBasicProcessorNode.h View 1 chunk +1 line, -1 line 0 comments Download
M Source/modules/webaudio/AudioBuffer.h View 1 2 3 2 chunks +5 lines, -6 lines 0 comments Download
M Source/modules/webaudio/AudioBuffer.cpp View 5 chunks +17 lines, -17 lines 0 comments Download
M Source/modules/webaudio/AudioBuffer.idl View 1 chunk +1 line, -1 line 0 comments Download
M Source/modules/webaudio/AudioBufferSourceNode.h View 3 chunks +4 lines, -4 lines 0 comments Download
M Source/modules/webaudio/AudioBufferSourceNode.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +3 lines, -3 lines 0 comments Download
M Source/modules/webaudio/AudioContext.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 11 chunks +39 lines, -67 lines 0 comments Download
M Source/modules/webaudio/AudioContext.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 20 chunks +61 lines, -182 lines 0 comments Download
M Source/modules/webaudio/AudioContext.idl View 1 chunk +1 line, -1 line 0 comments Download
M Source/modules/webaudio/AudioListener.h View 1 2 3 3 chunks +4 lines, -5 lines 0 comments Download
M Source/modules/webaudio/AudioListener.cpp View 1 chunk +0 lines, -2 lines 0 comments Download
M Source/modules/webaudio/AudioListener.idl View 1 chunk +1 line, -1 line 0 comments Download
M Source/modules/webaudio/AudioNode.h View 1 2 3 4 5 6 7 8 9 10 11 6 chunks +6 lines, -24 lines 0 comments Download
M Source/modules/webaudio/AudioNode.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 7 chunks +5 lines, -85 lines 0 comments Download
M Source/modules/webaudio/AudioNode.idl View 1 chunk +1 line, -1 line 0 comments Download
M Source/modules/webaudio/AudioNodeInput.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +3 lines, -2 lines 0 comments Download
M Source/modules/webaudio/AudioNodeInput.cpp View 1 chunk +2 lines, -2 lines 0 comments Download
M Source/modules/webaudio/AudioNodeOutput.h View 1 2 3 4 5 6 7 8 9 10 4 chunks +6 lines, -9 lines 0 comments Download
M Source/modules/webaudio/AudioNodeOutput.cpp View 1 chunk +2 lines, -4 lines 0 comments Download
M Source/modules/webaudio/AudioParam.h View 1 2 3 5 6 7 8 1 chunk +3 lines, -9 lines 0 comments Download
M Source/modules/webaudio/AudioParam.idl View 1 chunk +1 line, -1 line 0 comments Download
M Source/modules/webaudio/AudioProcessingEvent.h View 1 2 3 2 chunks +4 lines, -4 lines 0 comments Download
M Source/modules/webaudio/AudioProcessingEvent.cpp View 1 2 3 2 chunks +2 lines, -2 lines 0 comments Download
M Source/modules/webaudio/AudioScheduledSourceNode.cpp View 2 chunks +1 line, -8 lines 0 comments Download
M Source/modules/webaudio/AudioSummingJunction.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 3 chunks +4 lines, -2 lines 0 comments Download
M Source/modules/webaudio/AudioSummingJunction.cpp View 1 2 3 4 5 6 7 8 1 chunk +0 lines, -6 lines 0 comments Download
M Source/modules/webaudio/BiquadFilterNode.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +2 lines, -2 lines 0 comments Download
M Source/modules/webaudio/BiquadFilterNode.cpp View 1 chunk +1 line, -1 line 0 comments Download
M Source/modules/webaudio/BiquadProcessor.h View 1 chunk +4 lines, -4 lines 0 comments Download
M Source/modules/webaudio/ChannelMergerNode.h View 1 chunk +1 line, -1 line 0 comments Download
M Source/modules/webaudio/ChannelMergerNode.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +3 lines, -3 lines 0 comments Download
M Source/modules/webaudio/ChannelSplitterNode.h View 1 chunk +1 line, -1 line 0 comments Download
M Source/modules/webaudio/ChannelSplitterNode.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +3 lines, -3 lines 0 comments Download
M Source/modules/webaudio/ConvolverNode.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +3 lines, -3 lines 0 comments Download
M Source/modules/webaudio/DefaultAudioDestinationNode.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +2 lines, -2 lines 0 comments Download
M Source/modules/webaudio/DelayNode.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +2 lines, -2 lines 0 comments Download
M Source/modules/webaudio/DelayNode.cpp View 1 chunk +1 line, -1 line 0 comments Download
M Source/modules/webaudio/DelayProcessor.h View 1 chunk +1 line, -1 line 0 comments Download
M Source/modules/webaudio/DynamicsCompressorNode.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +8 lines, -8 lines 0 comments Download
M Source/modules/webaudio/GainNode.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +3 lines, -3 lines 0 comments Download
M Source/modules/webaudio/MediaElementAudioSourceNode.h View 1 chunk +2 lines, -2 lines 0 comments Download
M Source/modules/webaudio/MediaElementAudioSourceNode.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +2 lines, -8 lines 0 comments Download
M Source/modules/webaudio/MediaStreamAudioDestinationNode.h View 2 chunks +2 lines, -2 lines 0 comments Download
M Source/modules/webaudio/MediaStreamAudioDestinationNode.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +2 lines, -2 lines 0 comments Download
M Source/modules/webaudio/MediaStreamAudioSourceNode.h View 2 chunks +4 lines, -4 lines 0 comments Download
M Source/modules/webaudio/MediaStreamAudioSourceNode.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +2 lines, -2 lines 0 comments Download
M Source/modules/webaudio/OfflineAudioCompletionEvent.h View 1 2 3 2 chunks +3 lines, -3 lines 0 comments Download
M Source/modules/webaudio/OfflineAudioCompletionEvent.cpp View 1 2 3 2 chunks +2 lines, -2 lines 0 comments Download
M Source/modules/webaudio/OfflineAudioContext.h View 1 chunk +1 line, -1 line 0 comments Download
M Source/modules/webaudio/OfflineAudioContext.cpp View 3 chunks +7 lines, -7 lines 0 comments Download
M Source/modules/webaudio/OfflineAudioContext.idl View 1 chunk +0 lines, -1 line 0 comments Download
M Source/modules/webaudio/OfflineAudioDestinationNode.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +3 lines, -3 lines 0 comments Download
M Source/modules/webaudio/OfflineAudioDestinationNode.cpp View 3 chunks +2 lines, -9 lines 0 comments Download
M Source/modules/webaudio/OscillatorNode.h View 3 chunks +4 lines, -4 lines 0 comments Download
M Source/modules/webaudio/OscillatorNode.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +6 lines, -6 lines 0 comments Download
M Source/modules/webaudio/PannerNode.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +2 lines, -2 lines 0 comments Download
M Source/modules/webaudio/PeriodicWave.h View 1 2 3 1 chunk +6 lines, -7 lines 0 comments Download
M Source/modules/webaudio/PeriodicWave.cpp View 1 chunk +11 lines, -11 lines 0 comments Download
M Source/modules/webaudio/PeriodicWave.idl View 1 chunk +1 line, -1 line 0 comments Download
M Source/modules/webaudio/ScriptProcessorNode.h View 2 chunks +3 lines, -3 lines 0 comments Download
M Source/modules/webaudio/ScriptProcessorNode.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 5 chunks +9 lines, -16 lines 0 comments Download
M Source/modules/webaudio/WaveShaperNode.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +2 lines, -2 lines 0 comments Download
M Source/modules/webaudio/WaveShaperNode.cpp View 1 chunk +1 line, -1 line 0 comments Download
M Source/platform/audio/AudioDSPKernel.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +7 lines, -0 lines 0 comments Download
M Source/platform/audio/AudioProcessor.h View 1 chunk +1 line, -1 line 0 comments Download
M Source/platform/audio/AudioSourceProviderClient.h View 1 chunk +1 line, -1 line 0 comments Download
M Source/web/WebMediaPlayerClientImpl.h View 1 2 3 4 5 6 7 8 3 chunks +3 lines, -3 lines 0 comments Download
M Source/web/WebMediaPlayerClientImpl.cpp View 1 2 3 4 5 6 7 8 1 chunk +1 line, -1 line 0 comments Download

Messages

Total messages: 26 (0 generated)
haraken
This CL is not yet for review. While I'm writing the CL, I noticed a ...
6 years, 4 months ago (2014-08-05 12:23:03 UTC) #1
haraken
Hmm, this is complicated. I'm getting to understand what's going on. In short, it's hard ...
6 years, 4 months ago (2014-08-11 06:44:39 UTC) #2
tkent
I think making AudioNode RefCountedGarbageCollected won't cause any problems. The past self-keep-alive leaked everything because ...
6 years, 4 months ago (2014-08-11 08:50:10 UTC) #3
haraken
On 2014/08/11 08:50:10, tkent wrote: > I think making AudioNode RefCountedGarbageCollected won't cause any problems. ...
6 years, 4 months ago (2014-08-11 08:50:59 UTC) #4
haraken
The patch set 6 fixes all crashes in layout tests. However, it looks like all ...
6 years, 4 months ago (2014-08-12 08:25:18 UTC) #5
haraken
OK, the patch set 8 will work. It passes all layout tests without leaking any ...
6 years, 4 months ago (2014-08-12 11:43:40 UTC) #6
haraken
OK, the patch set 10 is now ready for review. tkent-san, rtoy: Would you take ...
6 years, 4 months ago (2014-08-15 07:07:08 UTC) #7
tkent
I wonder why we don't use RefCountedGarbageCollected for AudioNode. ref() and deref() are called only ...
6 years, 4 months ago (2014-08-15 07:39:01 UTC) #8
haraken
> I wonder why we don't use RefCountedGarbageCollected for AudioNode. ref() and > deref() are ...
6 years, 4 months ago (2014-08-15 08:08:00 UTC) #9
tkent
On 2014/08/15 08:08:00, haraken wrote: > > I wonder why we don't use RefCountedGarbageCollected for ...
6 years, 4 months ago (2014-08-15 08:19:35 UTC) #10
haraken
On 2014/08/15 08:19:35, tkent wrote: > On 2014/08/15 08:08:00, haraken wrote: > > > I ...
6 years, 4 months ago (2014-08-15 09:00:49 UTC) #11
haraken
In the end, I realized that we are able to remove all ENABLE(OILPAN)s from webaudio/ ...
6 years, 4 months ago (2014-08-15 09:05:23 UTC) #12
zerny-chromium
> > Is GC_PLUGIN_IGNORE necessary? If so, we should avoid empty string argument, > > ...
6 years, 4 months ago (2014-08-15 10:29:54 UTC) #13
Raymond Toy
lgtm. I didn't completely follow all of the previous changes that lead up to this, ...
6 years, 4 months ago (2014-08-15 16:20:10 UTC) #14
tkent
https://codereview.chromium.org/438293003/diff/260001/Source/modules/webaudio/AudioBufferSourceNode.cpp File Source/modules/webaudio/AudioBufferSourceNode.cpp (right): https://codereview.chromium.org/438293003/diff/260001/Source/modules/webaudio/AudioBufferSourceNode.cpp#newcode52 Source/modules/webaudio/AudioBufferSourceNode.cpp:52: return adoptRefCountedGarbageCollected(new AudioBufferSourceNode(context, sampleRate)); adoptRefCountedGarbageCollected should be adoptRefCountedGarbageCollectedWillBeNoop
6 years, 4 months ago (2014-08-18 04:18:24 UTC) #15
haraken
I confirmed that the patch set 15 passes all webaudio/ tests in both oilpan and ...
6 years, 4 months ago (2014-08-18 05:09:40 UTC) #16
tkent
lgtm https://codereview.chromium.org/438293003/diff/300001/Source/core/html/HTMLMediaElement.h File Source/core/html/HTMLMediaElement.h (right): https://codereview.chromium.org/438293003/diff/300001/Source/core/html/HTMLMediaElement.h#newcode595 Source/core/html/HTMLMediaElement.h:595: GC_PLUGIN_IGNORE("") bug URL? https://codereview.chromium.org/438293003/diff/300001/Source/platform/audio/AudioDSPKernel.h File Source/platform/audio/AudioDSPKernel.h (right): https://codereview.chromium.org/438293003/diff/300001/Source/platform/audio/AudioDSPKernel.h#newcode76 ...
6 years, 4 months ago (2014-08-18 08:54:52 UTC) #17
haraken
https://codereview.chromium.org/438293003/diff/300001/Source/core/html/HTMLMediaElement.h File Source/core/html/HTMLMediaElement.h (right): https://codereview.chromium.org/438293003/diff/300001/Source/core/html/HTMLMediaElement.h#newcode595 Source/core/html/HTMLMediaElement.h:595: GC_PLUGIN_IGNORE("") On 2014/08/18 08:54:51, tkent wrote: > bug URL? ...
6 years, 4 months ago (2014-08-18 09:11:03 UTC) #18
haraken
The CQ bit was checked by haraken@chromium.org
6 years, 4 months ago (2014-08-18 09:11:10 UTC) #19
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/haraken@chromium.org/438293003/320001
6 years, 4 months ago (2014-08-18 09:11:36 UTC) #20
commit-bot: I haz the power
FYI, CQ is re-trying this CL (attempt #1). The failing builders are: win_blink_rel on tryserver.blink ...
6 years, 4 months ago (2014-08-18 10:18:23 UTC) #21
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 4 months ago (2014-08-18 11:23:53 UTC) #22
commit-bot: I haz the power
Try jobs failed on following builders: win_blink_rel on tryserver.blink (http://build.chromium.org/p/tryserver.blink/builders/win_blink_rel/builds/23194)
6 years, 4 months ago (2014-08-18 11:23:54 UTC) #23
haraken
The CQ bit was checked by haraken@chromium.org
6 years, 4 months ago (2014-08-18 12:18:43 UTC) #24
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/haraken@chromium.org/438293003/320001
6 years, 4 months ago (2014-08-18 12:19:42 UTC) #25
commit-bot: I haz the power
6 years, 4 months ago (2014-08-18 13:30:42 UTC) #26
Message was sent while issue was closed.
Committed patchset #17 (320001) as 180457

Powered by Google App Engine
This is Rietveld 408576698