summaryrefslogtreecommitdiffstats
path: root/chrome/common/render_messages.h
diff options
context:
space:
mode:
authormpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-22 23:56:30 +0000
committermpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-22 23:56:30 +0000
commit3a8eecb2bb859491b344be321abb4ff3d2b7f0f3 (patch)
tree07f90f564c2c5d92d38f1fdae15597a523ca31c1 /chrome/common/render_messages.h
parent58bc899f2ffdc14d78b6f209f57415e79837d7a6 (diff)
downloadchromium_src-3a8eecb2bb859491b344be321abb4ff3d2b7f0f3.zip
chromium_src-3a8eecb2bb859491b344be321abb4ff3d2b7f0f3.tar.gz
chromium_src-3a8eecb2bb859491b344be321abb4ff3d2b7f0f3.tar.bz2
Implement app process model isolation.
The process grouping logic is unfortunately duplicated in SiteInstance and RenderView. URLs that are part of extension X's web extent get converted into a pseudo URL of the form chrome-extension://X/path. This groups pages from an extension app and its offline resources into the same process. The rest is mostly plumbing and passing data around. BUG=41273 Review URL: http://codereview.chromium.org/1735004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45384 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/common/render_messages.h')
-rw-r--r--chrome/common/render_messages.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/chrome/common/render_messages.h b/chrome/common/render_messages.h
index aa0ad3c..db6dfe5 100644
--- a/chrome/common/render_messages.h
+++ b/chrome/common/render_messages.h
@@ -20,6 +20,7 @@
#include "chrome/common/css_colors.h"
#include "chrome/common/dom_storage_common.h"
#include "chrome/common/edit_command.h"
+#include "chrome/common/extensions/extension_extent.h"
#include "chrome/common/extensions/url_pattern.h"
#include "chrome/common/filter_policy.h"
#include "chrome/common/navigation_gesture.h"
@@ -619,6 +620,12 @@ struct ViewHostMsg_RunFileChooser_Params {
FilePath default_file_name;
};
+struct ViewMsg_ExtensionExtentsUpdated_Params {
+ // A list of (extension_id, web_extent) pairs that describe the installed
+ // extension apps and the URLs they cover.
+ std::vector< std::pair<std::string, ExtensionExtent> > extension_apps;
+};
+
namespace IPC {
template <>
@@ -2590,6 +2597,46 @@ struct ParamTraits<ViewHostMsg_RunFileChooser_Params> {
}
};
+template <>
+struct ParamTraits<ExtensionExtent> {
+ typedef ExtensionExtent param_type;
+ static void Write(Message* m, const param_type& p) {
+ WriteParam(m, p.origin());
+ WriteParam(m, p.paths());
+ }
+ static bool Read(const Message* m, void** iter, param_type* p) {
+ GURL origin;
+ std::vector<std::string> paths;
+ bool success =
+ ReadParam(m, iter, &origin) &&
+ ReadParam(m, iter, &paths);
+ if (!success)
+ return false;
+
+ p->set_origin(origin);
+ for (size_t i = 0; i < paths.size(); ++i)
+ p->add_path(paths[i]);
+ return true;
+ }
+ static void Log(const param_type& p, std::wstring* l) {
+ LogParam(p.origin(), l);
+ }
+};
+
+template <>
+struct ParamTraits<ViewMsg_ExtensionExtentsUpdated_Params> {
+ typedef ViewMsg_ExtensionExtentsUpdated_Params param_type;
+ static void Write(Message* m, const param_type& p) {
+ WriteParam(m, p.extension_apps);
+ }
+ static bool Read(const Message* m, void** iter, param_type* p) {
+ return ReadParam(m, iter, &p->extension_apps);
+ }
+ static void Log(const param_type& p, std::wstring* l) {
+ LogParam(p.extension_apps, l);
+ }
+};
+
} // namespace IPC