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

Side by Side Diff: chrome/browser/resources/print_preview/data/destination_store.js

Issue 575333002: Compile print_preview, part 2: reduce down to 260 errors (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@I_print_preview
Patch Set: revert movement of enums: now handle in compiler pass Created 6 years, 2 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 (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.
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 48
49 /** 49 /**
50 * Internal backing store for the data store. 50 * Internal backing store for the data store.
51 * @type {!Array.<!print_preview.Destination>} 51 * @type {!Array.<!print_preview.Destination>}
52 * @private 52 * @private
53 */ 53 */
54 this.destinations_ = []; 54 this.destinations_ = [];
55 55
56 /** 56 /**
57 * Cache used for constant lookup of destinations by origin and id. 57 * Cache used for constant lookup of destinations by origin and id.
58 * @type {object.<string, !print_preview.Destination>} 58 * @type {Object.<string, !print_preview.Destination>}
59 * @private 59 * @private
60 */ 60 */
61 this.destinationMap_ = {}; 61 this.destinationMap_ = {};
62 62
63 /** 63 /**
64 * Currently selected destination. 64 * Currently selected destination.
65 * @type {print_preview.Destination} 65 * @type {print_preview.Destination}
66 * @private 66 * @private
67 */ 67 */
68 this.selectedDestination_ = null; 68 this.selectedDestination_ = null;
(...skipping 16 matching lines...) Expand all
85 /** 85 /**
86 * Whether PDF printer is enabled. It's disabled, for example, in App Kiosk 86 * Whether PDF printer is enabled. It's disabled, for example, in App Kiosk
87 * mode. 87 * mode.
88 * @type {boolean} 88 * @type {boolean}
89 * @private 89 * @private
90 */ 90 */
91 this.pdfPrinterEnabled_ = false; 91 this.pdfPrinterEnabled_ = false;
92 92
93 /** 93 /**
94 * Used to fetch cloud-based print destinations. 94 * Used to fetch cloud-based print destinations.
95 * @type {print_preview.CloudPrintInterface} 95 * @type {cloudprint.CloudPrintInterface}
96 * @private 96 * @private
97 */ 97 */
98 this.cloudPrintInterface_ = null; 98 this.cloudPrintInterface_ = null;
99 99
100 /** 100 /**
101 * Maps user account to the list of origins for which destinations are 101 * Maps user account to the list of origins for which destinations are
102 * already loaded. 102 * already loaded.
103 * @type {!Object.<string, Array.<print_preview.Destination.Origin>>} 103 * @type {!Object.<string, Array.<print_preview.Destination.Origin>>}
104 * @private 104 * @private
105 */ 105 */
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
264 */ 264 */
265 get isLocalDestinationSearchInProgress() { 265 get isLocalDestinationSearchInProgress() {
266 return this.isLocalDestinationSearchInProgress_ || 266 return this.isLocalDestinationSearchInProgress_ ||
267 this.isPrivetDestinationSearchInProgress_; 267 this.isPrivetDestinationSearchInProgress_;
268 }, 268 },
269 269
270 /** 270 /**
271 * @return {boolean} Whether a search for cloud destinations is in progress. 271 * @return {boolean} Whether a search for cloud destinations is in progress.
272 */ 272 */
273 get isCloudDestinationSearchInProgress() { 273 get isCloudDestinationSearchInProgress() {
274 return this.cloudPrintInterface_ && 274 return !!this.cloudPrintInterface_ &&
275 this.cloudPrintInterface_.isCloudDestinationSearchInProgress; 275 this.cloudPrintInterface_.isCloudDestinationSearchInProgress;
276 }, 276 },
277 277
278 /** 278 /**
279 * Initializes the destination store. Sets the initially selected 279 * Initializes the destination store. Sets the initially selected
280 * destination. If any inserted destinations match this ID, that destination 280 * destination. If any inserted destinations match this ID, that destination
281 * will be automatically selected. This method must be called after the 281 * will be automatically selected. This method must be called after the
282 * print_preview.AppState has been initialized. 282 * print_preview.AppState has been initialized.
283 * @param {boolean} isInAppKioskMode Whether the print preview is in App 283 * @param {boolean} isInAppKioskMode Whether the print preview is in App
284 * Kiosk mode. 284 * Kiosk mode.
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
336 this, 336 this,
337 DestinationStore.EventType.CACHED_SELECTED_DESTINATION_INFO_READY); 337 DestinationStore.EventType.CACHED_SELECTED_DESTINATION_INFO_READY);
338 } else { 338 } else {
339 this.selectDefaultDestination_(); 339 this.selectDefaultDestination_();
340 } 340 }
341 } 341 }
342 }, 342 },
343 343
344 /** 344 /**
345 * Sets the destination store's Google Cloud Print interface. 345 * Sets the destination store's Google Cloud Print interface.
346 * @param {!print_preview.CloudPrintInterface} cloudPrintInterface Interface 346 * @param {!cloudprint.CloudPrintInterface} cloudPrintInterface Interface
347 * to set. 347 * to set.
348 */ 348 */
349 setCloudPrintInterface: function(cloudPrintInterface) { 349 setCloudPrintInterface: function(cloudPrintInterface) {
350 this.cloudPrintInterface_ = cloudPrintInterface; 350 this.cloudPrintInterface_ = cloudPrintInterface;
351 this.tracker_.add( 351 this.tracker_.add(
352 this.cloudPrintInterface_, 352 this.cloudPrintInterface_,
353 cloudprint.CloudPrintInterface.EventType.SEARCH_DONE, 353 cloudprint.CloudPrintInterface.EventType.SEARCH_DONE,
354 this.onCloudPrintSearchDone_.bind(this)); 354 this.onCloudPrintSearchDone_.bind(this));
355 this.tracker_.add( 355 this.tracker_.add(
356 this.cloudPrintInterface_, 356 this.cloudPrintInterface_,
(...skipping 20 matching lines...) Expand all
377 hasOnlyDefaultCloudDestinations: function() { 377 hasOnlyDefaultCloudDestinations: function() {
378 // TODO: Move the logic to print_preview. 378 // TODO: Move the logic to print_preview.
379 return this.destinations_.every(function(dest) { 379 return this.destinations_.every(function(dest) {
380 return dest.isLocal || 380 return dest.isLocal ||
381 dest.id == print_preview.Destination.GooglePromotedId.DOCS || 381 dest.id == print_preview.Destination.GooglePromotedId.DOCS ||
382 dest.id == print_preview.Destination.GooglePromotedId.FEDEX; 382 dest.id == print_preview.Destination.GooglePromotedId.FEDEX;
383 }); 383 });
384 }, 384 },
385 385
386 /** 386 /**
387 * @param {!print_preview.Destination} destination Destination to select. 387 * @param {print_preview.Destination} destination Destination to select.
388 */ 388 */
389 selectDestination: function(destination) { 389 selectDestination: function(destination) {
390 this.isInAutoSelectMode_ = false; 390 this.isInAutoSelectMode_ = false;
391 // When auto select expires, DESTINATION_SELECT event has to be dispatched 391 // When auto select expires, DESTINATION_SELECT event has to be dispatched
392 // anyway (see isAutoSelectDestinationInProgress() logic). 392 // anyway (see isAutoSelectDestinationInProgress() logic).
393 if (this.autoSelectTimeout_) { 393 if (this.autoSelectTimeout_) {
394 clearTimeout(this.autoSelectTimeout_); 394 clearTimeout(this.autoSelectTimeout_);
395 this.autoSelectTimeout_ = null; 395 this.autoSelectTimeout_ = null;
396 } else if (destination == this.selectedDestination_) { 396 } else if (destination == this.selectedDestination_) {
397 return; 397 return;
(...skipping 429 matching lines...) Expand 10 before | Expand all | Expand 10 after
827 * @private 827 * @private
828 */ 828 */
829 onCloudPrintPrinterDone_: function(event) { 829 onCloudPrintPrinterDone_: function(event) {
830 this.updateDestination_(event.printer); 830 this.updateDestination_(event.printer);
831 }, 831 },
832 832
833 /** 833 /**
834 * Called when the Google Cloud Print interface fails to lookup a 834 * Called when the Google Cloud Print interface fails to lookup a
835 * destination. Selects another destination if the failed destination was 835 * destination. Selects another destination if the failed destination was
836 * the initial destination. 836 * the initial destination.
837 * @param {object} event Contains the ID of the destination that was failed 837 * @param {Object} event Contains the ID of the destination that was failed
838 * to be looked up. 838 * to be looked up.
839 * @private 839 * @private
840 */ 840 */
841 onCloudPrintPrinterFailed_: function(event) { 841 onCloudPrintPrinterFailed_: function(event) {
842 if (this.isInAutoSelectMode_ && 842 if (this.isInAutoSelectMode_ &&
843 this.sameAsPersistedDestination_(event.destinationId, 843 this.sameAsPersistedDestination_(event.destinationId,
844 event.destinationOrigin)) { 844 event.destinationOrigin)) {
845 console.error( 845 console.error(
846 'Failed to fetch last used printer caps: ' + event.destinationId); 846 'Failed to fetch last used printer caps: ' + event.destinationId);
847 this.selectDefaultDestination_(); 847 this.selectDefaultDestination_();
848 } 848 }
849 }, 849 },
850 850
851 /** 851 /**
852 * Called when printer sharing invitation was processed successfully. 852 * Called when printer sharing invitation was processed successfully.
853 * @param {Event} event Contains detailed information about the invite and 853 * @param {Event} event Contains detailed information about the invite and
854 * newly accepted destination (if known). 854 * newly accepted destination (if known).
855 * @private 855 * @private
856 */ 856 */
857 onCloudPrintProcessInviteDone_: function(event) { 857 onCloudPrintProcessInviteDone_: function(event) {
858 if (event.accept && event.printer) { 858 if (event.accept && event.printer) {
859 // Hint the destination list to promote this new destination. 859 // Hint the destination list to promote this new destination.
860 event.printer.isRecent = true; 860 event.printer.isRecent = true;
861 this.insertDestination_(event.printer); 861 this.insertDestination_(event.printer);
862 } 862 }
863 }, 863 },
864 864
865 /** 865 /**
866 * Called when a Privet printer is added to the local network. 866 * Called when a Privet printer is added to the local network.
867 * @param {object} event Contains information about the added printer. 867 * @param {Object} event Contains information about the added printer.
868 * @private 868 * @private
869 */ 869 */
870 onPrivetPrinterAdded_: function(event) { 870 onPrivetPrinterAdded_: function(event) {
871 if (event.printer.serviceName == this.waitForRegisterDestination_ && 871 if (event.printer.serviceName == this.waitForRegisterDestination_ &&
872 !event.printer.isUnregistered) { 872 !event.printer.isUnregistered) {
873 this.waitForRegisterDestination_ = null; 873 this.waitForRegisterDestination_ = null;
874 this.onDestinationsReload_(); 874 this.onDestinationsReload_();
875 } else { 875 } else {
876 this.insertDestinations_( 876 this.insertDestinations_(
877 print_preview.PrivetDestinationParser.parse(event.printer)); 877 print_preview.PrivetDestinationParser.parse(event.printer));
878 } 878 }
879 }, 879 },
880 880
881 /** 881 /**
882 * Called when capabilities for a privet printer are set. 882 * Called when capabilities for a privet printer are set.
883 * @param {object} event Contains the capabilities and printer ID. 883 * @param {Object} event Contains the capabilities and printer ID.
884 * @private 884 * @private
885 */ 885 */
886 onPrivetCapabilitiesSet_: function(event) { 886 onPrivetCapabilitiesSet_: function(event) {
887 var destinationId = event.printerId; 887 var destinationId = event.printerId;
888 var destinations = 888 var destinations =
889 print_preview.PrivetDestinationParser.parse(event.printer); 889 print_preview.PrivetDestinationParser.parse(event.printer);
890 destinations.forEach(function(dest) { 890 destinations.forEach(function(dest) {
891 dest.capabilities = event.capabilities; 891 dest.capabilities = event.capabilities;
892 this.updateDestination_(dest); 892 this.updateDestination_(dest);
893 }, this); 893 }, this);
894 }, 894 },
895 895
896 /** 896 /**
897 * Called from native layer after the user was requested to sign in, and did 897 * Called from native layer after the user was requested to sign in, and did
898 * so successfully. 898 * so successfully.
899 * @private 899 * @private
900 */ 900 */
901 onDestinationsReload_: function() { 901 onDestinationsReload_: function() {
902 this.reset_(); 902 this.reset_();
903 this.isInAutoSelectMode_ = true; 903 this.isInAutoSelectMode_ = true;
904 this.createLocalPdfPrintDestination_(); 904 this.createLocalPdfPrintDestination_();
905 this.startLoadAllDestinations(); 905 this.startLoadAllDestinations();
906 }, 906 },
907 907
908 // TODO(vitalybuka): Remove three next functions replacing Destination.id 908 // TODO(vitalybuka): Remove three next functions replacing Destination.id
909 // and Destination.origin by complex ID. 909 // and Destination.origin by complex ID.
910 /** 910 /**
911 * Returns key to be used with {@code destinationMap_}. 911 * Returns key to be used with {@code destinationMap_}.
912 * @param {!print_preview.Destination.Origin} origin Destination origin. 912 * @param {!print_preview.Destination.Origin} origin Destination origin.
913 * @return {string} id Destination id. 913 * @param {string} id Destination id.
914 * @return {string} account User account destination is registered for. 914 * @param {string} account User account destination is registered for.
915 * @private 915 * @private
916 */ 916 */
917 getDestinationKey_: function(origin, id, account) { 917 getDestinationKey_: function(origin, id, account) {
918 return origin + '/' + id + '/' + account; 918 return origin + '/' + id + '/' + account;
919 }, 919 },
920 920
921 /** 921 /**
922 * Returns key to be used with {@code destinationMap_}. 922 * Returns key to be used with {@code destinationMap_}.
923 * @param {!print_preview.Destination} destination Destination. 923 * @param {!print_preview.Destination} destination Destination.
924 * @private 924 * @private
(...skipping 26 matching lines...) Expand all
951 return id == this.appState_.selectedDestinationId && 951 return id == this.appState_.selectedDestinationId &&
952 origin == this.appState_.selectedDestinationOrigin; 952 origin == this.appState_.selectedDestinationOrigin;
953 } 953 }
954 }; 954 };
955 955
956 // Export 956 // Export
957 return { 957 return {
958 DestinationStore: DestinationStore 958 DestinationStore: DestinationStore
959 }; 959 };
960 }); 960 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698