| Index: chrome/utility/extensions/extensions_handler.cc
|
| diff --git a/chrome/utility/extensions/extensions_handler.cc b/chrome/utility/extensions/extensions_handler.cc
|
| index c6e2a74baf0e5277a2483a9873c9bbd27ddf7aa9..996ceaec8315a590f259f5cd548e53eb2a2cef0f 100644
|
| --- a/chrome/utility/extensions/extensions_handler.cc
|
| +++ b/chrome/utility/extensions/extensions_handler.cc
|
| @@ -46,34 +46,28 @@
|
|
|
| namespace {
|
|
|
| -void ReleaseProcessIfNeeded() {
|
| - content::UtilityThread::Get()->ReleaseProcessIfNeeded();
|
| -}
|
| -
|
| class MediaParserImpl : public extensions::mojom::MediaParser {
|
| public:
|
| - static void Create(ChromeContentUtilityClient* utility_client,
|
| - extensions::mojom::MediaParserRequest request) {
|
| - mojo::MakeStrongBinding(base::MakeUnique<MediaParserImpl>(utility_client),
|
| + MediaParserImpl() = default;
|
| + ~MediaParserImpl() override = default;
|
| +
|
| + static void Create(extensions::mojom::MediaParserRequest request) {
|
| + mojo::MakeStrongBinding(base::MakeUnique<MediaParserImpl>(),
|
| std::move(request));
|
| }
|
|
|
| - explicit MediaParserImpl(ChromeContentUtilityClient* utility_client)
|
| - : utility_client_(utility_client) {}
|
| -
|
| - ~MediaParserImpl() override = default;
|
| -
|
| private:
|
| // extensions::mojom::MediaParser:
|
| - void ParseMediaMetadata(const std::string& mime_type,
|
| - int64_t total_size,
|
| - bool get_attached_images,
|
| - const ParseMediaMetadataCallback& callback) override {
|
| - // Only one IPCDataSource may be created and added to the list of handlers.
|
| - auto source = base::MakeUnique<metadata::IPCDataSource>(total_size);
|
| + void ParseMediaMetadata(
|
| + const std::string& mime_type,
|
| + int64_t total_size,
|
| + bool get_attached_images,
|
| + extensions::mojom::MediaDataSourcePtr media_data_source,
|
| + const ParseMediaMetadataCallback& callback) override {
|
| + auto source = base::MakeUnique<metadata::IPCDataSource>(
|
| + std::move(media_data_source), total_size);
|
| metadata::MediaMetadataParser* parser = new metadata::MediaMetadataParser(
|
| - source.get(), mime_type, get_attached_images);
|
| - utility_client_->AddHandler(std::move(source));
|
| + std::move(source), mime_type, get_attached_images);
|
| parser->Start(base::Bind(&MediaParserImpl::ParseMediaMetadataDone, callback,
|
| base::Owned(parser)));
|
| }
|
| @@ -84,7 +78,6 @@ class MediaParserImpl : public extensions::mojom::MediaParser {
|
| const extensions::api::media_galleries::MediaMetadata& metadata,
|
| const std::vector<metadata::AttachedImage>& attached_images) {
|
| callback.Run(true, metadata.ToValue(), attached_images);
|
| - ReleaseProcessIfNeeded();
|
| }
|
|
|
| void CheckMediaFile(base::TimeDelta decode_time,
|
| @@ -98,8 +91,6 @@ class MediaParserImpl : public extensions::mojom::MediaParser {
|
| #endif
|
| }
|
|
|
| - ChromeContentUtilityClient* const utility_client_;
|
| -
|
| DISALLOW_COPY_AND_ASSIGN(MediaParserImpl);
|
| };
|
|
|
| @@ -163,7 +154,6 @@ void ExtensionsHandler::PreSandboxStartup() {
|
| // static
|
| void ExtensionsHandler::ExposeInterfacesToBrowser(
|
| service_manager::InterfaceRegistry* registry,
|
| - ChromeContentUtilityClient* utility_client,
|
| bool running_elevated) {
|
| // If our process runs with elevated privileges, only add elevated Mojo
|
| // services to the interface registry.
|
| @@ -174,7 +164,7 @@ void ExtensionsHandler::ExposeInterfacesToBrowser(
|
| return;
|
| }
|
|
|
| - registry->AddInterface(base::Bind(&MediaParserImpl::Create, utility_client));
|
| + registry->AddInterface(base::Bind(&MediaParserImpl::Create));
|
| }
|
|
|
| bool ExtensionsHandler::OnMessageReceived(const IPC::Message& message) {
|
| @@ -207,7 +197,7 @@ void ExtensionsHandler::OnParseITunesPrefXml(
|
| itunes::FindLibraryLocationInPrefXml(itunes_xml_data));
|
| content::UtilityThread::Get()->Send(
|
| new ChromeUtilityHostMsg_GotITunesDirectory(library_path));
|
| - ReleaseProcessIfNeeded();
|
| + content::UtilityThread::Get()->ReleaseProcessIfNeeded();
|
| }
|
| #endif // defined(OS_WIN)
|
|
|
| @@ -219,7 +209,7 @@ void ExtensionsHandler::OnParseITunesLibraryXmlFile(
|
| bool result = parser.Parse(iapps::ReadFileAsString(std::move(file)));
|
| content::UtilityThread::Get()->Send(
|
| new ChromeUtilityHostMsg_GotITunesLibrary(result, parser.library()));
|
| - ReleaseProcessIfNeeded();
|
| + content::UtilityThread::Get()->ReleaseProcessIfNeeded();
|
| }
|
|
|
| void ExtensionsHandler::OnParsePicasaPMPDatabase(
|
| @@ -245,7 +235,7 @@ void ExtensionsHandler::OnParsePicasaPMPDatabase(
|
| content::UtilityThread::Get()->Send(
|
| new ChromeUtilityHostMsg_ParsePicasaPMPDatabase_Finished(
|
| parse_success, reader.albums(), reader.folders()));
|
| - ReleaseProcessIfNeeded();
|
| + content::UtilityThread::Get()->ReleaseProcessIfNeeded();
|
| }
|
|
|
| void ExtensionsHandler::OnIndexPicasaAlbumsContents(
|
| @@ -256,7 +246,7 @@ void ExtensionsHandler::OnIndexPicasaAlbumsContents(
|
| content::UtilityThread::Get()->Send(
|
| new ChromeUtilityHostMsg_IndexPicasaAlbumsContents_Finished(
|
| indexer.albums_images()));
|
| - ReleaseProcessIfNeeded();
|
| + content::UtilityThread::Get()->ReleaseProcessIfNeeded();
|
| }
|
| #endif // defined(OS_WIN) || defined(OS_MACOSX)
|
|
|
|
|