1 // Copyright 2014 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_SEARCH_ENGINES_CHROME_TEMPLATE_URL_SERVICE_CLIENT_H_ 6 #define CHROME_BROWSER_SEARCH_ENGINES_CHROME_TEMPLATE_URL_SERVICE_CLIENT_H_ 7 8 #include "components/search_engines/template_url_service_client.h" 9 #include "content/public/browser/notification_observer.h" 10 #include "content/public/browser/notification_registrar.h" 11 12 class HistoryService; 13 class Profile; 14 15 // ChromeTemplateURLServiceClient provides keyword related history 16 // functionality for TemplateURLService. 17 class ChromeTemplateURLServiceClient : public TemplateURLServiceClient, 18 public content::NotificationObserver { 19 public: 20 explicit ChromeTemplateURLServiceClient(Profile* profile); 21 virtual ~ChromeTemplateURLServiceClient(); 22 23 // TemplateURLServiceClient: 24 virtual void SetOwner(TemplateURLService* owner) OVERRIDE; 25 virtual void DeleteAllSearchTermsForKeyword( 26 history::KeywordID keyword_Id) OVERRIDE; 27 virtual void SetKeywordSearchTermsForURL(const GURL& url, 28 TemplateURLID id, 29 const base::string16& term) OVERRIDE; 30 virtual void AddKeywordGeneratedVisit(const GURL& url) OVERRIDE; 31 virtual void RestoreExtensionInfoIfNecessary( 32 TemplateURL* template_url) OVERRIDE; 33 34 // content::NotificationObserver: 35 virtual void Observe(int type, 36 const content::NotificationSource& source, 37 const content::NotificationDetails& details) OVERRIDE; 38 39 private: 40 Profile* profile_; 41 TemplateURLService* owner_; 42 content::NotificationRegistrar notification_registrar_; 43 44 DISALLOW_COPY_AND_ASSIGN(ChromeTemplateURLServiceClient); 45 }; 46 47 #endif // CHROME_BROWSER_SEARCH_ENGINES_CHROME_TEMPLATE_URL_SERVICE_CLIENT_H_ 48