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
;
18 class DictionaryValue
;
26 // Dispatches IPCs for out of process profile import.
27 class ProfileImportHandler
: public UtilityMessageHandler
{
29 ProfileImportHandler();
30 ~ProfileImportHandler() override
;
33 bool OnMessageReceived(const IPC::Message
& message
) override
;
37 const importer::SourceProfile
& source_profile
,
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_