Chromium Code Reviews| Index: chrome/renderer/searchbox/searchbox_extension.cc |
| diff --git a/chrome/renderer/searchbox/searchbox_extension.cc b/chrome/renderer/searchbox/searchbox_extension.cc |
| index 62b8397536d177b9dbba5cf96dc8cbf9c50aec6a..691da246488d45ff1d0a6e2adef50f6bef6c07b6 100644 |
| --- a/chrome/renderer/searchbox/searchbox_extension.cc |
| +++ b/chrome/renderer/searchbox/searchbox_extension.cc |
| @@ -294,7 +294,11 @@ class SearchBoxExtensionWrapper : public v8::Extension { |
| static v8::Handle<v8::Value> GetFontSize(const v8::Arguments& args); |
| // Navigates the window to a URL represented by either a URL string or a |
| - // restricted ID. |
| + // restricted ID. The two variants handle restricted IDs in their |
| + // respective namespaces. |
| + static v8::Handle<v8::Value> NavigateSearchBox(const v8::Arguments& args); |
| + static v8::Handle<v8::Value> NavigateNewTabPage(const v8::Arguments& args); |
| + // DEPRECATED: TODO(sreeram): Remove when google.com no longer uses this. |
| static v8::Handle<v8::Value> NavigateContentWindow(const v8::Arguments& args); |
| // Sets ordered suggestions. Valid for current |value|. |
| @@ -383,6 +387,10 @@ v8::Handle<v8::FunctionTemplate> SearchBoxExtensionWrapper::GetNativeFunction( |
| return v8::FunctionTemplate::New(GetFont); |
| if (name->Equals(v8::String::New("GetFontSize"))) |
| return v8::FunctionTemplate::New(GetFontSize); |
| + if (name->Equals(v8::String::New("NavigateSearchBox"))) |
| + return v8::FunctionTemplate::New(NavigateSearchBox); |
| + if (name->Equals(v8::String::New("NavigateNewTabPage"))) |
| + return v8::FunctionTemplate::New(NavigateNewTabPage); |
| if (name->Equals(v8::String::New("NavigateContentWindow"))) |
| return v8::FunctionTemplate::New(NavigateContentWindow); |
| if (name->Equals(v8::String::New("SetSuggestions"))) |
| @@ -680,7 +688,7 @@ v8::Handle<v8::Value> SearchBoxExtensionWrapper::GetFontSize( |
| } |
| // static |
| -v8::Handle<v8::Value> SearchBoxExtensionWrapper::NavigateContentWindow( |
| +v8::Handle<v8::Value> SearchBoxExtensionWrapper::NavigateSearchBox( |
| const v8::Arguments& args) { |
| content::RenderView* render_view = GetRenderView(); |
| if (!render_view || !args.Length()) return v8::Undefined(); |
| @@ -698,6 +706,8 @@ v8::Handle<v8::Value> SearchBoxExtensionWrapper::NavigateContentWindow( |
| destination_url = GURL(V8ValueToUTF16(args[0])); |
| } |
| + DVLOG(1) << render_view << " NavigateSearchBox: " << destination_url; |
| + |
| // Navigate the main frame. |
| if (destination_url.is_valid()) { |
| WindowOpenDisposition disposition = CURRENT_TAB; |
| @@ -710,6 +720,49 @@ v8::Handle<v8::Value> SearchBoxExtensionWrapper::NavigateContentWindow( |
| } |
| // static |
| +v8::Handle<v8::Value> SearchBoxExtensionWrapper::NavigateNewTabPage( |
| + const v8::Arguments& args) { |
| + content::RenderView* render_view = GetRenderView(); |
| + if (!render_view || !args.Length()) return v8::Undefined(); |
| + |
| + GURL destination_url; |
| + content::PageTransition transition = content::PAGE_TRANSITION_TYPED; |
| + if (args[0]->IsNumber()) { |
| + destination_url = GURL(SearchBox::Get(render_view)->RestrictedIdToURL( |
| + args[0]->Uint32Value())); |
| + } else { |
| + destination_url = GURL(V8ValueToUTF16(args[0])); |
| + } |
| + |
| + DVLOG(1) << render_view << " NavigateNewTabPage: " << destination_url; |
| + |
| + // Navigate the main frame. |
| + if (destination_url.is_valid()) { |
| + WindowOpenDisposition disposition = CURRENT_TAB; |
| + if (args[1]->Uint32Value() == 2) |
| + disposition = NEW_BACKGROUND_TAB; |
| + SearchBox::Get(render_view)->NavigateToURL( |
| + destination_url, transition, disposition); |
| + } |
| + return v8::Undefined(); |
| +} |
| + |
| +// static |
| +v8::Handle<v8::Value> SearchBoxExtensionWrapper::NavigateContentWindow( |
| + const v8::Arguments& args) { |
| + content::RenderView* render_view = GetRenderView(); |
| + if (!render_view || !args.Length()) return v8::Undefined(); |
| + |
| + DVLOG(1) << render_view << " NavigateContentWindow; query=" |
| + << SearchBox::Get(render_view)->query(); |
| + |
| + if (SearchBox::Get(render_view)->query().empty() && |
|
David Black
2013/03/11 20:44:46
Oh geez this is hacky. I guess it's going away as
sreeram
2013/03/11 21:14:04
Done.
|
| + !SearchBox::Get(render_view)->verbatim()) |
| + return NavigateNewTabPage(args); |
| + return NavigateSearchBox(args); |
| +} |
| + |
| +// static |
| v8::Handle<v8::Value> SearchBoxExtensionWrapper::SetSuggestions( |
| const v8::Arguments& args) { |
| content::RenderView* render_view = GetRenderView(); |