Index: chrome/renderer/searchbox/searchbox_extension.cc |
diff --git a/chrome/renderer/searchbox/searchbox_extension.cc b/chrome/renderer/searchbox/searchbox_extension.cc |
index c687b063c6475597cf0a603eb8e1c135312f285b..5ff90824b7f1d4cafc606f35151b53875dd2a401 100644 |
--- a/chrome/renderer/searchbox/searchbox_extension.cc |
+++ b/chrome/renderer/searchbox/searchbox_extension.cc |
@@ -404,6 +404,17 @@ |
" true;" |
"}"; |
+static const char kDispatchToggleVoiceSearchScript[] = |
+ "if (window.chrome &&" |
+ " window.chrome.embeddedSearch &&" |
+ " window.chrome.embeddedSearch.searchBox &&" |
+ " window.chrome.embeddedSearch.searchBox.ontogglevoicesearch &&" |
+ " typeof window.chrome.embeddedSearch.searchBox.ontogglevoicesearch ==" |
+ " 'function') {" |
+ " window.chrome.embeddedSearch.searchBox.ontogglevoicesearch();" |
+ " true;" |
+ "}"; |
+ |
// ---------------------------------------------------------------------------- |
class SearchBoxExtensionWrapper : public v8::Extension { |
@@ -503,6 +514,10 @@ |
// Pastes provided value or clipboard's content into the omnibox. |
static void Paste(const v8::FunctionCallbackInfo<v8::Value>& args); |
+ |
+ // Indicates whether the page supports voice search. |
+ static void SetVoiceSearchSupported( |
+ const v8::FunctionCallbackInfo<v8::Value>& args); |
// Start capturing user key strokes. |
static void StartCapturingKeyStrokes( |
@@ -610,6 +625,12 @@ |
// static |
void SearchBoxExtension::DispatchThemeChange(blink::WebFrame* frame) { |
Dispatch(frame, kDispatchThemeChangeEventScript); |
+} |
+ |
+// static |
+void SearchBoxExtension::DispatchToggleVoiceSearch( |
+ blink::WebFrame* frame) { |
+ Dispatch(frame, kDispatchToggleVoiceSearchScript); |
} |
SearchBoxExtensionWrapper::SearchBoxExtensionWrapper( |
@@ -671,6 +692,8 @@ |
return v8::FunctionTemplate::New(isolate, NavigateContentWindow); |
if (name->Equals(v8::String::NewFromUtf8(isolate, "Paste"))) |
return v8::FunctionTemplate::New(isolate, Paste); |
+ if (name->Equals(v8::String::NewFromUtf8(isolate, "SetVoiceSearchSupported"))) |
+ return v8::FunctionTemplate::New(isolate, SetVoiceSearchSupported); |
if (name->Equals( |
v8::String::NewFromUtf8(isolate, "StartCapturingKeyStrokes"))) |
return v8::FunctionTemplate::New(isolate, StartCapturingKeyStrokes); |
@@ -1237,6 +1260,22 @@ |
} |
// static |
+void SearchBoxExtensionWrapper::SetVoiceSearchSupported( |
+ const v8::FunctionCallbackInfo<v8::Value>& args) { |
+ content::RenderView* render_view = GetRenderView(); |
+ if (!render_view) { |
+ return; |
+ } |
+ if (!args.Length()) { |
+ ThrowInvalidParameters(args); |
+ return; |
+ } |
+ |
+ DVLOG(1) << render_view << " SetVoiceSearchSupported"; |
+ SearchBox::Get(render_view)->SetVoiceSearchSupported(args[0]->BooleanValue()); |
+} |
+ |
+// static |
void SearchBoxExtensionWrapper::UndoAllMostVisitedDeletions( |
const v8::FunctionCallbackInfo<v8::Value>& args) { |
content::RenderView* render_view = GetRenderView(); |