mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-05-04 04:10:11 +02:00
76 lines
2.9 KiB
Diff
76 lines
2.9 KiB
Diff
diff --git chrome/browser/printing/printer_query.cc chrome/browser/printing/printer_query.cc
|
|
index 5786a450fdb6..2abaa6e3168e 100644
|
|
--- chrome/browser/printing/printer_query.cc
|
|
+++ chrome/browser/printing/printer_query.cc
|
|
@@ -12,6 +12,7 @@
|
|
#include "base/location.h"
|
|
#include "base/task/post_task.h"
|
|
#include "base/threading/thread_restrictions.h"
|
|
+#include "base/threading/thread_task_runner_handle.h"
|
|
#include "base/values.h"
|
|
#include "chrome/browser/printing/print_job_worker.h"
|
|
#include "content/public/browser/browser_task_traits.h"
|
|
@@ -22,7 +23,9 @@
|
|
namespace printing {
|
|
|
|
PrinterQuery::PrinterQuery(int render_process_id, int render_frame_id)
|
|
- : cookie_(PrintSettings::NewCookie()),
|
|
+ : base::RefCountedDeleteOnSequence<PrinterQuery>(
|
|
+ base::ThreadTaskRunnerHandle::Get()),
|
|
+ cookie_(PrintSettings::NewCookie()),
|
|
worker_(std::make_unique<PrintJobWorker>(render_process_id,
|
|
render_frame_id,
|
|
this)) {
|
|
@@ -57,7 +60,7 @@ void PrinterQuery::GetSettingsDone(const PrintSettings& new_settings,
|
|
}
|
|
|
|
std::unique_ptr<PrintJobWorker> PrinterQuery::DetachWorker() {
|
|
- DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
|
|
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
|
|
DCHECK(!callback_);
|
|
DCHECK(worker_);
|
|
|
|
diff --git chrome/browser/printing/printer_query.h chrome/browser/printing/printer_query.h
|
|
index 6d9b0e74196f..b6d8e2220d02 100644
|
|
--- chrome/browser/printing/printer_query.h
|
|
+++ chrome/browser/printing/printer_query.h
|
|
@@ -9,7 +9,7 @@
|
|
|
|
#include "base/callback.h"
|
|
#include "base/macros.h"
|
|
-#include "base/memory/ref_counted.h"
|
|
+#include "base/memory/ref_counted_delete_on_sequence.h"
|
|
#include "base/values.h"
|
|
#include "printing/print_job_constants.h"
|
|
#include "printing/print_settings.h"
|
|
@@ -24,7 +24,7 @@ namespace printing {
|
|
class PrintJobWorker;
|
|
|
|
// Query the printer for settings.
|
|
-class PrinterQuery : public base::RefCountedThreadSafe<PrinterQuery> {
|
|
+class PrinterQuery : public base::RefCountedDeleteOnSequence<PrinterQuery> {
|
|
public:
|
|
// GetSettings() UI parameter.
|
|
enum class GetSettingsAskParam {
|
|
@@ -41,6 +41,8 @@ class PrinterQuery : public base::RefCountedThreadSafe<PrinterQuery> {
|
|
|
|
// Detach the PrintJobWorker associated to this object. Virtual so that tests
|
|
// can override.
|
|
+ // Called on the UI thread.
|
|
+ // TODO(thestig): Do |worker_| and |callback_| need locks?
|
|
virtual std::unique_ptr<PrintJobWorker> DetachWorker();
|
|
|
|
// Virtual so that tests can override.
|
|
@@ -84,8 +86,9 @@ class PrinterQuery : public base::RefCountedThreadSafe<PrinterQuery> {
|
|
bool PostTask(const base::Location& from_here, base::OnceClosure task);
|
|
|
|
protected:
|
|
- // Refcounted class.
|
|
- friend class base::RefCountedThreadSafe<PrinterQuery>;
|
|
+ // RefCountedDeleteOnSequence class.
|
|
+ friend class base::RefCountedDeleteOnSequence<PrinterQuery>;
|
|
+ friend class base::DeleteHelper<PrinterQuery>;
|
|
|
|
virtual ~PrinterQuery();
|
|
|