Commit ac5e320d authored by Lei Zhang's avatar Lei Zhang Committed by Commit Bot

Fix JobEventDetails leaks in PrintJobWorker.

This refcounted class was not being held in a scoped_refptr.

BUG=260806

Change-Id: Ie32550f28ed220b76d2e9498204a050b4e0763d9
Reviewed-on: https://chromium-review.googlesource.com/987117
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: default avatarRebekah Potter <rbpotter@chromium.org>
Cr-Commit-Position: refs/heads/master@{#549144}
parent 9d05ec00
...@@ -94,12 +94,13 @@ void NotificationCallback(PrintJobWorkerOwner* print_job, ...@@ -94,12 +94,13 @@ void NotificationCallback(PrintJobWorkerOwner* print_job,
JobEventDetails::Type detail_type, JobEventDetails::Type detail_type,
int job_id, int job_id,
PrintedDocument* document) { PrintedDocument* document) {
JobEventDetails* details = new JobEventDetails(detail_type, job_id, document); auto details =
base::MakeRefCounted<JobEventDetails>(detail_type, job_id, document);
content::NotificationService::current()->Notify( content::NotificationService::current()->Notify(
chrome::NOTIFICATION_PRINT_JOB_EVENT, chrome::NOTIFICATION_PRINT_JOB_EVENT,
// We know that is is a PrintJob object in this circumstance. // We know that is is a PrintJob object in this circumstance.
content::Source<PrintJob>(static_cast<PrintJob*>(print_job)), content::Source<PrintJob>(static_cast<PrintJob*>(print_job)),
content::Details<JobEventDetails>(details)); content::Details<JobEventDetails>(details.get()));
} }
void PostOnOwnerThread(scoped_refptr<PrintJobWorkerOwner> owner, void PostOnOwnerThread(scoped_refptr<PrintJobWorkerOwner> owner,
...@@ -116,13 +117,13 @@ void PageNotificationCallback(PrintJobWorkerOwner* print_job, ...@@ -116,13 +117,13 @@ void PageNotificationCallback(PrintJobWorkerOwner* print_job,
int job_id, int job_id,
PrintedDocument* document, PrintedDocument* document,
PrintedPage* page) { PrintedPage* page) {
JobEventDetails* details = auto details = base::MakeRefCounted<JobEventDetails>(detail_type, job_id,
new JobEventDetails(detail_type, job_id, document, page); document, page);
content::NotificationService::current()->Notify( content::NotificationService::current()->Notify(
chrome::NOTIFICATION_PRINT_JOB_EVENT, chrome::NOTIFICATION_PRINT_JOB_EVENT,
// We know that is is a PrintJob object in this circumstance. // We know that is is a PrintJob object in this circumstance.
content::Source<PrintJob>(static_cast<PrintJob*>(print_job)), content::Source<PrintJob>(static_cast<PrintJob*>(print_job)),
content::Details<JobEventDetails>(details)); content::Details<JobEventDetails>(details.get()));
} }
#endif #endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment