summaryrefslogtreecommitdiffstats
path: root/chrome/browser/importer
diff options
context:
space:
mode:
authormirandac@chromium.org <mirandac@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-26 13:47:16 +0000
committermirandac@chromium.org <mirandac@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-26 13:47:16 +0000
commitce847eaac856b0108d56f059a487f5a878cb5f23 (patch)
tree14b4dd576869e59882af51261d2e8055cc79617a /chrome/browser/importer
parent0fa7a8cca0caa0441ea6ad0649c1291ddae67193 (diff)
downloadchromium_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.h4
-rw-r--r--chrome/browser/importer/importer_list.cc10
-rw-r--r--chrome/browser/importer/importer_list.h11
-rw-r--r--chrome/browser/importer/toolbar_importer.cc8
-rw-r--r--chrome/browser/importer/toolbar_importer.h5
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);
};