diff options
author | asargent@chromium.org <asargent@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-20 16:18:21 +0000 |
---|---|---|
committer | asargent@chromium.org <asargent@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-20 16:18:21 +0000 |
commit | dbb92e0d55eede17bf2ada8370650d39834e6060 (patch) | |
tree | 941532e52eceab1115b60556960abde35f786368 /chrome/browser/utility_process_host.h | |
parent | e667f718463a78b7d1de5a51e71982211f00f875 (diff) | |
download | chromium_src-dbb92e0d55eede17bf2ada8370650d39834e6060.zip chromium_src-dbb92e0d55eede17bf2ada8370650d39834e6060.tar.gz chromium_src-dbb92e0d55eede17bf2ada8370650d39834e6060.tar.bz2 |
Do extensions update manifest XML parsing in a sandboxed process.
This involves moving the xml parsing code from static functions in
extension_updater.cc to a UpdateManifest class, and switching from
logging any errors directly to collecting them up and passing them
across the IPC channel.
BUG=http://crbug.com/12677
TEST=extensions auto-update should still work correctly
Review URL: http://codereview.chromium.org/164541
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23822 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/utility_process_host.h')
-rw-r--r-- | chrome/browser/utility_process_host.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/chrome/browser/utility_process_host.h b/chrome/browser/utility_process_host.h index 329f856..c52c424 100644 --- a/chrome/browser/utility_process_host.h +++ b/chrome/browser/utility_process_host.h @@ -11,6 +11,7 @@ #include "base/ref_counted.h" #include "base/task.h" #include "chrome/common/child_process_host.h" +#include "chrome/common/extensions/update_manifest.h" #include "ipc/ipc_channel.h" class CommandLine; @@ -54,6 +55,15 @@ class UtilityProcessHost : public ChildProcessHost { virtual void OnUnpackWebResourceFailed( const std::string& error_message) {} + // Called when an update manifest xml file was successfully parsed. + virtual void OnParseUpdateManifestSucceeded( + const UpdateManifest::ResultList& list) {} + + // Called when an update manifest xml file failed parsing. |error_message| + // contains details suitable for logging. + virtual void OnParseUpdateManifestFailed( + const std::string& error_message) {} + private: friend class UtilityProcessHost; void OnMessageReceived(const IPC::Message& message); @@ -79,6 +89,9 @@ class UtilityProcessHost : public ChildProcessHost { // web resource server format(s). bool StartWebResourceUnpacker(const std::string& data); + // Start parsing an extensions auto-update manifest xml file. + bool StartUpdateManifestParse(const std::string& xml); + protected: // Allow these methods to be overridden for tests. virtual std::wstring GetUtilityProcessCmd(); |