diff options
author | thestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-02-01 22:23:44 +0000 |
---|---|---|
committer | thestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-02-01 22:23:44 +0000 |
commit | f0815756f61f11537f1a354646bb0bb9c93433a1 (patch) | |
tree | d5177e02a018dcbb86d2f7fbf9477d6ad8c2fdfd /chrome/browser/printing/print_job.cc | |
parent | 179361d28afb77b096e7bfd43a4a26d11bb11969 (diff) | |
download | chromium_src-f0815756f61f11537f1a354646bb0bb9c93433a1.zip chromium_src-f0815756f61f11537f1a354646bb0bb9c93433a1.tar.gz chromium_src-f0815756f61f11537f1a354646bb0bb9c93433a1.tar.bz2 |
printing: Prevent a race between PrintViewManager::OnDidGetPrintedPagesCount and PrintJobWorker::OnNewPage.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/6294018
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@73356 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/printing/print_job.cc')
-rw-r--r-- | chrome/browser/printing/print_job.cc | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/chrome/browser/printing/print_job.cc b/chrome/browser/printing/print_job.cc index 493d317..cf49f78 100644 --- a/chrome/browser/printing/print_job.cc +++ b/chrome/browser/printing/print_job.cc @@ -44,7 +44,8 @@ PrintJob::~PrintJob() { } void PrintJob::Initialize(PrintJobWorkerOwner* job, - PrintedPagesSource* source) { + PrintedPagesSource* source, + int page_count) { DCHECK(!source_); DCHECK(!worker_.get()); DCHECK(!is_job_pending_); @@ -55,7 +56,10 @@ void PrintJob::Initialize(PrintJobWorkerOwner* job, worker_.reset(job->DetachWorker(this)); settings_ = job->settings(); - UpdatePrintedDocument(new PrintedDocument(settings_, source_, job->cookie())); + PrintedDocument* new_doc = + new PrintedDocument(settings_, source_, job->cookie()); + new_doc->set_page_count(page_count); + UpdatePrintedDocument(new_doc); // Don't forget to register to our own messages. registrar_.Add(this, NotificationType::PRINT_JOB_EVENT, |