Chromium Code Reviews| Index: chrome/browser/resources/gpu_internals/info_view.js |
| =================================================================== |
| --- chrome/browser/resources/gpu_internals/info_view.js (revision 0) |
| +++ chrome/browser/resources/gpu_internals/info_view.js (revision 0) |
| @@ -0,0 +1,124 @@ |
| +// Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +/** |
| + * This view displays options for importing/exporting the captured data. Its |
| + * primarily usefulness is to allow users to copy-paste their data in an easy |
| + * to read format for bug reports. |
| + * |
| + * - Has a button to generate a text report. |
| + * |
| + * - Shows how many events have been captured. |
| + * @constructor |
|
arv (Not doing code reviews)
2010/12/06 19:45:57
remove @constructor here
nduca
2010/12/07 01:03:40
Done.
|
| + */ |
| +cr.define('gpu', function() { |
| + /** |
| + * Provides information on the GPU process and underlying graphics hardware. |
| + * @constructor |
| + */ |
| + function InfoView(mainBoxId) { |
| + DivView.call(this, mainBoxId); |
| + |
| + this.textDiv_ = document.getElementById('info-text'); |
| + this.gpuInfo_ = undefined; |
| + this.clientInfo_ = undefined; |
| + |
| + var self = this; |
| + |
| + // This function begins a request for the ClientInfo. If it comes back |
| + // as undefined, then we will issue the request again in 250ms. |
| + function beginRequestClientInfo() { |
|
arv (Not doing code reviews)
2010/12/06 19:45:57
Move out of constructor and call with self as argu
nduca
2010/12/07 01:03:40
Done.
|
| + browser.callAsync('requestClientInfo', undefined, function(data) { |
| + self.clientInfo_ = data; |
| + self.refresh(); |
| + if(data === undefined) { // try again in 250 ms |
| + window.setTimeout(beginRequestClientInfo, 250); |
| + } |
| + }); |
| + } |
| + beginRequestClientInfo(); |
| + |
| + // This function begins a request for the GpuInfo. If it comes back |
| + // as undefined, then we will issue the request again in 250ms. |
| + function beginRequestGpuInfo() { |
|
arv (Not doing code reviews)
2010/12/06 19:45:57
same here
nduca
2010/12/07 01:03:40
Done.
|
| + browser.callAsync('requestGpuInfo', undefined, function(data) { |
| + self.gpuInfo_ = data; |
| + self.refresh(); |
| + if(data === undefined) { // try again in 250 ms |
| + window.setTimeout(beginRequestGpuInfo, 250); |
| + } |
| + }); |
| + } |
| + beginRequestGpuInfo(); |
| + this.refresh(); |
| + } |
| + |
| + InfoView.prototype = { |
| + __proto__: DivView, |
| + |
| + /** |
| + * Updates the view based on its currently known data |
| + */ |
| + refresh: function(data) { |
| + var html = []; |
|
arv (Not doing code reviews)
2010/12/06 19:45:57
This thing might have been a lot cleaner using js
nduca
2010/12/07 01:03:40
I'll go take a peek at this and see if I can switc
|
| + function outputObject(obj) { |
|
arv (Not doing code reviews)
2010/12/06 19:45:57
Move out of refresh. I don't think there is any po
nduca
2010/12/07 01:03:40
Done.
nduca
2010/12/07 01:03:40
Done.
|
| + var all_values = true; |
|
arv (Not doing code reviews)
2010/12/06 19:45:57
no underscores
nduca
2010/12/07 01:03:40
Done.
|
| + for (var k in obj) { // output values |
| + var v = obj[k]; |
| + if(!(typeof(v) === 'number' || typeof(v) === "string")) { |
|
arv (Not doing code reviews)
2010/12/06 19:45:57
whitespace after if
arv (Not doing code reviews)
2010/12/06 19:45:57
typeof is not a function, it is an unary operator
arv (Not doing code reviews)
2010/12/06 19:45:57
Use single quotes
nduca
2010/12/07 01:03:40
Done.
|
| + all_values = false; |
| + } |
| + } |
| + if (all_values) |
| + html.push("<table class='border'>"); |
| + else |
| + html.push("<table>"); |
| + for (var k in obj) { // output values |
|
arv (Not doing code reviews)
2010/12/06 19:45:57
2 spaces before //
|
| + var v = obj[k]; |
| + if (typeof(v) === 'number' || typeof(v) === "string") { |
| + html.push("<tr><td><strong>"); |
|
arv (Not doing code reviews)
2010/12/06 19:45:57
Remove strong and use a class name + css
arv (Not doing code reviews)
2010/12/06 19:45:57
push takes var args.
html.push('<tr><td>', k, ...
nduca
2010/12/07 01:03:40
Going to skip the css-ization until I can look at
|
| + html.push(k); |
| + html.push("</strong></td><td>"); |
| + html.push(v); |
| + html.push("</td></tr>"); |
| + } else { |
| + html.push("<tr><td colspan=2><strong>" + k + ":</strong>"); |
| + html.push("<div style=\"padding-left: 8px;\">"); |
|
arv (Not doing code reviews)
2010/12/06 19:45:57
-webkit-padding-start and move to css
nduca
2010/12/07 01:03:40
Done.
|
| + outputObject(v); |
| + html.push("</div>"); |
| + html.push("</td></tr>"); |
| + } |
| + } |
| + html.push("</table>"); |
| + } |
| + |
| + html.push('<h2>Chrome information</h2>'); |
| + if (this.clientInfo_) { |
| + var chromeVersion = this.clientInfo_.version + |
| + ' (' + this.clientInfo_.official + |
| + ' ' + this.clientInfo_.cl + |
| + ') ' + this.clientInfo_.version_mod + "</p>"; |
| + var data = {'Data exported on' : (new Date()).toLocaleString(), |
|
arv (Not doing code reviews)
2010/12/06 19:45:57
no ws before :
nduca
2010/12/07 01:03:40
Done.
|
| + 'Chrome version: ' : chromeVersion}; |
| + outputObject(data); |
| + } else { |
| + html.push('... refreshing data ...'); |
| + } |
| + |
| + html.push('<h2>GPU information</h2>'); |
| + if (this.gpuInfo_) { |
| + outputObject(this.gpuInfo_); |
| + } else { |
| + html.push('... refreshing data ...'); |
| + } |
| + |
| + // Open a new window to display this text. |
| + this.textDiv_.innerHTML = html.join("\n"); |
|
arv (Not doing code reviews)
2010/12/06 19:45:57
XSS? You are not escaping all your text and some o
nduca
2010/12/07 01:03:40
Hopefully I can get out of this trap with jst.
On
|
| + } |
| + }; |
| + |
| + return { |
| + InfoView: InfoView |
| + }; |
| +}); |
| Property changes on: chrome/browser/resources/gpu_internals/info_view.js |
| ___________________________________________________________________ |
| Added: svn:eol-style |
| + LF |