Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8)

Unified Diff: chrome/browser/search_engines/template_url_fetcher.cc

Issue 367413003: No chrome dependencies in TemplateURLFetcher and TemplateURLParser (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address comments Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/search_engines/template_url_fetcher.cc
diff --git a/chrome/browser/search_engines/template_url_fetcher.cc b/chrome/browser/search_engines/template_url_fetcher.cc
index a891ae0b52f422ea8ba488f96b5a470dbc4ebed1..0d5a00abf598c308325572e6d85032178214776e 100644
--- a/chrome/browser/search_engines/template_url_fetcher.cc
+++ b/chrome/browser/search_engines/template_url_fetcher.cc
@@ -8,11 +8,7 @@
#include "base/strings/string_number_conversions.h"
#include "base/strings/utf_string_conversions.h"
-#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/search_engines/template_url_fetcher_callbacks.h"
#include "chrome/browser/search_engines/template_url_parser.h"
-#include "chrome/browser/search_engines/template_url_service_factory.h"
-#include "chrome/browser/search_engines/ui_thread_search_terms_data.h"
#include "components/search_engines/template_url.h"
#include "components/search_engines/template_url_service.h"
#include "content/public/browser/render_frame_host.h"
@@ -22,6 +18,7 @@
#include "net/base/load_flags.h"
#include "net/url_request/url_fetcher.h"
#include "net/url_request/url_fetcher_delegate.h"
+#include "net/url_request/url_request_context_getter.h"
#include "net/url_request/url_request_status.h"
// RequestDelegate ------------------------------------------------------------
@@ -33,7 +30,7 @@ class TemplateURLFetcher::RequestDelegate : public net::URLFetcherDelegate {
const GURL& osdd_url,
const GURL& favicon_url,
content::WebContents* web_contents,
- TemplateURLFetcherCallbacks* callbacks,
+ const ConfirmAddSearchProviderCallback& callback,
ProviderType provider_type);
// net::URLFetcherDelegate:
@@ -61,7 +58,7 @@ class TemplateURLFetcher::RequestDelegate : public net::URLFetcherDelegate {
const GURL osdd_url_;
const GURL favicon_url_;
const ProviderType provider_type_;
- scoped_ptr<TemplateURLFetcherCallbacks> callbacks_;
+ ConfirmAddSearchProviderCallback callback_;
scoped_ptr<TemplateURLService::Subscription> template_url_subscription_;
@@ -74,7 +71,7 @@ TemplateURLFetcher::RequestDelegate::RequestDelegate(
const GURL& osdd_url,
const GURL& favicon_url,
content::WebContents* web_contents,
- TemplateURLFetcherCallbacks* callbacks,
+ const ConfirmAddSearchProviderCallback& callback,
ProviderType provider_type)
: url_fetcher_(net::URLFetcher::Create(
osdd_url, net::URLFetcher::GET, this)),
@@ -83,9 +80,8 @@ TemplateURLFetcher::RequestDelegate::RequestDelegate(
osdd_url_(osdd_url),
favicon_url_(favicon_url),
provider_type_(provider_type),
- callbacks_(callbacks) {
- TemplateURLService* model = TemplateURLServiceFactory::GetForProfile(
- fetcher_->profile());
+ callback_(callback) {
+ TemplateURLService* model = fetcher_->template_url_service_;
DCHECK(model); // TemplateURLFetcher::ScheduleDownload verifies this.
if (!model->loaded()) {
@@ -96,7 +92,7 @@ TemplateURLFetcher::RequestDelegate::RequestDelegate(
model->Load();
}
- url_fetcher_->SetRequestContext(fetcher->profile()->GetRequestContext());
+ url_fetcher_->SetRequestContext(fetcher->request_context_.get());
// Can be NULL during tests.
if (web_contents) {
content::AssociateURLFetcherWithRenderFrame(
@@ -135,11 +131,12 @@ void TemplateURLFetcher::RequestDelegate::OnURLFetchComplete(
return;
}
- template_url_.reset(TemplateURLParser::Parse(fetcher_->profile(), false,
+ template_url_.reset(TemplateURLParser::Parse(
+ fetcher_->template_url_service_->search_terms_data(), false,
data.data(), data.length(), NULL));
if (!template_url_.get() ||
!template_url_->url_ref().SupportsReplacement(
- UIThreadSearchTermsData(fetcher_->profile()))) {
+ fetcher_->template_url_service_->search_terms_data())) {
fetcher_->RequestCompleted(this);
// WARNING: RequestCompleted deletes us.
return;
@@ -156,9 +153,7 @@ void TemplateURLFetcher::RequestDelegate::OnURLFetchComplete(
}
// Wait for the model to be loaded before adding the provider.
- TemplateURLService* model = TemplateURLServiceFactory::GetForProfile(
- fetcher_->profile());
- if (!model->loaded())
+ if (!fetcher_->template_url_service_->loaded())
return;
AddSearchProvider();
// WARNING: AddSearchProvider deletes us.
@@ -167,8 +162,7 @@ void TemplateURLFetcher::RequestDelegate::OnURLFetchComplete(
void TemplateURLFetcher::RequestDelegate::AddSearchProvider() {
DCHECK(template_url_.get());
DCHECK(!keyword_.empty());
- Profile* profile = fetcher_->profile();
- TemplateURLService* model = TemplateURLServiceFactory::GetForProfile(profile);
+ TemplateURLService* model = fetcher_->template_url_service_;
DCHECK(model);
DCHECK(model->loaded());
@@ -206,7 +200,7 @@ void TemplateURLFetcher::RequestDelegate::AddSearchProvider() {
// The source WebContents' delegate takes care of adding the URL to the
// model, which takes ownership, or of deleting it if the add is
// cancelled.
- callbacks_->ConfirmAddSearchProvider(new TemplateURL(data), profile);
+ callback_.Run(make_scoped_ptr(new TemplateURL(data)));
break;
default:
@@ -220,8 +214,11 @@ void TemplateURLFetcher::RequestDelegate::AddSearchProvider() {
// TemplateURLFetcher ---------------------------------------------------------
-TemplateURLFetcher::TemplateURLFetcher(Profile* profile) : profile_(profile) {
- DCHECK(profile_);
+TemplateURLFetcher::TemplateURLFetcher(
+ TemplateURLService* template_url_service,
+ net::URLRequestContextGetter* request_context)
+ : template_url_service_(template_url_service),
+ request_context_(request_context) {
}
TemplateURLFetcher::~TemplateURLFetcher() {
@@ -232,15 +229,9 @@ void TemplateURLFetcher::ScheduleDownload(
const GURL& osdd_url,
const GURL& favicon_url,
content::WebContents* web_contents,
- TemplateURLFetcherCallbacks* callbacks,
+ const ConfirmAddSearchProviderCallback& callback,
ProviderType provider_type) {
DCHECK(osdd_url.is_valid());
- scoped_ptr<TemplateURLFetcherCallbacks> owned_callbacks(callbacks);
-
- TemplateURLService* url_model =
- TemplateURLServiceFactory::GetForProfile(profile());
- if (!url_model)
- return;
// For a JS-added OSDD, the provided keyword is irrelevant because we will
// generate a keyword later from the OSDD content. For the autodetected case,
@@ -248,15 +239,15 @@ void TemplateURLFetcher::ScheduleDownload(
if (provider_type == TemplateURLFetcher::AUTODETECTED_PROVIDER) {
DCHECK(!keyword.empty());
- if (!url_model->loaded()) {
+ if (!template_url_service_->loaded()) {
// We could try to set up a callback to this function again once the model
// is loaded but since this is an auto-add case anyway, meh.
- url_model->Load();
+ template_url_service_->Load();
return;
}
const TemplateURL* template_url =
- url_model->GetTemplateURLForKeyword(keyword);
+ template_url_service_->GetTemplateURLForKeyword(keyword);
if (template_url && (!template_url->safe_for_autoreplace() ||
template_url->originating_url() == osdd_url))
return;
@@ -272,7 +263,7 @@ void TemplateURLFetcher::ScheduleDownload(
requests_.push_back(
new RequestDelegate(this, keyword, osdd_url, favicon_url, web_contents,
- owned_callbacks.release(), provider_type));
+ callback, provider_type));
}
void TemplateURLFetcher::RequestCompleted(RequestDelegate* request) {
« no previous file with comments | « chrome/browser/search_engines/template_url_fetcher.h ('k') | chrome/browser/search_engines/template_url_fetcher_callbacks.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698