| Index: chrome/browser/resources/engagement/site_engagement.js
|
| diff --git a/chrome/browser/resources/engagement/site_engagement.js b/chrome/browser/resources/engagement/site_engagement.js
|
| index f8c7ccccd9aa492e39e7f14c040a9ce41733ed15..8dab46ae9ed49e72c27f9b45b009b017b28e2e1d 100644
|
| --- a/chrome/browser/resources/engagement/site_engagement.js
|
| +++ b/chrome/browser/resources/engagement/site_engagement.js
|
| @@ -4,11 +4,22 @@
|
|
|
| 'use strict';
|
|
|
| +// Allow a function to be provided by tests, which will be called when
|
| +// the page has been populated with site engagement details.
|
| +var resolvePageIsPopulated = null;
|
| +var pageIsPopulatedPromise = new Promise((resolve, reject) => {
|
| + resolvePageIsPopulated = resolve;
|
| +});
|
| +
|
| +function whenPageIsPopulatedForTest() {
|
| + return pageIsPopulatedPromise;
|
| +}
|
| +
|
| define('main', [
|
| 'chrome/browser/engagement/site_engagement.mojom',
|
| 'content/public/renderer/frame_interfaces',
|
| -], function(siteEngagementMojom, frameInterfaces) {
|
| - return function() {
|
| +], (siteEngagementMojom, frameInterfaces) => {
|
| + return () => {
|
| var uiHandler = new siteEngagementMojom.SiteEngagementUIHandlerPtr(
|
| frameInterfaces.getInterface(
|
| siteEngagementMojom.SiteEngagementUIHandler.name));
|
| @@ -23,7 +34,7 @@ define('main', [
|
| var engagementTableHeader = $('engagement-table-header');
|
| var headers = engagementTableHeader.children;
|
| for (var i = 0; i < headers.length; i++) {
|
| - headers[i].addEventListener('click', function(e) {
|
| + headers[i].addEventListener('click', (e) => {
|
| var newSortKey = e.target.getAttribute('sort-key');
|
| if (sortKey == newSortKey) {
|
| sortReverse = !sortReverse;
|
| @@ -117,7 +128,7 @@ define('main', [
|
| * Sort the engagement info based on |sortKey| and |sortReverse|.
|
| */
|
| function sortInfo() {
|
| - info.sort(function(a, b) {
|
| + info.sort((a, b) => {
|
| return (sortReverse ? -1 : 1) *
|
| compareTableItem(sortKey, a, b);
|
| });
|
| @@ -151,10 +162,12 @@ define('main', [
|
| clearTable();
|
| sortInfo();
|
| // Round each score to 2 decimal places.
|
| - info.forEach(function(info) {
|
| + info.forEach((info) => {
|
| info.score = Number(Math.round(info.score * 100) / 100);
|
| engagementTableBody.appendChild(createRow(info));
|
| });
|
| +
|
| + resolvePageIsPopulated();
|
| }
|
|
|
| /**
|
| @@ -162,7 +175,7 @@ define('main', [
|
| */
|
| function updateEngagementTable() {
|
| // Populate engagement table.
|
| - uiHandler.getSiteEngagementInfo().then(function(response) {
|
| + uiHandler.getSiteEngagementInfo().then((response) => {
|
| info = response.info;
|
| renderTable(info);
|
| });
|
|
|