Commit cc73c243 authored by Julie Jeongeun Kim's avatar Julie Jeongeun Kim Committed by Commit Bot

[printing] Move PrintHostMsg_DidPrintContent_Params to print.mojom

This CL moves printing::PrintHostMsg_DidPrintContent_Params to
print.mojom to pass it to Mojo interfaces. This is a precursor
CL to mojofy the preview UI messages.

Bug: 1008939
Change-Id: I35449ebcf5ed89c9d1282997b6b10b2e674c78cb
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2212110Reviewed-by: default avatarKinuko Yasuda <kinuko@chromium.org>
Reviewed-by: default avatarLei Zhang <thestig@chromium.org>
Reviewed-by: default avatarBo <boliu@chromium.org>
Reviewed-by: default avatarDave Tapuska <dtapuska@chromium.org>
Commit-Queue: Dave Tapuska <dtapuska@chromium.org>
Cr-Commit-Position: refs/heads/master@{#772701}
parent 8d2335f2
......@@ -15,6 +15,7 @@
#include "base/task/task_traits.h"
#include "base/task/thread_pool.h"
#include "components/printing/browser/print_manager_utils.h"
#include "components/printing/common/print.mojom.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/render_frame_host.h"
......@@ -109,7 +110,7 @@ void AwPrintManager::OnDidPrintDocument(
if (params.document_cookie != cookie_)
return;
const PrintHostMsg_DidPrintContent_Params& content = params.content;
const printing::mojom::DidPrintContentParams& content = params.content;
if (!content.metafile_data_region.IsValid()) {
NOTREACHED() << "invalid memory handle";
web_contents()->Stop();
......
......@@ -163,7 +163,7 @@ class TestPrintFrameContentMsgFilter : public content::BrowserMessageFilter {
~TestPrintFrameContentMsgFilter() override = default;
void CheckMessage(int document_cookie,
const PrintHostMsg_DidPrintContent_Params& param) {
const mojom::DidPrintContentParams& param) {
EXPECT_EQ(document_cookie, document_cookie_);
ASSERT_TRUE(param.metafile_data_region.IsValid());
EXPECT_GT(param.metafile_data_region.GetSize(), 0U);
......@@ -193,7 +193,7 @@ class KillPrintFrameContentMsgFilter : public content::BrowserMessageFilter {
~KillPrintFrameContentMsgFilter() override = default;
void KillRenderProcess(int document_cookie,
const PrintHostMsg_DidPrintContent_Params& param) {
const mojom::DidPrintContentParams& param) {
rph_->Shutdown(0);
}
......
......@@ -176,7 +176,7 @@ void PrintPreviewMessageHandler::OnDidPreviewPage(
const PrintHostMsg_DidPreviewPage_Params& params,
const PrintHostMsg_PreviewIds& ids) {
int page_number = params.page_number;
const PrintHostMsg_DidPrintContent_Params& content = params.content;
const mojom::DidPrintContentParams& content = params.content;
if (page_number < FIRST_PAGE_INDEX || !content.metafile_data_region.IsValid())
return;
......
......@@ -35,6 +35,7 @@
#include "components/prefs/pref_service.h"
#include "components/printing/browser/print_composite_client.h"
#include "components/printing/browser/print_manager_utils.h"
#include "components/printing/common/print.mojom.h"
#include "components/printing/common/print_messages.h"
#include "components/services/print_compositor/public/cpp/print_service_mojo_types.h"
#include "content/public/browser/browser_task_traits.h"
......@@ -322,7 +323,7 @@ void PrintViewManagerBase::OnDidPrintDocument(
if (!PrintJobHasDocument(params.document_cookie))
return;
const PrintHostMsg_DidPrintContent_Params& content = params.content;
const mojom::DidPrintContentParams& content = params.content;
if (!content.metafile_data_region.IsValid()) {
NOTREACHED() << "invalid memory handle";
web_contents()->Stop();
......
......@@ -111,7 +111,7 @@ void PrintCompositeClient::RenderFrameDeleted(
void PrintCompositeClient::OnDidPrintFrameContent(
content::RenderFrameHost* render_frame_host,
int document_cookie,
const PrintHostMsg_DidPrintContent_Params& params) {
const mojom::DidPrintContentParams& params) {
auto* outer_contents = web_contents()->GetOuterWebContents();
if (outer_contents) {
// When the printed content belongs to an extension or app page, the print
......@@ -189,7 +189,7 @@ void PrintCompositeClient::PrintCrossProcessSubframe(
void PrintCompositeClient::DoCompositePageToPdf(
int document_cookie,
content::RenderFrameHost* render_frame_host,
const PrintHostMsg_DidPrintContent_Params& content,
const mojom::DidPrintContentParams& content,
mojom::PrintCompositor::CompositePageToPdfCallback callback) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
......@@ -237,7 +237,7 @@ void PrintCompositeClient::DoCompleteDocumentToPdf(
void PrintCompositeClient::DoCompositeDocumentToPdf(
int document_cookie,
content::RenderFrameHost* render_frame_host,
const PrintHostMsg_DidPrintContent_Params& content,
const mojom::DidPrintContentParams& content,
mojom::PrintCompositor::CompositeDocumentToPdfCallback callback) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
DCHECK(!GetIsDocumentConcurrentlyComposited(document_cookie));
......
......@@ -19,8 +19,6 @@
#include "printing/buildflags/buildflags.h"
#include "ui/accessibility/ax_tree_update_forward.h"
struct PrintHostMsg_DidPrintContent_Params;
namespace printing {
// Class to manage print requests and their communication with print compositor
......@@ -40,10 +38,9 @@ class PrintCompositeClient
void RenderFrameDeleted(content::RenderFrameHost* render_frame_host) override;
// IPC message handler.
void OnDidPrintFrameContent(
content::RenderFrameHost* render_frame_host,
int document_cookie,
const PrintHostMsg_DidPrintContent_Params& params);
void OnDidPrintFrameContent(content::RenderFrameHost* render_frame_host,
int document_cookie,
const mojom::DidPrintContentParams& params);
#if BUILDFLAG(ENABLE_TAGGED_PDF)
void OnAccessibilityTree(int document_cookie,
const ui::AXTreeUpdate& accessibility_tree);
......@@ -62,7 +59,7 @@ class PrintCompositeClient
void DoCompositePageToPdf(
int cookie,
content::RenderFrameHost* render_frame_host,
const PrintHostMsg_DidPrintContent_Params& content,
const mojom::DidPrintContentParams& content,
mojom::PrintCompositor::CompositePageToPdfCallback callback);
// Notifies compositor to collect individual pages into a document
......@@ -84,7 +81,7 @@ class PrintCompositeClient
void DoCompositeDocumentToPdf(
int cookie,
content::RenderFrameHost* render_frame_host,
const PrintHostMsg_DidPrintContent_Params& content,
const mojom::DidPrintContentParams& content,
mojom::PrintCompositor::CompositeDocumentToPdfCallback callback);
// Get the concurrent composition status for a document. Identifies if the
......
......@@ -29,6 +29,17 @@ struct OptionsFromDocumentParams {
DuplexMode duplex;
};
// Holds the printed content information.
// The printed content is in shared memory, and passed as a region.
// A map on out-of-process subframe contents is also included so the printed
// content can be composited as needed.
struct DidPrintContentParams {
// A shared memory region for the metafile data.
mojo_base.mojom.ReadOnlySharedMemoryRegion metafile_data_region;
// Content id to render frame proxy id mapping for out-of-process subframes.
map<uint32, int32> subframe_content_info;
};
// Parameters to describe the to-be-rendered preview document.
struct DidStartPreviewParams {
// Total page count for the rendered preview. (Not the number of pages the
......
......@@ -236,13 +236,13 @@ IPC_STRUCT_TRAITS_END()
// The printed content is in shared memory, and passed as a region.
// A map on out-of-process subframe contents is also included so the printed
// content can be composited as needed.
IPC_STRUCT_BEGIN(PrintHostMsg_DidPrintContent_Params)
IPC_STRUCT_TRAITS_BEGIN(printing::mojom::DidPrintContentParams)
// A shared memory region for the metafile data.
IPC_STRUCT_MEMBER(base::ReadOnlySharedMemoryRegion, metafile_data_region)
IPC_STRUCT_TRAITS_MEMBER(metafile_data_region)
// Content id to render frame proxy id mapping for out-of-process subframes.
IPC_STRUCT_MEMBER(printing::ContentToProxyIdMap, subframe_content_info)
IPC_STRUCT_END()
IPC_STRUCT_TRAITS_MEMBER(subframe_content_info)
IPC_STRUCT_TRAITS_END()
#if BUILDFLAG(ENABLE_PRINT_PREVIEW)
// Parameters to describe the to-be-rendered preview document.
......@@ -267,7 +267,7 @@ IPC_STRUCT_TRAITS_END()
// Parameters to describe a rendered preview page.
IPC_STRUCT_BEGIN(PrintHostMsg_DidPreviewPage_Params)
// Page's content including metafile data and subframe info.
IPC_STRUCT_MEMBER(PrintHostMsg_DidPrintContent_Params, content)
IPC_STRUCT_MEMBER(printing::mojom::DidPrintContentParams, content)
// |page_number| is zero-based and should not be negative.
IPC_STRUCT_MEMBER(int, page_number)
......@@ -279,7 +279,7 @@ IPC_STRUCT_END()
// Parameters to describe the final rendered preview document.
IPC_STRUCT_BEGIN(PrintHostMsg_DidPreviewDocument_Params)
// Document's content including metafile data and subframe info.
IPC_STRUCT_MEMBER(PrintHostMsg_DidPrintContent_Params, content)
IPC_STRUCT_MEMBER(printing::mojom::DidPrintContentParams, content)
// Cookie for the document to ensure correctness.
IPC_STRUCT_MEMBER(int, document_cookie)
......@@ -292,7 +292,7 @@ IPC_STRUCT_END()
// Parameters to describe a rendered page.
IPC_STRUCT_BEGIN(PrintHostMsg_DidPrintDocument_Params)
// Document's content including metafile data and subframe info.
IPC_STRUCT_MEMBER(PrintHostMsg_DidPrintContent_Params, content)
IPC_STRUCT_MEMBER(printing::mojom::DidPrintContentParams, content)
// Cookie for the document to ensure correctness.
IPC_STRUCT_MEMBER(int, document_cookie)
......@@ -348,7 +348,7 @@ IPC_SYNC_MESSAGE_ROUTED1_1(PrintHostMsg_DidPrintDocument,
// requested by a PrintMsg_PrintFrameContent message.
IPC_MESSAGE_ROUTED2(PrintHostMsg_DidPrintFrameContent,
int /* rendered document cookie */,
PrintHostMsg_DidPrintContent_Params)
printing::mojom::DidPrintContentParams)
#if BUILDFLAG(ENABLE_TAGGED_PDF)
// Sends the accessibility tree corresponding to a document being
......
......@@ -590,9 +590,8 @@ PrintMsg_Print_Params CalculatePrintParamsForCss(
return result_params;
}
bool CopyMetafileDataToReadOnlySharedMem(
const MetafileSkia& metafile,
PrintHostMsg_DidPrintContent_Params* params) {
bool CopyMetafileDataToReadOnlySharedMem(const MetafileSkia& metafile,
mojom::DidPrintContentParams* params) {
uint32_t buf_size = metafile.GetDataSize();
if (buf_size == 0)
return false;
......@@ -1380,7 +1379,7 @@ void PrintRenderFrameHelper::PrintFrameContent(
metafile.FinishFrameContent();
// Send the printed result back.
PrintHostMsg_DidPrintContent_Params printed_frame_params;
mojom::DidPrintContentParams printed_frame_params;
if (!CopyMetafileDataToReadOnlySharedMem(metafile, &printed_frame_params)) {
DLOG(ERROR) << "CopyMetafileDataToSharedMem failed";
return;
......
......@@ -5,7 +5,6 @@
#ifndef PRINTING_COMMON_METAFILE_UTILS_H_
#define PRINTING_COMMON_METAFILE_UTILS_H_
#include <map>
#include <string>
#include "base/containers/flat_map.h"
......@@ -18,7 +17,7 @@
namespace printing {
using ContentToProxyIdMap = std::map<uint32_t, int>;
using ContentToProxyIdMap = base::flat_map<uint32_t, int>;
enum class SkiaDocumentType {
PDF,
......
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