diff options
author | vitalybuka <vitalybuka@chromium.org> | 2014-12-08 10:57:10 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-12-08 18:57:31 +0000 |
commit | 12b875862044115add059e1dd1478be089c2f64d (patch) | |
tree | cb3b9610e470bbf2cb9d469b0853e145d2cfdbb4 /printing | |
parent | 17bc5fa32c21a30ba570cb02e25d92c2f1de35f3 (diff) | |
download | chromium_src-12b875862044115add059e1dd1478be089c2f64d.zip chromium_src-12b875862044115add059e1dd1478be089c2f64d.tar.gz chromium_src-12b875862044115add059e1dd1478be089c2f64d.tar.bz2 |
Switch back to PrintDlgEx instead of DocumentProperties.
For unclear reasons DocumentProperties with DM_IN_PROMPT sometimes does not
return. This is happening mostly on 32bit Windows inside of base::MessageLoop::ScopedNestableTaskAllower.
BUG=436810
Review URL: https://codereview.chromium.org/766823004
Cr-Commit-Position: refs/heads/master@{#307294}
Diffstat (limited to 'printing')
-rw-r--r-- | printing/printing_context_win.cc | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/printing/printing_context_win.cc b/printing/printing_context_win.cc index ae71b9b..c396b1a 100644 --- a/printing/printing_context_win.cc +++ b/printing/printing_context_win.cc @@ -6,6 +6,7 @@ #include <algorithm> +#include "base/bind.h" #include "base/strings/string_number_conversions.h" #include "base/strings/utf_string_conversions.h" #include "printing/backend/print_backend.h" @@ -24,6 +25,14 @@ namespace printing { +namespace { + +void AssingResult(PrintingContext::Result* out, PrintingContext::Result in) { + *out = in; +} + +} // namespace + // static scoped_ptr<PrintingContext> PrintingContext::Create(Delegate* delegate) { #if defined(ENABLE_BASIC_PRINTING) @@ -198,8 +207,9 @@ PrintingContext::Result PrintingContextWin::UpdatePrinterSettings( // Update data using DocumentProperties. if (show_system_dialog) { - scoped_dev_mode = ShowPrintDialog( - printer.Get(), delegate_->GetParentView(), scoped_dev_mode.get()); + PrintingContext::Result result = PrintingContext::FAILED; + AskUserForSettings(0, false, base::Bind(&AssingResult, &result)); + return result; } else { scoped_dev_mode = CreateDevMode(printer.Get(), scoped_dev_mode.get()); } |