// Copyright (c) 2012 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. #ifndef CHROME_COMMON_IMPORTER_IMPORTER_BRIDGE_H_ #define CHROME_COMMON_IMPORTER_IMPORTER_BRIDGE_H_ #include #include #include "base/basictypes.h" #include "base/memory/ref_counted.h" #include "base/strings/string16.h" #include "build/build_config.h" #include "chrome/common/importer/importer_data_types.h" #include "chrome/common/importer/importer_url_row.h" #include "components/favicon_base/favicon_usage_data.h" class GURL; struct ImportedBookmarkEntry; struct ImporterAutofillFormDataEntry; namespace autofill { struct PasswordForm; } namespace importer { #if defined(OS_WIN) struct ImporterIE7PasswordInfo; #endif struct ImporterURlRow; struct SearchEngineInfo; } class ImporterBridge : public base::RefCountedThreadSafe { public: ImporterBridge(); virtual void AddBookmarks( const std::vector& bookmarks, const base::string16& first_folder_name) = 0; virtual void AddHomePage(const GURL& home_page) = 0; #if defined(OS_WIN) virtual void AddIE7PasswordInfo( const importer::ImporterIE7PasswordInfo& password_info) = 0; #endif virtual void SetFavicons( const favicon_base::FaviconUsageDataList& favicons) = 0; virtual void SetHistoryItems(const std::vector& rows, importer::VisitSource visit_source) = 0; virtual void SetKeywords( const std::vector& search_engines, bool unique_on_host_and_path) = 0; // The search_engine_data vector contains XML data retrieved from the Firefox // profile and its sqlite db. virtual void SetFirefoxSearchEnginesXMLData( const std::vector& search_engine_data) = 0; virtual void SetPasswordForm(const autofill::PasswordForm& form) = 0; virtual void SetAutofillFormData( const std::vector& entries) = 0; // Notifies the coordinator that the import operation has begun. virtual void NotifyStarted() = 0; // Notifies the coordinator that the collection of data for the specified // item has begun. virtual void NotifyItemStarted(importer::ImportItem item) = 0; // Notifies the coordinator that the collection of data for the specified // item has completed. virtual void NotifyItemEnded(importer::ImportItem item) = 0; // Notifies the coordinator that the entire import operation has completed. virtual void NotifyEnded() = 0; // For InProcessImporters this calls l10n_util. For ExternalProcessImporters // this calls the set of strings we've ported over to the external process. // It's good to avoid having to create a separate ResourceBundle for the // external import process, since the importer only needs a few strings. virtual base::string16 GetLocalizedString(int message_id) = 0; protected: friend class base::RefCountedThreadSafe; virtual ~ImporterBridge(); DISALLOW_COPY_AND_ASSIGN(ImporterBridge); }; #endif // CHROME_COMMON_IMPORTER_IMPORTER_BRIDGE_H_