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 * @fileoverview Offline message screen implementation. | 6 * @fileoverview Offline message screen implementation. |
7 */ | 7 */ |
8 | 8 |
9 login.createScreen('ErrorMessageScreen', 'error-message', function() { | 9 login.createScreen('ErrorMessageScreen', 'error-message', function() { |
10 var CONTEXT_KEY_ERROR_STATE_CODE = 'error-state-code'; | |
11 var CONTEXT_KEY_ERROR_STATE_NETWORK = 'error-state-network'; | |
12 var CONTEXT_KEY_GUEST_SIGNIN_ALLOWED = 'guest-signin-allowed'; | |
13 var CONTEXT_KEY_OFFLINE_SIGNIN_ALLOWED = 'offline-signin-allowed'; | |
14 var CONTEXT_KEY_SHOW_CONNECTING_INDICATOR = 'show-connecting-indicator'; | |
15 var CONTEXT_KEY_UI_STATE = 'ui-state'; | |
16 | |
17 var USER_ACTION_CONFIGURE_CERTS = 'configure-certs'; | |
18 var USER_ACTION_DIAGNOSE = 'diagnose'; | |
19 var USER_ACTION_LAUNCH_OOBE_GUEST = 'launch-oobe-guest'; | |
20 var USER_ACTION_LOCAL_STATE_POWERWASH = 'local-state-error-powerwash'; | |
21 var USER_ACTION_REBOOT = 'reboot'; | |
22 var USER_ACTION_SHOW_CAPTIVE_PORTAL = 'show-captive-portal'; | |
23 | |
10 // Link which starts guest session for captive portal fixing. | 24 // Link which starts guest session for captive portal fixing. |
11 /** @const */ var FIX_CAPTIVE_PORTAL_ID = 'captive-portal-fix-link'; | 25 /** @const */ var FIX_CAPTIVE_PORTAL_ID = 'captive-portal-fix-link'; |
12 | 26 |
13 /** @const */ var FIX_PROXY_SETTINGS_ID = 'proxy-settings-fix-link'; | 27 /** @const */ var FIX_PROXY_SETTINGS_ID = 'proxy-settings-fix-link'; |
14 | 28 |
15 // Class of the elements which hold current network name. | 29 // Class of the elements which hold current network name. |
16 /** @const */ var CURRENT_NETWORK_NAME_CLASS = | 30 /** @const */ var CURRENT_NETWORK_NAME_CLASS = |
17 'portal-network-name'; | 31 'portal-network-name'; |
18 | 32 |
19 // Link which triggers frame reload. | 33 // Link which triggers frame reload. |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
72 // Error screen initial UI state. | 86 // Error screen initial UI state. |
73 ui_state_: ERROR_SCREEN_UI_STATE.UNKNOWN, | 87 ui_state_: ERROR_SCREEN_UI_STATE.UNKNOWN, |
74 | 88 |
75 // Error screen initial error state. | 89 // Error screen initial error state. |
76 error_state_: ERROR_STATE.UNKNOWN, | 90 error_state_: ERROR_STATE.UNKNOWN, |
77 | 91 |
78 /** @override */ | 92 /** @override */ |
79 decorate: function() { | 93 decorate: function() { |
80 cr.ui.DropDown.decorate($('offline-networks-list')); | 94 cr.ui.DropDown.decorate($('offline-networks-list')); |
81 this.updateLocalizedContent(); | 95 this.updateLocalizedContent(); |
96 | |
97 var self = this; | |
98 this.context.addObserver(CONTEXT_KEY_ERROR_STATE_CODE, | |
99 function(error_state) { | |
100 self.setErrorState(error_state); | |
101 }); | |
102 this.context.addObserver(CONTEXT_KEY_ERROR_STATE_NETWORK, | |
103 function(network) { | |
104 self.setNetwork(network); | |
105 }); | |
106 this.context.addObserver(CONTEXT_KEY_GUEST_SIGNIN_ALLOWED, | |
107 function(allowed) { | |
108 self.allowGuestSignin(allowed); | |
109 }); | |
110 this.context.addObserver(CONTEXT_KEY_OFFLINE_SIGNIN_ALLOWED, | |
111 function(allowed) { | |
112 self.allowOfflineLogin(allowed); | |
113 }); | |
114 this.context.addObserver(CONTEXT_KEY_SHOW_CONNECTING_INDICATOR, | |
115 function(show) { | |
116 self.showConnectingIndicator(show); | |
117 }); | |
118 this.context.addObserver(CONTEXT_KEY_UI_STATE, function(ui_state) { | |
119 self.setUIState(ui_state); | |
120 }); | |
82 }, | 121 }, |
83 | 122 |
84 /** | 123 /** |
85 * Updates localized content of the screen that is not updated via template. | 124 * Updates localized content of the screen that is not updated via template. |
86 */ | 125 */ |
87 updateLocalizedContent: function() { | 126 updateLocalizedContent: function() { |
127 var self = this; | |
88 $('auto-enrollment-offline-message-text').innerHTML = | 128 $('auto-enrollment-offline-message-text').innerHTML = |
89 loadTimeData.getStringF( | 129 loadTimeData.getStringF( |
90 'autoEnrollmentOfflineMessageBody', | 130 'autoEnrollmentOfflineMessageBody', |
91 '<b class="' + CURRENT_NETWORK_NAME_CLASS + '"></b>', | 131 '<b class="' + CURRENT_NETWORK_NAME_CLASS + '"></b>', |
92 '<a id="auto-enrollment-learn-more" class="signin-link" ' + | 132 '<a id="auto-enrollment-learn-more" class="signin-link" ' + |
93 '"href="#">', | 133 '"href="#">', |
94 '</a>'); | 134 '</a>'); |
95 $('auto-enrollment-learn-more').onclick = function() { | 135 $('auto-enrollment-learn-more').onclick = function() { |
96 chrome.send('launchHelpApp', [HELP_TOPIC_AUTO_ENROLLMENT]); | 136 chrome.send('launchHelpApp', [HELP_TOPIC_AUTO_ENROLLMENT]); |
97 }; | 137 }; |
98 | 138 |
99 $('captive-portal-message-text').innerHTML = loadTimeData.getStringF( | 139 $('captive-portal-message-text').innerHTML = loadTimeData.getStringF( |
100 'captivePortalMessage', | 140 'captivePortalMessage', |
101 '<b class="' + CURRENT_NETWORK_NAME_CLASS + '"></b>', | 141 '<b class="' + CURRENT_NETWORK_NAME_CLASS + '"></b>', |
102 '<a id="' + FIX_CAPTIVE_PORTAL_ID + '" class="signin-link" href="#">', | 142 '<a id="' + FIX_CAPTIVE_PORTAL_ID + '" class="signin-link" href="#">', |
103 '</a>'); | 143 '</a>'); |
104 $(FIX_CAPTIVE_PORTAL_ID).onclick = function() { | 144 $(FIX_CAPTIVE_PORTAL_ID).onclick = function() { |
105 chrome.send('showCaptivePortal'); | 145 self.send(login.Screen.CALLBACK_USER_ACTED, |
146 USER_ACTION_SHOW_CAPTIVE_PORTAL); | |
106 }; | 147 }; |
107 | 148 |
108 $('captive-portal-proxy-message-text').innerHTML = | 149 $('captive-portal-proxy-message-text').innerHTML = |
109 loadTimeData.getStringF( | 150 loadTimeData.getStringF( |
110 'captivePortalProxyMessage', | 151 'captivePortalProxyMessage', |
111 '<a id="' + FIX_PROXY_SETTINGS_ID + '" class="signin-link" href="#">', | 152 '<a id="' + FIX_PROXY_SETTINGS_ID + '" class="signin-link" href="#">', |
112 '</a>'); | 153 '</a>'); |
113 $(FIX_PROXY_SETTINGS_ID).onclick = function() { | 154 $(FIX_PROXY_SETTINGS_ID).onclick = function() { |
114 chrome.send('openProxySettings'); | 155 chrome.send('openProxySettings'); |
115 }; | 156 }; |
(...skipping 16 matching lines...) Expand all Loading... | |
132 gaiaScreen.doReload(); | 173 gaiaScreen.doReload(); |
133 }; | 174 }; |
134 $('signin-proxy-error-fix-proxy').onclick = function() { | 175 $('signin-proxy-error-fix-proxy').onclick = function() { |
135 chrome.send('openProxySettings'); | 176 chrome.send('openProxySettings'); |
136 }; | 177 }; |
137 | 178 |
138 $('error-guest-signin').innerHTML = loadTimeData.getStringF( | 179 $('error-guest-signin').innerHTML = loadTimeData.getStringF( |
139 'guestSignin', | 180 'guestSignin', |
140 '<a id="error-guest-signin-link" class="signin-link" href="#">', | 181 '<a id="error-guest-signin-link" class="signin-link" href="#">', |
141 '</a>'); | 182 '</a>'); |
142 $('error-guest-signin-link').onclick = this.launchGuestSession_; | 183 $('error-guest-signin-link').addEventListener( |
184 'click', | |
185 this.launchGuestSession_.bind(this)); | |
143 | 186 |
144 $('error-guest-signin-fix-network').innerHTML = loadTimeData.getStringF( | 187 $('error-guest-signin-fix-network').innerHTML = loadTimeData.getStringF( |
145 'guestSigninFixNetwork', | 188 'guestSigninFixNetwork', |
146 '<a id="error-guest-fix-network-signin-link" class="signin-link" ' + | 189 '<a id="error-guest-fix-network-signin-link" class="signin-link" ' + |
147 'href="#">', | 190 'href="#">', |
148 '</a>'); | 191 '</a>'); |
149 $('error-guest-fix-network-signin-link').onclick = | 192 $('error-guest-fix-network-signin-link').addEventListener( |
150 this.launchGuestSession_; | 193 'click', |
194 this.launchGuestSession_.bind(this)); | |
151 | 195 |
152 $('error-offline-login').innerHTML = loadTimeData.getStringF( | 196 $('error-offline-login').innerHTML = loadTimeData.getStringF( |
153 'offlineLogin', | 197 'offlineLogin', |
154 '<a id="error-offline-login-link" class="signin-link" href="#">', | 198 '<a id="error-offline-login-link" class="signin-link" href="#">', |
155 '</a>'); | 199 '</a>'); |
156 $('error-offline-login-link').onclick = function() { | 200 $('error-offline-login-link').onclick = function() { |
157 chrome.send('offlineLogin'); | 201 chrome.send('offlineLogin'); |
158 }; | 202 }; |
159 | 203 |
160 var ellipsis = ''; | 204 var ellipsis = ''; |
161 for (var i = 1; i <= 3; ++i) { | 205 for (var i = 1; i <= 3; ++i) { |
162 ellipsis += | 206 ellipsis += |
163 '<span id="connecting-indicator-ellipsis-' + i + '">.</span>'; | 207 '<span id="connecting-indicator-ellipsis-' + i + '">.</span>'; |
164 } | 208 } |
165 $('connecting-indicator').innerHTML = | 209 $('connecting-indicator').innerHTML = |
166 loadTimeData.getStringF('connectingIndicatorText', ellipsis); | 210 loadTimeData.getStringF('connectingIndicatorText', ellipsis); |
167 | 211 |
168 this.onContentChange_(); | 212 this.onContentChange_(); |
169 }, | 213 }, |
170 | 214 |
171 /** | 215 /** |
172 * Event handler that is invoked just before the screen in shown. | 216 * Event handler that is invoked just before the screen in shown. |
173 * @param {Object} data Screen init payload. | 217 * @param {Object} data Screen init payload. |
174 */ | 218 */ |
175 onBeforeShow: function(data) { | 219 onBeforeShow: function(data) { |
176 cr.ui.Oobe.clearErrors(); | 220 cr.ui.Oobe.clearErrors(); |
177 cr.ui.DropDown.show('offline-networks-list', false); | 221 cr.ui.DropDown.show('offline-networks-list', false); |
178 if (data === undefined) | |
179 return; | |
180 if ('uiState' in data) | |
181 this.setUIState(data['uiState']); | |
182 if ('errorState' in data && 'network' in data) | |
183 this.setErrorState(data['errorState'], data['network']); | |
184 if ('guestSigninAllowed' in data) | |
185 this.allowGuestSignin(data['guestSigninAllowed']); | |
186 if ('offlineLoginAllowed' in data) | |
187 this.allowOfflineLogin(data['offlineLoginAllowed']); | |
188 if ('showConnectingIndicator' in data) | |
189 this.showConnectingIndicator(data['showConnectingIndicator']); | |
190 }, | 222 }, |
191 | 223 |
192 /** | 224 /** |
193 * Event handler that is invoked just before the screen is hidden. | 225 * Event handler that is invoked just before the screen is hidden. |
194 */ | 226 */ |
195 onBeforeHide: function() { | 227 onBeforeHide: function() { |
196 cr.ui.DropDown.hide('offline-networks-list'); | 228 cr.ui.DropDown.hide('offline-networks-list'); |
197 }, | 229 }, |
198 | 230 |
199 /** | 231 /** |
200 * Buttons in oobe wizard's button strip. | 232 * Buttons in oobe wizard's button strip. |
201 * @type {array} Array of Buttons. | 233 * @type {array} Array of Buttons. |
202 */ | 234 */ |
203 get buttons() { | 235 get buttons() { |
204 var buttons = []; | 236 var buttons = []; |
237 var self = this; | |
205 | 238 |
206 var rebootButton = this.ownerDocument.createElement('button'); | 239 var rebootButton = this.ownerDocument.createElement('button'); |
207 rebootButton.textContent = loadTimeData.getString('rebootButton'); | 240 rebootButton.textContent = loadTimeData.getString('rebootButton'); |
208 rebootButton.classList.add('show-with-ui-state-kiosk-mode'); | 241 rebootButton.classList.add('show-with-ui-state-kiosk-mode'); |
209 rebootButton.addEventListener('click', function(e) { | 242 rebootButton.addEventListener('click', function(e) { |
210 chrome.send('rebootButtonClicked'); | 243 self.send(login.Screen.CALLBACK_USER_ACTED, USER_ACTION_REBOOT); |
211 e.stopPropagation(); | 244 e.stopPropagation(); |
212 }); | 245 }); |
213 buttons.push(rebootButton); | 246 buttons.push(rebootButton); |
214 | 247 |
215 var diagnoseButton = this.ownerDocument.createElement('button'); | 248 var diagnoseButton = this.ownerDocument.createElement('button'); |
216 diagnoseButton.textContent = loadTimeData.getString('diagnoseButton'); | 249 diagnoseButton.textContent = loadTimeData.getString('diagnoseButton'); |
217 diagnoseButton.classList.add('show-with-ui-state-kiosk-mode'); | 250 diagnoseButton.classList.add('show-with-ui-state-kiosk-mode'); |
218 diagnoseButton.addEventListener('click', function(e) { | 251 diagnoseButton.addEventListener('click', function(e) { |
219 chrome.send('diagnoseButtonClicked'); | 252 self.send(login.Screen.CALLBACK_USER_ACTED, USER_ACTION_DIAGNOSE); |
220 e.stopPropagation(); | 253 e.stopPropagation(); |
221 }); | 254 }); |
222 buttons.push(diagnoseButton); | 255 buttons.push(diagnoseButton); |
223 | 256 |
224 var certsButton = this.ownerDocument.createElement('button'); | 257 var certsButton = this.ownerDocument.createElement('button'); |
225 certsButton.textContent = loadTimeData.getString('configureCertsButton'); | 258 certsButton.textContent = loadTimeData.getString('configureCertsButton'); |
226 certsButton.classList.add('show-with-ui-state-kiosk-mode'); | 259 certsButton.classList.add('show-with-ui-state-kiosk-mode'); |
227 certsButton.addEventListener('click', function(e) { | 260 certsButton.addEventListener('click', function(e) { |
228 chrome.send('configureCertsClicked'); | 261 self.send(login.Screen.CALLBACK_USER_ACTED, |
262 USER_ACTION_CONFIGURE_CERTS); | |
229 e.stopPropagation(); | 263 e.stopPropagation(); |
230 }); | 264 }); |
231 buttons.push(certsButton); | 265 buttons.push(certsButton); |
232 | 266 |
233 var continueButton = this.ownerDocument.createElement('button'); | 267 var continueButton = this.ownerDocument.createElement('button'); |
234 continueButton.id = 'continue-network-config-btn'; | 268 continueButton.id = 'continue-network-config-btn'; |
235 continueButton.textContent = loadTimeData.getString('continueButton'); | 269 continueButton.textContent = loadTimeData.getString('continueButton'); |
236 continueButton.classList.add('show-with-error-state-kiosk-online'); | 270 continueButton.classList.add('show-with-error-state-kiosk-online'); |
237 continueButton.addEventListener('click', function(e) { | 271 continueButton.addEventListener('click', function(e) { |
238 chrome.send('continueAppLaunch'); | 272 chrome.send('continueAppLaunch'); |
(...skipping 15 matching lines...) Expand all Loading... | |
254 spacer.classList.add('button-spacer'); | 288 spacer.classList.add('button-spacer'); |
255 spacer.classList.add('show-with-ui-state-kiosk-mode'); | 289 spacer.classList.add('show-with-ui-state-kiosk-mode'); |
256 buttons.push(spacer); | 290 buttons.push(spacer); |
257 | 291 |
258 var powerwashButton = this.ownerDocument.createElement('button'); | 292 var powerwashButton = this.ownerDocument.createElement('button'); |
259 powerwashButton.id = 'error-message-restart-and-powerwash-button'; | 293 powerwashButton.id = 'error-message-restart-and-powerwash-button'; |
260 powerwashButton.textContent = | 294 powerwashButton.textContent = |
261 loadTimeData.getString('localStateErrorPowerwashButton'); | 295 loadTimeData.getString('localStateErrorPowerwashButton'); |
262 powerwashButton.classList.add('show-with-ui-state-local-state-error'); | 296 powerwashButton.classList.add('show-with-ui-state-local-state-error'); |
263 powerwashButton.addEventListener('click', function(e) { | 297 powerwashButton.addEventListener('click', function(e) { |
264 chrome.send('localStateErrorPowerwashButtonClicked'); | 298 self.send(login.Screen.CALLBACK_USER_ACTED, |
299 USER_ACTION_LOCAL_STATE_POWERWASH); | |
265 e.stopPropagation(); | 300 e.stopPropagation(); |
266 }); | 301 }); |
267 buttons.push(powerwashButton); | 302 buttons.push(powerwashButton); |
268 | 303 |
269 return buttons; | 304 return buttons; |
270 }, | 305 }, |
271 | 306 |
272 /** | 307 /** |
273 * Sets current UI state of the screen. | 308 * Sets current UI state of the screen. |
274 * @param {string} ui_state New UI state of the screen. | 309 * @param {string} ui_state New UI state of the screen. |
275 * @private | 310 * @private |
276 */ | 311 */ |
277 setUIState_: function(ui_state) { | 312 setUIState_: function(ui_state) { |
278 this.classList.remove(this.ui_state); | 313 this.classList.remove(this.ui_state); |
279 this.ui_state = ui_state; | 314 this.ui_state = ui_state; |
280 this.classList.add(this.ui_state); | 315 this.classList.add(this.ui_state); |
281 | 316 |
282 if (ui_state == ERROR_SCREEN_UI_STATE.LOCAL_STATE_ERROR) { | 317 if (ui_state == ERROR_SCREEN_UI_STATE.LOCAL_STATE_ERROR) { |
283 // Hide header bar and progress dots, because there are no way | 318 // Hide header bar and progress dots, because there are no way |
284 // from the error screen about broken local state. | 319 // from the error screen about broken local state. |
285 Oobe.getInstance().headerHidden = true; | 320 Oobe.getInstance().headerHidden = true; |
286 $('progress-dots').hidden = true; | 321 $('progress-dots').hidden = true; |
287 } | 322 } |
288 this.onContentChange_(); | 323 this.onContentChange_(); |
289 }, | 324 }, |
290 | 325 |
291 /** | 326 /** |
292 * Sets current error state of the screen. | 327 * Sets current error state of the screen. |
293 * @param {string} error_state New error state of the screen. | 328 * @param {string} error_state New error state of the screen. |
294 * @param {string} network Name of the current network | |
295 * @private | 329 * @private |
296 */ | 330 */ |
297 setErrorState_: function(error_state, network) { | 331 setErrorState_: function(error_state) { |
298 this.classList.remove(this.error_state); | 332 this.classList.remove(this.error_state); |
299 var networkNameElems = | |
300 document.getElementsByClassName(CURRENT_NETWORK_NAME_CLASS); | |
301 for (var i = 0; i < networkNameElems.length; ++i) | |
302 networkNameElems[i].textContent = network; | |
303 this.error_state = error_state; | 333 this.error_state = error_state; |
304 this.classList.add(this.error_state); | 334 this.classList.add(this.error_state); |
305 this.onContentChange_(); | 335 this.onContentChange_(); |
306 }, | 336 }, |
307 | 337 |
338 /** | |
339 * Sets network. | |
340 * @param {string} network Name of the current network | |
341 * @private | |
342 */ | |
343 setNetwork_: function(network) { | |
344 var networkNameElems = | |
345 document.getElementsByClassName(CURRENT_NETWORK_NAME_CLASS); | |
346 for (var i = 0; i < networkNameElems.length; ++i) | |
347 networkNameElems[i].textContent = network; | |
348 this.onContentChange_(); | |
349 }, | |
350 | |
308 /* Method called after content of the screen changed. | 351 /* Method called after content of the screen changed. |
309 * @private | 352 * @private |
310 */ | 353 */ |
311 onContentChange_: function() { | 354 onContentChange_: function() { |
312 if (Oobe.getInstance().currentScreen === this) | 355 if (Oobe.getInstance().currentScreen === this) |
313 Oobe.getInstance().updateScreenSize(this); | 356 Oobe.getInstance().updateScreenSize(this); |
314 }, | 357 }, |
315 | 358 |
316 /** | 359 /** |
317 * Event handler for guest session launch. | 360 * Event handler for guest session launch. |
318 * @private | 361 * @private |
319 */ | 362 */ |
320 launchGuestSession_: function() { | 363 launchGuestSession_: function() { |
321 chrome.send(Oobe.getInstance().isOobeUI() ? | 364 if (Oobe.getInstance().isOobeUI()) { |
322 'launchOobeGuestSession' : 'launchIncognito'); | 365 this.send(login.Screen.CALLBACK_USER_ACTED, |
366 USER_ACTION_LAUNCH_OOBE_GUEST); | |
367 } else { | |
368 chrome.send('launchIncognito'); | |
369 } | |
323 }, | 370 }, |
324 | 371 |
325 /** | 372 /** |
326 * Prepares error screen to show guest signin link. | 373 * Prepares error screen to show guest signin link. |
327 * @private | 374 * @private |
328 */ | 375 */ |
329 allowGuestSignin: function(allowed) { | 376 allowGuestSignin: function(allowed) { |
330 this.classList.toggle('allow-guest-signin', allowed); | 377 this.classList.toggle('allow-guest-signin', allowed); |
331 this.onContentChange_(); | 378 this.onContentChange_(); |
332 }, | 379 }, |
(...skipping 12 matching lines...) Expand all Loading... | |
345 * @param {number} ui_state New UI state of the screen. | 392 * @param {number} ui_state New UI state of the screen. |
346 * @private | 393 * @private |
347 */ | 394 */ |
348 setUIState: function(ui_state) { | 395 setUIState: function(ui_state) { |
349 this.setUIState_(UI_STATES[ui_state]); | 396 this.setUIState_(UI_STATES[ui_state]); |
350 }, | 397 }, |
351 | 398 |
352 /** | 399 /** |
353 * Sets current error state of the screen. | 400 * Sets current error state of the screen. |
354 * @param {number} error_state New error state of the screen. | 401 * @param {number} error_state New error state of the screen. |
355 * @param {string} network Name of the current network | |
356 * @private | 402 * @private |
357 */ | 403 */ |
358 setErrorState: function(error_state, network) { | 404 setErrorState: function(error_state) { |
359 this.setErrorState_(ERROR_STATES[error_state], network); | 405 this.setErrorState_(ERROR_STATES[error_state]); |
360 }, | 406 }, |
361 | 407 |
362 /** | 408 /** |
409 * Sets current network. | |
410 * @param {string} network Name of the current network | |
411 * @private | |
412 */ | |
413 setNetwork: function(network) { | |
Denis Kuznetsov (DE-MUC)
2015/02/12 16:14:12
Why do we need it if we don't expose it in API?
S
Nikita (slow)
2015/02/13 12:17:56
Done.
| |
414 this.setNetwork_(network); | |
415 }, | |
416 | |
417 /** | |
363 * Updates visibility of the label indicating we're reconnecting. | 418 * Updates visibility of the label indicating we're reconnecting. |
364 * @param {boolean} show Whether the label should be shown. | 419 * @param {boolean} show Whether the label should be shown. |
365 */ | 420 */ |
366 showConnectingIndicator: function(show) { | 421 showConnectingIndicator: function(show) { |
367 this.classList.toggle('show-connecting-indicator', show); | 422 this.classList.toggle('show-connecting-indicator', show); |
368 this.onContentChange_(); | 423 this.onContentChange_(); |
369 } | 424 } |
370 }; | 425 }; |
371 }); | 426 }); |
OLD | NEW |