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

Unified Diff: remoting/webapp/crd/js/fallback_signal_strategy.js

Issue 855003008: Log signal strategy progress to server. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 11 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
« no previous file with comments | « no previous file | remoting/webapp/crd/js/log_to_server.js » ('j') | remoting/webapp/crd/js/log_to_server.js » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/webapp/crd/js/fallback_signal_strategy.js
diff --git a/remoting/webapp/crd/js/fallback_signal_strategy.js b/remoting/webapp/crd/js/fallback_signal_strategy.js
index bb58e4d45ae63da3adcf558a4581b61009ffb3bd..a8926034d160488eb7d8b06faf0677359129d74d 100644
--- a/remoting/webapp/crd/js/fallback_signal_strategy.js
+++ b/remoting/webapp/crd/js/fallback_signal_strategy.js
@@ -19,15 +19,12 @@ var remoting = remoting || {};
* function(remoting.SignalStrategy.State)
* ):remoting.SignalStrategy} secondaryFactory
* @param {function(remoting.SignalStrategy.State):void} onStateChangedCallback
- * @param {function(remoting.FallbackSignalStrategy.Progress)}
- * onProgressCallback
*
* @implements {remoting.SignalStrategy}
* @constructor
*/
remoting.FallbackSignalStrategy = function(
- primaryFactory, secondaryFactory,
- onStateChangedCallback, onProgressCallback) {
+ primaryFactory, secondaryFactory, onStateChangedCallback) {
/**
* @type {remoting.SignalStrategy}
* @private
@@ -47,12 +44,6 @@ remoting.FallbackSignalStrategy = function(
this.onStateChangedCallback_ = onStateChangedCallback;
/**
- * @type {function(remoting.FallbackSignalStrategy.Progress)}
- * @private
- */
- this.onProgressCallback_ = onProgressCallback;
-
- /**
* @type {?function(Element):void}
* @private
*/
@@ -114,6 +105,24 @@ remoting.FallbackSignalStrategy = function(
* @private
*/
this.primaryConnectTimerId_ = 0;
+
+ /**
+ * @type {remoting.LogToServer}
+ * @private
+ */
+ this.logToServer_ = null;
+
+ /**
+ * @type {Array.<{progress: remoting.FallbackSignalStrategy.Progress,
+ * elapsed: number}>}
+ */
+ this.connectionSetupResults_ = [];
+
+ /**
+ * @type {number}
+ * @private
+ */
+ this.startTime_ = 0;
};
/**
@@ -162,6 +171,7 @@ remoting.FallbackSignalStrategy.prototype.connect =
this.username_ = username;
this.authToken_ = authToken;
this.state_ = this.State.PRIMARY_PENDING;
+ this.startTime_ = new Date().getTime();
this.primary_.setIncomingStanzaCallback(this.onIncomingStanzaCallback_);
this.primary_.connect(server, username, authToken);
this.primaryConnectTimerId_ =
@@ -177,6 +187,28 @@ remoting.FallbackSignalStrategy.prototype.sendMessage = function(message) {
this.getConnectedSignalStrategy_().sendMessage(message);
};
+/**
+ * Send any messages accumulated during connection set-up.
+ *
+ * @param {remoting.LogToServer} logToServer The LogToServer instance for the
+ * connection.
+ */
+remoting.FallbackSignalStrategy.prototype.sendConnectionSetupResults =
+ function(logToServer) {
+ this.logToServer_ = logToServer;
+ this.sendConnectionSetupResultsInternal_();
+}
+
+remoting.FallbackSignalStrategy.prototype.sendConnectionSetupResultsInternal_ =
+ function() {
+ for (var i = 0; i < this.connectionSetupResults_.length; ++i) {
+ var result = this.connectionSetupResults_[i];
+ this.logToServer_.logSignalStrategyProgress(result.progress,
+ result.elapsed);
+ }
+ this.connectionSetupResults_ = [];
+};
+
/** @return {remoting.SignalStrategy.State} Current state */
remoting.FallbackSignalStrategy.prototype.getState = function() {
return (this.externalState_ === null)
@@ -230,11 +262,11 @@ remoting.FallbackSignalStrategy.prototype.onPrimaryStateChanged_ =
case remoting.SignalStrategy.State.CONNECTED:
if (this.state_ == this.State.PRIMARY_PENDING) {
window.clearTimeout(this.primaryConnectTimerId_);
- this.onProgressCallback_(
+ this.updateProgress_(
remoting.FallbackSignalStrategy.Progress.PRIMARY_SUCCEEDED);
this.state_ = this.State.PRIMARY_SUCCEEDED;
} else {
- this.onProgressCallback_(
+ this.updateProgress_(
remoting.FallbackSignalStrategy.Progress.PRIMARY_SUCCEEDED_LATE);
}
break;
@@ -242,11 +274,11 @@ remoting.FallbackSignalStrategy.prototype.onPrimaryStateChanged_ =
case remoting.SignalStrategy.State.FAILED:
if (this.state_ == this.State.PRIMARY_PENDING) {
window.clearTimeout(this.primaryConnectTimerId_);
- this.onProgressCallback_(
+ this.updateProgress_(
remoting.FallbackSignalStrategy.Progress.PRIMARY_FAILED);
this.connectSecondary_();
} else {
- this.onProgressCallback_(
+ this.updateProgress_(
remoting.FallbackSignalStrategy.Progress.PRIMARY_FAILED_LATE);
}
return; // Don't notify the external callback
@@ -267,13 +299,13 @@ remoting.FallbackSignalStrategy.prototype.onSecondaryStateChanged_ =
function(state) {
switch (state) {
case remoting.SignalStrategy.State.CONNECTED:
- this.onProgressCallback_(
+ this.updateProgress_(
remoting.FallbackSignalStrategy.Progress.SECONDARY_SUCCEEDED);
this.state_ = this.State.SECONDARY_SUCCEEDED;
break;
case remoting.SignalStrategy.State.FAILED:
- this.onProgressCallback_(
+ this.updateProgress_(
remoting.FallbackSignalStrategy.Progress.SECONDARY_FAILED);
this.state_ = this.State.SECONDARY_FAILED;
break;
@@ -323,7 +355,22 @@ remoting.FallbackSignalStrategy.prototype.connectSecondary_ = function() {
* @private
*/
remoting.FallbackSignalStrategy.prototype.onPrimaryTimeout_ = function() {
- this.onProgressCallback_(
+ this.updateProgress_(
remoting.FallbackSignalStrategy.Progress.PRIMARY_TIMED_OUT);
this.connectSecondary_();
};
+
+/**
+ * @param {remoting.FallbackSignalStrategy.Progress} progress
+ * @private
+ */
+remoting.FallbackSignalStrategy.prototype.updateProgress_ = function(progress) {
+ console.log('FallbackSignalStrategy progress: ' + progress);
+ this.connectionSetupResults_.push({
+ 'progress': progress,
+ 'elapsed': new Date().getTime() - this.startTime_
+ });
+ if (this.logToServer_) {
+ this.sendConnectionSetupResultsInternal_();
+ }
+};
« no previous file with comments | « no previous file | remoting/webapp/crd/js/log_to_server.js » ('j') | remoting/webapp/crd/js/log_to_server.js » ('J')

Powered by Google App Engine
This is Rietveld 408576698