Bug 1247514 - Clear speech delegate when finishing speaking. r?eeejay
After dispatched didFinishSpeaking by OS, another events may be dispatched. So I should remove speech delegate soon when didFinishSpeaking is called.
MozReview-Commit-ID: nsHKJCX8MQ
--- a/dom/media/webspeech/synth/cocoa/OSXSpeechSynthesizerService.mm
+++ b/dom/media/webspeech/synth/cocoa/OSXSpeechSynthesizerService.mm
@@ -146,16 +146,17 @@ SpeechTaskCallback::OnError(uint32_t aIn
mTask->DispatchError(GetTimeDurationFromStart(), aIndex);
}
void
SpeechTaskCallback::OnDidFinishSpeaking()
{
mTask->DispatchEnd(GetTimeDurationFromStart(), mCurrentIndex);
// no longer needed
+ [mSpeechSynthesizer setDelegate:nil];
mTask = nullptr;
}
@interface SpeechDelegate : NSObject<NSSpeechSynthesizerDelegate>
{
@private
SpeechTaskCallback* mCallback;
}