| 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,119 @@
|
| +// 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.
|
| + */
|
| +cr.define('gpu', function() {
|
| + /**
|
| + * Provides information on the GPU process and underlying graphics hardware.
|
| + * @constructor
|
| + */
|
| + function InfoView(mainBoxId) {
|
| + DivView.call(this, mainBoxId);
|
| +
|
| + this.beginRequestClientInfo();
|
| + this.beginRequestGpuInfo();
|
| + this.refresh();
|
| + }
|
| +
|
| + InfoView.prototype = {
|
| + __proto__: DivView.prototype,
|
| +
|
| + /**
|
| + * This function begins a request for the ClientInfo. If it comes back
|
| + * as undefined, then we will issue the request again in 250ms.
|
| + */
|
| + beginRequestClientInfo : function() {
|
| + browserBridge.callAsync('requestClientInfo', undefined, (function(data) {
|
| + this.clientInfo_ = data;
|
| + this.refresh();
|
| + if (data === undefined) { // try again in 250 ms
|
| + window.setTimeout(this.beginRequestClientInfo.bind(this), 250);
|
| + }
|
| + }).bind(this));
|
| + },
|
| +
|
| + /**
|
| + * This function begins a request for the GpuInfo. If it comes back
|
| + * as undefined, then we will issue the request again in 250ms.
|
| + */
|
| + beginRequestGpuInfo : function() {
|
| + browserBridge.callAsync('requestGpuInfo', undefined, (function(data) {
|
| + this.gpuInfo_ = data;
|
| + this.refresh();
|
| + if (!data || data.progress != 'complete') { // try again in 250 ms
|
| + window.setTimeout(this.beginRequestGpuInfo.bind(this), 250);
|
| + }
|
| + }).bind(this));
|
| + },
|
| +
|
| + /**
|
| + * Updates the view based on its currently known data
|
| + */
|
| + refresh: function(data) {
|
| + // Client info
|
| + if (this.clientInfo_) {
|
| + var chromeVersion = this.clientInfo_.version +
|
| + ' (' + this.clientInfo_.official +
|
| + ' ' + this.clientInfo_.cl +
|
| + ') ' + this.clientInfo_.version_mod;
|
| + this.setTable_('client-info', [
|
| + {
|
| + description: 'Data exported',
|
| + value: (new Date()).toLocaleString()
|
| + },
|
| + {
|
| + description: 'Chrome version',
|
| + value: chromeVersion
|
| + }]);
|
| + } else {
|
| + this.setText_('client-info', '... loading...');
|
| + }
|
| +
|
| + // GPU info, basic
|
| + if (this.gpuInfo_) {
|
| + this.setTable_('basic-info', this.gpuInfo_.basic_info);
|
| + if (this.gpuInfo_.diagnostics) {
|
| + this.setTable_('diagnostics', this.gpuInfo_.diagnostics);
|
| + } else if (this.gpuInfo_.progress == 'partial') {
|
| + this.setText_('diagnostics', '... loading...');
|
| + } else {
|
| + this.setText_('diagnostics', 'None');
|
| + }
|
| + } else {
|
| + this.setText_('basic-info', '... loading ...');
|
| + this.setText_('diagnostics', '... loading ...');
|
| + }
|
| + },
|
| +
|
| + setText_: function(outputElementId, text) {
|
| + var peg = document.getElementById(outputElementId);
|
| + peg.innerText = text;
|
| + },
|
| +
|
| + setTable_: function(outputElementId, inputData) {
|
| + var template = jstGetTemplate('info-view-table-template');
|
| + jstProcess(new JsEvalContext({value: inputData}),
|
| + template);
|
| +
|
| + var peg = document.getElementById(outputElementId);
|
| + if (!peg)
|
| + throw new Error('Node ' + outputElementId + ' not found');
|
| +
|
| + peg.innerHTML = '';
|
| + peg.appendChild(template);
|
| + }
|
| + };
|
| +
|
| + return {
|
| + InfoView: InfoView
|
| + };
|
| +});
|
|
|
| Property changes on: chrome/browser/resources/gpu_internals/info_view.js
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|