Title: [210680] trunk/Source/WebCore
Revision
210680
Author
jer.no...@apple.com
Date
2017-01-12 14:14:44 -0800 (Thu, 12 Jan 2017)

Log Message

Use GenericEventQueue rather than callOnMainThread to schedule events in AudioScheduledSourceNode.
https://bugs.webkit.org/show_bug.cgi?id=166983

Reviewed by Brent Fulgham.

* Modules/webaudio/AudioScheduledSourceNode.cpp:
(WebCore::AudioScheduledSourceNode::AudioScheduledSourceNode):
(WebCore::AudioScheduledSourceNode::finish):
* Modules/webaudio/AudioScheduledSourceNode.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (210679 => 210680)


--- trunk/Source/WebCore/ChangeLog	2017-01-12 21:26:48 UTC (rev 210679)
+++ trunk/Source/WebCore/ChangeLog	2017-01-12 22:14:44 UTC (rev 210680)
@@ -1,3 +1,15 @@
+2017-01-12  Jer Noble  <jer.no...@apple.com>
+
+        Use GenericEventQueue rather than callOnMainThread to schedule events in AudioScheduledSourceNode.
+        https://bugs.webkit.org/show_bug.cgi?id=166983
+
+        Reviewed by Brent Fulgham.
+
+        * Modules/webaudio/AudioScheduledSourceNode.cpp:
+        (WebCore::AudioScheduledSourceNode::AudioScheduledSourceNode):
+        (WebCore::AudioScheduledSourceNode::finish):
+        * Modules/webaudio/AudioScheduledSourceNode.h:
+
 2017-01-12  Youenn Fablet  <you...@apple.com>
 
         OneDrive application crashes upon launch

Modified: trunk/Source/WebCore/Modules/webaudio/AudioScheduledSourceNode.cpp (210679 => 210680)


--- trunk/Source/WebCore/Modules/webaudio/AudioScheduledSourceNode.cpp	2017-01-12 21:26:48 UTC (rev 210679)
+++ trunk/Source/WebCore/Modules/webaudio/AudioScheduledSourceNode.cpp	2017-01-12 22:14:44 UTC (rev 210680)
@@ -47,6 +47,7 @@
 AudioScheduledSourceNode::AudioScheduledSourceNode(AudioContext& context, float sampleRate)
     : AudioNode(context, sampleRate)
     , m_endTime(UnknownTime)
+    , m_eventQueue(*this)
 {
 }
 
@@ -166,11 +167,8 @@
         context().decrementActiveSourceCount();
     }
 
-    if (m_hasEndedListener) {
-        callOnMainThread([this] {
-            dispatchEvent(Event::create(eventNames().endedEvent, false, false));
-        });
-    }
+    if (m_hasEndedListener)
+        m_eventQueue.enqueueEvent(Event::create(eventNames().endedEvent, false, false));
 }
 
 bool AudioScheduledSourceNode::addEventListener(const AtomicString& eventType, Ref<EventListener>&& listener, const AddEventListenerOptions& options)

Modified: trunk/Source/WebCore/Modules/webaudio/AudioScheduledSourceNode.h (210679 => 210680)


--- trunk/Source/WebCore/Modules/webaudio/AudioScheduledSourceNode.h	2017-01-12 21:26:48 UTC (rev 210679)
+++ trunk/Source/WebCore/Modules/webaudio/AudioScheduledSourceNode.h	2017-01-12 22:14:44 UTC (rev 210680)
@@ -29,6 +29,7 @@
 #pragma once
 
 #include "AudioNode.h"
+#include "GenericEventQueue.h"
 
 namespace WebCore {
 
@@ -83,6 +84,7 @@
     double m_endTime; // in seconds
 
     bool m_hasEndedListener { false };
+    GenericEventQueue m_eventQueue;
 
     static const double UnknownTime;
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to