Chromium Code Reviews| Index: remoting/webapp/host_screen.js |
| diff --git a/remoting/webapp/host_screen.js b/remoting/webapp/host_screen.js |
| index 45e9975bbf422a4c51c497df015241398d8ea874..71446ae86ca410ee005dca72efc59ea37d514dd2 100644 |
| --- a/remoting/webapp/host_screen.js |
| +++ b/remoting/webapp/host_screen.js |
| @@ -38,15 +38,37 @@ remoting.tryShare = function() { |
| onDispatcherInitializationFailed); |
| } |
| - /** @return {remoting.HostPlugin} */ |
| + /** @return {remoting.HostPlugin} */ |
| var createPluginForIt2Me = function() { |
| return remoting.createNpapiPlugin( |
| 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); |
|
Sergey Ulanov
2014/05/21 03:21:59
Why doesn't HostInstallDialog call onInstallError(
weitao
2014/05/21 18:04:22
Good point. Will fix this.
On 2014/05/21 03:21:59
|
| + } else { |
| + onInstallError(remoting.Error.UNEXPECTED); |
| + } |
| + }; |
| + |
| var onDispatcherInitialized = function () { |
| - remoting.startHostUsingDispatcher_(hostDispatcher); |
| - } |
| + if (hostDispatcher.usingNpapi()) { |
|
Sergey Ulanov
2014/05/21 03:21:59
nit: This wouldn't be necessary if HostIt2MeDispat
weitao
2014/05/21 18:04:22
Yes this is planned in my next CL. :)
On 2014/05/
|
| + hostInstallDialog = new remoting.HostInstallDialog(); |
| + if (navigator.platform == 'Win32') { |
| + hostInstallDialog.show( |
| + hostDispatcher.getNpapiHost(), onHostInstalled, onInstallError); |
| + } else { |
| + hostInstallDialog.show(null, onHostInstalled, onInstallError); |
| + } |
| + } else { |
| + // Host alrady installed. |
| + remoting.startHostUsingDispatcher_(hostDispatcher); |
| + } |
| + }; |
| /** @param {remoting.Error} error */ |
| var onDispatcherInitializationFailed = function(error) { |
| @@ -55,29 +77,20 @@ remoting.tryShare = function() { |
| return; |
| } |
| - // If we failed to initialize dispatcher then prompt the user to install the |
| - // host. |
| + // If we failed to initialize the dispatcher then prompt the user to install |
| + // the host manually. |
| if (hostInstallDialog == null) { |
| - var onDone = function(asyncResult) { |
| - // TODO (weitaosu): Ignore asyncResult for now because it is not set |
| - // during manual host installation. We should fix it after switching |
| - // to automatic host installation on Windows. |
| - tryInitializeDispatcher(); |
| - }; |
| - |
| hostInstallDialog = new remoting.HostInstallDialog(); |
| (/** @type {remoting.HostInstallDialog} */ hostInstallDialog).show( |
| - null, |
| - onDone, |
| - onInstallPromptError); |
| + null, onHostInstalled, onInstallError); |
| } else { |
| (/** @type {remoting.HostInstallDialog} */ hostInstallDialog).tryAgain(); |
| } |
| - } |
| + }; |
| /** @param {remoting.Error} error */ |
| - var onInstallPromptError = function(error) { |
| + var onInstallError = function(error) { |
| if (error == remoting.Error.CANCELLED) { |
| remoting.setMode(remoting.AppMode.HOME); |
| } else { |