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

Side by Side Diff: remoting/webapp/crd/js/me2me_activity.js

Issue 1066283002: [Webapp Refactor] Implements remoting.MessageDialog (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 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 unified diff | Download patch
OLDNEW
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 /** @suppress {duplicate} */ 5 /** @suppress {duplicate} */
6 var remoting = remoting || {}; 6 var remoting = remoting || {};
7 7
8 (function() { 8 (function() {
9 9
10 'use strict'; 10 'use strict';
11 11
12 /** 12 /**
13 * @param {remoting.SessionConnector} sessionConnector 13 * @param {remoting.SessionConnector} sessionConnector
14 * @param {remoting.Host} host 14 * @param {remoting.Host} host
15 * 15 *
16 * @constructor 16 * @constructor
17 * @implements {remoting.Activity} 17 * @implements {remoting.Activity}
18 */ 18 */
19 remoting.Me2MeActivity = function(sessionConnector, host) { 19 remoting.Me2MeActivity = function(sessionConnector, host) {
20 /** @private */ 20 /** @private */
21 this.host_ = host; 21 this.host_ = host;
22 /** @private */ 22 /** @private */
23 this.connector_ = sessionConnector; 23 this.connector_ = sessionConnector;
24 /** @private */ 24 /** @private */
25 this.pinDialog_ = 25 this.pinDialog_ =
26 new remoting.PinDialog(document.getElementById('pin-dialog'), host); 26 new remoting.PinDialog(document.getElementById('pin-dialog'), host);
27 /** @private */ 27 /** @private */
28 this.hostUpdateDialog_ = new remoting.HostNeedsUpdateDialog( 28 this.hostUpdateDialog_ = new remoting.HostNeedsUpdateDialog(
29 document.getElementById('host-needs-update-dialog'), this.host_); 29 document.getElementById('host-needs-update-dialog'), this.host_);
30
30 /** @private */ 31 /** @private */
31 this.retryOnHostOffline_ = true; 32 this.retryOnHostOffline_ = true;
32 }; 33 };
33 34
34 remoting.Me2MeActivity.prototype.dispose = function() {}; 35 remoting.Me2MeActivity.prototype.dispose = function() {};
35 36
36 remoting.Me2MeActivity.prototype.start = function() { 37 remoting.Me2MeActivity.prototype.start = function() {
37 var webappVersion = chrome.runtime.getManifest().version; 38 var webappVersion = chrome.runtime.getManifest().version;
38 var that = this; 39 var that = this;
39 40
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 var plugin = connectionInfo.plugin(); 124 var plugin = connectionInfo.plugin();
124 if (remoting.app.hasCapability(remoting.ClientSession.Capability.CAST)) { 125 if (remoting.app.hasCapability(remoting.ClientSession.Capability.CAST)) {
125 plugin.extensions().register(new remoting.CastExtensionHandler()); 126 plugin.extensions().register(new remoting.CastExtensionHandler());
126 } 127 }
127 plugin.extensions().register(new remoting.GnubbyAuthHandler()); 128 plugin.extensions().register(new remoting.GnubbyAuthHandler());
128 this.pinDialog_.requestPairingIfNecessary(connectionInfo.plugin(), 129 this.pinDialog_.requestPairingIfNecessary(connectionInfo.plugin(),
129 this.connector_); 130 this.connector_);
130 }; 131 };
131 132
132 remoting.Me2MeActivity.prototype.onDisconnected = function() { 133 remoting.Me2MeActivity.prototype.onDisconnected = function() {
133 remoting.setMode(remoting.AppMode.CLIENT_SESSION_FINISHED_ME2ME); 134 this.showFinishDialog_(remoting.AppMode.CLIENT_SESSION_FINISHED_ME2ME);
134 }; 135 };
135 136
136 /** 137 /**
137 * @param {!remoting.Error} error 138 * @param {!remoting.Error} error
138 */ 139 */
139 remoting.Me2MeActivity.prototype.onError = function(error) { 140 remoting.Me2MeActivity.prototype.onError = function(error) {
140 this.retryOnHostOffline_ = true;
141 var errorDiv = document.getElementById('connect-error-message'); 141 var errorDiv = document.getElementById('connect-error-message');
142 l10n.localizeElementFromTag(errorDiv, error.getTag()); 142 l10n.localizeElementFromTag(errorDiv, error.getTag());
143 remoting.setMode(remoting.AppMode.CLIENT_CONNECT_FAILED_ME2ME); 143 this.showFinishDialog_(remoting.AppMode.CLIENT_CONNECT_FAILED_ME2ME);
144 }; 144 };
145 145
146 /** 146 /**
147 * @param {remoting.AppMode} mode
148 * @private
149 */
150 remoting.Me2MeActivity.prototype.showFinishDialog_ = function(mode) {
151 var dialog = new remoting.MessageDialog(
152 mode,
153 document.getElementById('client-finished-me2me-button'),
154 document.getElementById('client-reconnect-button'));
155
156 /** @typedef {remoting.MessageDialog.Result} */
157 var Result = remoting.MessageDialog.Result;
158 var that = this;
159
160 dialog.show().then(function(/** Result */result) {
161 if (result === Result.PRIMARY) {
162 remoting.setMode(remoting.AppMode.HOME);
163 } else {
164 that.connector_.reconnect();
165 remoting.setMode(remoting.AppMode.CLIENT_CONNECTING);
166 }
167 });
168 };
169
170 /**
147 * @param {HTMLElement} rootElement 171 * @param {HTMLElement} rootElement
148 * @param {remoting.Host} host 172 * @param {remoting.Host} host
149 * @constructor 173 * @constructor
150 */ 174 */
151 remoting.HostNeedsUpdateDialog = function(rootElement, host) { 175 remoting.HostNeedsUpdateDialog = function(rootElement, host) {
152 /** @private */ 176 /** @private */
153 this.host_ = host; 177 this.host_ = host;
154 /** @private */ 178 /** @private */
155 this.rootElement_ = rootElement; 179 this.dialog_ = new remoting.MessageDialog(
156 /** @private {base.Deferred} */ 180 remoting.AppMode.CLIENT_HOST_NEEDS_UPGRADE,
157 this.deferred_ = null; 181 rootElement.querySelector('.connect-button'),
158 /** @private {base.Disposables} */ 182 rootElement.querySelector('.cancel-button'));
159 this.eventHooks_ = null;
160 183
161 l10n.localizeElementFromTag( 184 l10n.localizeElementFromTag(
162 rootElement.querySelector('.host-needs-update-message'), 185 rootElement.querySelector('.host-needs-update-message'),
163 /*i18n-content*/'HOST_NEEDS_UPDATE_TITLE', host.hostName); 186 /*i18n-content*/'HOST_NEEDS_UPDATE_TITLE', host.hostName);
164 }; 187 };
165 188
166 /** 189 /**
167 * Shows the HostNeedsUpdateDialog if the user is trying to connect to a legacy 190 * Shows the HostNeedsUpdateDialog if the user is trying to connect to a legacy
168 * host. 191 * host.
169 * 192 *
170 * @param {string} webappVersion 193 * @param {string} webappVersion
171 * @return {Promise} Promise that resolves when no update is required or 194 * @return {Promise} Promise that resolves when no update is required or
172 * when the user ignores the update warning. Rejects with 195 * when the user ignores the update warning. Rejects with
173 * |remoting.Error.CANCELLED| if the user cancels the connection. 196 * |remoting.Error.CANCELLED| if the user cancels the connection.
174 */ 197 */
175 remoting.HostNeedsUpdateDialog.prototype.showIfNecessary = 198 remoting.HostNeedsUpdateDialog.prototype.showIfNecessary =
176 function(webappVersion) { 199 function(webappVersion) {
177 if (!remoting.Host.needsUpdate(this.host_, webappVersion)) { 200 if (!remoting.Host.needsUpdate(this.host_, webappVersion)) {
178 return Promise.resolve(); 201 return Promise.resolve();
179 } 202 }
180 203 /** @typedef {remoting.MessageDialog.Result} */
181 this.eventHooks_ = new base.Disposables( 204 var Result = remoting.MessageDialog.Result;
182 new base.DomEventHook(this.rootElement_.querySelector('.connect-button'), 205 return this.dialog_.show().then(function(/** Result */ result) {
183 'click', this.onOK_.bind(this), false), 206 if (result === Result.SECONDARY) {
184 new base.DomEventHook(this.rootElement_.querySelector('.cancel-button'), 207 return Promise.reject(new remoting.Error(remoting.Error.Tag.CANCELLED));
185 'click', this.onCancel_.bind(this), false)); 208 }
186 209 });
187 base.debug.assert(this.deferred_ === null);
188 this.deferred_ = new base.Deferred();
189
190 remoting.setMode(remoting.AppMode.CLIENT_HOST_NEEDS_UPGRADE);
191
192 return this.deferred_.promise();
193 };
194
195 /** @private */
196 remoting.HostNeedsUpdateDialog.prototype.cleanup_ = function() {
197 base.dispose(this.eventHooks_);
198 this.eventHooks_ = null;
199 this.deferred_ = null;
200 };
201
202
203 /** @private */
204 remoting.HostNeedsUpdateDialog.prototype.onOK_ = function() {
205 this.deferred_.resolve();
206 this.cleanup_();
207 };
208
209 /** @private */
210 remoting.HostNeedsUpdateDialog.prototype.onCancel_ = function() {
211 this.deferred_.reject(new remoting.Error(remoting.Error.Tag.CANCELLED));
212 this.cleanup_();
213 }; 210 };
214 211
215 /** 212 /**
216 * @param {HTMLElement} rootElement 213 * @param {HTMLElement} rootElement
217 * @param {remoting.Host} host 214 * @param {remoting.Host} host
218 * @constructor 215 * @constructor
219 */ 216 */
220 remoting.PinDialog = function(rootElement, host) { 217 remoting.PinDialog = function(rootElement, host) {
221 /** @private */ 218 /** @private */
222 this.rootElement_ = rootElement; 219 this.rootElement_ = rootElement;
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
283 clientName = 'Linux'; 280 clientName = 'Linux';
284 } else { 281 } else {
285 console.log('Unrecognized client platform. Using navigator.platform.'); 282 console.log('Unrecognized client platform. Using navigator.platform.');
286 clientName = navigator.platform; 283 clientName = navigator.platform;
287 } 284 }
288 plugin.requestPairing(clientName, onPairingComplete); 285 plugin.requestPairing(clientName, onPairingComplete);
289 } 286 }
290 }; 287 };
291 288
292 })(); 289 })();
OLDNEW
« remoting/webapp/base/js/input_dialog.js ('K') | « remoting/webapp/crd/js/it2me_activity.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698