Index: chrome/browser/resources/gpu_internals/raw_events_view.js |
diff --git a/chrome/browser/resources/gpu_internals/raw_events_view.js b/chrome/browser/resources/gpu_internals/raw_events_view.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..5ff981a8f54586d4605c2457546a716ea353acea |
--- /dev/null |
+++ b/chrome/browser/resources/gpu_internals/raw_events_view.js |
@@ -0,0 +1,76 @@ |
+// Copyright (c) 2011 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. |
+ |
+/** |
+ * |
+ * @fileoverview Displays the traced data in raw format. Its primarily |
+ * usefulness is to allow users to copy-paste their data in an easy to |
+ * read format for bug reports. |
+ * |
+ */ |
+cr.define('gpu', function() { |
+ /** |
+ * Provides information on the GPU process and underlying graphics hardware. |
+ * @constructor |
+ * @extends {gpu.Tab} |
+ */ |
+ var RawEventsView = cr.ui.define(gpu.Tab); |
+ |
+ RawEventsView.prototype = { |
+ __proto__: gpu.Tab.prototype, |
+ |
+ decorate: function() { |
+ tracingController.addEventListener('traceBegun', this.refresh.bind(this)); |
+ tracingController.addEventListener('traceEnded', this.refresh.bind(this)); |
+ this.addEventListener('selectedChange', this.onSelectedChange_); |
+ this.refresh(); |
+ }, |
+ |
+ onSelectedChange_: function() { |
+ if (this.selected) { |
+ if (!tracingController.traceEvents.length) { |
+ tracingController.beginTracing(); |
+ } |
+ if (this.needsRefreshOnShow_) { |
+ this.needsRefreshOnShow_ = false; |
+ this.refresh(); |
+ } |
+ } |
+ }, |
+ |
+ /** |
+ * Updates the view based on its currently known data |
+ */ |
+ refresh: function() { |
+ if (this.parentNode.selectedTab != this) { |
+ this.needsRefreshOnShow_ = true; |
+ } |
+ |
+ var dataElement = this.querySelector('.raw-events-view-data'); |
+ if (tracingController.isTracingEnabled) { |
+ var tmp = 'Still tracing. ' + |
+ 'Uncheck the enable tracing button to see traced data.'; |
+ dataElement.textContent = tmp; |
+ } else if (!tracingController.traceEvents.length) { |
+ dataElement.textContent = |
+ 'No trace data collected. Collect data first.'; |
+ } else { |
+ var events = tracingController.traceEvents; |
+ var text = JSON.stringify(events); |
+ dataElement.textContent = text; |
+ |
+ var selection = window.getSelection(); |
+ selection.removeAllRanges(); |
+ var range = document.createRange(); |
+ range.selectNodeContents(dataElement); |
+ selection.addRange(range); |
+ } |
+ } |
+ |
+ }; |
+ |
+ return { |
+ RawEventsView: RawEventsView |
+ }; |
+}); |