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

Unified Diff: extensions/utility/utility_handler.cc

Issue 2699663003: Convert utility process extension ParseUpdate IPC to mojo (Closed)
Patch Set: Extensions review comments. Created 3 years, 9 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 | « extensions/utility/utility_handler.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: extensions/utility/utility_handler.cc
diff --git a/extensions/utility/utility_handler.cc b/extensions/utility/utility_handler.cc
index a8772de305abd82e0be99bb0a4a1de4547ea375f..4b8e4ac3c7fcbb45b29e93ed737c78a054f766d3 100644
--- a/extensions/utility/utility_handler.cc
+++ b/extensions/utility/utility_handler.cc
@@ -10,14 +10,12 @@
#include "extensions/common/constants.h"
#include "extensions/common/extension_l10n_util.h"
#include "extensions/common/extension_unpacker.mojom.h"
-#include "extensions/common/extension_utility_messages.h"
#include "extensions/common/extensions_client.h"
#include "extensions/common/manifest.h"
+#include "extensions/common/manifest_parser.mojom.h"
#include "extensions/common/update_manifest.h"
#include "extensions/strings/grit/extensions_strings.h"
#include "extensions/utility/unpacker.h"
-#include "ipc/ipc_message.h"
-#include "ipc/ipc_message_macros.h"
#include "mojo/public/cpp/bindings/strong_binding.h"
#include "services/service_manager/public/cpp/interface_registry.h"
#include "third_party/zlib/google/zip.h"
@@ -101,54 +99,52 @@ class ExtensionUnpackerImpl : public extensions::mojom::ExtensionUnpacker {
DISALLOW_COPY_AND_ASSIGN(ExtensionUnpackerImpl);
};
-} // namespace
+class ManifestParserImpl : public extensions::mojom::ManifestParser {
+ public:
+ ManifestParserImpl() = default;
+ ~ManifestParserImpl() override = default;
-UtilityHandler::UtilityHandler() = default;
+ static void Create(extensions::mojom::ManifestParserRequest request) {
+ mojo::MakeStrongBinding(base::MakeUnique<ManifestParserImpl>(),
+ std::move(request));
+ }
-UtilityHandler::~UtilityHandler() = default;
+ private:
+ void Parse(const std::string& xml, const ParseCallback& callback) override {
+ UpdateManifest manifest;
+ if (manifest.Parse(xml)) {
+ callback.Run(manifest.results());
+ } else {
+ LOG(WARNING) << "Error parsing update manifest:\n" << manifest.errors();
+ callback.Run(base::nullopt);
+ }
+ }
-// static
-void UtilityHandler::UtilityThreadStarted() {
+ DISALLOW_COPY_AND_ASSIGN(ManifestParserImpl);
+};
+
+} // namespace
+
+namespace utility_handler {
+
+void UtilityThreadStarted() {
base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
std::string lang = command_line->GetSwitchValueASCII(switches::kLang);
if (!lang.empty())
extension_l10n_util::SetProcessLocale(lang);
}
-// static
-void UtilityHandler::ExposeInterfacesToBrowser(
- service_manager::InterfaceRegistry* registry,
- bool running_elevated) {
+void ExposeInterfacesToBrowser(service_manager::InterfaceRegistry* registry,
+ bool running_elevated) {
// If our process runs with elevated privileges, only add elevated Mojo
// interfaces to the interface registry.
if (running_elevated)
return;
registry->AddInterface(base::Bind(&ExtensionUnpackerImpl::Create));
+ registry->AddInterface(base::Bind(&ManifestParserImpl::Create));
}
-bool UtilityHandler::OnMessageReceived(const IPC::Message& message) {
- bool handled = true;
- IPC_BEGIN_MESSAGE_MAP(UtilityHandler, message)
- IPC_MESSAGE_HANDLER(ExtensionUtilityMsg_ParseUpdateManifest,
- OnParseUpdateManifest)
- IPC_MESSAGE_UNHANDLED(handled = false)
- IPC_END_MESSAGE_MAP()
- return handled;
-}
-
-void UtilityHandler::OnParseUpdateManifest(const std::string& xml) {
- UpdateManifest manifest;
- if (!manifest.Parse(xml)) {
- content::UtilityThread::Get()->Send(
- new ExtensionUtilityHostMsg_ParseUpdateManifest_Failed(
- manifest.errors()));
- } else {
- content::UtilityThread::Get()->Send(
- new ExtensionUtilityHostMsg_ParseUpdateManifest_Succeeded(
- manifest.results()));
- }
- content::UtilityThread::Get()->ReleaseProcessIfNeeded();
-}
+} // namespace utility_handler
} // namespace extensions
« no previous file with comments | « extensions/utility/utility_handler.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698