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

Unified Diff: remoting/webapp/crd/js/remoting.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: Fix browsertest break by removing onload handler Created 6 years 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
« no previous file with comments | « remoting/webapp/crd/js/event_handlers.js ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/webapp/crd/js/remoting.js
diff --git a/remoting/webapp/crd/js/remoting.js b/remoting/webapp/crd/js/remoting.js
index c2bedd1ddff9465c9e59bc3bb261aa8c1a990fb5..01044a40fd8e42451ca29a879630f68582d47fc1 100644
--- a/remoting/webapp/crd/js/remoting.js
+++ b/remoting/webapp/crd/js/remoting.js
@@ -17,39 +17,9 @@ var remoting = remoting || {};
remoting.testEvents;
/**
- * 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".
+ * Initialization tasks that are common to all remoting apps.
*/
-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');
- // TODO(garykac): Refactor to remove auth dialog from the main html file
- // and place in a separate window.
- remoting.authDialog = new remoting.AuthDialog(dialog_border);
- remoting.windowShape.addCallback(remoting.authDialog);
-
- button.addEventListener('click', consentGranted, false);
-}
-
-/**
- * Entry point for app initialization.
- */
-remoting.init = function() {
+remoting.initGlobalObjects = function() {
if (base.isAppsV2()) {
var htmlNode = /** @type {HTMLElement} */ (document.body.parentNode);
htmlNode.classList.add('apps-v2');
@@ -65,61 +35,21 @@ remoting.init = function() {
remoting.SessionConnector.factory =
new remoting.DefaultSessionConnectorFactory();
remoting.settings = new remoting.Settings();
+
if (base.isAppsV2()) {
- remoting.identity = new remoting.Identity(consentRequired_);
remoting.fullscreen = new remoting.FullscreenAppsV2();
- remoting.windowFrame = new remoting.WindowFrame(
- document.getElementById('title-bar'));
- remoting.optionsMenu = remoting.windowFrame.createOptionsMenu();
} else {
- remoting.oauth2 = new remoting.OAuth2();
- if (!remoting.oauth2.isAuthenticated()) {
- document.getElementById('auth-dialog').hidden = false;
- }
- remoting.identity = remoting.oauth2;
remoting.fullscreen = new remoting.FullscreenAppsV1();
- remoting.toolbar = new remoting.Toolbar(
- document.getElementById('session-toolbar'));
- remoting.optionsMenu = remoting.toolbar.createOptionsMenu();
}
+
remoting.stats = new remoting.ConnectionStats(
document.getElementById('statistics'));
remoting.formatIq = new remoting.FormatIq();
- remoting.hostList = new remoting.HostList(
- document.getElementById('host-list'),
- document.getElementById('host-list-empty'),
- document.getElementById('host-list-error-message'),
- document.getElementById('host-list-refresh-failed-button'),
- document.getElementById('host-list-loading-indicator'));
+
remoting.clipboard = new remoting.Clipboard();
var sandbox = /** @type {HTMLIFrameElement} */
document.getElementById('wcs-sandbox');
remoting.wcsSandbox = new remoting.WcsSandboxContainer(sandbox.contentWindow);
- var homeFeedback = new remoting.MenuButton(
- document.getElementById('help-feedback-main'));
- var toolbarFeedback = new remoting.MenuButton(
- document.getElementById('help-feedback-toolbar'));
- remoting.manageHelpAndFeedback(
- document.getElementById('title-bar'));
- remoting.manageHelpAndFeedback(
- document.getElementById('help-feedback-toolbar'));
- remoting.manageHelpAndFeedback(
- document.getElementById('help-feedback-main'));
-
- /** @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);
-
- remoting.windowShape.updateClientWindowShape();
-
- remoting.showOrHideIT2MeUi();
- remoting.showOrHideMe2MeUi();
// The plugin's onFocus handler sends a paste command to |window|, because
// it can't send one to the plugin element itself.
@@ -128,95 +58,13 @@ remoting.init = function() {
remoting.initModalDialogs();
- isHostModeSupported_().then(
- /** @param {Boolean} supported */
- function(supported){
- if (supported) {
- var noShare = document.getElementById('chrome-os-no-share');
- noShare.parentNode.removeChild(noShare);
- } else {
- var button = document.getElementById('share-button');
- button.disabled = true;
- }
- });
-
- /**
- * @return {Promise} A promise that resolves to the id of the current
- * containing tab/window.
- */
- var getCurrentId = function () {
- if (base.isAppsV2()) {
- return Promise.resolve(chrome.app.window.current().id);
- }
-
- /**
- * @param {function(*=):void} resolve
- * @param {function(*=):void} reject
- */
- return new Promise(function(resolve, reject) {
- /** @param {chrome.Tab} tab */
- chrome.tabs.getCurrent(function(tab){
- if (tab) {
- resolve(String(tab.id));
- }
- reject('Cannot retrieve the current tab.');
- });
- });
- };
-
- var onLoad = function() {
- // Parse URL parameters.
- var urlParams = getUrlParameters_();
- if ('mode' in urlParams) {
- if (urlParams['mode'] === 'me2me') {
- var hostId = urlParams['hostId'];
- remoting.connectMe2Me(hostId);
- return;
- } else if (urlParams['mode'] === 'hangout') {
- /** @param {*} id */
- getCurrentId().then(function(id) {
- /** @type {string} */
- var accessCode = urlParams['accessCode'];
- remoting.ensureSessionConnector_();
- remoting.setMode(remoting.AppMode.CLIENT_CONNECTING);
- remoting.connector.connectIT2Me(accessCode);
-
- document.body.classList.add('hangout-remote-desktop');
- var senderId = /** @type {string} */ String(id);
- var hangoutSession = new remoting.HangoutSession(senderId);
- hangoutSession.init();
- });
- return;
- }
- }
- // No valid URL parameters, start up normally.
- remoting.initHomeScreenUi();
- }
- remoting.hostList.load(onLoad);
-
- // For Apps v1, check the tab type to warn the user if they are not getting
- // the best keyboard experience.
- if (!base.isAppsV2() && !remoting.platformIsMac()) {
- /** @param {boolean} isWindowed */
- var onIsWindowed = function(isWindowed) {
- if (!isWindowed) {
- document.getElementById('startup-mode-box-me2me').hidden = false;
- document.getElementById('startup-mode-box-it2me').hidden = false;
- }
- };
- isWindowed_(onIsWindowed);
- }
-
remoting.testEvents = new base.EventSource();
-
/** @enum {string} */
remoting.testEvents.Names = {
uiModeChanged: 'uiModeChanged'
};
remoting.testEvents.defineEvents(base.values(remoting.testEvents.Names));
-
- remoting.ClientPlugin.factory.preloadPlugin();
-};
+}
/**
* Returns true if the current platform is fully supported. It's only used when
@@ -236,97 +84,6 @@ remoting.isMe2MeInstallable = function() {
}
/**
- * 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;
-};
-
-/**
- * initHomeScreenUi is called if the app is not starting up in session mode,
- * and also if the user cancels pin entry or the connection in session mode.
- */
-remoting.initHomeScreenUi = function() {
- remoting.hostController = new remoting.HostController();
- remoting.setMode(remoting.AppMode.HOME);
- remoting.hostSetupDialog =
- new remoting.HostSetupDialog(remoting.hostController);
- var dialog = document.getElementById('paired-clients-list');
- var message = document.getElementById('paired-client-manager-message');
- var deleteAll = document.getElementById('delete-all-paired-clients');
- var close = document.getElementById('close-paired-client-manager-dialog');
- var working = document.getElementById('paired-client-manager-dialog-working');
- var error = document.getElementById('paired-client-manager-dialog-error');
- var noPairedClients = document.getElementById('no-paired-clients');
- remoting.pairedClientManager =
- new remoting.PairedClientManager(remoting.hostController, dialog, message,
- deleteAll, close, noPairedClients,
- working, error);
- // Display the cached host list, then asynchronously update and re-display it.
- remoting.updateLocalHostState();
- remoting.hostList.refresh(remoting.updateLocalHostState);
- remoting.butterBar = new remoting.ButterBar();
-};
-
-/**
- * Fetches local host state and updates the DOM accordingly.
- */
-remoting.updateLocalHostState = function() {
- /**
- * @param {remoting.HostController.State} state Host state.
- */
- var onHostState = function(state) {
- if (state == remoting.HostController.State.STARTED) {
- remoting.hostController.getLocalHostId(onHostId.bind(null, state));
- } else {
- onHostId(state, null);
- }
- };
-
- /**
- * @param {remoting.HostController.State} state Host state.
- * @param {string?} hostId Host id.
- */
- var onHostId = function(state, hostId) {
- remoting.hostList.setLocalHostStateAndId(state, hostId);
- remoting.hostList.display();
- };
-
- /**
- * @param {boolean} response True if the feature is present.
- */
- var onHasFeatureResponse = function(response) {
- /**
- * @param {remoting.Error} error
- */
- var onError = function(error) {
- console.error('Failed to get pairing status: ' + error);
- remoting.pairedClientManager.setPairedClients([]);
- };
-
- if (response) {
- remoting.hostController.getPairedClients(
- remoting.pairedClientManager.setPairedClients.bind(
- remoting.pairedClientManager),
- onError);
- } else {
- console.log('Pairing registry not supported by host.');
- remoting.pairedClientManager.setPairedClients([]);
- }
- };
-
- remoting.hostController.hasFeature(
- remoting.HostController.Feature.PAIRING_REGISTRY, onHasFeatureResponse);
- remoting.hostController.getLocalHostState(onHostState);
-};
-
-/**
* @return {string} Information about the current extension.
*/
remoting.getExtensionInfo = function() {
« no previous file with comments | « remoting/webapp/crd/js/event_handlers.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698