1 // Copyright (c) 2011 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_ENGINES_SEARCH_ENGINE_TAB_HELPER_H_ 6 #define CHROME_BROWSER_UI_SEARCH_ENGINES_SEARCH_ENGINE_TAB_HELPER_H_ 7 #pragma once 8 9 #include "chrome/browser/ui/find_bar/find_bar_controller.h" 10 #include "chrome/browser/ui/find_bar/find_notification_details.h" 11 #include "chrome/common/search_provider.h" 12 #include "content/browser/tab_contents/tab_contents_observer.h" 13 14 class SearchEngineTabHelperDelegate; 15 class TabContentsWrapper; 16 17 // Per-tab search engine manager. Handles dealing search engine processing 18 // functionality. 19 class SearchEngineTabHelper : public TabContentsObserver { 20 public: 21 explicit SearchEngineTabHelper(TabContents* tab_contents); 22 virtual ~SearchEngineTabHelper(); 23 delegate()24 SearchEngineTabHelperDelegate* delegate() const { return delegate_; } set_delegate(SearchEngineTabHelperDelegate * d)25 void set_delegate(SearchEngineTabHelperDelegate* d) { delegate_ = d; } 26 27 // TabContentsObserver overrides. 28 virtual void DidNavigateMainFramePostCommit( 29 const NavigationController::LoadCommittedDetails& details, 30 const ViewHostMsg_FrameNavigate_Params& params) OVERRIDE; 31 virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; 32 33 private: 34 // Handles when a page specifies an OSDD (OpenSearch Description Document). 35 void OnPageHasOSDD(int32 page_id, 36 const GURL& doc_url, 37 const search_provider::OSDDType& msg_provider_type); 38 39 // If params has a searchable form, this tries to create a new keyword. 40 void GenerateKeywordIfNecessary( 41 const ViewHostMsg_FrameNavigate_Params& params); 42 43 // Delegate for notifying our owner about stuff. Not owned by us. 44 SearchEngineTabHelperDelegate* delegate_; 45 46 DISALLOW_COPY_AND_ASSIGN(SearchEngineTabHelper); 47 }; 48 49 #endif // CHROME_BROWSER_UI_SEARCH_ENGINES_SEARCH_ENGINE_TAB_HELPER_H_ 50