| Index: chrome/renderer/print_web_view_helper_win.cc
|
| diff --git a/chrome/renderer/print_web_view_helper_win.cc b/chrome/renderer/print_web_view_helper_win.cc
|
| index 075ed6bca5fe7554adeb4fefaec58580579d22ed..bdc702bde889ef2bf357306dbee68200ab484a76 100644
|
| --- a/chrome/renderer/print_web_view_helper_win.cc
|
| +++ b/chrome/renderer/print_web_view_helper_win.cc
|
| @@ -38,7 +38,7 @@ void PrintWebViewHelper::PrintPageInternal(
|
| WebFrame* frame) {
|
| // Generate a memory-based metafile. It will use the current screen's DPI.
|
| // Each metafile contains a single page.
|
| - scoped_ptr<Metafile> metafile(new printing::NativeMetafile);
|
| + scoped_ptr<printing::NativeMetafile> metafile(new printing::NativeMetafile);
|
| metafile->Init();
|
| DCHECK(metafile->context());
|
| skia::InitializeDC(metafile->context());
|
| @@ -62,6 +62,13 @@ void PrintWebViewHelper::PrintPageInternal(
|
| if (!metafile->FinishDocument())
|
| NOTREACHED();
|
|
|
| + if (!params.params.supports_alpha_blend && metafile->IsAlphaBlendUsed()) {
|
| + scoped_ptr<printing::NativeMetafile> raster_metafile(
|
| + metafile->RasterizeAlphaBlend());
|
| + if (raster_metafile.get())
|
| + metafile.swap(raster_metafile);
|
| + }
|
| +
|
| // Get the size of the compiled metafile.
|
| uint32 buf_size = metafile->GetDataSize();
|
| DCHECK_GT(buf_size, 128u);
|
|
|