Chromium Code Reviews| 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 b50a5ba8497271a16355d00b767e5acb69e688e4..c09c632b0608ef9a95c485e372b74a829abbd6b6 100644 |
| --- a/chrome/browser/printing/print_view_manager.cc |
| +++ b/chrome/browser/printing/print_view_manager.cc |
| @@ -8,10 +8,7 @@ |
| #include "base/bind.h" |
| #include "base/lazy_instance.h" |
| -#include "base/metrics/histogram.h" |
| -#include "chrome/browser/browser_process.h" |
| #include "chrome/browser/plugins/chrome_plugin_service_filter.h" |
| -#include "chrome/browser/printing/print_job_manager.h" |
| #include "chrome/browser/printing/print_preview_dialog_controller.h" |
| #include "chrome/browser/ui/webui/print_preview/print_preview_ui.h" |
| #include "chrome/common/chrome_content_client.h" |
| @@ -31,9 +28,7 @@ namespace { |
| // Keeps track of pending scripted print preview closures. |
| // No locking, only access on the UI thread. |
| -typedef std::map<content::RenderProcessHost*, base::Closure> |
| - ScriptedPrintPreviewClosureMap; |
| -static base::LazyInstance<ScriptedPrintPreviewClosureMap> |
| +base::LazyInstance<std::map<content::RenderProcessHost*, base::Closure>> |
| g_scripted_print_preview_closure_map = LAZY_INSTANCE_INITIALIZER; |
| void EnableInternalPDFPluginForContents(int render_process_id, |
| @@ -59,7 +54,7 @@ namespace printing { |
| PrintViewManager::PrintViewManager(content::WebContents* web_contents) |
| : PrintViewManagerBase(web_contents), |
| print_preview_state_(NOT_PREVIEWING), |
| - scripted_print_preview_rph_(NULL) { |
| + scripted_print_preview_rph_(nullptr) { |
| if (PrintPreviewDialogController::IsPrintPreviewDialog(web_contents)) { |
| EnableInternalPDFPluginForContents( |
| web_contents->GetRenderProcessHost()->GetID(), |
| @@ -85,20 +80,21 @@ bool PrintViewManager::BasicPrint() { |
| PrintPreviewDialogController::GetInstance(); |
| if (!dialog_controller) |
| return false; |
| + |
| content::WebContents* print_preview_dialog = |
| dialog_controller->GetPrintPreviewForContents(web_contents()); |
| - if (print_preview_dialog) { |
| - if (!print_preview_dialog->GetWebUI()) |
| - return false; |
| - PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>( |
| - print_preview_dialog->GetWebUI()->GetController()); |
| - print_preview_ui->OnShowSystemDialog(); |
| - return true; |
| - } else { |
| + if (!print_preview_dialog) |
| return PrintNow(); |
| - } |
| + |
| + if (!print_preview_dialog->GetWebUI()) |
| + return false; |
| + |
| + PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>( |
| + print_preview_dialog->GetWebUI()->GetController()); |
| + print_preview_ui->OnShowSystemDialog(); |
| + return true; |
| } |
| -#endif // ENABLE_BASIC_PRINTING |
| +#endif // defined(ENABLE_BASIC_PRINTING) |
| bool PrintViewManager::PrintPreviewNow(bool selection_only) { |
| // Users can send print commands all they want and it is beyond |
| @@ -127,14 +123,12 @@ void PrintViewManager::PrintPreviewDone() { |
| DCHECK_NE(NOT_PREVIEWING, print_preview_state_); |
| if (print_preview_state_ == SCRIPTED_PREVIEW) { |
| - ScriptedPrintPreviewClosureMap& map = |
| - g_scripted_print_preview_closure_map.Get(); |
| - ScriptedPrintPreviewClosureMap::iterator it = |
| - map.find(scripted_print_preview_rph_); |
| + auto& map = g_scripted_print_preview_closure_map.Get(); |
| + auto it = map.find(scripted_print_preview_rph_); |
| CHECK(it != map.end()); |
| it->second.Run(); |
| - map.erase(scripted_print_preview_rph_); |
| - scripted_print_preview_rph_ = NULL; |
| + map.erase(it); |
| + scripted_print_preview_rph_ = nullptr; |
| } |
| print_preview_state_ = NOT_PREVIEWING; |
| } |
| @@ -160,16 +154,15 @@ void PrintViewManager::OnDidShowPrintDialog() { |
| void PrintViewManager::OnSetupScriptedPrintPreview(IPC::Message* reply_msg) { |
| DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| - ScriptedPrintPreviewClosureMap& map = |
| - g_scripted_print_preview_closure_map.Get(); |
| + auto& map = g_scripted_print_preview_closure_map.Get(); |
| content::RenderProcessHost* rph = web_contents()->GetRenderProcessHost(); |
| - // This should always be 0 once we get modal window.print(). |
| - if (map.count(rph) != 0) { |
| + if (base::ContainsKey(map, rph)) { |
|
tommycli
2016/08/26 16:40:13
nit: no need for comment anymore?
Lei Zhang
2016/08/26 16:42:19
Are you referring to the old line 167 comment? Sli
tommycli
2016/08/26 16:42:59
yeah. okay cool
|
| // Renderer already handling window.print() in another View. |
| Send(reply_msg); |
| return; |
| } |
| + |
| if (print_preview_state_ != NOT_PREVIEWING) { |
| // If a user initiated print dialog is already open, ignore the scripted |
| // print message. |
| @@ -186,11 +179,8 @@ void PrintViewManager::OnSetupScriptedPrintPreview(IPC::Message* reply_msg) { |
| } |
| print_preview_state_ = SCRIPTED_PREVIEW; |
| - base::Closure callback = |
| - base::Bind(&PrintViewManager::OnScriptedPrintPreviewReply, |
| - base::Unretained(this), |
| - reply_msg); |
| - map[rph] = callback; |
| + map[rph] = base::Bind(&PrintViewManager::OnScriptedPrintPreviewReply, |
| + base::Unretained(this), reply_msg); |
| scripted_print_preview_rph_ = rph; |
| } |
| @@ -201,6 +191,7 @@ void PrintViewManager::OnShowScriptedPrintPreview(bool source_is_modifiable) { |
| PrintPreviewDone(); |
| return; |
| } |
| + |
| dialog_controller->PrintPreview(web_contents()); |
| PrintHostMsg_RequestPrintPreview_Params params; |
| params.is_modifiable = source_is_modifiable; |
| @@ -224,7 +215,7 @@ bool PrintViewManager::OnMessageReceived(const IPC::Message& message) { |
| IPC_MESSAGE_UNHANDLED(handled = false) |
| IPC_END_MESSAGE_MAP() |
| - return handled ? true : PrintViewManagerBase::OnMessageReceived(message); |
| + return handled || PrintViewManagerBase::OnMessageReceived(message); |
| } |
| } // namespace printing |