| 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();
|
| -});
|
|
|