1eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Copyright 2013 The Chromium Authors. All rights reserved. 2eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// found in the LICENSE file. 4eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 5eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch/** 6eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch * Requests the list of uploads from the backend. 7eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch */ 8eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochfunction requestUploads() { 9eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch chrome.send('requestWebRtcLogsList'); 10eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch} 11eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 12eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch/** 13eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch * Callback from backend with the list of uploads. Builds the UI. 14eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch * @param {boolean} enabled Whether or not uploading is enabled. 15eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch * @param {array} uploads The list of uploads. 16eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch * @param {string} version The browser version. 17eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch */ 18eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochfunction updateWebRtcLogsList(enabled, uploads, version) { 19eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch $('log-banner').textContent = loadTimeData.getStringF('webrtcLogCountFormat', 20eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch uploads.length); 21eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 22eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch var logSection = $('log-list'); 23eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 24eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch $('enabled-mode').hidden = !enabled; 25eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch $('disabled-mode').hidden = enabled; 26eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 27eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch if (!enabled) 28eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch return; 29eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 30eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch // Clear any previous list. 31eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch logSection.textContent = ''; 32eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 33eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch for (var i = 0; i < uploads.length; i++) { 34eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch var upload = uploads[i]; 35eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 36eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch var logBlock = document.createElement('div'); 37eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch var title = document.createElement('h3'); 38eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch title.textContent = loadTimeData.getStringF('webrtcLogHeaderFormat', 39eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch upload['id']); 40eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch logBlock.appendChild(title); 41eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch var date = document.createElement('p'); 42eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch date.textContent = loadTimeData.getStringF('webrtcLogTimeFormat', 43eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch upload['time']); 44eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch logBlock.appendChild(date); 45eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch var linkBlock = document.createElement('p'); 46eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch var link = document.createElement('a'); 47eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch var commentLines = [ 48eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 'Chrome Version: ' + version, 49eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch // TODO(tbreisacher): fill in the OS automatically? 50eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 'Operating System: e.g., "Windows 7", "Mac OSX 10.6"', 51eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch '', 52eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 'URL (if applicable) where the problem occurred:', 53eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch '', 54eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 'Can you reproduce this problem?', 55eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch '', 56eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 'What steps will reproduce this problem? (or if it\'s not ' + 57eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 'reproducible, what were you doing just before the problem)?', 58eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch '', 59eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch '1.', '2.', '3.', 60eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch '', 61eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch '*Please note that issues filed with no information filled in ' + 62eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 'above will be marked as WontFix*', 63eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch '', 64eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch '****DO NOT CHANGE BELOW THIS LINE****', 65eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 'report_id:' + upload.id 66eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch ]; 67eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch var params = { 68eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch template: 'Defect report from user', 69eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch comment: commentLines.join('\n'), 70eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch }; 71eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch var href = 'http://code.google.com/p/chromium/issues/entry'; 72eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch for (var param in params) { 73eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch href = appendParam(href, param, params[param]); 74eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch } 75eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch link.href = href; 76eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch link.target = '_blank'; 77eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch link.textContent = loadTimeData.getString('bugLinkText'); 78eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch linkBlock.appendChild(link); 79eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch logBlock.appendChild(linkBlock); 80eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch logSection.appendChild(logBlock); 81eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch } 82eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 83eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch $('no-logs').hidden = uploads.length != 0; 84eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch} 85eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 86eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochdocument.addEventListener('DOMContentLoaded', requestUploads); 87