14e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
24e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
34e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// found in the LICENSE file.
44e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
54e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)function dumpDevices(devices) {
64e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    $('#deviceinfos').empty();
74e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    $('#deviceinfos').append(outputDevicesToList(devices));
84e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)}
94e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
104e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)function outputDevicesToList(devices) {
114e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    var table = $('<table border="1">');
124e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    table.append($("<tr>" +
134e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)                   "<th>" + "Name" + "</th>" +
144e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)                   "<th>" + "OS" + "</th>" +
154e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)                   "<th>" + "Id" + "</th>" +
164e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)                   "<th>" + "Type" + "</th>" +
174e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)                   "<th>" + "Chrome Version" + "</th>" +
184e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)                   "</tr>"));
194e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    for (i = 0; i < devices.length; i++) {
204e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)        table.append($("<tr>" +
214e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)                       "<td>" + devices[i].name + "</td>" +
224e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)                       "<td>" + devices[i].os + "</td>" +
234e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)                       "<td>" + devices[i].id + "</td>" +
244e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)                       "<td>" + devices[i].type + "</td>" +
254e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)                       "<td>" + devices[i].chromeVersion + "</td>" +
264e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)                       "</tr>"));
274e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    }
284e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    return table;
294e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)}
304e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
314e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Add an event listener to listen for changes to device info. The
324e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// callback would redisplay the list of devices.
334e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)chrome.signedInDevices.onDeviceInfoChange.addListener(dumpDevices);
344e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
354e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)function populateDevices() {
364e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  // Get the list of devices and display it.
374e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  chrome.signedInDevices.get(false, dumpDevices);
384e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)}
394e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
404e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)document.addEventListener('DOMContentLoaded', function () {
414e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    populateDevices();
424e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)});
43