Home | History | Annotate | Download | only in search_engines
      1 // Copyright (c) 2012 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_TEMPLATE_URL_FETCHER_UI_CALLBACKS_H_
      6 #define CHROME_BROWSER_UI_SEARCH_ENGINES_TEMPLATE_URL_FETCHER_UI_CALLBACKS_H_
      7 
      8 #include "base/basictypes.h"
      9 #include "base/compiler_specific.h"
     10 #include "chrome/browser/search_engines/template_url_fetcher_callbacks.h"
     11 #include "content/public/browser/notification_observer.h"
     12 #include "content/public/browser/notification_registrar.h"
     13 
     14 class SearchEngineTabHelper;
     15 
     16 namespace content {
     17 class WebContents;
     18 }
     19 
     20 // Callbacks which display UI for the TemplateURLFetcher.
     21 class TemplateURLFetcherUICallbacks : public TemplateURLFetcherCallbacks,
     22                                       public content::NotificationObserver {
     23  public:
     24   TemplateURLFetcherUICallbacks(SearchEngineTabHelper* tab_helper,
     25                                 content::WebContents* web_contents);
     26   virtual ~TemplateURLFetcherUICallbacks();
     27 
     28   // TemplateURLFetcherCallback implementation.
     29   virtual void ConfirmAddSearchProvider(TemplateURL* template_url,
     30                                         Profile* profile) OVERRIDE;
     31 
     32   // content::NotificationObserver:
     33   virtual void Observe(int type,
     34                        const content::NotificationSource& source,
     35                        const content::NotificationDetails& details) OVERRIDE;
     36 
     37  private:
     38   // The SearchEngineTabHelper where this request originated. Can be NULL if the
     39   // originating tab is closed. If NULL, the engine is not added.
     40   SearchEngineTabHelper* source_;
     41 
     42   // The WebContents where this request originated.
     43   content::WebContents* web_contents_;
     44 
     45   // Handles registering for our notifications.
     46   content::NotificationRegistrar registrar_;
     47 
     48   DISALLOW_COPY_AND_ASSIGN(TemplateURLFetcherUICallbacks);
     49 };
     50 
     51 #endif  // CHROME_BROWSER_UI_SEARCH_ENGINES_TEMPLATE_URL_FETCHER_UI_CALLBACKS_H_
     52