summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/render_view.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/renderer/render_view.cc')
-rw-r--r--chrome/renderer/render_view.cc12
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.