Index: remoting/webapp/crd/js/host_installer.js |
diff --git a/remoting/webapp/crd/js/host_installer.js b/remoting/webapp/crd/js/host_installer.js |
index 8ae9b36b659c14631339de4fb9eff37ed88d4ff8..6f1f310639ba2d6372828f6b6f44561c5242644f 100644 |
--- a/remoting/webapp/crd/js/host_installer.js |
+++ b/remoting/webapp/crd/js/host_installer.js |
@@ -26,6 +26,8 @@ |
/** @suppress {duplicate} */ |
var remoting = remoting || {}; |
+(function() { |
+ |
/** |
* @constructor |
*/ |
@@ -47,7 +49,7 @@ remoting.HostInstaller = function() { |
* @return {Promise} The promise will resolve to a boolean value indicating |
* whether the host is installed or not. |
*/ |
-remoting.HostInstaller.prototype.isInstalled = function() { |
+remoting.HostInstaller.isInstalled = function() { |
// Always do a fresh check as we don't get notified when the host is |
// uninstalled. |
@@ -78,28 +80,39 @@ remoting.HostInstaller.prototype.isInstalled = function() { |
}); |
}; |
+/** @type {Object.<string,string>} */ |
+var HOST_DOWNLOAD_URLS = { |
+ 'Win32': 'http://dl.google.com/dl/edgedl/chrome-remote-desktop/' + |
+ 'chromeremotedesktophost.msi', |
+ 'Win64': 'http://dl.google.com/dl/edgedl/chrome-remote-desktop/' + |
+ 'chromeremotedesktophost.msi', |
+ 'MacIntel': 'https://dl.google.com/chrome-remote-desktop/' + |
+ 'chromeremotedesktop.dmg', |
+ 'Linux x86_64': 'https://dl.google.com/linux/direct/' + |
+ 'chrome-remote-desktop_current_amd64.deb', |
+ 'Linux i386': 'https://dl.google.com/linux/direct/' + |
+ 'chrome-remote-desktop_current_i386.deb', |
+ 'Linux i686': 'https://dl.google.com/linux/direct/' + |
+ 'chrome-remote-desktop_current_i386.deb' |
+}; |
+ |
+/** |
+ * Returns true if the host is installable on the current platform. |
+ * @returns {boolean} |
+ */ |
+remoting.HostInstaller.canInstall = function() { |
+ return !!HOST_DOWNLOAD_URLS[navigator.platform]; |
+}; |
+ |
/** |
* @throws {Error} Throws if there is no matching host binary for the current |
* platform. |
*/ |
remoting.HostInstaller.prototype.download = function() { |
- /** @type {Object.<string,string>} */ |
- var hostDownloadUrls = { |
- 'Win32' : 'http://dl.google.com/dl/edgedl/chrome-remote-desktop/' + |
- 'chromeremotedesktophost.msi', |
- 'Win64' : 'http://dl.google.com/dl/edgedl/chrome-remote-desktop/' + |
- 'chromeremotedesktophost.msi', |
- 'MacIntel' : 'https://dl.google.com/chrome-remote-desktop/' + |
- 'chromeremotedesktop.dmg', |
- 'Linux x86_64' : 'https://dl.google.com/linux/direct/' + |
- 'chrome-remote-desktop_current_amd64.deb', |
- 'Linux i386' : 'https://dl.google.com/linux/direct/' + |
- 'chrome-remote-desktop_current_i386.deb' |
- }; |
- |
- var hostPackageUrl = hostDownloadUrls[navigator.platform]; |
+ var hostPackageUrl = HOST_DOWNLOAD_URLS[navigator.platform]; |
if (hostPackageUrl === undefined) { |
- throw new Error(remoting.Error.CANCELLED); |
+ console.error("Tried to install host on " + navigator.platform); |
+ throw new Error(remoting.Error.UNEXPECTED); |
} |
// Start downloading the package. |
@@ -122,7 +135,7 @@ remoting.HostInstaller.prototype.downloadAndWaitForInstall = function() { |
*/ |
var CHECK_INSTALL_INTERVAL_IN_MILLISECONDS = 1000; |
- return this.isInstalled().then( |
+ return remoting.HostInstaller.isInstalled().then( |
/** @param {boolean} installed */ |
function(installed){ |
if (installed) { |
@@ -135,7 +148,7 @@ remoting.HostInstaller.prototype.downloadAndWaitForInstall = function() { |
function(resolve){ |
that.download(); |
that.checkInstallIntervalId_ = window.setInterval(function() { |
- that.isInstalled().then( |
+ remoting.HostInstaller.isInstalled().then( |
/** @param {boolean} installed */ |
function(installed) { |
if (installed) { |
@@ -163,3 +176,5 @@ remoting.HostInstaller.prototype.cancel = function() { |
} |
this.downloadAndWaitForInstallPromise_ = null; |
}; |
+ |
+})(); |