| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 cr.define('login', function() { | 9 cr.define('login', function() { |
| 10 // Screens that should have offline message overlay. | 10 // Screens that should have offline message overlay. |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 42 /** | 42 /** |
| 43 * Shows or hides offline message based on network on/offline state. | 43 * Shows or hides offline message based on network on/offline state. |
| 44 */ | 44 */ |
| 45 update: function() { | 45 update: function() { |
| 46 var currentScreen = Oobe.getInstance().currentScreen; | 46 var currentScreen = Oobe.getInstance().currentScreen; |
| 47 var offlineMessage = this; | 47 var offlineMessage = this; |
| 48 var isOffline = !window.navigator.onLine; | 48 var isOffline = !window.navigator.onLine; |
| 49 var shouldOverlay = MANAGED_SCREENS.indexOf(currentScreen.id) != -1; | 49 var shouldOverlay = MANAGED_SCREENS.indexOf(currentScreen.id) != -1; |
| 50 | 50 |
| 51 if (isOffline && shouldOverlay) { | 51 if (isOffline && shouldOverlay) { |
| 52 $('offline-message-text').hidden = false; |
| 53 $('captive-portal-message-text').hidden = true; |
| 54 |
| 52 offlineMessage.classList.remove('hidden'); | 55 offlineMessage.classList.remove('hidden'); |
| 53 offlineMessage.classList.remove('faded'); | 56 offlineMessage.classList.remove('faded'); |
| 54 | 57 |
| 55 currentScreen.classList.add('faded'); | 58 if (!currentScreen.classList.contains('faded')) { |
| 56 currentScreen.addEventListener('webkitTransitionEnd', | 59 currentScreen.classList.add('faded'); |
| 57 function f(e) { | 60 currentScreen.addEventListener('webkitTransitionEnd', |
| 58 currentScreen.removeEventListener('webkitTransitionEnd', f); | 61 function f(e) { |
| 59 currentScreen.classList.add('hidden'); | 62 currentScreen.removeEventListener('webkitTransitionEnd', f); |
| 60 }); | 63 currentScreen.classList.add('hidden'); |
| 64 }); |
| 65 } |
| 61 } else { | 66 } else { |
| 62 if (!offlineMessage.classList.contains('faded')) { | 67 if (!offlineMessage.classList.contains('faded')) { |
| 63 offlineMessage.classList.add('faded'); | 68 offlineMessage.classList.add('faded'); |
| 64 offlineMessage.addEventListener('webkitTransitionEnd', | 69 offlineMessage.addEventListener('webkitTransitionEnd', |
| 65 function f(e) { | 70 function f(e) { |
| 66 offlineMessage.removeEventListener('webkitTransitionEnd', f); | 71 offlineMessage.removeEventListener('webkitTransitionEnd', f); |
| 67 offlineMessage.classList.add('hidden'); | 72 offlineMessage.classList.add('hidden'); |
| 68 }); | 73 }); |
| 69 | 74 |
| 70 currentScreen.classList.remove('hidden'); | 75 currentScreen.classList.remove('hidden'); |
| 71 currentScreen.classList.remove('faded'); | 76 currentScreen.classList.remove('faded'); |
| 72 | 77 |
| 73 // Triggers refresh for Gaia sign-in screen. | 78 // Triggers refresh for Gaia sign-in screen. |
| 74 if (currentScreen.id == 'gaia-signin') | 79 if (currentScreen.id == 'gaia-signin') |
| 75 chrome.send('showAddUser'); | 80 chrome.send('showAddUser'); |
| 76 } | 81 } |
| 77 } | 82 } |
| 78 }, | 83 }, |
| 79 | 84 |
| 80 /** | 85 /** |
| 81 * Handler of online/offline event. | 86 * Handler of online/offline event. |
| 82 */ | 87 */ |
| 83 handleNetworkStateChange_: function() { | 88 handleNetworkStateChange_: function() { |
| 84 this.update(); | 89 this.update(); |
| 85 } | 90 } |
| 86 }; | 91 }; |
| 87 | 92 |
| 93 /** |
| 94 * Handler for iframe's error notification coming from the outside. |
| 95 * For more info see C++ class 'SnifferObserver' which calls this method. |
| 96 * @param {integer} error Error code. |
| 97 */ |
| 98 OfflineMessageScreen.onFrameError = function(error) { |
| 99 var currentScreen = Oobe.getInstance().currentScreen; |
| 100 var offlineMessage = $('offline-message'); |
| 101 var isOffline = !window.navigator.onLine; |
| 102 var shouldOverlay = MANAGED_SCREENS.indexOf(currentScreen.id) != -1; |
| 103 |
| 104 if (!shouldOverlay) |
| 105 return; |
| 106 |
| 107 if (!isOffline) { |
| 108 $('offline-message-text').hidden = true; |
| 109 $('captive-portal-message-text').hidden = false; |
| 110 } |
| 111 |
| 112 if (!currentScreen.classList.contains('faded')) { |
| 113 offlineMessage.classList.remove('hidden'); |
| 114 offlineMessage.classList.remove('faded'); |
| 115 |
| 116 currentScreen.classList.add('faded'); |
| 117 currentScreen.addEventListener('webkitTransitionEnd', |
| 118 function f(e) { |
| 119 currentScreen.removeEventListener('webkitTransitionEnd', f); |
| 120 currentScreen.classList.add('hidden'); |
| 121 }); |
| 122 } |
| 123 }; |
| 124 |
| 88 return { | 125 return { |
| 89 OfflineMessageScreen: OfflineMessageScreen | 126 OfflineMessageScreen: OfflineMessageScreen |
| 90 }; | 127 }; |
| 91 }); | 128 }); |
| OLD | NEW |