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

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

Issue 5642001: Fix issue that causes some extensions to be disabled right after installation. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix comment Created 10 years 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.h
diff --git a/chrome/common/extensions/extension.h b/chrome/common/extensions/extension.h
index a8a05f5d6cca9751fe51d06ab41517aafc3f219f..0d171d8c4b23fcff7fa4ad5b9f50338555e33503 100644
--- a/chrome/common/extensions/extension.h
+++ b/chrome/common/extensions/extension.h
@@ -123,13 +123,21 @@ class Extension : public base::RefCountedThreadSafe<Extension> {
// should display at install time.
std::vector<string16> GetPermissionMessages() const;
- // Returns the distinct hosts that should be displayed in the install UI. This
- // discards some of the detail that is present in the manifest to make it as
- // easy as possible to process by users. In particular we disregard the scheme
- // and path components of URLPatterns and de-dupe the result.
- static std::vector<std::string> GetDistinctHosts(
- const URLPatternList& host_patterns);
- std::vector<std::string> GetDistinctHosts() const;
+ // Returns the distinct hosts that should be displayed in the install UI
+ // for the URL patterns |list|. This discards some of the detail that is
+ // present in the manifest to make it as easy as possible to process by
+ // users. In particular we disregard the scheme and path components of
+ // URLPatterns and de-dupe the result, which includes filtering out common
+ // hosts with differing RCDs. (NOTE: when de-duping hosts with common RCDs,
+ // the first pattern is returned and the rest discarded)
+ static std::vector<std::string> GetDistinctHostsForDisplay(
+ const URLPatternList& list);
+
+ // Compares two URLPatternLists for security equality by returning whether
+ // the URL patterns in |new_list| contain additional distinct hosts compared
+ // to |old_list|.
+ static bool IsElevatedHostList(
+ const URLPatternList& old_list, const URLPatternList& new_list);
// Icon sizes used by the extension system.
static const int kIconSizes[];
@@ -456,6 +464,22 @@ class Extension : public base::RefCountedThreadSafe<Extension> {
// sure the drive letter is uppercase.
static FilePath MaybeNormalizePath(const FilePath& path);
+ // Returns the distinct hosts that can be displayed in the install UI or be
+ // used for privilege comparisons. This discards some of the detail that is
+ // present in the manifest to make it as easy as possible to process by users.
+ // In particular we disregard the scheme and path components of URLPatterns
+ // and de-dupe the result, which includes filtering out common hosts with
+ // differing RCDs. If |include_rcd| is true, then the de-duped result
+ // will be the first full entry, including its RCD. So if the list was
+ // "*.google.co.uk" and "*.google.com", the returned value would just be
+ // "*.google.co.uk". Keeping the RCD in the result is useful for display
+ // purposes when you want to show the user one sample hostname from the list.
+ // If you need to compare two URLPatternLists for security equality, then set
+ // |include_rcd| to false, which will return a result like "*.google.",
+ // regardless of the order of the patterns.
+ static std::vector<std::string> GetDistinctHosts(
+ const URLPatternList& host_patterns, bool include_rcd);
+
Extension(const FilePath& path, Location location);
~Extension();

Powered by Google App Engine
This is Rietveld 408576698