Commit 5292b7f2 authored by Lei Zhang's avatar Lei Zhang Committed by Commit Bot

Simplify PdfCompositorImpl::CompositeSubframe().

Change-Id: Ie1299b65bfb6a6b05e91cd2f8fed55f73f208734
Reviewed-on: https://chromium-review.googlesource.com/1186269Reviewed-by: default avatarWei Li <weili@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/master@{#585563}
parent efface13
......@@ -237,12 +237,7 @@ mojom::PdfCompositor::Status PdfCompositorImpl::CompositeToPdf(
return mojom::PdfCompositor::Status::SUCCESS;
}
sk_sp<SkPicture> PdfCompositorImpl::CompositeSubframe(uint64_t frame_guid) {
// The content of this frame should be available.
auto iter = frame_info_map_.find(frame_guid);
DCHECK(iter != frame_info_map_.end());
std::unique_ptr<FrameInfo>& frame_info = iter->second;
void PdfCompositorImpl::CompositeSubframe(FrameInfo* frame_info) {
frame_info->composited = true;
// Composite subframes first.
......@@ -250,11 +245,10 @@ sk_sp<SkPicture> PdfCompositorImpl::CompositeSubframe(uint64_t frame_guid) {
GetDeserializationContext(frame_info->subframe_content_map);
// Composite the entire frame.
SkMemoryStream stream(iter->second->serialized_content->memory(),
iter->second->serialized_content->mapped_size());
SkMemoryStream stream(frame_info->serialized_content->memory(),
frame_info->serialized_content->mapped_size());
SkDeserialProcs procs = DeserializationProcs(&subframes);
iter->second->content = SkPicture::MakeFromStream(&stream, &procs);
return iter->second->content;
frame_info->content = SkPicture::MakeFromStream(&stream, &procs);
}
PdfCompositorImpl::DeserializationContext
......@@ -268,9 +262,10 @@ PdfCompositorImpl::GetDeserializationContext(
if (iter == frame_info_map_.end())
continue;
subframes[content_id] = iter->second->composited
? iter->second->content
: CompositeSubframe(iter->first);
FrameInfo* frame_info = iter->second.get();
if (!frame_info->composited)
CompositeSubframe(frame_info);
subframes[content_id] = frame_info->content;
}
return subframes;
}
......
......@@ -166,7 +166,7 @@ class PdfCompositorImpl : public mojom::PdfCompositor {
base::ReadOnlySharedMemoryRegion* region);
// Composite the content of a subframe.
sk_sp<SkPicture> CompositeSubframe(uint64_t frame_guid);
void CompositeSubframe(FrameInfo* frame_info);
DeserializationContext GetDeserializationContext(
const ContentToFrameMap& subframe_content_map);
......
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