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

Unified Diff: chrome/browser/resources/options/password_manager.js

Issue 1823423002: [Password Manager] Changes implementation of left elided origins (Relanding) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add the check that columnWidth > 0 Created 4 years, 9 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
« no previous file with comments | « no previous file | chrome/browser/resources/options/password_manager_list.css » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/resources/options/password_manager.js
diff --git a/chrome/browser/resources/options/password_manager.js b/chrome/browser/resources/options/password_manager.js
index 3e501727ff7b904a63df1d7a3843d10c35f21985..c41684550a9de2c846450711f98c4feabaabf5f1 100644
--- a/chrome/browser/resources/options/password_manager.js
+++ b/chrome/browser/resources/options/password_manager.js
@@ -165,6 +165,34 @@ cr.define('options', function() {
},
/**
+ * Updates eliding of origins. If there is no enough space to show the full
+ * origin, the origin is elided from the left with ellipsis.
+ * @param {!cr.ui.List} list The list to update eliding.
+ */
+ updateOriginsEliding_: function(list) {
+ var entries = list.getElementsByClassName('deletable-item');
+ if (entries.length == 0)
+ return;
+ var entry = entries[0];
+ var computedStyle = window.getComputedStyle(entry.urlDiv);
+ var columnWidth = entry.urlDiv.offsetWidth -
+ parseInt(computedStyle.webkitMarginStart, 10) -
+ parseInt(computedStyle.webkitPaddingStart, 10);
+ if (columnWidth <= 0) {
+ console.error('Estimated column width <= 0. Skip origins eliding.');
+ return;
+ }
+ for (var i = 0; i < entries.length; ++i) {
+ var urlLink = entries[i].urlLink;
+ if (entries[i].isAndroidUri || urlLink.offsetWidth <= columnWidth)
+ continue;
+ urlLink.textContent = '…' + urlLink.textContent.substring(1);
+ while (urlLink.offsetWidth > columnWidth)
+ urlLink.textContent = '…' + urlLink.textContent.substring(2);
+ }
+ },
+
+ /**
* Updates the data model for the saved passwords list with the values from
* |entries|.
* @param {!Array} entries The list of saved password data.
@@ -191,6 +219,9 @@ cr.define('options', function() {
}
this.savedPasswordsList_.dataModel = new ArrayDataModel(entries);
this.updateListVisibility_(this.savedPasswordsList_);
+ // updateOriginsEliding_ should be called after updateListVisibility_,
+ // otherwise updateOrigins... might be not able to read width of elements.
+ this.updateOriginsEliding_(this.savedPasswordsList_);
},
/**
@@ -201,6 +232,9 @@ cr.define('options', function() {
setPasswordExceptionsList_: function(entries) {
this.passwordExceptionsList_.dataModel = new ArrayDataModel(entries);
this.updateListVisibility_(this.passwordExceptionsList_);
+ // updateOriginsEliding_ should be called after updateListVisibility_,
+ // otherwise updateOrigins... might be not able to read width of elements.
+ this.updateOriginsEliding_(this.passwordExceptionsList_);
},
/**
« no previous file with comments | « no previous file | chrome/browser/resources/options/password_manager_list.css » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698