15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)* Takes the |moduleListData| input argument which represents data about
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)* the currently available modules and populates the html jstemplate
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)* with that data. It expects an object structure like the above.
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)* @param {Object} moduleListData Information about available modules
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)function renderTemplate(moduleListData) {
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // This is the javascript code that processes the template:
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  var input = new JsEvalContext(moduleListData);
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  var output = $('flashInfoTemplate');
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  jstProcess(input, output);
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)* Asks the C++ FlashUIDOMHandler to get details about the Flash and return
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)* the data in returnFlashInfo() (below).
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)function requestFlashInfo() {
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  chrome.send('requestFlashInfo');
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)* Called by the WebUI to re-populate the page with data representing the
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)* current state of Flash.
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)* @param {Object} moduleListData Information about available modules.
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)function returnFlashInfo(moduleListData) {
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  $('loading-message').style.visibility = 'hidden';
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  $('body-container').style.visibility = 'visible';
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  renderTemplate(moduleListData);
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Get data and have it displayed upon loading.
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)document.addEventListener('DOMContentLoaded', requestFlashInfo);
39