diff options
Diffstat (limited to 'chromium/chrome/browser/printing/print_job.cc')
-rw-r--r-- | chromium/chrome/browser/printing/print_job.cc | 29 |
1 files changed, 8 insertions, 21 deletions
diff --git a/chromium/chrome/browser/printing/print_job.cc b/chromium/chrome/browser/printing/print_job.cc index 4fc7d84e20c..964eec8c10e 100644 --- a/chromium/chrome/browser/printing/print_job.cc +++ b/chromium/chrome/browser/printing/print_job.cc @@ -45,10 +45,7 @@ void HoldRefCallback(const scoped_refptr<PrintJobWorkerOwner>& owner, } // namespace PrintJob::PrintJob() - : source_(nullptr), - is_job_pending_(false), - is_canceling_(false), - quit_factory_(this) { + : is_job_pending_(false), is_canceling_(false), quit_factory_(this) { // This is normally a UI message loop, but in unit tests, the message loop is // of the 'default' type. DCHECK(base::MessageLoopForUI::IsCurrent() || @@ -65,19 +62,17 @@ PrintJob::~PrintJob() { } void PrintJob::Initialize(PrintJobWorkerOwner* job, - PrintedPagesSource* source, + const base::string16& name, int page_count) { - DCHECK(!source_); DCHECK(!worker_); DCHECK(!is_job_pending_); DCHECK(!is_canceling_); DCHECK(!document_.get()); - source_ = source; worker_ = job->DetachWorker(this); settings_ = job->settings(); PrintedDocument* new_doc = - new PrintedDocument(settings_, source_, job->cookie()); + new PrintedDocument(settings_, name, job->cookie()); new_doc->set_page_count(page_count); UpdatePrintedDocument(new_doc); @@ -127,7 +122,7 @@ void PrintJob::StartPrinting() { // Real work is done in PrintJobWorker::StartPrinting(). worker_->PostTask(FROM_HERE, - base::Bind(&HoldRefCallback, make_scoped_refptr(this), + base::Bind(&HoldRefCallback, base::WrapRefCounted(this), base::Bind(&PrintJobWorker::StartPrinting, base::Unretained(worker_.get()), base::RetainedRef(document_)))); @@ -205,12 +200,6 @@ bool PrintJob::FlushJob(base::TimeDelta timeout) { return true; } -void PrintJob::DisconnectSource() { - source_ = nullptr; - if (document_.get()) - document_->DisconnectSource(); -} - bool PrintJob::is_job_pending() const { return is_job_pending_; } @@ -222,7 +211,7 @@ PrintedDocument* PrintJob::document() const { #if defined(OS_WIN) class PrintJob::PdfConversionState { public: - PdfConversionState(gfx::Size page_size, gfx::Rect content_area) + PdfConversionState(const gfx::Size& page_size, const gfx::Rect& content_area) : page_count_(0), current_page_(0), pages_in_progress_(0), @@ -254,8 +243,8 @@ class PrintJob::PdfConversionState { } void set_page_count(int page_count) { page_count_ = page_count; } - gfx::Size page_size() const { return page_size_; } - gfx::Rect content_area() const { return content_area_; } + const gfx::Size& page_size() const { return page_size_; } + const gfx::Rect& content_area() const { return content_area_; } private: int page_count_; @@ -364,7 +353,7 @@ void PrintJob::UpdatePrintedDocument(PrintedDocument* new_document) { DCHECK(!is_job_pending_); // Sync the document with the worker. worker_->PostTask(FROM_HERE, - base::Bind(&HoldRefCallback, make_scoped_refptr(this), + base::Bind(&HoldRefCallback, base::WrapRefCounted(this), base::Bind(&PrintJobWorker::OnDocumentChanged, base::Unretained(worker_.get()), base::RetainedRef(document_)))); @@ -458,8 +447,6 @@ void PrintJob::ControlledWorkerShutdown() { // Now make sure the thread object is cleaned up. Do this on a worker // thread because it may block. - // TODO(fdoray): Remove MayBlock() once base::Thread::Stop() passes - // base::ThreadRestrictions::AssertWaitAllowed(). base::PostTaskWithTraitsAndReply( FROM_HERE, {base::MayBlock(), base::WithBaseSyncPrimitives(), |