// 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; })();