Home | History | Annotate | Download | only in searchbox
      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.
      4 
      5 #ifndef CHROME_RENDERER_SEARCHBOX_SEARCHBOX_EXTENSION_H_
      6 #define CHROME_RENDERER_SEARCHBOX_SEARCHBOX_EXTENSION_H_
      7 
      8 #include "base/basictypes.h"
      9 #include "base/strings/string16.h"
     10 
     11 namespace v8 {
     12 class Extension;
     13 }
     14 
     15 namespace blink {
     16 class WebFrame;
     17 }
     18 
     19 namespace extensions_v8 {
     20 
     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();
     28 
     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);
     32 
     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 DispatchInputCancel(blink::WebFrame* frame);
     39   static void DispatchInputStart(blink::WebFrame* frame);
     40   static void DispatchKeyCaptureChange(blink::WebFrame* frame);
     41   static void DispatchMarginChange(blink::WebFrame* frame);
     42   static void DispatchMostVisitedChanged(blink::WebFrame* frame);
     43   static void DispatchSubmit(blink::WebFrame* frame);
     44   static void DispatchSuggestionChange(blink::WebFrame* frame);
     45   static void DispatchThemeChange(blink::WebFrame* frame);
     46   static void DispatchToggleVoiceSearch(blink::WebFrame* frame);
     47 
     48  private:
     49   DISALLOW_IMPLICIT_CONSTRUCTORS(SearchBoxExtension);
     50 };
     51 
     52 }  // namespace extensions_v8
     53 
     54 #endif  // CHROME_RENDERER_SEARCHBOX_SEARCHBOX_EXTENSION_H_
     55