1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Use of this source code is governed by a BSD-style license that can be 3ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// found in the LICENSE file. 4ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 5ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/browser/importer/external_process_importer_bridge.h" 6ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 7ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "base/logging.h" 8ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "base/string_number_conversions.h" 9ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "base/utf_string_conversions.h" 10ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "base/values.h" 11ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/browser/history/history_types.h" 12ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/profile_import/profile_import_thread.h" 13ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "webkit/glue/password_form.h" 14ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 15ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#if defined(OS_WIN) 16ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/browser/password_manager/ie7_password.h" 17ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#endif 18ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 19ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian MonsenExternalProcessImporterBridge::ExternalProcessImporterBridge( 20ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen ProfileImportThread* profile_import_thread, 21ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const DictionaryValue& localized_strings) 22ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen : profile_import_thread_(profile_import_thread) { 23ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Bridge needs to make its own copy because OS 10.6 autoreleases the 24ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // localized_strings value that is passed in (see http://crbug.com/46003 ). 25ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen localized_strings_.reset(localized_strings.DeepCopy()); 26ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 27ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 28ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenvoid ExternalProcessImporterBridge::AddBookmarkEntries( 29ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const std::vector<ProfileWriter::BookmarkEntry>& bookmarks, 30ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const string16& first_folder_name, 31ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen int options) { 32ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen profile_import_thread_->NotifyBookmarksImportReady( 33ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen bookmarks, first_folder_name, options); 34ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 35ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 36ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenvoid ExternalProcessImporterBridge::AddHomePage(const GURL& home_page) { 37ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen NOTIMPLEMENTED(); 38ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 39ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 40ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#if defined(OS_WIN) 41ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenvoid ExternalProcessImporterBridge::AddIE7PasswordInfo( 42ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const IE7PasswordInfo& password_info) { 43ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen NOTIMPLEMENTED(); 44ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 45ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#endif 46ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 47ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenvoid ExternalProcessImporterBridge::SetFavicons( 48ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const std::vector<history::ImportedFaviconUsage>& favicons) { 49ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen profile_import_thread_->NotifyFaviconsImportReady(favicons); 50ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 51ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 52ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenvoid ExternalProcessImporterBridge::SetHistoryItems( 53ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const std::vector<history::URLRow>& rows, 54ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen history::VisitSource visit_source) { 55ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen profile_import_thread_->NotifyHistoryImportReady(rows, visit_source); 56ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 57ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 58ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenvoid ExternalProcessImporterBridge::SetKeywords( 59ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const std::vector<TemplateURL*>& template_urls, 60ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen int default_keyword_index, 61ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen bool unique_on_host_and_path) { 62ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen profile_import_thread_->NotifyKeywordsReady( 63ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen template_urls, default_keyword_index, unique_on_host_and_path); 64ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 65ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 66ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenvoid ExternalProcessImporterBridge::SetPasswordForm( 67ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const webkit_glue::PasswordForm& form) { 68ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen profile_import_thread_->NotifyPasswordFormReady(form); 69ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 70ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 71ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenvoid ExternalProcessImporterBridge::NotifyStarted() { 72ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen profile_import_thread_->NotifyStarted(); 73ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 74ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 75ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenvoid ExternalProcessImporterBridge::NotifyItemStarted( 76ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen importer::ImportItem item) { 77ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen profile_import_thread_->NotifyItemStarted(item); 78ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 79ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 80ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenvoid ExternalProcessImporterBridge::NotifyItemEnded(importer::ImportItem item) { 81ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen profile_import_thread_->NotifyItemEnded(item); 82ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 83ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 84ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenvoid ExternalProcessImporterBridge::NotifyEnded() { 85ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // The internal process detects import end when all items have been received. 86ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 87ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 88ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenstring16 ExternalProcessImporterBridge::GetLocalizedString(int message_id) { 89ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen string16 message; 90ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen localized_strings_->GetString(base::IntToString(message_id), &message); 91ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen return message; 92ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 93ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 94ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian MonsenExternalProcessImporterBridge::~ExternalProcessImporterBridge() {} 95