Chromium Code Reviews| Index: chrome/browser/media_galleries/fileapi/safe_audio_video_checker.cc |
| diff --git a/chrome/browser/media_galleries/fileapi/safe_audio_video_checker.cc b/chrome/browser/media_galleries/fileapi/safe_audio_video_checker.cc |
| index 85dcf4fb480c08009ff22fd535b63b64ddc20657..fe4ae8811435de0541ebc4ad9f993483a600e27d 100644 |
| --- a/chrome/browser/media_galleries/fileapi/safe_audio_video_checker.cc |
| +++ b/chrome/browser/media_galleries/fileapi/safe_audio_video_checker.cc |
| @@ -22,6 +22,7 @@ |
| #include "content/public/browser/utility_process_host.h" |
| #include "ipc/ipc_message_macros.h" |
| #include "ipc/ipc_platform_file.h" |
| +#include "services/service_manager/public/cpp/interface_provider.h" |
| #include "ui/base/l10n/l10n_util.h" |
| SafeAudioVideoChecker::SafeAudioVideoChecker( |
| @@ -43,21 +44,21 @@ void SafeAudioVideoChecker::Start() { |
| return; |
| } |
| - IPC::PlatformFileForTransit file_for_transit = |
| - IPC::TakePlatformFileForTransit(std::move(file_)); |
| - if (file_for_transit == IPC::InvalidPlatformFileForTransit()) { |
| - OnCheckingFinished(false /* valid? */); |
| - return; |
| - } |
| - |
| utility_process_host_ = content::UtilityProcessHost::Create( |
| this, base::ThreadTaskRunnerHandle::Get())->AsWeakPtr(); |
| utility_process_host_->SetName(l10n_util::GetStringUTF16( |
| IDS_UTILITY_PROCESS_MEDIA_FILE_CHECKER_NAME)); |
| + utility_process_host_->Start(); |
| + |
| + utility_process_host_->GetRemoteInterfaces()->GetInterface(&interface_); |
| + interface_.set_connection_error_handler( |
| + base::Bind(&SafeAudioVideoChecker::OnCheckingFinished, this, false)); |
| + |
| const int64_t kFileDecodeTimeInMS = 250; |
|
Sam McNally
2017/01/18 07:09:09
constexpr base::TimeDelta kFileDecodeTime = base::
Noel Gordon
2017/01/19 06:33:11
That worked well. Done.
|
| - utility_process_host_->Send(new ChromeUtilityMsg_CheckMediaFile( |
| - kFileDecodeTimeInMS, file_for_transit)); |
| + interface_->CheckMediaFile( |
| + kFileDecodeTimeInMS, std::move(file_), |
| + base::Bind(&SafeAudioVideoChecker::OnCheckingFinished, this)); |
| } |
| SafeAudioVideoChecker::~SafeAudioVideoChecker() {} |
| @@ -68,6 +69,7 @@ void SafeAudioVideoChecker::OnCheckingFinished(bool valid) { |
| return; |
| state_ = FINISHED_STATE; |
| + interface_.reset(); |
| callback_.Run(valid ? base::File::FILE_OK : |
| base::File::FILE_ERROR_SECURITY); |
| } |
| @@ -77,11 +79,5 @@ void SafeAudioVideoChecker::OnProcessCrashed(int exit_code) { |
| } |
| bool SafeAudioVideoChecker::OnMessageReceived(const IPC::Message& message) { |
| - bool handled = true; |
| - IPC_BEGIN_MESSAGE_MAP(SafeAudioVideoChecker, message) |
| - IPC_MESSAGE_HANDLER(ChromeUtilityHostMsg_CheckMediaFile_Finished, |
| - OnCheckingFinished) |
| - IPC_MESSAGE_UNHANDLED(handled = false) |
| - IPC_END_MESSAGE_MAP() |
| - return handled; |
| + return false; |
| } |