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

Unified Diff: extensions/utility/utility_handler.cc

Issue 2699663003: Convert utility process extension ParseUpdate IPC to mojo (Closed)
Patch Set: Sync to ToT, see if git apply issue and try jobs are happy. 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: extensions/utility/utility_handler.cc
diff --git a/extensions/utility/utility_handler.cc b/extensions/utility/utility_handler.cc
index 79daeab6e7f882c6b791ba435e1e5d5db207312c..2c399e982c50213a6728d689a74f1de8365171ef 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"
@@ -103,11 +101,31 @@ 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);
+ }
+ }
+
+ DISALLOW_COPY_AND_ASSIGN(ManifestParserImpl);
+};
+
+} // namespace
// static
void UtilityHandler::UtilityThreadStarted() {
@@ -127,30 +145,7 @@ void UtilityHandler::ExposeInterfacesToBrowser(
return;
registry->AddInterface(base::Bind(&ExtensionUnpackerImpl::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();
+ registry->AddInterface(base::Bind(&ManifestParserImpl::Create));
}
} // namespace extensions
« no previous file with comments | « extensions/utility/utility_handler.h ('k') | mojo/public/tools/bindings/chromium_bindings_configuration.gni » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698