// 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 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())); } 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 SetPromoInformation(bool is_app_launcher_enabled) OVERRIDE { Send(new ChromeViewMsg_SearchBoxPromoInformation( routing_id(), is_app_launcher_enabled)); } virtual void SendThemeBackgroundInfo( const ThemeBackgroundInfo& theme_info) OVERRIDE { Send(new ChromeViewMsg_SearchBoxThemeChanged(routing_id(), theme_info)); } 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& 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::Create(bool is_incognito) { scoped_ptr sender( is_incognito ? static_cast(new IncognitoInstantIPCSenderImpl()) : static_cast(new InstantIPCSenderImpl())); return sender.Pass(); } void InstantIPCSender::SetContents(content::WebContents* web_contents) { Observe(web_contents); }