diff options
author | mpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-22 23:56:30 +0000 |
---|---|---|
committer | mpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-22 23:56:30 +0000 |
commit | 3a8eecb2bb859491b344be321abb4ff3d2b7f0f3 (patch) | |
tree | 07f90f564c2c5d92d38f1fdae15597a523ca31c1 /chrome/common/render_messages.h | |
parent | 58bc899f2ffdc14d78b6f209f57415e79837d7a6 (diff) | |
download | chromium_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.h | 47 |
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 |