Index: chrome/renderer/searchbox.cc |
diff --git a/chrome/renderer/searchbox.cc b/chrome/renderer/searchbox.cc |
index fc9ee55fc5289d61af8bc23993b92feb40a73711..78bf3ce4604b074f076b39935063859a6c20a6b8 100644 |
--- a/chrome/renderer/searchbox.cc |
+++ b/chrome/renderer/searchbox.cc |
@@ -4,6 +4,7 @@ |
#include "chrome/renderer/searchbox.h" |
+#include "base/string16.h" |
#include "chrome/common/render_messages.h" |
#include "chrome/renderer/searchbox_extension.h" |
#include "content/public/renderer/render_view.h" |
@@ -22,7 +23,7 @@ SearchBox::SearchBox(content::RenderView* render_view) |
SearchBox::~SearchBox() { |
} |
-void SearchBox::SetSuggestions(const std::vector<std::string>& suggestions, |
+void SearchBox::SetSuggestions(const std::vector<string16>& suggestions, |
InstantCompleteBehavior behavior) { |
// Explicitly allow empty vector to be sent to the browser. |
render_view()->Send(new ChromeViewHostMsg_SetSuggestions( |
@@ -62,21 +63,22 @@ bool SearchBox::OnMessageReceived(const IPC::Message& message) { |
void SearchBox::OnChange(const string16& value, |
bool verbatim, |
- int selection_start, |
- int selection_end) { |
+ size_t selection_start, |
+ size_t selection_end) { |
value_ = value; |
verbatim_ = verbatim; |
selection_start_ = selection_start; |
selection_end_ = selection_end; |
- if (!render_view()->GetWebView() || !render_view()->GetWebView()->mainFrame()) |
- return; |
- extensions_v8::SearchBoxExtension::DispatchChange( |
- render_view()->GetWebView()->mainFrame()); |
+ if (render_view()->GetWebView() && render_view()->GetWebView()->mainFrame()) { |
+ extensions_v8::SearchBoxExtension::DispatchChange( |
+ render_view()->GetWebView()->mainFrame()); |
+ } |
} |
-void SearchBox::OnSubmit(const string16& value, bool verbatim) { |
+void SearchBox::OnSubmit(const string16& value) { |
value_ = value; |
- verbatim_ = verbatim; |
+ verbatim_ = true; |
+ selection_start_ = selection_end_ = value_.length(); |
if (render_view()->GetWebView() && render_view()->GetWebView()->mainFrame()) { |
extensions_v8::SearchBoxExtension::DispatchSubmit( |
render_view()->GetWebView()->mainFrame()); |
@@ -84,8 +86,10 @@ void SearchBox::OnSubmit(const string16& value, bool verbatim) { |
Reset(); |
} |
-void SearchBox::OnCancel() { |
- verbatim_ = false; |
+void SearchBox::OnCancel(const string16& value) { |
+ value_ = value; |
+ verbatim_ = true; |
+ selection_start_ = selection_end_ = value_.length(); |
if (render_view()->GetWebView() && render_view()->GetWebView()->mainFrame()) { |
extensions_v8::SearchBoxExtension::DispatchCancel( |
render_view()->GetWebView()->mainFrame()); |
@@ -101,18 +105,13 @@ void SearchBox::OnResize(const gfx::Rect& bounds) { |
render_view()->GetWebView()->mainFrame()); |
} |
-void SearchBox::OnDetermineIfPageSupportsInstant(const string16& value, |
- bool verbatim, |
- int selection_start, |
- int selection_end) { |
- value_ = value; |
- verbatim_ = verbatim; |
- selection_start_ = selection_start; |
- selection_end_ = selection_end; |
- bool result = extensions_v8::SearchBoxExtension::PageSupportsInstant( |
- render_view()->GetWebView()->mainFrame()); |
- render_view()->Send(new ChromeViewHostMsg_InstantSupportDetermined( |
- render_view()->GetRoutingID(), render_view()->GetPageId(), result)); |
+void SearchBox::OnDetermineIfPageSupportsInstant() { |
+ if (render_view()->GetWebView() && render_view()->GetWebView()->mainFrame()) { |
+ bool result = extensions_v8::SearchBoxExtension::PageSupportsInstant( |
+ render_view()->GetWebView()->mainFrame()); |
+ render_view()->Send(new ChromeViewHostMsg_InstantSupportDetermined( |
+ render_view()->GetRoutingID(), render_view()->GetPageId(), result)); |
+ } |
} |
void SearchBox::Reset() { |