| Index: chrome/browser/printing/print_job_worker.cc
|
| diff --git a/chrome/browser/printing/print_job_worker.cc b/chrome/browser/printing/print_job_worker.cc
|
| index 88ef3e9e5c16683ba7968f2b9bc51d97123ab22c..f79478514a8bdf88a652bd41d1936bd4af63a453 100644
|
| --- a/chrome/browser/printing/print_job_worker.cc
|
| +++ b/chrome/browser/printing/print_job_worker.cc
|
| @@ -120,39 +120,19 @@ void PrintJobWorker::SetSettings(
|
| DCHECK_EQ(message_loop(), base::MessageLoop::current());
|
|
|
| BrowserThread::PostTask(
|
| - BrowserThread::UI, FROM_HERE,
|
| - base::Bind(&HoldRefCallback, make_scoped_refptr(owner_),
|
| + BrowserThread::UI,
|
| + FROM_HERE,
|
| + base::Bind(&HoldRefCallback,
|
| + make_scoped_refptr(owner_),
|
| base::Bind(&PrintJobWorker::UpdatePrintSettings,
|
| - base::Unretained(this), new_settings)));
|
| + base::Unretained(this),
|
| + base::Owned(new_settings))));
|
| }
|
|
|
| void PrintJobWorker::UpdatePrintSettings(
|
| const base::DictionaryValue* const new_settings) {
|
| - // Create new PageRanges based on |new_settings|.
|
| - PageRanges new_ranges;
|
| - const base::ListValue* page_range_array;
|
| - if (new_settings->GetList(kSettingPageRange, &page_range_array)) {
|
| - for (size_t index = 0; index < page_range_array->GetSize(); ++index) {
|
| - const base::DictionaryValue* dict;
|
| - if (!page_range_array->GetDictionary(index, &dict))
|
| - continue;
|
| -
|
| - PageRange range;
|
| - if (!dict->GetInteger(kSettingPageRangeFrom, &range.from) ||
|
| - !dict->GetInteger(kSettingPageRangeTo, &range.to)) {
|
| - continue;
|
| - }
|
| -
|
| - // Page numbers are 1-based in the dictionary.
|
| - // Page numbers are 0-based for the printing context.
|
| - range.from--;
|
| - range.to--;
|
| - new_ranges.push_back(range);
|
| - }
|
| - }
|
| PrintingContext::Result result =
|
| - printing_context_->UpdatePrintSettings(*new_settings, new_ranges);
|
| - delete new_settings;
|
| + printing_context_->UpdatePrintSettings(*new_settings);
|
| GetSettingsDone(result);
|
| }
|
|
|
| @@ -272,8 +252,8 @@ void PrintJobWorker::OnNewPage() {
|
|
|
| while (true) {
|
| // Is the page available?
|
| - scoped_refptr<PrintedPage> page;
|
| - if (!document_->GetPage(page_number_.ToInt(), &page)) {
|
| + scoped_refptr<PrintedPage> page = document_->GetPage(page_number_.ToInt());
|
| + if (!page) {
|
| // We need to wait for the page to be available.
|
| base::MessageLoop::current()->PostDelayedTask(
|
| FROM_HERE,
|
|
|