Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(408)

Side by Side Diff: chrome/browser/importer/external_process_importer_client.h

Issue 9317074: Create an API around UtilityProcessHost and use that from chrome. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 8 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_IMPORTER_EXTERNAL_PROCESS_IMPORTER_CLIENT_H_ 5 #ifndef CHROME_BROWSER_IMPORTER_EXTERNAL_PROCESS_IMPORTER_CLIENT_H_
6 #define CHROME_BROWSER_IMPORTER_EXTERNAL_PROCESS_IMPORTER_CLIENT_H_ 6 #define CHROME_BROWSER_IMPORTER_EXTERNAL_PROCESS_IMPORTER_CLIENT_H_
7 #pragma once 7 #pragma once
8 8
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/basictypes.h" 12 #include "base/basictypes.h"
13 #include "base/compiler_specific.h" 13 #include "base/compiler_specific.h"
14 #include "base/memory/weak_ptr.h"
14 #include "base/string16.h" 15 #include "base/string16.h"
15 #include "chrome/browser/importer/importer_data_types.h" 16 #include "chrome/browser/importer/importer_data_types.h"
16 #include "chrome/browser/importer/profile_writer.h" 17 #include "chrome/browser/importer/profile_writer.h"
17 #include "content/browser/utility_process_host.h"
18 #include "content/public/browser/browser_thread.h" 18 #include "content/public/browser/browser_thread.h"
19 #include "content/public/browser/utility_process_host_client.h"
19 20
20 class ExternalProcessImporterHost; 21 class ExternalProcessImporterHost;
21 class InProcessImporterBridge; 22 class InProcessImporterBridge;
23
24 namespace content {
22 class UtilityProcessHost; 25 class UtilityProcessHost;
26 }
23 27
24 namespace history { 28 namespace history {
25 class URLRow; 29 class URLRow;
26 struct ImportedFaviconUsage; 30 struct ImportedFaviconUsage;
27 } 31 }
28 32
29 // This class is the client for the out of process profile importing. It 33 // This class is the client for the out of process profile importing. It
30 // collects notifications from this process host and feeds data back to the 34 // collects notifications from this process host and feeds data back to the
31 // importer host, who actually does the writing. 35 // importer host, who actually does the writing.
32 class ExternalProcessImporterClient : public UtilityProcessHost::Client { 36 class ExternalProcessImporterClient : public content::UtilityProcessHostClient {
33 public: 37 public:
34 ExternalProcessImporterClient(ExternalProcessImporterHost* importer_host, 38 ExternalProcessImporterClient(ExternalProcessImporterHost* importer_host,
35 const importer::SourceProfile& source_profile, 39 const importer::SourceProfile& source_profile,
36 uint16 items, 40 uint16 items,
37 InProcessImporterBridge* bridge); 41 InProcessImporterBridge* bridge);
38 virtual ~ExternalProcessImporterClient(); 42 virtual ~ExternalProcessImporterClient();
39 43
40 // Cancel import process on IO thread. 44 // Cancel import process on IO thread.
41 void CancelImportProcessOnIOThread(); 45 void CancelImportProcessOnIOThread();
42 46
43 // Report item completely downloaded on IO thread. 47 // Report item completely downloaded on IO thread.
44 void NotifyItemFinishedOnIOThread(importer::ImportItem import_item); 48 void NotifyItemFinishedOnIOThread(importer::ImportItem import_item);
45 49
46 // Notifies the importerhost that import has finished, and calls Release(). 50 // Notifies the importerhost that import has finished, and calls Release().
47 void Cleanup(); 51 void Cleanup();
48 52
49 // Launches the task to start the external process. 53 // Launches the task to start the external process.
50 virtual void Start(); 54 virtual void Start();
51 55
52 // Creates a new UtilityProcessHost, which launches the import process. 56 // Creates a new UtilityProcessHost, which launches the import process.
53 virtual void StartProcessOnIOThread(content::BrowserThread::ID thread_id); 57 virtual void StartProcessOnIOThread(content::BrowserThread::ID thread_id);
54 58
55 // Called by the ExternalProcessImporterHost on import cancel. 59 // Called by the ExternalProcessImporterHost on import cancel.
56 virtual void Cancel(); 60 virtual void Cancel();
57 61
58 // UtilityProcessHost::Client implementation: 62 // UtilityProcessHostClient implementation:
59 virtual void OnProcessCrashed(int exit_code) OVERRIDE; 63 virtual void OnProcessCrashed(int exit_code) OVERRIDE;
60 virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; 64 virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
61 65
62 // Message handlers 66 // Message handlers
63 void OnImportStart(); 67 void OnImportStart();
64 void OnImportFinished(bool succeeded, const std::string& error_msg); 68 void OnImportFinished(bool succeeded, const std::string& error_msg);
65 void OnImportItemStart(int item); 69 void OnImportItemStart(int item);
66 void OnImportItemFinished(int item); 70 void OnImportItemFinished(int item);
67 void OnHistoryImportStart(size_t total_history_rows_count); 71 void OnHistoryImportStart(size_t total_history_rows_count);
68 void OnHistoryImportGroup( 72 void OnHistoryImportGroup(
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 108
105 // Notifications received from the ProfileImportProcessHost are passed back 109 // Notifications received from the ProfileImportProcessHost are passed back
106 // to process_importer_host_, which calls the ProfileWriter to record the 110 // to process_importer_host_, which calls the ProfileWriter to record the
107 // import data. When the import process is done, process_importer_host_ 111 // import data. When the import process is done, process_importer_host_
108 // deletes itself. 112 // deletes itself.
109 ExternalProcessImporterHost* process_importer_host_; 113 ExternalProcessImporterHost* process_importer_host_;
110 114
111 // Handles sending messages to the external process. Deletes itself when 115 // Handles sending messages to the external process. Deletes itself when
112 // the external process dies (see 116 // the external process dies (see
113 // BrowserChildProcessHost::OnChildDisconnected). 117 // BrowserChildProcessHost::OnChildDisconnected).
114 base::WeakPtr<UtilityProcessHost> utility_process_host_; 118 base::WeakPtr<content::UtilityProcessHost> utility_process_host_;
115 119
116 // Data to be passed from the importer host to the external importer. 120 // Data to be passed from the importer host to the external importer.
117 const importer::SourceProfile& source_profile_; 121 const importer::SourceProfile& source_profile_;
118 uint16 items_; 122 uint16 items_;
119 123
120 // Takes import data coming over IPC and delivers it to be written by the 124 // Takes import data coming over IPC and delivers it to be written by the
121 // ProfileWriter. Released by ExternalProcessImporterClient in its 125 // ProfileWriter. Released by ExternalProcessImporterClient in its
122 // destructor. 126 // destructor.
123 InProcessImporterBridge* bridge_; 127 InProcessImporterBridge* bridge_;
124 128
125 // True if import process has been cancelled. 129 // True if import process has been cancelled.
126 bool cancelled_; 130 bool cancelled_;
127 131
128 DISALLOW_COPY_AND_ASSIGN(ExternalProcessImporterClient); 132 DISALLOW_COPY_AND_ASSIGN(ExternalProcessImporterClient);
129 }; 133 };
130 134
131 #endif // CHROME_BROWSER_IMPORTER_EXTERNAL_PROCESS_IMPORTER_CLIENT_H_ 135 #endif // CHROME_BROWSER_IMPORTER_EXTERNAL_PROCESS_IMPORTER_CLIENT_H_
OLDNEW
« no previous file with comments | « chrome/browser/image_decoder.cc ('k') | chrome/browser/importer/external_process_importer_client.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698