| Index: chrome/browser/resources/print_preview/data/destination_store.js
|
| diff --git a/chrome/browser/resources/print_preview/data/destination_store.js b/chrome/browser/resources/print_preview/data/destination_store.js
|
| index acbfae038781a9008a0fa7ad8cd361e356bff7fd..33d47c39ebedda4e051467559ceec2e1196a3fe7 100644
|
| --- a/chrome/browser/resources/print_preview/data/destination_store.js
|
| +++ b/chrome/browser/resources/print_preview/data/destination_store.js
|
| @@ -433,7 +433,6 @@ cr.define('print_preview', function() {
|
| this.pdfPrinterEnabled_ = !isInAppKioskMode;
|
| this.systemDefaultDestinationId_ = systemDefaultDestinationId;
|
| this.createLocalPdfPrintDestination_();
|
| -
|
| if (!this.appState_.selectedDestinationId ||
|
| !this.appState_.selectedDestinationOrigin) {
|
| var destinationMatch = this.convertToDestinationMatch_(
|
| @@ -458,16 +457,47 @@ cr.define('print_preview', function() {
|
| var capabilities = null;
|
| var extensionId = '';
|
| var extensionName = '';
|
| - if (this.appState_.selectedDestinationId &&
|
| - this.appState_.selectedDestinationOrigin) {
|
| - origin = this.appState_.selectedDestinationOrigin;
|
| - id = this.appState_.selectedDestinationId;
|
| - account = this.appState_.selectedDestinationAccount || '';
|
| - name = this.appState_.selectedDestinationName || '';
|
| - capabilities = this.appState_.selectedDestinationCapabilities;
|
| - extensionId = this.appState_.selectedDestinationExtensionId || '';
|
| - extensionName = this.appState_.selectedDestinationExtensionName || '';
|
| + var foundDestination = false;
|
| + if (this.appState_.recentDestinationIds &&
|
| + this.appState_.recentDestinationOrigins) {
|
| + // Run through the destinations backwards the most recently used is set
|
| + // as the initially selected destination.
|
| + for (var i = this.appState_.recentDestinationIds.length - 1; i >= 0;
|
| + i--) {
|
| + if (this.appState_.recentDestinationIds[i] &&
|
| + this.appState_.recentDestinationOrigins[i]) {
|
| + origin = this.appState_.recentDestinationOrigins[i];
|
| + id = this.appState_.recentDestinationIds[i];
|
| + account = this.appState_.recentDestinationAccounts[i] || '';
|
| + name = this.appState_.recentDestinationNames[i] || '';
|
| + capabilities = this.appState_.recentDestinationCapabilities[i];
|
| + extensionId = this.appState_.recentDestinationExtensionIds[i] || '';
|
| + extensionName =
|
| + this.appState_.recentDestinationExtensionNames[i] || '';
|
| + }
|
| + var candidate =
|
| + this.destinationMap_[this.getDestinationKey_(origin,
|
| + id, account)];
|
| + if (candidate != null) {
|
| + this.selectDestination(candidate);
|
| + candidate.isRecent = true;
|
| + foundDestination = true;
|
| + } else {
|
| + if (this.fetchPreselectedDestination_(
|
| + origin,
|
| + id,
|
| + account,
|
| + name,
|
| + capabilities,
|
| + extensionId,
|
| + extensionName)) {
|
| + foundDestination = true;
|
| + }
|
| + }
|
| + }
|
| }
|
| + if (foundDestination) return;
|
| + // Try the system default
|
| var candidate =
|
| this.destinationMap_[this.getDestinationKey_(origin, id, account)];
|
| if (candidate != null) {
|
| @@ -1125,9 +1155,22 @@ cr.define('print_preview', function() {
|
| * @private
|
| */
|
| insertIntoStore_: function(destination) {
|
| +
|
| var key = this.getKey_(destination);
|
| var existingDestination = this.destinationMap_[key];
|
| if (existingDestination == null) {
|
| + for (var destinationIdNum = 0;
|
| + destinationIdNum < this.appState_.recentDestinationIds.length;
|
| + destinationIdNum++) {
|
| + if (this.appState_.recentDestinationIds &&
|
| + this.appState_.recentDestinationIds[destinationIdNum] &&
|
| + (destination.id ==
|
| + this.appState_.recentDestinationIds[destinationIdNum]) &&
|
| + (destination.origin ==
|
| + this.appState_.recentDestinationOrigins[destinationIdNum])) {
|
| + destination.isRecent = true;
|
| + }
|
| + }
|
| this.destinations_.push(destination);
|
| this.destinationMap_[key] = destination;
|
| return true;
|
|
|