Home | History | Annotate | Download | only in importer
      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 
     22 namespace autofill {
     23 struct PasswordForm;
     24 }
     25 
     26 namespace importer {
     27 #if defined(OS_WIN)
     28 struct ImporterIE7PasswordInfo;
     29 #endif
     30 struct ImporterURlRow;
     31 struct URLKeywordInfo;
     32 }
     33 
     34 class ImporterBridge : public base::RefCountedThreadSafe<ImporterBridge> {
     35  public:
     36   ImporterBridge();
     37 
     38   virtual void AddBookmarks(
     39       const std::vector<ImportedBookmarkEntry>& bookmarks,
     40       const base::string16& first_folder_name) = 0;
     41 
     42   virtual void AddHomePage(const GURL& home_page) = 0;
     43 
     44 #if defined(OS_WIN)
     45   virtual void AddIE7PasswordInfo(
     46       const importer::ImporterIE7PasswordInfo& password_info) = 0;
     47 #endif
     48 
     49   virtual void SetFavicons(
     50       const std::vector<ImportedFaviconUsage>& favicons) = 0;
     51 
     52   virtual void SetHistoryItems(const std::vector<ImporterURLRow>& rows,
     53                                importer::VisitSource visit_source) = 0;
     54 
     55   virtual void SetKeywords(
     56       const std::vector<importer::URLKeywordInfo>& url_keywords,
     57       bool unique_on_host_and_path) = 0;
     58 
     59   // The search_engine_data vector contains XML data retrieved from the Firefox
     60   // profile and its sqlite db.
     61   virtual void SetFirefoxSearchEnginesXMLData(
     62       const std::vector<std::string>& search_engine_data) = 0;
     63 
     64   virtual void SetPasswordForm(const autofill::PasswordForm& form) = 0;
     65 
     66   // Notifies the coordinator that the import operation has begun.
     67   virtual void NotifyStarted() = 0;
     68 
     69   // Notifies the coordinator that the collection of data for the specified
     70   // item has begun.
     71   virtual void NotifyItemStarted(importer::ImportItem item) = 0;
     72 
     73   // Notifies the coordinator that the collection of data for the specified
     74   // item has completed.
     75   virtual void NotifyItemEnded(importer::ImportItem item) = 0;
     76 
     77   // Notifies the coordinator that the entire import operation has completed.
     78   virtual void NotifyEnded() = 0;
     79 
     80   // For InProcessImporters this calls l10n_util. For ExternalProcessImporters
     81   // this calls the set of strings we've ported over to the external process.
     82   // It's good to avoid having to create a separate ResourceBundle for the
     83   // external import process, since the importer only needs a few strings.
     84   virtual base::string16 GetLocalizedString(int message_id) = 0;
     85 
     86  protected:
     87   friend class base::RefCountedThreadSafe<ImporterBridge>;
     88 
     89   virtual ~ImporterBridge();
     90 
     91   DISALLOW_COPY_AND_ASSIGN(ImporterBridge);
     92 };
     93 
     94 #endif  // CHROME_COMMON_IMPORTER_IMPORTER_BRIDGE_H_
     95