Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 #include "chrome/browser/printing/pwg_raster_converter.h" | 5 #include "chrome/browser/printing/pwg_raster_converter.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <memory> | 8 #include <memory> |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 123 const PWGRasterConverter::ResultCallback& callback); | 123 const PWGRasterConverter::ResultCallback& callback); |
| 124 | 124 |
| 125 // UtilityProcessHostClient implementation. | 125 // UtilityProcessHostClient implementation. |
| 126 void OnProcessCrashed(int exit_code) override; | 126 void OnProcessCrashed(int exit_code) override; |
| 127 bool OnMessageReceived(const IPC::Message& message) override; | 127 bool OnMessageReceived(const IPC::Message& message) override; |
| 128 | 128 |
| 129 private: | 129 private: |
| 130 ~PwgUtilityProcessHostClient() override; | 130 ~PwgUtilityProcessHostClient() override; |
| 131 | 131 |
| 132 // Message handlers. | 132 // Message handlers. |
| 133 void OnProcessStarted(); | |
| 134 void OnSucceeded(); | 133 void OnSucceeded(); |
| 135 void OnFailed(); | 134 void OnFailed(); |
| 136 | 135 |
| 137 void RunCallback(bool success); | 136 void RunCallback(bool success); |
| 138 | 137 |
| 139 void StartProcessOnIOThread(); | 138 void StartProcessOnIOThread(); |
| 140 | 139 |
| 141 void RunCallbackOnUIThread(bool success); | 140 void RunCallbackOnUIThread(bool success); |
| 142 void OnFilesReadyOnUIThread(); | 141 void OnFilesReadyOnUIThread(); |
| 143 | 142 |
| (...skipping 29 matching lines...) Expand all Loading... | |
| 173 } | 172 } |
| 174 | 173 |
| 175 void PwgUtilityProcessHostClient::OnProcessCrashed(int exit_code) { | 174 void PwgUtilityProcessHostClient::OnProcessCrashed(int exit_code) { |
| 176 OnFailed(); | 175 OnFailed(); |
| 177 } | 176 } |
| 178 | 177 |
| 179 bool PwgUtilityProcessHostClient::OnMessageReceived( | 178 bool PwgUtilityProcessHostClient::OnMessageReceived( |
| 180 const IPC::Message& message) { | 179 const IPC::Message& message) { |
| 181 bool handled = true; | 180 bool handled = true; |
| 182 IPC_BEGIN_MESSAGE_MAP(PwgUtilityProcessHostClient, message) | 181 IPC_BEGIN_MESSAGE_MAP(PwgUtilityProcessHostClient, message) |
| 183 IPC_MESSAGE_HANDLER(ChromeUtilityHostMsg_ProcessStarted, OnProcessStarted) | |
| 184 IPC_MESSAGE_HANDLER( | 182 IPC_MESSAGE_HANDLER( |
| 185 ChromeUtilityHostMsg_RenderPDFPagesToPWGRaster_Succeeded, OnSucceeded) | 183 ChromeUtilityHostMsg_RenderPDFPagesToPWGRaster_Succeeded, OnSucceeded) |
| 186 IPC_MESSAGE_HANDLER(ChromeUtilityHostMsg_RenderPDFPagesToPWGRaster_Failed, | 184 IPC_MESSAGE_HANDLER(ChromeUtilityHostMsg_RenderPDFPagesToPWGRaster_Failed, |
| 187 OnFailed) | 185 OnFailed) |
| 188 IPC_MESSAGE_UNHANDLED(handled = false) | 186 IPC_MESSAGE_UNHANDLED(handled = false) |
| 189 IPC_END_MESSAGE_MAP() | 187 IPC_END_MESSAGE_MAP() |
| 190 return handled; | 188 return handled; |
| 191 } | 189 } |
| 192 | 190 |
| 193 void PwgUtilityProcessHostClient::OnProcessStarted() { | |
| 194 DCHECK_CURRENTLY_ON(BrowserThread::IO); | |
| 195 if (!utility_process_host_) { | |
| 196 RunCallbackOnUIThread(false); | |
| 197 return; | |
| 198 } | |
| 199 | |
| 200 utility_process_host_->Send(new ChromeUtilityMsg_RenderPDFPagesToPWGRaster( | |
| 201 files_->GetPdfForProcess(), settings_, bitmap_settings_, | |
| 202 files_->GetPwgForProcess())); | |
| 203 utility_process_host_.reset(); | |
| 204 } | |
| 205 | |
| 206 void PwgUtilityProcessHostClient::OnSucceeded() { | 191 void PwgUtilityProcessHostClient::OnSucceeded() { |
| 207 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 192 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| 208 RunCallback(true); | 193 RunCallback(true); |
| 209 } | 194 } |
| 210 | 195 |
| 211 void PwgUtilityProcessHostClient::OnFailed() { | 196 void PwgUtilityProcessHostClient::OnFailed() { |
| 212 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 197 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| 213 RunCallback(false); | 198 RunCallback(false); |
| 214 } | 199 } |
| 215 | 200 |
| 216 void PwgUtilityProcessHostClient::OnFilesReadyOnUIThread() { | 201 void PwgUtilityProcessHostClient::OnFilesReadyOnUIThread() { |
| 217 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 202 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 218 if (!files_->IsValid()) { | 203 if (!files_->IsValid()) { |
| 219 RunCallbackOnUIThread(false); | 204 RunCallbackOnUIThread(false); |
| 220 return; | 205 return; |
| 221 } | 206 } |
| 222 BrowserThread::PostTask( | 207 BrowserThread::PostTask( |
| 223 BrowserThread::IO, FROM_HERE, | 208 BrowserThread::IO, FROM_HERE, |
| 224 base::Bind(&PwgUtilityProcessHostClient::StartProcessOnIOThread, this)); | 209 base::Bind(&PwgUtilityProcessHostClient::StartProcessOnIOThread, this)); |
| 225 } | 210 } |
| 226 | 211 |
| 227 void PwgUtilityProcessHostClient::StartProcessOnIOThread() { | 212 void PwgUtilityProcessHostClient::StartProcessOnIOThread() { |
| 228 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 213 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| 229 utility_process_host_ = | 214 utility_process_host_ = |
| 230 content::UtilityProcessHost::Create( | 215 content::UtilityProcessHost::Create( |
| 231 this, base::MessageLoop::current()->task_runner())->AsWeakPtr(); | 216 this, base::MessageLoop::current()->task_runner())->AsWeakPtr(); |
| 232 utility_process_host_->SetName(l10n_util::GetStringUTF16( | 217 utility_process_host_->SetName(l10n_util::GetStringUTF16( |
| 233 IDS_UTILITY_PROCESS_PWG_RASTER_CONVERTOR_NAME)); | 218 IDS_UTILITY_PROCESS_PWG_RASTER_CONVERTOR_NAME)); |
| 234 utility_process_host_->Send(new ChromeUtilityMsg_StartupPing); | 219 utility_process_host_->Send(new ChromeUtilityMsg_RenderPDFPagesToPWGRaster( |
| 220 files_->GetPdfForProcess(), settings_, bitmap_settings_, | |
| 221 files_->GetPwgForProcess())); | |
| 222 utility_process_host_.reset(); | |
|
Scott Hess - ex-Googler
2016/04/13 17:44:43
I have no idea how this code works, was just revie
Anand Mistry (off Chromium)
2016/04/13 23:42:57
Done.
| |
| 235 } | 223 } |
| 236 | 224 |
| 237 void PwgUtilityProcessHostClient::RunCallback(bool success) { | 225 void PwgUtilityProcessHostClient::RunCallback(bool success) { |
| 238 BrowserThread::PostTask( | 226 BrowserThread::PostTask( |
| 239 BrowserThread::UI, FROM_HERE, | 227 BrowserThread::UI, FROM_HERE, |
| 240 base::Bind(&PwgUtilityProcessHostClient::RunCallbackOnUIThread, this, | 228 base::Bind(&PwgUtilityProcessHostClient::RunCallbackOnUIThread, this, |
| 241 success)); | 229 success)); |
| 242 } | 230 } |
| 243 | 231 |
| 244 void PwgUtilityProcessHostClient::RunCallbackOnUIThread(bool success) { | 232 void PwgUtilityProcessHostClient::RunCallbackOnUIThread(bool success) { |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 355 } | 343 } |
| 356 } | 344 } |
| 357 | 345 |
| 358 result.rotate_all_pages = raster_capability.value().rotate_all_pages; | 346 result.rotate_all_pages = raster_capability.value().rotate_all_pages; |
| 359 | 347 |
| 360 result.reverse_page_order = raster_capability.value().reverse_order_streaming; | 348 result.reverse_page_order = raster_capability.value().reverse_order_streaming; |
| 361 return result; | 349 return result; |
| 362 } | 350 } |
| 363 | 351 |
| 364 } // namespace printing | 352 } // namespace printing |
| OLD | NEW |