From 7756e5b1e7919fe530ff1ff27503d4893efcee13 Mon Sep 17 00:00:00 2001 From: "jam@chromium.org" Date: Wed, 2 Mar 2011 17:20:21 +0000 Subject: Revert 76553 - Applying factory pattern (through NativeMetafileFactory class). It is used to retrieve different printing contexts (based on the platform and user preferences). BUG=NONE TEST=NONE Review URL: http://codereview.chromium.org/6544028 TBR=dpapad@chromium.org Review URL: http://codereview.chromium.org/6594121 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@76555 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/printing/print_view_manager.cc | 3 +- chrome/common/common_param_traits_unittest.cc | 39 +++++++++++-------------- chrome/plugin/webplugin_delegate_stub.cc | 22 ++++++-------- chrome/renderer/mock_printer.cc | 9 ++---- chrome/renderer/print_web_view_helper_linux.cc | 20 ++++++------- chrome/renderer/print_web_view_helper_mac.mm | 31 +++++++++----------- chrome/renderer/print_web_view_helper_win.cc | 10 ++----- chrome/renderer/webplugin_delegate_pepper.cc | 40 +++++++++++++------------- chrome/renderer/webplugin_delegate_proxy.cc | 16 ++++------- chrome/service/service_utility_process_host.cc | 14 ++++----- chrome/utility/utility_thread.cc | 15 +++------- 11 files changed, 86 insertions(+), 133 deletions(-) (limited to 'chrome') diff --git a/chrome/browser/printing/print_view_manager.cc b/chrome/browser/printing/print_view_manager.cc index 42b0500..8a8de31 100644 --- a/chrome/browser/printing/print_view_manager.cc +++ b/chrome/browser/printing/print_view_manager.cc @@ -18,7 +18,6 @@ #include "content/browser/tab_contents/navigation_entry.h" #include "content/browser/tab_contents/tab_contents.h" #include "grit/generated_resources.h" -#include "printing/native_metafile_factory.h" #include "printing/native_metafile.h" #include "printing/printed_document.h" #include "ui/base/l10n/l10n_util.h" @@ -131,7 +130,7 @@ void PrintViewManager::OnDidPrintPage( } } - scoped_ptr metafile(NativeMetafileFactory::CreateMetafile()); + scoped_ptr metafile(new NativeMetafile()); if (metafile_must_be_valid) { if (!metafile->Init(shared_buf.memory(), params.data_size)) { NOTREACHED() << "Invalid metafile header"; diff --git a/chrome/common/common_param_traits_unittest.cc b/chrome/common/common_param_traits_unittest.cc index 1dd62f6..9a95c0f0 100644 --- a/chrome/common/common_param_traits_unittest.cc +++ b/chrome/common/common_param_traits_unittest.cc @@ -14,16 +14,12 @@ #include "ipc/ipc_message_utils.h" #include "net/base/host_port_pair.h" #include "printing/backend/print_backend.h" +#include "printing/native_metafile.h" #include "printing/page_range.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/skia/include/core/SkBitmap.h" #include "ui/gfx/rect.h" -#if defined(OS_WIN) -#include "printing/native_metafile_factory.h" -#include "printing/native_metafile.h" -#endif - // Tests that serialize/deserialize correctly understand each other TEST(IPCMessageTest, Serialize) { const char* serialize_cases[] = { @@ -231,45 +227,42 @@ TEST(IPCMessageTest, PageRange) { EXPECT_TRUE(input == output); } -// Tests printing::Emf serialization. +// Tests printing::NativeMetafile serialization. // TODO(sanjeevr): Make this test meaningful for non-Windows platforms. We // need to initialize the metafile using alternate means on the other OSes. #if defined(OS_WIN) TEST(IPCMessageTest, Metafile) { - scoped_ptr metafile( - printing::NativeMetafileFactory::CreateMetafile()); + printing::NativeMetafile metafile; RECT test_rect = {0, 0, 100, 100}; - // Create a metafile using the screen DC as a reference. - metafile->CreateDc(NULL, NULL); - metafile->CloseDc(); + // Create a metsfile using the screen DC as a reference. + metafile.CreateDc(NULL, NULL); + metafile.CloseDc(); IPC::Message msg(1, 2, IPC::Message::PRIORITY_NORMAL); - IPC::ParamTraits::Write(&msg, *metafile); + IPC::ParamTraits::Write(&msg, metafile); - scoped_ptr output( - printing::NativeMetafileFactory::CreateMetafile()); + printing::NativeMetafile output; void* iter = NULL; EXPECT_TRUE(IPC::ParamTraits::Read( - &msg, &iter, output.get())); + &msg, &iter, &output)); - EXPECT_EQ(metafile->GetDataSize(), output->GetDataSize()); - EXPECT_EQ(metafile->GetBounds(), output->GetBounds()); - EXPECT_EQ(::GetDeviceCaps(metafile->hdc(), LOGPIXELSX), - ::GetDeviceCaps(output->hdc(), LOGPIXELSX)); + EXPECT_EQ(metafile.GetDataSize(), output.GetDataSize()); + EXPECT_EQ(metafile.GetBounds(), output.GetBounds()); + EXPECT_EQ(::GetDeviceCaps(metafile.hdc(), LOGPIXELSX), + ::GetDeviceCaps(output.hdc(), LOGPIXELSX)); // Also test the corrupt case. IPC::Message bad_msg(1, 2, IPC::Message::PRIORITY_NORMAL); // Write some bogus metafile data. - const size_t bogus_data_size = metafile->GetDataSize() * 2; + const size_t bogus_data_size = metafile.GetDataSize() * 2; scoped_array bogus_data(new char[bogus_data_size]); memset(bogus_data.get(), 'B', bogus_data_size); bad_msg.WriteData(bogus_data.get(), bogus_data_size); // Make sure we don't read out the metafile! - scoped_ptr bad_output( - printing::NativeMetafileFactory::CreateMetafile()); + printing::NativeMetafile bad_output; iter = NULL; EXPECT_FALSE(IPC::ParamTraits::Read( - &bad_msg, &iter, bad_output.get())); + &bad_msg, &iter, &bad_output)); } #endif // defined(OS_WIN) diff --git a/chrome/plugin/webplugin_delegate_stub.cc b/chrome/plugin/webplugin_delegate_stub.cc index 75a3dc8..6b0f39a 100644 --- a/chrome/plugin/webplugin_delegate_stub.cc +++ b/chrome/plugin/webplugin_delegate_stub.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -14,6 +14,7 @@ #include "chrome/plugin/plugin_channel.h" #include "chrome/plugin/plugin_thread.h" #include "chrome/plugin/webplugin_proxy.h" +#include "printing/native_metafile.h" #include "third_party/npapi/bindings/npapi.h" #include "third_party/npapi/bindings/npruntime.h" #include "skia/ext/platform_device.h" @@ -22,12 +23,6 @@ #include "webkit/plugins/npapi/webplugin_delegate_impl.h" #include "webkit/glue/webcursor.h" -#if defined(OS_WIN) -#include "base/scoped_ptr.h" -#include "printing/native_metafile_factory.h" -#include "printing/native_metafile.h" -#endif // defined(OS_WIN) - #if defined(ENABLE_GPU) #include "app/gfx/gl/gl_context.h" #endif @@ -286,27 +281,26 @@ void WebPluginDelegateStub::OnDidPaint() { void WebPluginDelegateStub::OnPrint(base::SharedMemoryHandle* shared_memory, uint32* size) { #if defined(OS_WIN) - scoped_ptr metafile( - printing::NativeMetafileFactory::CreateMetafile()); - if (!metafile->CreateDc(NULL, NULL)) { + printing::NativeMetafile metafile; + if (!metafile.CreateDc(NULL, NULL)) { NOTREACHED(); return; } - HDC hdc = metafile->hdc(); + HDC hdc = metafile.hdc(); skia::PlatformDevice::InitializeDC(hdc); delegate_->Print(hdc); - if (!metafile->CloseDc()) { + if (!metafile.CloseDc()) { NOTREACHED(); return; } - *size = metafile->GetDataSize(); + *size = metafile.GetDataSize(); DCHECK(*size); base::SharedMemory shared_buf; CreateSharedBuffer(*size, &shared_buf, shared_memory); // Retrieve a copy of the data. - bool success = metafile->GetData(shared_buf.memory(), *size); + bool success = metafile.GetData(shared_buf.memory(), *size); DCHECK(success); #else // TODO(port): plugin printing. diff --git a/chrome/renderer/mock_printer.cc b/chrome/renderer/mock_printer.cc index 4510bfc..b579f88 100644 --- a/chrome/renderer/mock_printer.cc +++ b/chrome/renderer/mock_printer.cc @@ -9,8 +9,6 @@ #include "chrome/common/render_messages.h" #include "chrome/common/render_messages_params.h" #include "ipc/ipc_message_utils.h" -#include "printing/native_metafile_factory.h" -#include "printing/native_metafile.h" #include "printing/units.h" #include "testing/gtest/include/gtest/gtest.h" @@ -133,10 +131,9 @@ void MockPrinter::PrintPage(const ViewHostMsg_DidPrintPage_Params& params) { base::SharedMemory metafile_data(params.metafile_data_handle, true); #endif metafile_data.Map(params.data_size); - scoped_ptr metafile( - printing::NativeMetafileFactory::CreateMetafile()); - metafile->Init(metafile_data.memory(), params.data_size); - printing::Image image(*metafile); + printing::NativeMetafile metafile; + metafile.Init(metafile_data.memory(), params.data_size); + printing::Image image(metafile); MockPrinterPage* page_data = new MockPrinterPage(metafile_data.memory(), params.data_size, image); diff --git a/chrome/renderer/print_web_view_helper_linux.cc b/chrome/renderer/print_web_view_helper_linux.cc index 46e47ea..c4446d3 100644 --- a/chrome/renderer/print_web_view_helper_linux.cc +++ b/chrome/renderer/print_web_view_helper_linux.cc @@ -6,10 +6,8 @@ #include "base/file_descriptor_posix.h" #include "base/logging.h" -#include "base/scoped_ptr.h" #include "chrome/common/render_messages.h" #include "chrome/common/render_messages_params.h" -#include "printing/native_metafile_factory.h" #include "printing/native_metafile.h" #include "skia/ext/vector_canvas.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h" @@ -25,15 +23,14 @@ void PrintWebViewHelper::CreatePreviewDocument( const ViewMsg_PrintPages_Params& params, WebFrame* frame) { // We only can use PDF in the renderer because Cairo needs to create a // temporary file for a PostScript surface. - scoped_ptr metafile( - printing::NativeMetafileFactory::CreateMetafile()); + printing::NativeMetafile metafile; int page_count = 0; - if (!RenderPages(params, frame, false, &page_count, metafile.get())) + if (!RenderPages(params, frame, false, &page_count, &metafile)) return; // Get the size of the resulting metafile. - uint32 buf_size = metafile->GetDataSize(); + uint32 buf_size = metafile.GetDataSize(); DCHECK_GT(buf_size, 0u); ViewHostMsg_DidPreviewDocument_Params preview_params; @@ -41,7 +38,7 @@ void PrintWebViewHelper::CreatePreviewDocument( preview_params.expected_pages_count = page_count; preview_params.data_size = buf_size; - if (!CopyMetafileDataToSharedMem(metafile.get(), + if (!CopyMetafileDataToSharedMem(&metafile, &(preview_params.metafile_data_handle))) { preview_params.expected_pages_count = 0; preview_params.data_size = 0; @@ -54,8 +51,7 @@ void PrintWebViewHelper::PrintPages(const ViewMsg_PrintPages_Params& params, WebNode* node) { // We only can use PDF in the renderer because Cairo needs to create a // temporary file for a PostScript surface. - scoped_ptr metafile( - printing::NativeMetafileFactory::CreateMetafile()); + printing::NativeMetafile metafile; int page_count = 0; bool send_expected_page_count = #if defined(OS_CHROMEOS) @@ -65,12 +61,12 @@ void PrintWebViewHelper::PrintPages(const ViewMsg_PrintPages_Params& params, #endif // defined(OS_CHROMEOS) if (!RenderPages(params, frame, send_expected_page_count, &page_count, - metafile.get())) { + &metafile)) { return; } // Get the size of the resulting metafile. - uint32 buf_size = metafile->GetDataSize(); + uint32 buf_size = metafile.GetDataSize(); DCHECK_GT(buf_size, 0u); #if defined(OS_CHROMEOS) @@ -109,7 +105,7 @@ void PrintWebViewHelper::PrintPages(const ViewMsg_PrintPages_Params& params, NOTREACHED() << "Map failed"; return; } - metafile->GetData(shared_buf.memory(), buf_size); + metafile.GetData(shared_buf.memory(), buf_size); printed_page_params.data_size = buf_size; shared_buf.GiveToProcess(base::GetCurrentProcessHandle(), &(printed_page_params.metafile_data_handle)); diff --git a/chrome/renderer/print_web_view_helper_mac.mm b/chrome/renderer/print_web_view_helper_mac.mm index 4dc218c..4abae95 100644 --- a/chrome/renderer/print_web_view_helper_mac.mm +++ b/chrome/renderer/print_web_view_helper_mac.mm @@ -7,11 +7,8 @@ #import #include "base/logging.h" -#include "base/scoped_ptr.h" #include "chrome/common/render_messages.h" #include "chrome/common/render_messages_params.h" -#include "printing/native_metafile_factory.h" -#include "printing/native_metafile.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h" using WebKit::WebFrame; @@ -19,9 +16,8 @@ using WebKit::WebFrame; void PrintWebViewHelper::PrintPage(const ViewMsg_PrintPage_Params& params, const gfx::Size& canvas_size, WebFrame* frame) { - scoped_ptr metafile( - printing::NativeMetafileFactory::CreateMetafile()); - if (!metafile->Init()) + printing::NativeMetafile metafile; + if (!metafile.Init()) return; float scale_factor = frame->getPrintPageShrink(params.page_number); @@ -30,11 +26,11 @@ void PrintWebViewHelper::PrintPage(const ViewMsg_PrintPage_Params& params, // Render page for printing. gfx::Point origin(0.0f, 0.0f); RenderPage(params.params.printable_size, origin, scale_factor, page_number, - frame, metafile.get()); - metafile->Close(); + frame, &metafile); + metafile.Close(); ViewHostMsg_DidPrintPage_Params page_params; - page_params.data_size = metafile->GetDataSize(); + page_params.data_size = metafile.GetDataSize(); page_params.page_number = page_number; page_params.document_cookie = params.params.document_cookie; page_params.actual_shrink = scale_factor; @@ -45,7 +41,7 @@ void PrintWebViewHelper::PrintPage(const ViewMsg_PrintPage_Params& params, params.params.printable_size.height()); // Ask the browser to create the shared memory for us. - if (!CopyMetafileDataToSharedMem(metafile.get(), + if (!CopyMetafileDataToSharedMem(&metafile, &(page_params.metafile_data_handle))) { page_params.data_size = 0; } @@ -65,9 +61,8 @@ void PrintWebViewHelper::CreatePreviewDocument( if (!page_count) return; - scoped_ptr metafile( - printing::NativeMetafileFactory::CreateMetafile()); - if (!metafile->Init()) + printing::NativeMetafile metafile; + if (!metafile.Init()) return; float scale_factor = frame->getPrintPageShrink(0); @@ -75,25 +70,25 @@ void PrintWebViewHelper::CreatePreviewDocument( if (params.pages.empty()) { for (int i = 0; i < page_count; ++i) { RenderPage(printParams.page_size, origin, scale_factor, i, frame, - metafile.get()); + &metafile); } } else { for (size_t i = 0; i < params.pages.size(); ++i) { if (params.pages[i] >= page_count) break; RenderPage(printParams.page_size, origin, scale_factor, - static_cast(params.pages[i]), frame, metafile.get()); + static_cast(params.pages[i]), frame, &metafile); } } - metafile->Close(); + metafile.Close(); ViewHostMsg_DidPreviewDocument_Params preview_params; - preview_params.data_size = metafile->GetDataSize(); + preview_params.data_size = metafile.GetDataSize(); preview_params.document_cookie = params.params.document_cookie; preview_params.expected_pages_count = page_count; // Ask the browser to create the shared memory for us. - if (!CopyMetafileDataToSharedMem(metafile.get(), + if (!CopyMetafileDataToSharedMem(&metafile, &(preview_params.metafile_data_handle))) { preview_params.data_size = 0; preview_params.expected_pages_count = 0; diff --git a/chrome/renderer/print_web_view_helper_win.cc b/chrome/renderer/print_web_view_helper_win.cc index e0332c8..ccce2e9 100644 --- a/chrome/renderer/print_web_view_helper_win.cc +++ b/chrome/renderer/print_web_view_helper_win.cc @@ -8,8 +8,6 @@ #include "base/process_util.h" #include "chrome/common/render_messages.h" #include "chrome/common/render_messages_params.h" -#include "printing/native_metafile_factory.h" -#include "printing/native_metafile.h" #include "printing/units.h" #include "skia/ext/vector_canvas.h" #include "skia/ext/vector_platform_device.h" @@ -69,8 +67,7 @@ void PrintWebViewHelper::PrintPage(const ViewMsg_PrintPage_Params& params, WebFrame* frame) { // Generate a memory-based metafile. It will use the current screen's DPI. // Each metafile contains a single page. - scoped_ptr metafile( - printing::NativeMetafileFactory::CreateMetafile()); + scoped_ptr metafile(new printing::NativeMetafile); metafile->CreateDc(NULL, NULL); DCHECK(metafile->hdc()); skia::PlatformDevice::InitializeDC(metafile->hdc()); @@ -136,8 +133,7 @@ void PrintWebViewHelper::CreatePreviewDocument( // PDF backend" work is completed for windows, make changes to replace this // EMF with PDF metafile. // http://code.google.com/p/chromium/issues/detail?id=62889 - scoped_ptr metafile( - printing::NativeMetafileFactory::CreateMetafile()); + scoped_ptr metafile(new printing::NativeMetafile); metafile->CreateDc(NULL, NULL); DCHECK(metafile->hdc()); skia::PlatformDevice::InitializeDC(metafile->hdc()); @@ -262,7 +258,7 @@ void PrintWebViewHelper::RenderPage( NOTREACHED(); scoped_ptr metafile2( - printing::NativeMetafileFactory::CreateMetafile()); + new printing::NativeMetafile); // Page used alpha blend, but printer doesn't support it. Rewrite the // metafile and flatten out the transparency. HDC bitmap_dc = CreateCompatibleDC(GetDC(NULL)); diff --git a/chrome/renderer/webplugin_delegate_pepper.cc b/chrome/renderer/webplugin_delegate_pepper.cc index 43709f8..921138f 100644 --- a/chrome/renderer/webplugin_delegate_pepper.cc +++ b/chrome/renderer/webplugin_delegate_pepper.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2010 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -15,12 +15,18 @@ #include "base/file_path.h" #include "base/file_util.h" +#if defined(OS_MACOSX) +#include "base/mac/mac_util.h" +#endif #include "base/md5.h" #include "base/message_loop.h" #include "base/metrics/histogram.h" #include "base/metrics/stats_counters.h" #include "base/path_service.h" #include "base/process_util.h" +#if defined(OS_MACOSX) +#include "base/mac/scoped_cftyperef.h" +#endif #include "base/scoped_ptr.h" #include "base/string_number_conversions.h" #include "base/string_util.h" @@ -33,9 +39,17 @@ #include "chrome/renderer/pepper_widget.h" #include "chrome/renderer/render_thread.h" #include "chrome/renderer/render_view.h" +#if defined(OS_LINUX) +#include "chrome/renderer/renderer_sandbox_support_linux.h" +#endif #include "chrome/renderer/webplugin_delegate_proxy.h" #include "ui/gfx/blit.h" -#include "printing/native_metafile_factory.h" +#if defined(OS_WIN) +#include "printing/units.h" +#include "skia/ext/vector_platform_device.h" +#include "ui/gfx/codec/jpeg_codec.h" +#include "ui/gfx/gdi_util.h" +#endif #include "printing/native_metafile.h" #include "third_party/npapi/bindings/npapi_extensions.h" #include "third_party/npapi/bindings/npapi_extensions_private.h" @@ -50,19 +64,6 @@ #include "webkit/plugins/npapi/plugin_host.h" #include "webkit/plugins/npapi/plugin_stream_url.h" -#if defined(OS_MACOSX) -#include "base/mac/mac_util.h" -#include "base/mac/scoped_cftyperef.h" -#elif defined(OS_LINUX) -#include "chrome/renderer/renderer_sandbox_support_linux.h" -#include "printing/pdf_ps_metafile_cairo.h" -#elif defined(OS_WIN) -#include "printing/units.h" -#include "skia/ext/vector_platform_device.h" -#include "ui/gfx/codec/jpeg_codec.h" -#include "ui/gfx/gdi_util.h" -#endif - #if defined(ENABLE_GPU) #include "webkit/plugins/npapi/plugin_constants_win.h" #endif @@ -1221,7 +1222,7 @@ bool WebPluginDelegatePepper::VectorPrintPage(int page_number, // directly. cairo_t* context = canvas->beginPlatformPaint(); printing::NativeMetafile* metafile = - printing::PdfPsMetafile::FromCairoContext(context); + printing::NativeMetafile::FromCairoContext(context); DCHECK(metafile); if (metafile) { ret = metafile->SetRawData(pdf_output, output_size); @@ -1230,15 +1231,14 @@ bool WebPluginDelegatePepper::VectorPrintPage(int page_number, } canvas->endPlatformPaint(); #elif defined(OS_MACOSX) - scoped_ptr metafile( - printing::NativeMetafileFactory::CreateMetafile()); + printing::NativeMetafile metafile; // Create a PDF metafile and render from there into the passed in context. - if (metafile->Init(pdf_output, output_size)) { + if (metafile.Init(pdf_output, output_size)) { // Flip the transform. CGContextSaveGState(canvas); CGContextTranslateCTM(canvas, 0, current_printable_area_.height()); CGContextScaleCTM(canvas, 1.0, -1.0); - ret = metafile->RenderPage(1, canvas, current_printable_area_.ToCGRect(), + ret = metafile.RenderPage(1, canvas, current_printable_area_.ToCGRect(), true, false, true, true); CGContextRestoreGState(canvas); } diff --git a/chrome/renderer/webplugin_delegate_proxy.cc b/chrome/renderer/webplugin_delegate_proxy.cc index bc65843..0c98871 100644 --- a/chrome/renderer/webplugin_delegate_proxy.cc +++ b/chrome/renderer/webplugin_delegate_proxy.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2010 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -15,7 +15,6 @@ #include "base/file_util.h" #include "base/logging.h" #include "base/ref_counted.h" -#include "base/scoped_ptr.h" #include "base/string_split.h" #include "base/string_util.h" #include "base/sys_info.h" @@ -34,6 +33,7 @@ #include "grit/renderer_resources.h" #include "ipc/ipc_channel_handle.h" #include "net/base/mime_util.h" +#include "printing/native_metafile.h" #include "skia/ext/platform_canvas.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebBindings.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebCursorInfo.h" @@ -54,11 +54,6 @@ #include "ipc/ipc_channel_posix.h" #endif -#if defined(OS_WIN) -#include "printing/native_metafile_factory.h" -#include "printing/native_metafile.h" -#endif - using WebKit::WebBindings; using WebKit::WebCursorInfo; using WebKit::WebDragData; @@ -931,14 +926,13 @@ void WebPluginDelegateProxy::Print(gfx::NativeDrawingContext context) { } #if defined(OS_WIN) - scoped_ptr metafile( - printing::NativeMetafileFactory::CreateMetafile()); - if (!metafile->Init(memory.memory(), size)) { + printing::NativeMetafile metafile; + if (!metafile.Init(memory.memory(), size)) { NOTREACHED(); return; } // Playback the buffer. - metafile->Playback(context, NULL); + metafile.Playback(context, NULL); #else // TODO(port): plugin printing. NOTIMPLEMENTED(); diff --git a/chrome/service/service_utility_process_host.cc b/chrome/service/service_utility_process_host.cc index a340d8d..b63e27f 100644 --- a/chrome/service/service_utility_process_host.cc +++ b/chrome/service/service_utility_process_host.cc @@ -13,15 +13,13 @@ #include "chrome/common/chrome_switches.h" #include "chrome/common/utility_messages.h" #include "ipc/ipc_switches.h" +#include "printing/native_metafile.h" #include "printing/page_range.h" #include "ui/base/ui_base_switches.h" #include "ui/gfx/rect.h" #if defined(OS_WIN) -#include "base/scoped_ptr.h" #include "base/win/scoped_handle.h" -#include "printing/native_metafile_factory.h" -#include "printing/native_metafile.h" #endif ServiceUtilityProcessHost::ServiceUtilityProcessHost( @@ -204,15 +202,13 @@ void ServiceUtilityProcessHost::Client::MetafileAvailable( if (!scratch_metafile_dir.Set(metafile_path.DirName())) LOG(WARNING) << "Unable to set scratch metafile directory"; #if defined(OS_WIN) - scoped_ptr metafile( - printing::NativeMetafileFactory::CreateMetafile()); - if (!metafile->CreateFromFile(metafile_path)) { + printing::NativeMetafile metafile; + if (!metafile.CreateFromFile(metafile_path)) { OnRenderPDFPagesToMetafileFailed(); } else { - OnRenderPDFPagesToMetafileSucceeded(*metafile, - highest_rendered_page_number); + OnRenderPDFPagesToMetafileSucceeded(metafile, highest_rendered_page_number); // Close it so that ScopedTempDir can delete the folder. - metafile->CloseEmf(); + metafile.CloseEmf(); } #endif // defined(OS_WIN) } diff --git a/chrome/utility/utility_thread.cc b/chrome/utility/utility_thread.cc index 0556cbb..6d078e3 100644 --- a/chrome/utility/utility_thread.cc +++ b/chrome/utility/utility_thread.cc @@ -18,6 +18,7 @@ #include "chrome/common/serialized_script_value.h" #include "chrome/common/utility_messages.h" #include "chrome/common/web_resource/web_resource_unpacker.h" +#include "printing/native_metafile.h" #include "printing/page_range.h" #include "printing/units.h" #include "third_party/skia/include/core/SkBitmap.h" @@ -28,10 +29,7 @@ #if defined(OS_WIN) #include "app/win/iat_patch_function.h" -#include "base/scoped_ptr.h" #include "base/win/scoped_handle.h" -#include "printing/native_metafile_factory.h" -#include "printing/native_metafile.h" #endif namespace { @@ -137,15 +135,10 @@ void UtilityThread::OnRenderPDFPagesToMetafile( const std::vector& page_ranges) { bool succeeded = false; #if defined(OS_WIN) - scoped_ptr metafile( - printing::NativeMetafileFactory::CreateMetafile()); + printing::NativeMetafile metafile; int highest_rendered_page_number = 0; - succeeded = RenderPDFToWinMetafile(pdf_file, - metafile_path, - render_area, - render_dpi, - page_ranges, - metafile.get(), + succeeded = RenderPDFToWinMetafile(pdf_file, metafile_path, render_area, + render_dpi, page_ranges, &metafile, &highest_rendered_page_number); if (succeeded) { Send(new UtilityHostMsg_RenderPDFPagesToMetafile_Succeeded( -- cgit v1.1