summaryrefslogtreecommitdiffstats
path: root/chrome/renderer
diff options
context:
space:
mode:
authorsverrir@google.com <sverrir@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-06 15:25:50 +0000
committersverrir@google.com <sverrir@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-06 15:25:50 +0000
commit0e0fca32b226a29a774728b642848bfdd732f791 (patch)
tree70547f886163e2a364ed47a8d5c85765d48f0e12 /chrome/renderer
parentd09e2889c21d0a420b70680291906e4a17fb8503 (diff)
downloadchromium_src-0e0fca32b226a29a774728b642848bfdd732f791.zip
chromium_src-0e0fca32b226a29a774728b642848bfdd732f791.tar.gz
chromium_src-0e0fca32b226a29a774728b642848bfdd732f791.tar.bz2
Move Emf class to the printing library. Also creates a platform agnostic NativeMetafile definition to ease platform porting.
BUG=none TEST=none (No functional change) Review URL: http://codereview.chromium.org/149181 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19943 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer')
-rw-r--r--chrome/renderer/mock_printer.cc2
-rw-r--r--chrome/renderer/mock_printer_driver_win.cc6
-rw-r--r--chrome/renderer/print_web_view_helper.cc38
-rw-r--r--chrome/renderer/webplugin_delegate_proxy.cc11
4 files changed, 27 insertions, 30 deletions
diff --git a/chrome/renderer/mock_printer.cc b/chrome/renderer/mock_printer.cc
index 1b0dcc5..2454a0c 100644
--- a/chrome/renderer/mock_printer.cc
+++ b/chrome/renderer/mock_printer.cc
@@ -113,7 +113,7 @@ void MockPrinter::PrintPage(const ViewHostMsg_DidPrintPage_Params& params) {
// We duplicate the given file handle when creating a base::SharedMemory
// instance so that its destructor closes the copy.
EXPECT_GT(params.data_size, 0U);
- base::SharedMemory emf_data(params.emf_data_handle, true,
+ base::SharedMemory emf_data(params.metafile_data_handle, true,
GetCurrentProcess());
emf_data.Map(params.data_size);
MockPrinterPage* page_data = driver_.LoadSource(emf_data.memory(),
diff --git a/chrome/renderer/mock_printer_driver_win.cc b/chrome/renderer/mock_printer_driver_win.cc
index 051838b..8fefd8e 100644
--- a/chrome/renderer/mock_printer_driver_win.cc
+++ b/chrome/renderer/mock_printer_driver_win.cc
@@ -6,7 +6,7 @@
#include "base/gfx/gdi_util.h"
#include "base/logging.h"
-#include "chrome/common/gfx/emf.h"
+#include "printing/emf_win.h"
#include "chrome/renderer/mock_printer.h"
#include "skia/ext/platform_device.h"
@@ -57,7 +57,7 @@ class EmfRenderer {
}
}
- const void* Create(int width, int height, const gfx::Emf* emf) {
+ const void* Create(int width, int height, const printing::Emf* emf) {
CHECK(!dc_ && !bitmap_);
BITMAPV4HEADER header;
@@ -98,7 +98,7 @@ MockPrinterPage* MockPrinterDriverWin::LoadSource(const void* source_data,
size_t source_size) {
// This code is mostly copied from the Image::LoadEMF() function in
// "src/chrome/browser/printing/printing_layout_uitest.cc".
- gfx::Emf emf;
+ printing::Emf emf;
emf.CreateFromData(source_data, source_size);
gfx::Rect rect(emf.GetBounds());
diff --git a/chrome/renderer/print_web_view_helper.cc b/chrome/renderer/print_web_view_helper.cc
index d5389af..f53709e 100644
--- a/chrome/renderer/print_web_view_helper.cc
+++ b/chrome/renderer/print_web_view_helper.cc
@@ -10,6 +10,7 @@
#include "chrome/common/render_messages.h"
#include "chrome/renderer/render_view.h"
#include "grit/generated_resources.h"
+#include "printing/native_metafile.h"
#include "printing/units.h"
#include "webkit/api/public/WebConsoleMessage.h"
#include "webkit/api/public/WebScreenInfo.h"
@@ -19,7 +20,6 @@
#include "webkit/glue/webframe.h"
#if defined(OS_WIN)
-#include "chrome/common/gfx/emf.h"
#include "skia/ext/vector_canvas.h"
#endif
@@ -283,12 +283,11 @@ void PrintWebViewHelper::PrintPage(const ViewMsg_PrintPage_Params& params,
const gfx::Size& canvas_size,
WebFrame* frame) {
#if defined(OS_WIN)
- // Generate a memory-based EMF file. The EMF will use the current screen's
- // DPI.
- gfx::Emf emf;
+ // Generate a memory-based metafile. It will use the current screen's DPI.
+ printing::NativeMetafile metafile;
- emf.CreateDc(NULL, NULL);
- HDC hdc = emf.hdc();
+ metafile.CreateDc(NULL, NULL);
+ HDC hdc = metafile.hdc();
DCHECK(hdc);
skia::PlatformDevice::InitializeDC(hdc);
// Since WebKit extends the page width depending on the magical shrink
@@ -344,17 +343,17 @@ void PrintWebViewHelper::PrintPage(const ViewMsg_PrintPage_Params& params,
}
#endif
- // Done printing. Close the device context to retrieve the compiled EMF.
- if (!emf.CloseDc()) {
- NOTREACHED() << "EMF failed";
+ // Done printing. Close the device context to retrieve the compiled metafile.
+ if (!metafile.CloseDc()) {
+ NOTREACHED() << "metafile failed";
}
- // Get the size of the compiled EMF.
- unsigned buf_size = emf.GetDataSize();
+ // Get the size of the compiled metafile.
+ unsigned buf_size = metafile.GetDataSize();
DCHECK_GT(buf_size, 128u);
ViewHostMsg_DidPrintPage_Params page_params;
page_params.data_size = 0;
- page_params.emf_data_handle = NULL;
+ page_params.metafile_data_handle = NULL;
page_params.page_number = params.page_number;
page_params.document_cookie = params.params.document_cookie;
page_params.actual_shrink = shrink;
@@ -364,12 +363,12 @@ void PrintWebViewHelper::PrintPage(const ViewMsg_PrintPage_Params& params,
// Windows 2000/XP: When a page in a spooled file exceeds approximately 350
// MB, it can fail to print and not send an error message.
if (buf_size < 350*1024*1024) {
- // Allocate a shared memory buffer to hold the generated EMF data.
+ // Allocate a shared memory buffer to hold the generated metafile data.
if (shared_buf.Create(L"", false, false, buf_size) &&
shared_buf.Map(buf_size)) {
// Copy the bits into shared memory.
- if (emf.GetData(shared_buf.memory(), buf_size)) {
- page_params.emf_data_handle = shared_buf.handle();
+ if (metafile.GetData(shared_buf.memory(), buf_size)) {
+ page_params.metafile_data_handle = shared_buf.handle();
page_params.data_size = buf_size;
} else {
NOTREACHED() << "GetData() failed";
@@ -381,10 +380,11 @@ void PrintWebViewHelper::PrintPage(const ViewMsg_PrintPage_Params& params,
} else {
NOTREACHED() << "Buffer too large: " << buf_size;
}
- emf.CloseEmf();
- if (Send(new ViewHostMsg_DuplicateSection(routing_id(),
- page_params.emf_data_handle,
- &page_params.emf_data_handle))) {
+ metafile.CloseEmf();
+ if (Send(new ViewHostMsg_DuplicateSection(
+ routing_id(),
+ page_params.metafile_data_handle,
+ &page_params.metafile_data_handle))) {
Send(new ViewHostMsg_DidPrintPage(routing_id(), page_params));
}
#else // defined(OS_WIN)
diff --git a/chrome/renderer/webplugin_delegate_proxy.cc b/chrome/renderer/webplugin_delegate_proxy.cc
index 8117acf..b98b728 100644
--- a/chrome/renderer/webplugin_delegate_proxy.cc
+++ b/chrome/renderer/webplugin_delegate_proxy.cc
@@ -29,6 +29,7 @@
#include "googleurl/src/gurl.h"
#include "grit/generated_resources.h"
#include "net/base/mime_util.h"
+#include "printing/native_metafile.h"
#include "webkit/api/public/WebDragData.h"
#include "webkit/api/public/WebString.h"
#include "webkit/api/public/WebVector.h"
@@ -37,10 +38,6 @@
#include "webkit/glue/webplugin.h"
#include "webkit/glue/webview.h"
-#if defined(OS_WIN)
-#include "chrome/common/gfx/emf.h"
-#endif
-
#if defined(OS_POSIX)
#include "chrome/common/ipc_channel_posix.h"
#endif
@@ -579,13 +576,13 @@ void WebPluginDelegateProxy::Print(gfx::NativeDrawingContext context) {
}
#if defined(OS_WIN)
- gfx::Emf emf;
- if (!emf.CreateFromData(memory.memory(), size)) {
+ printing::NativeMetafile metafile;
+ if (!metafile.CreateFromData(memory.memory(), size)) {
NOTREACHED();
return;
}
// Playback the buffer.
- emf.Playback(context, NULL);
+ metafile.Playback(context, NULL);
#else
// TODO(port): plugin printing.
NOTIMPLEMENTED();