1// Copyright 2013 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_BROWSER_UI_SEARCH_SEARCH_IPC_ROUTER_POLICY_IMPL_H_
6#define CHROME_BROWSER_UI_SEARCH_SEARCH_IPC_ROUTER_POLICY_IMPL_H_
7
8#include "chrome/browser/ui/search/search_ipc_router.h"
9
10namespace content {
11class WebContents;
12}
13
14// The SearchIPCRouter::Policy implementation.
15class SearchIPCRouterPolicyImpl : public SearchIPCRouter::Policy {
16 public:
17  explicit SearchIPCRouterPolicyImpl(const content::WebContents* web_contents);
18  virtual ~SearchIPCRouterPolicyImpl();
19
20 private:
21  friend class SearchIPCRouterPolicyTest;
22
23  // Overridden from SearchIPCRouter::Policy:
24  virtual bool ShouldProcessSetVoiceSearchSupport() OVERRIDE;
25  virtual bool ShouldProcessFocusOmnibox(bool is_active_tab) OVERRIDE;
26  virtual bool ShouldProcessNavigateToURL(bool is_active_tab) OVERRIDE;
27  virtual bool ShouldProcessDeleteMostVisitedItem() OVERRIDE;
28  virtual bool ShouldProcessUndoMostVisitedDeletion() OVERRIDE;
29  virtual bool ShouldProcessUndoAllMostVisitedDeletions() OVERRIDE;
30  virtual bool ShouldProcessLogEvent() OVERRIDE;
31  virtual bool ShouldProcessPasteIntoOmnibox(bool is_active_tab) OVERRIDE;
32  virtual bool ShouldProcessChromeIdentityCheck() OVERRIDE;
33  virtual bool ShouldSendSetPromoInformation() OVERRIDE;
34  virtual bool ShouldSendSetDisplayInstantResults() OVERRIDE;
35  virtual bool ShouldSendSetSuggestionToPrefetch() OVERRIDE;
36  virtual bool ShouldSendSetOmniboxStartMargin() OVERRIDE;
37  virtual bool ShouldSendSetInputInProgress(bool is_active_tab) OVERRIDE;
38  virtual bool ShouldSendOmniboxFocusChanged() OVERRIDE;
39  virtual bool ShouldSendMostVisitedItems() OVERRIDE;
40  virtual bool ShouldSendThemeBackgroundInfo() OVERRIDE;
41  virtual bool ShouldSendToggleVoiceSearch() OVERRIDE;
42  virtual bool ShouldSubmitQuery() OVERRIDE;
43
44  // Used by unit tests.
45  void set_is_incognito(bool is_incognito) {
46    is_incognito_ = is_incognito;
47  }
48
49  const content::WebContents* web_contents_;
50  bool is_incognito_;
51
52  DISALLOW_COPY_AND_ASSIGN(SearchIPCRouterPolicyImpl);
53};
54
55#endif  // CHROME_BROWSER_UI_SEARCH_SEARCH_IPC_ROUTER_POLICY_IMPL_H_
56