diff options
Diffstat (limited to 'chrome/renderer/render_view.cc')
-rw-r--r-- | chrome/renderer/render_view.cc | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/chrome/renderer/render_view.cc b/chrome/renderer/render_view.cc index 39c4193..9d97ee2 100644 --- a/chrome/renderer/render_view.cc +++ b/chrome/renderer/render_view.cc @@ -61,6 +61,7 @@ #include "chrome/renderer/render_view_visitor.h" #include "chrome/renderer/renderer_webapplicationcachehost_impl.h" #include "chrome/renderer/renderer_webstoragenamespace_impl.h" +#include "chrome/renderer/speech_input_dispatcher.h" #include "chrome/renderer/spellchecker/spellcheck.h" #include "chrome/renderer/user_script_slave.h" #include "chrome/renderer/visitedlink_slave.h" @@ -628,6 +629,10 @@ void RenderView::OnMessageReceived(const IPC::Message& message) { geolocation_dispatcher_->OnMessageReceived(message)) { return; } + if (speech_input_dispatcher_.get() && + speech_input_dispatcher_->OnMessageReceived(message)) { + return; + } IPC_BEGIN_MESSAGE_MAP(RenderView, message) IPC_MESSAGE_HANDLER(ViewMsg_CaptureThumbnail, OnCaptureThumbnail) @@ -5258,6 +5263,13 @@ WebKit::WebGeolocationService* RenderView::geolocationService() { return geolocation_dispatcher_.get(); } +WebKit::WebSpeechInputController* RenderView::speechInputController( + WebKit::WebSpeechInputListener* listener) { + if (!speech_input_dispatcher_.get()) + speech_input_dispatcher_.reset(new SpeechInputDispatcher(this, listener)); + return speech_input_dispatcher_.get(); +} + bool RenderView::IsNonLocalTopLevelNavigation( const GURL& url, WebKit::WebFrame* frame, WebKit::WebNavigationType type) { // Must be a top level frame. |