1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CHROME_COMMON_IMPORTER_IMPORTER_BRIDGE_H_ 6 #define CHROME_COMMON_IMPORTER_IMPORTER_BRIDGE_H_ 7 8 #include <string> 9 #include <vector> 10 11 #include "base/basictypes.h" 12 #include "base/memory/ref_counted.h" 13 #include "base/strings/string16.h" 14 #include "build/build_config.h" 15 #include "chrome/common/importer/importer_data_types.h" 16 #include "chrome/common/importer/importer_url_row.h" 17 18 class GURL; 19 struct ImportedBookmarkEntry; 20 struct ImportedFaviconUsage; 21 struct ImporterAutofillFormDataEntry; 22 23 namespace autofill { 24 struct PasswordForm; 25 } 26 27 namespace importer { 28 #if defined(OS_WIN) 29 struct ImporterIE7PasswordInfo; 30 #endif 31 struct ImporterURlRow; 32 struct URLKeywordInfo; 33 } 34 35 class ImporterBridge : public base::RefCountedThreadSafe<ImporterBridge> { 36 public: 37 ImporterBridge(); 38 39 virtual void AddBookmarks( 40 const std::vector<ImportedBookmarkEntry>& bookmarks, 41 const base::string16& first_folder_name) = 0; 42 43 virtual void AddHomePage(const GURL& home_page) = 0; 44 45 #if defined(OS_WIN) 46 virtual void AddIE7PasswordInfo( 47 const importer::ImporterIE7PasswordInfo& password_info) = 0; 48 #endif 49 50 virtual void SetFavicons( 51 const std::vector<ImportedFaviconUsage>& favicons) = 0; 52 53 virtual void SetHistoryItems(const std::vector<ImporterURLRow>& rows, 54 importer::VisitSource visit_source) = 0; 55 56 virtual void SetKeywords( 57 const std::vector<importer::URLKeywordInfo>& url_keywords, 58 bool unique_on_host_and_path) = 0; 59 60 // The search_engine_data vector contains XML data retrieved from the Firefox 61 // profile and its sqlite db. 62 virtual void SetFirefoxSearchEnginesXMLData( 63 const std::vector<std::string>& search_engine_data) = 0; 64 65 virtual void SetPasswordForm(const autofill::PasswordForm& form) = 0; 66 67 virtual void SetAutofillFormData( 68 const std::vector<ImporterAutofillFormDataEntry>& entries) = 0; 69 70 // Notifies the coordinator that the import operation has begun. 71 virtual void NotifyStarted() = 0; 72 73 // Notifies the coordinator that the collection of data for the specified 74 // item has begun. 75 virtual void NotifyItemStarted(importer::ImportItem item) = 0; 76 77 // Notifies the coordinator that the collection of data for the specified 78 // item has completed. 79 virtual void NotifyItemEnded(importer::ImportItem item) = 0; 80 81 // Notifies the coordinator that the entire import operation has completed. 82 virtual void NotifyEnded() = 0; 83 84 // For InProcessImporters this calls l10n_util. For ExternalProcessImporters 85 // this calls the set of strings we've ported over to the external process. 86 // It's good to avoid having to create a separate ResourceBundle for the 87 // external import process, since the importer only needs a few strings. 88 virtual base::string16 GetLocalizedString(int message_id) = 0; 89 90 protected: 91 friend class base::RefCountedThreadSafe<ImporterBridge>; 92 93 virtual ~ImporterBridge(); 94 95 DISALLOW_COPY_AND_ASSIGN(ImporterBridge); 96 }; 97 98 #endif // CHROME_COMMON_IMPORTER_IMPORTER_BRIDGE_H_ 99