Index: Source/modules/speech/SpeechSynthesis.cpp |
diff --git a/Source/modules/speech/SpeechSynthesis.cpp b/Source/modules/speech/SpeechSynthesis.cpp |
index 61800b42f1a993c431869ca8a057bcfe0c89a177..64f72974c9d8f44742cabf29884b8d81acbc8c93 100644 |
--- a/Source/modules/speech/SpeechSynthesis.cpp |
+++ b/Source/modules/speech/SpeechSynthesis.cpp |
@@ -47,7 +47,7 @@ SpeechSynthesis::SpeechSynthesis(ExecutionContext* context) |
ScriptWrappable::init(this); |
} |
-void SpeechSynthesis::setPlatformSynthesizer(PassOwnPtr<PlatformSpeechSynthesizer> synthesizer) |
+void SpeechSynthesis::setPlatformSynthesizer(PlatformSpeechSynthesizer* synthesizer) |
{ |
m_platformSpeechSynthesizer = synthesizer; |
} |
@@ -70,10 +70,10 @@ const HeapVector<Member<SpeechSynthesisVoice> >& SpeechSynthesis::getVoices() |
return m_voiceList; |
// If the voiceList is empty, that's the cue to get the voices from the platform again. |
- const Vector<RefPtr<PlatformSpeechSynthesisVoice> >& platformVoices = m_platformSpeechSynthesizer->voiceList(); |
+ const HeapVector<Member<PlatformSpeechSynthesisVoice> >& platformVoices = m_platformSpeechSynthesizer->voiceList(); |
size_t voiceCount = platformVoices.size(); |
for (size_t k = 0; k < voiceCount; k++) |
- m_voiceList.append(SpeechSynthesisVoice::create(platformVoices[k])); |
+ m_voiceList.append(SpeechSynthesisVoice::create(platformVoices[k].get())); |
return m_voiceList; |
} |
@@ -172,7 +172,7 @@ void SpeechSynthesis::handleSpeakingCompleted(SpeechSynthesisUtterance* utteranc |
startSpeakingImmediately(); |
} |
-void SpeechSynthesis::boundaryEventOccurred(PassRefPtr<PlatformSpeechSynthesisUtterance> utterance, SpeechBoundary boundary, unsigned charIndex) |
+void SpeechSynthesis::boundaryEventOccurred(PlatformSpeechSynthesisUtterance* utterance, SpeechBoundary boundary, unsigned charIndex) |
{ |
DEFINE_STATIC_LOCAL(const String, wordBoundaryString, ("word")); |
DEFINE_STATIC_LOCAL(const String, sentenceBoundaryString, ("sentence")); |
@@ -189,33 +189,33 @@ void SpeechSynthesis::boundaryEventOccurred(PassRefPtr<PlatformSpeechSynthesisUt |
} |
} |
-void SpeechSynthesis::didStartSpeaking(PassRefPtr<PlatformSpeechSynthesisUtterance> utterance) |
+void SpeechSynthesis::didStartSpeaking(PlatformSpeechSynthesisUtterance* utterance) |
{ |
if (utterance->client()) |
fireEvent(EventTypeNames::start, static_cast<SpeechSynthesisUtterance*>(utterance->client()), 0, String()); |
} |
-void SpeechSynthesis::didPauseSpeaking(PassRefPtr<PlatformSpeechSynthesisUtterance> utterance) |
+void SpeechSynthesis::didPauseSpeaking(PlatformSpeechSynthesisUtterance* utterance) |
{ |
m_isPaused = true; |
if (utterance->client()) |
fireEvent(EventTypeNames::pause, static_cast<SpeechSynthesisUtterance*>(utterance->client()), 0, String()); |
} |
-void SpeechSynthesis::didResumeSpeaking(PassRefPtr<PlatformSpeechSynthesisUtterance> utterance) |
+void SpeechSynthesis::didResumeSpeaking(PlatformSpeechSynthesisUtterance* utterance) |
{ |
m_isPaused = false; |
if (utterance->client()) |
fireEvent(EventTypeNames::resume, static_cast<SpeechSynthesisUtterance*>(utterance->client()), 0, String()); |
} |
-void SpeechSynthesis::didFinishSpeaking(PassRefPtr<PlatformSpeechSynthesisUtterance> utterance) |
+void SpeechSynthesis::didFinishSpeaking(PlatformSpeechSynthesisUtterance* utterance) |
{ |
if (utterance->client()) |
handleSpeakingCompleted(static_cast<SpeechSynthesisUtterance*>(utterance->client()), false); |
} |
-void SpeechSynthesis::speakingErrorOccurred(PassRefPtr<PlatformSpeechSynthesisUtterance> utterance) |
+void SpeechSynthesis::speakingErrorOccurred(PlatformSpeechSynthesisUtterance* utterance) |
{ |
if (utterance->client()) |
handleSpeakingCompleted(static_cast<SpeechSynthesisUtterance*>(utterance->client()), true); |
@@ -235,8 +235,10 @@ const AtomicString& SpeechSynthesis::interfaceName() const |
void SpeechSynthesis::trace(Visitor* visitor) |
{ |
+ visitor->trace(m_platformSpeechSynthesizer); |
visitor->trace(m_voiceList); |
visitor->trace(m_utteranceQueue); |
+ PlatformSpeechSynthesizerClient::trace(visitor); |
EventTargetWithInlineData::trace(visitor); |
} |