Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(15)

Unified Diff: chrome/utility/extensions/extensions_handler.cc

Issue 2667443002: Convert utility process ParseMediaMetadata blob reading IPC to mojo (Closed)
Patch Set: Sync to ToT and merge in dependent patch changes. Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/utility/extensions/extensions_handler.h ('k') | chrome/utility/media_galleries/ipc_data_source.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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)
« no previous file with comments | « chrome/utility/extensions/extensions_handler.h ('k') | chrome/utility/media_galleries/ipc_data_source.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698