diff options
author | thestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-05 00:29:13 +0000 |
---|---|---|
committer | thestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-05 00:29:13 +0000 |
commit | 1c38079b6d710a82ee9ea9987ff1b4d3db584833 (patch) | |
tree | 8c640b903ff985fa11d151aa2bbbc70bb265ed4b | |
parent | e4205908361e9c4f9474a5c30375ff3a19c315ac (diff) | |
download | chromium_src-1c38079b6d710a82ee9ea9987ff1b4d3db584833.zip chromium_src-1c38079b6d710a82ee9ea9987ff1b4d3db584833.tar.gz chromium_src-1c38079b6d710a82ee9ea9987ff1b4d3db584833.tar.bz2 |
Merge 95471 - Print Preview: Fix crash in PrepareFrameAndViewForPrint.
BUG=90887
TEST=Find a way to trigger a print preview generation failure, then reload the print preview tab.
Review URL: http://codereview.chromium.org/7577001
TBR=thestig@chromium.org
Review URL: http://codereview.chromium.org/7566052
git-svn-id: svn://svn.chromium.org/chrome/branches/835/src@95543 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/renderer/print_web_view_helper.cc | 8 | ||||
-rw-r--r-- | chrome/renderer/print_web_view_helper.h | 3 |
2 files changed, 10 insertions, 1 deletions
diff --git a/chrome/renderer/print_web_view_helper.cc b/chrome/renderer/print_web_view_helper.cc index 7ad456f..cd67895f 100644 --- a/chrome/renderer/print_web_view_helper.cc +++ b/chrome/renderer/print_web_view_helper.cc @@ -507,7 +507,7 @@ void PrintWebViewHelper::DidFinishPrinting(PrintingResult result) { store_print_pages_params = false; int cookie = print_pages_params_->params.document_cookie; Send(new PrintHostMsg_PrintPreviewFailed(routing_id(), cookie)); - print_preview_context_.Abort(); + print_preview_context_.Failed(); } else if (result == ABORT_PREVIEW) { DCHECK(is_preview_); store_print_pages_params = false; @@ -1056,6 +1056,12 @@ void PrintWebViewHelper::PrintPreviewContext::Finished() { ClearContext(); } +void PrintWebViewHelper::PrintPreviewContext::Failed() { + DCHECK(IsBusy()); + state_ = INITIALIZED; + ClearContext(); +} + void PrintWebViewHelper::PrintPreviewContext::Abort() { state_ = UNINITIALIZED; ClearContext(); diff --git a/chrome/renderer/print_web_view_helper.h b/chrome/renderer/print_web_view_helper.h index 14fc465..6df2b69 100644 --- a/chrome/renderer/print_web_view_helper.h +++ b/chrome/renderer/print_web_view_helper.h @@ -332,6 +332,9 @@ class PrintWebViewHelper : public RenderViewObserver, // Cleanup after print preview finishes. void Finished(); + // Cleanup after print preview fails. + void Failed(); + // Abort the print preview. void Abort(); |