| 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/print_view_manager_base.h" | 5 #include "chrome/browser/printing/print_view_manager_base.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
| 9 #include "base/prefs/pref_service.h" | 9 #include "base/prefs/pref_service.h" |
| 10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 54 | 54 |
| 55 } // namespace | 55 } // namespace |
| 56 | 56 |
| 57 PrintViewManagerBase::PrintViewManagerBase(content::WebContents* web_contents) | 57 PrintViewManagerBase::PrintViewManagerBase(content::WebContents* web_contents) |
| 58 : content::WebContentsObserver(web_contents), | 58 : content::WebContentsObserver(web_contents), |
| 59 number_pages_(0), | 59 number_pages_(0), |
| 60 printing_succeeded_(false), | 60 printing_succeeded_(false), |
| 61 inside_inner_message_loop_(false), | 61 inside_inner_message_loop_(false), |
| 62 cookie_(0), | 62 cookie_(0), |
| 63 queue_(g_browser_process->print_job_manager()->queue()) { | 63 queue_(g_browser_process->print_job_manager()->queue()) { |
| 64 DCHECK(queue_); | 64 DCHECK(queue_.get()); |
| 65 #if (defined(OS_POSIX) && !defined(OS_MACOSX)) || \ | 65 #if (defined(OS_POSIX) && !defined(OS_MACOSX)) || \ |
| 66 defined(WIN_PDF_METAFILE_FOR_PRINTING) | 66 defined(WIN_PDF_METAFILE_FOR_PRINTING) |
| 67 expecting_first_page_ = true; | 67 expecting_first_page_ = true; |
| 68 #endif | 68 #endif |
| 69 Profile* profile = | 69 Profile* profile = |
| 70 Profile::FromBrowserContext(web_contents->GetBrowserContext()); | 70 Profile::FromBrowserContext(web_contents->GetBrowserContext()); |
| 71 printing_enabled_.Init( | 71 printing_enabled_.Init( |
| 72 prefs::kPrintingEnabled, | 72 prefs::kPrintingEnabled, |
| 73 profile->GetPrefs(), | 73 profile->GetPrefs(), |
| 74 base::Bind(&PrintViewManagerBase::UpdateScriptedPrintingBlocked, | 74 base::Bind(&PrintViewManagerBase::UpdateScriptedPrintingBlocked, |
| (...skipping 467 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 542 | 542 |
| 543 if (!cookie) { | 543 if (!cookie) { |
| 544 // Out of sync. It may happens since we are completely asynchronous. Old | 544 // Out of sync. It may happens since we are completely asynchronous. Old |
| 545 // spurious message can happen if one of the processes is overloaded. | 545 // spurious message can happen if one of the processes is overloaded. |
| 546 return false; | 546 return false; |
| 547 } | 547 } |
| 548 | 548 |
| 549 // The job was initiated by a script. Time to get the corresponding worker | 549 // The job was initiated by a script. Time to get the corresponding worker |
| 550 // thread. | 550 // thread. |
| 551 scoped_refptr<PrinterQuery> queued_query = queue_->PopPrinterQuery(cookie); | 551 scoped_refptr<PrinterQuery> queued_query = queue_->PopPrinterQuery(cookie); |
| 552 if (!queued_query) { | 552 if (!queued_query.get()) { |
| 553 NOTREACHED(); | 553 NOTREACHED(); |
| 554 return false; | 554 return false; |
| 555 } | 555 } |
| 556 | 556 |
| 557 if (!CreateNewPrintJob(queued_query)) { | 557 if (!CreateNewPrintJob(queued_query.get())) { |
| 558 // Don't kill anything. | 558 // Don't kill anything. |
| 559 return false; | 559 return false; |
| 560 } | 560 } |
| 561 | 561 |
| 562 // Settings are already loaded. Go ahead. This will set | 562 // Settings are already loaded. Go ahead. This will set |
| 563 // print_job_->is_job_pending() to true. | 563 // print_job_->is_job_pending() to true. |
| 564 print_job_->StartPrinting(); | 564 print_job_->StartPrinting(); |
| 565 return true; | 565 return true; |
| 566 } | 566 } |
| 567 | 567 |
| (...skipping 16 matching lines...) Expand all Loading... |
| 584 | 584 |
| 585 | 585 |
| 586 printing::PrintJobManager* print_job_manager = | 586 printing::PrintJobManager* print_job_manager = |
| 587 g_browser_process->print_job_manager(); | 587 g_browser_process->print_job_manager(); |
| 588 // May be NULL in tests. | 588 // May be NULL in tests. |
| 589 if (!print_job_manager) | 589 if (!print_job_manager) |
| 590 return; | 590 return; |
| 591 | 591 |
| 592 scoped_refptr<printing::PrinterQuery> printer_query; | 592 scoped_refptr<printing::PrinterQuery> printer_query; |
| 593 printer_query = queue_->PopPrinterQuery(cookie); | 593 printer_query = queue_->PopPrinterQuery(cookie); |
| 594 if (!printer_query) | 594 if (!printer_query.get()) |
| 595 return; | 595 return; |
| 596 BrowserThread::PostTask( | 596 BrowserThread::PostTask( |
| 597 BrowserThread::IO, FROM_HERE, | 597 BrowserThread::IO, FROM_HERE, |
| 598 base::Bind(&PrinterQuery::StopWorker, printer_query.get())); | 598 base::Bind(&PrinterQuery::StopWorker, printer_query.get())); |
| 599 } | 599 } |
| 600 | 600 |
| 601 } // namespace printing | 601 } // namespace printing |
| OLD | NEW |