Chromium Code Reviews| 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('print_preview', function() { | 5 cr.define('print_preview', function() { |
| 6 'use strict'; | 6 'use strict'; |
| 7 | 7 |
| 8 /** | 8 /** |
| 9 * A data store that stores destinations and dispatches events when the data | 9 * A data store that stores destinations and dispatches events when the data |
| 10 * store changes. | 10 * store changes. |
| 11 * @param {!print_preview.NativeLayer} nativeLayer Used to fetch local print | 11 * @param {!print_preview.NativeLayer} nativeLayer Used to fetch local print |
| 12 * destinations. | 12 * destinations. |
| 13 * @param {!print_preview.UserInfo} userInfo User information repository. | 13 * @param {!print_preview.UserInfo} userInfo User information repository. |
| 14 * @param {!print_preview.AppState} appState Application state. | 14 * @param {!print_preview.AppState} appState Application state. |
| 15 * @constructor | 15 * @constructor |
| 16 * @extends {cr.EventTarget} | 16 * @extends {cr.EventTarget} |
| 17 */ | 17 */ |
| 18 function DestinationStore(nativeLayer, userInfo, appState) { | 18 function DestinationStore(nativeLayer, userInfo, appState) { |
| 19 cr.EventTarget.call(this); | 19 cr.EventTarget.call(this); |
| 20 | 20 |
| 21 /** | 21 /** |
| 22 * Used to fetch local print destinations. | 22 * Used to fetch local print destinations. |
| 23 * @type {!print_preview.NativeLayer} | 23 * @private {!print_preview.NativeLayer} |
| 24 * @private | |
| 25 */ | 24 */ |
| 26 this.nativeLayer_ = nativeLayer; | 25 this.nativeLayer_ = nativeLayer; |
| 27 | 26 |
| 28 /** | 27 /** |
| 29 * User information repository. | 28 * User information repository. |
| 30 * @type {!print_preview.UserInfo} | 29 * @private {!print_preview.UserInfo} |
| 31 * @private | |
| 32 */ | 30 */ |
| 33 this.userInfo_ = userInfo; | 31 this.userInfo_ = userInfo; |
| 34 | 32 |
| 35 /** | 33 /** |
| 36 * Used to load and persist the selected destination. | 34 * Used to load and persist the selected destination. |
| 37 * @type {!print_preview.AppState} | 35 * @private {!print_preview.AppState} |
| 38 * @private | |
| 39 */ | 36 */ |
| 40 this.appState_ = appState; | 37 this.appState_ = appState; |
| 41 | 38 |
| 42 /** | 39 /** |
| 43 * Used to track metrics. | 40 * Used to track metrics. |
| 44 * @type {!print_preview.DestinationSearchMetricsContext} | 41 * @private {!print_preview.DestinationSearchMetricsContext} |
| 45 * @private | |
| 46 */ | 42 */ |
| 47 this.metrics_ = new print_preview.DestinationSearchMetricsContext(); | 43 this.metrics_ = new print_preview.DestinationSearchMetricsContext(); |
| 48 | 44 |
| 49 /** | 45 /** |
| 50 * Internal backing store for the data store. | 46 * Internal backing store for the data store. |
| 51 * @type {!Array<!print_preview.Destination>} | 47 * @private {!Array<!print_preview.Destination>} |
| 52 * @private | |
| 53 */ | 48 */ |
| 54 this.destinations_ = []; | 49 this.destinations_ = []; |
| 55 | 50 |
| 56 /** | 51 /** |
| 57 * Cache used for constant lookup of destinations by origin and id. | 52 * Cache used for constant lookup of destinations by origin and id. |
| 58 * @type {Object<!print_preview.Destination>} | 53 * @private {Object<!print_preview.Destination>} |
| 59 * @private | |
| 60 */ | 54 */ |
| 61 this.destinationMap_ = {}; | 55 this.destinationMap_ = {}; |
| 62 | 56 |
| 63 /** | 57 /** |
| 64 * Currently selected destination. | 58 * Currently selected destination. |
| 65 * @type {print_preview.Destination} | 59 * @private {print_preview.Destination} |
| 66 * @private | |
| 67 */ | 60 */ |
| 68 this.selectedDestination_ = null; | 61 this.selectedDestination_ = null; |
| 69 | 62 |
| 70 /** | 63 /** |
| 71 * Whether the destination store will auto select the destination that | 64 * Whether the destination store will auto select the destination that |
| 72 * matches this set of parameters. | 65 * matches this set of parameters. |
| 73 * @type {print_preview.DestinationMatch} | 66 * @private {print_preview.DestinationMatch} |
| 74 * @private | |
| 75 */ | 67 */ |
| 76 this.autoSelectMatchingDestination_ = null; | 68 this.autoSelectMatchingDestination_ = null; |
| 77 | 69 |
| 78 /** | 70 /** |
| 79 * Event tracker used to track event listeners of the destination store. | 71 * Event tracker used to track event listeners of the destination store. |
| 80 * @type {!EventTracker} | 72 * @private {!EventTracker} |
| 81 * @private | |
| 82 */ | 73 */ |
| 83 this.tracker_ = new EventTracker(); | 74 this.tracker_ = new EventTracker(); |
| 84 | 75 |
| 85 /** | 76 /** |
| 86 * Whether PDF printer is enabled. It's disabled, for example, in App Kiosk | 77 * Whether PDF printer is enabled. It's disabled, for example, in App Kiosk |
| 87 * mode. | 78 * mode. |
| 88 * @type {boolean} | 79 * @private {boolean} |
| 89 * @private | |
| 90 */ | 80 */ |
| 91 this.pdfPrinterEnabled_ = false; | 81 this.pdfPrinterEnabled_ = false; |
| 92 | 82 |
| 93 /** | 83 /** |
| 94 * ID of the system default destination. | 84 * ID of the system default destination. |
| 95 * @type {?string} | 85 * @private {?string} |
| 96 * @private | |
| 97 */ | 86 */ |
| 98 this.systemDefaultDestinationId_ = null; | 87 this.systemDefaultDestinationId_ = null; |
| 99 | 88 |
| 100 /** | 89 /** |
| 101 * Used to fetch cloud-based print destinations. | 90 * Used to fetch cloud-based print destinations. |
| 102 * @type {cloudprint.CloudPrintInterface} | 91 * @private {cloudprint.CloudPrintInterface} |
| 103 * @private | |
| 104 */ | 92 */ |
| 105 this.cloudPrintInterface_ = null; | 93 this.cloudPrintInterface_ = null; |
| 106 | 94 |
| 107 /** | 95 /** |
| 108 * Maps user account to the list of origins for which destinations are | 96 * Maps user account to the list of origins for which destinations are |
| 109 * already loaded. | 97 * already loaded. |
| 110 * @type {!Object<Array<print_preview.DestinationOrigin>>} | 98 * @private {!Object<Array<print_preview.DestinationOrigin>>} |
| 111 * @private | |
| 112 */ | 99 */ |
| 113 this.loadedCloudOrigins_ = {}; | 100 this.loadedCloudOrigins_ = {}; |
| 114 | 101 |
| 115 /** | 102 /** |
| 116 * ID of a timeout after the initial destination ID is set. If no inserted | 103 * ID of a timeout after the initial destination ID is set. If no inserted |
| 117 * destination matches the initial destination ID after the specified | 104 * destination matches the initial destination ID after the specified |
| 118 * timeout, the first destination in the store will be automatically | 105 * timeout, the first destination in the store will be automatically |
| 119 * selected. | 106 * selected. |
| 120 * @type {?number} | 107 * @private {?number} |
| 121 * @private | |
| 122 */ | 108 */ |
| 123 this.autoSelectTimeout_ = null; | 109 this.autoSelectTimeout_ = null; |
| 124 | 110 |
| 125 /** | 111 /** |
| 126 * Whether a search for local destinations is in progress. | 112 * Whether a search for local destinations is in progress. |
| 127 * @type {boolean} | 113 * @private {boolean} |
| 128 * @private | |
| 129 */ | 114 */ |
| 130 this.isLocalDestinationSearchInProgress_ = false; | 115 this.isLocalDestinationSearchInProgress_ = false; |
| 131 | 116 |
| 132 /** | 117 /** |
| 133 * Whether the destination store has already loaded or is loading all local | 118 * Whether the destination store has already loaded or is loading all local |
| 134 * destinations. | 119 * destinations. |
| 135 * @type {boolean} | 120 * @private {boolean} |
| 136 * @private | |
| 137 */ | 121 */ |
| 138 this.hasLoadedAllLocalDestinations_ = false; | 122 this.hasLoadedAllLocalDestinations_ = false; |
| 139 | 123 |
| 140 /** | 124 /** |
| 141 * Whether a search for privet destinations is in progress. | 125 * Whether a search for privet destinations is in progress. |
| 142 * @type {boolean} | 126 * @private {boolean} |
| 143 * @private | |
| 144 */ | 127 */ |
| 145 this.isPrivetDestinationSearchInProgress_ = false; | 128 this.isPrivetDestinationSearchInProgress_ = false; |
| 146 | 129 |
| 147 /** | 130 /** |
| 148 * Whether the destination store has already loaded or is loading all privet | 131 * Whether the destination store has already loaded or is loading all privet |
| 149 * destinations. | 132 * destinations. |
| 150 * @type {boolean} | 133 * @private {boolean} |
| 151 * @private | |
| 152 */ | 134 */ |
| 153 this.hasLoadedAllPrivetDestinations_ = false; | 135 this.hasLoadedAllPrivetDestinations_ = false; |
| 154 | 136 |
| 155 /** | 137 /** |
| 156 * ID of a timeout after the start of a privet search to end that privet | |
| 157 * search. | |
| 158 * @type {?number} | |
| 159 * @private | |
| 160 */ | |
| 161 this.privetSearchTimeout_ = null; | |
| 162 | |
| 163 /** | |
| 164 * Whether a search for extension destinations is in progress. | 138 * Whether a search for extension destinations is in progress. |
| 165 * @type {boolean} | 139 * @private {boolean} |
| 166 * @private | |
| 167 */ | 140 */ |
| 168 this.isExtensionDestinationSearchInProgress_ = false; | 141 this.isExtensionDestinationSearchInProgress_ = false; |
| 169 | 142 |
| 170 /** | 143 /** |
| 171 * Whether the destination store has already loaded all extension | 144 * Whether the destination store has already loaded all extension |
| 172 * destinations. | 145 * destinations. |
| 173 * @type {boolean} | 146 * @private {boolean} |
| 174 * @private | |
| 175 */ | 147 */ |
| 176 this.hasLoadedAllExtensionDestinations_ = false; | 148 this.hasLoadedAllExtensionDestinations_ = false; |
| 177 | 149 |
| 178 /** | 150 /** |
| 179 * ID of a timeout set at the start of an extension destination search. The | 151 * ID of a timeout set at the start of an extension destination search. The |
| 180 * timeout ends the search. | 152 * timeout ends the search. |
| 181 * @type {?number} | 153 * @private {?number} |
| 182 * @private | |
| 183 */ | 154 */ |
| 184 this.extensionSearchTimeout_ = null; | 155 this.extensionSearchTimeout_ = null; |
| 185 | 156 |
| 186 /** | 157 /** |
| 187 * MDNS service name of destination that we are waiting to register. | 158 * MDNS service name of destination that we are waiting to register. |
| 188 * @type {?string} | 159 * @private {?string} |
| 189 * @private | |
| 190 */ | 160 */ |
| 191 this.waitForRegisterDestination_ = null; | 161 this.waitForRegisterDestination_ = null; |
| 192 | 162 |
| 193 /** | 163 /** |
| 194 * Local destinations are CROS destinations on ChromeOS because they require | 164 * Local destinations are CROS destinations on ChromeOS because they require |
| 195 * extra setup. | 165 * extra setup. |
| 196 * @type {!print_preview.DestinationOrigin} | 166 * @private {!print_preview.DestinationOrigin} |
| 197 * @private | |
| 198 */ | 167 */ |
| 199 this.platformOrigin_ = cr.isChromeOS ? | 168 this.platformOrigin_ = cr.isChromeOS ? |
| 200 print_preview.DestinationOrigin.CROS : | 169 print_preview.DestinationOrigin.CROS : |
| 201 print_preview.DestinationOrigin.LOCAL; | 170 print_preview.DestinationOrigin.LOCAL; |
| 202 | 171 |
| 203 this.addEventListeners_(); | 172 this.addEventListeners_(); |
| 204 this.reset_(); | 173 this.reset_(); |
| 205 } | 174 } |
| 206 | 175 |
| 207 /** | 176 /** |
| (...skipping 20 matching lines...) Expand all Loading... | |
| 228 /** | 197 /** |
| 229 * Delay in milliseconds before the destination store ignores the initial | 198 * Delay in milliseconds before the destination store ignores the initial |
| 230 * destination ID and just selects any printer (since the initial destination | 199 * destination ID and just selects any printer (since the initial destination |
| 231 * was not found). | 200 * was not found). |
| 232 * @private {number} | 201 * @private {number} |
| 233 * @const | 202 * @const |
| 234 */ | 203 */ |
| 235 DestinationStore.AUTO_SELECT_TIMEOUT_ = 15000; | 204 DestinationStore.AUTO_SELECT_TIMEOUT_ = 15000; |
| 236 | 205 |
| 237 /** | 206 /** |
| 238 * Amount of time spent searching for privet destination, in milliseconds. | |
| 239 * @private {number} | |
| 240 * @const | |
| 241 */ | |
| 242 DestinationStore.PRIVET_SEARCH_DURATION_ = 5000; | |
| 243 | |
| 244 /** | |
| 245 * Maximum amount of time spent searching for extension destinations, in | 207 * Maximum amount of time spent searching for extension destinations, in |
| 246 * milliseconds. | 208 * milliseconds. |
| 247 * @private {number} | 209 * @private {number} |
| 248 * @const | 210 * @const |
| 249 */ | 211 */ |
| 250 DestinationStore.EXTENSION_SEARCH_DURATION_ = 5000; | 212 DestinationStore.EXTENSION_SEARCH_DURATION_ = 5000; |
| 251 | 213 |
| 252 /** | 214 /** |
| 253 * Human readable names for media sizes in the cloud print CDD. | 215 * Human readable names for media sizes in the cloud print CDD. |
| 254 * https://developers.google.com/cloud-print/docs/cdd | 216 * https://developers.google.com/cloud-print/docs/cdd |
| (...skipping 461 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 716 this.cloudPrintInterface_.printer( | 678 this.cloudPrintInterface_.printer( |
| 717 id, | 679 id, |
| 718 /** @type {print_preview.DestinationOrigin} */(origin), | 680 /** @type {print_preview.DestinationOrigin} */(origin), |
| 719 account); | 681 account); |
| 720 return true; | 682 return true; |
| 721 } | 683 } |
| 722 | 684 |
| 723 if (origin == print_preview.DestinationOrigin.PRIVET) { | 685 if (origin == print_preview.DestinationOrigin.PRIVET) { |
| 724 // TODO(noamsml): Resolve a specific printer instead of listing all | 686 // TODO(noamsml): Resolve a specific printer instead of listing all |
| 725 // privet printers in this case. | 687 // privet printers in this case. |
| 726 this.nativeLayer_.startGetPrivetDestinations(); | 688 cr.addWebUIListener('privet-printer-added', |
|
dpapad
2017/06/06 21:16:33
Is fetchPreselectedDestination_ only called once?
rbpotter
2017/06/07 02:37:46
Done. This can be called once or not at all, and s
| |
| 689 this.onPrivetPrinterAdded_.bind(this)); | |
| 690 this.nativeLayer_.getPrivetPrinters().then( | |
| 691 this.endPrivetPrinterSearch_.bind(this)); | |
| 727 | 692 |
| 728 // Create a fake selectedDestination_ that is not actually in the | 693 // Create a fake selectedDestination_ that is not actually in the |
| 729 // destination store. When the real destination is created, this | 694 // destination store. When the real destination is created, this |
| 730 // destination will be overwritten. | 695 // destination will be overwritten. |
| 731 this.selectedDestination_ = new print_preview.Destination( | 696 this.selectedDestination_ = new print_preview.Destination( |
| 732 id, | 697 id, |
| 733 print_preview.DestinationType.LOCAL, | 698 print_preview.DestinationType.LOCAL, |
| 734 print_preview.DestinationOrigin.PRIVET, | 699 print_preview.DestinationOrigin.PRIVET, |
| 735 name, | 700 name, |
| 736 false /*isRecent*/, | 701 false /*isRecent*/, |
| (...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1081 this.nativeLayer_.getPrinters().then( | 1046 this.nativeLayer_.getPrinters().then( |
| 1082 this.onLocalDestinationsSet_.bind(this)); | 1047 this.onLocalDestinationsSet_.bind(this)); |
| 1083 this.isLocalDestinationSearchInProgress_ = true; | 1048 this.isLocalDestinationSearchInProgress_ = true; |
| 1084 cr.dispatchSimpleEvent( | 1049 cr.dispatchSimpleEvent( |
| 1085 this, DestinationStore.EventType.DESTINATION_SEARCH_STARTED); | 1050 this, DestinationStore.EventType.DESTINATION_SEARCH_STARTED); |
| 1086 } | 1051 } |
| 1087 }, | 1052 }, |
| 1088 | 1053 |
| 1089 /** Initiates loading of privet print destinations. */ | 1054 /** Initiates loading of privet print destinations. */ |
| 1090 startLoadPrivetDestinations: function() { | 1055 startLoadPrivetDestinations: function() { |
| 1091 if (!this.hasLoadedAllPrivetDestinations_) { | 1056 if (this.hasLoadedAllPrivetDestinations_) |
| 1092 if (this.privetDestinationSearchInProgress_) | 1057 return; |
| 1093 clearTimeout(this.privetSearchTimeout_); | 1058 this.isPrivetDestinationSearchInProgress_ = true; |
| 1094 this.isPrivetDestinationSearchInProgress_ = true; | 1059 cr.addWebUIListener('privet-printer-added', |
|
dpapad
2017/06/06 21:16:33
Same question here. Do we need to register this li
rbpotter
2017/06/07 02:37:46
Done.
| |
| 1095 this.nativeLayer_.startGetPrivetDestinations(); | 1060 this.onPrivetPrinterAdded_.bind(this)); |
| 1096 cr.dispatchSimpleEvent( | 1061 this.nativeLayer_.getPrivetPrinters().then( |
| 1097 this, DestinationStore.EventType.DESTINATION_SEARCH_STARTED); | 1062 this.endPrivetPrinterSearch_.bind(this), |
| 1098 this.privetSearchTimeout_ = setTimeout( | 1063 function() { |
| 1099 this.endPrivetPrinterSearch_.bind(this), | 1064 // Rejected by C++, indicating privet printing is disabled. |
| 1100 DestinationStore.PRIVET_SEARCH_DURATION_); | 1065 this.hasLoadedAllPrivetDestinations_ = true; |
| 1101 } | 1066 this.isPrivetDestinationSearchInProgress_ = false; |
| 1067 }.bind(this)); | |
| 1068 cr.dispatchSimpleEvent( | |
| 1069 this, DestinationStore.EventType.DESTINATION_SEARCH_STARTED); | |
| 1102 }, | 1070 }, |
| 1103 | 1071 |
| 1104 /** Initializes loading of extension managed print destinations. */ | 1072 /** Initializes loading of extension managed print destinations. */ |
| 1105 startLoadExtensionDestinations: function() { | 1073 startLoadExtensionDestinations: function() { |
| 1106 if (this.hasLoadedAllExtensionDestinations_) | 1074 if (this.hasLoadedAllExtensionDestinations_) |
| 1107 return; | 1075 return; |
| 1108 | 1076 |
| 1109 if (this.isExtensionDestinationSearchInProgress_) | 1077 if (this.isExtensionDestinationSearchInProgress_) |
| 1110 clearTimeout(this.extensionSearchTimeout_); | 1078 clearTimeout(this.extensionSearchTimeout_); |
| 1111 | 1079 |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1157 this.startLoadCloudDestinations(); | 1125 this.startLoadCloudDestinations(); |
| 1158 this.startLoadLocalDestinations(); | 1126 this.startLoadLocalDestinations(); |
| 1159 this.startLoadPrivetDestinations(); | 1127 this.startLoadPrivetDestinations(); |
| 1160 this.startLoadExtensionDestinations(); | 1128 this.startLoadExtensionDestinations(); |
| 1161 }, | 1129 }, |
| 1162 | 1130 |
| 1163 /** | 1131 /** |
| 1164 * Wait for a privet device to be registered. | 1132 * Wait for a privet device to be registered. |
| 1165 */ | 1133 */ |
| 1166 waitForRegister: function(id) { | 1134 waitForRegister: function(id) { |
| 1167 this.nativeLayer_.startGetPrivetDestinations(); | 1135 cr.addWebUIListener('privet-printer-added', |
| 1136 this.onPrivetPrinterAdded_.bind(this)); | |
| 1137 this.nativeLayer_.getPrivetPrinters().then( | |
| 1138 this.endPrivetPrinterSearch_.bind(this)); | |
| 1168 this.waitForRegisterDestination_ = id; | 1139 this.waitForRegisterDestination_ = id; |
| 1169 }, | 1140 }, |
| 1170 | 1141 |
| 1171 /** | 1142 /** |
| 1172 * Event handler for {@code | 1143 * Event handler for {@code |
| 1173 * print_preview.NativeLayer.EventType.PROVISIONAL_DESTINATION_RESOLVED}. | 1144 * print_preview.NativeLayer.EventType.PROVISIONAL_DESTINATION_RESOLVED}. |
| 1174 * Currently assumes the provisional destination is an extension | 1145 * Currently assumes the provisional destination is an extension |
| 1175 * destination. | 1146 * destination. |
| 1176 * Called when a provisional destination resolvement attempt finishes. | 1147 * Called when a provisional destination resolvement attempt finishes. |
| 1177 * The provisional destination is removed from the store and replaced with | 1148 * The provisional destination is removed from the store and replaced with |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1296 this, | 1267 this, |
| 1297 DestinationStore.EventType.SELECTED_DESTINATION_CAPABILITIES_READY); | 1268 DestinationStore.EventType.SELECTED_DESTINATION_CAPABILITIES_READY); |
| 1298 } | 1269 } |
| 1299 }, | 1270 }, |
| 1300 | 1271 |
| 1301 /** | 1272 /** |
| 1302 * Called when the search for Privet printers is done. | 1273 * Called when the search for Privet printers is done. |
| 1303 * @private | 1274 * @private |
| 1304 */ | 1275 */ |
| 1305 endPrivetPrinterSearch_: function() { | 1276 endPrivetPrinterSearch_: function() { |
| 1306 this.nativeLayer_.stopGetPrivetDestinations(); | |
| 1307 this.isPrivetDestinationSearchInProgress_ = false; | 1277 this.isPrivetDestinationSearchInProgress_ = false; |
| 1308 this.hasLoadedAllPrivetDestinations_ = true; | 1278 this.hasLoadedAllPrivetDestinations_ = true; |
| 1309 cr.dispatchSimpleEvent( | 1279 cr.dispatchSimpleEvent( |
| 1310 this, DestinationStore.EventType.DESTINATION_SEARCH_DONE); | 1280 this, DestinationStore.EventType.DESTINATION_SEARCH_DONE); |
| 1311 }, | 1281 }, |
| 1312 | 1282 |
| 1313 /** | 1283 /** |
| 1314 * Called when loading of extension managed printers is done. | 1284 * Called when loading of extension managed printers is done. |
| 1315 * @private | 1285 * @private |
| 1316 */ | 1286 */ |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1372 this.tracker_.add( | 1342 this.tracker_.add( |
| 1373 nativeLayerEventTarget, | 1343 nativeLayerEventTarget, |
| 1374 print_preview.NativeLayer.EventType.GET_CAPABILITIES_FAIL, | 1344 print_preview.NativeLayer.EventType.GET_CAPABILITIES_FAIL, |
| 1375 this.onGetCapabilitiesFail_.bind(this)); | 1345 this.onGetCapabilitiesFail_.bind(this)); |
| 1376 this.tracker_.add( | 1346 this.tracker_.add( |
| 1377 nativeLayerEventTarget, | 1347 nativeLayerEventTarget, |
| 1378 print_preview.NativeLayer.EventType.DESTINATIONS_RELOAD, | 1348 print_preview.NativeLayer.EventType.DESTINATIONS_RELOAD, |
| 1379 this.onDestinationsReload_.bind(this)); | 1349 this.onDestinationsReload_.bind(this)); |
| 1380 this.tracker_.add( | 1350 this.tracker_.add( |
| 1381 nativeLayerEventTarget, | 1351 nativeLayerEventTarget, |
| 1382 print_preview.NativeLayer.EventType.PRIVET_PRINTER_CHANGED, | |
| 1383 this.onPrivetPrinterAdded_.bind(this)); | |
| 1384 this.tracker_.add( | |
| 1385 nativeLayerEventTarget, | |
| 1386 print_preview.NativeLayer.EventType.PRIVET_CAPABILITIES_SET, | 1352 print_preview.NativeLayer.EventType.PRIVET_CAPABILITIES_SET, |
| 1387 this.onPrivetCapabilitiesSet_.bind(this)); | 1353 this.onPrivetCapabilitiesSet_.bind(this)); |
| 1388 this.tracker_.add( | 1354 this.tracker_.add( |
| 1389 nativeLayerEventTarget, | 1355 nativeLayerEventTarget, |
| 1390 print_preview.NativeLayer.EventType.EXTENSION_CAPABILITIES_SET, | 1356 print_preview.NativeLayer.EventType.EXTENSION_CAPABILITIES_SET, |
| 1391 this.onExtensionCapabilitiesSet_.bind(this)); | 1357 this.onExtensionCapabilitiesSet_.bind(this)); |
| 1392 this.tracker_.add( | 1358 this.tracker_.add( |
| 1393 nativeLayerEventTarget, | 1359 nativeLayerEventTarget, |
| 1394 print_preview.NativeLayer.EventType.PROVISIONAL_DESTINATION_RESOLVED, | 1360 print_preview.NativeLayer.EventType.PROVISIONAL_DESTINATION_RESOLVED, |
| 1395 this.handleProvisionalDestinationResolved_.bind(this)); | 1361 this.handleProvisionalDestinationResolved_.bind(this)); |
| (...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1582 onCloudPrintProcessInviteDone_: function(event) { | 1548 onCloudPrintProcessInviteDone_: function(event) { |
| 1583 if (event.accept && event.printer) { | 1549 if (event.accept && event.printer) { |
| 1584 // Hint the destination list to promote this new destination. | 1550 // Hint the destination list to promote this new destination. |
| 1585 event.printer.isRecent = true; | 1551 event.printer.isRecent = true; |
| 1586 this.insertDestination_(event.printer); | 1552 this.insertDestination_(event.printer); |
| 1587 } | 1553 } |
| 1588 }, | 1554 }, |
| 1589 | 1555 |
| 1590 /** | 1556 /** |
| 1591 * Called when a Privet printer is added to the local network. | 1557 * Called when a Privet printer is added to the local network. |
| 1592 * @param {{printer: {serviceName: string, | 1558 * @param {!{serviceName: string, |
| 1593 * name: string, | 1559 * name: string, |
| 1594 * hasLocalPrinting: boolean, | 1560 * hasLocalPrinting: boolean, |
| 1595 * isUnregistered: boolean, | 1561 * isUnregistered: boolean, |
| 1596 * cloudID: string}}} event Contains information about | 1562 * cloudID: string}} printer Information about the added printer. |
| 1597 * the added printer. | |
| 1598 * @private | 1563 * @private |
| 1599 */ | 1564 */ |
| 1600 onPrivetPrinterAdded_: function(event) { | 1565 onPrivetPrinterAdded_: function(printer) { |
| 1601 if (event.printer.serviceName == this.waitForRegisterDestination_ && | 1566 if (printer.serviceName == this.waitForRegisterDestination_ && |
| 1602 !event.printer.isUnregistered) { | 1567 !printer.isUnregistered) { |
| 1603 this.waitForRegisterDestination_ = null; | 1568 this.waitForRegisterDestination_ = null; |
| 1604 this.onDestinationsReload_(); | 1569 this.onDestinationsReload_(); |
| 1605 } else { | 1570 } else { |
| 1606 this.insertDestinations_( | 1571 this.insertDestinations_( |
| 1607 print_preview.PrivetDestinationParser.parse(event.printer)); | 1572 print_preview.PrivetDestinationParser.parse(printer)); |
| 1608 } | 1573 } |
| 1609 }, | 1574 }, |
| 1610 | 1575 |
| 1611 /** | 1576 /** |
| 1612 * Called when capabilities for a privet printer are set. | 1577 * Called when capabilities for a privet printer are set. |
| 1613 * @param {Object} event Contains the capabilities and printer ID. | 1578 * @param {Object} event Contains the capabilities and printer ID. |
| 1614 * @private | 1579 * @private |
| 1615 */ | 1580 */ |
| 1616 onPrivetCapabilitiesSet_: function(event) { | 1581 onPrivetCapabilitiesSet_: function(event) { |
| 1617 var destinations = | 1582 var destinations = |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1704 return this.getDestinationKey_( | 1669 return this.getDestinationKey_( |
| 1705 destination.origin, destination.id, destination.account); | 1670 destination.origin, destination.id, destination.account); |
| 1706 } | 1671 } |
| 1707 }; | 1672 }; |
| 1708 | 1673 |
| 1709 // Export | 1674 // Export |
| 1710 return { | 1675 return { |
| 1711 DestinationStore: DestinationStore | 1676 DestinationStore: DestinationStore |
| 1712 }; | 1677 }; |
| 1713 }); | 1678 }); |
| OLD | NEW |