| Index: chrome/utility/extensions/extensions_handler.cc
|
| diff --git a/chrome/utility/extensions/extensions_handler.cc b/chrome/utility/extensions/extensions_handler.cc
|
| index cef009a686baf36881e5f54eedbb5d66c08d12b7..4cb3fa887f6fb7d0f8fe385a489573f8e18e2c53 100644
|
| --- a/chrome/utility/extensions/extensions_handler.cc
|
| +++ b/chrome/utility/extensions/extensions_handler.cc
|
| @@ -49,34 +49,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)));
|
| }
|
| @@ -87,7 +81,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,
|
| @@ -101,8 +94,6 @@ class MediaParserImpl : public extensions::mojom::MediaParser {
|
| #endif
|
| }
|
|
|
| - ChromeContentUtilityClient* const utility_client_;
|
| -
|
| DISALLOW_COPY_AND_ASSIGN(MediaParserImpl);
|
| };
|
|
|
| @@ -197,7 +188,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.
|
| @@ -209,7 +199,7 @@ void ExtensionsHandler::ExposeInterfacesToBrowser(
|
| return;
|
| }
|
|
|
| - registry->AddInterface(base::Bind(&MediaParserImpl::Create, utility_client));
|
| + registry->AddInterface(base::Bind(&MediaParserImpl::Create));
|
| #if !defined(OS_WIN)
|
| registry->AddInterface(base::Bind(&RemovableStorageWriterImpl::Create));
|
| #endif
|
| @@ -245,7 +235,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)
|
|
|
| @@ -257,7 +247,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(
|
| @@ -283,7 +273,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(
|
| @@ -294,7 +284,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)
|
|
|
|
|