| 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
|
| */
|
|
|