summaryrefslogtreecommitdiffstats
path: root/chrome/browser/template_url_fetcher.cc
diff options
context:
space:
mode:
authorben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-01-15 19:33:07 +0000
committerben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-01-15 19:33:07 +0000
commit9442bda2e1124c312cfe515f05ba3c970d132361 (patch)
tree36a4901856facf2a97f4f7856cdcffba67140eb1 /chrome/browser/template_url_fetcher.cc
parent0c3b34140b507de0364b054931a148322b9eecdc (diff)
downloadchromium_src-9442bda2e1124c312cfe515f05ba3c970d132361.zip
chromium_src-9442bda2e1124c312cfe515f05ba3c970d132361.tar.gz
chromium_src-9442bda2e1124c312cfe515f05ba3c970d132361.tar.bz2
Move search engines files into subdir
Review URL: http://codereview.chromium.org/18263 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8108 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/template_url_fetcher.cc')
-rw-r--r--chrome/browser/template_url_fetcher.cc116
1 files changed, 0 insertions, 116 deletions
diff --git a/chrome/browser/template_url_fetcher.cc b/chrome/browser/template_url_fetcher.cc
index 57bb259..e69de29 100644
--- a/chrome/browser/template_url_fetcher.cc
+++ b/chrome/browser/template_url_fetcher.cc
@@ -1,116 +0,0 @@
-// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/template_url_fetcher.h"
-
-#include "chrome/browser/profile.h"
-#include "chrome/browser/template_url.h"
-#include "chrome/browser/template_url_model.h"
-#include "chrome/browser/template_url_parser.h"
-#include "chrome/browser/views/edit_keyword_controller.h"
-
-// RequestDelegate ------------------------------------------------------------
-
-void TemplateURLFetcher::RequestDelegate::OnURLFetchComplete(
- const URLFetcher* source,
- const GURL& url,
- const URLRequestStatus& status,
- int response_code,
- const ResponseCookies& cookies,
- const std::string& data) {
- // Make sure we can still replace the keyword.
- if (response_code != 200) {
- fetcher_->RequestCompleted(this);
- // WARNING: RequestCompleted deletes us.
- return;
- }
-
- scoped_ptr<TemplateURL> template_url(new TemplateURL());
- if (TemplateURLParser::Parse(
- reinterpret_cast<const unsigned char*>(data.c_str()),
- data.length(),
- NULL,
- template_url.get()) &&
- template_url->url() && template_url->url()->SupportsReplacement()) {
- TemplateURLModel* model = fetcher_->profile()->GetTemplateURLModel();
- const TemplateURL* existing_url;
- if (!model || !model->loaded() ||
- !model->CanReplaceKeyword(keyword_, template_url->url()->url(),
- &existing_url)) {
- // TODO(pamg): If we're coming from JS (not autodetected) and this URL
- // already exists in the model, consider bringing up the
- // EditKeywordController to edit it. This would be helpful feedback in
- // the case of clicking a button twice, and annoying in the case of a
- // page that calls AddSearchProvider() in JS without a user action.
- fetcher_->RequestCompleted(this);
- // WARNING: RequestCompleted deletes us.
- return;
- }
-
- if (existing_url)
- model->Remove(existing_url);
-
- // The short name is what is shown to the user. We reset it to make sure
- // we don't display random text from the web.
- template_url->set_short_name(keyword_);
- template_url->set_keyword(keyword_);
- template_url->set_originating_url(osdd_url_);
-
- // The page may have specified a URL to use for favicons, if not, set it.
- if (!template_url->GetFavIconURL().is_valid())
- template_url->SetFavIconURL(favicon_url_);
-
- if (autodetected_) {
- // Mark the keyword as replaceable so it can be removed if necessary.
- template_url->set_safe_for_autoreplace(true);
- model->Add(template_url.release());
- } else {
- // Confirm addition and allow user to edit default choices. It's ironic
- // that only *non*-autodetected additions get confirmed, but the user
- // expects feedback that his action did something.
- // The edit controller will take care of adding the URL to the model,
- // which takes ownership, or of deleting it if the add is cancelled.
- EditKeywordController* controller =
- new EditKeywordController(parent_window_,
- template_url.release(),
- NULL, // no KeywordEditorView
- fetcher_->profile());
- controller->Show();
- }
- }
- fetcher_->RequestCompleted(this);
- // WARNING: RequestCompleted deletes us.
-}
-
-// TemplateURLFetcher ---------------------------------------------------------
-
-TemplateURLFetcher::TemplateURLFetcher(Profile* profile) : profile_(profile) {
- DCHECK(profile_);
-}
-
-void TemplateURLFetcher::ScheduleDownload(const std::wstring& keyword,
- const GURL& osdd_url,
- const GURL& favicon_url,
- const HWND parent_window,
- bool autodetected) {
- DCHECK(!keyword.empty() && osdd_url.is_valid());
- // Make sure we aren't already downloading this request.
- for (std::vector<RequestDelegate*>::iterator i = requests_->begin();
- i != requests_->end(); ++i) {
- if ((*i)->url() == osdd_url || (*i)->keyword() == keyword)
- return;
- }
-
- requests_->push_back(
- new RequestDelegate(this, keyword, osdd_url, favicon_url, parent_window,
- autodetected));
-}
-
-void TemplateURLFetcher::RequestCompleted(RequestDelegate* request) {
- DCHECK(find(requests_->begin(), requests_->end(), request) !=
- requests_->end());
- requests_->erase(find(requests_->begin(), requests_->end(), request));
- delete request;
-}
-