summaryrefslogtreecommitdiffstats
path: root/remoting/webapp/base
diff options
context:
space:
mode:
authorsergeyu <sergeyu@chromium.org>2015-11-03 14:31:00 -0800
committerCommit bot <commit-bot@chromium.org>2015-11-03 22:31:50 +0000
commitec77d854a19b75584ca9c0ccc243366d1b776f34 (patch)
tree627e437407303741858632e29cc0c0a817c2717a /remoting/webapp/base
parent9024e5102a47625ff857d54bf69007e1806672a1 (diff)
downloadchromium_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.js2
-rw-r--r--remoting/webapp/base/js/client_session.js28
-rw-r--r--remoting/webapp/base/js/error.js6
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',