| Index: chrome/browser/importer/importer_host.cc
|
| diff --git a/chrome/browser/importer/importer_host.cc b/chrome/browser/importer/importer_host.cc
|
| index 07445ebe762186d0df35c58457c8233faff1d5bc..7152124811e09612a258b072375ff8921cbb0ada 100644
|
| --- a/chrome/browser/importer/importer_host.cc
|
| +++ b/chrome/browser/importer/importer_host.cc
|
| @@ -8,6 +8,7 @@
|
| #include "chrome/browser/bookmarks/bookmark_model.h"
|
| #include "chrome/browser/browser_list.h"
|
| #include "chrome/browser/browser_process.h"
|
| +#include "chrome/browser/importer/external_process_importer_client.h"
|
| #include "chrome/browser/importer/firefox_profile_lock.h"
|
| #include "chrome/browser/importer/importer_bridge.h"
|
| #include "chrome/browser/importer/importer_lock_dialog.h"
|
| @@ -315,230 +316,3 @@ void ExternalProcessImporterHost::Loaded(BookmarkModel* model) {
|
| import_to_bookmark_bar_ = (!model->HasBookmarks());
|
| InvokeTaskIfDone();
|
| }
|
| -
|
| -// ExternalProcessImporterClient -----------------------------------------------
|
| -
|
| -ExternalProcessImporterClient::ExternalProcessImporterClient(
|
| - ExternalProcessImporterHost* importer_host,
|
| - const importer::ProfileInfo& profile_info,
|
| - int items,
|
| - InProcessImporterBridge* bridge,
|
| - bool import_to_bookmark_bar)
|
| - : bookmarks_options_(0),
|
| - total_bookmarks_count_(0),
|
| - total_history_rows_count_(0),
|
| - total_fav_icons_count_(0),
|
| - process_importer_host_(importer_host),
|
| - profile_import_process_host_(NULL),
|
| - profile_info_(profile_info),
|
| - items_(items),
|
| - import_to_bookmark_bar_(import_to_bookmark_bar),
|
| - bridge_(bridge),
|
| - cancelled_(false) {
|
| - bridge_->AddRef();
|
| - process_importer_host_->NotifyImportStarted();
|
| -}
|
| -
|
| -ExternalProcessImporterClient::~ExternalProcessImporterClient() {
|
| - bridge_->Release();
|
| -}
|
| -
|
| -void ExternalProcessImporterClient::Start() {
|
| - AddRef(); // balanced in Cleanup.
|
| - BrowserThread::ID thread_id;
|
| - CHECK(BrowserThread::GetCurrentThreadIdentifier(&thread_id));
|
| - BrowserThread::PostTask(
|
| - BrowserThread::IO, FROM_HERE,
|
| - NewRunnableMethod(this,
|
| - &ExternalProcessImporterClient::StartProcessOnIOThread,
|
| - g_browser_process->resource_dispatcher_host(), thread_id));
|
| -}
|
| -
|
| -void ExternalProcessImporterClient::StartProcessOnIOThread(
|
| - ResourceDispatcherHost* rdh,
|
| - BrowserThread::ID thread_id) {
|
| - profile_import_process_host_ =
|
| - new ProfileImportProcessHost(rdh, this, thread_id);
|
| - profile_import_process_host_->StartProfileImportProcess(profile_info_,
|
| - items_, import_to_bookmark_bar_);
|
| -}
|
| -
|
| -void ExternalProcessImporterClient::Cancel() {
|
| - if (cancelled_)
|
| - return;
|
| -
|
| - cancelled_ = true;
|
| - if (profile_import_process_host_) {
|
| - BrowserThread::PostTask(
|
| - BrowserThread::IO, FROM_HERE,
|
| - NewRunnableMethod(this,
|
| - &ExternalProcessImporterClient::CancelImportProcessOnIOThread));
|
| - }
|
| - Release();
|
| -}
|
| -
|
| -void ExternalProcessImporterClient::CancelImportProcessOnIOThread() {
|
| - profile_import_process_host_->CancelProfileImportProcess();
|
| -}
|
| -
|
| -void ExternalProcessImporterClient::NotifyItemFinishedOnIOThread(
|
| - importer::ImportItem import_item) {
|
| - profile_import_process_host_->ReportImportItemFinished(import_item);
|
| -}
|
| -
|
| -void ExternalProcessImporterClient::OnProcessCrashed(int exit_code) {
|
| - if (cancelled_)
|
| - return;
|
| -
|
| - process_importer_host_->Cancel();
|
| -}
|
| -
|
| -void ExternalProcessImporterClient::Cleanup() {
|
| - if (cancelled_)
|
| - return;
|
| -
|
| - if (process_importer_host_)
|
| - process_importer_host_->NotifyImportEnded();
|
| - Release();
|
| -}
|
| -
|
| -void ExternalProcessImporterClient::OnImportStart() {
|
| - if (cancelled_)
|
| - return;
|
| -
|
| - bridge_->NotifyStarted();
|
| -}
|
| -
|
| -void ExternalProcessImporterClient::OnImportFinished(bool succeeded,
|
| - std::string error_msg) {
|
| - if (cancelled_)
|
| - return;
|
| -
|
| - if (!succeeded)
|
| - LOG(WARNING) << "Import failed. Error: " << error_msg;
|
| - Cleanup();
|
| -}
|
| -
|
| -void ExternalProcessImporterClient::OnImportItemStart(int item_data) {
|
| - if (cancelled_)
|
| - return;
|
| -
|
| - bridge_->NotifyItemStarted(static_cast<importer::ImportItem>(item_data));
|
| -}
|
| -
|
| -void ExternalProcessImporterClient::OnImportItemFinished(int item_data) {
|
| - if (cancelled_)
|
| - return;
|
| -
|
| - importer::ImportItem import_item =
|
| - static_cast<importer::ImportItem>(item_data);
|
| - bridge_->NotifyItemEnded(import_item);
|
| - BrowserThread::PostTask(
|
| - BrowserThread::IO, FROM_HERE,
|
| - NewRunnableMethod(this,
|
| - &ExternalProcessImporterClient::NotifyItemFinishedOnIOThread,
|
| - import_item));
|
| -}
|
| -
|
| -void ExternalProcessImporterClient::OnHistoryImportStart(
|
| - size_t total_history_rows_count) {
|
| - if (cancelled_)
|
| - return;
|
| -
|
| - total_history_rows_count_ = total_history_rows_count;
|
| - history_rows_.reserve(total_history_rows_count);
|
| -}
|
| -
|
| -void ExternalProcessImporterClient::OnHistoryImportGroup(
|
| - const std::vector<history::URLRow>& history_rows_group,
|
| - int visit_source) {
|
| - if (cancelled_)
|
| - return;
|
| -
|
| - history_rows_.insert(history_rows_.end(), history_rows_group.begin(),
|
| - history_rows_group.end());
|
| - if (history_rows_.size() == total_history_rows_count_)
|
| - bridge_->SetHistoryItems(history_rows_,
|
| - static_cast<history::VisitSource>(visit_source));
|
| -}
|
| -
|
| -void ExternalProcessImporterClient::OnHomePageImportReady(
|
| - const GURL& home_page) {
|
| - if (cancelled_)
|
| - return;
|
| -
|
| - bridge_->AddHomePage(home_page);
|
| -}
|
| -
|
| -void ExternalProcessImporterClient::OnBookmarksImportStart(
|
| - const std::wstring first_folder_name,
|
| - int options, size_t total_bookmarks_count) {
|
| - if (cancelled_)
|
| - return;
|
| -
|
| - bookmarks_first_folder_name_ = first_folder_name;
|
| - bookmarks_options_ = options;
|
| - total_bookmarks_count_ = total_bookmarks_count;
|
| - bookmarks_.reserve(total_bookmarks_count);
|
| -}
|
| -
|
| -void ExternalProcessImporterClient::OnBookmarksImportGroup(
|
| - const std::vector<ProfileWriter::BookmarkEntry>& bookmarks_group) {
|
| - if (cancelled_)
|
| - return;
|
| -
|
| - // Collect sets of bookmarks from importer process until we have reached
|
| - // total_bookmarks_count_:
|
| - bookmarks_.insert(bookmarks_.end(), bookmarks_group.begin(),
|
| - bookmarks_group.end());
|
| - if (bookmarks_.size() == total_bookmarks_count_) {
|
| - bridge_->AddBookmarkEntries(bookmarks_, bookmarks_first_folder_name_,
|
| - bookmarks_options_);
|
| - }
|
| -}
|
| -
|
| -void ExternalProcessImporterClient::OnFavIconsImportStart(
|
| - size_t total_fav_icons_count) {
|
| - if (cancelled_)
|
| - return;
|
| -
|
| - total_fav_icons_count_ = total_fav_icons_count;
|
| - fav_icons_.reserve(total_fav_icons_count);
|
| -}
|
| -
|
| -void ExternalProcessImporterClient::OnFavIconsImportGroup(
|
| - const std::vector<history::ImportedFavIconUsage>& fav_icons_group) {
|
| - if (cancelled_)
|
| - return;
|
| -
|
| - fav_icons_.insert(fav_icons_.end(), fav_icons_group.begin(),
|
| - fav_icons_group.end());
|
| - if (fav_icons_.size() == total_fav_icons_count_)
|
| - bridge_->SetFavIcons(fav_icons_);
|
| -}
|
| -
|
| -void ExternalProcessImporterClient::OnPasswordFormImportReady(
|
| - const webkit_glue::PasswordForm& form) {
|
| - if (cancelled_)
|
| - return;
|
| -
|
| - bridge_->SetPasswordForm(form);
|
| -}
|
| -
|
| -void ExternalProcessImporterClient::OnKeywordsImportReady(
|
| - const std::vector<TemplateURL>& template_urls,
|
| - int default_keyword_index, bool unique_on_host_and_path) {
|
| - if (cancelled_)
|
| - return;
|
| -
|
| - std::vector<TemplateURL*> template_url_vec;
|
| - template_url_vec.reserve(template_urls.size());
|
| - std::vector<TemplateURL>::const_iterator iter;
|
| - for (iter = template_urls.begin();
|
| - iter != template_urls.end();
|
| - ++iter) {
|
| - template_url_vec.push_back(new TemplateURL(*iter));
|
| - }
|
| - bridge_->SetKeywords(template_url_vec, default_keyword_index,
|
| - unique_on_host_and_path);
|
| -}
|
|
|