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

Unified Diff: chrome/common/extensions/extension_set.h

Issue 8733004: Make ExtensionService use ExtensionSet. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: = Created 9 years, 1 month 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/common/extensions/extension_set.h
diff --git a/chrome/common/extensions/extension_set.h b/chrome/common/extensions/extension_set.h
index 36fd6dabaade61f418927512729a9251c4805c5e..cd9d9c81ce0335c225935582ea6a80e1fca07ece 100644
--- a/chrome/common/extensions/extension_set.h
+++ b/chrome/common/extensions/extension_set.h
@@ -6,9 +6,9 @@
#define CHROME_COMMON_EXTENSIONS_EXTENSION_SET_H_
#pragma once
+#include <iterator>
#include <map>
#include <string>
-#include <vector>
#include "base/gtest_prod_util.h"
#include "base/memory/ref_counted.h"
@@ -21,17 +21,39 @@ class ExtensionSet {
public:
typedef std::pair<FilePath, std::string> ExtensionPathAndDefaultLocale;
typedef std::map<std::string, scoped_refptr<const Extension> > ExtensionMap;
- typedef ExtensionMap::const_iterator const_iterator;
+
+ // Iteration over the values of the map (given that it's an ExtensionSet,
+ // it should iterate like a set iterator).
Aaron Boodman 2011/12/01 08:27:12 Fair enough.
+ class const_iterator :
+ public std::iterator<std::input_iterator_tag,
+ scoped_refptr<const Extension> > {
+ public:
+ const_iterator() {}
+ explicit const_iterator(ExtensionMap::const_iterator it) :
+ it_(it) {}
+ const_iterator& operator++() {
+ ++it_;
+ return *this;
+ }
+ const scoped_refptr<const Extension> operator*() {
+ return it_->second;
+ }
+ bool operator!=(const const_iterator& other) { return it_ != other.it_; }
+ bool operator==(const const_iterator& other) { return it_ == other.it_; }
+
+ private:
+ ExtensionMap::const_iterator it_;
+ };
ExtensionSet();
~ExtensionSet();
- // Gets the number of extensions contained.
size_t size() const;
+ bool empty() const;
// Iteration support.
- const_iterator begin() const { return extensions_.begin(); }
- const_iterator end() const { return extensions_.end(); }
+ const_iterator begin() const { return const_iterator(extensions_.begin()); }
+ const_iterator end() const { return const_iterator(extensions_.end()); }
// Returns true if the set contains the specified extension.
bool Contains(const std::string& id) const;
@@ -43,9 +65,12 @@ class ExtensionSet {
// Removes the specified extension.
void Remove(const std::string& id);
+ // Removes all extensions.
+ void Clear();
+
// 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.
- std::string GetIdByURL(const GURL& url) const;
+ std::string GetIDByURL(const GURL& url) const;
// 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.

Powered by Google App Engine
This is Rietveld 408576698