Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / modules / speech / SpeechSynthesis.h
index d1aa9b7..ef518f2 100644 (file)
@@ -29,6 +29,7 @@
 #include "bindings/v8/ScriptWrappable.h"
 #include "core/dom/ContextLifecycleObserver.h"
 #include "core/events/EventTarget.h"
+#include "heap/Handle.h"
 #include "modules/speech/SpeechSynthesisUtterance.h"
 #include "modules/speech/SpeechSynthesisVoice.h"
 #include "platform/speech/PlatformSpeechSynthesisUtterance.h"
@@ -42,12 +43,12 @@ namespace WebCore {
 
 class ExceptionState;
 class PlatformSpeechSynthesizerClient;
-class SpeechSynthesisVoice;
 
-class SpeechSynthesis FINAL : public PlatformSpeechSynthesizerClient, public ScriptWrappable, public RefCounted<SpeechSynthesis>, public ContextLifecycleObserver, public EventTargetWithInlineData {
-    REFCOUNTED_EVENT_TARGET(SpeechSynthesis);
+class SpeechSynthesis FINAL : public RefCountedWillBeRefCountedGarbageCollected<SpeechSynthesis>, public PlatformSpeechSynthesizerClient, public ScriptWrappable, public ContextLifecycleObserver, public EventTargetWithInlineData {
+    DECLARE_GC_INFO;
+    DEFINE_EVENT_TARGET_REFCOUNTING(RefCountedWillBeRefCountedGarbageCollected<SpeechSynthesis>);
 public:
-    static PassRefPtr<SpeechSynthesis> create(ExecutionContext*);
+    static PassRefPtrWillBeRawPtr<SpeechSynthesis> create(ExecutionContext*);
 
     bool pending() const;
     bool speaking() const;
@@ -58,7 +59,7 @@ public:
     void pause();
     void resume();
 
-    const Vector<RefPtr<SpeechSynthesisVoice> >& getVoices();
+    const WillBeHeapVector<RefPtrWillBeMember<SpeechSynthesisVoice> >& getVoices();
 
     // Used in testing to use a mock platform synthesizer
     void setPlatformSynthesizer(PassOwnPtr<PlatformSpeechSynthesizer>);
@@ -67,6 +68,8 @@ public:
 
     virtual ExecutionContext* executionContext() const OVERRIDE;
 
+    void trace(Visitor*);
+
 private:
     explicit SpeechSynthesis(ExecutionContext*);
 
@@ -79,14 +82,16 @@ private:
     virtual void speakingErrorOccurred(PassRefPtr<PlatformSpeechSynthesisUtterance>) OVERRIDE;
     virtual void boundaryEventOccurred(PassRefPtr<PlatformSpeechSynthesisUtterance>, SpeechBoundary, unsigned charIndex) OVERRIDE;
 
-    void startSpeakingImmediately(SpeechSynthesisUtterance*);
+    void startSpeakingImmediately();
     void handleSpeakingCompleted(SpeechSynthesisUtterance*, bool errorOccurred);
     void fireEvent(const AtomicString& type, SpeechSynthesisUtterance*, unsigned long charIndex, const String& name);
 
+    // Returns the utterance at the front of the queue.
+    SpeechSynthesisUtterance* currentSpeechUtterance() const;
+
     OwnPtr<PlatformSpeechSynthesizer> m_platformSpeechSynthesizer;
-    Vector<RefPtr<SpeechSynthesisVoice> > m_voiceList;
-    SpeechSynthesisUtterance* m_currentSpeechUtterance;
-    Deque<RefPtr<SpeechSynthesisUtterance> > m_utteranceQueue;
+    WillBeHeapVector<RefPtrWillBeMember<SpeechSynthesisVoice> > m_voiceList;
+    Deque<RefPtrWillBeMember<SpeechSynthesisUtterance> > m_utteranceQueue;
     bool m_isPaused;
 
     // EventTarget