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#include "chrome/browser/ui/search_engines/template_url_fetcher_ui_callbacks.h" 6 7#include "base/logging.h" 8#include "base/memory/scoped_ptr.h" 9#include "chrome/browser/search_engines/template_url.h" 10#include "chrome/browser/ui/search_engines/search_engine_tab_helper.h" 11#include "chrome/browser/ui/search_engines/search_engine_tab_helper_delegate.h" 12#include "content/browser/tab_contents/tab_contents.h" 13#include "content/common/notification_source.h" 14#include "content/common/notification_type.h" 15 16TemplateURLFetcherUICallbacks::TemplateURLFetcherUICallbacks( 17 SearchEngineTabHelper* tab_helper, 18 TabContents* tab_contents) 19 : source_(tab_helper), 20 tab_contents_(tab_contents) { 21 registrar_.Add(this, 22 NotificationType::TAB_CONTENTS_DESTROYED, 23 Source<TabContents>(tab_contents_)); 24} 25 26TemplateURLFetcherUICallbacks::~TemplateURLFetcherUICallbacks() { 27} 28 29void TemplateURLFetcherUICallbacks::ConfirmSetDefaultSearchProvider( 30 TemplateURL* template_url, 31 TemplateURLModel* template_url_model) { 32 scoped_ptr<TemplateURL> owned_template_url(template_url); 33 if (!source_ || !source_->delegate() || !tab_contents_) 34 return; 35 36 source_->delegate()->ConfirmSetDefaultSearchProvider( 37 tab_contents_, 38 owned_template_url.release(), 39 template_url_model); 40} 41 42void TemplateURLFetcherUICallbacks::ConfirmAddSearchProvider( 43 TemplateURL* template_url, 44 Profile* profile) { 45 scoped_ptr<TemplateURL> owned_template_url(template_url); 46 if (!source_ || !source_->delegate()) 47 return; 48 49 source_->delegate()->ConfirmAddSearchProvider(owned_template_url.release(), 50 profile); 51} 52 53void TemplateURLFetcherUICallbacks::Observe( 54 NotificationType type, 55 const NotificationSource& source, 56 const NotificationDetails& details) { 57 DCHECK(type == NotificationType::TAB_CONTENTS_DESTROYED); 58 DCHECK(source == Source<TabContents>(tab_contents_)); 59 source_ = NULL; 60 tab_contents_ = NULL; 61} 62