Commit a68e23e1 authored by vitalybuka's avatar vitalybuka Committed by Commit bot

Replaced Metafile with PdfMetafileSkia in renderer.

All platforms uses PdfMetafileSkia now.

TBR=sgurun@chromium.org

Review URL: https://codereview.chromium.org/559263002

Cr-Commit-Position: refs/heads/master@{#294514}
parent 5e1768a5
......@@ -23,7 +23,6 @@
#include "content/public/renderer/render_thread.h"
#include "content/public/renderer/render_view.h"
#include "net/base/escape.h"
#include "printing/metafile.h"
#include "printing/pdf_metafile_skia.h"
#include "printing/units.h"
#include "skia/ext/vector_platform_device_skia.h"
......@@ -1603,7 +1602,7 @@ bool PrintWebViewHelper::RenderPagesForPrint(blink::WebLocalFrame* frame,
#if defined(OS_POSIX)
bool PrintWebViewHelper::CopyMetafileDataToSharedMem(
Metafile* metafile,
PdfMetafileSkia* metafile,
base::SharedMemoryHandle* shared_mem_handle) {
uint32 buf_size = metafile->GetDataSize();
scoped_ptr<base::SharedMemory> shared_buf(
......@@ -1742,7 +1741,7 @@ bool PrintWebViewHelper::CheckForCancel() {
}
bool PrintWebViewHelper::PreviewPageRendered(int page_number,
Metafile* metafile) {
PdfMetafileSkia* metafile) {
DCHECK_GE(page_number, FIRST_PAGE_INDEX);
// For non-modifiable files, |metafile| should be NULL, so do not bother
......
......@@ -226,7 +226,7 @@ class PrintWebViewHelper
void PrintPageInternal(const PrintMsg_PrintPage_Params& params,
const gfx::Size& canvas_size,
blink::WebFrame* frame,
Metafile* metafile);
PdfMetafileSkia* metafile);
#else
void PrintPageInternal(const PrintMsg_PrintPage_Params& params,
const gfx::Size& canvas_size,
......@@ -243,7 +243,7 @@ class PrintWebViewHelper
int page_number,
blink::WebFrame* frame,
bool is_preview,
Metafile* metafile,
PdfMetafileSkia* metafile,
double* scale_factor,
gfx::Size* page_size_in_dpi,
gfx::Rect* content_area_in_dpi);
......@@ -252,7 +252,7 @@ class PrintWebViewHelper
int page_number,
blink::WebFrame* frame,
bool is_preview,
Metafile* metafile,
PdfMetafileSkia* metafile,
gfx::Size* page_size,
gfx::Rect* content_rect);
#endif // defined(OS_WIN)
......@@ -270,7 +270,7 @@ class PrintWebViewHelper
// Helper methods -----------------------------------------------------------
bool CopyMetafileDataToSharedMem(Metafile* metafile,
bool CopyMetafileDataToSharedMem(PdfMetafileSkia* metafile,
base::SharedMemoryHandle* shared_mem_handle);
// Helper method to get page layout in points and fit to page if needed.
......@@ -328,7 +328,7 @@ class PrintWebViewHelper
// For a valid |page_number| with modifiable content,
// |metafile| is the rendered page. Otherwise |metafile| is NULL.
// Returns true if print preview should continue, false on failure.
bool PreviewPageRendered(int page_number, Metafile* metafile);
bool PreviewPageRendered(int page_number, PdfMetafileSkia* metafile);
// WebView used only to print the selection.
scoped_ptr<PrepareFrameAndViewForPrint> prep_frame_view_;
......
......@@ -10,7 +10,6 @@
#include "base/logging.h"
#include "base/memory/scoped_ptr.h"
#include "content/public/renderer/render_thread.h"
#include "printing/metafile.h"
#include "printing/metafile_skia_wrapper.h"
#include "printing/page_size_margins.h"
#include "printing/pdf_metafile_skia.h"
......@@ -34,8 +33,8 @@ bool PrintWebViewHelper::RenderPreviewPage(
PrintMsg_PrintPage_Params page_params;
page_params.params = print_params;
page_params.page_number = page_number;
scoped_ptr<Metafile> draft_metafile;
Metafile* initial_render_metafile = print_preview_context_.metafile();
scoped_ptr<PdfMetafileSkia> draft_metafile;
PdfMetafileSkia* initial_render_metafile = print_preview_context_.metafile();
if (print_preview_context_.IsModifiable() && is_print_ready_metafile_sent_) {
draft_metafile.reset(new PdfMetafileSkia);
initial_render_metafile = draft_metafile.get();
......@@ -154,7 +153,7 @@ void PrintWebViewHelper::PrintPageInternal(
const PrintMsg_PrintPage_Params& params,
const gfx::Size& canvas_size,
WebFrame* frame,
Metafile* metafile) {
PdfMetafileSkia* metafile) {
PageSizeMargins page_layout_in_points;
double scale_factor = 1.0f;
ComputePageLayoutInPointsForCss(frame, params.page_number, params.params,
......
......@@ -240,13 +240,13 @@ void ReportPrintSettingsStats(const base::DictionaryValue& settings) {
}
// Callback that stores a PDF file on disk.
void PrintToPdfCallback(printing::Metafile* metafile,
void PrintToPdfCallback(const scoped_refptr<base::RefCountedBytes>& data,
const base::FilePath& path,
const base::Closure& pdf_file_saved_closure) {
DCHECK_CURRENTLY_ON(BrowserThread::FILE);
metafile->SaveTo(path);
// |metafile| must be deleted on the UI thread.
BrowserThread::DeleteSoon(BrowserThread::UI, FROM_HERE, metafile);
printing::PdfMetafileSkia metafile;
metafile.InitFromData(static_cast<const void*>(data->front()), data->size());
metafile.SaveTo(path);
if (!pdf_file_saved_closure.is_null())
pdf_file_saved_closure.Run();
}
......@@ -1315,14 +1315,12 @@ void PrintPreviewHandler::PostPrintToPdfTask() {
NOTREACHED() << "Preview data was checked before file dialog.";
return;
}
scoped_ptr<printing::PdfMetafileSkia> metafile(new printing::PdfMetafileSkia);
metafile->InitFromData(static_cast<const void*>(data->front()), data->size());
BrowserThread::PostTask(
BrowserThread::FILE, FROM_HERE,
base::Bind(&PrintToPdfCallback,
metafile.release(),
print_to_pdf_path_,
pdf_file_saved_closure_));
BrowserThread::PostTask(BrowserThread::FILE,
FROM_HERE,
base::Bind(&PrintToPdfCallback,
data,
print_to_pdf_path_,
pdf_file_saved_closure_));
print_to_pdf_path_ = base::FilePath();
ClosePreviewDialog();
}
......
......@@ -26,7 +26,6 @@
#include "content/public/renderer/render_thread.h"
#include "content/public/renderer/render_view.h"
#include "net/base/escape.h"
#include "printing/metafile.h"
#include "printing/pdf_metafile_skia.h"
#include "printing/units.h"
#include "skia/ext/vector_platform_device_skia.h"
......@@ -1594,7 +1593,7 @@ bool PrintWebViewHelper::RenderPagesForPrint(blink::WebLocalFrame* frame,
#if defined(OS_POSIX)
bool PrintWebViewHelper::CopyMetafileDataToSharedMem(
Metafile* metafile,
PdfMetafileSkia* metafile,
base::SharedMemoryHandle* shared_mem_handle) {
uint32 buf_size = metafile->GetDataSize();
scoped_ptr<base::SharedMemory> shared_buf(
......@@ -1707,7 +1706,7 @@ bool PrintWebViewHelper::CheckForCancel() {
}
bool PrintWebViewHelper::PreviewPageRendered(int page_number,
Metafile* metafile) {
PdfMetafileSkia* metafile) {
DCHECK_GE(page_number, FIRST_PAGE_INDEX);
// For non-modifiable files, |metafile| should be NULL, so do not bother
......
......@@ -217,12 +217,12 @@ class PrintWebViewHelper
void PrintPageInternal(const PrintMsg_PrintPage_Params& params,
const gfx::Size& canvas_size,
blink::WebFrame* frame,
Metafile* metafile);
PdfMetafileSkia* metafile);
#elif defined(OS_WIN)
void PrintPageInternal(const PrintMsg_PrintPage_Params& params,
const gfx::Size& canvas_size,
blink::WebFrame* frame,
Metafile* metafile,
PdfMetafileSkia* metafile,
gfx::Size* page_size_in_dpi,
gfx::Rect* content_area_in_dpi);
#else
......@@ -241,7 +241,7 @@ class PrintWebViewHelper
int page_number,
blink::WebFrame* frame,
bool is_preview,
Metafile* metafile,
PdfMetafileSkia* metafile,
gfx::Size* page_size,
gfx::Rect* content_rect);
#endif // defined(OS_MACOSX)
......@@ -259,7 +259,7 @@ class PrintWebViewHelper
// Helper methods -----------------------------------------------------------
bool CopyMetafileDataToSharedMem(Metafile* metafile,
bool CopyMetafileDataToSharedMem(PdfMetafileSkia* metafile,
base::SharedMemoryHandle* shared_mem_handle);
// Helper method to get page layout in points and fit to page if needed.
......@@ -305,7 +305,7 @@ class PrintWebViewHelper
// For a valid |page_number| with modifiable content,
// |metafile| is the rendered page. Otherwise |metafile| is NULL.
// Returns true if print preview should continue, false on failure.
bool PreviewPageRendered(int page_number, Metafile* metafile);
bool PreviewPageRendered(int page_number, PdfMetafileSkia* metafile);
void SetPrintPagesParams(const PrintMsg_PrintPages_Params& settings);
......
......@@ -8,7 +8,6 @@
#include "base/memory/scoped_ptr.h"
#include "chrome/common/print_messages.h"
#include "content/public/renderer/render_thread.h"
#include "printing/metafile.h"
#include "printing/metafile_skia_wrapper.h"
#include "printing/page_size_margins.h"
#include "printing/pdf_metafile_skia.h"
......@@ -32,8 +31,8 @@ bool PrintWebViewHelper::RenderPreviewPage(
PrintMsg_PrintPage_Params page_params;
page_params.params = print_params;
page_params.page_number = page_number;
scoped_ptr<Metafile> draft_metafile;
Metafile* initial_render_metafile = print_preview_context_.metafile();
scoped_ptr<PdfMetafileSkia> draft_metafile;
PdfMetafileSkia* initial_render_metafile = print_preview_context_.metafile();
if (print_preview_context_.IsModifiable() && is_print_ready_metafile_sent_) {
draft_metafile.reset(new PdfMetafileSkia);
initial_render_metafile = draft_metafile.get();
......@@ -152,7 +151,7 @@ void PrintWebViewHelper::PrintPageInternal(
const PrintMsg_PrintPage_Params& params,
const gfx::Size& canvas_size,
WebFrame* frame,
Metafile* metafile) {
PdfMetafileSkia* metafile) {
PageSizeMargins page_layout_in_points;
double scale_factor = 1.0f;
ComputePageLayoutInPointsForCss(frame, params.page_number, params.params,
......
......@@ -10,7 +10,6 @@
#include "base/mac/scoped_nsautorelease_pool.h"
#include "base/metrics/histogram.h"
#include "chrome/common/print_messages.h"
#include "printing/metafile.h"
#include "printing/metafile_skia_wrapper.h"
#include "printing/page_size_margins.h"
#include "skia/ext/platform_device.h"
......@@ -57,8 +56,8 @@ bool PrintWebViewHelper::RenderPreviewPage(
int page_number,
const PrintMsg_Print_Params& print_params) {
PrintMsg_Print_Params printParams = print_params;
scoped_ptr<Metafile> draft_metafile;
Metafile* initial_render_metafile = print_preview_context_.metafile();
scoped_ptr<PdfMetafileSkia> draft_metafile;
PdfMetafileSkia* initial_render_metafile = print_preview_context_.metafile();
bool render_to_draft = print_preview_context_.IsModifiable() &&
is_print_ready_metafile_sent_;
......@@ -94,10 +93,13 @@ bool PrintWebViewHelper::RenderPreviewPage(
return PreviewPageRendered(page_number, draft_metafile.get());
}
void PrintWebViewHelper::RenderPage(
const PrintMsg_Print_Params& params, int page_number, WebFrame* frame,
bool is_preview, Metafile* metafile, gfx::Size* page_size,
gfx::Rect* content_rect) {
void PrintWebViewHelper::RenderPage(const PrintMsg_Print_Params& params,
int page_number,
WebFrame* frame,
bool is_preview,
PdfMetafileSkia* metafile,
gfx::Size* page_size,
gfx::Rect* content_rect) {
double scale_factor = 1.0f;
double webkit_shrink_factor = frame->getPrintPageShrink(page_number);
PageSizeMargins page_layout_in_points;
......
......@@ -9,7 +9,6 @@
#include "base/process/process_handle.h"
#include "chrome/common/print_messages.h"
#include "content/public/renderer/render_thread.h"
#include "printing/metafile.h"
#include "printing/metafile_skia_wrapper.h"
#include "printing/page_size_margins.h"
#include "printing/pdf_metafile_skia.h"
......@@ -29,8 +28,8 @@ bool PrintWebViewHelper::RenderPreviewPage(
PrintMsg_PrintPage_Params page_params;
page_params.params = print_params;
page_params.page_number = page_number;
scoped_ptr<Metafile> draft_metafile;
Metafile* initial_render_metafile = print_preview_context_.metafile();
scoped_ptr<PdfMetafileSkia> draft_metafile;
PdfMetafileSkia* initial_render_metafile = print_preview_context_.metafile();
if (print_preview_context_.IsModifiable() && is_print_ready_metafile_sent_) {
draft_metafile.reset(new PdfMetafileSkia);
initial_render_metafile = draft_metafile.get();
......@@ -149,7 +148,7 @@ void PrintWebViewHelper::PrintPageInternal(
const PrintMsg_PrintPage_Params& params,
const gfx::Size& canvas_size,
WebFrame* frame,
Metafile* metafile,
PdfMetafileSkia* metafile,
gfx::Size* page_size_in_dpi,
gfx::Rect* content_area_in_dpi) {
PageSizeMargins page_layout_in_points;
......@@ -221,7 +220,8 @@ void PrintWebViewHelper::PrintPageInternal(
}
bool PrintWebViewHelper::CopyMetafileDataToSharedMem(
Metafile* metafile, base::SharedMemoryHandle* shared_mem_handle) {
PdfMetafileSkia* metafile,
base::SharedMemoryHandle* shared_mem_handle) {
uint32 buf_size = metafile->GetDataSize();
base::SharedMemory shared_buf;
// Allocate a shared memory buffer to hold the generated metafile data.
......
......@@ -92,8 +92,8 @@
#include "ppapi/shared_impl/var.h"
#include "ppapi/thunk/enter.h"
#include "ppapi/thunk/ppb_buffer_api.h"
#include "printing/metafile.h"
#include "printing/metafile_skia_wrapper.h"
#include "printing/pdf_metafile_skia.h"
#include "printing/units.h"
#include "skia/ext/platform_canvas.h"
#include "skia/ext/platform_device.h"
......@@ -1973,13 +1973,13 @@ bool PepperPluginInstanceImpl::PrintPDFOutput(PP_Resource print_output,
bool ret = false;
#if defined(OS_POSIX) && !defined(OS_ANDROID)
printing::Metafile* metafile =
printing::PdfMetafileSkia* metafile =
printing::MetafileSkiaWrapper::GetMetafileFromCanvas(*canvas);
DCHECK(metafile != NULL);
if (metafile)
ret = metafile->InitFromData(mapper.data(), mapper.size());
#elif defined(OS_WIN)
printing::Metafile* metafile =
printing::PdfMetafileSkia* metafile =
printing::MetafileSkiaWrapper::GetMetafileFromCanvas(*canvas);
if (metafile) {
// We only have a metafile when doing print preview, so we just want to
......
......@@ -20,7 +20,7 @@ const char* kCustomScaleKey = "CrCustomScale";
// static
void MetafileSkiaWrapper::SetMetafileOnCanvas(const SkCanvas& canvas,
Metafile* metafile) {
PdfMetafileSkia* metafile) {
skia::RefPtr<MetafileSkiaWrapper> wrapper;
if (metafile)
wrapper = skia::AdoptRef(new MetafileSkiaWrapper(metafile));
......@@ -30,7 +30,8 @@ void MetafileSkiaWrapper::SetMetafileOnCanvas(const SkCanvas& canvas,
}
// static
Metafile* MetafileSkiaWrapper::GetMetafileFromCanvas(const SkCanvas& canvas) {
PdfMetafileSkia* MetafileSkiaWrapper::GetMetafileFromCanvas(
const SkCanvas& canvas) {
SkMetaData& meta = skia::getMetaData(canvas);
SkRefCnt* value;
if (!meta.findRefCnt(kMetafileKey, &value) || !value)
......@@ -58,7 +59,7 @@ bool MetafileSkiaWrapper::GetCustomScaleOnCanvas(const SkCanvas& canvas,
return true;
}
MetafileSkiaWrapper::MetafileSkiaWrapper(Metafile* metafile)
MetafileSkiaWrapper::MetafileSkiaWrapper(PdfMetafileSkia* metafile)
: metafile_(metafile) {
}
......
......@@ -12,26 +12,27 @@ class SkCanvas;
namespace printing {
class Metafile;
class PdfMetafileSkia;
// A wrapper class with static methods to set and retrieve a Metafile
// A wrapper class with static methods to set and retrieve a PdfMetafileSkia
// on an SkCanvas. The ownership of the metafile is not affected and it
// is the caller's responsibility to ensure that the metafile remains valid
// as long as the canvas.
class PRINTING_EXPORT MetafileSkiaWrapper : public SkRefCnt {
public:
static void SetMetafileOnCanvas(const SkCanvas& canvas, Metafile* metafile);
static void SetMetafileOnCanvas(const SkCanvas& canvas,
PdfMetafileSkia* metafile);
static Metafile* GetMetafileFromCanvas(const SkCanvas& canvas);
static PdfMetafileSkia* GetMetafileFromCanvas(const SkCanvas& canvas);
// Methods to set and retrieve custom scale factor for metafile from canvas.
static void SetCustomScaleOnCanvas(const SkCanvas& canvas, double scale);
static bool GetCustomScaleOnCanvas(const SkCanvas& canvas, double* scale);
private:
explicit MetafileSkiaWrapper(Metafile* metafile);
explicit MetafileSkiaWrapper(PdfMetafileSkia* metafile);
Metafile* metafile_;
PdfMetafileSkia* metafile_;
};
} // namespace printing
......
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