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

Unified Diff: remoting/webapp/base/js/auth_init.js

Issue 742473002: [Chromoting] Break up the webapp's init function into smaller chunks. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove auth-dialog code (from other cl) Created 6 years, 1 month 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: remoting/webapp/base/js/auth_init.js
diff --git a/remoting/webapp/base/js/auth_init.js b/remoting/webapp/base/js/auth_init.js
new file mode 100644
index 0000000000000000000000000000000000000000..944de5cd132c52033abdecfbae3a6c01ca7b8d6d
--- /dev/null
+++ b/remoting/webapp/base/js/auth_init.js
@@ -0,0 +1,71 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+'use strict';
+
+/** @suppress {duplicate} */
+var remoting = remoting || {};
+
+remoting.initIdentity = function() {
+ if (base.isAppsV2()) {
+ remoting.identity = new remoting.Identity(consentRequired_);
+ } else {
+ remoting.oauth2 = new remoting.OAuth2();
+ if (!remoting.oauth2.isAuthenticated()) {
+ document.getElementById('auth-dialog').hidden = false;
+ }
+ remoting.identity = remoting.oauth2;
+ }
+
+ /** @param {remoting.Error} error */
+ var onGetEmailError = function(error) {
+ // No need to show the error message for NOT_AUTHENTICATED
+ // because we will show "auth-dialog".
+ if (error != remoting.Error.NOT_AUTHENTICATED) {
+ remoting.showErrorMessage(error);
+ }
+ }
+ remoting.identity.getEmail(remoting.onEmail, onGetEmailError);
+}
+
+/**
+ * Display the user's email address and allow access to the rest of the app,
+ * including parsing URL parameters.
+ *
+ * @param {string} email The user's email address.
+ * @return {void} Nothing.
+ */
+remoting.onEmail = function(email) {
+ document.getElementById('current-email').innerText = email;
+ document.getElementById('get-started-it2me').disabled = false;
+ document.getElementById('get-started-me2me').disabled = false;
+};
+
+/**
+ * Show the authorization consent UI and register a one-shot event handler to
+ * continue the authorization process.
+ *
+ * @param {function():void} authContinue Callback to invoke when the user
+ * clicks "Continue".
+ */
+function consentRequired_(authContinue) {
+ /** @type {HTMLElement} */
+ var dialog = document.getElementById('auth-dialog');
+ /** @type {HTMLElement} */
+ var button = document.getElementById('auth-button');
+ var consentGranted = function(event) {
+ dialog.hidden = true;
+ button.removeEventListener('click', consentGranted, false);
+ authContinue();
+ remoting.windowShape.updateClientWindowShape();
+ };
+ dialog.hidden = false;
+
+ /** @type {HTMLElement} */
+ var dialog_border = document.getElementById('auth-dialog-border');
+ remoting.authDialog = new remoting.AuthDialog(dialog_border);
+ remoting.windowShape.addCallback(remoting.authDialog);
+
+ button.addEventListener('click', consentGranted, false);
+}

Powered by Google App Engine
This is Rietveld 408576698