home *** CD-ROM | disk | FTP | other *** search
/ Freelog 115 / FreelogNo115-MaiJuin2013.iso / Internet / AvantBrowser / asetup.exe / _data / webkit / chrome.dll / 0 / BINDATA / 546 < prev    next >
Encoding:
Text File  |  2013-04-03  |  3.2 KB  |  134 lines

  1. // Copyright (c) 2012 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4.  
  5. function requestData() {
  6.   var xhr = new XMLHttpRequest();
  7.   xhr.open('GET', 'targets-data.json', false);
  8.   xhr.send(null);
  9.   if (xhr.status === 200)
  10.     return JSON.parse(xhr.responseText);
  11.   return [];
  12. }
  13.  
  14. function inspect(data) {
  15.   chrome.send('inspect',
  16.               [String(data.processId), String(data.routeId)]);
  17. }
  18.  
  19. function terminate(data) {
  20.   chrome.send('terminate',
  21.               [String(data.processId), String(data.routeId)]);
  22. }
  23.  
  24. function removeChildren(element_id) {
  25.   var element = document.getElementById(element_id);
  26.   element.textContent = '';
  27. }
  28.  
  29. function populateLists() {
  30.   var data = requestData();
  31.  
  32.   removeChildren('pages');
  33.   removeChildren('extensions');
  34.   removeChildren('workers');
  35.   removeChildren('others');
  36.  
  37.   for (var i = 0; i < data.length; i++) {
  38.     if (data[i].type === 'page')
  39.       addToPagesList(data[i]);
  40.     else if (data[i].type === 'worker')
  41.       addToWorkersList(data[i]);
  42.     else if (data[i].type === 'extension')
  43.       addToExtensionsList(data[i]);
  44.     else
  45.       addToOthersList(data[i]);
  46.   }
  47. }
  48.  
  49. function addToPagesList(data) {
  50.   addTargetToList(data, 'pages', ['favicon_url', 'name', 'url']);
  51. }
  52.  
  53. function addToExtensionsList(data) {
  54.   addTargetToList(data, 'extensions', ['name', 'url']);
  55. }
  56.  
  57. function addToWorkersList(data) {
  58.   addTargetToList(data,
  59.                   'workers',
  60.                   ['name', 'url', 'pid'],
  61.                   true);
  62. }
  63.  
  64. function addToOthersList(data) {
  65.   addTargetToList(data, 'others', ['url']);
  66. }
  67.  
  68. function formatValue(data, property) {
  69.   var value = data[property];
  70.  
  71.   if (property == 'favicon_url') {
  72.     var faviconElement = document.createElement('img');
  73.     if (value)
  74.       faviconElement.src = value;
  75.     return faviconElement;
  76.   }
  77.  
  78.   var text = value ? String(value) : '';
  79.   if (text.length > 100)
  80.     text = text.substring(0, 100) + '\u2026';
  81.  
  82.   if (property == 'pid')
  83.     text = 'Pid:' + text;
  84.  
  85.   var span = document.createElement('span');
  86.   span.textContent = ' ' + text + ' ';
  87.   span.className = property;
  88.   return span;
  89. }
  90.  
  91. function addTargetToList(data, listId, properties, canTerminate) {
  92.   var list = document.getElementById(listId);
  93.   var row = document.createElement('div');
  94.   row.className = 'row';
  95.   for (var j = 0; j < properties.length; j++)
  96.     row.appendChild(formatValue(data, properties[j]));
  97.  
  98.   row.appendChild(createInspectElement(data));
  99.   if (canTerminate)
  100.     row.appendChild(createTerminateElement(data));
  101.  
  102.   row.processId = data.processId;
  103.   row.routeId = data.routeId;
  104.  
  105.   list.appendChild(row);
  106. }
  107.  
  108. function createInspectElement(data) {
  109.   var link = document.createElement('a');
  110.   link.setAttribute('href', '#');
  111.   link.textContent = ' inspect ';
  112.   link.addEventListener(
  113.       'click',
  114.       inspect.bind(this, data),
  115.       true);
  116.   return link;
  117. }
  118.  
  119. function createTerminateElement(data) {
  120.   var link = document.createElement('a');
  121.   if (data.attached)
  122.     link.disabled = true;
  123.  
  124.   link.setAttribute('href', '#');
  125.   link.textContent = ' terminate ';
  126.   link.addEventListener(
  127.       'click',
  128.       terminate.bind(this, data),
  129.       true);
  130.   return link;
  131. }
  132.  
  133. document.addEventListener('DOMContentLoaded', populateLists);
  134.