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

Unified Diff: chrome/renderer/extensions/extension_renderer_info.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
Index: chrome/renderer/extensions/extension_renderer_info.cc
diff --git a/chrome/renderer/extensions/extension_renderer_info.cc b/chrome/renderer/extensions/extension_renderer_info.cc
index 0e01b3123938ba5d89811dc7f8917f922f2ce1b5..a35a6639a2a5d26119ea3d4b0d21dba6cb918260 100644
--- a/chrome/renderer/extensions/extension_renderer_info.cc
+++ b/chrome/renderer/extensions/extension_renderer_info.cc
@@ -5,120 +5,71 @@
#include "chrome/renderer/extensions/extension_renderer_info.h"
#include "base/logging.h"
-#include "chrome/common/render_messages_params.h"
#include "chrome/common/url_constants.h"
-// static
-std::vector<ExtensionRendererInfo>* ExtensionRendererInfo::extensions_ = NULL;
-
-ExtensionRendererInfo::ExtensionRendererInfo()
- : location_(Extension::INVALID),
- allowed_to_execute_script_everywhere_(false) {
+ExtensionRendererInfo::ExtensionRendererInfo() {
}
-ExtensionRendererInfo::ExtensionRendererInfo(
- const ExtensionRendererInfo& that) {
- id_ = that.id_;
- web_extent_ = that.web_extent_;
- name_ = that.name_;
- icon_url_ = that.icon_url_;
- allowed_to_execute_script_everywhere_ =
- that.allowed_to_execute_script_everywhere_;
- host_permissions_ = that.host_permissions_;
- location_ = that.location_;
+size_t ExtensionRendererInfo::size() const {
+ return extensions_.size();
}
-ExtensionRendererInfo::~ExtensionRendererInfo() {
+void ExtensionRendererInfo::Update(
+ const scoped_refptr<const Extension>& extension) {
+ extensions_[extension->id()] = extension;
}
-void ExtensionRendererInfo::Update(const ViewMsg_ExtensionRendererInfo& info) {
- id_ = info.id;
- web_extent_ = info.web_extent;
- name_ = info.name;
- location_ = info.location;
- icon_url_ = info.icon_url;
- allowed_to_execute_script_everywhere_ =
- info.allowed_to_execute_script_everywhere;
- host_permissions_ = info.host_permissions;
+void ExtensionRendererInfo::Remove(const std::string& id) {
+ extensions_.erase(id);
}
-// static
-void ExtensionRendererInfo::UpdateExtensions(
- const ViewMsg_ExtensionsUpdated_Params& params) {
- size_t count = params.extensions.size();
- if (!extensions_)
- extensions_ = new std::vector<ExtensionRendererInfo>(count);
- else
- extensions_->resize(count);
-
- for (size_t i = 0; i < count; ++i)
- extensions_->at(i).Update(params.extensions[i]);
-}
-
-// static
-std::string ExtensionRendererInfo::GetIdByURL(const GURL& url) {
+std::string ExtensionRendererInfo::GetIdByURL(const GURL& url) const {
if (url.SchemeIs(chrome::kExtensionScheme))
return url.host();
- ExtensionRendererInfo* info = GetByURL(url);
- if (!info)
+ const Extension* extension = GetByURL(url);
+ if (!extension)
return "";
- return info->id();
+ return extension->id();
}
-// static
-ExtensionRendererInfo* ExtensionRendererInfo::GetByURL(const GURL& url) {
+const Extension* ExtensionRendererInfo::GetByURL(
+ const GURL& url) const {
if (url.SchemeIs(chrome::kExtensionScheme))
return GetByID(url.host());
- if (!extensions_)
- return NULL;
-
- std::vector<ExtensionRendererInfo>::iterator i = extensions_->begin();
- for (; i != extensions_->end(); ++i) {
- if (i->web_extent_.ContainsURL(url))
- return &(*i);
+ ExtensionMap::const_iterator i = extensions_.begin();
+ for (; i != extensions_.end(); ++i) {
+ if (i->second->web_extent().ContainsURL(url))
+ return i->second.get();
}
return NULL;
}
-// static
bool ExtensionRendererInfo::InSameExtent(const GURL& old_url,
- const GURL& new_url) {
+ const GURL& new_url) const {
return GetByURL(old_url) == GetByURL(new_url);
}
-// static
-ExtensionRendererInfo* ExtensionRendererInfo::GetByID(
- const std::string& id) {
-
- if (!extensions_) {
- NOTREACHED();
+const Extension* ExtensionRendererInfo::GetByID(
+ const std::string& id) const {
+ ExtensionMap::const_iterator i = extensions_.find(id);
+ if (i != extensions_.end())
+ return i->second.get();
+ else
return NULL;
- }
-
- std::vector<ExtensionRendererInfo>::iterator i = extensions_->begin();
- for (; i != extensions_->end(); ++i) {
- if (i->id() == id)
- return &(*i);
- }
- return NULL;
}
-// static
-bool ExtensionRendererInfo::ExtensionBindingsAllowed(const GURL& url) {
+bool ExtensionRendererInfo::ExtensionBindingsAllowed(const GURL& url) const {
if (url.SchemeIs(chrome::kExtensionScheme))
return true;
- if (!extensions_)
- return false;
-
- std::vector<ExtensionRendererInfo>::iterator i = extensions_->begin();
- for (; i != extensions_->end(); ++i) {
- if (i->location_ == Extension::COMPONENT &&
- i->web_extent_.ContainsURL(url))
+ ExtensionMap::const_iterator i = extensions_.begin();
+ for (; i != extensions_.end(); ++i) {
+ if (i->second->location() == Extension::COMPONENT &&
+ i->second->web_extent().ContainsURL(url))
return true;
}
« no previous file with comments | « chrome/renderer/extensions/extension_renderer_info.h ('k') | chrome/renderer/extensions/extension_renderer_info_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698