| Index: chrome/browser/printing/print_view_manager.cc
|
| diff --git a/chrome/browser/printing/print_view_manager.cc b/chrome/browser/printing/print_view_manager.cc
|
| index 2b720370dbd7807d95b42e8dfa267296032ee28f..260c94b46af2bf85fa494304b267c1f4c673c0c5 100644
|
| --- a/chrome/browser/printing/print_view_manager.cc
|
| +++ b/chrome/browser/printing/print_view_manager.cc
|
| @@ -97,7 +97,8 @@ bool PrintViewManager::PrintPreviewNow(bool selection_only) {
|
| }
|
|
|
| void PrintViewManager::PrintPreviewForWebNode() {
|
| - DCHECK_EQ(NOT_PREVIEWING, print_preview_state_);
|
| + if (print_preview_state_ != NOT_PREVIEWING)
|
| + return;
|
| print_preview_state_ = USER_INITIATED_PREVIEW;
|
| }
|
|
|
| @@ -133,8 +134,7 @@ void PrintViewManager::OnDidShowPrintDialog() {
|
| observer_->OnPrintDialogShown();
|
| }
|
|
|
| -void PrintViewManager::OnScriptedPrintPreview(bool source_is_modifiable,
|
| - IPC::Message* reply_msg) {
|
| +void PrintViewManager::OnSetupScriptedPrintPreview(IPC::Message* reply_msg) {
|
| BrowserThread::CurrentlyOn(BrowserThread::UI);
|
| ScriptedPrintPreviewClosureMap& map =
|
| g_scripted_print_preview_closure_map.Get();
|
| @@ -168,7 +168,15 @@ void PrintViewManager::OnScriptedPrintPreview(bool source_is_modifiable,
|
| reply_msg);
|
| map[rph] = callback;
|
| scripted_print_preview_rph_ = rph;
|
| +}
|
|
|
| +void PrintViewManager::OnShowScriptedPrintPreview(bool source_is_modifiable) {
|
| + PrintPreviewDialogController* dialog_controller =
|
| + PrintPreviewDialogController::GetInstance();
|
| + if (!dialog_controller) {
|
| + PrintPreviewDone();
|
| + return;
|
| + }
|
| dialog_controller->PrintPreview(web_contents());
|
| PrintHostMsg_RequestPrintPreview_Params params;
|
| params.is_modifiable = source_is_modifiable;
|
| @@ -185,8 +193,10 @@ bool PrintViewManager::OnMessageReceived(const IPC::Message& message) {
|
| bool handled = true;
|
| IPC_BEGIN_MESSAGE_MAP(PrintViewManager, message)
|
| IPC_MESSAGE_HANDLER(PrintHostMsg_DidShowPrintDialog, OnDidShowPrintDialog)
|
| - IPC_MESSAGE_HANDLER_DELAY_REPLY(PrintHostMsg_ScriptedPrintPreview,
|
| - OnScriptedPrintPreview)
|
| + IPC_MESSAGE_HANDLER_DELAY_REPLY(PrintHostMsg_SetupScriptedPrintPreview,
|
| + OnSetupScriptedPrintPreview)
|
| + IPC_MESSAGE_HANDLER(PrintHostMsg_ShowScriptedPrintPreview,
|
| + OnShowScriptedPrintPreview)
|
| IPC_MESSAGE_UNHANDLED(handled = false)
|
| IPC_END_MESSAGE_MAP()
|
|
|
|
|