OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 // TODO(sgurun) copied from chrome/renderer. Remove after crbug.com/322276 | 5 // TODO(sgurun) copied from chrome/renderer. Remove after crbug.com/322276 |
6 | 6 |
7 #include "android_webview/renderer/print_web_view_helper.h" | 7 #include "android_webview/renderer/print_web_view_helper.h" |
8 | 8 |
9 #include <string> | 9 #include <string> |
10 | 10 |
(...skipping 532 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
543 virtual blink::WebFrame* createChildFrame(blink::WebLocalFrame* parent, | 543 virtual blink::WebFrame* createChildFrame(blink::WebLocalFrame* parent, |
544 const blink::WebString& name); | 544 const blink::WebString& name); |
545 virtual void frameDetached(blink::WebFrame* frame); | 545 virtual void frameDetached(blink::WebFrame* frame); |
546 | 546 |
547 private: | 547 private: |
548 void CallOnReady(); | 548 void CallOnReady(); |
549 void ResizeForPrinting(); | 549 void ResizeForPrinting(); |
550 void RestoreSize(); | 550 void RestoreSize(); |
551 void CopySelection(const WebPreferences& preferences); | 551 void CopySelection(const WebPreferences& preferences); |
552 | 552 |
553 base::WeakPtrFactory<PrepareFrameAndViewForPrint> weak_ptr_factory_; | |
554 | |
555 FrameReference frame_; | 553 FrameReference frame_; |
556 blink::WebNode node_to_print_; | 554 blink::WebNode node_to_print_; |
557 bool owns_web_view_; | 555 bool owns_web_view_; |
558 blink::WebPrintParams web_print_params_; | 556 blink::WebPrintParams web_print_params_; |
559 gfx::Size prev_view_size_; | 557 gfx::Size prev_view_size_; |
560 gfx::Size prev_scroll_offset_; | 558 gfx::Size prev_scroll_offset_; |
561 int expected_pages_count_; | 559 int expected_pages_count_; |
562 base::Closure on_ready_; | 560 base::Closure on_ready_; |
563 bool should_print_backgrounds_; | 561 bool should_print_backgrounds_; |
564 bool should_print_selection_only_; | 562 bool should_print_selection_only_; |
565 bool is_printing_started_; | 563 bool is_printing_started_; |
566 | 564 |
| 565 base::WeakPtrFactory<PrepareFrameAndViewForPrint> weak_ptr_factory_; |
| 566 |
567 DISALLOW_COPY_AND_ASSIGN(PrepareFrameAndViewForPrint); | 567 DISALLOW_COPY_AND_ASSIGN(PrepareFrameAndViewForPrint); |
568 }; | 568 }; |
569 | 569 |
570 PrepareFrameAndViewForPrint::PrepareFrameAndViewForPrint( | 570 PrepareFrameAndViewForPrint::PrepareFrameAndViewForPrint( |
571 const PrintMsg_Print_Params& params, | 571 const PrintMsg_Print_Params& params, |
572 blink::WebLocalFrame* frame, | 572 blink::WebLocalFrame* frame, |
573 const blink::WebNode& node, | 573 const blink::WebNode& node, |
574 bool ignore_css_margins) | 574 bool ignore_css_margins) |
575 : weak_ptr_factory_(this), | 575 : frame_(frame), |
576 frame_(frame), | |
577 node_to_print_(node), | 576 node_to_print_(node), |
578 owns_web_view_(false), | 577 owns_web_view_(false), |
579 expected_pages_count_(0), | 578 expected_pages_count_(0), |
580 should_print_backgrounds_(params.should_print_backgrounds), | 579 should_print_backgrounds_(params.should_print_backgrounds), |
581 should_print_selection_only_(params.selection_only), | 580 should_print_selection_only_(params.selection_only), |
582 is_printing_started_(false) { | 581 is_printing_started_(false), |
| 582 weak_ptr_factory_(this) { |
583 PrintMsg_Print_Params print_params = params; | 583 PrintMsg_Print_Params print_params = params; |
584 if (!should_print_selection_only_ || | 584 if (!should_print_selection_only_ || |
585 !PrintingNodeOrPdfFrame(frame, node_to_print_)) { | 585 !PrintingNodeOrPdfFrame(frame, node_to_print_)) { |
586 bool fit_to_page = ignore_css_margins && | 586 bool fit_to_page = ignore_css_margins && |
587 print_params.print_scaling_option == | 587 print_params.print_scaling_option == |
588 blink::WebPrintScalingOptionFitToPrintableArea; | 588 blink::WebPrintScalingOptionFitToPrintableArea; |
589 ComputeWebKitPrintParamsInDesiredDpi(params, &web_print_params_); | 589 ComputeWebKitPrintParamsInDesiredDpi(params, &web_print_params_); |
590 frame->printBegin(web_print_params_, node_to_print_); | 590 frame->printBegin(web_print_params_, node_to_print_); |
591 print_params = CalculatePrintParamsForCss(frame, 0, print_params, | 591 print_params = CalculatePrintParamsForCss(frame, 0, print_params, |
592 ignore_css_margins, fit_to_page, | 592 ignore_css_margins, fit_to_page, |
(...skipping 1415 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2008 } | 2008 } |
2009 | 2009 |
2010 void PrintWebViewHelper::PrintPreviewContext::ClearContext() { | 2010 void PrintWebViewHelper::PrintPreviewContext::ClearContext() { |
2011 prep_frame_view_.reset(); | 2011 prep_frame_view_.reset(); |
2012 metafile_.reset(); | 2012 metafile_.reset(); |
2013 pages_to_render_.clear(); | 2013 pages_to_render_.clear(); |
2014 error_ = PREVIEW_ERROR_NONE; | 2014 error_ = PREVIEW_ERROR_NONE; |
2015 } | 2015 } |
2016 | 2016 |
2017 } // namespace printing | 2017 } // namespace printing |
OLD | NEW |