Commit 924bd5dd authored by Julie Jeongeun Kim's avatar Julie Jeongeun Kim Committed by Commit Bot

[printing] Move PrintHostMsg_DidPrintDocument_Params to print.mojom

This CL moves printing::PrintHostMsg_DidPrintDocument_Params to
print.mojom to pass it to Mojo interfaces. This is a precursor CL to
mojofy PrintHostMsg_DidPrintDocument.

Bug: 1008939
Change-Id: I953c8066e9acfc9e3802a7a28f491c44059ac171
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2341028
Commit-Queue: Julie Kim <jkim@igalia.com>
Reviewed-by: default avatarLei Zhang <thestig@chromium.org>
Reviewed-by: default avatarDave Tapuska <dtapuska@chromium.org>
Reviewed-by: default avatarKinuko Yasuda <kinuko@chromium.org>
Reviewed-by: default avatarEric Seckler <eseckler@chromium.org>
Reviewed-by: default avatarBo <boliu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#797577}
parent 224ef8e3
......@@ -105,12 +105,12 @@ void AwPrintManager::OnScriptedPrint(
void AwPrintManager::OnDidPrintDocument(
content::RenderFrameHost* render_frame_host,
const PrintHostMsg_DidPrintDocument_Params& params,
const printing::mojom::DidPrintDocumentParams& params,
std::unique_ptr<DelayedFrameDispatchHelper> helper) {
if (params.document_cookie != cookie_)
return;
const printing::mojom::DidPrintContentParams& content = params.content;
const printing::mojom::DidPrintContentParams& content = *params.content;
if (!content.metafile_data_region.IsValid()) {
NOTREACHED() << "invalid memory handle";
web_contents()->Stop();
......
......@@ -9,6 +9,7 @@
#include "base/macros.h"
#include "components/printing/browser/print_manager.h"
#include "components/printing/common/print.mojom-forward.h"
#include "components/printing/common/print_messages.h"
#include "content/public/browser/web_contents_user_data.h"
#include "printing/print_settings.h"
......@@ -45,7 +46,7 @@ class AwPrintManager : public printing::PrintManager,
// printing::PrintManager:
void OnDidPrintDocument(
content::RenderFrameHost* render_frame_host,
const PrintHostMsg_DidPrintDocument_Params& params,
const printing::mojom::DidPrintDocumentParams& params,
std::unique_ptr<DelayedFrameDispatchHelper> helper) override;
void OnGetDefaultPrintSettings(content::RenderFrameHost* render_frame_host,
IPC::Message* reply_msg) override;
......
......@@ -318,12 +318,12 @@ void PrintViewManagerBase::OnComposePdfDone(
void PrintViewManagerBase::OnDidPrintDocument(
content::RenderFrameHost* render_frame_host,
const PrintHostMsg_DidPrintDocument_Params& params,
const mojom::DidPrintDocumentParams& params,
std::unique_ptr<DelayedFrameDispatchHelper> helper) {
if (!PrintJobHasDocument(params.document_cookie))
return;
const mojom::DidPrintContentParams& content = params.content;
const mojom::DidPrintContentParams& content = *params.content;
if (!content.metafile_data_region.IsValid()) {
NOTREACHED() << "invalid memory handle";
web_contents()->Stop();
......
......@@ -17,6 +17,7 @@
#include "chrome/browser/ui/webui/print_preview/printer_handler.h"
#include "components/prefs/pref_member.h"
#include "components/printing/browser/print_manager.h"
#include "components/printing/common/print.mojom-forward.h"
#include "components/services/print_compositor/public/mojom/print_compositor.mojom.h"
#include "content/public/browser/notification_observer.h"
#include "content/public/browser/notification_registrar.h"
......@@ -116,7 +117,7 @@ class PrintViewManagerBase : public content::NotificationObserver,
void OnDidGetPrintedPagesCount(int cookie, int number_pages) override;
void OnDidPrintDocument(
content::RenderFrameHost* render_frame_host,
const PrintHostMsg_DidPrintDocument_Params& params,
const mojom::DidPrintDocumentParams& params,
std::unique_ptr<DelayedFrameDispatchHelper> helper) override;
void OnGetDefaultPrintSettings(content::RenderFrameHost* render_frame_host,
IPC::Message* reply_msg) override;
......
......@@ -27,7 +27,7 @@ struct PrintManager::FrameDispatchHelper {
manager->OnScriptedPrint(render_frame_host, scripted_params, reply_msg);
}
void OnDidPrintDocument(const PrintHostMsg_DidPrintDocument_Params& params,
void OnDidPrintDocument(const mojom::DidPrintDocumentParams& params,
IPC::Message* reply_msg) {
// If DidPrintDocument message was received then need to transition from
// a variable allocated on stack (which has efficient memory management
......
......@@ -22,7 +22,6 @@ namespace IPC {
class Message;
}
struct PrintHostMsg_DidPrintDocument_Params;
struct PrintHostMsg_ScriptedPrint_Params;
namespace printing {
......@@ -89,7 +88,7 @@ class PrintManager : public content::WebContentsObserver {
virtual void OnDidGetPrintedPagesCount(int cookie, int number_pages);
virtual void OnDidPrintDocument(
content::RenderFrameHost* render_frame_host,
const PrintHostMsg_DidPrintDocument_Params& params,
const mojom::DidPrintDocumentParams& params,
std::unique_ptr<DelayedFrameDispatchHelper> helper) = 0;
virtual void OnGetDefaultPrintSettings(
content::RenderFrameHost* render_frame_host,
......
......@@ -139,6 +139,20 @@ struct PrintParams{
uint32 pages_per_sheet = 1;
};
// Parameters to describe a rendered page.
struct DidPrintDocumentParams {
// Document's content including metafile data and subframe info.
DidPrintContentParams content;
// Cookie for the document to ensure correctness.
int32 document_cookie;
// The size of the page the page author specified.
gfx.mojom.Size page_size;
// The printable area the page author specified.
gfx.mojom.Rect content_area;
// The physical offsets of the printer in DPI. Used for PS printing.
gfx.mojom.Point physical_offsets;
};
// Interface implemented by a class that desires to render print documents for
// Chrome print preview.
interface PrintRenderer {
......
......@@ -258,22 +258,22 @@ IPC_STRUCT_TRAITS_END()
#endif // BUILDFLAG(ENABLE_PRINT_PREVIEW)
// Parameters to describe a rendered page.
IPC_STRUCT_BEGIN(PrintHostMsg_DidPrintDocument_Params)
IPC_STRUCT_TRAITS_BEGIN(printing::mojom::DidPrintDocumentParams)
// Document's content including metafile data and subframe info.
IPC_STRUCT_MEMBER(printing::mojom::DidPrintContentParams, content)
IPC_STRUCT_TRAITS_MEMBER(content)
// Cookie for the document to ensure correctness.
IPC_STRUCT_MEMBER(int, document_cookie)
IPC_STRUCT_TRAITS_MEMBER(document_cookie)
// The size of the page the page author specified.
IPC_STRUCT_MEMBER(gfx::Size, page_size)
IPC_STRUCT_TRAITS_MEMBER(page_size)
// The printable area the page author specified.
IPC_STRUCT_MEMBER(gfx::Rect, content_area)
IPC_STRUCT_TRAITS_MEMBER(content_area)
// The physical offsets of the printer in DPI. Used for PS printing.
IPC_STRUCT_MEMBER(gfx::Point, physical_offsets)
IPC_STRUCT_END()
IPC_STRUCT_TRAITS_MEMBER(physical_offsets)
IPC_STRUCT_TRAITS_END()
// TODO(dgn) Rename *ScriptedPrint messages because they are not called only
// from scripts.
......@@ -308,7 +308,7 @@ IPC_MESSAGE_ROUTED0(PrintHostMsg_DidShowPrintDialog)
// this message is already valid in the browser process. Waits until the
// document is complete ready before replying.
IPC_SYNC_MESSAGE_ROUTED1_1(PrintHostMsg_DidPrintDocument,
PrintHostMsg_DidPrintDocument_Params
printing::mojom::DidPrintDocumentParams
/* page content */,
bool /* completed */)
......
......@@ -1968,7 +1968,8 @@ bool PrintRenderFrameHelper::PrintPagesNative(blink::WebLocalFrame* frame,
snapshotter->Snapshot(ui::AXMode::kPDF, 0, &metafile.accessibility_tree());
}
PrintHostMsg_DidPrintDocument_Params page_params;
mojom::DidPrintDocumentParams page_params;
page_params.content = mojom::DidPrintContentParams::New();
gfx::Size* page_size_in_dpi;
gfx::Rect* content_area_in_dpi;
#if defined(OS_APPLE) || defined(OS_WIN)
......@@ -1992,7 +1993,8 @@ bool PrintRenderFrameHelper::PrintPagesNative(blink::WebLocalFrame* frame,
metafile.FinishDocument();
if (!CopyMetafileDataToReadOnlySharedMem(metafile, &page_params.content)) {
if (!CopyMetafileDataToReadOnlySharedMem(metafile,
page_params.content.get())) {
return false;
}
......
......@@ -201,7 +201,7 @@ void MockPrinter::SetPrintedPagesCount(int cookie, int number_pages) {
}
void MockPrinter::PrintPage(
const PrintHostMsg_DidPrintDocument_Params& params) {
const printing::mojom::DidPrintDocumentParams& params) {
// Verify the input parameter and update the printer status so that the
// RenderViewTest class can verify the this function finishes without errors.
EXPECT_EQ(PRINTER_PRINTING, printer_status_);
......@@ -209,9 +209,9 @@ void MockPrinter::PrintPage(
#if defined(OS_WIN) || defined(OS_APPLE)
// Load the data sent from a RenderView object and create a PageData object.
ASSERT_TRUE(params.content.metafile_data_region.IsValid());
ASSERT_TRUE(params.content->metafile_data_region.IsValid());
base::ReadOnlySharedMemoryMapping mapping =
params.content.metafile_data_region.Map();
params.content->metafile_data_region.Map();
ASSERT_TRUE(mapping.IsValid());
EXPECT_GT(mapping.size(), 0U);
......
......@@ -21,7 +21,6 @@
#include "ui/gfx/geometry/size.h"
struct PrintMsg_PrintPages_Params;
struct PrintHostMsg_DidPrintDocument_Params;
// A class which represents an output page used in the MockPrinter class.
// The MockPrinter class stores output pages in a vector, so, this class
......@@ -89,7 +88,7 @@ class MockPrinter {
const gfx::Size& page_size,
int scale_factor);
void SetPrintedPagesCount(int cookie, int number_pages);
void PrintPage(const PrintHostMsg_DidPrintDocument_Params& params);
void PrintPage(const printing::mojom::DidPrintDocumentParams& params);
// Functions that retrieve the output pages.
Status GetPrinterStatus() const { return printer_status_; }
......
......@@ -90,7 +90,7 @@ void PrintMockRenderThread::OnDidGetPrintedPagesCount(int cookie,
}
void PrintMockRenderThread::OnDidPrintDocument(
const PrintHostMsg_DidPrintDocument_Params& params,
const printing::mojom::DidPrintDocumentParams& params,
IPC::Message* reply_msg) {
printer_->PrintPage(params);
PrintHostMsg_DidPrintDocument::WriteReplyParams(reply_msg, true);
......
......@@ -25,7 +25,6 @@ class DictionaryValue;
}
class MockPrinter;
struct PrintHostMsg_DidPrintDocument_Params;
struct PrintHostMsg_PreviewIds;
struct PrintHostMsg_ScriptedPrint_Params;
struct PrintMsg_PrintPages_Params;
......@@ -76,7 +75,7 @@ class PrintMockRenderThread : public content::MockRenderThread {
PrintMsg_PrintPages_Params* settings);
void OnDidGetPrintedPagesCount(int cookie, int number_pages);
void OnDidPrintDocument(const PrintHostMsg_DidPrintDocument_Params& params,
void OnDidPrintDocument(const printing::mojom::DidPrintDocumentParams& params,
IPC::Message* reply_msg);
#if BUILDFLAG(ENABLE_PRINT_PREVIEW)
void OnDidStartPreview(const printing::mojom::DidStartPreviewParams& params,
......
......@@ -14,6 +14,7 @@
#include "base/strings/string_split.h"
#include "base/strings/utf_string_conversions.h"
#include "components/printing/browser/print_manager_utils.h"
#include "components/printing/common/print.mojom.h"
#include "components/printing/common/print_messages.h"
#include "content/public/browser/render_view_host.h"
#include "printing/print_job_constants.h"
......@@ -267,9 +268,9 @@ void HeadlessPrintManager::OnPrintingFailed(int cookie) {
void HeadlessPrintManager::OnDidPrintDocument(
content::RenderFrameHost* render_frame_host,
const PrintHostMsg_DidPrintDocument_Params& params,
const printing::mojom::DidPrintDocumentParams& params,
std::unique_ptr<DelayedFrameDispatchHelper> helper) {
auto& content = params.content;
auto& content = *params.content;
if (!content.metafile_data_region.IsValid()) {
ReleaseJob(INVALID_MEMORY_HANDLE);
return;
......
......@@ -11,12 +11,12 @@
#include "base/memory/ref_counted_memory.h"
#include "components/printing/browser/print_manager.h"
#include "components/printing/common/print.mojom-forward.h"
#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/web_contents_user_data.h"
#include "headless/public/headless_export.h"
#include "printing/print_settings.h"
struct PrintHostMsg_DidPrintDocument_Params;
struct PrintHostMsg_ScriptedPrint_Params;
struct PrintMsg_PrintPages_Params;
......@@ -100,7 +100,7 @@ class HeadlessPrintManager
// printing::PrintManager:
void OnDidPrintDocument(
content::RenderFrameHost* render_frame_host,
const PrintHostMsg_DidPrintDocument_Params& params,
const printing::mojom::DidPrintDocumentParams& params,
std::unique_ptr<DelayedFrameDispatchHelper> helper) override;
void OnGetDefaultPrintSettings(content::RenderFrameHost* render_frame_host,
IPC::Message* reply_msg) override;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment