Index: chrome/renderer/mock_printer.cc |
=================================================================== |
--- chrome/renderer/mock_printer.cc (revision 20864) |
+++ chrome/renderer/mock_printer.cc (working copy) |
@@ -5,9 +5,7 @@ |
#include "chrome/renderer/mock_printer.h" |
#include "base/file_util.h" |
-#include "base/gfx/png_encoder.h" |
#include "base/logging.h" |
-#include "base/md5.h" |
#include "base/shared_memory.h" |
#include "chrome/common/ipc_message_utils.h" |
#include "chrome/common/render_messages.h" |
@@ -116,8 +114,12 @@ |
base::SharedMemory emf_data(params.metafile_data_handle, true, |
GetCurrentProcess()); |
emf_data.Map(params.data_size); |
- MockPrinterPage* page_data = driver_.LoadSource(emf_data.memory(), |
- params.data_size); |
+ printing::NativeMetafile metafile; |
+ metafile.CreateFromData(emf_data.memory(), params.data_size); |
+ printing::Image image(metafile); |
+ MockPrinterPage* page_data = new MockPrinterPage(emf_data.memory(), |
+ params.data_size, |
+ image); |
if (!page_data) { |
printer_status_ = PRINTER_ERROR; |
return; |
@@ -140,6 +142,13 @@ |
return page_number_; |
} |
+const MockPrinterPage* MockPrinter::GetPrintedPage(size_t pageno) const { |
+ if (pages_.size() > pageno) |
+ return pages_[pageno]; |
+ else |
+ return NULL; |
+} |
+ |
int MockPrinter::GetWidth(size_t page) const { |
if (printer_status_ != PRINTER_READY || page >= pages_.size()) |
return -1; |
@@ -152,27 +161,10 @@ |
return pages_[page]->height(); |
} |
-bool MockPrinter::GetSourceChecksum(size_t page, std::string* checksum) const { |
- if (printer_status_ != PRINTER_READY || page >= pages_.size()) |
- return false; |
- return GetChecksum(pages_[page]->source_data(), pages_[page]->source_size(), |
- checksum); |
-} |
- |
bool MockPrinter::GetBitmapChecksum(size_t page, std::string* checksum) const { |
if (printer_status_ != PRINTER_READY || page >= pages_.size()) |
return false; |
- return GetChecksum(pages_[page]->bitmap_data(), pages_[page]->bitmap_size(), |
- checksum); |
-} |
- |
-bool MockPrinter::GetBitmap(size_t page, |
- const void** data, |
- size_t* size) const { |
- if (printer_status_ != PRINTER_READY || page >= pages_.size()) |
- return false; |
- *data = pages_[page]->bitmap_data(); |
- *size = pages_[page]->bitmap_size(); |
+ *checksum = pages_[page]->image().checksum(); |
return true; |
} |
@@ -191,17 +183,8 @@ |
const std::wstring& filename) const { |
if (printer_status_ != PRINTER_READY || page >= pages_.size()) |
return false; |
- int width = pages_[page]->width(); |
- int height = pages_[page]->height(); |
- int row_byte_width = width * 4; |
- const uint8* bitmap_data = pages_[page]->bitmap_data(); |
- std::vector<unsigned char> compressed; |
- PNGEncoder::Encode(bitmap_data, |
- PNGEncoder::FORMAT_BGRA, width, height, |
- row_byte_width, true, &compressed); |
- file_util::WriteFile(filename, |
- reinterpret_cast<char*>(&*compressed.begin()), |
- compressed.size()); |
+ |
+ pages_[page]->image().SaveToPng(filename); |
return true; |
} |
@@ -209,11 +192,3 @@ |
return ++current_document_cookie_; |
} |
-bool MockPrinter::GetChecksum(const void* data, |
- size_t size, |
- std::string* checksum) const { |
- MD5Digest digest; |
- MD5Sum(data, size, &digest); |
- checksum->assign(HexEncode(&digest, sizeof(digest))); |
- return true; |
-} |