WebKit Bugzilla
Attachment 357049 Details for
Bug 192586
: [WebAudio] Call AudioContext::uninitialize() immediately when the AudioContext is stopped
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-192586-20181211164624.patch (text/plain), 2.50 KB, created by
Yacine Bandou
on 2018-12-11 07:46:32 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Yacine Bandou
Created:
2018-12-11 07:46:32 PST
Size:
2.50 KB
patch
obsolete
>Subversion Revision: 238446 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index b6d4dff63cbdbc284e9a1bae4c552ccf487338e9..b452098ffaf366d2a089dbbea44f4bebd9c5c56e 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,25 @@ >+2018-12-11 Yacine Bandou <yacine.bandou@softathome.com> >+ >+ [WebAudio] Call AudioContext::uninitialize() immediately when the AudioContext is stopped >+ https://bugs.webkit.org/show_bug.cgi?id=192586 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ When WebProcess is killed, AudioContext::uninitialize() is not called immediately in the stop so >+ the AudioDestinationNode is not destroyed. >+ >+ In my case, I have a resource device manager, the output audio device is reserved when AudioDestinationNode >+ is instantiated and it is released when AudioDestinationNode is destroyed, thus when the webprocess is killed, >+ the resources leak. >+ >+ AudioContext::uninitialize() is not called immediately since r94608. >+ This modification can now be reverted without regression in WebAudio tests. >+ >+ Test: webaudio/mediaelementaudiosourcenode-gc.html >+ >+ * Modules/webaudio/AudioContext.cpp: >+ (WebCore::AudioContext::stop): >+ > 2018-11-22 Javier Fernandez <jfernandez@igalia.com> > > Tables with vertical-lr writing-mode doesn't apply correctly vertical-align: baseline >diff --git a/Source/WebCore/Modules/webaudio/AudioContext.cpp b/Source/WebCore/Modules/webaudio/AudioContext.cpp >index c54282ff53484d99cac38aa815aaa82ca53ca539..d940dc0f7b59a11841e115306860ecbd832017b0 100644 >--- a/Source/WebCore/Modules/webaudio/AudioContext.cpp >+++ b/Source/WebCore/Modules/webaudio/AudioContext.cpp >@@ -314,16 +314,8 @@ void AudioContext::stop() > > m_eventQueue->close(); > >- // Don't call uninitialize() immediately here because the ScriptExecutionContext is in the middle >- // of dealing with all of its ActiveDOMObjects at this point. uninitialize() can de-reference other >- // ActiveDOMObjects so let's schedule uninitialize() to be called later. >- // FIXME: see if there's a more direct way to handle this issue. >- // FIXME: This sounds very wrong. The whole idea of stop() is that it stops everything, and if we >- // schedule some observable work for later, the work likely happens at an inappropriate time. >- callOnMainThread([this] { >- uninitialize(); >- clear(); >- }); >+ uninitialize(); >+ clear(); > } > > bool AudioContext::canSuspendForDocumentSuspension() const
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 192586
:
357046
| 357049 |
357059