Index: chrome/browser/resources/settings/site_settings/site_list.js |
diff --git a/chrome/browser/resources/settings/site_settings/site_list.js b/chrome/browser/resources/settings/site_settings/site_list.js |
index 5d51cddd0b04d2e187b96d127499f38dfecdd606..b871b489a5e4a21d7b220528fa7e38eced9742c3 100644 |
--- a/chrome/browser/resources/settings/site_settings/site_list.js |
+++ b/chrome/browser/resources/settings/site_settings/site_list.js |
@@ -320,25 +320,6 @@ Polymer({ |
}, |
/** |
- * Converts a string origin/pattern to a URL. |
- * @param {string} originOrPattern The origin/pattern to convert to URL. |
- * @return {URL} The URL to return (or null if origin is not a valid URL). |
- * @private |
- */ |
- toUrl_: function(originOrPattern) { |
- if (originOrPattern.length == 0) |
- return null; |
- // TODO(finnur): Hmm, it would probably be better to ensure scheme on the |
- // JS/C++ boundary. |
- // TODO(dschuyler): I agree. This filtering should be done in one go, rather |
- // that during the sort. The URL generation should be wrapped in a try/catch |
- // as well. |
- originOrPattern = originOrPattern.replace('*://', ''); |
- originOrPattern = originOrPattern.replace('[*.]', ''); |
- return new URL(this.ensureUrlHasScheme(originOrPattern)); |
- }, |
- |
- /** |
* Converts an unordered site list to an ordered array, sorted by site name |
* then protocol and de-duped (by origin). |
* @param {!Array<SiteException>} sites A list of sites to sort and de-dupe. |
@@ -348,8 +329,8 @@ Polymer({ |
toSiteArray_: function(sites) { |
var self = this; |
sites.sort(function(a, b) { |
- var url1 = self.toUrl_(a.origin); |
- var url2 = self.toUrl_(b.origin); |
+ var url1 = self.toUrl(a.origin); |
+ var url2 = self.toUrl(b.origin); |
var comparison = url1.host.localeCompare(url2.host); |
if (comparison == 0) { |
comparison = url1.protocol.localeCompare(url2.protocol); |
@@ -357,8 +338,8 @@ Polymer({ |
comparison = url1.port.localeCompare(url2.port); |
if (comparison == 0) { |
// Compare hosts for the embedding origins. |
- var host1 = self.toUrl_(a.embeddingOrigin); |
- var host2 = self.toUrl_(b.embeddingOrigin); |
+ var host1 = self.toUrl(a.embeddingOrigin); |
+ var host2 = self.toUrl(b.embeddingOrigin); |
host1 = (host1 == null) ? '' : host1.host; |
host2 = (host2 == null) ? '' : host2.host; |
return host1.localeCompare(host2); |
@@ -371,34 +352,18 @@ Polymer({ |
var lastOrigin = ''; |
var lastEmbeddingOrigin = ''; |
for (var i = 0; i < sites.length; ++i) { |
- var origin = sites[i].origin; |
- var originForDisplay = this.sanitizePort(this.toUrl_(origin).origin); |
- |
- var embeddingOrigin = sites[i].embeddingOrigin; |
- var embeddingOriginForDisplay = ''; |
- if (origin != embeddingOrigin) { |
- embeddingOriginForDisplay = |
- this.getEmbedderString(embeddingOrigin, this.category); |
- } |
+ /** @type {!SiteException} */ |
+ var siteException = this.expandSiteException(sites[i]); |
// The All Sites category can contain duplicates (from other categories). |
- if (originForDisplay == lastOrigin && |
- embeddingOriginForDisplay == lastEmbeddingOrigin) { |
+ if (siteException.originForDisplay == lastOrigin && |
+ siteException.embeddingOriginForDisplay == lastEmbeddingOrigin) { |
continue; |
} |
- results.push({ |
- origin: origin, |
- originForDisplay: originForDisplay, |
- embeddingOrigin: embeddingOrigin, |
- embeddingOriginForDisplay: embeddingOriginForDisplay, |
- incognito: sites[i].incognito, |
- setting: sites[i].setting, |
- source: sites[i].source, |
- }); |
- |
- lastOrigin = originForDisplay; |
- lastEmbeddingOrigin = embeddingOriginForDisplay; |
+ results.push(siteException); |
+ lastOrigin = siteException.originForDisplay; |
+ lastEmbeddingOrigin = siteException.embeddingOriginForDisplay; |
} |
return results; |
}, |