Index: chrome/renderer/searchbox/searchbox_extension.cc |
diff --git a/chrome/renderer/searchbox/searchbox_extension.cc b/chrome/renderer/searchbox/searchbox_extension.cc |
index 73372590fd03d204098745be006d68be77a5c76a..3c24a50391c17b156c5ecb87e7812af2f26db6c4 100644 |
--- a/chrome/renderer/searchbox/searchbox_extension.cc |
+++ b/chrome/renderer/searchbox/searchbox_extension.cc |
@@ -142,6 +142,16 @@ static const char kDispatchUpOrDownKeyPressEventScript[] = |
" true;" |
"}"; |
+// Takes one printf-style replaceable values: key_code. |
+static const char kDispatchEscKeyPressEventScript[] = |
+ "if (window.chrome &&" |
+ " window.chrome.searchBox &&" |
+ " window.chrome.searchBox.onkeypress &&" |
+ " typeof window.chrome.searchBox.onkeypress == 'function') {" |
+ " window.chrome.searchBox.onkeypress({keyCode: %d});" |
+ " true;" |
+ "}"; |
+ |
static const char kDispatchKeyCaptureChangeScript[] = |
"if (window.chrome &&" |
" window.chrome.searchBox &&" |
@@ -933,6 +943,12 @@ void SearchBoxExtension::DispatchUpOrDownKeyPress(WebKit::WebFrame* frame, |
} |
// static |
+void SearchBoxExtension::DispatchEscKeyPress(WebKit::WebFrame* frame) { |
+ Dispatch(frame, WebKit::WebString::fromUTF8( |
+ base::StringPrintf(kDispatchEscKeyPressEventScript, ui::VKEY_ESCAPE))); |
+} |
+ |
+// static |
void SearchBoxExtension::DispatchKeyCaptureChange(WebKit::WebFrame* frame) { |
Dispatch(frame, kDispatchKeyCaptureChangeScript); |
} |