Componentize AccountReconcilor.
[chromium-blink-merge.git] / chrome / utility / profile_import_handler.h
blob1fd650e37e7fc7e5e32ecaae358d920deb19b814
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_PROFILE_IMPORT_HANDLER_H_
6 #define CHROME_UTILITY_PROFILE_IMPORT_HANDLER_H_
8 #include "base/basictypes.h"
9 #include "base/compiler_specific.h"
10 #include "base/memory/ref_counted.h"
11 #include "base/memory/scoped_ptr.h"
12 #include "chrome/utility/utility_message_handler.h"
14 class ExternalProcessImporterBridge;
15 class Importer;
17 namespace base {
18 class DictionaryValue;
19 class Thread;
22 namespace importer {
23 struct SourceProfile;
26 namespace chrome {
28 // Dispatches IPCs for out of process profile import.
29 class ProfileImportHandler : public UtilityMessageHandler {
30 public:
31 ProfileImportHandler();
32 virtual ~ProfileImportHandler();
34 // IPC::Listener:
35 virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
37 private:
38 void OnImportStart(
39 const importer::SourceProfile& source_profile,
40 uint16 items,
41 const base::DictionaryValue& localized_strings);
42 void OnImportCancel();
43 void OnImportItemFinished(uint16 item);
45 // The following are used with out of process profile import:
46 void ImporterCleanup();
48 static bool Send(IPC::Message* message);
50 // Thread that importer runs on, while ProfileImportThread handles messages
51 // from the browser process.
52 scoped_ptr<base::Thread> import_thread_;
54 // Bridge object is passed to importer, so that it can send IPC calls
55 // directly back to the ProfileImportProcessHost.
56 scoped_refptr<ExternalProcessImporterBridge> bridge_;
58 // A bitmask of importer::ImportItem.
59 uint16 items_to_import_;
61 // Importer of the appropriate type (Firefox, Safari, IE, etc.)
62 scoped_refptr<Importer> importer_;
65 } // namespace chrome
67 #endif // CHROME_UTILITY_PROFILE_IMPORT_HANDLER_H_