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 |
new file mode 100644 |
index 0000000000000000000000000000000000000000..137d5f0f08f4a08e3b5ffa27611a81b60dc22262 |
--- /dev/null |
+++ b/chrome/browser/resources/engagement/site_engagement.js |
@@ -0,0 +1,75 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+define('main', [ |
+ 'mojo/public/js/bindings', |
+ 'mojo/public/js/core', |
+ 'mojo/public/js/connection', |
+ 'chrome/browser/ui/webui/engagement/site_engagement.mojom', |
+ 'content/public/renderer/service_provider', |
+], function(bindings, core, connection, browser, serviceProvider) { |
+ 'use strict'; |
+ |
+ var page; |
+ |
+ function clearEngagementTable() { |
+ var table = $('engagement-table'); |
+ table.removeChild(table.getElementsByTagName('tbody')[0]); |
+ table.appendChild(document.createElement('tbody')); |
+ } |
+ |
+ function addEngagementTableRow(origin, score) { |
Sam McNally
2015/08/26 08:23:21
It might be worth using polymer data binding and t
calamity
2015/09/08 07:30:06
Done.
|
+ var tableBody = document.querySelector('#engagement-table > tbody'); |
+ var row = document.createElement('tr'); |
+ |
+ var originCell = document.createElement('td'); |
+ originCell.textContent = origin; |
+ originCell.className = 'origin-cell'; |
+ |
+ var scoreCell = document.createElement('td'); |
+ scoreCell.textContent = score; |
+ |
+ row.appendChild(originCell); |
+ row.appendChild(scoreCell); |
+ tableBody.appendChild(row); |
+ } |
+ |
+ function redrawEngagementTable() { |
Sam McNally
2015/08/26 08:23:21
Why not make this a method of SiteEngagementPageIm
calamity
2015/09/08 07:30:06
I guess I thought that SiteEngagementPageImpl was
|
+ clearEngagementTable(); |
+ for (var i = 0; i < page.info.length; i++) { |
+ var site = page.info[i]; |
+ addEngagementTableRow(site.origin, site.score); |
+ } |
+ } |
+ |
+ function SiteEngagementPageImpl(browser) { |
+ this.browser_ = browser; |
+ this.info = []; |
+ } |
+ |
+ SiteEngagementPageImpl.prototype = |
+ Object.create(browser.SiteEngagementPage.stubClass.prototype); |
+ |
+ SiteEngagementPageImpl.prototype.handleSiteEngagementInfo = function(info) { |
+ this.info = info; |
+ redrawEngagementTable(); |
+ }; |
+ |
+ return function() { |
+ var browserProxy = connection.bindHandleToProxy( |
+ serviceProvider.connectToService( |
+ browser.SiteEngagementUIHandlerMojo.name), |
+ browser.SiteEngagementUIHandlerMojo); |
+ page = new SiteEngagementPageImpl(browserProxy); |
+ |
+ var pipe = core.createMessagePipe(); |
+ var stub = |
+ connection.bindHandleToStub(pipe.handle0, browser.SiteEngagementPage); |
+ bindings.StubBindings(stub).delegate = page; |
+ page.stub_ = stub; |
+ |
+ // Populate engagement table. |
+ page.browser_.getSiteEngagementInfo(pipe.handle1); |
+ }; |
+}); |