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..6d56eeae00c0488abdf35a7687adf61478d3ea68 100644 |
| --- a/chrome/browser/media_galleries/fileapi/safe_audio_video_checker.cc |
| +++ b/chrome/browser/media_galleries/fileapi/safe_audio_video_checker.cc |
| @@ -14,6 +14,7 @@ |
| #include "base/process/process_handle.h" |
| #include "base/single_thread_task_runner.h" |
| #include "base/threading/thread_task_runner_handle.h" |
| +#include "base/time/time.h" |
| #include "chrome/common/chrome_utility_messages.h" |
| #include "chrome/common/extensions/chrome_utility_extensions_messages.h" |
| #include "chrome/grit/generated_resources.h" |
| @@ -22,6 +23,7 @@ |
| #include "content/public/browser/utility_process_host.h" |
| #include "ipc/ipc_message_macros.h" |
| #include "ipc/ipc_platform_file.h" |
|
Noel Gordon
2017/01/20 00:50:23
We should probably clean up here: let me removed t
|
| +#include "services/service_manager/public/cpp/interface_provider.h" |
| #include "ui/base/l10n/l10n_util.h" |
| SafeAudioVideoChecker::SafeAudioVideoChecker( |
| @@ -43,21 +45,22 @@ 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)); |
| - const int64_t kFileDecodeTimeInMS = 250; |
| - utility_process_host_->Send(new ChromeUtilityMsg_CheckMediaFile( |
| - kFileDecodeTimeInMS, file_for_transit)); |
| + utility_process_host_->Start(); |
| + |
| + utility_process_host_->GetRemoteInterfaces()->GetInterface(&interface_); |
| + interface_.set_connection_error_handler( |
| + base::Bind(&SafeAudioVideoChecker::OnCheckingFinished, this, false)); |
| + |
| + constexpr base::TimeDelta kFileDecodeTime = |
| + base::TimeDelta::FromMilliseconds(250); |
| + interface_->CheckMediaFile( |
| + kFileDecodeTime, std::move(file_), |
| + base::Bind(&SafeAudioVideoChecker::OnCheckingFinished, this)); |
| } |
| SafeAudioVideoChecker::~SafeAudioVideoChecker() {} |
| @@ -68,6 +71,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 +81,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; |
| } |