Index: chrome/browser/ui/search/instant_ipc_sender.cc |
diff --git a/chrome/browser/ui/search/instant_ipc_sender.cc b/chrome/browser/ui/search/instant_ipc_sender.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..62f0b3b303ff83bf2bbbd0f55b0153b017058da9 |
--- /dev/null |
+++ b/chrome/browser/ui/search/instant_ipc_sender.cc |
@@ -0,0 +1,135 @@ |
+// Copyright 2013 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "chrome/browser/ui/search/instant_ipc_sender.h" |
+ |
+#include "chrome/common/render_messages.h" |
+ |
+namespace { |
+ |
+// Implementation for regular profiles. |
+class InstantIPCSenderImpl : public InstantIPCSender { |
+ public: |
+ InstantIPCSenderImpl() {} |
+ virtual ~InstantIPCSenderImpl() {} |
+ |
+ private: |
+ virtual void Update(const string16& text, |
+ size_t selection_start, |
+ size_t selection_end, |
+ bool verbatim) OVERRIDE { |
+ Send(new ChromeViewMsg_SearchBoxChange(routing_id(), text, verbatim, |
+ selection_start, selection_end)); |
+ } |
+ |
+ virtual void Submit(const string16& text) OVERRIDE { |
+ Send(new ChromeViewMsg_SearchBoxSubmit(routing_id(), text)); |
+ } |
+ |
+ virtual void Cancel(const string16& text) OVERRIDE { |
+ Send(new ChromeViewMsg_SearchBoxCancel(routing_id(), text)); |
+ } |
+ |
+ virtual void SetPopupBounds(const gfx::Rect& bounds) OVERRIDE { |
+ Send(new ChromeViewMsg_SearchBoxPopupResize(routing_id(), bounds)); |
+ } |
+ |
+ virtual void SetOmniboxBounds(const gfx::Rect& bounds) OVERRIDE { |
+ Send(new ChromeViewMsg_SearchBoxMarginChange( |
+ routing_id(), bounds.x(), bounds.width())); |
+ } |
+ |
+ virtual void SetFontInformation(const string16& omnibox_font_name, |
+ size_t omnibox_font_size) OVERRIDE { |
+ Send(new ChromeViewMsg_SearchBoxFontInformation( |
+ routing_id(), omnibox_font_name, omnibox_font_size)); |
+ } |
+ |
+ virtual void SendAutocompleteResults( |
+ const std::vector<InstantAutocompleteResult>& results) OVERRIDE { |
+ Send(new ChromeViewMsg_SearchBoxAutocompleteResults(routing_id(), results)); |
+ } |
+ |
+ virtual void UpOrDownKeyPressed(int count) OVERRIDE { |
+ Send(new ChromeViewMsg_SearchBoxUpOrDownKeyPressed(routing_id(), count)); |
+ } |
+ |
+ virtual void EscKeyPressed() OVERRIDE { |
+ Send(new ChromeViewMsg_SearchBoxEscKeyPressed(routing_id())); |
+ } |
+ |
+ virtual void CancelSelection(const string16& user_text, |
+ size_t selection_start, |
+ size_t selection_end, |
+ bool verbatim) OVERRIDE { |
+ Send(new ChromeViewMsg_SearchBoxCancelSelection( |
+ routing_id(), user_text, verbatim, selection_start, selection_end)); |
+ } |
+ |
+ virtual void SendThemeBackgroundInfo( |
+ const ThemeBackgroundInfo& theme_info) OVERRIDE { |
+ Send(new ChromeViewMsg_SearchBoxThemeChanged(routing_id(), theme_info)); |
+ } |
+ |
+ virtual void SetDisplayInstantResults(bool display_instant_results) OVERRIDE { |
+ Send(new ChromeViewMsg_SearchBoxSetDisplayInstantResults( |
+ routing_id(), display_instant_results)); |
+ } |
+ |
+ virtual void FocusChanged(OmniboxFocusState state, |
+ OmniboxFocusChangeReason reason) OVERRIDE { |
+ Send(new ChromeViewMsg_SearchBoxFocusChanged(routing_id(), state, reason)); |
+ } |
+ |
+ virtual void SetInputInProgress(bool input_in_progress) OVERRIDE { |
+ Send(new ChromeViewMsg_SearchBoxSetInputInProgress( |
+ routing_id(), input_in_progress)); |
+ } |
+ |
+ virtual void SendMostVisitedItems( |
+ const std::vector<InstantMostVisitedItem>& items) OVERRIDE { |
+ Send(new ChromeViewMsg_SearchBoxMostVisitedItemsChanged( |
+ routing_id(), items)); |
+ } |
+ |
+ virtual void ToggleVoiceSearch() OVERRIDE { |
+ Send(new ChromeViewMsg_SearchBoxToggleVoiceSearch(routing_id())); |
+ } |
+ |
+ DISALLOW_COPY_AND_ASSIGN(InstantIPCSenderImpl); |
+}; |
+ |
+// Implementation for incognito profiles. |
+class IncognitoInstantIPCSenderImpl : public InstantIPCSender { |
+ public: |
+ IncognitoInstantIPCSenderImpl() {} |
+ virtual ~IncognitoInstantIPCSenderImpl() {} |
+ |
+ private: |
+ virtual void Submit(const string16& text) OVERRIDE { |
+ Send(new ChromeViewMsg_SearchBoxSubmit(routing_id(), text)); |
+ } |
+ |
+ virtual void SetOmniboxBounds(const gfx::Rect& bounds) OVERRIDE { |
+ Send(new ChromeViewMsg_SearchBoxMarginChange( |
+ routing_id(), bounds.x(), bounds.width())); |
+ } |
+ |
+ DISALLOW_COPY_AND_ASSIGN(IncognitoInstantIPCSenderImpl); |
+}; |
+ |
+} // anonymous namespace |
+ |
+// static |
+scoped_ptr<InstantIPCSender> InstantIPCSender::Create(bool is_incognito) { |
+ scoped_ptr<InstantIPCSender> sender( |
+ is_incognito ? |
+ static_cast<InstantIPCSender*>(new IncognitoInstantIPCSenderImpl()) : |
+ static_cast<InstantIPCSender*>(new InstantIPCSenderImpl())); |
+ return sender.Pass(); |
+} |
+ |
+void InstantIPCSender::SetContents(content::WebContents* web_contents) { |
+ Observe(web_contents); |
+} |