summaryrefslogtreecommitdiffstats
path: root/printing
diff options
context:
space:
mode:
authorvitalybuka <vitalybuka@chromium.org>2014-12-08 10:57:10 -0800
committerCommit bot <commit-bot@chromium.org>2014-12-08 18:57:31 +0000
commit12b875862044115add059e1dd1478be089c2f64d (patch)
treecb3b9610e470bbf2cb9d469b0853e145d2cfdbb4 /printing
parent17bc5fa32c21a30ba570cb02e25d92c2f1de35f3 (diff)
downloadchromium_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.cc14
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());
}