diff options
author | mirandac@chromium.org <mirandac@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-26 13:47:16 +0000 |
---|---|---|
committer | mirandac@chromium.org <mirandac@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-26 13:47:16 +0000 |
commit | ce847eaac856b0108d56f059a487f5a878cb5f23 (patch) | |
tree | 14b4dd576869e59882af51261d2e8055cc79617a /chrome/browser/importer | |
parent | 0fa7a8cca0caa0441ea6ad0649c1291ddae67193 (diff) | |
download | chromium_src-ce847eaac856b0108d56f059a487f5a878cb5f23.zip chromium_src-ce847eaac856b0108d56f059a487f5a878cb5f23.tar.gz chromium_src-ce847eaac856b0108d56f059a487f5a878cb5f23.tar.bz2 |
Review URL: http://codereview.chromium.org/8357020
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107344 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/importer')
-rw-r--r-- | chrome/browser/importer/importer_data_types.h | 4 | ||||
-rw-r--r-- | chrome/browser/importer/importer_list.cc | 10 | ||||
-rw-r--r-- | chrome/browser/importer/importer_list.h | 11 | ||||
-rw-r--r-- | chrome/browser/importer/toolbar_importer.cc | 8 | ||||
-rw-r--r-- | chrome/browser/importer/toolbar_importer.h | 5 |
5 files changed, 30 insertions, 8 deletions
diff --git a/chrome/browser/importer/importer_data_types.h b/chrome/browser/importer/importer_data_types.h index 5724589..a85b248 100644 --- a/chrome/browser/importer/importer_data_types.h +++ b/chrome/browser/importer/importer_data_types.h @@ -10,8 +10,10 @@ #include "base/basictypes.h" #include "base/file_path.h" +#include "base/memory/ref_counted.h" #include "base/string16.h" #include "chrome/browser/importer/importer_type.h" +#include "net/url_request/url_request_context_getter.h" // Types needed for importing data from other browsers and the Google Toolbar. namespace importer { @@ -38,6 +40,8 @@ struct SourceProfile { FilePath source_path; FilePath app_path; uint16 services_supported; // Bitmask of ImportItem. + // The URLRequestContextGetter is only used for Google Toolbar. + scoped_refptr<net::URLRequestContextGetter> request_context_getter; }; } // namespace importer diff --git a/chrome/browser/importer/importer_list.cc b/chrome/browser/importer/importer_list.cc index 48f6da6..1c48396 100644 --- a/chrome/browser/importer/importer_list.cc +++ b/chrome/browser/importer/importer_list.cc @@ -92,7 +92,8 @@ void DetectFirefoxProfiles(std::vector<importer::SourceProfile*>* profiles) { } void DetectGoogleToolbarProfiles( - std::vector<importer::SourceProfile*>* profiles) { + std::vector<importer::SourceProfile*>* profiles, + scoped_refptr<net::URLRequestContextGetter> request_context_getter) { if (FirstRun::IsChromeFirstRun()) return; @@ -103,16 +104,19 @@ void DetectGoogleToolbarProfiles( google_toolbar->source_path.clear(); google_toolbar->app_path.clear(); google_toolbar->services_supported = importer::FAVORITES; + google_toolbar->request_context_getter = request_context_getter; profiles->push_back(google_toolbar); } } // namespace -ImporterList::ImporterList() +ImporterList::ImporterList( + net::URLRequestContextGetter* request_context_getter) : source_thread_id_(BrowserThread::UI), observer_(NULL), is_observed_(false), source_profiles_loaded_(false) { + request_context_getter_ = make_scoped_refptr(request_context_getter); } void ImporterList::DetectSourceProfiles( @@ -178,7 +182,7 @@ void ImporterList::DetectSourceProfilesWorker() { DetectFirefoxProfiles(&profiles); } // TODO(brg) : Current UI requires win_util. - DetectGoogleToolbarProfiles(&profiles); + DetectGoogleToolbarProfiles(&profiles, request_context_getter_); #elif defined(OS_MACOSX) if (ShellIntegration::IsFirefoxDefaultBrowser()) { DetectFirefoxProfiles(&profiles); diff --git a/chrome/browser/importer/importer_list.h b/chrome/browser/importer/importer_list.h index 44ce689..8228218 100644 --- a/chrome/browser/importer/importer_list.h +++ b/chrome/browser/importer/importer_list.h @@ -13,15 +13,21 @@ #include "base/memory/scoped_vector.h" #include "base/string16.h" #include "content/browser/browser_thread.h" +#include "net/url_request/url_request_context_getter.h" + namespace importer { class ImporterListObserver; struct SourceProfile; } +namespace net { +class URLRequestContextGetter; +} + class ImporterList : public base::RefCountedThreadSafe<ImporterList> { public: - ImporterList(); + explicit ImporterList(net::URLRequestContextGetter* request_context_getter); // Detects the installed browsers and their associated profiles, then stores // their information in a list. It returns the list of description of all @@ -68,6 +74,9 @@ class ImporterList : public base::RefCountedThreadSafe<ImporterList> { // The list of profiles with the default one first. ScopedVector<importer::SourceProfile> source_profiles_; + // Needed for Google Toolbar Import to connect to Toolbar server. + scoped_refptr<net::URLRequestContextGetter> request_context_getter_; + // The ID of the thread DetectSourceProfiles() is called on. Only valid after // DetectSourceProfiles() is called and until SourceProfilesLoaded() has // returned. diff --git a/chrome/browser/importer/toolbar_importer.cc b/chrome/browser/importer/toolbar_importer.cc index d04aa62..1a4a996 100644 --- a/chrome/browser/importer/toolbar_importer.cc +++ b/chrome/browser/importer/toolbar_importer.cc @@ -71,6 +71,8 @@ void Toolbar5Importer::StartImport( bridge_ = bridge; items_to_import_ = items; + DCHECK(source_profile.request_context_getter); + request_context_getter_ = source_profile.request_context_getter; state_ = INITIALIZED; bridge_->NotifyStarted(); @@ -208,8 +210,7 @@ void Toolbar5Importer::GetAuthenticationFromServer() { token_fetcher_ = content::URLFetcher::Create( url, content::URLFetcher::GET, this); - token_fetcher_->SetRequestContext( - Profile::Deprecated::GetDefaultRequestContext()); + token_fetcher_->SetRequestContext(request_context_getter_.get()); token_fetcher_->Start(); } @@ -243,8 +244,7 @@ void Toolbar5Importer::GetBookmarkDataFromServer(const std::string& response) { data_fetcher_ = content::URLFetcher::Create( url, content::URLFetcher::GET, this); - data_fetcher_->SetRequestContext( - Profile::Deprecated::GetDefaultRequestContext()); + data_fetcher_->SetRequestContext(request_context_getter_.get()); data_fetcher_->Start(); } diff --git a/chrome/browser/importer/toolbar_importer.h b/chrome/browser/importer/toolbar_importer.h index a1d9013..5c14f32 100644 --- a/chrome/browser/importer/toolbar_importer.h +++ b/chrome/browser/importer/toolbar_importer.h @@ -15,10 +15,12 @@ #include "base/basictypes.h" #include "base/compiler_specific.h" #include "base/gtest_prod_util.h" +#include "base/memory/ref_counted.h" #include "base/string16.h" #include "chrome/browser/importer/importer.h" #include "chrome/browser/importer/profile_writer.h" #include "content/public/common/url_fetcher_delegate.h" +#include "net/url_request/url_request_context_getter.h" class ImporterBridge; class XmlReader; @@ -156,6 +158,9 @@ class Toolbar5Importer : public content::URLFetcherDelegate, public Importer { content::URLFetcher* token_fetcher_; content::URLFetcher* data_fetcher_; + // Used to get correct login data for the toolbar server. + scoped_refptr<net::URLRequestContextGetter> request_context_getter_; + DISALLOW_COPY_AND_ASSIGN(Toolbar5Importer); }; |