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

Unified Diff: chrome/browser/resources/settings/passwords_and_forms_page/passwords_section.js

Issue 2442333003: Elide origin URLs from the left (Closed)
Patch Set: Addressed nits, fixed types and added test. Created 4 years, 2 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
Index: chrome/browser/resources/settings/passwords_and_forms_page/passwords_section.js
diff --git a/chrome/browser/resources/settings/passwords_and_forms_page/passwords_section.js b/chrome/browser/resources/settings/passwords_and_forms_page/passwords_section.js
index d0b453c4a60010fa2e937633aac15af74a3587e9..bf42750cee30dbdddc14b0392201332dfccd0914 100644
--- a/chrome/browser/resources/settings/passwords_and_forms_page/passwords_section.js
+++ b/chrome/browser/resources/settings/passwords_and_forms_page/passwords_section.js
@@ -163,6 +163,41 @@ Polymer({
getEmptyPassword_: function(length) { return ' '.repeat(length); },
/**
+ * Elides origin URL from the left, so that the TLD remains visible.
+ * @param {string} originUrl
+ * @return {string}
+ * @private
+ */
+ elideOriginUrlFromLeft_: function(originUrl) {
+ var websiteColumn = this.$$('.list-item .website-column');
+ var computedStyle = window.getComputedStyle(websiteColumn);
+ var columnWidth = websiteColumn.offsetWidth -
+ parseInt(computedStyle.webkitMarginStart, 10) -
+ parseInt(computedStyle.webkitPaddingStart, 10);
+
+ var canvas = document.createElement('canvas');
+ var ctx = canvas.getContext('2d');
+ ctx.font = computedStyle.font;
+
+ if (ctx.measureText(originUrl).width <= columnWidth)
+ return originUrl;
+
+ var lo = 0;
+ var hi = originUrl.length;
+ var dots = '\u2026'; // HORIZONTAL ELLIPSIS
+
+ while (lo + 1 < hi) {
+ var mid = (lo + hi) >> 1;
+ if (ctx.measureText(dots + originUrl.substr(mid)).width <= columnWidth)
+ hi = mid;
+ else
+ lo = mid;
+ }
+
+ return dots + originUrl.substr(hi);
+ },
+
+ /**
* Opens the password action menu.
* @private
*/

Powered by Google App Engine
This is Rietveld 408576698