Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(529)

Unified Diff: chrome/browser/resources/chromeos/image_burner.js

Issue 679633002: chromeos: Remove legacy code for chrome://imageburner (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix unit_tests build Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/chromeos/image_burner.js
diff --git a/chrome/browser/resources/chromeos/image_burner.js b/chrome/browser/resources/chromeos/image_burner.js
deleted file mode 100644
index 7a88e024c7392248a399aca9c3796b1170f5bfcc..0000000000000000000000000000000000000000
--- a/chrome/browser/resources/chromeos/image_burner.js
+++ /dev/null
@@ -1,446 +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.
-
-var browserBridge;
-
-/**
- * Class that keeps track of current burn process state.
- * @param {Object} strings Localized state strings.
- * @constructor
- */
-function State(strings) {
- this.setStrings(strings);
- this.changeState(State.StatesEnum.DEVICE_NONE);
-}
-
-/**
- * State Enum object.
- */
-State.StatesEnum = {
- DEVICE_NONE: {
- cssState: 'device-detected-none',
- },
- DEVICE_USB: {
- cssState: 'device-detected-usb warning',
- },
- DEVICE_SD: {
- cssState: 'device-detected-sd warning',
- },
- DEVICE_MUL: {
- cssState: 'device-detected-mul warning',
- },
- ERROR_NO_NETWORK: {
- cssState: 'warning-no-conf',
- },
- ERROR_DEVICE_TOO_SMALL: {
- cssState: 'warning-no-conf',
- },
- PROGRESS_DOWNLOAD: {
- cssState: 'progress progress-canceble',
- },
- PROGRESS_UNZIP: {
- cssState: 'progress progress-canceble',
- },
- PROGRESS_BURN: {
- cssState: 'progress',
- },
- FAIL: {
- cssState: 'error',
- },
- SUCCESS: {
- cssState: 'success',
- },
-};
-
-State.prototype = {
- /**
- * Sets the state strings.
- * @param {Object} strings Localized state strings.
- */
- setStrings: function(strings) {
- State.StatesEnum.DEVICE_NONE.statusText =
- strings.getString('statusDevicesNone');
- State.StatesEnum.DEVICE_NONE.warningText =
- strings.getString('warningDevicesNone');
- State.StatesEnum.DEVICE_USB.statusText =
- strings.getString('statusDeviceUSB');
- State.StatesEnum.DEVICE_SD.statusText = strings.getString('statusDeviceSD');
- State.StatesEnum.DEVICE_MUL.statusText =
- strings.getString('statusDevicesMultiple');
- State.StatesEnum.ERROR_NO_NETWORK.statusText =
- strings.getString('statusNoConnection');
- State.StatesEnum.ERROR_NO_NETWORK.warningText =
- strings.getString('warningNoConnection');
- State.StatesEnum.ERROR_DEVICE_TOO_SMALL.statusText =
- strings.getString('statusNoSpace');
- State.StatesEnum.PROGRESS_DOWNLOAD.statusText =
- strings.getString('statusDownloading');
- State.StatesEnum.PROGRESS_UNZIP.statusText =
- strings.getString('statusUnzip');
- State.StatesEnum.PROGRESS_BURN.statusText = strings.getString('statusBurn');
- State.StatesEnum.FAIL.statusText = strings.getString('statusError');
- State.StatesEnum.SUCCESS.statusText = strings.getString('statusSuccess');
- State.StatesEnum.SUCCESS.warningText = strings.getString('warningSuccess');
- },
-
- /**
- * Changes the current state to new state.
- * @param {Object} newState Specifies the new state object.
- */
- changeState: function(newState) {
- if (newState == this.state)
- return;
- this.state = newState;
-
- $('main-content').className = this.state.cssState;
-
- $('status-text').textContent = this.state.statusText;
-
- if (newState.warningText)
- $('warning-text').textContent = this.state.warningText;
-
- if (this.isInitialState() && this.state != State.StatesEnum.DEVICE_NONE) {
- $('warning-button').textContent = loadTimeData.getString('confirmButton');
- } else if (this.state == State.StatesEnum.FAIL) {
- $('warning-button').textContent =
- loadTimeData.getString('retryButton');
- }
- },
-
- /**
- * Reset to initial state.
- * @param {Array} devices Array of device information.
- */
- gotoInitialState: function(devices) {
- if (devices.length == 0) {
- this.changeState(State.StatesEnum.DEVICE_NONE);
- } else if (devices.length == 1) {
- // If a device type is not specified for some reason, we should
- // default to display a USB device.
- var initialState = State.StatesEnum.DEVICE_USB;
- if (devices[0].type == 'sd')
- initialState = State.StatesEnum.DEVICE_SD;
- this.changeState(initialState);
- } else {
- this.changeState(State.StatesEnum.DEVICE_MUL);
- }
- },
-
- /**
- * Returns true if the device is in initial state.
- * @return {boolean} True if the device is in initial state else false.
- */
- isInitialState: function() {
- return this.state == State.StatesEnum.DEVICE_NONE ||
- this.state == State.StatesEnum.DEVICE_USB ||
- this.state == State.StatesEnum.DEVICE_SD ||
- this.state == State.StatesEnum.DEVICE_MUL;
- },
-
- /**
- * Returns true if device state matches the given state name.
- * @param {string} stateName Given state name.
- * @return {boolean} True if the device state matches the given state name.
- */
- equals: function(stateName) {
- return this.state == stateName;
- }
-};
-
-/**
- * Class that keeps track of available devices.
- * @constructor
- */
-function DeviceSelection() {
- this.selectedDevice = undefined;
- this.devices = [];
-}
-
-DeviceSelection.prototype = {
- /**
- * Shows the currently selected device.
- */
- showDeviceSelection: function() {
- if (this.devices.length == 0) {
- this.selectedDevice = undefined;
- } else {
- this.selectDevice(this.devices[0].devicePath);
- }
- },
-
- /**
- * Handles device selected event.
- * @param {string} label Device label.
- * @param {string} filePath File path.
- * @param {string} devicePath Selected device path.
- */
- onDeviceSelected: function(label, filePath, devicePath) {
- $('warning-button').onclick =
- browserBridge.sendBurnImageMessage.bind(browserBridge, filePath,
- devicePath);
-
- this.selectedDevice = devicePath;
-
- $('warning-text').textContent =
- loadTimeData.getStringF('warningDevices', label);
- },
-
- /**
- * Selects the specified device based on the specified path.
- * @param {string} path Device path.
- */
- selectDevice: function(path) {
- var element = $('radio-' + path);
- element.checked = true;
- element.onclick.apply(element);
- },
-
- /**
- * Creates a new device element.
- * @param {Object} device Specifies new device information.
- * @return {HTMLLIElement} New device element.
- */
- createNewDeviceElement: function(device) {
- var element = document.createElement('li');
- var radioButton = document.createElement('input');
- radioButton.type = 'radio';
- radioButton.name = 'device';
- radioButton.value = device.label;
- radioButton.id = 'radio-' + device.devicePath;
- radioButton.className = 'float-start';
- var deviceLabelText = document.createElement('p');
- deviceLabelText.textContent = device.label;
- deviceLabelText.className = 'select-option float-start';
- var newLine = document.createElement('div');
- newLine.className = 'new-line';
- element.appendChild(radioButton);
- element.appendChild(deviceLabelText);
- element.appendChild(newLine);
- element.id = 'select-' + device.devicePath;
- element.className = 'selection-element';
- radioButton.onclick = this.onDeviceSelected.bind(this,
- device.label, device.filePath, device.devicePath);
- return element;
- },
-
- /**
- * Updates the list of selected devices.
- * @param {Array} devices List of devices.
- */
- devicesUpdated: function(newDevices) {
- this.devices = newDevices;
- var selectListDOM = $('device-selection');
- selectListDOM.innerHTML = '';
- if (this.devices.length > 0) {
- for (var i = 0; i < this.devices.length; i++) {
- var element = this.createNewDeviceElement(this.devices[i]);
- selectListDOM.appendChild(element);
- }
- this.selectDevice(this.devices[0].devicePath);
- } else {
- this.selectedDevice = undefined;
- }
- },
-
- /**
- * Handles device added event.
- * @param {Object} device Device information.
- * @param {boolean} allowSelect True to update the selected device info.
- */
- deviceAdded: function(device, allowSelect) {
- this.devices.push(device);
- var selectListDOM = $('device-selection');
- selectListDOM.appendChild(this.createNewDeviceElement(device));
- if (allowSelect && this.devices.length == 1)
- this.selectDevice(device.devicePath);
- },
-
- /**
- * Handles device removed event.
- * @param {string} devicePath Device path to be removed.
- * @param {boolean} allowSelect True to update the selected device info.
- */
- deviceRemoved: function(devicePath, allowSelect) {
- device = this.findDevice(devicePath);
- if (!device)
- return;
- this.devices.splice(this.devices.indexOf(device), 1);
-
- // Remove device selection element from DOM.
- var deviceSelectElement = $('select-' + devicePath);
- deviceSelectElement.parentNode.removeChild(deviceSelectElement);
-
- // Update selected device element.
- if (allowSelect) {
- if (this.devices.length > 0) {
- if (this.selectedDevice == devicePath)
- this.selectDevice(this.devices[0].devicePath);
- } else {
- this.selectedDevice = undefined;
- }
- }
- },
-
- /**
- * Finds device with given device path property.
- * @param {string} devicePath Device path of device to find.
- * @return {Object} Matching device information or undefined if not found.
- */
- findDevice: function(devicePath) {
- for (var i = 0; i < this.devices.length; ++i) {
- if (this.devices[i].devicePath == devicePath) {
- return this.devices[i];
- }
- }
- return undefined;
- }
-};
-
-/**
- * Class that handles communication with chrome.
- * @constructor
- */
-function BrowserBridge() {
- this.currentState = new State(loadTimeData);
- this.deviceSelection = new DeviceSelection();
- // We will use these often so it makes sence making them class members to
- // avoid frequent document.getElementById calls.
- this.progressElement = $('progress-div');
- this.progressText = $('progress-text');
- this.progressTimeLeftText = $('pending-time');
-}
-
-BrowserBridge.prototype = {
- sendCancelMessage: function() {
- chrome.send('cancelBurnImage');
- },
-
- sendGetDevicesMessage: function() {
- chrome.send('getDevices');
- },
-
- sendWebuiInitializedMessage: function() {
- chrome.send('webuiInitialized');
- },
-
- /**
- * Sends the burn image message to c++ code.
- * @param {string} filePath Specifies the file path.
- * @param {string} devicePath Specifies the device path.
- */
- sendBurnImageMessage: function(filePath, devicePath) {
- chrome.send('burnImage', [devicePath, filePath]);
- },
-
- reportSuccess: function() {
- this.currentState.changeState(State.StatesEnum.SUCCESS);
- },
-
- /**
- * Update the device state to report a failure and display an error message to
- * the user.
- * @param {string} errorMessage Specifies the warning text message.
- */
- reportFail: function(errorMessage) {
- this.currentState.changeState(State.StatesEnum.FAIL);
- $('warning-text').textContent = errorMessage;
- $('warning-button').onclick = this.onBurnRetry.bind(this);
- },
-
- /**
- * Handles device added event.
- * @param {Object} device Device information.
- */
- deviceAdded: function(device) {
- var inInitialState = this.currentState.isInitialState();
- this.deviceSelection.deviceAdded(device, inInitialState);
- if (inInitialState)
- this.currentState.gotoInitialState(this.deviceSelection.devices);
- },
-
- /**
- * Handles device removed event.
- * @param {string} devicePath Device path to be removed.
- */
- deviceRemoved: function(devicePath) {
- var inInitialState = this.currentState.isInitialState();
- this.deviceSelection.deviceRemoved(devicePath, inInitialState);
- if (inInitialState)
- this.currentState.gotoInitialState(this.deviceSelection.devices);
- },
-
- /**
- * Gets device callbacks and update the current state.
- * @param {Array} devices List of devices.
- */
- getDevicesCallback: function(devices) {
- this.deviceSelection.devicesUpdated(devices);
- this.currentState.gotoInitialState(this.deviceSelection.devices);
- this.sendWebuiInitializedMessage();
- },
-
- /**
- * Updates the progress information based on the signal received.
- * @param {Object} updateSignal Specifies the signal information.
- */
- updateProgress: function(updateSignal) {
- if (updateSignal.progressType == 'download' &&
- !this.currentState.equals(State.StatesEnum.PROGRESS_DOWNLOAD)) {
- this.currentState.changeState(State.StatesEnum.PROGRESS_DOWNLOAD);
- } else if (updateSignal.progressType == 'unzip' &&
- !this.currentState.equals(State.StatesEnum.PROGRESS_UNZIP)) {
- this.currentState.changeState(State.StatesEnum.PROGRESS_UNZIP);
- } else if (updateSignal.progressType == 'burn' &&
- !this.currentState.equals(State.StatesEnum.PROGRESS_BURN)) {
- this.currentState.changeState(State.StatesEnum.PROGRESS_BURN);
- }
-
- if (!(updateSignal.amountTotal > 0)) {
- this.progressElement.removeAttribute('value');
- } else {
- this.progressElement.value = updateSignal.amountFinished;
- this.progressElement.max = updateSignal.amountTotal;
- }
-
- this.progressText.textContent = updateSignal.progressText;
- this.progressTimeLeftText.textContent = updateSignal.timeLeftText;
- },
-
- reportNoNetwork: function() {
- this.currentState.changeState(State.StatesEnum.ERROR_NO_NETWORK);
- },
-
- reportNetworkDetected: function() {
- if (this.currentState.equals(State.StatesEnum.ERROR_NO_NETWORK)) {
- this.deviceSelection.showDeviceSelection();
- this.currentState.gotoInitialState(this.deviceSelection.devices);
- }
- },
-
- /**
- * Updates the current state to report device too small error.
- * @param {number} deviceSize Received device size.
- */
- reportDeviceTooSmall: function(deviceSize) {
- this.currentState.changeState(State.StatesEnum.ERROR_DEVICE_TOO_SMALL);
- $('warning-text').textContent =
- loadTimeData.getStringF('warningNoSpace', deviceSize);
- },
-
- /**
- * Processes click on 'Retry' button in FAIL state.
- */
- onBurnRetry: function() {
- this.deviceSelection.showDeviceSelection();
- this.currentState.gotoInitialState(this.deviceSelection.devices);
- }
-};
-
-document.addEventListener('DOMContentLoaded', function() {
- browserBridge = new BrowserBridge();
-
- $('cancel-button').onclick =
- browserBridge.sendCancelMessage.bind(browserBridge);
- browserBridge.sendGetDevicesMessage();
-});
« no previous file with comments | « chrome/browser/resources/chromeos/image_burner.html ('k') | chrome/browser/ui/webui/chromeos/imageburner/imageburner_ui.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698