Roll src/third_party/WebKit 57aef96:a1089e6 (svn 201978:201979)
[chromium-blink-merge.git] / chrome / utility / profile_import_handler.h
blobe0eb94faa5b4ec33bd12d1b21623365cf5bd2c55
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 // Dispatches IPCs for out of process profile import.
27 class ProfileImportHandler : public UtilityMessageHandler {
28 public:
29 ProfileImportHandler();
30 ~ProfileImportHandler() override;
32 // IPC::Listener:
33 bool OnMessageReceived(const IPC::Message& message) override;
35 private:
36 void OnImportStart(
37 const importer::SourceProfile& source_profile,
38 uint16 items,
39 const base::DictionaryValue& localized_strings);
40 void OnImportCancel();
41 void OnImportItemFinished(uint16 item);
43 // The following are used with out of process profile import:
44 void ImporterCleanup();
46 // Thread that importer runs on, while ProfileImportThread handles messages
47 // from the browser process.
48 scoped_ptr<base::Thread> import_thread_;
50 // Bridge object is passed to importer, so that it can send IPC calls
51 // directly back to the ProfileImportProcessHost.
52 scoped_refptr<ExternalProcessImporterBridge> bridge_;
54 // A bitmask of importer::ImportItem.
55 uint16 items_to_import_;
57 // Importer of the appropriate type (Firefox, Safari, IE, etc.)
58 scoped_refptr<Importer> importer_;
61 #endif // CHROME_UTILITY_PROFILE_IMPORT_HANDLER_H_