Chromium Code Reviews| Index: chrome/browser/resources/print_preview/search/destination_search.js |
| diff --git a/chrome/browser/resources/print_preview/search/destination_search.js b/chrome/browser/resources/print_preview/search/destination_search.js |
| index ff1957341397ba17d089d6208d31120eac64daab..2fe1eba2be9e8314bffdc8f66aba487db8f96660 100644 |
| --- a/chrome/browser/resources/print_preview/search/destination_search.js |
| +++ b/chrome/browser/resources/print_preview/search/destination_search.js |
| @@ -583,6 +583,34 @@ cr.define('print_preview', function() { |
| * @private |
| */ |
| handleOnDestinationSelect_: function(destination) { |
| + if (destination.origin == print_preview.Destination.Origin.CROS && |
| + !destination.capabilities) { |
| + // local printers on CrOS require setup. |
| + assert(!this.printerConfigurer_); |
| + this.printerConfigurer_ = new print_preview.CrosDestinationResolver( |
| + this.destinationStore_, destination); |
| + this.addChild(this.printerConfigurer_); |
| + this.printerConfigurer_.run(this.getElement()) |
| + .then( |
| + /** |
| + * @param {Object} result |
| + * An object containing the printerId and capabilities. |
| + */ |
| + function(result) { |
| + assert(result.printerId == destination.id); |
| + destination.capabilities = result.capabilities; |
| + this.handleOnDestinationSelect_(destination); |
| + }.bind(this)) |
| + .catch(function() { |
| + console.log('Failed to setup destination: ' + destination.id); |
| + }) |
|
xdai1
2016/12/30 00:38:13
indent off
skau
2017/01/04 18:57:06
Done.
|
| + .then(function() { |
| + this.removeChild(this.printerConfigurer_); |
| + this.printerConfigurer_ = null; |
| + }.bind(this)); |
|
xdai1
2016/12/30 00:38:13
indent off
skau
2017/01/04 18:57:06
Done.
|
| + return; |
| + } |
| + |
| if (destination.isProvisional) { |
| assert(!this.provisionalDestinationResolver_, |
| 'Provisional destination resolver already exists.'); |