| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 cr.define('cloudprint', function() { | 5 cr.define('cloudprint', function() { |
| 6 'use strict'; | 6 'use strict'; |
| 7 | 7 |
| 8 /** | 8 /** |
| 9 * API to the Google Cloud Print service. | 9 * API to the Google Cloud Print service. |
| 10 * @param {string} baseUrl Base part of the Google Cloud Print service URL | 10 * @param {string} baseUrl Base part of the Google Cloud Print service URL |
| 11 * with no trailing slash. For example, | 11 * with no trailing slash. For example, |
| 12 * 'https://www.google.com/cloudprint'. | 12 * 'https://www.google.com/cloudprint'. |
| 13 * @param {!print_preview.NativeLayer} nativeLayer Native layer used to get | 13 * @param {!print_preview.NativeLayer} nativeLayer Native layer used to get |
| 14 * Auth2 tokens. | 14 * Auth2 tokens. |
| 15 * @param {!print_preview.UserInfo} userInfo User information repository. | 15 * @param {!print_preview.UserInfo} userInfo User information repository. |
| 16 * @param {boolean} isInAppKioskMode Whether the print preview is in App |
| 17 * Kiosk mode. |
| 16 * @constructor | 18 * @constructor |
| 17 * @extends {cr.EventTarget} | 19 * @extends {cr.EventTarget} |
| 18 */ | 20 */ |
| 19 function CloudPrintInterface(baseUrl, nativeLayer, userInfo) { | 21 function CloudPrintInterface( |
| 22 baseUrl, nativeLayer, userInfo, isInAppKioskMode) { |
| 20 /** | 23 /** |
| 21 * The base URL of the Google Cloud Print API. | 24 * The base URL of the Google Cloud Print API. |
| 22 * @type {string} | 25 * @type {string} |
| 23 * @private | 26 * @private |
| 24 */ | 27 */ |
| 25 this.baseUrl_ = baseUrl; | 28 this.baseUrl_ = baseUrl; |
| 26 | 29 |
| 27 /** | 30 /** |
| 28 * Used to get Auth2 tokens. | 31 * Used to get Auth2 tokens. |
| 29 * @type {!print_preview.NativeLayer} | 32 * @type {!print_preview.NativeLayer} |
| 30 * @private | 33 * @private |
| 31 */ | 34 */ |
| 32 this.nativeLayer_ = nativeLayer; | 35 this.nativeLayer_ = nativeLayer; |
| 33 | 36 |
| 34 /** | 37 /** |
| 35 * User information repository. | 38 * User information repository. |
| 36 * @type {!print_preview.UserInfo} | 39 * @type {!print_preview.UserInfo} |
| 37 * @private | 40 * @private |
| 38 */ | 41 */ |
| 39 this.userInfo_ = userInfo; | 42 this.userInfo_ = userInfo; |
| 40 | 43 |
| 41 /** | 44 /** |
| 45 * Whether Print Preview is in App Kiosk mode, basically, use only printers |
| 46 * available for the device. |
| 47 * @type {boolean} |
| 48 * @private |
| 49 */ |
| 50 this.isInAppKioskMode_ = isInAppKioskMode; |
| 51 |
| 52 /** |
| 42 * Currently logged in users (identified by email) mapped to the Google | 53 * Currently logged in users (identified by email) mapped to the Google |
| 43 * session index. | 54 * session index. |
| 44 * @type {!Object.<string, number>} | 55 * @type {!Object.<string, number>} |
| 45 * @private | 56 * @private |
| 46 */ | 57 */ |
| 47 this.userSessionIndex_ = {}; | 58 this.userSessionIndex_ = {}; |
| 48 | 59 |
| 49 /** | 60 /** |
| 50 * Stores last received XSRF tokens for each user account. Sent as | 61 * Stores last received XSRF tokens for each user account. Sent as |
| 51 * a parameter with every request. | 62 * a parameter with every request. |
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 172 * @param {string=} opt_account Account the search is sent for. When | 183 * @param {string=} opt_account Account the search is sent for. When |
| 173 * omitted, the search is done on behalf of the primary user. | 184 * omitted, the search is done on behalf of the primary user. |
| 174 * @param {print_preview.Destination.Origin=} opt_origin When specified, | 185 * @param {print_preview.Destination.Origin=} opt_origin When specified, |
| 175 * searches destinations for {@code opt_origin} only, otherwise starts | 186 * searches destinations for {@code opt_origin} only, otherwise starts |
| 176 * searches for all origins. | 187 * searches for all origins. |
| 177 */ | 188 */ |
| 178 search: function(opt_account, opt_origin) { | 189 search: function(opt_account, opt_origin) { |
| 179 var account = opt_account || ''; | 190 var account = opt_account || ''; |
| 180 var origins = | 191 var origins = |
| 181 opt_origin && [opt_origin] || CloudPrintInterface.CLOUD_ORIGINS_; | 192 opt_origin && [opt_origin] || CloudPrintInterface.CLOUD_ORIGINS_; |
| 193 if (this.isInAppKioskMode_) { |
| 194 origins = origins.filter(function(origin) { |
| 195 return origin != print_preview.Destination.Origin.COOKIES; |
| 196 }); |
| 197 } |
| 182 this.abortSearchRequests_(origins); | 198 this.abortSearchRequests_(origins); |
| 183 this.search_(true, account, origins); | 199 this.search_(true, account, origins); |
| 184 this.search_(false, account, origins); | 200 this.search_(false, account, origins); |
| 185 }, | 201 }, |
| 186 | 202 |
| 187 /** | 203 /** |
| 188 * Sends Google Cloud Print search API requests. | 204 * Sends Google Cloud Print search API requests. |
| 189 * @param {boolean} isRecent Whether to search for only recently used | 205 * @param {boolean} isRecent Whether to search for only recently used |
| 190 * printers. | 206 * printers. |
| 191 * @param {string} account Account the search is sent for. It matters for | 207 * @param {string} account Account the search is sent for. It matters for |
| (...skipping 526 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 718 * @type {string} | 734 * @type {string} |
| 719 */ | 735 */ |
| 720 this.value = value; | 736 this.value = value; |
| 721 }; | 737 }; |
| 722 | 738 |
| 723 // Export | 739 // Export |
| 724 return { | 740 return { |
| 725 CloudPrintInterface: CloudPrintInterface | 741 CloudPrintInterface: CloudPrintInterface |
| 726 }; | 742 }; |
| 727 }); | 743 }); |
| OLD | NEW |