Index: printing/printed_document_chromeos.cc |
diff --git a/printing/printed_document_chromeos.cc b/printing/printed_document_chromeos.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..aac115fb766ee8edec090529cdd95470c27b47f3 |
--- /dev/null |
+++ b/printing/printed_document_chromeos.cc |
@@ -0,0 +1,47 @@ |
+// Copyright 2016 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/logging.h" |
+#include "printing/page_number.h" |
+#include "printing/printed_page.h" |
+ |
+#if defined(USE_CUPS) |
+#include "printing/printing_context_chromeos.h" |
+#endif |
+ |
+namespace printing { |
+ |
+void PrintedDocument::RenderPrintedPage(const PrintedPage& page, |
+ PrintingContext* context) const { |
+#if defined(USE_CUPS) |
+#if defined(NDEBUG) |
+ { |
+ // Make sure the page is from our list. |
+ base::AutoLock lock(lock_); |
+ DCHECK(&page == mutable_.pages_.find(page.page_number() - 1)->second.get()); |
+ } |
+#endif // defined(NDEBUG) |
+ |
+ DCHECK(context); |
+ |
+ { |
+ base::AutoLock lock(lock_); |
+ if (page.page_number() - 1 == mutable_.first_page) { |
+ std::vector<char> buffer; |
+ |
+ if (page.metafile()->GetDataAsVector(&buffer)) { |
+ static_cast<PrintingContextChromeos*>(context)->StreamData(buffer); |
+ } else { |
+ LOG(WARNING) << "Failed to read data from metafile"; |
+ } |
+ } |
+ } |
+#else |
+ NOTREACHED(); |
+#endif // defined(USE_CUPS) |
+} |
+ |
+} // namespace printing |