Index: chrome/common/extensions/docs/examples/apps/cycler/playback_tab.js |
diff --git a/chrome/common/extensions/docs/examples/apps/cycler/playback_tab.js b/chrome/common/extensions/docs/examples/apps/cycler/playback_tab.js |
deleted file mode 100644 |
index a2ff0dafb5577d66eadb3f890acf0cc04b126583..0000000000000000000000000000000000000000 |
--- a/chrome/common/extensions/docs/examples/apps/cycler/playback_tab.js |
+++ /dev/null |
@@ -1,234 +0,0 @@ |
-// Copyright (c) 2012 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. |
- |
-/** |
- * Constructor for the tab UI governing playback selection and running. |
- * All HTML controls under tag #plaback-tab, plus the tab label |
- * #playback-tab-label are controlled by this class. |
- * @param {!Object} cyclerUI The master UI class, needed for global state |
- * such as current capture name. |
- * @param {!Object} cyclerData The local FileSystem-based database of |
- * available captures to play back. |
- */ |
-var PlaybackTab = function (cyclerUI, cyclerData) { |
- /** |
- * Enum for different playback tab states. |
- * @enum {number} |
- * @private |
- */ |
- var EnableState_ = { |
- choosePlayback: 1, // Choose a playback, if none already chosen. |
- showPlayback: 2, // Show currently chosen playback, and offer options. |
- showNoCaptures: 3 // Show message indicating no captures are available. |
- }; |
- |
- this.cyclerUI_ = cyclerUI; |
- this.cyclerData_ = cyclerData; |
- |
- /** |
- * Create members for all UI elements with which we'll interact. |
- */ |
- this.tabLabel_ = $('#playback-tab-label'); |
- this.playbackTab_ = $('#playback-tab'); |
- this.noCaptures_ = $('#no-captures'); |
- this.yesCaptures_ = $('#have-captures'); |
- |
- this.playbackName_ = $('#playback-name'); |
- this.playbackDetails_ = $('#playback-details'); |
- this.playbackURLs_ = $('#playback-urls'); |
- this.playbackRepeats_ = $('#playback-repeats'); |
- this.playbackExtension_ = $('#playback-extension'); |
- this.doPlaybackButton_ = $('#do-playback'); |
- this.doDeleteButton_ = $('#do-delete'); |
- |
- /* |
- * Enable the playback tab, showing no current playback choice, by |
- * hiding the playbackDetails_ div. |
- * @private |
- */ |
- this.enableChoosePlayback_ = function() { |
- if (this.enableState != EnableState_.choosePlayback) { |
- this.enableState = EnableState_.choosePlayback; |
- this.yesCaptures_.hidden = false; |
- this.noCaptures_.hidden = true; |
- this.playbackDetails_.hidden = true; |
- } |
- }; |
- |
- /* |
- * Enable the playback tab, showing a current playback choice by showing |
- * the playbackDetails_ div. |
- * @private |
- */ |
- this.enableShowPlayback_ = function() { |
- if (this.enableState != EnableState_.showPlayback) { |
- this.enableState = EnableState_.showPlayback; |
- this.yesCaptures_.hidden = false; |
- this.noCaptures_.hidden = true; |
- this.playbackDetails_.hidden = false; |
- } |
- }; |
- |
- /* |
- * Enable the playback tab and adjust tab labels appropriately. Show |
- * no available captures by hiding the yesCaptures_ div and showing the |
- * noCaptures_ div instead. |
- * @private |
- */ |
- this.enableShowNoCaptures_ = function() { |
- if (this.enableState != EnableState_.showNoCaptures) { |
- this.enableState = EnableState_.showNoCaptures; |
- this.noCaptures_.hidden = false; |
- this.yesCaptures_.hidden = true; |
- } |
- }; |
- |
- /** |
- * Enable the playback tab, showing either its "no captures", "choose |
- * a capture" or "display chosen capture" form, depending on the state |
- * of existing captures and |currentCaptureName_|. |
- */ |
- this.enable = function() { |
- this.tabLabel_.classList.add('selected'); |
- this.updatePlaybackChoices_(); |
- |
- this.playbackTab_.hidden = false; |
- if (this.cyclerData_.getCaptures().length == 0) { |
- this.enableShowNoCaptures_(); |
- } else if (this.cyclerUI_.currentCaptureName == null) { |
- this.enableChoosePlayback_(); |
- } else { |
- this.enableShowPlayback_(); |
- } |
- } |
- |
- /** |
- * Disable the playback tab altogether, presumably in favor of some |
- * other tab. |
- */ |
- this.disable = function() { |
- this.tabLabel_.classList.remove('selected'); |
- this.playbackTab_.hidden = true; |
- } |
- |
- /** |
- * Utility function to refresh the selection list of captures that may |
- * be chosen for playback. Show all current captures, and also a |
- * "Choose a capture" default text if no capture is currently selected. |
- * @private |
- */ |
- this.updatePlaybackChoices_ = function() { |
- var captureNames = this.cyclerData_.getCaptures(); |
- var options = this.playbackName_.options; |
- var nextIndex = 0; |
- var chooseOption; |
- |
- options.length = 0; |
- |
- if (this.cyclerUI_.currentCaptureName == null) { |
- chooseOption = new Option('Choose a capture', null); |
- chooseOption.disabled = true; |
- options.add(chooseOption); |
- options.selectedIndex = nextIndex++; |
- } |
- for (var i = 0; i < captureNames.length; i++) { |
- options.add(new Option(captureNames[i], captureNames[i])); |
- if (captureNames[i] == this.cyclerUI_.currentCaptureName) { |
- options.selectedIndex = nextIndex; |
- } |
- nextIndex++; |
- } |
- } |
- |
- /** |
- * Event callback for selection of a capture to play back. Save the |
- * choice in |currentCaptureName_|. Update the selection list because the |
- * default reminder message is no longer needed when a capture is chosen. |
- * Change playback tab to show-chosen-capture mode. |
- */ |
- this.selectPlaybackName = function() { |
- this.cyclerUI_.currentCaptureName = this.playbackName_.value; |
- this.updatePlaybackChoices_(); |
- this.enableShowPlayback_(); |
- } |
- |
- /** |
- * Event callback for pressing the playback button, which button is only |
- * enabled if a capture has been chosen for playback. Check for errors |
- * on playback page, and either display a message with such errors, or |
- * call the extenion api to initiate a playback. |
- * @private |
- */ |
- this.doPlayback_ = function() { |
- var extensionPath = this.playbackExtension_.value; |
- var repeatCount = parseInt(this.playbackRepeats_.value); |
- var errors = []; |
- |
- // Check local errors |
- if (isNaN(repeatCount)) { |
- errors.push('Enter a number for repeat count'); |
- } else if (repeatCount < 1 || repeatCount > 100) { |
- errors.push('Repeat count must be between 1 and 100'); |
- } |
- |
- if (errors.length > 0) { |
- this.cyclerUI_.showMessage(errors.join('\n'), 'Ok'); |
- } else { |
- this.doPlaybackButton_.disabled = true; |
- chrome.experimental.record.replayURLs( |
- this.cyclerUI_.currentCaptureName, |
- repeatCount, |
- {'extensionPath': extensionPath}, |
- this.onPlaybackDone.bind(this)); |
- } |
- } |
- |
- /** |
- * Extension API calls this back when a playback is done. |
- * @param {!{ |
- * runTime: number, |
- * stats: string, |
- * errors: !Array.<string> |
- * }} results The results of the playback, including running time in ms, |
- * a string of statistics information, and a string array of errors. |
- */ |
- this.onPlaybackDone = function(results) { |
- this.doPlaybackButton_.disabled = false; |
- |
- if (results.errors.length > 0) { |
- this.cyclerUI_.showMessage(results.errors.join('\n'), 'Ok'); |
- } else { |
- this.cyclerUI_.showMessage('Test took ' + results.runTime + 'mS :\n' + |
- results.stats, 'Ok'); |
- } |
- } |
- |
- /** |
- * Delete the capture with name |currentCaptureName_|. For this method |
- * to be callable, there must be a selected currentCaptureName_. Change |
- * the displayed HTML to show no captures if none exist now, or to show |
- * none selected (since we just deleted the selected one). |
- * @private |
- */ |
- this.doDelete_ = function() { |
- this.cyclerData_.deleteCapture(this.cyclerUI_.currentCaptureName); |
- this.cyclerUI_.currentCaptureName = null; |
- this.updatePlaybackChoices_(); |
- if (this.cyclerData_.getCaptures().length == 0) { |
- this.enableShowNoCaptures_(); |
- } else { |
- this.enableChoosePlayback_(); |
- } |
- } |
- |
- // Set up listeners on buttons. |
- this.doPlaybackButton_.addEventListener('click', this.doPlayback_.bind(this)); |
- this.doDeleteButton_.addEventListener('click', this.doDelete_.bind(this)); |
- |
- // Set up initial selection list for existing captures, and selection |
- // event listener. |
- this.updatePlaybackChoices_(); |
- this.playbackName_.addEventListener('change', |
- this.selectPlaybackName.bind(this)); |
-}; |