Index: android_webview/native/aw_pdf_exporter.cc |
diff --git a/android_webview/native/aw_pdf_exporter.cc b/android_webview/native/aw_pdf_exporter.cc |
index da477ce684977d0b06d08bf1d174bcf7c1b049c5..48fa9f991fbf6d830ff74121f6a168b39de43f31 100644 |
--- a/android_webview/native/aw_pdf_exporter.cc |
+++ b/android_webview/native/aw_pdf_exporter.cc |
@@ -37,10 +37,11 @@ void AwPdfExporter::ExportToPdf(JNIEnv* env, |
int fd, |
jobject cancel_signal) { |
DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
- CreatePdfSettings(env, obj); |
+ printing::PrintSettings print_settings; |
+ InitPdfSettings(env, obj, print_settings); |
AwPrintManager* print_manager = |
AwPrintManager::CreateForWebContents( |
- web_contents_, *print_settings_, base::FileDescriptor(fd, false), |
+ web_contents_, print_settings, base::FileDescriptor(fd, false), |
base::Bind(&AwPdfExporter::DidExportPdf, base::Unretained(this))); |
if (!print_manager->PrintNow()) |
@@ -54,8 +55,9 @@ int MilsToDots(int val, int dpi) { |
} |
} // anonymous namespace |
-void AwPdfExporter::CreatePdfSettings(JNIEnv* env, jobject obj) { |
- print_settings_.reset(new printing::PrintSettings); |
+void AwPdfExporter::InitPdfSettings(JNIEnv* env, |
+ jobject obj, |
+ printing::PrintSettings& settings) { |
int dpi = Java_AwPdfExporter_getDpi(env, obj); |
int width = Java_AwPdfExporter_getPageWidth(env, obj); |
int height = Java_AwPdfExporter_getPageHeight(env, obj); |
@@ -68,12 +70,12 @@ void AwPdfExporter::CreatePdfSettings(JNIEnv* env, jobject obj) { |
// Assume full page is printable for now. |
printable_area_device_units.SetRect(0, 0, width_in_dots, height_in_dots); |
- print_settings_->set_dpi(dpi); |
+ settings.set_dpi(dpi); |
// TODO(sgurun) verify that the value for newly added parameter for |
// (i.e. landscape_needs_flip) is correct. |
- print_settings_->SetPrinterPrintableArea(physical_size_device_units, |
- printable_area_device_units, |
- true); |
+ settings.SetPrinterPrintableArea(physical_size_device_units, |
+ printable_area_device_units, |
+ true); |
printing::PageMargins margins; |
margins.left = |
@@ -84,8 +86,8 @@ void AwPdfExporter::CreatePdfSettings(JNIEnv* env, jobject obj) { |
MilsToDots(Java_AwPdfExporter_getTopMargin(env, obj), dpi); |
margins.bottom = |
MilsToDots(Java_AwPdfExporter_getBottomMargin(env, obj), dpi); |
- print_settings_->SetCustomMargins(margins); |
- print_settings_->set_should_print_backgrounds(true); |
+ settings.SetCustomMargins(margins); |
+ settings.set_should_print_backgrounds(true); |
} |
void AwPdfExporter::DidExportPdf(int fd, bool success) { |