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

Unified Diff: chrome/common/render_messages_params.cc

Issue 6242010: Refactor away most of ExtensionRendererInfo (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: address comments Created 9 years, 11 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
« no previous file with comments | « chrome/common/render_messages_params.h ('k') | chrome/renderer/extensions/chrome_app_bindings.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/common/render_messages_params.cc
diff --git a/chrome/common/render_messages_params.cc b/chrome/common/render_messages_params.cc
index fee3b0e99ac5afe2d0775a47a5cb52e0df10a53b..59a17bdf3ce0f9a1d07b062db912a3af9fbc70cd 100644
--- a/chrome/common/render_messages_params.cc
+++ b/chrome/common/render_messages_params.cc
@@ -6,6 +6,7 @@
#include "chrome/common/navigation_gesture.h"
#include "chrome/common/common_param_traits.h"
+#include "chrome/common/extensions/extension_constants.h"
#include "chrome/common/render_messages.h"
#include "net/base/upload_data.h"
@@ -248,20 +249,6 @@ ViewHostMsg_RunFileChooser_Params::ViewHostMsg_RunFileChooser_Params()
ViewHostMsg_RunFileChooser_Params::~ViewHostMsg_RunFileChooser_Params() {
}
-ViewMsg_ExtensionRendererInfo::ViewMsg_ExtensionRendererInfo()
- : location(Extension::INVALID),
- allowed_to_execute_script_everywhere(false) {
-}
-
-ViewMsg_ExtensionRendererInfo::~ViewMsg_ExtensionRendererInfo() {
-}
-
-ViewMsg_ExtensionsUpdated_Params::ViewMsg_ExtensionsUpdated_Params() {
-}
-
-ViewMsg_ExtensionsUpdated_Params::~ViewMsg_ExtensionsUpdated_Params() {
-}
-
ViewMsg_DeviceOrientationUpdated_Params::
ViewMsg_DeviceOrientationUpdated_Params()
: can_provide_alpha(false),
@@ -285,6 +272,59 @@ ViewHostMsg_DomMessage_Params::ViewHostMsg_DomMessage_Params()
ViewHostMsg_DomMessage_Params::~ViewHostMsg_DomMessage_Params() {
}
+ViewMsg_ExtensionLoaded_Params::ViewMsg_ExtensionLoaded_Params() {
+}
+
+ViewMsg_ExtensionLoaded_Params::~ViewMsg_ExtensionLoaded_Params() {
+}
+
+ViewMsg_ExtensionLoaded_Params::ViewMsg_ExtensionLoaded_Params(
+ const ViewMsg_ExtensionLoaded_Params& other)
+ : manifest(other.manifest->DeepCopy()),
+ location(other.location),
+ path(other.path),
+ id(other.id) {
+}
+
+ViewMsg_ExtensionLoaded_Params::ViewMsg_ExtensionLoaded_Params(
+ const Extension* extension)
+ : manifest(new DictionaryValue()),
+ location(extension->location()),
+ path(extension->path()),
+ id(extension->id()) {
+ // As we need more bits of extension data in the renderer, add more keys to
+ // this list.
+ const char* kRendererExtensionKeys[] = {
+ extension_manifest_keys::kPublicKey,
+ extension_manifest_keys::kName,
+ extension_manifest_keys::kVersion,
+ extension_manifest_keys::kIcons,
+ extension_manifest_keys::kPermissions,
+ extension_manifest_keys::kApp
+ };
+
+ // Copy only the data we need.
+ for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kRendererExtensionKeys); ++i) {
+ Value* temp = NULL;
+ if (extension->manifest_value()->Get(kRendererExtensionKeys[i], &temp))
+ manifest->Set(kRendererExtensionKeys[i], temp->DeepCopy());
+ }
+}
+
+scoped_refptr<Extension>
+ ViewMsg_ExtensionLoaded_Params::ConvertToExtension() const {
+ // Extensions that are loaded unpacked won't have a key.
+ const bool kRequireKey = false;
+ std::string error;
+
+ scoped_refptr<Extension> extension(
+ Extension::Create(path, location, *manifest, kRequireKey, &error));
+ if (!extension.get())
+ LOG(ERROR) << "Error deserializing extension: " << error;
+
+ return extension;
+}
+
namespace IPC {
// Self contained templates which are only used inside serializing Params
@@ -1455,51 +1495,25 @@ void ParamTraits<ViewHostMsg_RunFileChooser_Params>::Log(
LogParam(p.accept_types, l);
}
-void ParamTraits<ViewMsg_ExtensionRendererInfo>::Write(Message* m,
- const param_type& p) {
- WriteParam(m, p.id);
- WriteParam(m, p.web_extent);
- WriteParam(m, p.name);
- WriteParam(m, p.icon_url);
+void ParamTraits<ViewMsg_ExtensionLoaded_Params>::Write(Message* m,
+ const param_type& p) {
WriteParam(m, p.location);
- WriteParam(m, p.allowed_to_execute_script_everywhere);
- WriteParam(m, p.host_permissions);
+ WriteParam(m, p.path);
+ WriteParam(m, *(p.manifest));
}
-bool ParamTraits<ViewMsg_ExtensionRendererInfo>::Read(const Message* m,
- void** iter,
- param_type* p) {
- return ReadParam(m, iter, &p->id) &&
- ReadParam(m, iter, &p->web_extent) &&
- ReadParam(m, iter, &p->name) &&
- ReadParam(m, iter, &p->icon_url) &&
- ReadParam(m, iter, &p->location) &&
- ReadParam(m, iter, &p->allowed_to_execute_script_everywhere) &&
- ReadParam(m, iter, &p->host_permissions);
+bool ParamTraits<ViewMsg_ExtensionLoaded_Params>::Read(const Message* m,
+ void** iter,
+ param_type* p) {
+ p->manifest.reset(new DictionaryValue());
+ return ReadParam(m, iter, &p->location) &&
+ ReadParam(m, iter, &p->path) &&
+ ReadParam(m, iter, p->manifest.get());
}
-void ParamTraits<ViewMsg_ExtensionRendererInfo>::Log(const param_type& p,
- std::string* l) {
- LogParam(p.id, l);
-}
-
-void ParamTraits<ViewMsg_ExtensionsUpdated_Params>::Write(
- Message* m,
- const param_type& p) {
- WriteParam(m, p.extensions);
-}
-
-bool ParamTraits<ViewMsg_ExtensionsUpdated_Params>::Read(
- const Message* m,
- void** iter,
- param_type* p) {
- return ReadParam(m, iter, &p->extensions);
-}
-
-void ParamTraits<ViewMsg_ExtensionsUpdated_Params>::Log(
- const param_type& p,
- std::string* l) {
- LogParam(p.extensions, l);
+void ParamTraits<ViewMsg_ExtensionLoaded_Params>::Log(const param_type& p,
+ std::string* l) {
+ l->append(p.id);
}
void ParamTraits<ViewMsg_DeviceOrientationUpdated_Params>::Write(
« no previous file with comments | « chrome/common/render_messages_params.h ('k') | chrome/renderer/extensions/chrome_app_bindings.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698