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

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

Issue 2667443002: Convert utility process ParseMediaMetadata blob reading IPC to mojo (Closed)
Patch Set: Remove the damn helper: call ReleaseProcessIfNeeded directly. 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
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)

Powered by Google App Engine
This is Rietveld 408576698