Roll src/third_party/WebKit d9c6159:8139f33 (svn 201974:201975)
[chromium-blink-merge.git] / chrome / renderer / searchbox / searchbox_extension.h
blobfa7ea9e4432cbbec670a0323584ac55dcc8ea50f
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"
11 namespace v8 {
12 class Extension;
15 namespace blink {
16 class WebFrame;
19 namespace extensions_v8 {
21 // Reference implementation of the SearchBox API as described in:
22 // http://dev.chromium.org/searchbox
23 class SearchBoxExtension {
24 public:
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,
36 bool identity_match);
37 static void DispatchFocusChange(blink::WebFrame* frame);
38 static void DispatchHistorySyncCheckResult(blink::WebFrame* frame,
39 bool sync_history);
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);
50 private:
51 DISALLOW_IMPLICIT_CONSTRUCTORS(SearchBoxExtension);
54 } // namespace extensions_v8
56 #endif // CHROME_RENDERER_SEARCHBOX_SEARCHBOX_EXTENSION_H_