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

Unified Diff: netlog_viewer/chromeos_view.js

Issue 2154753002: Serving version 1 of the web app. All code has been copied from the (Closed) Base URL: https://github.com/catapult-project/catapult.git@gh-pages
Patch Set: Removed some unecessary files. Created 4 years, 5 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
« no previous file with comments | « netlog_viewer/chromeos_view.html ('k') | netlog_viewer/cr.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: netlog_viewer/chromeos_view.js
diff --git a/netlog_viewer/chromeos_view.js b/netlog_viewer/chromeos_view.js
new file mode 100644
index 0000000000000000000000000000000000000000..6411228ca4e76cd9cc30ebc3745925c61aacfd9e
--- /dev/null
+++ b/netlog_viewer/chromeos_view.js
@@ -0,0 +1,252 @@
+// 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.
+
+/**
+ * This view displays information on ChromeOS specific features.
+ */
+var CrosView = (function() {
+ 'use strict';
+
+ var fileContent;
+ var passcode = '';
+
+ /**
+ * Clear file input div
+ *
+ * @private
+ */
+ function clearFileInput_() {
+ $(CrosView.IMPORT_DIV_ID).innerHTML = $(CrosView.IMPORT_DIV_ID).innerHTML;
+ $(CrosView.IMPORT_ONC_ID).addEventListener('change',
+ handleFileChangeEvent_,
+ false);
+ }
+
+ /**
+ * Send file contents and passcode to C++ cros network library.
+ *
+ * @private
+ */
+ function importONCFile_() {
+ clearParseStatus_();
+ if (fileContent)
+ g_browser.importONCFile(fileContent, passcode);
+ else
+ setParseStatus_('ONC file parse failed: cannot read file');
+ clearFileInput_();
+ }
+
+ /**
+ * Set the passcode var, and trigger onc import.
+ *
+ * @param {string} value The passcode value.
+ * @private
+ */
+ function setPasscode_(value) {
+ passcode = value;
+ if (passcode)
+ importONCFile_();
+ }
+
+ /**
+ * Unhide the passcode prompt input field and give it focus.
+ *
+ * @private
+ */
+ function promptForPasscode_() {
+ $(CrosView.PASSCODE_ID).hidden = false;
+ $(CrosView.PASSCODE_INPUT_ID).focus();
+ $(CrosView.PASSCODE_INPUT_ID).select();
+ }
+
+ /**
+ * Set the fileContent var, and trigger onc import if the file appears to
+ * not be encrypted, or prompt for passcode if the file is encrypted.
+ *
+ * @private
+ * @param {string} text contents of selected file.
+ */
+ function setFileContent_(result) {
+ fileContent = result;
+ // Parse the JSON to get at the top level "Type" property.
+ var jsonObject;
+ // Ignore any parse errors: they'll get handled in the C++ import code.
+ try {
+ jsonObject = JSON.parse(fileContent);
+ } catch (error) {}
+ // Check if file is encrypted.
+ if (jsonObject &&
+ jsonObject.hasOwnProperty('Type') &&
+ jsonObject.Type == 'EncryptedConfiguration') {
+ promptForPasscode_();
+ } else {
+ importONCFile_();
+ }
+ }
+
+ /**
+ * Clear ONC file parse status. Clears and hides the parse status div.
+ *
+ * @private
+ */
+ function clearParseStatus_(error) {
+ var parseStatus = $(CrosView.PARSE_STATUS_ID);
+ parseStatus.hidden = true;
+ parseStatus.textContent = '';
+ }
+
+ /**
+ * Set ONC file parse status.
+ *
+ * @private
+ */
+ function setParseStatus_(error) {
+ var parseStatus = $(CrosView.PARSE_STATUS_ID);
+ parseStatus.hidden = false;
+ parseStatus.textContent = error ?
+ 'ONC file parse failed: ' + error : 'ONC file successfully parsed';
+ reset_();
+ }
+
+ /**
+ * Set storing debug logs status.
+ *
+ * @private
+ */
+ function setStoreDebugLogsStatus_(status) {
+ $(CrosView.STORE_DEBUG_LOGS_STATUS_ID).innerText = status;
+ }
+
+ /**
+ * Set status for current debug mode.
+ *
+ * @private
+ */
+ function setNetworkDebugModeStatus_(status) {
+ $(CrosView.DEBUG_STATUS_ID).innerText = status;
+ }
+
+ /**
+ * An event listener for the file selection field.
+ *
+ * @private
+ */
+ function handleFileChangeEvent_(event) {
+ clearParseStatus_();
+ var file = event.target.files[0];
+ var reader = new FileReader();
+ reader.onloadend = function(e) {
+ setFileContent_(reader.result);
+ };
+ reader.readAsText(file);
+ }
+
+ /**
+ * Add event listeners for the file selection, passcode input
+ * fields, for the button for debug logs storing and for buttons
+ * for debug mode selection.
+ *
+ * @private
+ */
+ function addEventListeners_() {
+ $(CrosView.IMPORT_ONC_ID).addEventListener('change',
+ handleFileChangeEvent_,
+ false);
+
+ $(CrosView.PASSCODE_INPUT_ID).addEventListener('change', function(event) {
+ setPasscode_(this.value);
+ }, false);
+
+ $(CrosView.STORE_DEBUG_LOGS_ID).addEventListener('click', function(event) {
+ $(CrosView.STORE_DEBUG_LOGS_STATUS_ID).innerText = '';
+ g_browser.storeDebugLogs();
+ }, false);
+
+ $(CrosView.DEBUG_WIFI_ID).addEventListener('click', function(event) {
+ setNetworkDebugMode_('wifi');
+ }, false);
+ $(CrosView.DEBUG_ETHERNET_ID).addEventListener('click', function(event) {
+ setNetworkDebugMode_('ethernet');
+ }, false);
+ $(CrosView.DEBUG_CELLULAR_ID).addEventListener('click', function(event) {
+ setNetworkDebugMode_('cellular');
+ }, false);
+ $(CrosView.DEBUG_WIMAX_ID).addEventListener('click', function(event) {
+ setNetworkDebugMode_('wimax');
+ }, false);
+ $(CrosView.DEBUG_NONE_ID).addEventListener('click', function(event) {
+ setNetworkDebugMode_('none');
+ }, false);
+ }
+
+ /**
+ * Reset fileContent and passcode vars.
+ *
+ * @private
+ */
+ function reset_() {
+ fileContent = undefined;
+ passcode = '';
+ $(CrosView.PASSCODE_ID).hidden = true;
+ }
+
+ /**
+ * Enables or disables debug mode for a specified subsystem.
+ *
+ * @private
+ */
+ function setNetworkDebugMode_(subsystem) {
+ $(CrosView.DEBUG_STATUS_ID).innerText = '';
+ g_browser.setNetworkDebugMode(subsystem);
+ }
+
+ /**
+ * @constructor
+ * @extends {DivView}
+ */
+ function CrosView() {
+ assertFirstConstructorCall(CrosView);
+
+ // Call superclass's constructor.
+ DivView.call(this, CrosView.MAIN_BOX_ID);
+
+ g_browser.addCrosONCFileParseObserver(this);
+ g_browser.addStoreDebugLogsObserver(this);
+ g_browser.addSetNetworkDebugModeObserver(this);
+ addEventListeners_();
+ }
+
+ CrosView.TAB_ID = 'tab-handle-chromeos';
+ CrosView.TAB_NAME = 'ChromeOS';
+ CrosView.TAB_HASH = '#chromeos';
+
+ CrosView.MAIN_BOX_ID = 'chromeos-view-tab-content';
+ CrosView.IMPORT_DIV_ID = 'chromeos-view-import-div';
+ CrosView.IMPORT_ONC_ID = 'chromeos-view-import-onc';
+ CrosView.PASSCODE_ID = 'chromeos-view-password-div';
+ CrosView.PASSCODE_INPUT_ID = 'chromeos-view-onc-password';
+ CrosView.PARSE_STATUS_ID = 'chromeos-view-parse-status';
+ CrosView.STORE_DEBUG_LOGS_ID = 'chromeos-view-store-debug-logs';
+ CrosView.STORE_DEBUG_LOGS_STATUS_ID = 'chromeos-view-store-debug-logs-status';
+ CrosView.DEBUG_WIFI_ID = 'chromeos-view-network-debugging-wifi';
+ CrosView.DEBUG_ETHERNET_ID = 'chromeos-view-network-debugging-ethernet';
+ CrosView.DEBUG_CELLULAR_ID = 'chromeos-view-network-debugging-cellular';
+ CrosView.DEBUG_WIMAX_ID = 'chromeos-view-network-debugging-wimax';
+ CrosView.DEBUG_NONE_ID = 'chromeos-view-network-debugging-none';
+ CrosView.DEBUG_STATUS_ID = 'chromeos-view-network-debugging-status';
+
+ cr.addSingletonGetter(CrosView);
+
+ CrosView.prototype = {
+ // Inherit from DivView.
+ __proto__: DivView.prototype,
+
+ onONCFileParse: setParseStatus_,
+ onStoreDebugLogs: setStoreDebugLogsStatus_,
+ onSetNetworkDebugMode: setNetworkDebugModeStatus_,
+ };
+
+ return CrosView;
+})();
+
« no previous file with comments | « netlog_viewer/chromeos_view.html ('k') | netlog_viewer/cr.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698