blob: a31de2355ff0d36540aaef195ffc7bed5ac9b6e8 [file] [log] [blame]
// Copyright 2013 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.
/**
* Handles the Extension ID -> SyncStatus tab for syncfs-internals.
*/
var ExtensionStatuses = (function() {
'use strict';
var ExtensionStatuses = {};
/**
* Get initial map of extension statuses (pending batch sync, enabled and
* disabled).
*/
function getExtensionStatuses() {
chrome.send('getExtensionStatuses');
}
// TODO(calvinlo): Move to helper file so it doesn't need to be duplicated.
/**
* Creates an element named |elementName| containing the content |text|.
* @param {string} elementName Name of the new element to be created.
* @param {string} text Text to be contained in the new element.
* @return {HTMLElement} The newly created HTML element.
*/
function createElementFromText(elementName, text) {
var element = document.createElement(elementName);
element.appendChild(document.createTextNode(text));
return element;
}
/**
* Handles callback from onGetExtensionStatuses.
* @param {Array} list of dictionaries containing 'extensionName',
* 'extensionID, 'status'.
*/
ExtensionStatuses.onGetExtensionStatuses = function(extensionStatuses) {
var itemContainer = $('extension-entries');
itemContainer.textContent = '';
for (var i = 0; i < extensionStatuses.length; i++) {
var originEntry = extensionStatuses[i];
var tr = document.createElement('tr');
tr.appendChild(createElementFromText('td', originEntry.extensionName));
tr.appendChild(createElementFromText('td', originEntry.extensionID));
tr.appendChild(createElementFromText('td', originEntry.status));
itemContainer.appendChild(tr);
}
}
function main() {
getExtensionStatuses();
$('refresh-extensions-statuses').addEventListener('click',
getExtensionStatuses);
}
document.addEventListener('DOMContentLoaded', main);
return ExtensionStatuses;
})();