blob: e8eb92ea557131d30b6dc87642165ee3174706b6 [file] [log] [blame]
// Copyright (c) 2011 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.
/**
* This variable structure is here to document the structure that the template
* expects to correctly populate the page.
*/
var moduleListDataFormat = {
'moduleList': [
{
'type': 'The type of module found',
'type_description':
'The type of module (string), defaults to blank for regular modules',
'status': 'The module status',
'location': 'The module path, not including filename',
'name': 'The name of the module',
'product_name': 'The name of the product the module belongs to',
'description': 'The module description',
'version': 'The module version',
'digital_signer': 'The signer of the digital certificate for the module',
'recommended_action': 'The help tips bitmask',
'possible_resolution': 'The help tips in string form',
'help_url': 'The link to the Help Center article'
}
]
};
/**
* Takes the |moduleListData| input argument which represents data about
* the currently available modules and populates the html jstemplate
* with that data. It expects an object structure like the above.
* @param {Object} moduleListData Information about available modules.
*/
function renderTemplate(moduleListData) {
// This is the javascript code that processes the template:
var input = new JsEvalContext(moduleListData);
var output = $('modulesTemplate');
jstProcess(input, output);
}
/**
* Asks the C++ ConflictsDOMHandler to get details about the available modules
* and return detailed data about the configuration. The ConflictsDOMHandler
* should reply to returnModuleList() (below).
*/
function requestModuleListData() {
chrome.send('requestModuleList');
}
/**
* Called by the WebUI to re-populate the page with data representing the
* current state of installed modules.
* @param {Object} moduleListData Information about available modules.
*/
function returnModuleList(moduleListData) {
renderTemplate(moduleListData);
$('loading-message').style.visibility = 'hidden';
$('body-container').style.visibility = 'visible';
}
// Get data and have it displayed upon loading.
document.addEventListener('DOMContentLoaded', requestModuleListData);