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

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

Issue 2885363003: Add policy to use system default printer (Closed)
Patch Set: Fix test Created 3 years, 6 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 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 /** 193 /**
194 * Local destinations are CROS destinations on ChromeOS because they require 194 * Local destinations are CROS destinations on ChromeOS because they require
195 * extra setup. 195 * extra setup.
196 * @type {!print_preview.DestinationOrigin} 196 * @type {!print_preview.DestinationOrigin}
197 * @private 197 * @private
198 */ 198 */
199 this.platformOrigin_ = cr.isChromeOS ? 199 this.platformOrigin_ = cr.isChromeOS ?
200 print_preview.DestinationOrigin.CROS : 200 print_preview.DestinationOrigin.CROS :
201 print_preview.DestinationOrigin.LOCAL; 201 print_preview.DestinationOrigin.LOCAL;
202 202
203 /**
204 * Whether to default to the system default printer instead of the most
205 * recent destination.
206 * @type {boolean}
207 * @private
208 */
209 this.useSystemDefaultAsDefault_ =
210 loadTimeData.getBoolean('useSystemDefaultPrinter');
211
203 this.addEventListeners_(); 212 this.addEventListeners_();
204 this.reset_(); 213 this.reset_();
205 } 214 }
206 215
207 /** 216 /**
208 * Event types dispatched by the data store. 217 * Event types dispatched by the data store.
209 * @enum {string} 218 * @enum {string}
210 */ 219 */
211 DestinationStore.EventType = { 220 DestinationStore.EventType = {
212 DESTINATION_SEARCH_DONE: 221 DESTINATION_SEARCH_DONE:
(...skipping 399 matching lines...) Expand 10 before | Expand all | Expand 10 after
612 } 621 }
613 622
614 var origin = null; 623 var origin = null;
615 var id = ''; 624 var id = '';
616 var account = ''; 625 var account = '';
617 var name = ''; 626 var name = '';
618 var capabilities = null; 627 var capabilities = null;
619 var extensionId = ''; 628 var extensionId = '';
620 var extensionName = ''; 629 var extensionName = '';
621 var foundDestination = false; 630 var foundDestination = false;
622 if (this.appState_.recentDestinations) { 631 if (this.appState_.recentDestinations) {
skau 2017/06/15 19:41:31 Can !this.useSystemDefaultAsDefault_ be moved here
rbpotter 2017/06/16 02:21:46 Think we still want to mark the recent destination
623 // Run through the destinations forward. As soon as we find a 632 // Run through the destinations forward. As soon as we find a
624 // destination, don't select any future destinations, just mark 633 // destination, don't select any future destinations, just mark
625 // them recent. Otherwise, there is a race condition between selecting 634 // them recent. Otherwise, there is a race condition between selecting
626 // destinations/updating the print ticket and this selecting a new 635 // destinations/updating the print ticket and this selecting a new
627 // destination that causes random print preview errors. 636 // destination that causes random print preview errors.
628 for (var i = 0; i < this.appState_.recentDestinations.length; i++) { 637 for (var i = 0; i < this.appState_.recentDestinations.length; i++) {
629 origin = this.appState_.recentDestinations[i].origin; 638 origin = this.appState_.recentDestinations[i].origin;
630 id = this.appState_.recentDestinations[i].id; 639 id = this.appState_.recentDestinations[i].id;
631 account = this.appState_.recentDestinations[i].account || ''; 640 account = this.appState_.recentDestinations[i].account || '';
632 name = this.appState_.recentDestinations[i].name || ''; 641 name = this.appState_.recentDestinations[i].name || '';
633 capabilities = this.appState_.recentDestinations[i].capabilities; 642 capabilities = this.appState_.recentDestinations[i].capabilities;
634 extensionId = this.appState_.recentDestinations[i].extensionId || 643 extensionId = this.appState_.recentDestinations[i].extensionId ||
635 ''; 644 '';
636 extensionName = 645 extensionName =
637 this.appState_.recentDestinations[i].extensionName || ''; 646 this.appState_.recentDestinations[i].extensionName || '';
638 var candidate = 647 var candidate =
639 this.destinationMap_[this.getDestinationKey_(origin, 648 this.destinationMap_[this.getDestinationKey_(origin,
640 id, account)]; 649 id, account)];
641 if (candidate != null) { 650 if (candidate != null) {
642 if (!foundDestination) 651 if (!foundDestination && !this.useSystemDefaultAsDefault_)
643 this.selectDestination(candidate); 652 this.selectDestination(candidate);
644 candidate.isRecent = true; 653 candidate.isRecent = true;
645 foundDestination = true; 654 foundDestination = true;
646 } else if (!foundDestination) { 655 } else if (!foundDestination && !this.useSystemDefaultAsDefault_) {
647 foundDestination = this.fetchPreselectedDestination_( 656 foundDestination = this.fetchPreselectedDestination_(
648 origin, 657 origin,
649 id, 658 id,
650 account, 659 account,
651 name, 660 name,
652 capabilities, 661 capabilities,
653 extensionId, 662 extensionId,
654 extensionName); 663 extensionName);
655 } 664 }
656 } 665 }
657 } 666 }
658 if (foundDestination) return; 667 if (foundDestination && !this.useSystemDefaultAsDefault_) return;
659 668
660 // Try the system default 669 // Try the system default
661 id = this.systemDefaultDestinationId_ || ''; 670 id = this.systemDefaultDestinationId_ || '';
662 origin = id == print_preview.Destination.GooglePromotedId.SAVE_AS_PDF ? 671 origin = id == print_preview.Destination.GooglePromotedId.SAVE_AS_PDF ?
663 print_preview.DestinationOrigin.LOCAL : 672 print_preview.DestinationOrigin.LOCAL :
664 this.platformOrigin_; 673 this.platformOrigin_;
665 account = ''; 674 account = '';
666 var candidate = 675 var candidate =
667 this.destinationMap_[this.getDestinationKey_(origin, id, account)]; 676 this.destinationMap_[this.getDestinationKey_(origin, id, account)];
668 if (candidate != null) { 677 if (candidate != null) {
(...skipping 1026 matching lines...) Expand 10 before | Expand all | Expand 10 after
1695 return this.getDestinationKey_( 1704 return this.getDestinationKey_(
1696 destination.origin, destination.id, destination.account); 1705 destination.origin, destination.id, destination.account);
1697 } 1706 }
1698 }; 1707 };
1699 1708
1700 // Export 1709 // Export
1701 return { 1710 return {
1702 DestinationStore: DestinationStore 1711 DestinationStore: DestinationStore
1703 }; 1712 };
1704 }); 1713 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698