Chromium Code Reviews| Index: headless/lib/browser/headless_print_manager.h |
| diff --git a/headless/lib/browser/headless_print_manager.h b/headless/lib/browser/headless_print_manager.h |
| index 6d35bfae461d890d9a9d3d529c413c6b3ec82aa7..b5474a0887bd03594cce225d10fed2cd441d39d6 100644 |
| --- a/headless/lib/browser/headless_print_manager.h |
| +++ b/headless/lib/browser/headless_print_manager.h |
| @@ -11,11 +11,47 @@ |
| #include "components/printing/browser/print_manager.h" |
| #include "content/public/browser/render_frame_host.h" |
| #include "content/public/browser/web_contents_user_data.h" |
| +#include "printing/print_settings.h" |
| struct PrintHostMsg_DidPrintPage_Params; |
| +struct PrintHostMsg_ScriptedPrint_Params; |
| +struct PrintMsg_PrintPages_Params; |
| namespace printing { |
| +struct HeadlessPrintSettings { |
|
Lei Zhang
2017/04/20 08:35:58
https://google.github.io/styleguide/cppguide.html#
jzfeng
2017/04/27 06:56:07
Done. Changed struct to class.
|
| + enum PaperType { |
| + LETTER, |
| + LEGAL, |
| + A4, |
| + A3, |
| + }; |
| + |
| + HeadlessPrintSettings(); |
| + HeadlessPrintSettings(const HeadlessPrintSettings& obj); |
| + ~HeadlessPrintSettings(); |
| + |
| + int GetDPI(); |
| + gfx::Size PaperSizeInPixel(); |
| + PageMargins MarginInPoints(); |
| + |
| + int dpi; |
| + PaperType paper_type; |
| + |
| + MarginType margin_type; |
| + double margin_top_in_inch; |
| + double margin_bottom_in_inch; |
| + double margin_left_in_inch; |
| + double margin_right_in_inch; |
| + |
| + bool landscape; |
| + bool display_header_footer; |
| + bool should_print_backgrounds; |
| + double scale; |
|
Lei Zhang
2017/04/20 08:35:58
Mention 1 = 100%?
jzfeng
2017/04/27 06:56:07
Done.
|
| + |
| + PageRanges page_ranges; |
| +}; |
| + |
| class HeadlessPrintManager |
| : public PrintManager, |
| public content::WebContentsUserData<HeadlessPrintManager> { |
| @@ -30,6 +66,7 @@ class HeadlessPrintManager |
| METAFILE_INVALID_HEADER, |
| METAFILE_GET_DATA_ERROR, |
| SIMULTANEOUS_PRINT_ACTIVE, |
| + EXCEED_PAGE_LIMIT, |
|
Eric Seckler
2017/04/20 09:15:28
nit: PAGE_COUNT_EXCEEDED?
jzfeng
2017/04/27 06:56:06
Done.
|
| }; |
| using GetPDFCallback = base::Callback<void(PrintResult, const std::string&)>; |
| @@ -45,20 +82,26 @@ class HeadlessPrintManager |
| // this function, and |callback| will always get called when printing |
| // finishes. |
| void GetPDFContents(content::RenderFrameHost* rfh, |
| + HeadlessPrintSettings settings, |
|
Lei Zhang
2017/04/20 08:35:58
Don't pass by value.
jzfeng
2017/04/27 06:56:06
Done.
|
| const GetPDFCallback& callback); |
| private: |
| explicit HeadlessPrintManager(content::WebContents* web_contents); |
| friend class content::WebContentsUserData<HeadlessPrintManager>; |
| + std::unique_ptr<PrintMsg_PrintPages_Params> PrintParams( |
| + HeadlessPrintSettings settings); |
| // content::WebContentsObserver implementation. |
| bool OnMessageReceived(const IPC::Message& message, |
| content::RenderFrameHost* render_frame_host) override; |
| // IPC Message handlers. |
| void OnGetDefaultPrintSettings(IPC::Message* reply_msg); |
| + void OnScriptedPrint(const PrintHostMsg_ScriptedPrint_Params& params, |
| + IPC::Message* reply_msg); |
| void OnShowInvalidPrinterSettingsError(); |
| void OnPrintingFailed(int cookie) override; |
| + void OnDidGetPrintedPagesCount(int cookie, int number_pages) override; |
| void OnDidPrintPage(const PrintHostMsg_DidPrintPage_Params& params); |
| void Reset(); |
| @@ -66,6 +109,7 @@ class HeadlessPrintManager |
| content::RenderFrameHost* printing_rfh_; |
| GetPDFCallback callback_; |
| + std::unique_ptr<PrintMsg_PrintPages_Params> print_params_; |
| std::string data_; |
| // Set to true when OnDidPrintPage() should be expecting the first page. |