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

Unified Diff: chrome/browser/resources/print_preview/previewarea/preview_area.js

Issue 2962983002: Print Preview: change getPreview to cr.sendWithPromise (Closed)
Patch Set: Rebase 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/print_preview/previewarea/preview_area.js
diff --git a/chrome/browser/resources/print_preview/previewarea/preview_area.js b/chrome/browser/resources/print_preview/previewarea/preview_area.js
index 994668d6547fee75fa9f4018832ebf7e02e3977d..4762b444f305bb7f6dee77f8360a1cff99f06409 100644
--- a/chrome/browser/resources/print_preview/previewarea/preview_area.js
+++ b/chrome/browser/resources/print_preview/previewarea/preview_area.js
@@ -192,7 +192,10 @@ cr.define('print_preview', function() {
// Dispatched when a new document preview is being generated.
PREVIEW_GENERATION_IN_PROGRESS:
- 'print_preview.PreviewArea.PREVIEW_GENERATION_IN_PROGRESS'
+ 'print_preview.PreviewArea.PREVIEW_GENERATION_IN_PROGRESS',
+
+ // Dispatched when invalid printer settings are detected.
+ SETTINGS_INVALID: 'print_preview.PreviewArea.SETTINGS_INVALID'
};
/**
@@ -349,10 +352,6 @@ cr.define('print_preview', function() {
this.previewGenerator_,
print_preview.PreviewGenerator.EventType.PAGE_READY,
this.onPagePreviewReady_.bind(this));
- this.tracker.add(
- this.previewGenerator_,
- print_preview.PreviewGenerator.EventType.FAIL,
- this.onPreviewGenerationFail_.bind(this));
this.tracker.add(
this.previewGenerator_,
print_preview.PreviewGenerator.EventType.DOCUMENT_READY,
@@ -523,18 +522,43 @@ cr.define('print_preview', function() {
* @private
*/
onTicketChange_: function() {
- if (this.previewGenerator_ && this.previewGenerator_.requestPreview()) {
- cr.dispatchSimpleEvent(
- this, PreviewArea.EventType.PREVIEW_GENERATION_IN_PROGRESS);
- if (this.loadingTimeout_ == null) {
- this.loadingTimeout_ = setTimeout(
- this.showMessage_.bind(
- this, print_preview.PreviewAreaMessageId_.LOADING),
- PreviewArea.LOADING_TIMEOUT_);
- }
- } else {
+ var requestPreview = this.previewGenerator_ ?
+ this.previewGenerator_.requestPreview() :
+ null;
+ var requestId = requestPreview ? requestPreview.id : -1;
+ if (requestId == -1) {
this.marginControlContainer_.showMarginControlsIfNeeded();
+ return;
}
+ cr.dispatchSimpleEvent(
+ this, PreviewArea.EventType.PREVIEW_GENERATION_IN_PROGRESS);
+ if (this.loadingTimeout_ == null) {
+ this.loadingTimeout_ = setTimeout(
+ this.showMessage_.bind(
+ this, print_preview.PreviewAreaMessageId_.LOADING),
+ PreviewArea.LOADING_TIMEOUT_);
+ }
+ requestPreview.request.then(
+ /** @param {number} previewUid The unique id of the preview. */
+ function(previewUid) {
+ this.previewGenerator_.onPreviewGenerationDone(
+ requestPreview.id, previewUid);
+ }.bind(this),
+ /**
+ * @param {*} type The type of print preview failure that
+ * occurred.
+ */
+ function(type) {
+ if (/** @type{string} */ (type) == 'SETTINGS_INVALID') {
+ this.cancelTimeout();
+ this.showCustomMessage(
+ loadTimeData.getString('invalidPrinterSettings'));
+ cr.dispatchSimpleEvent(
+ this, PreviewArea.EventType.SETTINGS_INVALID);
+ } else {
+ this.onPreviewGenerationFail_();
+ }
+ }.bind(this));
},
/**

Powered by Google App Engine
This is Rietveld 408576698