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

Side by Side Diff: chrome/browser/resources/chromeos/login/screen_offline_message.js

Issue 7779010: Implements frame sniffer to watch iframe loading state. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: order Created 9 years, 3 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 | Annotate | Revision Log
OLDNEW
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
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.
xiyuan 2011/09/02 15:49:53 nit: integer -> number
altimofeev 2011/09/05 09:39:33 Done.
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 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698