Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2717)

Unified Diff: chrome/renderer/searchbox/searchbox_extension.cc

Issue 14646034: Add onfocuschange to the Extended Search API, with associated isFocused attribute. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Trying again after rebase master. Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/renderer/searchbox/searchbox_extension.h ('k') | chrome/test/data/instant_extended.html » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/renderer/searchbox/searchbox_extension.cc
diff --git a/chrome/renderer/searchbox/searchbox_extension.cc b/chrome/renderer/searchbox/searchbox_extension.cc
index 205c85752fb1806bf9d26c21f05b842f7af02d8b..f1c9ffd2c39b1a422a52e27f770f49f6d9e0a025 100644
--- a/chrome/renderer/searchbox/searchbox_extension.cc
+++ b/chrome/renderer/searchbox/searchbox_extension.cc
@@ -448,6 +448,17 @@ static const char kDispatchBarsHiddenEventScript[] =
" true;"
"}";
+static const char kDispatchFocusChangedScript[] =
+ "if (window.chrome &&"
+ " window.chrome.embeddedSearch &&"
+ " window.chrome.embeddedSearch.searchBox &&"
+ " window.chrome.embeddedSearch.searchBox.onfocuschange &&"
+ " typeof window.chrome.embeddedSearch.searchBox.onfocuschange =="
+ " 'function') {"
+ " window.chrome.embeddedSearch.searchBox.onfocuschange();"
+ " true;"
+ "}";
+
// ----------------------------------------------------------------------------
class SearchBoxExtensionWrapper : public v8::Extension {
@@ -592,6 +603,9 @@ class SearchBoxExtensionWrapper : public v8::Extension {
static v8::Handle<v8::Value> GetMostVisitedItemData(
const v8::Arguments& args);
+ // Gets whether the omnibox has focus or not.
+ static v8::Handle<v8::Value> IsFocused(const v8::Arguments& args);
+
private:
DISALLOW_COPY_AND_ASSIGN(SearchBoxExtensionWrapper);
};
@@ -675,6 +689,8 @@ v8::Handle<v8::FunctionTemplate> SearchBoxExtensionWrapper::GetNativeFunction(
return v8::FunctionTemplate::New(GetSuggestionData);
if (name->Equals(v8::String::New("GetMostVisitedItemData")))
return v8::FunctionTemplate::New(GetMostVisitedItemData);
+ if (name->Equals(v8::String::New("IsFocused")))
+ return v8::FunctionTemplate::New(IsFocused);
return v8::Handle<v8::FunctionTemplate>();
}
@@ -1391,6 +1407,17 @@ v8::Handle<v8::Value> SearchBoxExtensionWrapper::GetMostVisitedItemData(
}
// static
+v8::Handle<v8::Value> SearchBoxExtensionWrapper::IsFocused(
+ const v8::Arguments& args) {
+ content::RenderView* render_view = GetRenderView();
+ if (!render_view) return v8::Undefined();
+
+ bool is_focused = SearchBox::Get(render_view)->is_focused();
+ DVLOG(1) << render_view << " IsFocused: " << is_focused;
+ return v8::Boolean::New(is_focused);
+}
+
+// static
void SearchBoxExtension::DispatchChange(WebKit::WebFrame* frame) {
Dispatch(frame, kDispatchChangeEventScript);
}
@@ -1460,4 +1487,9 @@ void SearchBoxExtension::DispatchBarsHidden(WebKit::WebFrame* frame) {
Dispatch(frame, kDispatchBarsHiddenEventScript);
}
+// static
+void SearchBoxExtension::DispatchFocusChange(WebKit::WebFrame* frame) {
+ Dispatch(frame, kDispatchFocusChangedScript);
+}
+
} // namespace extensions_v8
« no previous file with comments | « chrome/renderer/searchbox/searchbox_extension.h ('k') | chrome/test/data/instant_extended.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698