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

Unified Diff: chrome/browser/resources/print_preview/search/destination_search.js

Issue 2606043004: Perform printer setup on Chrome OS before selecting printer. (Closed)
Patch Set: Created 4 years 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 side-by-side diff with in-line comments
Download patch
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.');

Powered by Google App Engine
This is Rietveld 408576698