Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1157)

Unified Diff: remoting/webapp/client_session.js

Issue 10825187: Suppress "errors" that aren't really errors. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Added JSCompiler hints. Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: remoting/webapp/client_session.js
diff --git a/remoting/webapp/client_session.js b/remoting/webapp/client_session.js
index da8051e452e7e987b4efee4a77d271c2de0c6f40..f11f52d4162dc4d92126a2b848e708da5518b530 100644
--- a/remoting/webapp/client_session.js
+++ b/remoting/webapp/client_session.js
@@ -94,6 +94,13 @@ remoting.ClientSession = function(hostJid, hostPublicKey, sharedSecret,
this.fullScreen_.addEventListener('click', this.callToggleFullScreen_, false);
/** @type {number?} @private */
this.bumpScrollTimer_ = null;
+ /**
+ * Allow error reporting to be suppressed in situations where it would not
+ * be useful, for example, when the device is offline.
+ *
+ * @type {boolean} @private
+ */
+ this.logErrors_ = true;
Wez 2012/08/07 00:01:00 There's a danger that we suppress logging and miss
Jamie 2012/08/07 00:37:04 We still log eof-session, and it will still have t
};
// Note that the positive values in both of these enums are copied directly
@@ -521,8 +528,15 @@ remoting.ClientSession.prototype.setState_ = function(newState) {
if (this.onStateChange) {
this.onStateChange(oldState, newState);
}
- this.logToServer.logClientSessionStateChange(this.state, this.error,
- this.mode);
+ // If connection errors are being suppressed from the logs, translate
+ // FAILED to CLOSED here. This ensures that the duration is still logged.
+ var state = this.state;
+ if (this.state == remoting.ClientSession.State.FAILED &&
+ !this.logErrors_) {
+ console.log('Suppressing error.');
+ state = remoting.ClientSession.State.CLOSED;
+ }
+ this.logToServer.logClientSessionStateChange(state, this.error, this.mode);
};
/**
@@ -649,6 +663,17 @@ remoting.ClientSession.prototype.logStatistics = function(stats) {
};
/**
+ * Enable or disable logging of connection errors. For example, if attempting
+ * a connection using a cached JID, errors should not be logged because the
+ * JID will be refreshed and the connection retried.
+ *
+ * @param {boolean} enable True to log errors; false to suppress them.
+ */
+remoting.ClientSession.prototype.logErrors = function(enable) {
+ this.logErrors_ = enable;
+};
+
+/**
* Toggles between full-screen and windowed mode.
* @return {void} Nothing.
* @private

Powered by Google App Engine
This is Rietveld 408576698