Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(249)

Unified Diff: content/renderer/pepper/pepper_plugin_instance_impl.cc

Issue 2512783002: store MetafileSkiaWrapper in plugin instead of canvas (Closed)
Patch Set: doh -- add include to impl file, not header Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/renderer/pepper/pepper_plugin_instance_impl.cc
diff --git a/content/renderer/pepper/pepper_plugin_instance_impl.cc b/content/renderer/pepper/pepper_plugin_instance_impl.cc
index 367fa644a0a51ab6ae18f33ae221eaa7601ac5db..a7b5dca930b2f7dd63835f97833d74ce2e964735 100644
--- a/content/renderer/pepper/pepper_plugin_instance_impl.cc
+++ b/content/renderer/pepper/pepper_plugin_instance_impl.cc
@@ -94,6 +94,7 @@
#include "ppapi/thunk/enter.h"
#include "ppapi/thunk/ppb_buffer_api.h"
#include "printing/features/features.h"
+#include "printing/metafile_skia_wrapper.h"
Lei Zhang 2016/11/18 02:25:53 BTW, this is already on line 135.
#include "skia/ext/platform_canvas.h"
#include "third_party/WebKit/public/platform/URLConversion.h"
#include "third_party/WebKit/public/platform/WebCursorInfo.h"
@@ -1798,7 +1799,7 @@ int PepperPluginInstanceImpl::PrintBegin(const WebPrintParams& print_params) {
if (!num_pages)
return 0;
current_print_settings_ = print_settings;
- canvas_ = nullptr;
+ metafile_wrapper_.reset();
bbudge 2016/11/17 22:37:00 Would a DCHECK(!metafile_wrapper_) make sense here
ranges_.clear();
return num_pages;
}
@@ -1810,16 +1811,18 @@ void PepperPluginInstanceImpl::PrintPage(int page_number,
PP_PrintPageNumberRange_Dev page_range;
page_range.first_page_number = page_range.last_page_number = page_number;
// The canvas only has a metafile on it for print preview.
- bool save_for_later =
- (printing::MetafileSkiaWrapper::GetMetafileFromCanvas(*canvas) != NULL);
+ sk_sp<printing::MetafileSkiaWrapper> wrapper =
+ printing::MetafileSkiaWrapper::RefFromCanvas(*canvas);
+ bool save_for_later = wrapper && wrapper->getMetafile();
#if defined(OS_MACOSX)
save_for_later = save_for_later && skia::IsPreviewMetafile(*canvas);
#endif // defined(OS_MACOSX)
+
if (save_for_later) {
ranges_.push_back(page_range);
- canvas_ = canvas;
+ metafile_wrapper_ = wrapper;
} else {
- PrintPageHelper(&page_range, 1, canvas);
+ PrintPageHelper(&page_range, 1, wrapper.get());
}
#endif
}
@@ -1827,7 +1830,7 @@ void PepperPluginInstanceImpl::PrintPage(int page_number,
void PepperPluginInstanceImpl::PrintPageHelper(
PP_PrintPageNumberRange_Dev* page_ranges,
int num_ranges,
- blink::WebCanvas* canvas) {
+ printing::MetafileSkiaWrapper* wrapper) {
// Keep a reference on the stack. See NOTE above.
scoped_refptr<PepperPluginInstanceImpl> ref(this);
DCHECK(plugin_print_interface_);
@@ -1839,7 +1842,7 @@ void PepperPluginInstanceImpl::PrintPageHelper(
return;
if (current_print_settings_.format == PP_PRINTOUTPUTFORMAT_PDF)
- PrintPDFOutput(print_output, canvas);
+ PrintPDFOutput(print_output, wrapper);
// Now we need to release the print output resource.
PluginModule::GetCore()->ReleaseResource(print_output);
@@ -1849,8 +1852,9 @@ void PepperPluginInstanceImpl::PrintEnd() {
// Keep a reference on the stack. See NOTE above.
scoped_refptr<PepperPluginInstanceImpl> ref(this);
if (!ranges_.empty())
Lei Zhang 2016/11/18 01:53:37 nit: needs curly braces now.
- PrintPageHelper(&(ranges_.front()), ranges_.size(), canvas_);
- canvas_ = nullptr;
+ PrintPageHelper(&(ranges_.front()), ranges_.size(),
+ metafile_wrapper_.get());
+ metafile_wrapper_.reset();
ranges_.clear();
DCHECK(plugin_print_interface_);
@@ -2017,8 +2021,9 @@ bool PepperPluginInstanceImpl::IsViewAccelerated() {
return view->isAcceleratedCompositingActive();
}
-bool PepperPluginInstanceImpl::PrintPDFOutput(PP_Resource print_output,
- blink::WebCanvas* canvas) {
+bool PepperPluginInstanceImpl::PrintPDFOutput(
+ PP_Resource print_output,
+ printing::MetafileSkiaWrapper* wrapper) {
#if BUILDFLAG(ENABLE_PRINTING)
ppapi::thunk::EnterResourceNoLock<PPB_Buffer_API> enter(print_output, true);
if (enter.failed())
@@ -2031,7 +2036,7 @@ bool PepperPluginInstanceImpl::PrintPDFOutput(PP_Resource print_output,
}
printing::PdfMetafileSkia* metafile =
- printing::MetafileSkiaWrapper::GetMetafileFromCanvas(*canvas);
+ wrapper ? wrapper->getMetafile() : nullptr;
if (metafile)
bbudge 2016/11/17 22:37:00 How about: if (wrapper) { printing::PdfMetafileS
return metafile->InitFromData(mapper.data(), mapper.size());

Powered by Google App Engine
This is Rietveld 408576698