| 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 333 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 588 * @param {?string} serializedDefaultDestinationSelectionRulesStr Serialized | 550 * @param {?string} serializedDefaultDestinationSelectionRulesStr Serialized |
| 589 * default destination selection rules. | 551 * default destination selection rules. |
| 590 */ | 552 */ |
| 591 init: function( | 553 init: function( |
| 592 isInAppKioskMode, | 554 isInAppKioskMode, |
| 593 systemDefaultDestinationId, | 555 systemDefaultDestinationId, |
| 594 serializedDefaultDestinationSelectionRulesStr) { | 556 serializedDefaultDestinationSelectionRulesStr) { |
| 595 this.pdfPrinterEnabled_ = !isInAppKioskMode; | 557 this.pdfPrinterEnabled_ = !isInAppKioskMode; |
| 596 this.systemDefaultDestinationId_ = systemDefaultDestinationId; | 558 this.systemDefaultDestinationId_ = systemDefaultDestinationId; |
| 597 this.createLocalPdfPrintDestination_(); | 559 this.createLocalPdfPrintDestination_(); |
| 560 cr.addWebUIListener('privet-printer-added', |
| 561 this.onPrivetPrinterAdded_.bind(this)); |
| 598 cr.addWebUIListener('extension-printers-added', | 562 cr.addWebUIListener('extension-printers-added', |
| 599 this.onExtensionPrintersAdded_.bind(this)); | 563 this.onExtensionPrintersAdded_.bind(this)); |
| 600 | 564 |
| 601 if (!this.appState_.isSelectedDestinationValid()) { | 565 if (!this.appState_.isSelectedDestinationValid()) { |
| 602 var destinationMatch = this.convertToDestinationMatch_( | 566 var destinationMatch = this.convertToDestinationMatch_( |
| 603 serializedDefaultDestinationSelectionRulesStr); | 567 serializedDefaultDestinationSelectionRulesStr); |
| 604 if (destinationMatch) { | 568 if (destinationMatch) { |
| 605 this.fetchMatchingDestination_(destinationMatch); | 569 this.fetchMatchingDestination_(destinationMatch); |
| 606 return; | 570 return; |
| 607 } | 571 } |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 718 this.cloudPrintInterface_.printer( | 682 this.cloudPrintInterface_.printer( |
| 719 id, | 683 id, |
| 720 /** @type {print_preview.DestinationOrigin} */(origin), | 684 /** @type {print_preview.DestinationOrigin} */(origin), |
| 721 account); | 685 account); |
| 722 return true; | 686 return true; |
| 723 } | 687 } |
| 724 | 688 |
| 725 if (origin == print_preview.DestinationOrigin.PRIVET) { | 689 if (origin == print_preview.DestinationOrigin.PRIVET) { |
| 726 // TODO(noamsml): Resolve a specific printer instead of listing all | 690 // TODO(noamsml): Resolve a specific printer instead of listing all |
| 727 // privet printers in this case. | 691 // privet printers in this case. |
| 728 this.nativeLayer_.startGetPrivetDestinations(); | 692 this.nativeLayer_.getPrivetPrinters().then( |
| 693 this.endPrivetPrinterSearch_.bind(this)); |
| 729 | 694 |
| 730 // Create a fake selectedDestination_ that is not actually in the | 695 // Create a fake selectedDestination_ that is not actually in the |
| 731 // destination store. When the real destination is created, this | 696 // destination store. When the real destination is created, this |
| 732 // destination will be overwritten. | 697 // destination will be overwritten. |
| 733 this.selectedDestination_ = new print_preview.Destination( | 698 this.selectedDestination_ = new print_preview.Destination( |
| 734 id, | 699 id, |
| 735 print_preview.DestinationType.LOCAL, | 700 print_preview.DestinationType.LOCAL, |
| 736 print_preview.DestinationOrigin.PRIVET, | 701 print_preview.DestinationOrigin.PRIVET, |
| 737 name, | 702 name, |
| 738 false /*isRecent*/, | 703 false /*isRecent*/, |
| (...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1083 this.nativeLayer_.getPrinters().then( | 1048 this.nativeLayer_.getPrinters().then( |
| 1084 this.onLocalDestinationsSet_.bind(this)); | 1049 this.onLocalDestinationsSet_.bind(this)); |
| 1085 this.isLocalDestinationSearchInProgress_ = true; | 1050 this.isLocalDestinationSearchInProgress_ = true; |
| 1086 cr.dispatchSimpleEvent( | 1051 cr.dispatchSimpleEvent( |
| 1087 this, DestinationStore.EventType.DESTINATION_SEARCH_STARTED); | 1052 this, DestinationStore.EventType.DESTINATION_SEARCH_STARTED); |
| 1088 } | 1053 } |
| 1089 }, | 1054 }, |
| 1090 | 1055 |
| 1091 /** Initiates loading of privet print destinations. */ | 1056 /** Initiates loading of privet print destinations. */ |
| 1092 startLoadPrivetDestinations: function() { | 1057 startLoadPrivetDestinations: function() { |
| 1093 if (!this.hasLoadedAllPrivetDestinations_) { | 1058 if (this.hasLoadedAllPrivetDestinations_) |
| 1094 if (this.privetDestinationSearchInProgress_) | 1059 return; |
| 1095 clearTimeout(this.privetSearchTimeout_); | 1060 this.isPrivetDestinationSearchInProgress_ = true; |
| 1096 this.isPrivetDestinationSearchInProgress_ = true; | 1061 this.nativeLayer_.getPrivetPrinters().then( |
| 1097 this.nativeLayer_.startGetPrivetDestinations(); | 1062 this.endPrivetPrinterSearch_.bind(this), |
| 1098 cr.dispatchSimpleEvent( | 1063 function() { |
| 1099 this, DestinationStore.EventType.DESTINATION_SEARCH_STARTED); | 1064 // Rejected by C++, indicating privet printing is disabled. |
| 1100 this.privetSearchTimeout_ = setTimeout( | 1065 this.hasLoadedAllPrivetDestinations_ = true; |
| 1101 this.endPrivetPrinterSearch_.bind(this), | 1066 this.isPrivetDestinationSearchInProgress_ = false; |
| 1102 DestinationStore.PRIVET_SEARCH_DURATION_); | 1067 }.bind(this)); |
| 1103 } | 1068 cr.dispatchSimpleEvent( |
| 1069 this, DestinationStore.EventType.DESTINATION_SEARCH_STARTED); |
| 1104 }, | 1070 }, |
| 1105 | 1071 |
| 1106 /** Initializes loading of extension managed print destinations. */ | 1072 /** Initializes loading of extension managed print destinations. */ |
| 1107 startLoadExtensionDestinations: function() { | 1073 startLoadExtensionDestinations: function() { |
| 1108 if (this.hasLoadedAllExtensionDestinations_) | 1074 if (this.hasLoadedAllExtensionDestinations_) |
| 1109 return; | 1075 return; |
| 1110 | 1076 |
| 1111 if (this.isExtensionDestinationSearchInProgress_) | 1077 if (this.isExtensionDestinationSearchInProgress_) |
| 1112 clearTimeout(this.extensionSearchTimeout_); | 1078 clearTimeout(this.extensionSearchTimeout_); |
| 1113 | 1079 |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1156 this.startLoadCloudDestinations(); | 1122 this.startLoadCloudDestinations(); |
| 1157 this.startLoadLocalDestinations(); | 1123 this.startLoadLocalDestinations(); |
| 1158 this.startLoadPrivetDestinations(); | 1124 this.startLoadPrivetDestinations(); |
| 1159 this.startLoadExtensionDestinations(); | 1125 this.startLoadExtensionDestinations(); |
| 1160 }, | 1126 }, |
| 1161 | 1127 |
| 1162 /** | 1128 /** |
| 1163 * Wait for a privet device to be registered. | 1129 * Wait for a privet device to be registered. |
| 1164 */ | 1130 */ |
| 1165 waitForRegister: function(id) { | 1131 waitForRegister: function(id) { |
| 1166 this.nativeLayer_.startGetPrivetDestinations(); | 1132 this.nativeLayer_.getPrivetPrinters().then( |
| 1133 this.endPrivetPrinterSearch_.bind(this)); |
| 1167 this.waitForRegisterDestination_ = id; | 1134 this.waitForRegisterDestination_ = id; |
| 1168 }, | 1135 }, |
| 1169 | 1136 |
| 1170 /** | 1137 /** |
| 1171 * Event handler for {@code | 1138 * Event handler for {@code |
| 1172 * print_preview.NativeLayer.EventType.PROVISIONAL_DESTINATION_RESOLVED}. | 1139 * print_preview.NativeLayer.EventType.PROVISIONAL_DESTINATION_RESOLVED}. |
| 1173 * Currently assumes the provisional destination is an extension | 1140 * Currently assumes the provisional destination is an extension |
| 1174 * destination. | 1141 * destination. |
| 1175 * Called when a provisional destination resolvement attempt finishes. | 1142 * Called when a provisional destination resolvement attempt finishes. |
| 1176 * The provisional destination is removed from the store and replaced with | 1143 * The provisional destination is removed from the store and replaced with |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1295 this, | 1262 this, |
| 1296 DestinationStore.EventType.SELECTED_DESTINATION_CAPABILITIES_READY); | 1263 DestinationStore.EventType.SELECTED_DESTINATION_CAPABILITIES_READY); |
| 1297 } | 1264 } |
| 1298 }, | 1265 }, |
| 1299 | 1266 |
| 1300 /** | 1267 /** |
| 1301 * Called when the search for Privet printers is done. | 1268 * Called when the search for Privet printers is done. |
| 1302 * @private | 1269 * @private |
| 1303 */ | 1270 */ |
| 1304 endPrivetPrinterSearch_: function() { | 1271 endPrivetPrinterSearch_: function() { |
| 1305 this.nativeLayer_.stopGetPrivetDestinations(); | |
| 1306 this.isPrivetDestinationSearchInProgress_ = false; | 1272 this.isPrivetDestinationSearchInProgress_ = false; |
| 1307 this.hasLoadedAllPrivetDestinations_ = true; | 1273 this.hasLoadedAllPrivetDestinations_ = true; |
| 1308 cr.dispatchSimpleEvent( | 1274 cr.dispatchSimpleEvent( |
| 1309 this, DestinationStore.EventType.DESTINATION_SEARCH_DONE); | 1275 this, DestinationStore.EventType.DESTINATION_SEARCH_DONE); |
| 1310 }, | 1276 }, |
| 1311 | 1277 |
| 1312 /** | 1278 /** |
| 1313 * Called when loading of extension managed printers is done. | 1279 * Called when loading of extension managed printers is done. |
| 1314 * @private | 1280 * @private |
| 1315 */ | 1281 */ |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1371 this.tracker_.add( | 1337 this.tracker_.add( |
| 1372 nativeLayerEventTarget, | 1338 nativeLayerEventTarget, |
| 1373 print_preview.NativeLayer.EventType.GET_CAPABILITIES_FAIL, | 1339 print_preview.NativeLayer.EventType.GET_CAPABILITIES_FAIL, |
| 1374 this.onGetCapabilitiesFail_.bind(this)); | 1340 this.onGetCapabilitiesFail_.bind(this)); |
| 1375 this.tracker_.add( | 1341 this.tracker_.add( |
| 1376 nativeLayerEventTarget, | 1342 nativeLayerEventTarget, |
| 1377 print_preview.NativeLayer.EventType.DESTINATIONS_RELOAD, | 1343 print_preview.NativeLayer.EventType.DESTINATIONS_RELOAD, |
| 1378 this.onDestinationsReload_.bind(this)); | 1344 this.onDestinationsReload_.bind(this)); |
| 1379 this.tracker_.add( | 1345 this.tracker_.add( |
| 1380 nativeLayerEventTarget, | 1346 nativeLayerEventTarget, |
| 1381 print_preview.NativeLayer.EventType.PRIVET_PRINTER_CHANGED, | |
| 1382 this.onPrivetPrinterAdded_.bind(this)); | |
| 1383 this.tracker_.add( | |
| 1384 nativeLayerEventTarget, | |
| 1385 print_preview.NativeLayer.EventType.PRIVET_CAPABILITIES_SET, | 1347 print_preview.NativeLayer.EventType.PRIVET_CAPABILITIES_SET, |
| 1386 this.onPrivetCapabilitiesSet_.bind(this)); | 1348 this.onPrivetCapabilitiesSet_.bind(this)); |
| 1387 this.tracker_.add( | 1349 this.tracker_.add( |
| 1388 nativeLayerEventTarget, | 1350 nativeLayerEventTarget, |
| 1389 print_preview.NativeLayer.EventType.EXTENSION_CAPABILITIES_SET, | 1351 print_preview.NativeLayer.EventType.EXTENSION_CAPABILITIES_SET, |
| 1390 this.onExtensionCapabilitiesSet_.bind(this)); | 1352 this.onExtensionCapabilitiesSet_.bind(this)); |
| 1391 this.tracker_.add( | 1353 this.tracker_.add( |
| 1392 nativeLayerEventTarget, | 1354 nativeLayerEventTarget, |
| 1393 print_preview.NativeLayer.EventType.PROVISIONAL_DESTINATION_RESOLVED, | 1355 print_preview.NativeLayer.EventType.PROVISIONAL_DESTINATION_RESOLVED, |
| 1394 this.handleProvisionalDestinationResolved_.bind(this)); | 1356 this.handleProvisionalDestinationResolved_.bind(this)); |
| (...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1581 onCloudPrintProcessInviteDone_: function(event) { | 1543 onCloudPrintProcessInviteDone_: function(event) { |
| 1582 if (event.accept && event.printer) { | 1544 if (event.accept && event.printer) { |
| 1583 // Hint the destination list to promote this new destination. | 1545 // Hint the destination list to promote this new destination. |
| 1584 event.printer.isRecent = true; | 1546 event.printer.isRecent = true; |
| 1585 this.insertDestination_(event.printer); | 1547 this.insertDestination_(event.printer); |
| 1586 } | 1548 } |
| 1587 }, | 1549 }, |
| 1588 | 1550 |
| 1589 /** | 1551 /** |
| 1590 * Called when a Privet printer is added to the local network. | 1552 * Called when a Privet printer is added to the local network. |
| 1591 * @param {{printer: {serviceName: string, | 1553 * @param {!{serviceName: string, |
| 1592 * name: string, | 1554 * name: string, |
| 1593 * hasLocalPrinting: boolean, | 1555 * hasLocalPrinting: boolean, |
| 1594 * isUnregistered: boolean, | 1556 * isUnregistered: boolean, |
| 1595 * cloudID: string}}} event Contains information about | 1557 * cloudID: string}} printer Information about the added printer. |
| 1596 * the added printer. | |
| 1597 * @private | 1558 * @private |
| 1598 */ | 1559 */ |
| 1599 onPrivetPrinterAdded_: function(event) { | 1560 onPrivetPrinterAdded_: function(printer) { |
| 1600 if (event.printer.serviceName == this.waitForRegisterDestination_ && | 1561 if (printer.serviceName == this.waitForRegisterDestination_ && |
| 1601 !event.printer.isUnregistered) { | 1562 !printer.isUnregistered) { |
| 1602 this.waitForRegisterDestination_ = null; | 1563 this.waitForRegisterDestination_ = null; |
| 1603 this.onDestinationsReload_(); | 1564 this.onDestinationsReload_(); |
| 1604 } else { | 1565 } else { |
| 1605 this.insertDestinations_( | 1566 this.insertDestinations_( |
| 1606 print_preview.PrivetDestinationParser.parse(event.printer)); | 1567 print_preview.PrivetDestinationParser.parse(printer)); |
| 1607 } | 1568 } |
| 1608 }, | 1569 }, |
| 1609 | 1570 |
| 1610 /** | 1571 /** |
| 1611 * Called when capabilities for a privet printer are set. | 1572 * Called when capabilities for a privet printer are set. |
| 1612 * @param {Object} event Contains the capabilities and printer ID. | 1573 * @param {Object} event Contains the capabilities and printer ID. |
| 1613 * @private | 1574 * @private |
| 1614 */ | 1575 */ |
| 1615 onPrivetCapabilitiesSet_: function(event) { | 1576 onPrivetCapabilitiesSet_: function(event) { |
| 1616 var destinations = | 1577 var destinations = |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1702 return this.getDestinationKey_( | 1663 return this.getDestinationKey_( |
| 1703 destination.origin, destination.id, destination.account); | 1664 destination.origin, destination.id, destination.account); |
| 1704 } | 1665 } |
| 1705 }; | 1666 }; |
| 1706 | 1667 |
| 1707 // Export | 1668 // Export |
| 1708 return { | 1669 return { |
| 1709 DestinationStore: DestinationStore | 1670 DestinationStore: DestinationStore |
| 1710 }; | 1671 }; |
| 1711 }); | 1672 }); |
| OLD | NEW |