summaryrefslogtreecommitdiffstats
path: root/chrome/utility
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/utility')
-rw-r--r--chrome/utility/utility_thread.cc13
-rw-r--r--chrome/utility/utility_thread.h3
2 files changed, 15 insertions, 1 deletions
diff --git a/chrome/utility/utility_thread.cc b/chrome/utility/utility_thread.cc
index dc9f965..9c6912c 100644
--- a/chrome/utility/utility_thread.cc
+++ b/chrome/utility/utility_thread.cc
@@ -6,10 +6,11 @@
#include "base/file_util.h"
#include "base/values.h"
-#include "chrome/common/web_resource/web_resource_unpacker.h"
#include "chrome/common/child_process.h"
#include "chrome/common/extensions/extension_unpacker.h"
+#include "chrome/common/extensions/update_manifest.h"
#include "chrome/common/render_messages.h"
+#include "chrome/common/web_resource/web_resource_unpacker.h"
UtilityThread::UtilityThread() {
ChildProcess::current()->AddRefProcess();
@@ -22,6 +23,7 @@ void UtilityThread::OnControlMessageReceived(const IPC::Message& msg) {
IPC_BEGIN_MESSAGE_MAP(UtilityThread, msg)
IPC_MESSAGE_HANDLER(UtilityMsg_UnpackExtension, OnUnpackExtension)
IPC_MESSAGE_HANDLER(UtilityMsg_UnpackWebResource, OnUnpackWebResource)
+ IPC_MESSAGE_HANDLER(UtilityMsg_ParseUpdateManifest, OnParseUpdateManifest)
IPC_END_MESSAGE_MAP()
}
@@ -53,3 +55,12 @@ void UtilityThread::OnUnpackWebResource(const std::string& resource_data) {
ChildProcess::current()->ReleaseProcess();
}
+void UtilityThread::OnParseUpdateManifest(const std::string& xml) {
+ UpdateManifest manifest;
+ if (!manifest.Parse(xml)) {
+ Send(new UtilityHostMsg_ParseUpdateManifest_Failed(manifest.errors()));
+ } else {
+ Send(new UtilityHostMsg_ParseUpdateManifest_Succeeded(manifest.results()));
+ }
+ ChildProcess::current()->ReleaseProcess();
+}
diff --git a/chrome/utility/utility_thread.h b/chrome/utility/utility_thread.h
index 4fad53e..b5e2ae2 100644
--- a/chrome/utility/utility_thread.h
+++ b/chrome/utility/utility_thread.h
@@ -30,6 +30,9 @@ class UtilityThread : public ChildThread {
// IPC messages for web resource service.
void OnUnpackWebResource(const std::string& resource_data);
+ // IPC for parsing an extensions auto-update manifest xml file.
+ void OnParseUpdateManifest(const std::string& xml);
+
DISALLOW_COPY_AND_ASSIGN(UtilityThread);
};