summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--remoting/webapp/host_install_dialog.js86
-rw-r--r--remoting/webapp/host_screen.js23
-rw-r--r--remoting/webapp/host_setup_dialog.js26
-rw-r--r--remoting/webapp/manifest.json.jinja240
-rw-r--r--remoting/webapp/remoting.js9
5 files changed, 58 insertions, 126 deletions
diff --git a/remoting/webapp/host_install_dialog.js b/remoting/webapp/host_install_dialog.js
index 448b2d7..37e5e6b 100644
--- a/remoting/webapp/host_install_dialog.js
+++ b/remoting/webapp/host_install_dialog.js
@@ -27,8 +27,8 @@ remoting.HostInstallDialog = function() {
this.continueInstallButton_.disabled = false;
this.cancelInstallButton_.disabled = false;
- /** @param {remoting.HostController.AsyncResult} asyncResult @private*/
- this.onDoneHandler_ = function(asyncResult) {}
+ /** @private*/
+ this.onDoneHandler_ = function() {}
/** @param {remoting.Error} error @private */
this.onErrorHandler_ = function(error) {}
@@ -49,63 +49,41 @@ remoting.HostInstallDialog.hostDownloadUrls = {
/**
* Starts downloading host components and shows installation prompt.
*
- * @param {remoting.HostPlugin} hostPlugin Used to install the host on Windows.
- * @param {function(remoting.HostController.AsyncResult):void} onDone Callback
- * called when user clicks Ok, presumably after installing the host. The
- * handler must verify that the host has been installed and call tryAgain()
- * otherwise.
+ * @param {function():void} onDone Callback called when user clicks Ok,
+ * presumably after installing the host. The handler must verify that the host
+ * has been installed and call tryAgain() otherwise.
* @param {function(remoting.Error):void} onError Callback called when user
* clicks Cancel button or there is some other unexpected error.
* @return {void}
*/
-remoting.HostInstallDialog.prototype.show = function(
- hostPlugin, onDone, onError) {
- // On Windows, host installation is automatic (handled by the NPAPI plugin)
- // and we don't show the dialog. On Mac and Linux, we show the dialog and the
- // user is expected to manually install the host before clicking OK.
- // TODO (weitaosu): Make host installation automatic for IT2Me (like Me2Me) on
- // Windows. Currently hostController is always null for IT2Me.
- if (navigator.platform == 'Win32' && hostPlugin != null) {
- // Currently we show two dialogs (each with a UAC prompt) when a user
- // enables the host for the first time, one for installing the host (by the
- // plugin) and the other for starting the host (by the native messaging
- // host). We'd like to reduce it to one but don't have a good solution
- // right now.
- // We also show the same message on the two dialogs because. We don't want
- // to confuse the user by saying "Installing Remote Desktop" because in
- // their mind "Remote Desktop" (the webapp) has already been installed.
- remoting.showSetupProcessingMessage(/*i18n-content*/'HOST_SETUP_STARTING');
-
- hostPlugin.installHost(onDone);
+remoting.HostInstallDialog.prototype.show = function(onDone, onError) {
+ this.continueInstallButton_.addEventListener(
+ 'click', this.onOkClickedHandler_, false);
+ this.cancelInstallButton_.addEventListener(
+ 'click', this.onCancelClickedHandler_, false);
+ remoting.setMode(remoting.AppMode.HOST_INSTALL_PROMPT);
+
+ var hostPackageUrl =
+ remoting.HostInstallDialog.hostDownloadUrls[navigator.platform];
+ if (hostPackageUrl === undefined) {
+ this.onErrorHandler_(remoting.Error.CANCELLED);
+ return;
+ }
+
+ // Start downloading the package.
+ if (remoting.isAppsV2) {
+ // TODO(jamiewalch): Use chrome.downloads when it is available to
+ // apps v2 (http://crbug.com/174046)
+ window.open(hostPackageUrl);
} else {
- this.continueInstallButton_.addEventListener(
- 'click', this.onOkClickedHandler_, false);
- this.cancelInstallButton_.addEventListener(
- 'click', this.onCancelClickedHandler_, false);
- remoting.setMode(remoting.AppMode.HOST_INSTALL_PROMPT);
-
- var hostPackageUrl =
- remoting.HostInstallDialog.hostDownloadUrls[navigator.platform];
- if (hostPackageUrl === undefined) {
- this.onErrorHandler_(remoting.Error.CANCELLED);
- return;
- }
-
- // Start downloading the package.
- if (remoting.isAppsV2) {
- // TODO(jamiewalch): Use chrome.downloads when it is available to
- // apps v2 (http://crbug.com/174046)
- window.open(hostPackageUrl);
- } else {
- window.location = hostPackageUrl;
- }
-
- /** @type {function(remoting.HostController.AsyncResult):void} */
- this.onDoneHandler_ = onDone;
-
- /** @type {function(remoting.Error):void} */
- this.onErrorHandler_ = onError;
+ window.location = hostPackageUrl;
}
+
+ /** @type {function():void} */
+ this.onDoneHandler_ = onDone;
+
+ /** @type {function(remoting.Error):void} */
+ this.onErrorHandler_ = onError;
}
/**
@@ -129,7 +107,7 @@ remoting.HostInstallDialog.prototype.onOkClicked_ = function() {
this.continueInstallButton_.disabled = true;
this.cancelInstallButton_.disabled = true;
- this.onDoneHandler_(remoting.HostController.AsyncResult.OK);
+ this.onDoneHandler_();
}
remoting.HostInstallDialog.prototype.onCancelClicked_ = function() {
diff --git a/remoting/webapp/host_screen.js b/remoting/webapp/host_screen.js
index 71446ae..285fa99 100644
--- a/remoting/webapp/host_screen.js
+++ b/remoting/webapp/host_screen.js
@@ -44,26 +44,10 @@ remoting.tryShare = function() {
document.getElementById('host-plugin-container'));
}
- /** @param {remoting.HostController.AsyncResult} asyncResult */
- var onHostInstalled = function(asyncResult) {
- if (asyncResult == remoting.HostController.AsyncResult.OK) {
- tryInitializeDispatcher();
- } else if (asyncResult == remoting.HostController.AsyncResult.CANCELLED) {
- onInstallError(remoting.Error.CANCELLED);
- } else {
- onInstallError(remoting.Error.UNEXPECTED);
- }
- };
-
var onDispatcherInitialized = function () {
if (hostDispatcher.usingNpapi()) {
hostInstallDialog = new remoting.HostInstallDialog();
- if (navigator.platform == 'Win32') {
- hostInstallDialog.show(
- hostDispatcher.getNpapiHost(), onHostInstalled, onInstallError);
- } else {
- hostInstallDialog.show(null, onHostInstalled, onInstallError);
- }
+ hostInstallDialog.show(tryInitializeDispatcher, onInstallError);
} else {
// Host alrady installed.
remoting.startHostUsingDispatcher_(hostDispatcher);
@@ -82,10 +66,9 @@ remoting.tryShare = function() {
if (hostInstallDialog == null) {
hostInstallDialog = new remoting.HostInstallDialog();
- (/** @type {remoting.HostInstallDialog} */ hostInstallDialog).show(
- null, onHostInstalled, onInstallError);
+ hostInstallDialog.show(tryInitializeDispatcher, onInstallError);
} else {
- (/** @type {remoting.HostInstallDialog} */ hostInstallDialog).tryAgain();
+ hostInstallDialog.tryAgain();
}
};
diff --git a/remoting/webapp/host_setup_dialog.js b/remoting/webapp/host_setup_dialog.js
index bf950ba..4697c900 100644
--- a/remoting/webapp/host_setup_dialog.js
+++ b/remoting/webapp/host_setup_dialog.js
@@ -353,15 +353,8 @@ remoting.HostSetupDialog.prototype.installHost_ = function() {
that.updateState_();
};
- /** @param {remoting.HostController.AsyncResult} asyncResult */
- var onDone = function(asyncResult) {
- if (asyncResult == remoting.HostController.AsyncResult.OK) {
- that.hostController_.getLocalHostState(onHostState);
- } else if (asyncResult == remoting.HostController.AsyncResult.CANCELLED) {
- onError(remoting.Error.CANCELLED);
- } else {
- onError(remoting.Error.UNEXPECTED);
- }
+ var onDone = function() {
+ that.hostController_.getLocalHostState(onHostState);
};
/** @param {remoting.HostController.State} state */
@@ -374,23 +367,14 @@ remoting.HostSetupDialog.prototype.installHost_ = function() {
that.flow_.switchToNextStep();
that.updateState_();
} else {
- // For Mac/Linux, prompt the user again if the host is not installed.
- if (navigator.platform != 'Win32') {
- hostInstallDialog.tryAgain();
- } else {
- // For Windows, report an error in the unlikely case that
- // HostController.installHost reports AsyncResult.OK but the host is not
- // installed.
- console.error('The chromoting host is not installed.');
- onError(remoting.Error.UNEXPECTED);
- }
+ // Prompt the user again if the host is not installed.
+ hostInstallDialog.tryAgain();
}
};
/** @type {remoting.HostInstallDialog} */
var hostInstallDialog = new remoting.HostInstallDialog();
- hostInstallDialog.show(
- this.hostController_.getDispatcher().getNpapiHost(), onDone, onError);
+ hostInstallDialog.show(onDone, onError);
}
/**
diff --git a/remoting/webapp/manifest.json.jinja2 b/remoting/webapp/manifest.json.jinja2
index 81c676b..ed3907c 100644
--- a/remoting/webapp/manifest.json.jinja2
+++ b/remoting/webapp/manifest.json.jinja2
@@ -42,6 +42,19 @@
"optional_permissions": [
"<all_urls>"
],
+
+{% if webapp_type != 'v1' %}
+ "oauth2": {
+ "client_id": "{{ REMOTING_IDENTITY_API_CLIENT_ID }}",
+ "scopes": [
+ "https://www.googleapis.com/auth/chromoting https://www.googleapis.com/auth/googletalk https://www.googleapis.com/auth/userinfo#email"
+ ]
+ },
+ "sandbox": {
+ "pages": [ "wcs_sandbox.html" ]
+ },
+{% endif %}
+
"permissions": [
"{{ OAUTH2_ACCOUNTS_HOST }}/*",
"{{ OAUTH2_API_BASE_URL }}/*",
@@ -72,30 +85,5 @@
]
}
{% endif %}
- ],
-
-{% if webapp_type == 'v1' %}
- "plugins": [
- { "path": "remoting_host_plugin.dll", "public": false },
- { "path": "libremoting_host_plugin.ia32.so", "public": false },
- { "path": "libremoting_host_plugin.x64.so", "public": false },
- { "path": "remoting_host_plugin.plugin", "public": false }
- ],
- "requirements": {
- "plugins": {
- "npapi": false
- }
- }
-{% else %}
- "oauth2": {
- "client_id": "{{ REMOTING_IDENTITY_API_CLIENT_ID }}",
- "scopes": [
- "https://www.googleapis.com/auth/chromoting https://www.googleapis.com/auth/googletalk https://www.googleapis.com/auth/userinfo#email"
- ]
- },
- "sandbox": {
- "pages": [ "wcs_sandbox.html" ]
- }
-{% endif %}
-
+ ]
}
diff --git a/remoting/webapp/remoting.js b/remoting/webapp/remoting.js
index adc26a7..52357f7 100644
--- a/remoting/webapp/remoting.js
+++ b/remoting/webapp/remoting.js
@@ -190,15 +190,14 @@ remoting.createNpapiPlugin = function(container) {
// Hiding the plugin means it doesn't load, so make it size zero instead.
plugin.width = 0;
plugin.height = 0;
- container.appendChild(plugin);
// Verify if the plugin was loaded successfully.
- if (!plugin.hasOwnProperty('REQUESTED_ACCESS_CODE')) {
- container.removeChild(plugin);
- return null;
+ if (plugin.hasOwnProperty('REQUESTED_ACCESS_CODE')) {
+ container.appendChild(plugin);
+ return /** @type {remoting.HostPlugin} */ (plugin);
}
- return /** @type {remoting.HostPlugin} */ (plugin);
+ return null;
};
/**