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

Unified Diff: chrome/renderer/extensions/extension_renderer_info.h

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.h
diff --git a/chrome/renderer/extensions/extension_renderer_info.h b/chrome/renderer/extensions/extension_renderer_info.h
index f1f65ad077a50afdd814122e8f1116d5e9872c52..cc49fde4a67308c42ce2967666ed36f79d87bfb1 100644
--- a/chrome/renderer/extensions/extension_renderer_info.h
+++ b/chrome/renderer/extensions/extension_renderer_info.h
@@ -10,79 +10,57 @@
#include <vector>
#include "base/gtest_prod_util.h"
+#include "base/ref_counted.h"
#include "chrome/common/extensions/extension.h"
-#include "chrome/common/extensions/extension_extent.h"
#include "googleurl/src/gurl.h"
-struct ViewMsg_ExtensionsUpdated_Params;
-struct ViewMsg_ExtensionRendererInfo;
-
-// Extension information needed in the renderer process along with static
-// methods to look up information about the currently loaded extensions.
+// ExtensionRendererInfo is a convenience wrapper around a map of extension
+// objects. It is used by renderers to maintain information about currently
+// loaded extensions.
class ExtensionRendererInfo {
public:
ExtensionRendererInfo();
- ExtensionRendererInfo(const ExtensionRendererInfo& that);
- ~ExtensionRendererInfo();
-
- const std::string& id() const { return id_; }
- const ExtensionExtent& web_extent() const { return web_extent_; }
- const std::string& name() const { return name_; }
- const GURL& icon_url() const { return icon_url_; }
- bool allowed_to_execute_script_everywhere() const {
- return allowed_to_execute_script_everywhere_;
- }
- const std::vector<URLPattern>& host_permissions() const {
- return host_permissions_;
- }
-
- // Replace the list of extensions with those provided in |params|.
- static void UpdateExtensions(const ViewMsg_ExtensionsUpdated_Params& params);
+
+ // Gets the number of extensions contained.
+ size_t size() const;
+
+ // Updates the specified extension.
+ void Update(const scoped_refptr<const Extension>& extension);
+
+ // Removes the specified extension.
+ void Remove(const std::string& id);
// Returns the extension ID that the given URL is a part of, or empty if
// none. This includes web URLs that are part of an extension's web extent.
- static std::string GetIdByURL(const GURL& url);
+ std::string GetIdByURL(const GURL& url) const;
- // Returns the ExtensionRendererInfo that the given URL is a part of, or NULL
- // if none. This includes web URLs that are part of an extension's web extent.
+ // Returns the Extension that the given URL is a part of, or NULL if none.
+ // This includes web URLs that are part of an extension's web extent.
// NOTE: This can return NULL if called before UpdateExtensions receives
// bulk extension data (e.g. if called from
// EventBindings::HandleContextCreated)
- static ExtensionRendererInfo* GetByURL(const GURL& url);
+ const Extension* GetByURL(const GURL& url) const;
// Returns true if |new_url| is in the extent of the same extension as
// |old_url|. Also returns true if neither URL is in an app.
- static bool InSameExtent(const GURL& old_url, const GURL& new_url);
+ bool InSameExtent(const GURL& old_url, const GURL& new_url) const;
- // Look up an ExtensionInfo object by id.
- static ExtensionRendererInfo* GetByID(const std::string& id);
+ // Look up an Extension object by id.
+ const Extension* GetByID(const std::string& id) const;
// Returns true if |url| should get extension api bindings and be permitted
// to make api calls. Note that this is independent of what extension
// permissions the given extension has been granted.
- static bool ExtensionBindingsAllowed(const GURL& url);
+ bool ExtensionBindingsAllowed(const GURL& url) const;
private:
- void Update(const ViewMsg_ExtensionRendererInfo& info);
-
FRIEND_TEST_ALL_PREFIXES(ExtensionRendererInfoTest, ExtensionRendererInfo);
- std::string id_;
- ExtensionExtent web_extent_;
- std::string name_;
- Extension::Location location_;
- GURL icon_url_;
-
- // Some internal extensions, such as accessibility extensions, should be able
- // to execute scripts everywhere.
- bool allowed_to_execute_script_everywhere_;
-
- // The list of host permissions, that the extension is allowed to run scripts
- // on.
- std::vector<URLPattern> host_permissions_;
-
// static
- static std::vector<ExtensionRendererInfo>* extensions_;
+ typedef std::map<std::string, scoped_refptr<const Extension> > ExtensionMap;
+ ExtensionMap extensions_;
+
+ DISALLOW_COPY_AND_ASSIGN(ExtensionRendererInfo);
};
#endif // CHROME_RENDERER_EXTENSIONS_EXTENSION_RENDERER_INFO_H_
« no previous file with comments | « chrome/renderer/extensions/extension_process_bindings.cc ('k') | chrome/renderer/extensions/extension_renderer_info.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698