| Index: printing/pdf_metafile_skia.cc
|
| diff --git a/printing/pdf_metafile_skia.cc b/printing/pdf_metafile_skia.cc
|
| index fa8c129e9d10f75c64d9d95149023365a5169181..6b548afd76b08c940044eb5ab37e40b40b13dada 100644
|
| --- a/printing/pdf_metafile_skia.cc
|
| +++ b/printing/pdf_metafile_skia.cc
|
| @@ -12,9 +12,11 @@
|
| #include "base/files/file.h"
|
| #include "base/memory/ptr_util.h"
|
| #include "base/time/time.h"
|
| +#include "cc/paint/paint_canvas.h"
|
| +#include "cc/paint/paint_record.h"
|
| +#include "cc/paint/paint_recorder.h"
|
| #include "printing/print_settings.h"
|
| #include "third_party/skia/include/core/SkDocument.h"
|
| -#include "third_party/skia/include/core/SkPictureRecorder.h"
|
| #include "third_party/skia/include/core/SkStream.h"
|
| // Note that headers in third_party/skia/src are fragile. This is
|
| // an experimental, fragile, and diagnostic-only document type.
|
| @@ -77,7 +79,7 @@ sk_sp<SkDocument> MakePdfDocument(SkWStream* wStream) {
|
| namespace printing {
|
|
|
| struct Page {
|
| - Page(SkSize s, sk_sp<SkPicture> c) : size_(s), content_(std::move(c)) {}
|
| + Page(SkSize s, sk_sp<cc::PaintRecord> c) : size_(s), content_(std::move(c)) {}
|
| Page(Page&& that) : size_(that.size_), content_(std::move(that.content_)) {}
|
| Page(const Page&) = default;
|
| Page& operator=(const Page&) = default;
|
| @@ -87,17 +89,17 @@ struct Page {
|
| return *this;
|
| }
|
| SkSize size_;
|
| - sk_sp<SkPicture> content_;
|
| + sk_sp<cc::PaintRecord> content_;
|
| };
|
|
|
| struct PdfMetafileSkiaData {
|
| - SkPictureRecorder recorder_; // Current recording
|
| + cc::PaintRecorder recorder_; // Current recording
|
|
|
| std::vector<Page> pages_;
|
| std::unique_ptr<SkStreamAsset> pdf_data_;
|
|
|
| // The scale factor is used because Blink occasionally calls
|
| - // SkCanvas::getTotalMatrix() even though the total matrix is not as
|
| + // PaintCanvas::getTotalMatrix() even though the total matrix is not as
|
| // meaningful for a vector canvas as for a raster canvas.
|
| float scale_factor_;
|
| SkSize size_;
|
| @@ -135,7 +137,7 @@ void PdfMetafileSkia::StartPage(const gfx::Size& page_size,
|
| DCHECK(!data_->recorder_.getRecordingCanvas());
|
|
|
| float inverse_scale = 1.0 / scale_factor;
|
| - SkCanvas* canvas = data_->recorder_.beginRecording(
|
| + cc::PaintCanvas* canvas = data_->recorder_.beginRecording(
|
| inverse_scale * page_size.width(), inverse_scale * page_size.height());
|
| // Recording canvas is owned by the data_->recorder_. No ref() necessary.
|
| if (content_area != gfx::Rect(page_size)) {
|
| @@ -154,7 +156,7 @@ void PdfMetafileSkia::StartPage(const gfx::Size& page_size,
|
| // http://crbug.com/469656
|
| }
|
|
|
| -SkCanvas* PdfMetafileSkia::GetVectorCanvasForNewPage(
|
| +cc::PaintCanvas* PdfMetafileSkia::GetVectorCanvasForNewPage(
|
| const gfx::Size& page_size,
|
| const gfx::Rect& content_area,
|
| const float& scale_factor) {
|
| @@ -166,10 +168,10 @@ bool PdfMetafileSkia::FinishPage() {
|
| if (!data_->recorder_.getRecordingCanvas())
|
| return false;
|
|
|
| - sk_sp<SkPicture> pic = data_->recorder_.finishRecordingAsPicture();
|
| + sk_sp<cc::PaintRecord> pic = data_->recorder_.finishRecordingAsPicture();
|
| if (data_->scale_factor_ != 1.0f) {
|
| - SkCanvas* canvas = data_->recorder_.beginRecording(data_->size_.width(),
|
| - data_->size_.height());
|
| + cc::PaintCanvas* canvas = data_->recorder_.beginRecording(
|
| + data_->size_.width(), data_->size_.height());
|
| canvas->scale(data_->scale_factor_, data_->scale_factor_);
|
| canvas->drawPicture(pic);
|
| pic = data_->recorder_.finishRecordingAsPicture();
|
| @@ -198,7 +200,8 @@ bool PdfMetafileSkia::FinishDocument() {
|
| }
|
|
|
| for (const Page& page : data_->pages_) {
|
| - SkCanvas* canvas = doc->beginPage(page.size_.width(), page.size_.height());
|
| + cc::PaintCanvas* canvas(
|
| + doc->beginPage(page.size_.width(), page.size_.height()));
|
| canvas->drawPicture(page.content_);
|
| doc->endPage();
|
| }
|
| @@ -309,7 +312,7 @@ PdfMetafileSkia::PdfMetafileSkia(SkiaDocumentType type)
|
| std::unique_ptr<PdfMetafileSkia> PdfMetafileSkia::GetMetafileForCurrentPage(
|
| SkiaDocumentType type) {
|
| // If we only ever need the metafile for the last page, should we
|
| - // only keep a handle on one SkPicture?
|
| + // only keep a handle on one PaintRecord?
|
| std::unique_ptr<PdfMetafileSkia> metafile(new PdfMetafileSkia(type));
|
|
|
| if (data_->pages_.size() == 0)
|
|
|