Chromium Code Reviews
|
| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright (c) 2010 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 /** | |
| 6 * This view displays options for importing/exporting the captured data. Its | |
| 7 * primarily usefulness is to allow users to copy-paste their data in an easy | |
| 8 * to read format for bug reports. | |
| 9 * | |
| 10 * - Has a button to generate a text report. | |
| 11 * | |
| 12 * - Shows how many events have been captured. | |
| 13 */ | |
| 14 cr.define('gpu', function() { | |
| 15 /** | |
| 16 * Provides information on the GPU process and underlying graphics hardware. | |
| 17 * @constructor | |
| 18 */ | |
| 19 function InfoView(mainBoxId) { | |
| 20 DivView.call(this, mainBoxId); | |
| 21 | |
| 22 this.beginRequestClientInfo(); | |
| 23 this.beginRequestGpuInfo(); | |
| 24 this.refresh(); | |
| 25 } | |
| 26 | |
| 27 InfoView.prototype = { | |
| 28 __proto__: DivView.prototype, | |
| 29 | |
| 30 /** | |
| 31 * This function begins a request for the ClientInfo. If it comes back | |
| 32 * as undefined, then we will issue the request again in 250ms. | |
| 33 */ | |
| 34 beginRequestClientInfo : function() { | |
| 35 browserBridge.callAsync('requestClientInfo', undefined, (function(data) { | |
| 36 this.clientInfo_ = data; | |
| 37 this.refresh(); | |
| 38 if (data === undefined) { // try again in 250 ms | |
| 39 window.setTimeout(this.beginRequestClientInfo.bind(this), 250); | |
| 40 } | |
| 41 }).bind(this)); | |
| 42 }, | |
| 43 | |
| 44 /** | |
| 45 * This function begins a request for the GpuInfo. If it comes back | |
| 46 * as undefined, then we will issue the request again in 250ms. | |
| 47 */ | |
| 48 beginRequestGpuInfo : function() { | |
| 49 browserBridge.callAsync('requestGpuInfo', undefined, (function(data) { | |
| 50 this.gpuInfo_ = data; | |
| 51 this.refresh(); | |
| 52 if (!data || data.progress != 'complete') { // try again in 250 ms | |
| 53 window.setTimeout(this.beginRequestGpuInfo.bind(this), 250); | |
| 54 } | |
| 55 }).bind(this)); | |
| 56 }, | |
| 57 | |
| 58 /** | |
| 59 * Updates the view based on its currently known data | |
| 60 */ | |
| 61 refresh: function(data) { | |
| 62 // Client info | |
| 63 if (this.clientInfo_) { | |
| 64 var chromeVersion = this.clientInfo_.version + | |
| 65 ' (' + this.clientInfo_.official + | |
| 66 ' ' + this.clientInfo_.cl + | |
| 67 ') ' + this.clientInfo_.version_mod; | |
| 68 this.setTable_('client-info', [ | |
| 69 { | |
| 70 description: 'Data exported', | |
| 71 value: (new Date()).toLocaleString() | |
| 72 }, | |
| 73 { | |
| 74 description: 'Chrome version', | |
| 75 value: chromeVersion | |
| 76 }]); | |
| 77 } else { | |
| 78 this.setText_('client-info', '... loading...'); | |
| 79 } | |
| 80 | |
| 81 // GPU info, basic | |
| 82 if (this.gpuInfo_) { | |
| 83 this.setTable_('basic-info', this.gpuInfo_.basic_info); | |
| 84 if (this.gpuInfo_.diagnostics) { | |
| 85 this.setTable_('diagnostics', this.gpuInfo_.diagnostics); | |
| 86 } else if (this.gpuInfo_.progress == 'partial') { | |
| 87 this.setText_('diagnostics', '... loading...'); | |
| 88 } else { | |
| 89 this.setText_('diagnostics', 'None'); | |
| 90 } | |
| 91 } else { | |
| 92 this.setText_('basic-info', '... loading ...'); | |
| 93 this.setText_('diagnostics', '... loading ...'); | |
| 94 } | |
| 95 }, | |
| 96 | |
| 97 setText_ : function(outputElementId,text) { | |
|
arv (Not doing code reviews)
2010/12/08 19:52:37
ws after comma
arv (Not doing code reviews)
2010/12/08 19:52:37
no ws before :
nduca
2010/12/09 01:59:04
Done.
| |
| 98 var peg = document.getElementById(outputElementId); | |
| 99 var textNode = peg.ownerDocument.createTextNode(text); | |
|
arv (Not doing code reviews)
2010/12/08 19:52:37
peg.textContent = text;
nduca
2010/12/09 01:59:04
Done.
| |
| 100 peg.innerHTML = ''; | |
| 101 peg.appendChild(textNode); | |
| 102 return textNode; | |
|
arv (Not doing code reviews)
2010/12/08 19:52:37
this return value is never used
nduca
2010/12/09 01:59:04
Done.
| |
| 103 }, | |
| 104 | |
| 105 setTable_: function(outputElementId,inputData) { | |
| 106 var template = jstGetTemplate('info-view-table-template'); | |
| 107 jstProcess(new JsEvalContext({value: inputData}), | |
| 108 template); | |
| 109 | |
| 110 var peg = document.getElementById(outputElementId); | |
| 111 if (!peg) | |
| 112 throw new Error('Node ' + outputElementId + ' not found'); | |
| 113 | |
| 114 peg.innerHTML = ''; | |
| 115 peg.appendChild(template); | |
| 116 } | |
| 117 }; | |
| 118 | |
| 119 return { | |
| 120 InfoView: InfoView | |
| 121 }; | |
| 122 }); | |
| OLD | NEW |