| Index: components/crash/core/browser/resources/crashes.js
|
| diff --git a/components/crash/core/browser/resources/crashes.js b/components/crash/core/browser/resources/crashes.js
|
| index efd5912becd27c284a55b3cb216093b535022db8..edb71fb9b1ca45ba49cc2a8c3ccfd528257b79c2 100644
|
| --- a/components/crash/core/browser/resources/crashes.js
|
| +++ b/components/crash/core/browser/resources/crashes.js
|
| @@ -16,24 +16,23 @@ function requestCrashes() {
|
| * Callback from backend with the list of crashes. Builds the UI.
|
| * @param {boolean} enabled Whether or not crash reporting is enabled.
|
| * @param {boolean} dynamicBackend Whether the crash backend is dynamic.
|
| + * @param {boolean} manualUploads Whether the manual uploads are supported.
|
| * @param {array} crashes The list of crashes.
|
| * @param {string} version The browser version.
|
| * @param {string} os The OS name and version.
|
| */
|
| -function updateCrashList(enabled, dynamicBackend, crashes, version, os) {
|
| +function updateCrashList(
|
| + enabled, dynamicBackend, manualUploads,
|
| + crashes, version, os) {
|
| $('countBanner').textContent =
|
| loadTimeData.getStringF('crashCountFormat',
|
| crashes.length.toLocaleString());
|
|
|
| var crashSection = $('crashList');
|
|
|
| - $('enabledMode').hidden = !enabled;
|
| $('disabledMode').hidden = enabled;
|
| $('crashUploadStatus').hidden = !enabled || !dynamicBackend;
|
|
|
| - if (!enabled)
|
| - return;
|
| -
|
| // Clear any previous list.
|
| crashSection.textContent = '';
|
|
|
| @@ -41,27 +40,27 @@ function updateCrashList(enabled, dynamicBackend, crashes, version, os) {
|
|
|
| for (var i = 0; i < crashes.length; i++) {
|
| var crash = crashes[i];
|
| - if (crash['local_id'] == '')
|
| - crash['local_id'] = productName;
|
| + if (crash.local_id == '')
|
| + crash.local_id = productName;
|
|
|
| var crashBlock = document.createElement('div');
|
| - if (crash['state'] != 'uploaded')
|
| + if (crash.state != 'uploaded')
|
| crashBlock.className = 'notUploaded';
|
| var title = document.createElement('h3');
|
| - var uploaded = crash['state'] == 'uploaded';
|
| + var uploaded = crash.state == 'uploaded';
|
| if (uploaded) {
|
| title.textContent = loadTimeData.getStringF('crashHeaderFormat',
|
| - crash['id'],
|
| - crash['local_id']);
|
| + crash.id,
|
| + crash.local_id);
|
| } else {
|
| title.textContent = loadTimeData.getStringF('crashHeaderFormatLocalOnly',
|
| - crash['local_id']);
|
| + crash.local_id);
|
| }
|
| crashBlock.appendChild(title);
|
| if (uploaded) {
|
| var date = document.createElement('p');
|
| date.textContent = loadTimeData.getStringF('crashTimeFormat',
|
| - crash['time']);
|
| + crash.time);
|
| crashBlock.appendChild(date);
|
| var linkBlock = document.createElement('p');
|
| var link = document.createElement('a');
|
| @@ -102,16 +101,34 @@ function updateCrashList(enabled, dynamicBackend, crashes, version, os) {
|
| link.textContent = loadTimeData.getString('bugLinkText');
|
| linkBlock.appendChild(link);
|
| crashBlock.appendChild(linkBlock);
|
| - } else if (crash['state'] == 'pending') {
|
| - var pending = document.createElement('p');
|
| - pending.textContent = loadTimeData.getStringF('crashPending',
|
| - crash['time']);
|
| - crashBlock.appendChild(pending);
|
| - } else if (crash['state'] == 'not_uploaded') {
|
| - var not_uploaded = document.createElement('p');
|
| - not_uploaded.textContent = loadTimeData.getStringF('crashNotUploaded',
|
| - crash['time']);
|
| - crashBlock.appendChild(not_uploaded);
|
| + } else if (crash.state == 'pending_user_requested') {
|
| + var userRequested = document.createElement('p');
|
| + userRequested.textContent =
|
| + loadTimeData.getStringF('crashUserRequested', crash.time);
|
| + crashBlock.appendChild(userRequested);
|
| + } else if (crash.state == 'pending' || crash.state == 'not_uploaded') {
|
| + if (crash.state == 'pending')
|
| + var textContentKey = 'crashPending';
|
| + else
|
| + var textContentKey = 'crashNotUploaded';
|
| +
|
| + var notUploaded = document.createElement('p');
|
| + notUploaded.textContent = loadTimeData.getStringF(textContentKey,
|
| + crash.time);
|
| + crashBlock.appendChild(notUploaded);
|
| +
|
| + if (manualUploads) {
|
| + var uploadNowLinkBlock = document.createElement('p');
|
| + var link = document.createElement('a');
|
| + link.href = '';
|
| + link.textContent = loadTimeData.getString('uploadNowLinkText');
|
| + link.local_id = crash.local_id;
|
| + link.onclick = function() {
|
| + chrome.send('requestSingleCrashUpload', [this.local_id]);
|
| + };
|
| + uploadNowLinkBlock.appendChild(link);
|
| + crashBlock.appendChild(uploadNowLinkBlock);
|
| + }
|
| }
|
| crashSection.appendChild(crashBlock);
|
| }
|
| @@ -135,4 +152,4 @@ function requestCrashUpload() {
|
| document.addEventListener('DOMContentLoaded', function() {
|
| $('uploadCrashes').onclick = requestCrashUpload;
|
| requestCrashes();
|
| -});
|
| +});
|
|
|