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

Unified 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: clang fix Created 9 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/chromeos/login/screen_offline_message.js
diff --git a/chrome/browser/resources/chromeos/login/screen_offline_message.js b/chrome/browser/resources/chromeos/login/screen_offline_message.js
index c557bb0b89fc7fc8d33960500d1943e724ccc511..2b7c03d5a344e7475d728e5aaa1d128e82dd782d 100644
--- a/chrome/browser/resources/chromeos/login/screen_offline_message.js
+++ b/chrome/browser/resources/chromeos/login/screen_offline_message.js
@@ -49,15 +49,20 @@ cr.define('login', function() {
var shouldOverlay = MANAGED_SCREENS.indexOf(currentScreen.id) != -1;
if (isOffline && shouldOverlay) {
+ $('offline-message-text').hidden = false;
+ $('captive-portal-message-text').hidden = true;
+
offlineMessage.classList.remove('hidden');
offlineMessage.classList.remove('faded');
- currentScreen.classList.add('faded');
- currentScreen.addEventListener('webkitTransitionEnd',
- function f(e) {
- currentScreen.removeEventListener('webkitTransitionEnd', f);
- currentScreen.classList.add('hidden');
- });
+ if (!currentScreen.classList.contains('faded')) {
+ currentScreen.classList.add('faded');
+ currentScreen.addEventListener('webkitTransitionEnd',
+ function f(e) {
+ currentScreen.removeEventListener('webkitTransitionEnd', f);
+ currentScreen.classList.add('hidden');
+ });
+ }
} else {
if (!offlineMessage.classList.contains('faded')) {
offlineMessage.classList.add('faded');
@@ -85,6 +90,38 @@ cr.define('login', function() {
}
};
+ /**
+ * Handler for iframe's error notification coming from the outside.
+ * For more info see C++ class 'SnifferObserver' which calls this method.
+ * @param {integer} error Error code.
+ */
+ OfflineMessageScreen.onFrameError = function(error) {
+ var currentScreen = Oobe.getInstance().currentScreen;
+ var offlineMessage = $('offline-message');
+ var isOffline = !window.navigator.onLine;
+ var shouldOverlay = MANAGED_SCREENS.indexOf(currentScreen.id) != -1;
+
+ if (!shouldOverlay)
+ return;
+
+ if (!isOffline) {
+ $('offline-message-text').hidden = true;
+ $('captive-portal-message-text').hidden = false;
+ }
+
+ if (!currentScreen.classList.contains('faded')) {
+ offlineMessage.classList.remove('hidden');
+ offlineMessage.classList.remove('faded');
+
+ currentScreen.classList.add('faded');
+ currentScreen.addEventListener('webkitTransitionEnd',
+ function f(e) {
+ currentScreen.removeEventListener('webkitTransitionEnd', f);
+ currentScreen.classList.add('hidden');
+ });
+ }
+ };
+
return {
OfflineMessageScreen: OfflineMessageScreen
};

Powered by Google App Engine
This is Rietveld 408576698