| Index: chrome/browser/printing/print_job.cc
 | 
| diff --git a/chrome/browser/printing/print_job.cc b/chrome/browser/printing/print_job.cc
 | 
| index fc9b9a9a9dbfa35b38408630d1a584916c24ee43..b00ee4829a53a375dc744e2d803b015a4c737f67 100644
 | 
| --- a/chrome/browser/printing/print_job.cc
 | 
| +++ b/chrome/browser/printing/print_job.cc
 | 
| @@ -222,16 +222,17 @@ PrintedDocument* PrintJob::document() const {
 | 
|  }
 | 
|  
 | 
|  #if defined(OS_WIN)
 | 
| -
 | 
| -class PrintJob::PdfToEmfState {
 | 
| +class PrintJob::PdfConversionState {
 | 
|   public:
 | 
| -  PdfToEmfState(const gfx::Size& page_size, const gfx::Rect& content_area)
 | 
| +  PdfConversionState(gfx::Size page_size,
 | 
| +                     gfx::Rect content_area,
 | 
| +                     std::unique_ptr<PdfConverter> converter)
 | 
|        : page_count_(0),
 | 
|          current_page_(0),
 | 
|          pages_in_progress_(0),
 | 
|          page_size_(page_size),
 | 
|          content_area_(content_area),
 | 
| -        converter_(PdfConverter::CreatePdfToEmfConverter()) {}
 | 
| +        converter_(std::move(converter)) {}
 | 
|  
 | 
|    void Start(const scoped_refptr<base::RefCountedMemory>& data,
 | 
|               const PdfRenderSettings& conversion_settings,
 | 
| @@ -280,46 +281,48 @@ void PrintJob::StartPdfToEmfConversion(
 | 
|      const gfx::Size& page_size,
 | 
|      const gfx::Rect& content_area,
 | 
|      bool print_text_with_gdi) {
 | 
| -  DCHECK(!pdf_to_emf_state_);
 | 
| -  pdf_to_emf_state_ = base::MakeUnique<PdfToEmfState>(page_size, content_area);
 | 
| +  DCHECK(!pdf_conversion_state_);
 | 
| +  pdf_conversion_state_ =
 | 
| +      base::MakeUnique<PdfConversionState>(page_size, content_area,
 | 
| +          PdfConverter::CreatePdfToEmfConverter());
 | 
|    const int kPrinterDpi = settings().dpi();
 | 
| -  pdf_to_emf_state_->Start(
 | 
| -      bytes, PdfRenderSettings(content_area, kPrinterDpi, true),
 | 
| -      print_text_with_gdi, base::Bind(&PrintJob::OnPdfToEmfStarted, this));
 | 
| +  PdfRenderSettings settings(content_area, kPrinterDpi, true /* autorotate? */);
 | 
| +  pdf_conversion_state_->Start(
 | 
| +      bytes, settings, print_text_with_gdi,
 | 
| +      base::Bind(&PrintJob::OnPdfConversionStarted, this));
 | 
|  }
 | 
|  
 | 
| -void PrintJob::OnPdfToEmfStarted(int page_count) {
 | 
| +void PrintJob::OnPdfConversionStarted(int page_count) {
 | 
|    if (page_count <= 0) {
 | 
| -    pdf_to_emf_state_.reset();
 | 
| +    pdf_conversion_state_.reset();
 | 
|      Cancel();
 | 
|      return;
 | 
|    }
 | 
| -  pdf_to_emf_state_->set_page_count(page_count);
 | 
| -  pdf_to_emf_state_->GetMorePages(
 | 
| -      base::Bind(&PrintJob::OnPdfToEmfPageConverted, this));
 | 
| +  pdf_conversion_state_->set_page_count(page_count);
 | 
| +  pdf_conversion_state_->GetMorePages(
 | 
| +      base::Bind(&PrintJob::OnPdfPageConverted, this));
 | 
|  }
 | 
|  
 | 
| -void PrintJob::OnPdfToEmfPageConverted(int page_number,
 | 
| -                                       float scale_factor,
 | 
| -                                       std::unique_ptr<MetafilePlayer> emf) {
 | 
| -  DCHECK(pdf_to_emf_state_);
 | 
| -  if (!document_.get() || !emf || page_number < 0 ||
 | 
| +void PrintJob::OnPdfPageConverted(int page_number,
 | 
| +                                  float scale_factor,
 | 
| +                                  std::unique_ptr<MetafilePlayer> metafile) {
 | 
| +  DCHECK(pdf_conversion_state_);
 | 
| +  if (!document_.get() || !metafile || page_number < 0 ||
 | 
|        static_cast<size_t>(page_number) >= pdf_page_mapping_.size()) {
 | 
| -    pdf_to_emf_state_.reset();
 | 
| +    pdf_conversion_state_.reset();
 | 
|      Cancel();
 | 
|      return;
 | 
|    }
 | 
|  
 | 
|    // Update the rendered document. It will send notifications to the listener.
 | 
| -  document_->SetPage(pdf_page_mapping_[page_number], std::move(emf),
 | 
| -                     scale_factor, pdf_to_emf_state_->page_size(),
 | 
| -                     pdf_to_emf_state_->content_area());
 | 
| +  document_->SetPage(pdf_page_mapping_[page_number], std::move(metafile),
 | 
| +                     scale_factor, pdf_conversion_state_->page_size(),
 | 
| +                     pdf_conversion_state_->content_area());
 | 
|  
 | 
| -  pdf_to_emf_state_->GetMorePages(
 | 
| -      base::Bind(&PrintJob::OnPdfToEmfPageConverted, this));
 | 
| +  pdf_conversion_state_->GetMorePages(
 | 
| +      base::Bind(&PrintJob::OnPdfPageConverted, this));
 | 
|  }
 | 
| -
 | 
| -#endif  // OS_WIN
 | 
| +#endif  // defined(OS_WIN)
 | 
|  
 | 
|  void PrintJob::UpdatePrintedDocument(PrintedDocument* new_document) {
 | 
|    if (document_.get() == new_document)
 | 
| @@ -370,8 +373,10 @@ void PrintJob::OnNotifyPrintJobEvent(const JobEventDetails& event_details) {
 | 
|      }
 | 
|      case JobEventDetails::PAGE_DONE:
 | 
|  #if defined(OS_WIN)
 | 
| -      pdf_to_emf_state_->OnPageProcessed(
 | 
| -          base::Bind(&PrintJob::OnPdfToEmfPageConverted, this));
 | 
| +      if (pdf_conversion_state_) {
 | 
| +        pdf_conversion_state_->OnPageProcessed(
 | 
| +            base::Bind(&PrintJob::OnPdfPageConverted, this));
 | 
| +      }
 | 
|  #endif  // defined(OS_WIN)
 | 
|        break;
 | 
|      default: {
 | 
| 
 |