OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/renderer/print_web_view_helper.h" | 5 #include "chrome/renderer/print_web_view_helper.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 27 matching lines...) Expand all Loading... |
38 #include "webkit/glue/webpreferences.h" | 38 #include "webkit/glue/webpreferences.h" |
39 | 39 |
40 #if defined(OS_POSIX) | 40 #if defined(OS_POSIX) |
41 #include "base/process_util.h" | 41 #include "base/process_util.h" |
42 #endif | 42 #endif |
43 | 43 |
44 #if defined(USE_SKIA) | 44 #if defined(USE_SKIA) |
45 #include "skia/ext/vector_canvas.h" | 45 #include "skia/ext/vector_canvas.h" |
46 #include "skia/ext/vector_platform_device_skia.h" | 46 #include "skia/ext/vector_platform_device_skia.h" |
47 #include "third_party/skia/include/core/SkTypeface.h" | 47 #include "third_party/skia/include/core/SkTypeface.h" |
| 48 #if defined (OS_WIN) |
| 49 #include "content/common/child_process_messages.h" |
| 50 #endif |
48 #elif defined(OS_MACOSX) | 51 #elif defined(OS_MACOSX) |
49 #include <CoreGraphics/CGContext.h> | 52 #include <CoreGraphics/CGContext.h> |
50 | 53 |
51 #include "base/mac/scoped_cftyperef.h" | 54 #include "base/mac/scoped_cftyperef.h" |
52 #include "base/sys_string_conversions.h" | 55 #include "base/sys_string_conversions.h" |
53 #include "ui/gfx/scoped_cg_context_save_gstate_mac.h" | 56 #include "ui/gfx/scoped_cg_context_save_gstate_mac.h" |
54 #endif | 57 #endif |
55 | 58 |
56 #if defined(OS_MACOSX) | 59 #if defined(OS_MACOSX) |
57 using base::mac::ScopedCFTypeRef; | 60 using base::mac::ScopedCFTypeRef; |
(...skipping 377 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
435 } | 438 } |
436 | 439 |
437 PrintWebViewHelper::PrintWebViewHelper(content::RenderView* render_view) | 440 PrintWebViewHelper::PrintWebViewHelper(content::RenderView* render_view) |
438 : content::RenderViewObserver(render_view), | 441 : content::RenderViewObserver(render_view), |
439 content::RenderViewObserverTracker<PrintWebViewHelper>(render_view), | 442 content::RenderViewObserverTracker<PrintWebViewHelper>(render_view), |
440 print_web_view_(NULL), | 443 print_web_view_(NULL), |
441 is_preview_enabled_(switches::IsPrintPreviewEnabled()), | 444 is_preview_enabled_(switches::IsPrintPreviewEnabled()), |
442 is_print_ready_metafile_sent_(false), | 445 is_print_ready_metafile_sent_(false), |
443 user_cancelled_scripted_print_count_(0), | 446 user_cancelled_scripted_print_count_(0), |
444 notify_browser_of_print_failure_(true) { | 447 notify_browser_of_print_failure_(true) { |
| 448 #if defined(OS_WIN) && defined(USE_SKIA) |
| 449 if (!g_SandboxSupport) { |
| 450 g_SandboxSupport = this; |
| 451 } |
| 452 #endif |
445 } | 453 } |
446 | 454 |
447 PrintWebViewHelper::~PrintWebViewHelper() {} | 455 PrintWebViewHelper::~PrintWebViewHelper() { |
| 456 #if defined(OS_WIN) && defined(USE_SKIA) |
| 457 if (g_SandboxSupport == this) { |
| 458 g_SandboxSupport = NULL; |
| 459 } |
| 460 #endif |
| 461 } |
448 | 462 |
449 // Prints |frame| which called window.print(). | 463 // Prints |frame| which called window.print(). |
450 void PrintWebViewHelper::PrintPage(WebKit::WebFrame* frame) { | 464 void PrintWebViewHelper::PrintPage(WebKit::WebFrame* frame) { |
451 DCHECK(frame); | 465 DCHECK(frame); |
452 | 466 |
453 // Allow Prerendering to cancel this print request if necessary. | 467 // Allow Prerendering to cancel this print request if necessary. |
454 if (prerender::PrerenderHelper::IsPrerendering(render_view())) { | 468 if (prerender::PrerenderHelper::IsPrerendering(render_view())) { |
455 Send(new ChromeViewHostMsg_CancelPrerenderForPrinting(routing_id())); | 469 Send(new ChromeViewHostMsg_CancelPrerenderForPrinting(routing_id())); |
456 return; | 470 return; |
457 } | 471 } |
(...skipping 1104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1562 DCHECK(IsRendering()); | 1576 DCHECK(IsRendering()); |
1563 return prep_frame_view_->GetPrintCanvasSize(); | 1577 return prep_frame_view_->GetPrintCanvasSize(); |
1564 } | 1578 } |
1565 | 1579 |
1566 void PrintWebViewHelper::PrintPreviewContext::ClearContext() { | 1580 void PrintWebViewHelper::PrintPreviewContext::ClearContext() { |
1567 prep_frame_view_.reset(); | 1581 prep_frame_view_.reset(); |
1568 metafile_.reset(); | 1582 metafile_.reset(); |
1569 pages_to_render_.clear(); | 1583 pages_to_render_.clear(); |
1570 error_ = PREVIEW_ERROR_NONE; | 1584 error_ = PREVIEW_ERROR_NONE; |
1571 } | 1585 } |
| 1586 |
| 1587 #if defined(OS_WIN) && defined(USE_SKIA) |
| 1588 void PrintWebViewHelper::EnsureFontLoad(LOGFONT logfont) { |
| 1589 // This is a synchronized IPC message, will block caller thread. |
| 1590 Send(new ChildProcessHostMsg_PreCacheFont(logfont)); |
| 1591 } |
| 1592 #endif |
OLD | NEW |