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

Side by Side Diff: netlog_viewer/chromeos_view.js

Issue 2162963002: [polymer] Merge of master into polymer10-migration (Closed) Base URL: git@github.com:catapult-project/catapult.git@polymer10-migration
Patch Set: Merge polymer10-migration int polymer10-merge 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 unified diff | Download patch
« no previous file with comments | « netlog_viewer/chromeos_view.html ('k') | netlog_viewer/cr.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 /**
6 * This view displays information on ChromeOS specific features.
7 */
8 var CrosView = (function() {
9 'use strict';
10
11 var fileContent;
12 var passcode = '';
13
14 /**
15 * Clear file input div
16 *
17 * @private
18 */
19 function clearFileInput_() {
20 $(CrosView.IMPORT_DIV_ID).innerHTML = $(CrosView.IMPORT_DIV_ID).innerHTML;
21 $(CrosView.IMPORT_ONC_ID).addEventListener('change',
22 handleFileChangeEvent_,
23 false);
24 }
25
26 /**
27 * Send file contents and passcode to C++ cros network library.
28 *
29 * @private
30 */
31 function importONCFile_() {
32 clearParseStatus_();
33 if (fileContent)
34 g_browser.importONCFile(fileContent, passcode);
35 else
36 setParseStatus_('ONC file parse failed: cannot read file');
37 clearFileInput_();
38 }
39
40 /**
41 * Set the passcode var, and trigger onc import.
42 *
43 * @param {string} value The passcode value.
44 * @private
45 */
46 function setPasscode_(value) {
47 passcode = value;
48 if (passcode)
49 importONCFile_();
50 }
51
52 /**
53 * Unhide the passcode prompt input field and give it focus.
54 *
55 * @private
56 */
57 function promptForPasscode_() {
58 $(CrosView.PASSCODE_ID).hidden = false;
59 $(CrosView.PASSCODE_INPUT_ID).focus();
60 $(CrosView.PASSCODE_INPUT_ID).select();
61 }
62
63 /**
64 * Set the fileContent var, and trigger onc import if the file appears to
65 * not be encrypted, or prompt for passcode if the file is encrypted.
66 *
67 * @private
68 * @param {string} text contents of selected file.
69 */
70 function setFileContent_(result) {
71 fileContent = result;
72 // Parse the JSON to get at the top level "Type" property.
73 var jsonObject;
74 // Ignore any parse errors: they'll get handled in the C++ import code.
75 try {
76 jsonObject = JSON.parse(fileContent);
77 } catch (error) {}
78 // Check if file is encrypted.
79 if (jsonObject &&
80 jsonObject.hasOwnProperty('Type') &&
81 jsonObject.Type == 'EncryptedConfiguration') {
82 promptForPasscode_();
83 } else {
84 importONCFile_();
85 }
86 }
87
88 /**
89 * Clear ONC file parse status. Clears and hides the parse status div.
90 *
91 * @private
92 */
93 function clearParseStatus_(error) {
94 var parseStatus = $(CrosView.PARSE_STATUS_ID);
95 parseStatus.hidden = true;
96 parseStatus.textContent = '';
97 }
98
99 /**
100 * Set ONC file parse status.
101 *
102 * @private
103 */
104 function setParseStatus_(error) {
105 var parseStatus = $(CrosView.PARSE_STATUS_ID);
106 parseStatus.hidden = false;
107 parseStatus.textContent = error ?
108 'ONC file parse failed: ' + error : 'ONC file successfully parsed';
109 reset_();
110 }
111
112 /**
113 * Set storing debug logs status.
114 *
115 * @private
116 */
117 function setStoreDebugLogsStatus_(status) {
118 $(CrosView.STORE_DEBUG_LOGS_STATUS_ID).innerText = status;
119 }
120
121 /**
122 * Set status for current debug mode.
123 *
124 * @private
125 */
126 function setNetworkDebugModeStatus_(status) {
127 $(CrosView.DEBUG_STATUS_ID).innerText = status;
128 }
129
130 /**
131 * An event listener for the file selection field.
132 *
133 * @private
134 */
135 function handleFileChangeEvent_(event) {
136 clearParseStatus_();
137 var file = event.target.files[0];
138 var reader = new FileReader();
139 reader.onloadend = function(e) {
140 setFileContent_(reader.result);
141 };
142 reader.readAsText(file);
143 }
144
145 /**
146 * Add event listeners for the file selection, passcode input
147 * fields, for the button for debug logs storing and for buttons
148 * for debug mode selection.
149 *
150 * @private
151 */
152 function addEventListeners_() {
153 $(CrosView.IMPORT_ONC_ID).addEventListener('change',
154 handleFileChangeEvent_,
155 false);
156
157 $(CrosView.PASSCODE_INPUT_ID).addEventListener('change', function(event) {
158 setPasscode_(this.value);
159 }, false);
160
161 $(CrosView.STORE_DEBUG_LOGS_ID).addEventListener('click', function(event) {
162 $(CrosView.STORE_DEBUG_LOGS_STATUS_ID).innerText = '';
163 g_browser.storeDebugLogs();
164 }, false);
165
166 $(CrosView.DEBUG_WIFI_ID).addEventListener('click', function(event) {
167 setNetworkDebugMode_('wifi');
168 }, false);
169 $(CrosView.DEBUG_ETHERNET_ID).addEventListener('click', function(event) {
170 setNetworkDebugMode_('ethernet');
171 }, false);
172 $(CrosView.DEBUG_CELLULAR_ID).addEventListener('click', function(event) {
173 setNetworkDebugMode_('cellular');
174 }, false);
175 $(CrosView.DEBUG_WIMAX_ID).addEventListener('click', function(event) {
176 setNetworkDebugMode_('wimax');
177 }, false);
178 $(CrosView.DEBUG_NONE_ID).addEventListener('click', function(event) {
179 setNetworkDebugMode_('none');
180 }, false);
181 }
182
183 /**
184 * Reset fileContent and passcode vars.
185 *
186 * @private
187 */
188 function reset_() {
189 fileContent = undefined;
190 passcode = '';
191 $(CrosView.PASSCODE_ID).hidden = true;
192 }
193
194 /**
195 * Enables or disables debug mode for a specified subsystem.
196 *
197 * @private
198 */
199 function setNetworkDebugMode_(subsystem) {
200 $(CrosView.DEBUG_STATUS_ID).innerText = '';
201 g_browser.setNetworkDebugMode(subsystem);
202 }
203
204 /**
205 * @constructor
206 * @extends {DivView}
207 */
208 function CrosView() {
209 assertFirstConstructorCall(CrosView);
210
211 // Call superclass's constructor.
212 DivView.call(this, CrosView.MAIN_BOX_ID);
213
214 g_browser.addCrosONCFileParseObserver(this);
215 g_browser.addStoreDebugLogsObserver(this);
216 g_browser.addSetNetworkDebugModeObserver(this);
217 addEventListeners_();
218 }
219
220 CrosView.TAB_ID = 'tab-handle-chromeos';
221 CrosView.TAB_NAME = 'ChromeOS';
222 CrosView.TAB_HASH = '#chromeos';
223
224 CrosView.MAIN_BOX_ID = 'chromeos-view-tab-content';
225 CrosView.IMPORT_DIV_ID = 'chromeos-view-import-div';
226 CrosView.IMPORT_ONC_ID = 'chromeos-view-import-onc';
227 CrosView.PASSCODE_ID = 'chromeos-view-password-div';
228 CrosView.PASSCODE_INPUT_ID = 'chromeos-view-onc-password';
229 CrosView.PARSE_STATUS_ID = 'chromeos-view-parse-status';
230 CrosView.STORE_DEBUG_LOGS_ID = 'chromeos-view-store-debug-logs';
231 CrosView.STORE_DEBUG_LOGS_STATUS_ID = 'chromeos-view-store-debug-logs-status';
232 CrosView.DEBUG_WIFI_ID = 'chromeos-view-network-debugging-wifi';
233 CrosView.DEBUG_ETHERNET_ID = 'chromeos-view-network-debugging-ethernet';
234 CrosView.DEBUG_CELLULAR_ID = 'chromeos-view-network-debugging-cellular';
235 CrosView.DEBUG_WIMAX_ID = 'chromeos-view-network-debugging-wimax';
236 CrosView.DEBUG_NONE_ID = 'chromeos-view-network-debugging-none';
237 CrosView.DEBUG_STATUS_ID = 'chromeos-view-network-debugging-status';
238
239 cr.addSingletonGetter(CrosView);
240
241 CrosView.prototype = {
242 // Inherit from DivView.
243 __proto__: DivView.prototype,
244
245 onONCFileParse: setParseStatus_,
246 onStoreDebugLogs: setStoreDebugLogsStatus_,
247 onSetNetworkDebugMode: setNetworkDebugModeStatus_,
248 };
249
250 return CrosView;
251 })();
252
OLDNEW
« 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