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

Side by Side Diff: chrome/browser/printing/print_job_worker.cc

Issue 2692923006: Add job id to JobEventDetails. (Closed)
Patch Set: Created 3 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
« no previous file with comments | « chrome/browser/printing/print_job.cc ('k') | printing/printing_context.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #include "chrome/browser/printing/print_job_worker.h" 5 #include "chrome/browser/printing/print_job_worker.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <string> 8 #include <string>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 content::RenderFrameHost::FromID(render_process_id_, render_frame_id_); 83 content::RenderFrameHost::FromID(render_process_id_, render_frame_id_);
84 return rfh ? content::WebContents::FromRenderFrameHost(rfh) : nullptr; 84 return rfh ? content::WebContents::FromRenderFrameHost(rfh) : nullptr;
85 } 85 }
86 86
87 std::string PrintingContextDelegate::GetAppLocale() { 87 std::string PrintingContextDelegate::GetAppLocale() {
88 return g_browser_process->GetApplicationLocale(); 88 return g_browser_process->GetApplicationLocale();
89 } 89 }
90 90
91 void NotificationCallback(PrintJobWorkerOwner* print_job, 91 void NotificationCallback(PrintJobWorkerOwner* print_job,
92 JobEventDetails::Type detail_type, 92 JobEventDetails::Type detail_type,
93 int job_id,
93 PrintedDocument* document, 94 PrintedDocument* document,
94 PrintedPage* page) { 95 PrintedPage* page) {
95 JobEventDetails* details = new JobEventDetails(detail_type, document, page); 96 JobEventDetails* details =
97 new JobEventDetails(detail_type, job_id, document, page);
96 content::NotificationService::current()->Notify( 98 content::NotificationService::current()->Notify(
97 chrome::NOTIFICATION_PRINT_JOB_EVENT, 99 chrome::NOTIFICATION_PRINT_JOB_EVENT,
98 // We know that is is a PrintJob object in this circumstance. 100 // We know that is is a PrintJob object in this circumstance.
99 content::Source<PrintJob>(static_cast<PrintJob*>(print_job)), 101 content::Source<PrintJob>(static_cast<PrintJob*>(print_job)),
100 content::Details<JobEventDetails>(details)); 102 content::Details<JobEventDetails>(details));
101 } 103 }
102 104
103 void PostOnOwnerThread(const scoped_refptr<PrintJobWorkerOwner>& owner, 105 void PostOnOwnerThread(const scoped_refptr<PrintJobWorkerOwner>& owner,
104 const PrintingContext::PrintSettingsCallback& callback, 106 const PrintingContext::PrintSettingsCallback& callback,
105 PrintingContext::Result result) { 107 PrintingContext::Result result) {
(...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after
363 bool result = thread_.Start(); 365 bool result = thread_.Start();
364 task_runner_ = thread_.task_runner(); 366 task_runner_ = thread_.task_runner();
365 return result; 367 return result;
366 } 368 }
367 369
368 void PrintJobWorker::OnDocumentDone() { 370 void PrintJobWorker::OnDocumentDone() {
369 DCHECK(task_runner_->RunsTasksOnCurrentThread()); 371 DCHECK(task_runner_->RunsTasksOnCurrentThread());
370 DCHECK_EQ(page_number_, PageNumber::npos()); 372 DCHECK_EQ(page_number_, PageNumber::npos());
371 DCHECK(document_.get()); 373 DCHECK(document_.get());
372 374
375 int job_id = printing_context_->job_id();
373 if (printing_context_->DocumentDone() != PrintingContext::OK) { 376 if (printing_context_->DocumentDone() != PrintingContext::OK) {
374 OnFailure(); 377 OnFailure();
375 return; 378 return;
376 } 379 }
377 380
378 owner_->PostTask(FROM_HERE, 381 owner_->PostTask(FROM_HERE,
379 base::Bind(&NotificationCallback, base::RetainedRef(owner_), 382 base::Bind(&NotificationCallback, base::RetainedRef(owner_),
380 JobEventDetails::DOC_DONE, 383 JobEventDetails::DOC_DONE, job_id,
381 base::RetainedRef(document_), nullptr)); 384 base::RetainedRef(document_), nullptr));
382 385
383 // Makes sure the variables are reinitialized. 386 // Makes sure the variables are reinitialized.
384 document_ = NULL; 387 document_ = NULL;
385 } 388 }
386 389
387 void PrintJobWorker::SpoolPage(PrintedPage* page) { 390 void PrintJobWorker::SpoolPage(PrintedPage* page) {
388 DCHECK(task_runner_->RunsTasksOnCurrentThread()); 391 DCHECK(task_runner_->RunsTasksOnCurrentThread());
389 DCHECK_NE(page_number_, PageNumber::npos()); 392 DCHECK_NE(page_number_, PageNumber::npos());
390 393
391 // Signal everyone that the page is about to be printed. 394 // Signal everyone that the page is about to be printed.
392 owner_->PostTask( 395 owner_->PostTask(
393 FROM_HERE, 396 FROM_HERE,
394 base::Bind(&NotificationCallback, base::RetainedRef(owner_), 397 base::Bind(&NotificationCallback, base::RetainedRef(owner_),
395 JobEventDetails::NEW_PAGE, base::RetainedRef(document_), 398 JobEventDetails::NEW_PAGE, printing_context_->job_id(),
396 base::RetainedRef(page))); 399 base::RetainedRef(document_), base::RetainedRef(page)));
397 400
398 // Preprocess. 401 // Preprocess.
399 if (printing_context_->NewPage() != PrintingContext::OK) { 402 if (printing_context_->NewPage() != PrintingContext::OK) {
400 OnFailure(); 403 OnFailure();
401 return; 404 return;
402 } 405 }
403 406
404 // Actual printing. 407 // Actual printing.
405 #if defined(OS_WIN) || defined(OS_MACOSX) 408 #if defined(OS_WIN) || defined(OS_MACOSX)
406 document_->RenderPrintedPage(*page, printing_context_->context()); 409 document_->RenderPrintedPage(*page, printing_context_->context());
407 #elif defined(OS_POSIX) 410 #elif defined(OS_POSIX)
408 document_->RenderPrintedPage(*page, printing_context_.get()); 411 document_->RenderPrintedPage(*page, printing_context_.get());
409 #endif 412 #endif
410 413
411 // Postprocess. 414 // Postprocess.
412 if (printing_context_->PageDone() != PrintingContext::OK) { 415 if (printing_context_->PageDone() != PrintingContext::OK) {
413 OnFailure(); 416 OnFailure();
414 return; 417 return;
415 } 418 }
416 419
417 // Signal everyone that the page is printed. 420 // Signal everyone that the page is printed.
418 owner_->PostTask( 421 owner_->PostTask(
419 FROM_HERE, 422 FROM_HERE,
420 base::Bind(&NotificationCallback, base::RetainedRef(owner_), 423 base::Bind(&NotificationCallback, base::RetainedRef(owner_),
421 JobEventDetails::PAGE_DONE, base::RetainedRef(document_), 424 JobEventDetails::PAGE_DONE, printing_context_->job_id(),
422 base::RetainedRef(page))); 425 base::RetainedRef(document_), base::RetainedRef(page)));
423 } 426 }
424 427
425 void PrintJobWorker::OnFailure() { 428 void PrintJobWorker::OnFailure() {
426 DCHECK(task_runner_->RunsTasksOnCurrentThread()); 429 DCHECK(task_runner_->RunsTasksOnCurrentThread());
427 430
428 // We may loose our last reference by broadcasting the FAILED event. 431 // We may loose our last reference by broadcasting the FAILED event.
429 scoped_refptr<PrintJobWorkerOwner> handle(owner_); 432 scoped_refptr<PrintJobWorkerOwner> handle(owner_);
430 433
431 owner_->PostTask(FROM_HERE, 434 owner_->PostTask(FROM_HERE,
432 base::Bind(&NotificationCallback, base::RetainedRef(owner_), 435 base::Bind(&NotificationCallback, base::RetainedRef(owner_),
433 JobEventDetails::FAILED, 436 JobEventDetails::FAILED, 0,
434 base::RetainedRef(document_), nullptr)); 437 base::RetainedRef(document_), nullptr));
435 Cancel(); 438 Cancel();
436 439
437 // Makes sure the variables are reinitialized. 440 // Makes sure the variables are reinitialized.
438 document_ = NULL; 441 document_ = NULL;
439 page_number_ = PageNumber::npos(); 442 page_number_ = PageNumber::npos();
440 } 443 }
441 444
442 } // namespace printing 445 } // namespace printing
OLDNEW
« no previous file with comments | « chrome/browser/printing/print_job.cc ('k') | printing/printing_context.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698