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
;
28 // Dispatches IPCs for out of process profile import.
29 class ProfileImportHandler
: public UtilityMessageHandler
{
31 ProfileImportHandler();
32 virtual ~ProfileImportHandler();
35 virtual bool OnMessageReceived(const IPC::Message
& message
) OVERRIDE
;
39 const importer::SourceProfile
& source_profile
,
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_
;
67 #endif // CHROME_UTILITY_PROFILE_IMPORT_HANDLER_H_