OLD | NEW |
---|---|
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 (function() { | 5 (function() { |
6 | 6 |
7 'use strict'; | 7 'use strict'; |
8 | 8 |
9 var ControllableSignalStrategy = function(jid, stateChangeCallback) { | 9 var ControllableSignalStrategy = function(jid, stateChangeCallback) { |
10 this.jid = jid; | 10 this.jid = jid; |
11 this.stateChangeCallback_ = stateChangeCallback; | 11 this.stateChangeCallback_ = stateChangeCallback; |
12 this.state_ = null; | 12 this.state_ = null; |
13 this.onIncomingStanzaCallback = function() {}; | 13 this.onIncomingStanzaCallback = function() {}; |
14 this.dispose = sinon.spy(); | 14 this.dispose = sinon.spy(); |
15 this.connect = sinon.spy(); | 15 this.connect = sinon.spy(); |
16 this.sendMessage = sinon.spy(); | 16 this.sendMessage = sinon.spy(); |
17 this.sendConnectionSetupResults = sinon.spy(); | |
17 }; | 18 }; |
18 | 19 |
19 ControllableSignalStrategy.prototype.setIncomingStanzaCallback = | 20 ControllableSignalStrategy.prototype.setIncomingStanzaCallback = |
20 function(onIncomingStanzaCallback) { | 21 function(onIncomingStanzaCallback) { |
21 this.onIncomingStanzaCallback = | 22 this.onIncomingStanzaCallback = |
22 onIncomingStanzaCallback ? onIncomingStanzaCallback | 23 onIncomingStanzaCallback ? onIncomingStanzaCallback |
23 : function() {}; | 24 : function() {}; |
24 } | 25 } |
25 | 26 |
26 ControllableSignalStrategy.prototype.getState = function(message) { | 27 ControllableSignalStrategy.prototype.getState = function(message) { |
(...skipping 24 matching lines...) Expand all Loading... | |
51 equal(strategy.getState(), state); | 52 equal(strategy.getState(), state); |
52 } else { | 53 } else { |
53 ok(!this.externalCallback_.called); | 54 ok(!this.externalCallback_.called); |
54 } | 55 } |
55 }; | 56 }; |
56 | 57 |
57 var createControllableSignalStrategy = function(jid, callback) { | 58 var createControllableSignalStrategy = function(jid, callback) { |
58 return new ControllableSignalStrategy(jid, callback); | 59 return new ControllableSignalStrategy(jid, callback); |
59 }; | 60 }; |
60 | 61 |
62 var MockLogToServer = function() { | |
63 this.logSignalStrategyProgress = sinon.spy(); | |
64 }; | |
65 | |
66 MockLogToServer.prototype.assertProgress = function() { | |
67 equal(this.logSignalStrategyProgress.callCount, arguments.length); | |
68 for (var i = 0; i < arguments.length; ++i) { | |
69 equal(this.logSignalStrategyProgress.getCall(i).args[0], arguments[i]); | |
70 } | |
71 }; | |
72 | |
61 var onStateChange = null; | 73 var onStateChange = null; |
62 var onProgressCallback = null; | |
63 var onIncomingStanzaCallback = null; | 74 var onIncomingStanzaCallback = null; |
64 var strategy = null; | 75 var strategy = null; |
65 var primary = null; | 76 var primary = null; |
66 var secondary = null; | 77 var secondary = null; |
78 var logToServer = null; | |
67 | 79 |
68 module('fallback_signal_strategy', { | 80 module('fallback_signal_strategy', { |
69 setup: function() { | 81 setup: function() { |
70 onStateChange = sinon.spy(); | 82 onStateChange = sinon.spy(); |
71 onProgressCallback = sinon.spy(); | |
72 onIncomingStanzaCallback = sinon.spy(); | 83 onIncomingStanzaCallback = sinon.spy(); |
73 strategy = new remoting.FallbackSignalStrategy( | 84 strategy = new remoting.FallbackSignalStrategy( |
74 createControllableSignalStrategy.bind(null, 'primary-jid'), | 85 createControllableSignalStrategy.bind(null, 'primary-jid'), |
75 createControllableSignalStrategy.bind(null, 'secondary-jid'), | 86 createControllableSignalStrategy.bind(null, 'secondary-jid'), |
76 onStateChange, | 87 onStateChange); |
77 onProgressCallback); | |
78 strategy.setIncomingStanzaCallback(onIncomingStanzaCallback); | 88 strategy.setIncomingStanzaCallback(onIncomingStanzaCallback); |
79 primary = strategy.primary_; | 89 primary = strategy.primary_; |
80 secondary = strategy.secondary_; | 90 secondary = strategy.secondary_; |
91 logToServer = new MockLogToServer(); | |
81 primary.setExternalCallbackForTesting(onStateChange); | 92 primary.setExternalCallbackForTesting(onStateChange); |
82 secondary.setExternalCallbackForTesting(onStateChange); | 93 secondary.setExternalCallbackForTesting(onStateChange); |
83 }, | 94 }, |
84 teardown: function() { | 95 teardown: function() { |
85 onStateChange = null; | 96 onStateChange = null; |
86 onProgressCallback = null; | |
87 onIncomingStanzaCallback = null; | 97 onIncomingStanzaCallback = null; |
88 strategy = null; | 98 strategy = null; |
89 primary = null; | 99 primary = null; |
90 secondary = null; | 100 secondary = null; |
101 logToServer = null; | |
91 }, | 102 }, |
92 // Assert that the progress callback has been called exactly once | |
93 // since the last call, and with the specified state. | |
94 assertProgress: function(state) { | |
95 ok(onProgressCallback.calledOnce); | |
96 ok(onProgressCallback.calledWith(state)); | |
97 onProgressCallback.reset(); | |
98 } | |
99 }); | 103 }); |
100 | 104 |
101 test('primary succeeds; send & receive routed to it', | 105 test('primary succeeds; send & receive routed to it', |
102 function() { | 106 function() { |
103 ok(!onStateChange.called); | 107 ok(!onStateChange.called); |
104 ok(!primary.connect.called); | 108 ok(!primary.connect.called); |
105 strategy.connect('server', 'username', 'authToken'); | 109 strategy.connect('server', 'username', 'authToken'); |
106 ok(primary.connect.calledWith('server', 'username', 'authToken')); | 110 ok(primary.connect.calledWith('server', 'username', 'authToken')); |
107 | 111 |
108 primary.setStateForTesting(remoting.SignalStrategy.State.NOT_CONNECTED, | 112 primary.setStateForTesting(remoting.SignalStrategy.State.NOT_CONNECTED, |
109 true); | 113 true); |
110 primary.setStateForTesting(remoting.SignalStrategy.State.CONNECTING, true); | 114 primary.setStateForTesting(remoting.SignalStrategy.State.CONNECTING, true); |
111 primary.setStateForTesting(remoting.SignalStrategy.State.HANDSHAKE, true); | 115 primary.setStateForTesting(remoting.SignalStrategy.State.HANDSHAKE, true); |
112 | 116 |
113 ok(!onProgressCallback.called); | |
114 primary.setStateForTesting(remoting.SignalStrategy.State.CONNECTED, true); | 117 primary.setStateForTesting(remoting.SignalStrategy.State.CONNECTED, true); |
115 this.assertProgress( | 118 equal(strategy.getJid(), 'primary-jid'); |
119 | |
120 strategy.sendConnectionSetupResults(logToServer); | |
121 logToServer.assertProgress( | |
116 remoting.FallbackSignalStrategy.Progress.PRIMARY_SUCCEEDED); | 122 remoting.FallbackSignalStrategy.Progress.PRIMARY_SUCCEEDED); |
117 equal(strategy.getJid(), 'primary-jid'); | |
118 | 123 |
119 ok(!onIncomingStanzaCallback.called); | 124 ok(!onIncomingStanzaCallback.called); |
120 primary.onIncomingStanzaCallback('test-receive-primary'); | 125 primary.onIncomingStanzaCallback('test-receive-primary'); |
121 secondary.onIncomingStanzaCallback('test-receive-secondary'); | 126 secondary.onIncomingStanzaCallback('test-receive-secondary'); |
122 ok(onIncomingStanzaCallback.calledOnce); | 127 ok(onIncomingStanzaCallback.calledOnce); |
123 ok(onIncomingStanzaCallback.calledWith('test-receive-primary')); | 128 ok(onIncomingStanzaCallback.calledWith('test-receive-primary')); |
124 | 129 |
125 ok(!primary.sendMessage.called); | 130 ok(!primary.sendMessage.called); |
126 strategy.sendMessage('test-send'); | 131 strategy.sendMessage('test-send'); |
127 ok(primary.sendMessage.calledOnce); | 132 ok(primary.sendMessage.calledOnce); |
(...skipping 12 matching lines...) Expand all Loading... | |
140 function() { | 145 function() { |
141 ok(!onStateChange.called); | 146 ok(!onStateChange.called); |
142 ok(!primary.connect.called); | 147 ok(!primary.connect.called); |
143 strategy.connect('server', 'username', 'authToken'); | 148 strategy.connect('server', 'username', 'authToken'); |
144 ok(primary.connect.calledWith('server', 'username', 'authToken')); | 149 ok(primary.connect.calledWith('server', 'username', 'authToken')); |
145 | 150 |
146 primary.setStateForTesting(remoting.SignalStrategy.State.NOT_CONNECTED, | 151 primary.setStateForTesting(remoting.SignalStrategy.State.NOT_CONNECTED, |
147 true); | 152 true); |
148 primary.setStateForTesting(remoting.SignalStrategy.State.CONNECTING, true); | 153 primary.setStateForTesting(remoting.SignalStrategy.State.CONNECTING, true); |
149 | 154 |
150 ok(!onProgressCallback.called); | |
151 ok(!secondary.connect.called); | 155 ok(!secondary.connect.called); |
152 primary.setStateForTesting(remoting.SignalStrategy.State.FAILED, false); | 156 primary.setStateForTesting(remoting.SignalStrategy.State.FAILED, false); |
153 ok(secondary.connect.calledWith('server', 'username', 'authToken')); | 157 ok(secondary.connect.calledWith('server', 'username', 'authToken')); |
154 this.assertProgress( | |
155 remoting.FallbackSignalStrategy.Progress.PRIMARY_FAILED); | |
156 | 158 |
157 secondary.setStateForTesting(remoting.SignalStrategy.State.NOT_CONNECTED, | 159 secondary.setStateForTesting(remoting.SignalStrategy.State.NOT_CONNECTED, |
158 false); | 160 false); |
159 secondary.setStateForTesting(remoting.SignalStrategy.State.CONNECTING, | 161 secondary.setStateForTesting(remoting.SignalStrategy.State.CONNECTING, |
160 false); | 162 false); |
161 secondary.setStateForTesting(remoting.SignalStrategy.State.HANDSHAKE, true); | 163 secondary.setStateForTesting(remoting.SignalStrategy.State.HANDSHAKE, true); |
162 | 164 |
163 ok(!onProgressCallback.called); | |
164 secondary.setStateForTesting(remoting.SignalStrategy.State.CONNECTED, true); | 165 secondary.setStateForTesting(remoting.SignalStrategy.State.CONNECTED, true); |
165 this.assertProgress( | 166 equal(strategy.getJid(), 'secondary-jid'); |
167 | |
168 strategy.sendConnectionSetupResults(logToServer); | |
169 logToServer.assertProgress( | |
170 remoting.FallbackSignalStrategy.Progress.PRIMARY_FAILED, | |
166 remoting.FallbackSignalStrategy.Progress.SECONDARY_SUCCEEDED); | 171 remoting.FallbackSignalStrategy.Progress.SECONDARY_SUCCEEDED); |
167 equal(strategy.getJid(), 'secondary-jid'); | |
168 | 172 |
169 ok(!onIncomingStanzaCallback.called); | 173 ok(!onIncomingStanzaCallback.called); |
170 primary.onIncomingStanzaCallback('test-receive-primary'); | 174 primary.onIncomingStanzaCallback('test-receive-primary'); |
171 secondary.onIncomingStanzaCallback('test-receive-secondary'); | 175 secondary.onIncomingStanzaCallback('test-receive-secondary'); |
172 ok(onIncomingStanzaCallback.calledOnce); | 176 ok(onIncomingStanzaCallback.calledOnce); |
173 ok(onIncomingStanzaCallback.calledWith('test-receive-secondary')); | 177 ok(onIncomingStanzaCallback.calledWith('test-receive-secondary')); |
174 | 178 |
175 ok(!secondary.sendMessage.called); | 179 ok(!secondary.sendMessage.called); |
176 strategy.sendMessage('test-send'); | 180 strategy.sendMessage('test-send'); |
177 ok(!primary.sendMessage.called); | 181 ok(!primary.sendMessage.called); |
178 ok(secondary.sendMessage.calledOnce); | 182 ok(secondary.sendMessage.calledOnce); |
179 ok(secondary.sendMessage.calledWith('test-send')); | 183 ok(secondary.sendMessage.calledWith('test-send')); |
180 } | 184 } |
181 ); | 185 ); |
182 | 186 |
183 test('primary fails; secondary fails', | 187 test('primary fails; secondary fails', |
184 function() { | 188 function() { |
185 ok(!onStateChange.called); | 189 ok(!onStateChange.called); |
186 ok(!primary.connect.called); | 190 ok(!primary.connect.called); |
187 strategy.connect('server', 'username', 'authToken'); | 191 strategy.connect('server', 'username', 'authToken'); |
188 ok(primary.connect.calledWith('server', 'username', 'authToken')); | 192 ok(primary.connect.calledWith('server', 'username', 'authToken')); |
189 | 193 |
190 primary.setStateForTesting(remoting.SignalStrategy.State.NOT_CONNECTED, | 194 primary.setStateForTesting(remoting.SignalStrategy.State.NOT_CONNECTED, |
191 true); | 195 true); |
192 ok(!onProgressCallback.called); | |
193 ok(!secondary.connect.called); | 196 ok(!secondary.connect.called); |
194 primary.setStateForTesting(remoting.SignalStrategy.State.CONNECTING, true); | 197 primary.setStateForTesting(remoting.SignalStrategy.State.CONNECTING, true); |
195 primary.setStateForTesting(remoting.SignalStrategy.State.FAILED, false); | 198 primary.setStateForTesting(remoting.SignalStrategy.State.FAILED, false); |
196 ok(secondary.connect.calledWith('server', 'username', 'authToken')); | 199 ok(secondary.connect.calledWith('server', 'username', 'authToken')); |
197 this.assertProgress( | |
198 remoting.FallbackSignalStrategy.Progress.PRIMARY_FAILED); | |
Jamie
2015/01/16 22:17:46
If both signaling strategies fail, it's not possib
| |
199 secondary.setStateForTesting(remoting.SignalStrategy.State.NOT_CONNECTED, | 200 secondary.setStateForTesting(remoting.SignalStrategy.State.NOT_CONNECTED, |
200 false); | 201 false); |
201 primary.setStateForTesting(remoting.SignalStrategy.State.CONNECTING, false); | 202 primary.setStateForTesting(remoting.SignalStrategy.State.CONNECTING, false); |
202 secondary.setStateForTesting(remoting.SignalStrategy.State.FAILED, true); | 203 secondary.setStateForTesting(remoting.SignalStrategy.State.FAILED, true); |
203 this.assertProgress( | |
204 remoting.FallbackSignalStrategy.Progress.SECONDARY_FAILED); | |
205 } | 204 } |
206 ); | 205 ); |
207 | 206 |
208 test('primary times out; secondary succeeds', | 207 test('primary times out; secondary succeeds', |
209 function() { | 208 function() { |
210 ok(!onStateChange.called); | 209 ok(!onStateChange.called); |
211 ok(!primary.connect.called); | 210 ok(!primary.connect.called); |
212 strategy.connect('server', 'username', 'authToken'); | 211 strategy.connect('server', 'username', 'authToken'); |
213 ok(primary.connect.calledWith('server', 'username', 'authToken')); | 212 ok(primary.connect.calledWith('server', 'username', 'authToken')); |
214 | 213 |
215 primary.setStateForTesting(remoting.SignalStrategy.State.NOT_CONNECTED, | 214 primary.setStateForTesting(remoting.SignalStrategy.State.NOT_CONNECTED, |
216 true); | 215 true); |
217 primary.setStateForTesting(remoting.SignalStrategy.State.CONNECTING, true); | 216 primary.setStateForTesting(remoting.SignalStrategy.State.CONNECTING, true); |
218 this.clock.tick(strategy.PRIMARY_CONNECT_TIMEOUT_MS_ - 1); | 217 this.clock.tick(strategy.PRIMARY_CONNECT_TIMEOUT_MS_ - 1); |
219 ok(!secondary.connect.called); | 218 ok(!secondary.connect.called); |
220 ok(!onProgressCallback.called); | |
221 this.clock.tick(1); | 219 this.clock.tick(1); |
222 ok(secondary.connect.calledWith('server', 'username', 'authToken')); | 220 ok(secondary.connect.calledWith('server', 'username', 'authToken')); |
223 this.assertProgress( | |
224 remoting.FallbackSignalStrategy.Progress.PRIMARY_TIMED_OUT); | |
225 secondary.setStateForTesting(remoting.SignalStrategy.State.NOT_CONNECTED, | 221 secondary.setStateForTesting(remoting.SignalStrategy.State.NOT_CONNECTED, |
226 false); | 222 false); |
227 secondary.setStateForTesting(remoting.SignalStrategy.State.CONNECTING, | 223 secondary.setStateForTesting(remoting.SignalStrategy.State.CONNECTING, |
228 false); | 224 false); |
229 secondary.setStateForTesting(remoting.SignalStrategy.State.HANDSHAKE, true); | 225 secondary.setStateForTesting(remoting.SignalStrategy.State.HANDSHAKE, true); |
230 secondary.setStateForTesting(remoting.SignalStrategy.State.CONNECTED, true); | 226 secondary.setStateForTesting(remoting.SignalStrategy.State.CONNECTED, true); |
231 this.assertProgress( | 227 strategy.sendConnectionSetupResults(logToServer); |
232 remoting.FallbackSignalStrategy.Progress.SECONDARY_SUCCEEDED); | 228 |
233 secondary.setStateForTesting(remoting.SignalStrategy.State.CLOSED, true); | 229 secondary.setStateForTesting(remoting.SignalStrategy.State.CLOSED, true); |
234 primary.setStateForTesting(remoting.SignalStrategy.State.FAILED, false); | 230 primary.setStateForTesting(remoting.SignalStrategy.State.FAILED, false); |
235 this.assertProgress( | 231 |
232 logToServer.assertProgress( | |
233 remoting.FallbackSignalStrategy.Progress.PRIMARY_TIMED_OUT, | |
234 remoting.FallbackSignalStrategy.Progress.SECONDARY_SUCCEEDED, | |
236 remoting.FallbackSignalStrategy.Progress.PRIMARY_FAILED_LATE); | 235 remoting.FallbackSignalStrategy.Progress.PRIMARY_FAILED_LATE); |
237 } | 236 } |
238 ); | 237 ); |
239 | 238 |
240 test('primary times out; secondary fails', | 239 test('primary times out; secondary fails', |
241 function() { | 240 function() { |
242 ok(!onStateChange.called); | 241 ok(!onStateChange.called); |
243 ok(!primary.connect.called); | 242 ok(!primary.connect.called); |
244 strategy.connect('server', 'username', 'authToken'); | 243 strategy.connect('server', 'username', 'authToken'); |
245 ok(primary.connect.calledWith('server', 'username', 'authToken')); | 244 ok(primary.connect.calledWith('server', 'username', 'authToken')); |
246 | 245 |
247 primary.setStateForTesting(remoting.SignalStrategy.State.NOT_CONNECTED, | 246 primary.setStateForTesting(remoting.SignalStrategy.State.NOT_CONNECTED, |
248 true); | 247 true); |
249 primary.setStateForTesting(remoting.SignalStrategy.State.CONNECTING, true); | 248 primary.setStateForTesting(remoting.SignalStrategy.State.CONNECTING, true); |
250 this.clock.tick(strategy.PRIMARY_CONNECT_TIMEOUT_MS_ - 1); | 249 this.clock.tick(strategy.PRIMARY_CONNECT_TIMEOUT_MS_ - 1); |
251 ok(!secondary.connect.called); | 250 ok(!secondary.connect.called); |
252 ok(!onProgressCallback.called); | |
253 this.clock.tick(1); | 251 this.clock.tick(1); |
254 ok(secondary.connect.calledWith('server', 'username', 'authToken')); | 252 ok(secondary.connect.calledWith('server', 'username', 'authToken')); |
255 this.assertProgress( | |
256 remoting.FallbackSignalStrategy.Progress.PRIMARY_TIMED_OUT); | |
257 secondary.setStateForTesting(remoting.SignalStrategy.State.NOT_CONNECTED, | 253 secondary.setStateForTesting(remoting.SignalStrategy.State.NOT_CONNECTED, |
258 false); | 254 false); |
259 secondary.setStateForTesting(remoting.SignalStrategy.State.CONNECTING, | 255 secondary.setStateForTesting(remoting.SignalStrategy.State.CONNECTING, |
260 false); | 256 false); |
261 secondary.setStateForTesting(remoting.SignalStrategy.State.FAILED, true); | 257 secondary.setStateForTesting(remoting.SignalStrategy.State.FAILED, true); |
262 this.assertProgress( | |
263 remoting.FallbackSignalStrategy.Progress.SECONDARY_FAILED); | |
264 } | 258 } |
265 ); | 259 ); |
266 | 260 |
267 test('primary times out; secondary succeeds; primary succeeds late', | 261 test('primary times out; secondary succeeds; primary succeeds late', |
268 function() { | 262 function() { |
269 ok(!onStateChange.called); | 263 ok(!onStateChange.called); |
270 ok(!primary.connect.called); | 264 ok(!primary.connect.called); |
271 strategy.connect('server', 'username', 'authToken'); | 265 strategy.connect('server', 'username', 'authToken'); |
272 ok(primary.connect.calledWith('server', 'username', 'authToken')); | 266 ok(primary.connect.calledWith('server', 'username', 'authToken')); |
273 | 267 |
274 primary.setStateForTesting(remoting.SignalStrategy.State.NOT_CONNECTED, | 268 primary.setStateForTesting(remoting.SignalStrategy.State.NOT_CONNECTED, |
275 true); | 269 true); |
276 primary.setStateForTesting(remoting.SignalStrategy.State.CONNECTING, true); | 270 primary.setStateForTesting(remoting.SignalStrategy.State.CONNECTING, true); |
277 this.clock.tick(strategy.PRIMARY_CONNECT_TIMEOUT_MS_); | 271 this.clock.tick(strategy.PRIMARY_CONNECT_TIMEOUT_MS_); |
278 ok(secondary.connect.calledWith('server', 'username', 'authToken')); | 272 ok(secondary.connect.calledWith('server', 'username', 'authToken')); |
279 this.assertProgress( | |
280 remoting.FallbackSignalStrategy.Progress.PRIMARY_TIMED_OUT); | |
281 secondary.setStateForTesting(remoting.SignalStrategy.State.NOT_CONNECTED, | 273 secondary.setStateForTesting(remoting.SignalStrategy.State.NOT_CONNECTED, |
282 false); | 274 false); |
283 secondary.setStateForTesting(remoting.SignalStrategy.State.CONNECTING, | 275 secondary.setStateForTesting(remoting.SignalStrategy.State.CONNECTING, |
284 false); | 276 false); |
285 secondary.setStateForTesting(remoting.SignalStrategy.State.HANDSHAKE, true); | 277 secondary.setStateForTesting(remoting.SignalStrategy.State.HANDSHAKE, true); |
286 secondary.setStateForTesting(remoting.SignalStrategy.State.CONNECTED, true); | 278 secondary.setStateForTesting(remoting.SignalStrategy.State.CONNECTED, true); |
287 this.assertProgress( | 279 strategy.sendConnectionSetupResults(logToServer); |
288 remoting.FallbackSignalStrategy.Progress.SECONDARY_SUCCEEDED); | 280 |
289 primary.setStateForTesting(remoting.SignalStrategy.State.HANDSHAKE, false); | 281 primary.setStateForTesting(remoting.SignalStrategy.State.HANDSHAKE, false); |
290 primary.setStateForTesting(remoting.SignalStrategy.State.CONNECTED, false); | 282 primary.setStateForTesting(remoting.SignalStrategy.State.CONNECTED, false); |
291 this.assertProgress( | 283 |
284 logToServer.assertProgress( | |
285 remoting.FallbackSignalStrategy.Progress.PRIMARY_TIMED_OUT, | |
286 remoting.FallbackSignalStrategy.Progress.SECONDARY_SUCCEEDED, | |
292 remoting.FallbackSignalStrategy.Progress.PRIMARY_SUCCEEDED_LATE); | 287 remoting.FallbackSignalStrategy.Progress.PRIMARY_SUCCEEDED_LATE); |
293 } | 288 } |
294 ); | 289 ); |
295 | 290 |
296 })(); | 291 })(); |
OLD | NEW |