1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- // Copyright (c) 2011 The Chromium Authors. All rights reserved.
- // 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
|