1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CHROME_RENDERER_SEARCHBOX_SEARCHBOX_EXTENSION_H_
6 #define CHROME_RENDERER_SEARCHBOX_SEARCHBOX_EXTENSION_H_
8 #include "base/basictypes.h"
9 #include "base/strings/string16.h"
19 namespace extensions_v8
{
21 // Reference implementation of the SearchBox API as described in:
22 // http://dev.chromium.org/searchbox
23 class SearchBoxExtension
{
25 // Returns the v8::Extension object handling searchbox bindings. Returns null
26 // if match-preview is not enabled. Caller takes ownership of returned object.
27 static v8::Extension
* Get();
29 // Returns true if a page supports Instant, that is, if it has bound an
30 // onsubmit() handler.
31 static bool PageSupportsInstant(blink::WebFrame
* frame
);
33 // Helpers to dispatch Javascript events.
34 static void DispatchChromeIdentityCheckResult(blink::WebFrame
* frame
,
35 const base::string16
& identity
,
37 static void DispatchFocusChange(blink::WebFrame
* frame
);
38 static void DispatchHistorySyncCheckResult(blink::WebFrame
* frame
,
40 static void DispatchInputCancel(blink::WebFrame
* frame
);
41 static void DispatchInputStart(blink::WebFrame
* frame
);
42 static void DispatchKeyCaptureChange(blink::WebFrame
* frame
);
43 static void DispatchMarginChange(blink::WebFrame
* frame
);
44 static void DispatchMostVisitedChanged(blink::WebFrame
* frame
);
45 static void DispatchSubmit(blink::WebFrame
* frame
);
46 static void DispatchSuggestionChange(blink::WebFrame
* frame
);
47 static void DispatchThemeChange(blink::WebFrame
* frame
);
48 static void DispatchToggleVoiceSearch(blink::WebFrame
* frame
);
51 DISALLOW_IMPLICIT_CONSTRUCTORS(SearchBoxExtension
);
54 } // namespace extensions_v8
56 #endif // CHROME_RENDERER_SEARCHBOX_SEARCHBOX_EXTENSION_H_