OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "components/printing/renderer/print_web_view_helper.h" | 5 #include "components/printing/renderer/print_web_view_helper.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/auto_reset.h" | 9 #include "base/auto_reset.h" |
10 #include "base/json/json_writer.h" | 10 #include "base/json/json_writer.h" |
| 11 #include "base/location.h" |
11 #include "base/logging.h" | 12 #include "base/logging.h" |
12 #include "base/message_loop/message_loop.h" | |
13 #include "base/metrics/histogram.h" | 13 #include "base/metrics/histogram.h" |
14 #include "base/process/process_handle.h" | 14 #include "base/process/process_handle.h" |
| 15 #include "base/single_thread_task_runner.h" |
15 #include "base/strings/string_number_conversions.h" | 16 #include "base/strings/string_number_conversions.h" |
16 #include "base/strings/stringprintf.h" | 17 #include "base/strings/stringprintf.h" |
17 #include "base/strings/utf_string_conversions.h" | 18 #include "base/strings/utf_string_conversions.h" |
| 19 #include "base/thread_task_runner_handle.h" |
18 #include "components/printing/common/print_messages.h" | 20 #include "components/printing/common/print_messages.h" |
19 #include "content/public/common/web_preferences.h" | 21 #include "content/public/common/web_preferences.h" |
20 #include "content/public/renderer/render_frame.h" | 22 #include "content/public/renderer/render_frame.h" |
21 #include "content/public/renderer/render_thread.h" | 23 #include "content/public/renderer/render_thread.h" |
22 #include "content/public/renderer/render_view.h" | 24 #include "content/public/renderer/render_view.h" |
23 #include "grit/components_resources.h" | 25 #include "grit/components_resources.h" |
24 #include "net/base/escape.h" | 26 #include "net/base/escape.h" |
25 #include "printing/pdf_metafile_skia.h" | 27 #include "printing/pdf_metafile_skia.h" |
26 #include "printing/units.h" | 28 #include "printing/units.h" |
27 #include "third_party/WebKit/public/platform/WebSize.h" | 29 #include "third_party/WebKit/public/platform/WebSize.h" |
(...skipping 692 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
720 } | 722 } |
721 | 723 |
722 bool PrepareFrameAndViewForPrint::allowsBrokenNullLayerTreeView() const { | 724 bool PrepareFrameAndViewForPrint::allowsBrokenNullLayerTreeView() const { |
723 return true; | 725 return true; |
724 } | 726 } |
725 | 727 |
726 void PrepareFrameAndViewForPrint::didStopLoading() { | 728 void PrepareFrameAndViewForPrint::didStopLoading() { |
727 DCHECK(!on_ready_.is_null()); | 729 DCHECK(!on_ready_.is_null()); |
728 // Don't call callback here, because it can delete |this| and WebView that is | 730 // Don't call callback here, because it can delete |this| and WebView that is |
729 // called didStopLoading. | 731 // called didStopLoading. |
730 base::MessageLoop::current()->PostTask( | 732 base::ThreadTaskRunnerHandle::Get()->PostTask( |
731 FROM_HERE, base::Bind(&PrepareFrameAndViewForPrint::CallOnReady, | 733 FROM_HERE, base::Bind(&PrepareFrameAndViewForPrint::CallOnReady, |
732 weak_ptr_factory_.GetWeakPtr())); | 734 weak_ptr_factory_.GetWeakPtr())); |
733 } | 735 } |
734 | 736 |
735 blink::WebFrame* PrepareFrameAndViewForPrint::createChildFrame( | 737 blink::WebFrame* PrepareFrameAndViewForPrint::createChildFrame( |
736 blink::WebLocalFrame* parent, | 738 blink::WebLocalFrame* parent, |
737 blink::WebTreeScopeType scope, | 739 blink::WebTreeScopeType scope, |
738 const blink::WebString& name, | 740 const blink::WebString& name, |
739 blink::WebSandboxFlags sandboxFlags) { | 741 blink::WebSandboxFlags sandboxFlags) { |
740 blink::WebFrame* frame = blink::WebLocalFrame::create(scope, this); | 742 blink::WebFrame* frame = blink::WebLocalFrame::create(scope, this); |
(...skipping 937 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1678 // document has been loaded. | 1680 // document has been loaded. |
1679 is_scripted_preview_delayed_ = true; | 1681 is_scripted_preview_delayed_ = true; |
1680 if (is_loading_ && GetPlugin(print_preview_context_.source_frame())) { | 1682 if (is_loading_ && GetPlugin(print_preview_context_.source_frame())) { |
1681 // Wait for DidStopLoading. Plugins may not know the correct | 1683 // Wait for DidStopLoading. Plugins may not know the correct |
1682 // |is_modifiable| value until they are fully loaded, which occurs when | 1684 // |is_modifiable| value until they are fully loaded, which occurs when |
1683 // DidStopLoading() is called. Defer showing the preview until then. | 1685 // DidStopLoading() is called. Defer showing the preview until then. |
1684 on_stop_loading_closure_ = | 1686 on_stop_loading_closure_ = |
1685 base::Bind(&PrintWebViewHelper::ShowScriptedPrintPreview, | 1687 base::Bind(&PrintWebViewHelper::ShowScriptedPrintPreview, |
1686 base::Unretained(this)); | 1688 base::Unretained(this)); |
1687 } else { | 1689 } else { |
1688 base::MessageLoop::current()->PostTask( | 1690 base::ThreadTaskRunnerHandle::Get()->PostTask( |
1689 FROM_HERE, base::Bind(&PrintWebViewHelper::ShowScriptedPrintPreview, | 1691 FROM_HERE, base::Bind(&PrintWebViewHelper::ShowScriptedPrintPreview, |
1690 weak_ptr_factory_.GetWeakPtr())); | 1692 weak_ptr_factory_.GetWeakPtr())); |
1691 } | 1693 } |
1692 IPC::SyncMessage* msg = | 1694 IPC::SyncMessage* msg = |
1693 new PrintHostMsg_SetupScriptedPrintPreview(routing_id()); | 1695 new PrintHostMsg_SetupScriptedPrintPreview(routing_id()); |
1694 msg->EnableMessagePumping(); | 1696 msg->EnableMessagePumping(); |
1695 Send(msg); | 1697 Send(msg); |
1696 is_scripted_preview_delayed_ = false; | 1698 is_scripted_preview_delayed_ = false; |
1697 return; | 1699 return; |
1698 } | 1700 } |
(...skipping 369 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2068 blink::WebConsoleMessage::LevelWarning, message)); | 2070 blink::WebConsoleMessage::LevelWarning, message)); |
2069 return false; | 2071 return false; |
2070 } | 2072 } |
2071 | 2073 |
2072 void PrintWebViewHelper::ScriptingThrottler::Reset() { | 2074 void PrintWebViewHelper::ScriptingThrottler::Reset() { |
2073 // Reset counter on successful print. | 2075 // Reset counter on successful print. |
2074 count_ = 0; | 2076 count_ = 0; |
2075 } | 2077 } |
2076 | 2078 |
2077 } // namespace printing | 2079 } // namespace printing |
OLD | NEW |