Chromium Code Reviews| Index: chrome/browser/resources/options/password_manager_list.js |
| diff --git a/chrome/browser/resources/options/password_manager_list.js b/chrome/browser/resources/options/password_manager_list.js |
| index f54d777f31572dfbfe3fc1118b1c42ee47cb3dd5..b9a2b0f138df18616daaafc2aabb514f45c9662c 100644 |
| --- a/chrome/browser/resources/options/password_manager_list.js |
| +++ b/chrome/browser/resources/options/password_manager_list.js |
| @@ -10,9 +10,10 @@ cr.define('options.passwordManager', function() { |
| // The following constants should be synchronized with the constants in |
| // chrome/browser/ui/webui/options/password_manager_handler.cc. |
| - /** @const */ var ORIGIN_FIELD = 'origin'; |
| - /** @const */ var SHOWN_URL_FIELD = 'shownUrl'; |
| + /** @const */ var URL_FIELD = 'url'; |
| + /** @const */ var SHOWN_ORIGIN_FIELD = 'shownOrigin'; |
| /** @const */ var IS_ANDROID_URI_FIELD = 'isAndroidUri'; |
| + /** @const */ var IS_CLICKABLE_FIELD = 'isClickable'; |
| /** @const */ var IS_SECURE_FIELD = 'isSecure'; |
| /** @const */ var USERNAME_FIELD = 'username'; |
| /** @const */ var PASSWORD_FIELD = 'password'; |
| @@ -42,15 +43,15 @@ cr.define('options.passwordManager', function() { |
| } |
| /** |
| - * Returns title for password's origin. If the origin is Android URI, returns |
| - * the origin as it is. Removes the scheme if the url is insecure and removes |
| - * trailing punctuation symbols. |
| + * Returns title for password's origin. If the origin is not clickable, |
| + * returns the origin as it is. For clickable origins, removes the scheme if |
| + * the url is insecure and removes trailing punctuation symbols. |
| * @param {Object} item A dictionary of data on the list item. |
| * @return {string} The title for password's origin. |
| */ |
| function getTitleForPasswordOrigin(item) { |
| var title = item.url; |
| - if (item.isAndroidUri) |
| + if (!item.isClickable) |
| return title; |
| if (!item.isSecure) { |
| var ind = title.indexOf('://'); |
| @@ -62,16 +63,16 @@ cr.define('options.passwordManager', function() { |
| } |
| /** |
| - * Helper function that creates an HTML element for displaying the origin of |
| - * saved password. |
| + * Helper function that creates an HTML element for displaying the link to |
| + * the origin of saved password. |
| * @param {Object} item A dictionary of data on the list item. |
| * @param {Element} urlDiv div-element that will enclose the created |
| * element. |
| - * @return {Element} The element for displaying password origin. |
| + * @return {Element} The element for displaying the link to the origin. |
| */ |
| function createUrlLink(item, urlDiv) { |
| var urlLink; |
| - if (!item.isAndroidUri) { |
| + if (item.isClickable) { |
| urlLink = item.ownerDocument.createElement('a'); |
| urlLink.href = item.url; |
| urlLink.setAttribute('target', '_blank'); |
| @@ -79,13 +80,40 @@ cr.define('options.passwordManager', function() { |
| } else { |
| urlLink = item.ownerDocument.createElement('span'); |
| } |
| - urlLink.textContent = item.shownUrl; |
| + urlLink.textContent = item.shownOrigin; |
| urlLink.addEventListener('focus', function() { |
| item.handleFocus(); |
| }.bind(item)); |
| return urlLink; |
| } |
| + /** |
| + * Helper function that creates an HTML element for displaying the origin of |
| + * saved password. It also sets some properties in |item|. |
| + * @param {Object} item A dictionary of data on the list item. |
| + * @return {Element} The element for displaying the origin of saved password. |
| + */ |
| + function createUrlDiv(item) { |
| + var urlDiv = cr.doc.createElement('div'); |
| + urlDiv.className = 'favicon-cell url'; |
| + urlDiv.setAttribute('title', getTitleForPasswordOrigin(item)); |
| + urlDiv.style.backgroundImage = getFaviconImageSet( |
| + 'origin/' + item.url, 16); |
| + |
| + item.urlLink = createUrlLink(item, urlDiv); |
| + urlDiv.appendChild(item.urlLink); |
| + |
| + if (item.isAndroidUri && item.isClickable) { |
| + var androidUriSuffix = cr.doc.createElement('span'); |
|
Evan Stade
2016/03/30 21:52:03
nit: no need for this local var, you can just assi
|
| + androidUriSuffix.textContent = loadTimeData.getString('androidUriSuffix'); |
| + item.androidUriSuffix = androidUriSuffix; |
| + urlDiv.appendChild(androidUriSuffix); |
| + } |
| + |
| + item.urlDiv = urlDiv; |
| + return urlDiv; |
| + } |
| + |
| PasswordListItem.prototype = { |
| __proto__: DeletableItem.prototype, |
| @@ -94,17 +122,7 @@ cr.define('options.passwordManager', function() { |
| DeletableItem.prototype.decorate.call(this); |
| // The URL of the site. |
| - var urlDiv = this.ownerDocument.createElement('div'); |
| - urlDiv.className = 'favicon-cell url'; |
| - urlDiv.setAttribute('title', getTitleForPasswordOrigin(this)); |
| - urlDiv.style.backgroundImage = getFaviconImageSet( |
| - 'origin/' + this.url, 16); |
| - |
| - this.urlLink = createUrlLink(this, urlDiv); |
| - urlDiv.appendChild(this.urlLink); |
| - |
| - this.urlDiv = urlDiv; |
| - this.contentElement.appendChild(urlDiv); |
| + this.contentElement.appendChild(createUrlDiv(this)); |
| // The stored username. |
| var usernameDiv = this.ownerDocument.createElement('div'); |
| @@ -258,81 +276,68 @@ cr.define('options.passwordManager', function() { |
| }, |
| /** |
| - * Get and set the URL for the entry. |
| + * Get the URL for the entry. |
| * @type {string} |
| */ |
| get url() { |
| - return this.dataItem[ORIGIN_FIELD]; |
| - }, |
| - set url(url) { |
| - this.dataItem[ORIGIN_FIELD] = url; |
| + return this.dataItem[URL_FIELD]; |
| }, |
| /** |
| - * Get and set the shown url for the entry. |
| + * Get the shown origin for the entry. |
| * @type {string} |
| */ |
| - get shownUrl() { |
| - return this.dataItem[SHOWN_URL_FIELD]; |
| - }, |
| - set shownUrl(shownUrl) { |
| - this.dataItem[SHOWN_URL_FIELD] = shownUrl; |
| + get shownOrigin() { |
| + return this.dataItem[SHOWN_ORIGIN_FIELD]; |
| }, |
| /** |
| - * Get and set whether the origin is Android URI. |
| + * Get whether the origin is Android URI. |
| * @type {boolean} |
| */ |
| get isAndroidUri() { |
| return this.dataItem[IS_ANDROID_URI_FIELD]; |
| }, |
| - set isAndroidUri(isAndroidUri) { |
| - this.dataItem[IS_ANDROID_URI_FIELD] = isAndroidUri; |
| + |
| + /** |
| + * Get whether the origin is clickable. |
| + * @type {boolean} |
| + */ |
| + get isClickable() { |
| + return this.dataItem[IS_CLICKABLE_FIELD]; |
| }, |
| /** |
| - * Get and set whether the origin uses secure scheme. |
| + * Get whether the origin uses secure scheme. |
| * @type {boolean} |
| */ |
| get isSecure() { |
| return this.dataItem[IS_SECURE_FIELD]; |
| }, |
| - set isSecure(isSecure) { |
| - this.dataItem[IS_SECURE_FIELD] = isSecure; |
| - }, |
| /** |
| - * Get and set the username for the entry. |
| + * Get the username for the entry. |
| * @type {string} |
| */ |
| get username() { |
| return this.dataItem[USERNAME_FIELD]; |
| }, |
| - set username(username) { |
| - this.dataItem[USERNAME_FIELD] = username; |
| - }, |
| /** |
| - * Get and set the password for the entry. |
| + * Get the password for the entry. |
| * @type {string} |
| */ |
| get password() { |
| return this.dataItem[PASSWORD_FIELD]; |
| }, |
| - set password(password) { |
| - this.dataItem[PASSWORD_FIELD] = password; |
| - }, |
| /** |
| - * Get and set the federation for the entry. |
| + * Get the federation for the entry. |
| * @type {string} |
| */ |
| get federation() { |
| return this.dataItem[FEDERATION_FIELD]; |
| }, |
| - set federation(federation) { |
| - this.dataItem[FEDERATION_FIELD] = federation; |
| - }, |
| }; |
| /** |
| @@ -360,17 +365,7 @@ cr.define('options.passwordManager', function() { |
| DeletableItem.prototype.decorate.call(this); |
| // The URL of the site. |
| - var urlDiv = this.ownerDocument.createElement('div'); |
| - urlDiv.className = 'favicon-cell url'; |
| - urlDiv.setAttribute('title', getTitleForPasswordOrigin(this)); |
| - urlDiv.style.backgroundImage = getFaviconImageSet( |
| - 'origin/' + this.url, 16); |
| - |
| - this.urlLink = createUrlLink(this, urlDiv); |
| - urlDiv.appendChild(this.urlLink); |
| - |
| - this.urlDiv = urlDiv; |
| - this.contentElement.appendChild(urlDiv); |
| + this.contentElement.appendChild(createUrlDiv(this)); |
| }, |
| /** @override */ |
| @@ -399,44 +394,40 @@ cr.define('options.passwordManager', function() { |
| * @type {string} |
| */ |
| get url() { |
| - return this.dataItem[ORIGIN_FIELD]; |
| - }, |
| - set url(url) { |
| - this.dataItem[ORIGIN_FIELD] = url; |
| + return this.dataItem[URL_FIELD]; |
| }, |
| /** |
| - * Get and set the shown url for the entry. |
| + * Get the shown origin for the entry. |
| * @type {string} |
| */ |
| - get shownUrl() { |
| - return this.dataItem[SHOWN_URL_FIELD]; |
| - }, |
| - set shownUrl(shownUrl) { |
| - this.dataItem[SHOWN_URL_FIELD] = shownUrl; |
| + get shownOrigin() { |
| + return this.dataItem[SHOWN_ORIGIN_FIELD]; |
| }, |
| /** |
| - * Get and set whether the origin is Android URI. |
| + * Get whether the origin is Android URI. |
| * @type {boolean} |
| */ |
| get isAndroidUri() { |
| return this.dataItem[IS_ANDROID_URI_FIELD]; |
| }, |
| - set isAndroidUri(isAndroidUri) { |
| - this.dataItem[IS_ANDROID_URI_FIELD] = isAndroidUri; |
| + |
| + /** |
| + * Get whether the origin is clickable. |
| + * @type {boolean} |
| + */ |
| + get isClickable() { |
| + return this.dataItem[IS_CLICKABLE_FIELD]; |
| }, |
| /** |
| - * Get and set whether the origin uses secure scheme. |
| + * Get whether the origin uses secure scheme. |
| * @type {boolean} |
| */ |
| get isSecure() { |
| return this.dataItem[IS_SECURE_FIELD]; |
| }, |
| - set isSecure(isSecure) { |
| - this.dataItem[IS_SECURE_FIELD] = isSecure; |
| - }, |
| }; |
| /** |
| @@ -553,8 +544,10 @@ cr.define('options.passwordManager', function() { |
| PasswordExceptionsListItem: PasswordExceptionsListItem, |
| PasswordsList: PasswordsList, |
| PasswordExceptionsList: PasswordExceptionsList, |
| - ORIGIN_FIELD: ORIGIN_FIELD, |
| - SHOWN_URL_FIELD: SHOWN_URL_FIELD, |
| + URL_FIELD: URL_FIELD, |
| + SHOWN_ORIGIN_FIELD: SHOWN_ORIGIN_FIELD, |
| + IS_ANDROID_URI_FIELD: IS_ANDROID_URI_FIELD, |
| + IS_CLICKABLE_FIELD: IS_CLICKABLE_FIELD, |
| IS_SECURE_FIELD: IS_SECURE_FIELD, |
| USERNAME_FIELD: USERNAME_FIELD, |
| PASSWORD_FIELD: PASSWORD_FIELD, |