summaryrefslogtreecommitdiffstats
path: root/chrome/browser/printing
diff options
context:
space:
mode:
authorvitalybuka@chromium.org <vitalybuka@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-12 11:06:28 +0000
committervitalybuka@chromium.org <vitalybuka@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-12 11:06:28 +0000
commitcdcee3e4d01e2869a94a2747bf9555a98aa8f030 (patch)
tree3e48c7ad19a42361ca8ac329ceb19f8244a4acc6 /chrome/browser/printing
parent9628129a0e0177b8308f5b478a9c2cebeab4c8c6 (diff)
downloadchromium_src-cdcee3e4d01e2869a94a2747bf9555a98aa8f030.zip
chromium_src-cdcee3e4d01e2869a94a2747bf9555a98aa8f030.tar.gz
chromium_src-cdcee3e4d01e2869a94a2747bf9555a98aa8f030.tar.bz2
Fix crashe in PrintJob if Stop() called twice.
BUG=342398 Review URL: https://codereview.chromium.org/144463018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@250676 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/printing')
-rw-r--r--chrome/browser/printing/print_job.cc9
-rw-r--r--chrome/browser/printing/print_job.h2
2 files changed, 3 insertions, 8 deletions
diff --git a/chrome/browser/printing/print_job.cc b/chrome/browser/printing/print_job.cc
index 78d49c7..0171951 100644
--- a/chrome/browser/printing/print_job.cc
+++ b/chrome/browser/printing/print_job.cc
@@ -37,8 +37,7 @@ PrintJob::PrintJob()
settings_(),
is_job_pending_(false),
is_canceling_(false),
- quit_factory_(this),
- weak_ptr_factory_(this) {
+ quit_factory_(this) {
DCHECK(ui_message_loop_);
// This is normally a UI message loop, but in unit tests, the message loop is
// of the 'default' type.
@@ -329,14 +328,12 @@ void PrintJob::ControlledWorkerShutdown() {
// thread because it may block.
base::WorkerPool::PostTaskAndReply(
FROM_HERE,
- base::Bind(&PrintJobWorker::Stop,
- base::Unretained(worker_.get())),
+ base::Bind(&PrintJobWorker::Stop, base::Unretained(worker_.get())),
base::Bind(&PrintJob::HoldUntilStopIsCalled, this),
false);
is_job_pending_ = false;
- registrar_.Remove(this, chrome::NOTIFICATION_PRINT_JOB_EVENT,
- content::Source<PrintJob>(this));
+ registrar_.RemoveAll();
UpdatePrintedDocument(NULL);
}
diff --git a/chrome/browser/printing/print_job.h b/chrome/browser/printing/print_job.h
index 69ff756..2ff827a 100644
--- a/chrome/browser/printing/print_job.h
+++ b/chrome/browser/printing/print_job.h
@@ -145,8 +145,6 @@ class PrintJob : public PrintJobWorkerOwner,
// Used at shutdown so that we can quit a nested message loop.
base::WeakPtrFactory<PrintJob> quit_factory_;
- base::WeakPtrFactory<PrintJob> weak_ptr_factory_;
-
DISALLOW_COPY_AND_ASSIGN(PrintJob);
};