From e3aa0b9a9babba87ed82e005e04482bbb7a2123f Mon Sep 17 00:00:00 2001 From: Lei Zhang Date: Thu, 11 Jun 2020 08:59:23 +0000 Subject: [PATCH] Add base::GetDeleteFileCallback(). There exists many base::DeleteFile() callers that want to use PostTask() APIs to delete a file on another task runner. To do so, they have to write: base::BindOnce(base::IgnoreResult(&base::DeleteFile), path, false) To simply the callers, and help transition base::DeleteFile() to remove its |recursive| boolean parameter, add base::GetDeleteFileCallback(). Now, callers can just write: base::BindOnce(base::GetDeleteFileCallback(), path) Use base::GetDeleteFileCallback() in chrome/, content/, and ui/. Bug: 1009837 Change-Id: I06fc6c9585dcb04034b5b25f18f3e96ed94d32c8 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2203412 Reviewed-by: Daniel Cheng Reviewed-by: Thomas Anderson Reviewed-by: Kinuko Yasuda Commit-Queue: Lei Zhang Cr-Commit-Position: refs/heads/master@{#777293} --- base/files/file_util.cc | 12 ++++++++++++ base/files/file_util.h | 5 +++++ chrome/browser/apps/app_shim/app_shim_listener.mm | 3 +-- .../chromeos/app_mode/kiosk_app_data_base.cc | 3 +-- .../chromeos/crostini/crostini_export_import.cc | 14 +++++--------- .../login/users/avatar/user_image_manager_impl.cc | 4 ++-- .../chromeos/system_logs/debug_log_writer.cc | 3 +-- .../media/webrtc/webrtc_rtp_dump_handler.cc | 12 ++++-------- .../chromeos/mtp_device_delegate_impl_chromeos.cc | 3 +-- .../metrics/chrome_metrics_service_client.cc | 3 +-- .../offline_pages/offline_page_mhtml_archiver.cc | 4 +--- .../download_protection/download_feedback.cc | 3 +-- .../download_feedback_service.cc | 3 +-- chrome/browser/search/instant_service.cc | 2 +- .../ui/webui/chromeos/drive_internals_ui.cc | 3 +-- .../web_app_file_handler_registration_win.cc | 4 ++-- .../components/recovery_component.cc | 2 +- .../chrome_cleaner/logging/pending_logs_service.cc | 2 +- .../chrome_cleaner/test/generate_test_uws_test.cc | 8 ++++---- .../native_file_system_file_writer_impl.cc | 6 ++---- .../browser/web_contents/web_contents_view_aura.cc | 3 +-- ui/gtk/print_dialog_gtk.cc | 3 +-- 22 files changed, 50 insertions(+), 55 deletions(-) diff --git a/base/files/file_util.cc b/base/files/file_util.cc index 546934b7084b0c..41ee7ad8bcb60c 100644 --- a/base/files/file_util.cc +++ b/base/files/file_util.cc @@ -27,6 +27,18 @@ namespace base { #if !defined(OS_NACL_NONSFI) +namespace { + +void DeleteFileHelper(const FilePath& path) { + DeleteFile(path, /*recursive=*/false); +} + +} // namespace + +OnceCallback GetDeleteFileCallback() { + return BindOnce(&DeleteFileHelper); +} + int64_t ComputeDirectorySize(const FilePath& root_path) { int64_t running_size = 0; FileEnumerator file_iter(root_path, true, FileEnumerator::FILES); diff --git a/base/files/file_util.h b/base/files/file_util.h index 76bd98767f5348..06b78339767561 100644 --- a/base/files/file_util.h +++ b/base/files/file_util.h @@ -23,6 +23,7 @@ #endif #include "base/base_export.h" +#include "base/callback_forward.h" #include "base/containers/span.h" #include "base/files/file.h" #include "base/files/file_path.h" @@ -87,6 +88,10 @@ BASE_EXPORT bool DeleteFile(const FilePath& path, bool recursive); // WARNING: USING THIS EQUIVALENT TO "rm -rf", SO USE WITH CAUTION. BASE_EXPORT bool DeleteFileRecursively(const FilePath& path); +// Simplified way to get a callback to do DeleteFile(path, false) and ignore the +// DeleteFile() result. +BASE_EXPORT OnceCallback GetDeleteFileCallback(); + #if defined(OS_WIN) // Schedules to delete the given path, whether it's a file or a directory, until // the operating system is restarted. diff --git a/chrome/browser/apps/app_shim/app_shim_listener.mm b/chrome/browser/apps/app_shim/app_shim_listener.mm index 344345dbe5d829..51ead1ccad3d47 100644 --- a/chrome/browser/apps/app_shim/app_shim_listener.mm +++ b/chrome/browser/apps/app_shim/app_shim_listener.mm @@ -63,8 +63,7 @@ FROM_HERE, {base::MayBlock(), base::TaskPriority::BEST_EFFORT, base::TaskShutdownBehavior::BLOCK_SHUTDOWN}, - base::BindOnce(base::IgnoreResult(&base::DeleteFile), version_path, - false)); + base::BindOnce(base::GetDeleteFileCallback(), version_path)); } } diff --git a/chrome/browser/chromeos/app_mode/kiosk_app_data_base.cc b/chrome/browser/chromeos/app_mode/kiosk_app_data_base.cc index e07dc6a3f02449..93347cf4412ac4 100644 --- a/chrome/browser/chromeos/app_mode/kiosk_app_data_base.cc +++ b/chrome/browser/chromeos/app_mode/kiosk_app_data_base.cc @@ -123,8 +123,7 @@ void KioskAppDataBase::ClearCache() { if (!icon_path_.empty()) { base::ThreadPool::PostTask( FROM_HERE, {base::MayBlock(), base::TaskPriority::BEST_EFFORT}, - base::BindOnce(base::IgnoreResult(&base::DeleteFile), icon_path_, - false)); + base::BindOnce(base::GetDeleteFileCallback(), icon_path_)); } } diff --git a/chrome/browser/chromeos/crostini/crostini_export_import.cc b/chrome/browser/chromeos/crostini/crostini_export_import.cc index a665d7120982d2..29d9f01b0a50b7 100644 --- a/chrome/browser/chromeos/crostini/crostini_export_import.cc +++ b/chrome/browser/chromeos/crostini/crostini_export_import.cc @@ -296,9 +296,8 @@ void CrostiniExportImport::Start( kCrostiniDefaultVmName, path, false, base::BindOnce(&CrostiniExportImport::ExportAfterSharing, weak_ptr_factory_.GetWeakPtr(), - operation_data->container_id, std::move(callback)) - - )); + operation_data->container_id, + std::move(callback)))); break; case ExportImportType::IMPORT: guest_os::GuestOsSharePath::GetForProfile(profile_)->SharePath( @@ -356,8 +355,7 @@ void CrostiniExportImport::OnExportComplete( // file is functionally the same as a successful cancel. base::ThreadPool::PostTask( FROM_HERE, {base::MayBlock(), base::TaskPriority::BEST_EFFORT}, - base::BindOnce(base::IgnoreResult(&base::DeleteFile), - it->second->path(), false)); + base::BindOnce(base::GetDeleteFileCallback(), it->second->path())); RemoveTracker(it)->SetStatusCancelled(); break; } @@ -389,8 +387,7 @@ void CrostiniExportImport::OnExportComplete( // file needs to be cleaned up. base::ThreadPool::PostTask( FROM_HERE, {base::MayBlock(), base::TaskPriority::BEST_EFFORT}, - base::BindOnce(base::IgnoreResult(&base::DeleteFile), - it->second->path(), false)); + base::BindOnce(base::GetDeleteFileCallback(), it->second->path())); RemoveTracker(it)->SetStatusCancelled(); break; } @@ -401,8 +398,7 @@ void CrostiniExportImport::OnExportComplete( LOG(ERROR) << "Error exporting " << int(result); base::ThreadPool::PostTask( FROM_HERE, {base::MayBlock(), base::TaskPriority::BEST_EFFORT}, - base::BindOnce(base::IgnoreResult(&base::DeleteFile), - it->second->path(), false)); + base::BindOnce(base::GetDeleteFileCallback(), it->second->path())); switch (result) { case CrostiniResult::CONTAINER_EXPORT_IMPORT_FAILED_VM_STOPPED: enum_hist_result = ExportContainerResult::kFailedVmStopped; diff --git a/chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.cc b/chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.cc index dd7c2b2ae6993f..e37dbc37532360 100644 --- a/chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.cc +++ b/chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.cc @@ -955,8 +955,8 @@ void UserImageManagerImpl::DeleteUserImageAndLocalStateEntry( image_properties->GetString(kImagePathNodeName, &image_path); if (!image_path.empty()) { background_task_runner_->PostTask( - FROM_HERE, base::BindOnce(base::IgnoreResult(&base::DeleteFile), - base::FilePath(image_path), false)); + FROM_HERE, base::BindOnce(base::GetDeleteFileCallback(), + base::FilePath(image_path))); } update->RemoveWithoutPathExpansion(user_id(), nullptr); } diff --git a/chrome/browser/chromeos/system_logs/debug_log_writer.cc b/chrome/browser/chromeos/system_logs/debug_log_writer.cc index 5f9c3ccddde10f..ab77b844a3b229 100644 --- a/chrome/browser/chromeos/system_logs/debug_log_writer.cc +++ b/chrome/browser/chromeos/system_logs/debug_log_writer.cc @@ -49,8 +49,7 @@ void WriteDebugLogToFileCompleted(const base::FilePath& file_path, DCHECK_CURRENTLY_ON(content::BrowserThread::UI); if (!succeeded) { bool posted = g_sequenced_task_runner.Get()->PostTaskAndReply( - FROM_HERE, - base::BindOnce(base::IgnoreResult(&base::DeleteFile), file_path, false), + FROM_HERE, base::BindOnce(base::GetDeleteFileCallback(), file_path), base::BindOnce(std::move(callback), file_path, false)); DCHECK(posted); return; diff --git a/chrome/browser/media/webrtc/webrtc_rtp_dump_handler.cc b/chrome/browser/media/webrtc/webrtc_rtp_dump_handler.cc index 1bc27e2a6d9ba1..1216bac21f65b0 100644 --- a/chrome/browser/media/webrtc/webrtc_rtp_dump_handler.cc +++ b/chrome/browser/media/webrtc/webrtc_rtp_dump_handler.cc @@ -64,15 +64,13 @@ WebRtcRtpDumpHandler::~WebRtcRtpDumpHandler() { if (incoming_state_ != STATE_NONE && !incoming_dump_path_.empty()) { base::ThreadPool::PostTask( FROM_HERE, {base::MayBlock(), base::TaskPriority::BEST_EFFORT}, - base::BindOnce(base::IgnoreResult(&base::DeleteFile), - incoming_dump_path_, false)); + base::BindOnce(base::GetDeleteFileCallback(), incoming_dump_path_)); } if (outgoing_state_ != STATE_NONE && !outgoing_dump_path_.empty()) { base::ThreadPool::PostTask( FROM_HERE, {base::MayBlock(), base::TaskPriority::BEST_EFFORT}, - base::BindOnce(base::IgnoreResult(&base::DeleteFile), - outgoing_dump_path_, false)); + base::BindOnce(base::GetDeleteFileCallback(), outgoing_dump_path_)); } } @@ -295,8 +293,7 @@ void WebRtcRtpDumpHandler::OnDumpEnded(const base::Closure& callback, if (!incoming_success) { base::ThreadPool::PostTask( FROM_HERE, {base::MayBlock(), base::TaskPriority::BEST_EFFORT}, - base::BindOnce(base::IgnoreResult(&base::DeleteFile), - incoming_dump_path_, false)); + base::BindOnce(base::GetDeleteFileCallback(), incoming_dump_path_)); DVLOG(2) << "Deleted invalid incoming dump " << incoming_dump_path_.value(); @@ -311,8 +308,7 @@ void WebRtcRtpDumpHandler::OnDumpEnded(const base::Closure& callback, if (!outgoing_success) { base::ThreadPool::PostTask( FROM_HERE, {base::MayBlock(), base::TaskPriority::BEST_EFFORT}, - base::BindOnce(base::IgnoreResult(&base::DeleteFile), - outgoing_dump_path_, false)); + base::BindOnce(base::GetDeleteFileCallback(), outgoing_dump_path_)); DVLOG(2) << "Deleted invalid outgoing dump " << outgoing_dump_path_.value(); diff --git a/chrome/browser/media_galleries/chromeos/mtp_device_delegate_impl_chromeos.cc b/chrome/browser/media_galleries/chromeos/mtp_device_delegate_impl_chromeos.cc index 189c83b2a852a5..0a2c0ea051089d 100644 --- a/chrome/browser/media_galleries/chromeos/mtp_device_delegate_impl_chromeos.cc +++ b/chrome/browser/media_galleries/chromeos/mtp_device_delegate_impl_chromeos.cc @@ -382,8 +382,7 @@ void CloseFileDescriptor(const int file_descriptor) { void DeleteTemporaryFile(const base::FilePath& file_path) { base::ThreadPool::PostTask( FROM_HERE, {base::MayBlock(), base::TaskPriority::BEST_EFFORT}, - base::BindOnce(base::IgnoreResult(base::DeleteFile), file_path, - false /* not recursive*/)); + base::BindOnce(base::GetDeleteFileCallback(), file_path)); } // A fake callback to be passed as CopyFileProgressCallback. diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/browser/metrics/chrome_metrics_service_client.cc index 5e291d2b5629ba..7f2fddd68dcc2b 100644 --- a/chrome/browser/metrics/chrome_metrics_service_client.cc +++ b/chrome/browser/metrics/chrome_metrics_service_client.cc @@ -244,8 +244,7 @@ void RegisterOrRemovePreviousRunMetricsFile( FROM_HERE, {base::MayBlock(), base::TaskPriority::BEST_EFFORT, base::TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN}, - base::BindOnce(base::IgnoreResult(&base::DeleteFile), metrics_file, - /*recursive=*/false)); + base::BindOnce(base::GetDeleteFileCallback(), metrics_file)); } } diff --git a/chrome/browser/offline_pages/offline_page_mhtml_archiver.cc b/chrome/browser/offline_pages/offline_page_mhtml_archiver.cc index 3e33799494c93e..4711ee159b45c5 100644 --- a/chrome/browser/offline_pages/offline_page_mhtml_archiver.cc +++ b/chrome/browser/offline_pages/offline_page_mhtml_archiver.cc @@ -33,9 +33,7 @@ void DeleteFileOnFileThread(const base::FilePath& file_path, const base::Closure& callback) { base::ThreadPool::PostTaskAndReply( FROM_HERE, {base::MayBlock(), base::TaskPriority::BEST_EFFORT}, - base::BindOnce(base::IgnoreResult(&base::DeleteFile), file_path, - false /* recursive */), - callback); + base::BindOnce(base::GetDeleteFileCallback(), file_path), callback); } // Compute a SHA256 digest using a background thread. The computed digest will diff --git a/chrome/browser/safe_browsing/download_protection/download_feedback.cc b/chrome/browser/safe_browsing/download_protection/download_feedback.cc index 05790fe88ec024..b3a1ee0b665564 100644 --- a/chrome/browser/safe_browsing/download_protection/download_feedback.cc +++ b/chrome/browser/safe_browsing/download_protection/download_feedback.cc @@ -117,8 +117,7 @@ DownloadFeedbackImpl::~DownloadFeedbackImpl() { } file_task_runner_->PostTask( - FROM_HERE, - base::BindOnce(base::IgnoreResult(&base::DeleteFile), file_path_, false)); + FROM_HERE, base::BindOnce(base::GetDeleteFileCallback(), file_path_)); } void DownloadFeedbackImpl::Start(const base::Closure& finish_callback) { diff --git a/chrome/browser/safe_browsing/download_protection/download_feedback_service.cc b/chrome/browser/safe_browsing/download_protection/download_feedback_service.cc index c79c09b422cd82..11b276f4eca9da 100644 --- a/chrome/browser/safe_browsing/download_protection/download_feedback_service.cc +++ b/chrome/browser/safe_browsing/download_protection/download_feedback_service.cc @@ -162,8 +162,7 @@ void DownloadFeedbackService::BeginFeedbackOrDeleteFile( service->BeginFeedback(ping_request, ping_response, path); } else { file_task_runner->PostTask( - FROM_HERE, - base::BindOnce(base::IgnoreResult(&base::DeleteFile), path, false)); + FROM_HERE, base::BindOnce(base::GetDeleteFileCallback(), path)); } } diff --git a/chrome/browser/search/instant_service.cc b/chrome/browser/search/instant_service.cc index 3a510022ae8107..a78e8b97ee5a77 100644 --- a/chrome/browser/search/instant_service.cc +++ b/chrome/browser/search/instant_service.cc @@ -962,7 +962,7 @@ void InstantService::RemoveLocalBackgroundImageCopy() { chrome::kChromeSearchLocalNtpBackgroundFilename); base::ThreadPool::PostTask( FROM_HERE, {base::TaskPriority::BEST_EFFORT, base::MayBlock()}, - base::BindOnce(IgnoreResult(&base::DeleteFile), path, false)); + base::BindOnce(base::GetDeleteFileCallback(), path)); } void InstantService::AddValidBackdropUrlForTesting(const GURL& url) const { diff --git a/chrome/browser/ui/webui/chromeos/drive_internals_ui.cc b/chrome/browser/ui/webui/chromeos/drive_internals_ui.cc index 741d75b8d72f60..3416a70c69e5a2 100644 --- a/chrome/browser/ui/webui/chromeos/drive_internals_ui.cc +++ b/chrome/browser/ui/webui/chromeos/drive_internals_ui.cc @@ -777,8 +777,7 @@ class LogsZipper : public download::AllDownloadItemNotifier::Observer { void CleanUp() { base::ThreadPool::PostTask( FROM_HERE, {base::MayBlock(), base::TaskPriority::BEST_EFFORT}, - base::BindOnce(base::IgnoreResult(&base::DeleteFile), zip_path_, - false)); + base::BindOnce(base::GetDeleteFileCallback(), zip_path_)); download_notifier_.reset(); if (drive_internals_) { drive_internals_->OnZipDone(); diff --git a/chrome/browser/web_applications/components/web_app_file_handler_registration_win.cc b/chrome/browser/web_applications/components/web_app_file_handler_registration_win.cc index e27ba3e01f059d..2cc0f67c000c8e 100644 --- a/chrome/browser/web_applications/components/web_app_file_handler_registration_win.cc +++ b/chrome/browser/web_applications/components/web_app_file_handler_registration_win.cc @@ -302,8 +302,8 @@ void UnregisterFileHandlersWithOs(const AppId& app_id, Profile* profile) { base::ThreadPool::PostTask( FROM_HERE, {base::MayBlock(), base::TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN}, - base::BindOnce(IgnoreResult(&base::DeleteFile), - app_specific_launcher_path, /*recursively=*/false)); + base::BindOnce(base::GetDeleteFileCallback(), + app_specific_launcher_path)); } base::FilePath only_profile_with_app_installed; if (IsWebAppLauncherRegisteredWithWindows(app_id, profile, diff --git a/chrome/chrome_cleaner/components/recovery_component.cc b/chrome/chrome_cleaner/components/recovery_component.cc index d6573a4b0efc8b..c3876b732aeacd 100644 --- a/chrome/chrome_cleaner/components/recovery_component.cc +++ b/chrome/chrome_cleaner/components/recovery_component.cc @@ -275,7 +275,7 @@ void RecoveryComponent::FetchOnIOThread() { } base::ScopedClosureRunner delete_file( - base::BindOnce(base::IgnoreResult(&base::DeleteFile), crx_file, false)); + base::BindOnce(base::GetDeleteFileCallback(), crx_file)); if (!SaveHttpResponseDataToFile(crx_file, http_response.get())) { LOG(WARNING) << "Failed to save downloaded recovery component"; diff --git a/chrome/chrome_cleaner/logging/pending_logs_service.cc b/chrome/chrome_cleaner/logging/pending_logs_service.cc index 976db32d6af2f5..2103ff6d680f88 100644 --- a/chrome/chrome_cleaner/logging/pending_logs_service.cc +++ b/chrome/chrome_cleaner/logging/pending_logs_service.cc @@ -63,7 +63,7 @@ void PendingLogsService::ScheduleLogsUploadTask( // To get rid of the temporary file if we are not going to use it. base::ScopedClosureRunner delete_file_closure( - base::BindOnce(IgnoreResult(&base::DeleteFile), temp_file_path, false)); + base::BindOnce(base::GetDeleteFileCallback(), temp_file_path)); if (base::WriteFile(temp_file_path, chrome_cleaner_report_string.c_str(), chrome_cleaner_report_string.size()) <= 0) { diff --git a/chrome/chrome_cleaner/test/generate_test_uws_test.cc b/chrome/chrome_cleaner/test/generate_test_uws_test.cc index 71b5afcd5889cd..5a43b0dbb99a37 100644 --- a/chrome/chrome_cleaner/test/generate_test_uws_test.cc +++ b/chrome/chrome_cleaner/test/generate_test_uws_test.cc @@ -33,10 +33,10 @@ TEST(GenerateTestUwsTest, WriteTestUwS) { ASSERT_TRUE(base::DeleteFile(uws_file_b, /*recursive=*/false)); // Delete the output files on exit, including on early exit. - base::ScopedClosureRunner delete_uws_file_a(base::BindOnce( - base::IgnoreResult(&base::DeleteFile), uws_file_a, /*recursive=*/false)); - base::ScopedClosureRunner delete_uws_file_b(base::BindOnce( - base::IgnoreResult(&base::DeleteFile), uws_file_b, /*recursive=*/false)); + base::ScopedClosureRunner delete_uws_file_a( + base::BindOnce(base::GetDeleteFileCallback(), uws_file_a)); + base::ScopedClosureRunner delete_uws_file_b( + base::BindOnce(base::GetDeleteFileCallback(), uws_file_b)); // Expect generate_test_uws to finish quickly with exit code 0 (success). base::Process process(base::LaunchProcess( diff --git a/content/browser/native_file_system/native_file_system_file_writer_impl.cc b/content/browser/native_file_system/native_file_system_file_writer_impl.cc index cdc576d00112a2..b06460001ca549 100644 --- a/content/browser/native_file_system/native_file_system_file_writer_impl.cc +++ b/content/browser/native_file_system/native_file_system_file_writer_impl.cc @@ -326,8 +326,7 @@ void NativeFileSystemFileWriterImpl::DoAfterWriteCheck( // swap file and invoke the callback. base::ThreadPool::PostTask( FROM_HERE, {base::MayBlock()}, - base::BindOnce(base::IgnoreResult(&base::DeleteFile), swap_path, - /*recursive=*/false)); + base::BindOnce(base::GetDeleteFileCallback(), swap_path)); std::move(callback).Run(native_file_system_error::FromStatus( NativeFileSystemStatus::kOperationAborted, "Failed to perform Safe Browsing check.")); @@ -367,8 +366,7 @@ void NativeFileSystemFileWriterImpl::DidAfterWriteCheck( // failed. base::ThreadPool::PostTask( FROM_HERE, {base::MayBlock()}, - base::BindOnce(base::IgnoreResult(&base::DeleteFile), swap_path, - /*recursive=*/false)); + base::BindOnce(base::GetDeleteFileCallback(), swap_path)); std::move(callback).Run(native_file_system_error::FromStatus( NativeFileSystemStatus::kOperationAborted, "Write operation blocked by Safe Browsing.")); diff --git a/content/browser/web_contents/web_contents_view_aura.cc b/content/browser/web_contents/web_contents_view_aura.cc index db76f65c722a7b..3e382a6aaa621f 100644 --- a/content/browser/web_contents/web_contents_view_aura.cc +++ b/content/browser/web_contents/web_contents_view_aura.cc @@ -522,8 +522,7 @@ void WebContentsViewAura::AsyncDropTempFileDeleter::DeleteFileAsync( FROM_HERE, {base::MayBlock(), base::TaskPriority::BEST_EFFORT, base::TaskShutdownBehavior::BLOCK_SHUTDOWN}, - base::BindOnce(base::IgnoreResult(&base::DeleteFile), std::move(path), - false)); + base::BindOnce(base::GetDeleteFileCallback(), std::move(path))); } #endif diff --git a/ui/gtk/print_dialog_gtk.cc b/ui/gtk/print_dialog_gtk.cc index 3d140b7a5954aa..9dbe823cc44172 100644 --- a/ui/gtk/print_dialog_gtk.cc +++ b/ui/gtk/print_dialog_gtk.cc @@ -519,8 +519,7 @@ void PrintDialogGtk::OnJobCompleted(GtkPrintJob* print_job, FROM_HERE, {base::MayBlock(), base::TaskPriority::BEST_EFFORT, base::TaskShutdownBehavior::BLOCK_SHUTDOWN}, - base::BindOnce(base::IgnoreResult(&base::DeleteFile), path_to_pdf_, - false)); + base::BindOnce(base::GetDeleteFileCallback(), path_to_pdf_)); // Printing finished. Matches AddRef() in PrintDocument(); Release(); }