// Copyright 2011 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "printing/printed_document.h" #include "base/check.h" #include "base/synchronization/lock.h" #include "printing/mojom/print.mojom.h" #include "printing/printed_page_win.h" #include "printing/printing_context.h" namespace printing { #if !defined(NDEBUG) bool PrintedDocument::IsPageInList(const PrintedPage& page) const { // Make sure the page is from our list. base::AutoLock lock(lock_); return &page == mutable_.pages_.find(page.page_number() - 1)->second.get(); } #endif mojom::ResultCode PrintedDocument::RenderPrintedPage( const PrintedPage& page, PrintingContext* context) const { #if !defined(NDEBUG) DCHECK(IsPageInList(page)); #endif DCHECK(context); mojom::ResultCode result = context->RenderPage( page, immutable_.settings_->page_setup_device_units()); if (result != mojom::ResultCode::kSuccess) return result; // Beware of any asynchronous aborts of the print job that happened during // printing. if (context->PrintingAborted()) return mojom::ResultCode::kCanceled; return mojom::ResultCode::kSuccess; } } // namespace printing