| Index: chrome/browser/speech/extension_api/tts_extension_api.cc
|
| diff --git a/chrome/browser/speech/extension_api/tts_extension_api.cc b/chrome/browser/speech/extension_api/tts_extension_api.cc
|
| index 823b849d36723c895d1f3e3d87e2ec45a15345c8..f2837efe59ca93357fdaaacdf515f481e8a10305 100644
|
| --- a/chrome/browser/speech/extension_api/tts_extension_api.cc
|
| +++ b/chrome/browser/speech/extension_api/tts_extension_api.cc
|
| @@ -86,12 +86,24 @@ class TtsExtensionEventHandler
|
| : public UtteranceEventDelegate,
|
| public base::SupportsWeakPtr<TtsExtensionEventHandler> {
|
| public:
|
| + explicit TtsExtensionEventHandler(const std::string& src_extension_id);
|
| +
|
| virtual void OnTtsEvent(Utterance* utterance,
|
| TtsEventType event_type,
|
| int char_index,
|
| const std::string& error_message) override;
|
| +
|
| + private:
|
| + // The extension ID of the extension that called speak() and should
|
| + // receive events.
|
| + std::string src_extension_id_;
|
| };
|
|
|
| +TtsExtensionEventHandler::TtsExtensionEventHandler(
|
| + const std::string& src_extension_id)
|
| + : src_extension_id_(src_extension_id) {
|
| +}
|
| +
|
| void TtsExtensionEventHandler::OnTtsEvent(Utterance* utterance,
|
| TtsEventType event_type,
|
| int char_index,
|
| @@ -130,7 +142,7 @@ void TtsExtensionEventHandler::OnTtsEvent(Utterance* utterance,
|
| event->restrict_to_browser_context = utterance->browser_context();
|
| event->event_url = utterance->src_url();
|
| extensions::EventRouter::Get(utterance->browser_context())
|
| - ->DispatchEventToExtension(utterance->src_extension_id(), event.Pass());
|
| + ->DispatchEventToExtension(src_extension_id_, event.Pass());
|
|
|
| if (utterance->finished())
|
| delete this;
|
| @@ -267,7 +279,6 @@ bool TtsSpeakFunction::RunAsync() {
|
| Utterance* utterance = new Utterance(GetProfile());
|
| utterance->set_text(text);
|
| utterance->set_voice_name(voice_name);
|
| - utterance->set_src_extension_id(extension_id());
|
| utterance->set_src_id(src_id);
|
| utterance->set_src_url(source_url());
|
| utterance->set_lang(lang);
|
| @@ -279,7 +290,7 @@ bool TtsSpeakFunction::RunAsync() {
|
| utterance->set_extension_id(voice_extension_id);
|
| utterance->set_options(options.get());
|
| utterance->set_event_delegate(
|
| - (new TtsExtensionEventHandler())->AsWeakPtr());
|
| + (new TtsExtensionEventHandler(extension_id()))->AsWeakPtr());
|
|
|
| TtsController* controller = TtsController::GetInstance();
|
| controller->SpeakOrEnqueue(utterance);
|
|
|