15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// IPC messages for printing.
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Multiply-included message file, hence no include guard.
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <string>
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <vector>
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
117dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "base/memory/shared_memory.h"
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/values.h"
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ipc/ipc_message_macros.h"
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "printing/page_size_margins.h"
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "printing/print_job_constants.h"
167d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/web/WebPrintScalingOption.h"
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/gfx/native_widget_types.h"
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/gfx/rect.h"
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef CHROME_COMMON_PRINT_MESSAGES_H_
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROME_COMMON_PRINT_MESSAGES_H_
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct PrintMsg_Print_Params {
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PrintMsg_Print_Params();
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ~PrintMsg_Print_Params();
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Resets the members of the struct to 0.
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  void Reset();
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  gfx::Size page_size;
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  gfx::Size content_size;
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  gfx::Rect printable_area;
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int margin_top;
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int margin_left;
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  double dpi;
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  double min_shrink;
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  double max_shrink;
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int desired_dpi;
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int document_cookie;
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  bool selection_only;
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  bool supports_alpha_blend;
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int32 preview_ui_id;
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int preview_request_id;
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  bool is_first_request;
45f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  blink::WebPrintScalingOption print_scaling_option;
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  bool print_to_pdf;
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  bool display_header_footer;
48a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  base::string16 title;
49a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  base::string16 url;
502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  bool should_print_backgrounds;
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct PrintMsg_PrintPages_Params {
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PrintMsg_PrintPages_Params();
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ~PrintMsg_PrintPages_Params();
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Resets the members of the struct to 0.
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  void Reset();
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PrintMsg_Print_Params params;
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  std::vector<int> pages;
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)struct PrintHostMsg_RequestPrintPreview_Params {
652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PrintHostMsg_RequestPrintPreview_Params();
662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ~PrintHostMsg_RequestPrintPreview_Params();
672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  bool is_modifiable;
682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  bool webnode_only;
692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  bool has_selection;
702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  bool selection_only;
712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)};
722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  // CHROME_COMMON_PRINT_MESSAGES_H_
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define IPC_MESSAGE_START PrintMsgStart
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_ENUM_TRAITS(printing::MarginType)
78f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)IPC_ENUM_TRAITS(blink::WebPrintScalingOption)
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Parameters for a render request.
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_STRUCT_TRAITS_BEGIN(PrintMsg_Print_Params)
825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Physical size of the page, including non-printable margins,
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // in pixels according to dpi.
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_TRAITS_MEMBER(page_size)
855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // In pixels according to dpi_x and dpi_y.
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_TRAITS_MEMBER(content_size)
885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Physical printable area of the page in pixels according to dpi.
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_TRAITS_MEMBER(printable_area)
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // The y-offset of the printable area, in pixels according to dpi.
935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_TRAITS_MEMBER(margin_top)
945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // The x-offset of the printable area, in pixels according to dpi.
965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_TRAITS_MEMBER(margin_left)
975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Specifies dots per inch.
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_TRAITS_MEMBER(dpi)
1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Minimum shrink factor. See PrintSettings::min_shrink for more information.
1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_TRAITS_MEMBER(min_shrink)
1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Maximum shrink factor. See PrintSettings::max_shrink for more information.
1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_TRAITS_MEMBER(max_shrink)
1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Desired apparent dpi on paper.
1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_TRAITS_MEMBER(desired_dpi)
1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Cookie for the document to ensure correctness.
1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_TRAITS_MEMBER(document_cookie)
1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Should only print currently selected text.
1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_TRAITS_MEMBER(selection_only)
1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Does the printer support alpha blending?
1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_TRAITS_MEMBER(supports_alpha_blend)
1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // *** Parameters below are used only for print preview. ***
1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // The print preview ui associated with this request.
1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_TRAITS_MEMBER(preview_ui_id)
1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // The id of the preview request.
1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_TRAITS_MEMBER(preview_request_id)
1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // True if this is the first preview request.
1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_TRAITS_MEMBER(is_first_request)
1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Specifies the page scaling option for preview printing.
1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_TRAITS_MEMBER(print_scaling_option)
1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // True if print to pdf is requested.
1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_TRAITS_MEMBER(print_to_pdf)
1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Specifies if the header and footer should be rendered.
1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_TRAITS_MEMBER(display_header_footer)
1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Title string to be printed as header if requested by the user.
1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_TRAITS_MEMBER(title)
1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // URL string to be printed as footer if requested by the user.
1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_TRAITS_MEMBER(url)
1442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  // True if print backgrounds is requested by the user.
1462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  IPC_STRUCT_TRAITS_MEMBER(should_print_backgrounds)
1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_STRUCT_TRAITS_END()
1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_STRUCT_BEGIN(PrintMsg_PrintPage_Params)
1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Parameters to render the page as a printed page. It must always be the same
1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // value for all the document.
1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_MEMBER(PrintMsg_Print_Params, params)
1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // The page number is the indicator of the square that should be rendered
1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // according to the layout specified in PrintMsg_Print_Params.
1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_MEMBER(int, page_number)
1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_STRUCT_END()
1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_STRUCT_TRAITS_BEGIN(PrintHostMsg_RequestPrintPreview_Params)
1602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  IPC_STRUCT_TRAITS_MEMBER(is_modifiable)
1612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  IPC_STRUCT_TRAITS_MEMBER(webnode_only)
1622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  IPC_STRUCT_TRAITS_MEMBER(has_selection)
1632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  IPC_STRUCT_TRAITS_MEMBER(selection_only)
1642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_STRUCT_TRAITS_END()
1652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_STRUCT_TRAITS_BEGIN(printing::PageSizeMargins)
1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_TRAITS_MEMBER(content_width)
1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_TRAITS_MEMBER(content_height)
1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_TRAITS_MEMBER(margin_left)
1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_TRAITS_MEMBER(margin_right)
1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_TRAITS_MEMBER(margin_top)
1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_TRAITS_MEMBER(margin_bottom)
1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_STRUCT_TRAITS_END()
1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_STRUCT_TRAITS_BEGIN(PrintMsg_PrintPages_Params)
1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Parameters to render the page as a printed page. It must always be the same
1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // value for all the document.
1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_TRAITS_MEMBER(params)
1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // If empty, this means a request to render all the printed pages.
1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_TRAITS_MEMBER(pages)
1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_STRUCT_TRAITS_END()
1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Parameters to describe a rendered document.
1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_STRUCT_BEGIN(PrintHostMsg_DidPreviewDocument_Params)
1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // A shared memory handle to metafile data.
1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_MEMBER(base::SharedMemoryHandle, metafile_data_handle)
1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Size of metafile data.
1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_MEMBER(uint32, data_size)
1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Cookie for the document to ensure correctness.
1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_MEMBER(int, document_cookie)
1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Store the expected pages count.
1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_MEMBER(int, expected_pages_count)
1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Whether the preview can be modified.
1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_MEMBER(bool, modifiable)
2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // The id of the preview request.
2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_MEMBER(int, preview_request_id)
2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_STRUCT_END()
2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Parameters to describe a rendered preview page.
2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_STRUCT_BEGIN(PrintHostMsg_DidPreviewPage_Params)
2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // A shared memory handle to metafile data for a draft document of the page.
2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_MEMBER(base::SharedMemoryHandle, metafile_data_handle)
2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Size of metafile data.
2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_MEMBER(uint32, data_size)
2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // |page_number| is zero-based and can be |printing::INVALID_PAGE_INDEX| if it
2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // is just a check.
2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_MEMBER(int, page_number)
2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // The id of the preview request.
2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_MEMBER(int, preview_request_id)
2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_STRUCT_END()
2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Parameters sent along with the page count.
2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_STRUCT_BEGIN(PrintHostMsg_DidGetPreviewPageCount_Params)
2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Cookie for the document to ensure correctness.
2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_MEMBER(int, document_cookie)
2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Total page count.
2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_MEMBER(int, page_count)
2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Indicates whether the previewed document is modifiable.
2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_MEMBER(bool, is_modifiable)
2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // The id of the preview request.
2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_MEMBER(int, preview_request_id)
2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Indicates whether the existing preview data needs to be cleared or not.
2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_MEMBER(bool, clear_preview_data)
2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_STRUCT_END()
2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Parameters to describe a rendered page.
2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_STRUCT_BEGIN(PrintHostMsg_DidPrintPage_Params)
2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // A shared memory handle to the EMF data. This data can be quite large so a
2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // memory map needs to be used.
2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_MEMBER(base::SharedMemoryHandle, metafile_data_handle)
2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Size of the metafile data.
2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_MEMBER(uint32, data_size)
2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Cookie for the document to ensure correctness.
2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_MEMBER(int, document_cookie)
2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Page number.
2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_MEMBER(int, page_number)
2535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Shrink factor used to render this page.
2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_MEMBER(double, actual_shrink)
2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // The size of the page the page author specified.
2585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_MEMBER(gfx::Size, page_size)
2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // The printable area the page author specified.
2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_MEMBER(gfx::Rect, content_area)
2625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_STRUCT_END()
2635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Parameters for the IPC message ViewHostMsg_ScriptedPrint
2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_STRUCT_BEGIN(PrintHostMsg_ScriptedPrint_Params)
2665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_MEMBER(int, cookie)
2675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_MEMBER(int, expected_pages_count)
2685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_MEMBER(bool, has_selection)
2695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC_STRUCT_MEMBER(printing::MarginType, margin_type)
2705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_STRUCT_END()
2715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Messages sent from the browser to the renderer.
2745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Tells the render view to initiate print preview for the entire document.
2762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_ROUTED1(PrintMsg_InitiatePrintPreview, bool /* selection_only */)
2775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Tells the render view to initiate printing or print preview for a particular
2795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// node, depending on which mode the render view is in.
2805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED0(PrintMsg_PrintNodeUnderContextMenu)
2815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Tells the renderer to print the print preview tab's PDF plugin without
2835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// showing the print dialog. (This is the final step in the print preview
2845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// workflow.)
2855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED1(PrintMsg_PrintForPrintPreview,
2867d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)                    base::DictionaryValue /* settings */)
2875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Tells the render view to switch the CSS to print media type, renders every
2895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// requested pages and switch back the CSS to display media type.
2905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED0(PrintMsg_PrintPages)
2915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Tells the render view that printing is done so it can clean up.
2935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED1(PrintMsg_PrintingDone,
2945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                    bool /* success */)
2955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Tells the render view whether scripted printing is blocked or not.
2975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED1(PrintMsg_SetScriptedPrintingBlocked,
2985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                    bool /* blocked */)
2995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Tells the render view to switch the CSS to print media type, renders every
3015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// requested pages for print preview using the given |settings|. This gets
3025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// called multiple times as the user updates settings.
3035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED1(PrintMsg_PrintPreview,
3047d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)                    base::DictionaryValue /* settings */)
3055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Like PrintMsg_PrintPages, but using the print preview document's frame/node.
3075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED0(PrintMsg_PrintForSystemDialog)
3085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Tells a renderer to stop blocking script initiated printing.
3105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED0(PrintMsg_ResetScriptedPrintCount)
3115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Messages sent from the renderer to the browser.
3135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_WIN)
3155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Duplicates a shared memory handle from the renderer to the browser. Then
3165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// the renderer can flush the handle.
3175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_SYNC_MESSAGE_ROUTED1_1(PrintHostMsg_DuplicateSection,
3185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                           base::SharedMemoryHandle /* renderer handle */,
3195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                           base::SharedMemoryHandle /* browser handle */)
3205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
3215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
322c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Check if printing is enabled.
323c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)IPC_SYNC_MESSAGE_ROUTED0_1(PrintHostMsg_IsPrintingEnabled,
324c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)                           bool /* is_enabled */)
325c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
3265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Tells the browser that the renderer is done calculating the number of
3275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// rendered pages according to the specified settings.
3285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED2(PrintHostMsg_DidGetPrintedPagesCount,
3295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                    int /* rendered document cookie */,
3305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                    int /* number of rendered pages */)
3315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Sends the document cookie of the current printer query to the browser.
3335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED1(PrintHostMsg_DidGetDocumentCookie,
3345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                    int /* rendered document cookie */)
3355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Tells the browser that the print dialog has been shown.
3375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED0(PrintHostMsg_DidShowPrintDialog)
3385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Sends back to the browser the rendered "printed page" that was requested by
3405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// a ViewMsg_PrintPage message or from scripted printing. The memory handle in
3415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// this message is already valid in the browser process.
3425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED1(PrintHostMsg_DidPrintPage,
3435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                    PrintHostMsg_DidPrintPage_Params /* page content */)
3445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// The renderer wants to know the default print settings.
3465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_SYNC_MESSAGE_ROUTED0_1(PrintHostMsg_GetDefaultPrintSettings,
3475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                           PrintMsg_Print_Params /* default_settings */)
3485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// The renderer wants to update the current print settings with new
3505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// |job_settings|.
3515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_SYNC_MESSAGE_ROUTED2_1(PrintHostMsg_UpdatePrintSettings,
3525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                           int /* document_cookie */,
3537d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)                           base::DictionaryValue /* job_settings */,
3545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                           PrintMsg_PrintPages_Params /* current_settings */)
3555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// It's the renderer that controls the printing process when it is generated
3575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// by javascript. This step is about showing UI to the user to select the
3585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// final print settings. The output parameter is the same as
3595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// ViewMsg_PrintPages which is executed implicitly.
3605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_SYNC_MESSAGE_ROUTED1_1(PrintHostMsg_ScriptedPrint,
3615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                           PrintHostMsg_ScriptedPrint_Params,
3625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                           PrintMsg_PrintPages_Params
3635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                               /* settings chosen by the user*/)
3645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3653551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#if defined(OS_CHROMEOS) || defined(OS_ANDROID)
3665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Asks the browser to create a temporary file for the renderer to fill
3675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// in resulting NativeMetafile in printing.
3683551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)IPC_SYNC_MESSAGE_CONTROL1_2(PrintHostMsg_AllocateTempFileForPrinting,
3693551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)                            int /* render_view_id */,
3705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                            base::FileDescriptor /* temp file fd */,
3713551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)                            int /* fd in browser*/) // Used only by Chrome OS.
3725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_CONTROL2(PrintHostMsg_TempFileForPrintingWritten,
3735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                     int /* render_view_id */,
3743551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)                     int /* fd in browser */) // Used only by Chrome OS.
3755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
3765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Asks the browser to do print preview.
3782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_ROUTED1(PrintHostMsg_RequestPrintPreview,
3792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    PrintHostMsg_RequestPrintPreview_Params /* params */)
3805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Notify the browser the number of pages in the print preview document.
3825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED1(PrintHostMsg_DidGetPreviewPageCount,
3835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                    PrintHostMsg_DidGetPreviewPageCount_Params /* params */)
3845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Notify the browser of the default page layout according to the currently
3865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// selected printer and page size.
3875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// |printable_area_in_points| Specifies the printable area in points.
3885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// |has_custom_page_size_style| is true when the printing frame has a custom
3895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// page size css otherwise false.
3905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED3(PrintHostMsg_DidGetDefaultPageLayout,
3915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                    printing::PageSizeMargins /* page layout in points */,
3925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                    gfx::Rect /* printable area in points */,
3935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                    bool /* has custom page size style */)
3945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Notify the browser a print preview page has been rendered.
3965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED1(PrintHostMsg_DidPreviewPage,
3975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                    PrintHostMsg_DidPreviewPage_Params /* params */)
3985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Asks the browser whether the print preview has been cancelled.
4005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_SYNC_MESSAGE_ROUTED2_1(PrintHostMsg_CheckForCancel,
4015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                           int32 /* PrintPreviewUI ID */,
4025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                           int /* request id */,
4035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                           bool /* print preview cancelled */)
4045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Sends back to the browser the complete rendered document (non-draft mode,
4065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// used for printing) that was requested by a PrintMsg_PrintPreview message.
4075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// The memory handle in this message is already valid in the browser process.
4085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED1(PrintHostMsg_MetafileReadyForPrinting,
4095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                    PrintHostMsg_DidPreviewDocument_Params /* params */)
4105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Tell the browser printing failed.
4125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED1(PrintHostMsg_PrintingFailed,
4135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                    int /* document cookie */)
4145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Tell the browser print preview failed.
4165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED1(PrintHostMsg_PrintPreviewFailed,
4175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                    int /* document cookie */)
4185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Tell the browser print preview was cancelled.
4205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED1(PrintHostMsg_PrintPreviewCancelled,
4215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                    int /* document cookie */)
4225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Tell the browser print preview found the selected printer has invalid
4245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// settings (which typically caused by disconnected network printer or printer
4255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// driver is bogus).
4265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED1(PrintHostMsg_PrintPreviewInvalidPrinterSettings,
4275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                    int /* document cookie */)
4285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Run a nested message loop in the renderer until print preview for
4305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// window.print() finishes.
43158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)IPC_SYNC_MESSAGE_ROUTED0_0(PrintHostMsg_SetupScriptedPrintPreview)
43258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
43358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// Tell the browser to show the print preview, when the document is sufficiently
43458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// loaded such that the renderer can determine whether it is modifiable or not.
43558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)IPC_MESSAGE_ROUTED1(PrintHostMsg_ShowScriptedPrintPreview,
43658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)                    bool /* is_modifiable */)
4375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Notify the browser that the PDF in the initiator renderer has disabled print
4395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// scaling option.
4405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED0(PrintHostMsg_PrintPreviewScalingDisabled)
441