Index: tracing/tracing/ui/extras/about_tracing/record_and_capture_controller.html |
diff --git a/tracing/tracing/ui/extras/about_tracing/record_and_capture_controller.html b/tracing/tracing/ui/extras/about_tracing/record_and_capture_controller.html |
deleted file mode 100644 |
index ad1a5b1382c64d08678a8e13f3c3d770e4afc95e..0000000000000000000000000000000000000000 |
--- a/tracing/tracing/ui/extras/about_tracing/record_and_capture_controller.html |
+++ /dev/null |
@@ -1,238 +0,0 @@ |
-<!DOCTYPE html> |
-<!-- |
-Copyright (c) 2013 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. |
---> |
- |
-<link rel="import" href="/tracing/ui/extras/about_tracing/record_selection_dialog.html"> |
- |
-<script> |
-'use strict'; |
- |
-tr.exportTo('tr.ui.e.about_tracing', function() { |
- function beginMonitoring(tracingControllerClient) { |
- var finalPromiseResolver; |
- var finalPromise = new Promise(function(resolve, reject) { |
- finalPromiseResolver = { |
- resolve: resolve, |
- reject: reject |
- }; |
- }); |
- |
- // TODO(haraken): Implement a configure dialog to set these options. |
- var monitoringOptions = { |
- categoryFilter: '*', |
- useSystemTracing: false, |
- tracingRecordMode: 'record-until-full', |
- useSampling: true |
- }; |
- |
- |
- var beginMonitoringPromise = tracingControllerClient.beginMonitoring( |
- monitoringOptions); |
- |
- beginMonitoringPromise.then( |
- function() { |
- finalPromiseResolver.resolve(); |
- }, |
- function(err) { |
- finalPromiseResolver.reject(err); |
- }); |
- |
- return finalPromise; |
- } |
- |
- function endMonitoring(tracingControllerClient) { |
- var endMonitoringPromise = tracingControllerClient.endMonitoring(); |
- return endMonitoringPromise.then( |
- function() { |
- }, |
- function(err) { |
- }); |
- } |
- |
- function captureMonitoring(tracingControllerClient) { |
- var captureMonitoringPromise = |
- tracingControllerClient.captureMonitoring(); |
- return captureMonitoringPromise; |
- } |
- |
- function getMonitoringStatus(tracingControllerClient) { |
- var getMonitoringStatusPromise = |
- tracingControllerClient.getMonitoringStatus(); |
- return getMonitoringStatusPromise; |
- } |
- |
- function beginRecording(tracingControllerClient) { |
- var finalPromiseResolver; |
- var finalPromise = new Promise(function(resolve, reject) { |
- finalPromiseResolver = { |
- resolve: resolve, |
- reject: reject |
- }; |
- }); |
- finalPromise.selectionDlg = undefined; |
- finalPromise.progressDlg = undefined; |
- |
- function beginRecordingError(err) { |
- finalPromiseResolver.reject(err); |
- } |
- |
- // Step 0: End recording. This is necessary when the user reloads the |
- // about:tracing page when we are recording. Window.onbeforeunload is not |
- // reliable to end recording on reload. |
- endRecording(tracingControllerClient).then( |
- getCategories, |
- getCategories); // Ignore error. |
- |
- // But just in case, bind onbeforeunload anyway. |
- window.onbeforeunload = function(e) { |
- endRecording(tracingControllerClient); |
- } |
- |
- // Step 1: Get categories. |
- function getCategories() { |
- var p = tracingControllerClient.getCategories().then( |
- showTracingDialog, |
- beginRecordingError); |
- p.catch(function(err) { |
- beginRecordingError(err); |
- }); |
- } |
- |
- // Step 2: Show tracing dialog. |
- var selectionDlg; |
- function showTracingDialog(categories) { |
- selectionDlg = new tr.ui.e.about_tracing.RecordSelectionDialog(); |
- selectionDlg.categories = categories; |
- selectionDlg.settings_key = |
- 'tr.ui.e.about_tracing.record_selection_dialog'; |
- selectionDlg.addEventListener('recordclick', startTracing); |
- selectionDlg.addEventListener('closeclick', cancelRecording); |
- selectionDlg.visible = true; |
- |
- finalPromise.selectionDlg = selectionDlg; |
- } |
- |
- function cancelRecording() { |
- finalPromise.selectionDlg = undefined; |
- finalPromiseResolver.reject(new UserCancelledError()); |
- } |
- |
- // Step 2: Do the actual tracing dialog. |
- var progressDlg; |
- var bufferPercentFullDiv; |
- function startTracing() { |
- progressDlg = new tr.ui.b.Overlay(); |
- progressDlg.textContent = 'Recording...'; |
- progressDlg.userCanClose = false; |
- |
- bufferPercentFullDiv = document.createElement('div'); |
- progressDlg.appendChild(bufferPercentFullDiv); |
- |
- var stopButton = document.createElement('button'); |
- stopButton.textContent = 'Stop'; |
- progressDlg.clickStopButton = function() { |
- stopButton.click(); |
- }; |
- progressDlg.appendChild(stopButton); |
- |
- var recordingOptions = { |
- categoryFilter: selectionDlg.categoryFilter(), |
- useSystemTracing: selectionDlg.useSystemTracing, |
- tracingRecordMode: selectionDlg.tracingRecordMode, |
- useSampling: selectionDlg.useSampling |
- }; |
- |
- |
- var requestPromise = tracingControllerClient.beginRecording( |
- recordingOptions); |
- requestPromise.then( |
- function() { |
- progressDlg.visible = true; |
- stopButton.focus(); |
- updateBufferPercentFull('0'); |
- }, |
- recordFailed); |
- |
- stopButton.addEventListener('click', function() { |
- // TODO(chrishenry): Currently, this only dismiss the progress |
- // dialog when tracingComplete event is received. When performing |
- // remote debugging, the tracingComplete event may be delayed |
- // considerable. We should indicate to user that we are waiting |
- // for tracingComplete event instead of being unresponsive. (For |
- // now, I disable the "stop" button, since clicking on the button |
- // again now cause exception.) |
- var recordingPromise = endRecording(tracingControllerClient); |
- recordingPromise.then( |
- recordFinished, |
- recordFailed); |
- stopButton.disabled = true; |
- bufferPercentFullDiv = undefined; |
- }); |
- finalPromise.progressDlg = progressDlg; |
- } |
- |
- function recordFinished(tracedData) { |
- progressDlg.visible = false; |
- finalPromise.progressDlg = undefined; |
- finalPromiseResolver.resolve(tracedData); |
- } |
- |
- function recordFailed(err) { |
- progressDlg.visible = false; |
- finalPromise.progressDlg = undefined; |
- finalPromiseResolver.reject(err); |
- } |
- |
- function getBufferPercentFull() { |
- if (!bufferPercentFullDiv) |
- return; |
- |
- tracingControllerClient.beginGetBufferPercentFull().then( |
- updateBufferPercentFull); |
- } |
- |
- function updateBufferPercentFull(percent_full) { |
- if (!bufferPercentFullDiv) |
- return; |
- |
- percent_full = Math.round(100 * parseFloat(percent_full)); |
- var newText = 'Buffer usage: ' + percent_full + '%'; |
- if (bufferPercentFullDiv.textContent != newText) |
- bufferPercentFullDiv.textContent = newText; |
- |
- window.setTimeout(getBufferPercentFull, 500); |
- } |
- |
- // Thats it! We're done. |
- return finalPromise; |
- }; |
- |
- function endRecording(tracingControllerClient) { |
- return tracingControllerClient.endRecording(); |
- } |
- |
- function defaultTraceName(tracingControllerClient) { |
- return tracingControllerClient.defaultTraceName(); |
- } |
- |
- function UserCancelledError() { |
- Error.apply(this, arguments); |
- } |
- UserCancelledError.prototype = { |
- __proto__: Error.prototype |
- }; |
- |
- return { |
- beginRecording: beginRecording, |
- beginMonitoring: beginMonitoring, |
- endMonitoring: endMonitoring, |
- captureMonitoring: captureMonitoring, |
- getMonitoringStatus: getMonitoringStatus, |
- UserCancelledError: UserCancelledError, |
- defaultTraceName: defaultTraceName |
- }; |
-}); |
-</script> |