Index: chrome/renderer/searchbox/searchbox.cc |
diff --git a/chrome/renderer/searchbox/searchbox.cc b/chrome/renderer/searchbox/searchbox.cc |
index e4dd30407fbfb12691350e28778ae45a01b7f428..396005c07616d4e6cb17d95c3dc2ce845b4c8e54 100644 |
--- a/chrome/renderer/searchbox/searchbox.cc |
+++ b/chrome/renderer/searchbox/searchbox.cc |
@@ -122,6 +122,8 @@ bool SearchBox::OnMessageReceived(const IPC::Message& message) { |
OnAutocompleteResults) |
IPC_MESSAGE_HANDLER(ChromeViewMsg_SearchBoxUpOrDownKeyPressed, |
OnUpOrDownKeyPressed) |
+ IPC_MESSAGE_HANDLER(ChromeViewMsg_SearchBoxCancelSelection, |
+ OnCancelSelection) |
IPC_MESSAGE_HANDLER(ChromeViewMsg_SearchBoxSetDisplayInstantResults, |
OnSetDisplayInstantResults) |
IPC_MESSAGE_HANDLER(ChromeViewMsg_SearchBoxKeyCaptureChanged, |
@@ -227,6 +229,18 @@ void SearchBox::OnUpOrDownKeyPressed(int count) { |
} |
} |
+void SearchBox::OnCancelSelection(const string16& query) { |
+ // TODO(sreeram): crbug.com/176101 The state reset below are somewhat wrong. |
+ query_ = query; |
+ verbatim_ = true; |
+ selection_start_ = selection_end_ = query_.size(); |
+ if (render_view()->GetWebView() && render_view()->GetWebView()->mainFrame()) { |
+ DVLOG(1) << render_view() << " OnKeyPress ESC"; |
+ extensions_v8::SearchBoxExtension::DispatchEscKeyPress( |
+ render_view()->GetWebView()->mainFrame()); |
+ } |
+} |
+ |
void SearchBox::OnKeyCaptureChange(bool is_key_capture_enabled) { |
if (is_key_capture_enabled != is_key_capture_enabled_ && |
render_view()->GetWebView() && render_view()->GetWebView()->mainFrame()) { |