| OLD | NEW |
| (Empty) |
| 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_BROWSER_IMPORTER_EXTERNAL_PROCESS_IMPORTER_BRIDGE_H_ | |
| 6 #define CHROME_BROWSER_IMPORTER_EXTERNAL_PROCESS_IMPORTER_BRIDGE_H_ | |
| 7 | |
| 8 #include <string> | |
| 9 #include <vector> | |
| 10 | |
| 11 #include "base/basictypes.h" | |
| 12 #include "base/compiler_specific.h" | |
| 13 #include "base/memory/scoped_ptr.h" | |
| 14 #include "chrome/browser/importer/importer_bridge.h" | |
| 15 | |
| 16 class GURL; | |
| 17 struct ImportedBookmarkEntry; | |
| 18 | |
| 19 namespace base { | |
| 20 class DictionaryValue; | |
| 21 class TaskRunner; | |
| 22 } | |
| 23 | |
| 24 namespace importer { | |
| 25 #if defined(OS_WIN) | |
| 26 struct ImporterIE7PasswordInfo; | |
| 27 #endif | |
| 28 struct ImporterURLRow; | |
| 29 struct URLKeywordInfo; | |
| 30 } | |
| 31 | |
| 32 namespace IPC { | |
| 33 class Message; | |
| 34 class Sender; | |
| 35 } | |
| 36 | |
| 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 | |
| 41 // profile. | |
| 42 class ExternalProcessImporterBridge : public ImporterBridge { | |
| 43 public: | |
| 44 ExternalProcessImporterBridge( | |
| 45 const base::DictionaryValue& localized_strings, | |
| 46 IPC::Sender* sender, | |
| 47 base::TaskRunner* task_runner); | |
| 48 | |
| 49 // Begin ImporterBridge implementation: | |
| 50 virtual void AddBookmarks( | |
| 51 const std::vector<ImportedBookmarkEntry>& bookmarks, | |
| 52 const string16& first_folder_name) OVERRIDE; | |
| 53 | |
| 54 virtual void AddHomePage(const GURL& home_page) OVERRIDE; | |
| 55 | |
| 56 #if defined(OS_WIN) | |
| 57 virtual void AddIE7PasswordInfo( | |
| 58 const importer::ImporterIE7PasswordInfo& password_info) OVERRIDE; | |
| 59 #endif | |
| 60 | |
| 61 virtual void SetFavicons( | |
| 62 const std::vector<ImportedFaviconUsage>& favicons) OVERRIDE; | |
| 63 | |
| 64 virtual void SetHistoryItems(const std::vector<ImporterURLRow>& rows, | |
| 65 importer::VisitSource visit_source) OVERRIDE; | |
| 66 | |
| 67 virtual void SetKeywords( | |
| 68 const std::vector<importer::URLKeywordInfo>& url_keywords, | |
| 69 bool unique_on_host_and_path) OVERRIDE; | |
| 70 | |
| 71 virtual void SetFirefoxSearchEnginesXMLData( | |
| 72 const std::vector<std::string>& seach_engine_data) OVERRIDE; | |
| 73 | |
| 74 virtual void SetPasswordForm( | |
| 75 const content::PasswordForm& form) OVERRIDE; | |
| 76 | |
| 77 virtual void NotifyStarted() OVERRIDE; | |
| 78 virtual void NotifyItemStarted(importer::ImportItem item) OVERRIDE; | |
| 79 virtual void NotifyItemEnded(importer::ImportItem item) OVERRIDE; | |
| 80 virtual void NotifyEnded() OVERRIDE; | |
| 81 | |
| 82 virtual string16 GetLocalizedString(int message_id) OVERRIDE; | |
| 83 // End ImporterBridge implementation. | |
| 84 | |
| 85 private: | |
| 86 virtual ~ExternalProcessImporterBridge(); | |
| 87 | |
| 88 void Send(IPC::Message* message); | |
| 89 void SendInternal(IPC::Message* message); | |
| 90 | |
| 91 // Holds strings needed by the external importer because the resource | |
| 92 // bundle isn't available to the external process. | |
| 93 scoped_ptr<base::DictionaryValue> localized_strings_; | |
| 94 | |
| 95 IPC::Sender* sender_; | |
| 96 scoped_refptr<base::TaskRunner> task_runner_; | |
| 97 | |
| 98 DISALLOW_COPY_AND_ASSIGN(ExternalProcessImporterBridge); | |
| 99 }; | |
| 100 | |
| 101 #endif // CHROME_BROWSER_IMPORTER_EXTERNAL_PROCESS_IMPORTER_BRIDGE_H_ | |
| OLD | NEW |