1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CHROME_BROWSER_PRINTING_PRINT_VIEW_MANAGER_BASIC_H_ 6 #define CHROME_BROWSER_PRINTING_PRINT_VIEW_MANAGER_BASIC_H_ 7 8 #include "chrome/browser/printing/print_view_manager_base.h" 9 #include "content/public/browser/web_contents_user_data.h" 10 11 #if defined(OS_ANDROID) 12 #include "base/file_descriptor_posix.h" 13 #endif 14 15 namespace printing { 16 17 // Manages the print commands for a WebContents - basic version. 18 class PrintViewManagerBasic 19 : public PrintViewManagerBase, 20 public content::WebContentsUserData<PrintViewManagerBasic> { 21 public: 22 virtual ~PrintViewManagerBasic(); 23 24 #if defined(OS_ANDROID) 25 // Sets the file descriptor into which the PDF will be written. 26 void set_file_descriptor(const base::FileDescriptor& file_descriptor) { 27 file_descriptor_ = file_descriptor; 28 } 29 30 // Gets the file descriptor into which the PDF will be written. 31 base::FileDescriptor file_descriptor() const { return file_descriptor_; } 32 33 // content::WebContentsObserver implementation. 34 // Terminates or cancels the print job if one was pending. 35 virtual void RenderProcessGone(base::TerminationStatus status) OVERRIDE; 36 37 // content::WebContentsObserver implementation. 38 virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; 39 #endif 40 41 private: 42 explicit PrintViewManagerBasic(content::WebContents* web_contents); 43 friend class content::WebContentsUserData<PrintViewManagerBasic>; 44 45 #if defined(OS_ANDROID) 46 virtual void OnPrintingFailed(int cookie) OVERRIDE; 47 48 // The file descriptor into which the PDF of the page will be written. 49 base::FileDescriptor file_descriptor_; 50 #endif 51 52 DISALLOW_COPY_AND_ASSIGN(PrintViewManagerBasic); 53 }; 54 55 } // namespace printing 56 57 #endif // CHROME_BROWSER_PRINTING_PRINT_VIEW_MANAGER_BASIC_H_ 58