| 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 | 
|  |