diff options
author | sergeyu <sergeyu@chromium.org> | 2015-11-03 14:31:00 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-11-03 22:31:50 +0000 |
commit | ec77d854a19b75584ca9c0ccc243366d1b776f34 (patch) | |
tree | 627e437407303741858632e29cc0c0a817c2717a /remoting/webapp/base | |
parent | 9024e5102a47625ff857d54bf69007e1806672a1 (diff) | |
download | chromium_src-ec77d854a19b75584ca9c0ccc243366d1b776f34.zip chromium_src-ec77d854a19b75584ca9c0ccc243366d1b776f34.tar.gz chromium_src-ec77d854a19b75584ca9c0ccc243366d1b776f34.tar.bz2 |
Fix chromoting host to report error when closing connection.
Previously host would often close session without reporting the reason
to the client. Added two new error codes and updated the host to report
session termination reason when appropriate.
BUG=548261
Committed: https://crrev.com/09750216bef8bc9f2953e4eee9f66801bf034fa4
Cr-Commit-Position: refs/heads/master@{#357215}
Review URL: https://codereview.chromium.org/1430503002
Cr-Commit-Position: refs/heads/master@{#357652}
Diffstat (limited to 'remoting/webapp/base')
-rw-r--r-- | remoting/webapp/base/js/chromoting_event.js | 2 | ||||
-rw-r--r-- | remoting/webapp/base/js/client_session.js | 28 | ||||
-rw-r--r-- | remoting/webapp/base/js/error.js | 6 |
3 files changed, 25 insertions, 11 deletions
diff --git a/remoting/webapp/base/js/chromoting_event.js b/remoting/webapp/base/js/chromoting_event.js index fad1074..1842e36 100644 --- a/remoting/webapp/base/js/chromoting_event.js +++ b/remoting/webapp/base/js/chromoting_event.js @@ -264,6 +264,8 @@ remoting.ChromotingEvent.ConnectionError = { UNEXPECTED: 13, CLIENT_SUSPENDED: 14, NACL_DISABLED: 15, + MAX_SESSION_LENGTH: 16, + HOST_CONFIGURATION_ERROR: 17, }; /** @enum {number} */ diff --git a/remoting/webapp/base/js/client_session.js b/remoting/webapp/base/js/client_session.js index f5bb9ba..7b3f0cb 100644 --- a/remoting/webapp/base/js/client_session.js +++ b/remoting/webapp/base/js/client_session.js @@ -178,7 +178,9 @@ remoting.ClientSession.ConnectionError = { SESSION_REJECTED: 2, INCOMPATIBLE_PROTOCOL: 3, NETWORK_FAILURE: 4, - HOST_OVERLOAD: 5 + HOST_OVERLOAD: 5, + MAX_SESSION_LENGTH: 6, + HOST_CONFIGURATION_ERROR: 7 }; /** @@ -456,24 +458,28 @@ remoting.ClientSession.prototype.onConnectionStatusUpdate = if (status == remoting.ClientSession.State.FAILED) { switch (error) { case remoting.ClientSession.ConnectionError.HOST_IS_OFFLINE: - this.error_ = new remoting.Error( - remoting.Error.Tag.HOST_IS_OFFLINE); + this.error_ = new remoting.Error(remoting.Error.Tag.HOST_IS_OFFLINE); break; case remoting.ClientSession.ConnectionError.SESSION_REJECTED: - this.error_ = new remoting.Error( - remoting.Error.Tag.INVALID_ACCESS_CODE); + this.error_ = + new remoting.Error(remoting.Error.Tag.INVALID_ACCESS_CODE); break; case remoting.ClientSession.ConnectionError.INCOMPATIBLE_PROTOCOL: - this.error_ = new remoting.Error( - remoting.Error.Tag.INCOMPATIBLE_PROTOCOL); + this.error_ = + new remoting.Error(remoting.Error.Tag.INCOMPATIBLE_PROTOCOL); break; case remoting.ClientSession.ConnectionError.NETWORK_FAILURE: - this.error_ = new remoting.Error( - remoting.Error.Tag.P2P_FAILURE); + this.error_ = new remoting.Error(remoting.Error.Tag.P2P_FAILURE); break; case remoting.ClientSession.ConnectionError.HOST_OVERLOAD: - this.error_ = new remoting.Error( - remoting.Error.Tag.HOST_OVERLOAD); + this.error_ = new remoting.Error(remoting.Error.Tag.HOST_OVERLOAD); + break; + case remoting.ClientSession.ConnectionError.MAX_SESSION_LENGTH: + this.error_ = new remoting.Error(remoting.Error.Tag.MAX_SESSION_LENGTH); + break; + case remoting.ClientSession.ConnectionError.HOST_CONFIGURATION_ERROR: + this.error_ = + new remoting.Error(remoting.Error.Tag.HOST_CONFIGURATION_ERROR); break; default: this.error_ = remoting.Error.unexpected(); diff --git a/remoting/webapp/base/js/error.js b/remoting/webapp/base/js/error.js index 23ee1f8..697fde7 100644 --- a/remoting/webapp/base/js/error.js +++ b/remoting/webapp/base/js/error.js @@ -62,6 +62,10 @@ remoting.Error.prototype.toConnectionError = function() { return ConnectionError.NETWORK_FAILURE; case Tag.HOST_OVERLOAD: return ConnectionError.HOST_OVERLOAD; + case Tag.MAX_SESSION_LENGTH: + return ConnectionError.MAX_SESSION_LENGTH; + case Tag.HOST_CONFIGURATION_ERROR: + return ConnectionError.HOST_CONFIGURATION_ERROR; case Tag.P2P_FAILURE: return ConnectionError.P2P_FAILURE; case Tag.NACL_DISABLED: @@ -170,6 +174,8 @@ remoting.Error.Tag = { BAD_VERSION: /*i18n-content*/ 'ERROR_BAD_PLUGIN_VERSION', NETWORK_FAILURE: /*i18n-content*/ 'ERROR_NETWORK_FAILURE', HOST_OVERLOAD: /*i18n-content*/ 'ERROR_HOST_OVERLOAD', + MAX_SESSION_LENGTH: /*i18n-content*/ 'ERROR_MAX_SESSION_LENGTH', + HOST_CONFIGURATION_ERROR: /*i18n-content*/ 'ERROR_HOST_CONFIGURATION_ERROR', UNEXPECTED: /*i18n-content*/ 'ERROR_UNEXPECTED', SERVICE_UNAVAILABLE: /*i18n-content*/ 'ERROR_SERVICE_UNAVAILABLE', NOT_AUTHENTICATED: /*i18n-content*/ 'ERROR_NOT_AUTHENTICATED', |