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.
5 #ifndef CHROME_UTILITY_IMPORTER_EXTERNAL_PROCESS_IMPORTER_BRIDGE_H_
6 #define CHROME_UTILITY_IMPORTER_EXTERNAL_PROCESS_IMPORTER_BRIDGE_H_
11 #include "base/basictypes.h"
12 #include "base/compiler_specific.h"
13 #include "base/memory/scoped_ptr.h"
14 #include "chrome/common/importer/importer_bridge.h"
17 struct ImportedBookmarkEntry;
20 class DictionaryValue;
26 struct ImporterIE7PasswordInfo;
28 struct ImporterURLRow;
29 struct URLKeywordInfo;
37 // When the importer is run in an external process, the bridge is effectively
38 // split in half by the IPC infrastructure. The external bridge receives data
39 // and notifications from the importer, and sends it across IPC. The
40 // internal bridge gathers the data from the IPC host and writes it to the
42 class ExternalProcessImporterBridge : public ImporterBridge {
44 ExternalProcessImporterBridge(
45 const base::DictionaryValue& localized_strings,
47 base::TaskRunner* task_runner);
49 // Begin ImporterBridge implementation:
50 virtual void AddBookmarks(const std::vector<ImportedBookmarkEntry>& bookmarks,
51 const base::string16& first_folder_name) OVERRIDE;
53 virtual void AddHomePage(const GURL& home_page) OVERRIDE;
56 virtual void AddIE7PasswordInfo(
57 const importer::ImporterIE7PasswordInfo& password_info) OVERRIDE;
60 virtual void SetFavicons(
61 const std::vector<ImportedFaviconUsage>& favicons) OVERRIDE;
63 virtual void SetHistoryItems(const std::vector<ImporterURLRow>& rows,
64 importer::VisitSource visit_source) OVERRIDE;
66 virtual void SetKeywords(
67 const std::vector<importer::URLKeywordInfo>& url_keywords,
68 bool unique_on_host_and_path) OVERRIDE;
70 virtual void SetFirefoxSearchEnginesXMLData(
71 const std::vector<std::string>& seach_engine_data) OVERRIDE;
73 virtual void SetPasswordForm(
74 const autofill::PasswordForm& form) OVERRIDE;
76 virtual void SetAutofillFormData(
77 const std::vector<ImporterAutofillFormDataEntry>& entries) OVERRIDE;
79 virtual void NotifyStarted() OVERRIDE;
80 virtual void NotifyItemStarted(importer::ImportItem item) OVERRIDE;
81 virtual void NotifyItemEnded(importer::ImportItem item) OVERRIDE;
82 virtual void NotifyEnded() OVERRIDE;
84 virtual base::string16 GetLocalizedString(int message_id) OVERRIDE;
85 // End ImporterBridge implementation.
88 virtual ~ExternalProcessImporterBridge();
90 void Send(IPC::Message* message);
91 void SendInternal(IPC::Message* message);
93 // Holds strings needed by the external importer because the resource
94 // bundle isn't available to the external process.
95 scoped_ptr<base::DictionaryValue> localized_strings_;
98 scoped_refptr<base::TaskRunner> task_runner_;
100 DISALLOW_COPY_AND_ASSIGN(ExternalProcessImporterBridge);
103 #endif // CHROME_UTILITY_IMPORTER_EXTERNAL_PROCESS_IMPORTER_BRIDGE_H_