Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(359)

Side by Side Diff: chrome/renderer/print_web_view_helper.cc

Issue 9705084: Block printing from blocked popup. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix init order Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 "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 643 matching lines...) Expand 10 before | Expand all | Expand 10 after
654 is_preview_enabled_(IsPrintPreviewEnabled()), 654 is_preview_enabled_(IsPrintPreviewEnabled()),
655 is_print_ready_metafile_sent_(false), 655 is_print_ready_metafile_sent_(false),
656 ignore_css_margins_(false), 656 ignore_css_margins_(false),
657 fit_to_page_(true), 657 fit_to_page_(true),
658 user_cancelled_scripted_print_count_(0), 658 user_cancelled_scripted_print_count_(0),
659 notify_browser_of_print_failure_(true) { 659 notify_browser_of_print_failure_(true) {
660 } 660 }
661 661
662 PrintWebViewHelper::~PrintWebViewHelper() {} 662 PrintWebViewHelper::~PrintWebViewHelper() {}
663 663
664 bool PrintWebViewHelper::IsScriptInitiatedPrintAllowed(
665 WebKit::WebFrame* frame) {
666 if (IsScriptInitiatedPrintTooFrequent(frame))
667 return false;
668 bool allowed = false;
669 IPC::SyncMessage* msg =
670 new PrintHostMsg_CheckScriptedPrintAllowed(routing_id(), &allowed);
671 msg->EnableMessagePumping();
672 Send(msg);
673 return allowed;
674 }
675
664 // Prints |frame| which called window.print(). 676 // Prints |frame| which called window.print().
665 void PrintWebViewHelper::PrintPage(WebKit::WebFrame* frame) { 677 void PrintWebViewHelper::PrintPage(WebKit::WebFrame* frame) {
666 DCHECK(frame); 678 DCHECK(frame);
667 679
668 // Allow Prerendering to cancel this print request if necessary. 680 // Allow Prerendering to cancel this print request if necessary.
669 if (prerender::PrerenderHelper::IsPrerendering(render_view())) { 681 if (prerender::PrerenderHelper::IsPrerendering(render_view())) {
670 Send(new ChromeViewHostMsg_CancelPrerenderForPrinting(routing_id())); 682 Send(new ChromeViewHostMsg_CancelPrerenderForPrinting(routing_id()));
671 return; 683 return;
672 } 684 }
673 685
674 if (IsScriptInitiatedPrintTooFrequent(frame)) 686 if (!IsScriptInitiatedPrintAllowed(frame))
675 return; 687 return;
676 IncrementScriptedPrintCount(); 688 IncrementScriptedPrintCount();
677 689
678 if (is_preview_enabled_) { 690 if (is_preview_enabled_) {
679 print_preview_context_.InitWithFrame(frame); 691 print_preview_context_.InitWithFrame(frame);
680 692
681 RequestPrintPreview(PRINT_PREVIEW_SCRIPTED); 693 RequestPrintPreview(PRINT_PREVIEW_SCRIPTED);
682 } else { 694 } else {
683 Print(frame, WebNode()); 695 Print(frame, WebNode());
684 } 696 }
(...skipping 1089 matching lines...) Expand 10 before | Expand all | Expand 10 after
1774 DCHECK(IsRendering()); 1786 DCHECK(IsRendering());
1775 return prep_frame_view_->GetPrintCanvasSize(); 1787 return prep_frame_view_->GetPrintCanvasSize();
1776 } 1788 }
1777 1789
1778 void PrintWebViewHelper::PrintPreviewContext::ClearContext() { 1790 void PrintWebViewHelper::PrintPreviewContext::ClearContext() {
1779 prep_frame_view_.reset(); 1791 prep_frame_view_.reset();
1780 metafile_.reset(); 1792 metafile_.reset();
1781 pages_to_render_.clear(); 1793 pages_to_render_.clear();
1782 error_ = PREVIEW_ERROR_NONE; 1794 error_ = PREVIEW_ERROR_NONE;
1783 } 1795 }
OLDNEW
« no previous file with comments | « chrome/renderer/print_web_view_helper.h ('k') | chrome/renderer/print_web_view_helper_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698