Commit ab94cfee authored by Alan Screen's avatar Alan Screen Committed by Commit Bot

Identify printing metafile context more concisely for pictures

Serialization support of metafiles will soon be expanded to handle
font typefaces.  Clarify the naming of the existing support for pictures
ahead of the addition of contextual support for typefaces.

Bug: 1044996
Change-Id: I4e8f52026276a6a5e5b81f77818b1022d3f24033
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2264619Reviewed-by: default avatarLei Zhang <thestig@chromium.org>
Commit-Queue: Alan Screen <awscreen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#782040}
parent 2adab305
......@@ -358,8 +358,8 @@ mojom::PrintCompositor::Status PrintCompositorImpl::CompositeToPdf(
return mojom::PrintCompositor::Status::kHandleMapError;
}
DeserializationContext subframes =
GetDeserializationContext(subframe_content_map);
PictureDeserializationContext subframes =
GetPictureDeserializationContext(subframe_content_map);
// Read in content and convert it into pdf.
SkMemoryStream stream(shared_mem.memory(), shared_mem.size());
......@@ -418,8 +418,8 @@ void PrintCompositorImpl::CompositeSubframe(FrameInfo* frame_info) {
frame_info->composited = true;
// Composite subframes first.
DeserializationContext subframes =
GetDeserializationContext(frame_info->subframe_content_map);
PictureDeserializationContext subframes =
GetPictureDeserializationContext(frame_info->subframe_content_map);
// Composite the entire frame.
SkMemoryStream stream(frame_info->serialized_content.memory(),
......@@ -428,10 +428,10 @@ void PrintCompositorImpl::CompositeSubframe(FrameInfo* frame_info) {
frame_info->content = SkPicture::MakeFromStream(&stream, &procs);
}
PrintCompositorImpl::DeserializationContext
PrintCompositorImpl::GetDeserializationContext(
PrintCompositorImpl::PictureDeserializationContext
PrintCompositorImpl::GetPictureDeserializationContext(
const ContentToFrameMap& subframe_content_map) {
DeserializationContext subframes;
PictureDeserializationContext subframes;
for (auto& content_info : subframe_content_map) {
uint32_t content_id = content_info.first;
uint64_t frame_guid = content_info.second;
......
......@@ -123,7 +123,8 @@ class PrintCompositorImpl : public mojom::PrintCompositor {
// The map needed during content deserialization. It stores the mapping
// between content id and its actual content.
using DeserializationContext = base::flat_map<uint32_t, sk_sp<SkPicture>>;
using PictureDeserializationContext =
base::flat_map<uint32_t, sk_sp<SkPicture>>;
// Base structure to store a frame's content and its subframe
// content information.
......@@ -218,7 +219,7 @@ class PrintCompositorImpl : public mojom::PrintCompositor {
// Composite the content of a subframe.
void CompositeSubframe(FrameInfo* frame_info);
DeserializationContext GetDeserializationContext(
PictureDeserializationContext GetPictureDeserializationContext(
const ContentToFrameMap& subframe_content_map);
mojo::Receiver<mojom::PrintCompositor> receiver_{this};
......
......@@ -233,7 +233,7 @@ sk_sp<SkPicture> DeserializeOopPicture(const void* data,
}
memcpy(&pic_id, data, sizeof(pic_id));
auto* context = reinterpret_cast<DeserializationContext*>(ctx);
auto* context = reinterpret_cast<PictureDeserializationContext*>(ctx);
auto iter = context->find(pic_id);
if (iter == context->end() || !iter->second) {
// When we don't have the out-of-process picture available, we return
......@@ -244,17 +244,18 @@ sk_sp<SkPicture> DeserializeOopPicture(const void* data,
return iter->second;
}
SkSerialProcs SerializationProcs(SerializationContext* ctx) {
SkSerialProcs SerializationProcs(PictureSerializationContext* picture_ctx) {
SkSerialProcs procs;
procs.fPictureProc = SerializeOopPicture;
procs.fPictureCtx = ctx;
procs.fPictureCtx = picture_ctx;
return procs;
}
SkDeserialProcs DeserializationProcs(DeserializationContext* ctx) {
SkDeserialProcs DeserializationProcs(
PictureDeserializationContext* picture_ctx) {
SkDeserialProcs procs;
procs.fPictureProc = DeserializeOopPicture;
procs.fPictureCtx = ctx;
procs.fPictureCtx = picture_ctx;
return procs;
}
......
......@@ -20,19 +20,21 @@ namespace printing {
using ContentToProxyIdMap = base::flat_map<uint32_t, int>;
// Stores the mapping between a content's unique id and its actual content.
using DeserializationContext = base::flat_map<uint32_t, sk_sp<SkPicture>>;
using PictureDeserializationContext =
base::flat_map<uint32_t, sk_sp<SkPicture>>;
// Stores the mapping between content's unique id and its corresponding frame
// proxy id.
using SerializationContext = ContentToProxyIdMap;
using PictureSerializationContext = ContentToProxyIdMap;
sk_sp<SkDocument> MakePdfDocument(const std::string& creator,
const ui::AXTreeUpdate& accessibility_tree,
SkWStream* stream);
SkSerialProcs SerializationProcs(SerializationContext* ctx);
SkSerialProcs SerializationProcs(PictureSerializationContext* picture_ctx);
SkDeserialProcs DeserializationProcs(DeserializationContext* ctx);
SkDeserialProcs DeserializationProcs(
PictureDeserializationContext* picture_ctx);
} // namespace printing
......
......@@ -53,7 +53,7 @@ TEST(MetafileSkiaTest, TestFrameContent) {
EXPECT_TRUE(picture);
// Get the complete picture by replacing the placeholder.
DeserializationContext subframes;
PictureDeserializationContext subframes;
subframes[content_id] = picture;
SkDeserialProcs procs = DeserializationProcs(&subframes);
sk_sp<SkPicture> pic = SkPicture::MakeFromStream(metafile_stream, &procs);
......
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