OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 /** | 5 /** |
6 * This view displays information on ChromeOS specific features. | 6 * This view displays information on ChromeOS specific features. |
7 */ | 7 */ |
8 var CrosView = (function() { | 8 var CrosView = (function() { |
9 'use strict'; | 9 'use strict'; |
10 | 10 |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
103 */ | 103 */ |
104 function setParseStatus_(error) { | 104 function setParseStatus_(error) { |
105 var parseStatus = $(CrosView.PARSE_STATUS_ID); | 105 var parseStatus = $(CrosView.PARSE_STATUS_ID); |
106 parseStatus.hidden = false; | 106 parseStatus.hidden = false; |
107 parseStatus.textContent = error ? | 107 parseStatus.textContent = error ? |
108 'ONC file parse failed: ' + error : 'ONC file successfully parsed'; | 108 'ONC file parse failed: ' + error : 'ONC file successfully parsed'; |
109 reset_(); | 109 reset_(); |
110 } | 110 } |
111 | 111 |
112 /** | 112 /** |
| 113 * Set status for current debug mode. |
| 114 * |
| 115 * @private |
| 116 */ |
| 117 function setNetworkDebugModeStatus_(status) { |
| 118 $(CrosView.DEBUG_STATUS_ID).innerText = status; |
| 119 } |
| 120 |
| 121 /** |
113 * An event listener for the file selection field. | 122 * An event listener for the file selection field. |
114 * | 123 * |
115 * @private | 124 * @private |
116 */ | 125 */ |
117 function handleFileChangeEvent_(event) { | 126 function handleFileChangeEvent_(event) { |
118 clearParseStatus_(); | 127 clearParseStatus_(); |
119 var file = event.target.files[0]; | 128 var file = event.target.files[0]; |
120 var reader = new FileReader(); | 129 var reader = new FileReader(); |
121 reader.onloadend = function(e) { | 130 reader.onloadend = function(e) { |
122 setFileContent_(reader.result); | 131 setFileContent_(reader.result); |
123 }; | 132 }; |
124 reader.readAsText(file); | 133 reader.readAsText(file); |
125 } | 134 } |
126 | 135 |
127 /** | 136 /** |
128 * Add event listeners for the file selection and passcode input fields. | 137 * Add event listeners for the file selection, passcode input |
| 138 * fields and for buttons for debug mode selection. |
129 * | 139 * |
130 * @private | 140 * @private |
131 */ | 141 */ |
132 function addEventListeners_() { | 142 function addEventListeners_() { |
133 $(CrosView.IMPORT_ONC_ID).addEventListener('change', | 143 $(CrosView.IMPORT_ONC_ID).addEventListener('change', |
134 handleFileChangeEvent_, | 144 handleFileChangeEvent_, |
135 false); | 145 false); |
136 | 146 |
137 $(CrosView.PASSCODE_INPUT_ID).addEventListener('change', function(event) { | 147 $(CrosView.PASSCODE_INPUT_ID).addEventListener('change', function(event) { |
138 setPasscode_(this.value); | 148 setPasscode_(this.value); |
139 }, false); | 149 }, false); |
| 150 |
| 151 $(CrosView.DEBUG_WIFI_ID).addEventListener('click', function(event) { |
| 152 setNetworkDebugMode_('wifi'); |
| 153 }, false); |
| 154 $(CrosView.DEBUG_ETHERNET_ID).addEventListener('click', function(event) { |
| 155 setNetworkDebugMode_('ethernet'); |
| 156 }, false); |
| 157 $(CrosView.DEBUG_CELLULAR_ID).addEventListener('click', function(event) { |
| 158 setNetworkDebugMode_('cellular'); |
| 159 }, false); |
| 160 $(CrosView.DEBUG_NONE_ID).addEventListener('click', function(event) { |
| 161 setNetworkDebugMode_('none'); |
| 162 }, false); |
140 } | 163 } |
141 | 164 |
142 /** | 165 /** |
143 * Reset fileContent and passcode vars. | 166 * Reset fileContent and passcode vars. |
144 * | 167 * |
145 * @private | 168 * @private |
146 */ | 169 */ |
147 function reset_() { | 170 function reset_() { |
148 fileContent = undefined; | 171 fileContent = undefined; |
149 passcode = ''; | 172 passcode = ''; |
150 $(CrosView.PASSCODE_ID).hidden = true; | 173 $(CrosView.PASSCODE_ID).hidden = true; |
151 } | 174 } |
152 | 175 |
153 /** | 176 /** |
| 177 * Enables or disables debug mode for a specified subsystem. |
| 178 * |
| 179 * @private |
| 180 */ |
| 181 function setNetworkDebugMode_(subsystem) { |
| 182 $(CrosView.DEBUG_STATUS_ID).innerText = ''; |
| 183 g_browser.setNetworkDebugMode(subsystem); |
| 184 } |
| 185 |
| 186 /** |
154 * @constructor | 187 * @constructor |
155 * @extends {DivView} | 188 * @extends {DivView} |
156 */ | 189 */ |
157 function CrosView() { | 190 function CrosView() { |
158 assertFirstConstructorCall(CrosView); | 191 assertFirstConstructorCall(CrosView); |
159 | 192 |
160 // Call superclass's constructor. | 193 // Call superclass's constructor. |
161 DivView.call(this, CrosView.MAIN_BOX_ID); | 194 DivView.call(this, CrosView.MAIN_BOX_ID); |
162 | 195 |
163 g_browser.addCrosONCFileParseObserver(this); | 196 g_browser.addCrosONCFileParseObserver(this); |
| 197 g_browser.addSetNetworkDebugModeObserver(this); |
164 addEventListeners_(); | 198 addEventListeners_(); |
165 } | 199 } |
166 | 200 |
167 // ID for special HTML element in category_tabs.html | 201 // ID for special HTML element in category_tabs.html |
168 CrosView.TAB_HANDLE_ID = 'tab-handle-chromeos'; | 202 CrosView.TAB_HANDLE_ID = 'tab-handle-chromeos'; |
169 | 203 |
170 CrosView.MAIN_BOX_ID = 'chromeos-view-tab-content'; | 204 CrosView.MAIN_BOX_ID = 'chromeos-view-tab-content'; |
171 CrosView.IMPORT_DIV_ID = 'chromeos-view-import-div'; | 205 CrosView.IMPORT_DIV_ID = 'chromeos-view-import-div'; |
172 CrosView.IMPORT_ONC_ID = 'chromeos-view-import-onc'; | 206 CrosView.IMPORT_ONC_ID = 'chromeos-view-import-onc'; |
173 CrosView.PASSCODE_ID = 'chromeos-view-password-div'; | 207 CrosView.PASSCODE_ID = 'chromeos-view-password-div'; |
174 CrosView.PASSCODE_INPUT_ID = 'chromeos-view-onc-password'; | 208 CrosView.PASSCODE_INPUT_ID = 'chromeos-view-onc-password'; |
175 CrosView.PARSE_STATUS_ID = 'chromeos-view-parse-status'; | 209 CrosView.PARSE_STATUS_ID = 'chromeos-view-parse-status'; |
| 210 CrosView.DEBUG_WIFI_ID = 'chromeos-view-network-debugging-wifi'; |
| 211 CrosView.DEBUG_ETHERNET_ID = 'chromeos-view-network-debugging-ethernet'; |
| 212 CrosView.DEBUG_CELLULAR_ID = 'chromeos-view-network-debugging-cellular'; |
| 213 CrosView.DEBUG_NONE_ID = 'chromeos-view-network-debugging-none'; |
| 214 CrosView.DEBUG_STATUS_ID = 'chromeos-view-network-debugging-status'; |
176 | 215 |
177 cr.addSingletonGetter(CrosView); | 216 cr.addSingletonGetter(CrosView); |
178 | 217 |
179 CrosView.prototype = { | 218 CrosView.prototype = { |
180 // Inherit from DivView. | 219 // Inherit from DivView. |
181 __proto__: DivView.prototype, | 220 __proto__: DivView.prototype, |
182 | 221 |
183 onONCFileParse: setParseStatus_, | 222 onONCFileParse: setParseStatus_, |
| 223 onSetNetworkDebugMode: setNetworkDebugModeStatus_, |
184 }; | 224 }; |
185 | 225 |
186 return CrosView; | 226 return CrosView; |
187 })(); | 227 })(); |
OLD | NEW |