13551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
2c2db58bd994c04d98e4ee2cd7565b71548655fe3Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
3c2db58bd994c04d98e4ee2cd7565b71548655fe3Ben Murdoch// found in the LICENSE file.
4c2db58bd994c04d98e4ee2cd7565b71548655fe3Ben Murdoch
5c2db58bd994c04d98e4ee2cd7565b71548655fe3Ben Murdoch#include "chrome/browser/printing/print_view_manager_basic.h"
6c2db58bd994c04d98e4ee2cd7565b71548655fe3Ben Murdoch
73551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#if defined(OS_ANDROID)
83551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "base/file_descriptor_posix.h"
93551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "chrome/common/print_messages.h"
103551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "printing/printing_context_android.h"
113551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#endif
123551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
13c2db58bd994c04d98e4ee2cd7565b71548655fe3Ben MurdochDEFINE_WEB_CONTENTS_USER_DATA_KEY(printing::PrintViewManagerBasic);
14c2db58bd994c04d98e4ee2cd7565b71548655fe3Ben Murdoch
15c2db58bd994c04d98e4ee2cd7565b71548655fe3Ben Murdochnamespace printing {
16c2db58bd994c04d98e4ee2cd7565b71548655fe3Ben Murdoch
17c2db58bd994c04d98e4ee2cd7565b71548655fe3Ben MurdochPrintViewManagerBasic::PrintViewManagerBasic(content::WebContents* web_contents)
18c2db58bd994c04d98e4ee2cd7565b71548655fe3Ben Murdoch    : PrintViewManagerBase(web_contents) {
19c2db58bd994c04d98e4ee2cd7565b71548655fe3Ben Murdoch}
20c2db58bd994c04d98e4ee2cd7565b71548655fe3Ben Murdoch
21c2db58bd994c04d98e4ee2cd7565b71548655fe3Ben MurdochPrintViewManagerBasic::~PrintViewManagerBasic() {
22c2db58bd994c04d98e4ee2cd7565b71548655fe3Ben Murdoch}
23c2db58bd994c04d98e4ee2cd7565b71548655fe3Ben Murdoch
243551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#if defined(OS_ANDROID)
253551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)void PrintViewManagerBasic::RenderProcessGone(base::TerminationStatus status) {
263551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  PrintingContextAndroid::PdfWritingDone(file_descriptor_.fd, false);
273551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  file_descriptor_ = base::FileDescriptor(-1, false);
283551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  PrintViewManagerBase::RenderProcessGone(status);
293551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)}
303551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
313551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)void PrintViewManagerBasic::OnPrintingFailed(int cookie) {
323551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  PrintingContextAndroid::PdfWritingDone(file_descriptor_.fd, false);
333551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  file_descriptor_ = base::FileDescriptor(-1, false);
343551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  PrintViewManagerBase::OnPrintingFailed(cookie);
353551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)}
363551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
373551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)bool PrintViewManagerBasic::OnMessageReceived(const IPC::Message& message) {
383551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  bool handled = true;
393551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  IPC_BEGIN_MESSAGE_MAP(PrintViewManagerBasic, message)
403551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    IPC_MESSAGE_HANDLER(PrintHostMsg_PrintingFailed, OnPrintingFailed)
413551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    IPC_MESSAGE_UNHANDLED(handled = false)
423551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  IPC_END_MESSAGE_MAP()
433551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
443551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  return handled ? true : PrintViewManagerBase::OnMessageReceived(message);
453551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)}
463551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#endif
473551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
48c2db58bd994c04d98e4ee2cd7565b71548655fe3Ben Murdoch}  // namespace printing
49