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

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

Issue 2948723002: Print Preview: Change print to cr.sendWithPromise (Closed)
Patch Set: nit 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 // TODO(rltoscano): Move data/* into print_preview.data namespace 5 // TODO(rltoscano): Move data/* into print_preview.data namespace
6 6
7 // <include src="component.js"> 7 // <include src="component.js">
8 // <include src="print_preview_focus_manager.js"> 8 // <include src="print_preview_focus_manager.js">
9 // 9 //
10 10
(...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after
345 /** @override */ 345 /** @override */
346 enterDocument: function() { 346 enterDocument: function() {
347 // Native layer events. 347 // Native layer events.
348 var nativeLayerEventTarget = this.nativeLayer_.getEventTarget(); 348 var nativeLayerEventTarget = this.nativeLayer_.getEventTarget();
349 this.tracker.add( 349 this.tracker.add(
350 nativeLayerEventTarget, 350 nativeLayerEventTarget,
351 print_preview.NativeLayer.EventType.CLOUD_PRINT_ENABLE, 351 print_preview.NativeLayer.EventType.CLOUD_PRINT_ENABLE,
352 this.onCloudPrintEnable_.bind(this)); 352 this.onCloudPrintEnable_.bind(this));
353 this.tracker.add( 353 this.tracker.add(
354 nativeLayerEventTarget, 354 nativeLayerEventTarget,
355 print_preview.NativeLayer.EventType.PRINT_TO_CLOUD,
356 this.onPrintToCloud_.bind(this));
357 this.tracker.add(
358 nativeLayerEventTarget,
359 print_preview.NativeLayer.EventType.FILE_SELECTION_CANCEL,
360 this.onFileSelectionCancel_.bind(this));
361 this.tracker.add(
362 nativeLayerEventTarget,
363 print_preview.NativeLayer.EventType.FILE_SELECTION_COMPLETE,
364 this.onFileSelectionComplete_.bind(this));
365 this.tracker.add(
366 nativeLayerEventTarget,
367 print_preview.NativeLayer.EventType.SETTINGS_INVALID, 355 print_preview.NativeLayer.EventType.SETTINGS_INVALID,
368 this.onSettingsInvalid_.bind(this)); 356 this.onSettingsInvalid_.bind(this));
369 this.tracker.add( 357 this.tracker.add(
370 nativeLayerEventTarget, 358 nativeLayerEventTarget,
371 print_preview.NativeLayer.EventType.PRINT_PRESET_OPTIONS, 359 print_preview.NativeLayer.EventType.PRINT_PRESET_OPTIONS,
372 this.onPrintPresetOptionsFromDocument_.bind(this)); 360 this.onPrintPresetOptionsFromDocument_.bind(this));
373 this.tracker.add( 361 this.tracker.add(
374 nativeLayerEventTarget, 362 nativeLayerEventTarget,
375 print_preview.NativeLayer.EventType.PAGE_COUNT_READY, 363 print_preview.NativeLayer.EventType.PAGE_COUNT_READY,
376 this.onPageCountReady_.bind(this)); 364 this.onPageCountReady_.bind(this));
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
537 } else if ( 525 } else if (
538 this.destinationStore_.selectedDestination.id == 526 this.destinationStore_.selectedDestination.id ==
539 print_preview.Destination.GooglePromotedId.SAVE_AS_PDF) { 527 print_preview.Destination.GooglePromotedId.SAVE_AS_PDF) {
540 this.uiState_ = PrintPreviewUiState_.FILE_SELECTION; 528 this.uiState_ = PrintPreviewUiState_.FILE_SELECTION;
541 } else { 529 } else {
542 this.uiState_ = PrintPreviewUiState_.PRINTING; 530 this.uiState_ = PrintPreviewUiState_.PRINTING;
543 } 531 }
544 this.setIsEnabled_(false); 532 this.setIsEnabled_(false);
545 this.printHeader_.isCancelButtonEnabled = true; 533 this.printHeader_.isCancelButtonEnabled = true;
546 var printAttemptResult = this.printIfReady_(); 534 var printAttemptResult = this.printIfReady_();
547 if (printAttemptResult == print_preview.PrintAttemptResult_.PRINTED || 535 if (printAttemptResult ==
548 printAttemptResult == 536 print_preview.PrintAttemptResult_.READY_WAITING_FOR_PREVIEW) {
549 print_preview.PrintAttemptResult_.READY_WAITING_FOR_PREVIEW) {
550 if ((this.destinationStore_.selectedDestination.isLocal && 537 if ((this.destinationStore_.selectedDestination.isLocal &&
551 !this.destinationStore_.selectedDestination.isPrivet && 538 !this.destinationStore_.selectedDestination.isPrivet &&
552 !this.destinationStore_.selectedDestination.isExtension && 539 !this.destinationStore_.selectedDestination.isExtension &&
553 this.destinationStore_.selectedDestination.id != 540 this.destinationStore_.selectedDestination.id !=
554 print_preview.Destination.GooglePromotedId.SAVE_AS_PDF) || 541 print_preview.Destination.GooglePromotedId.SAVE_AS_PDF) ||
555 this.uiState_ == PrintPreviewUiState_.OPENING_PDF_PREVIEW) { 542 this.uiState_ == PrintPreviewUiState_.OPENING_PDF_PREVIEW) {
556 // Hide the dialog for now. The actual print command will be issued 543 // Hide the dialog for now. The actual print command will be issued
557 // when the preview generation is done. 544 // when the preview generation is done.
558 this.nativeLayer_.startHideDialog(); 545 this.nativeLayer_.startHideDialog();
559 } 546 }
(...skipping 23 matching lines...) Expand all
583 this.printTicketStore_.isTicketValid(), 570 this.printTicketStore_.isTicketValid(),
584 'Trying to print with invalid ticket'); 571 'Trying to print with invalid ticket');
585 if (getIsVisible(this.moreSettings_.getElement())) { 572 if (getIsVisible(this.moreSettings_.getElement())) {
586 new print_preview.PrintSettingsUiMetricsContext().record( 573 new print_preview.PrintSettingsUiMetricsContext().record(
587 this.moreSettings_.isExpanded ? 574 this.moreSettings_.isExpanded ?
588 print_preview.Metrics.PrintSettingsUiBucket 575 print_preview.Metrics.PrintSettingsUiBucket
589 .PRINT_WITH_SETTINGS_EXPANDED : 576 .PRINT_WITH_SETTINGS_EXPANDED :
590 print_preview.Metrics.PrintSettingsUiBucket 577 print_preview.Metrics.PrintSettingsUiBucket
591 .PRINT_WITH_SETTINGS_COLLAPSED); 578 .PRINT_WITH_SETTINGS_COLLAPSED);
592 } 579 }
593 this.nativeLayer_.startPrint( 580 var destination = assert(this.destinationStore_.selectedDestination);
594 assert(this.destinationStore_.selectedDestination), 581 this.nativeLayer_
595 this.printTicketStore_, this.cloudPrintInterface_, this.documentInfo_, 582 .print(
596 this.uiState_ == PrintPreviewUiState_.OPENING_PDF_PREVIEW, 583 destination, this.printTicketStore_, this.cloudPrintInterface_,
597 this.showSystemDialogBeforeNextPrint_); 584 this.documentInfo_,
585 this.uiState_ == PrintPreviewUiState_.OPENING_PDF_PREVIEW,
586 this.showSystemDialogBeforeNextPrint_)
587 /**
588 * @param {?string=} data Data for cloud print if this is a cloud
589 * printer, otherwise undefined.
590 */
591 .then(
592 function(data) {
593 if (!destination.isLocal) {
594 assert(data);
595 this.onPrintToCloud_(data);
596 } else if (destination.isPrivet || destination.isExtension) {
597 this.close_();
598 } else if (
599 destination.id ==
600 print_preview.Destination.GooglePromotedId.SAVE_AS_PDF) {
601 this.onFileSelectionComplete_();
602 } else { // local
603 this.nativeLayer_.startHideDialog();
604 }
605 }.bind(this),
606 /**
607 * @param {*} response The response indicating the type of error
608 * for extension and privet printers, or undefined for PDF,
609 * local, and cloud printers.
610 */
611 function(response) {
612 if (!destination.isLocal) {
613 // Happens only if the ticket wasn't parsed.
614 this.onSettingsInvalid_();
615 } else if (destination.isPrivet || destination.isExtension) {
616 this.onPrintFailed_(response);
617 } else if (
618 destination.id ==
619 print_preview.Destination.GooglePromotedId.SAVE_AS_PDF) {
620 this.onFileSelectionCancel_();
621 } else { // local
622 this.nativeLayer_.startHideDialog();
623 }
624 }.bind(this));
625
598 this.showSystemDialogBeforeNextPrint_ = false; 626 this.showSystemDialogBeforeNextPrint_ = false;
599 return print_preview.PrintAttemptResult_.PRINTED; 627 return print_preview.PrintAttemptResult_.PRINTED;
600 }, 628 },
601 629
602 /** 630 /**
603 * Closes the print preview. 631 * Closes the print preview.
604 * @private 632 * @private
605 */ 633 */
606 close_: function() { 634 close_: function() {
607 this.exitDocument(); 635 this.exitDocument();
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
700 this.destinationStore_.setCloudPrintInterface(this.cloudPrintInterface_); 728 this.destinationStore_.setCloudPrintInterface(this.cloudPrintInterface_);
701 this.invitationStore_.setCloudPrintInterface(this.cloudPrintInterface_); 729 this.invitationStore_.setCloudPrintInterface(this.cloudPrintInterface_);
702 if (this.destinationSearch_.getIsVisible()) { 730 if (this.destinationSearch_.getIsVisible()) {
703 this.destinationStore_.startLoadCloudDestinations(); 731 this.destinationStore_.startLoadCloudDestinations();
704 this.invitationStore_.startLoadingInvitations(); 732 this.invitationStore_.startLoadingInvitations();
705 } 733 }
706 }, 734 },
707 735
708 /** 736 /**
709 * Called from the native layer when ready to print to Google Cloud Print. 737 * Called from the native layer when ready to print to Google Cloud Print.
710 * @param {Event} event Contains the body to send in the HTTP request. 738 * @param {string} data Contains the body to send in the HTTP request.
711 * @private 739 * @private
712 */ 740 */
713 onPrintToCloud_: function(event) { 741 onPrintToCloud_: function(data) {
714 assert( 742 assert(
715 this.uiState_ == PrintPreviewUiState_.PRINTING, 743 this.uiState_ == PrintPreviewUiState_.PRINTING,
716 'Document ready to be sent to the cloud when not in printing ' + 744 'Document ready to be sent to the cloud when not in printing ' +
717 'state: ' + this.uiState_); 745 'state: ' + this.uiState_);
718 assert( 746 assert(
719 this.cloudPrintInterface_ != null, 747 this.cloudPrintInterface_ != null,
720 'Google Cloud Print is not enabled'); 748 'Google Cloud Print is not enabled');
721 assert(this.destinationStore_.selectedDestination != null); 749 assert(this.destinationStore_.selectedDestination != null);
722 this.cloudPrintInterface_.submit( 750 this.cloudPrintInterface_.submit(
723 this.destinationStore_.selectedDestination, this.printTicketStore_, 751 this.destinationStore_.selectedDestination, this.printTicketStore_,
724 this.documentInfo_, event.data); 752 this.documentInfo_, data);
725 }, 753 },
726 754
727 /** 755 /**
728 * Called from the native layer when the user cancels the save-to-pdf file 756 * Called from the native layer when the user cancels the save-to-pdf file
729 * selection dialog. 757 * selection dialog.
730 * @private 758 * @private
731 */ 759 */
732 onFileSelectionCancel_: function() { 760 onFileSelectionCancel_: function() {
733 assert( 761 assert(
734 this.uiState_ == PrintPreviewUiState_.FILE_SELECTION, 762 this.uiState_ == PrintPreviewUiState_.FILE_SELECTION,
(...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after
1020 * @private 1048 * @private
1021 */ 1049 */
1022 onPageCountReady_: function(event) { 1050 onPageCountReady_: function(event) {
1023 if (event.fitToPageScaling >= 0) { 1051 if (event.fitToPageScaling >= 0) {
1024 this.scalingSettings_.updateFitToPageScaling(event.fitToPageScaling); 1052 this.scalingSettings_.updateFitToPageScaling(event.fitToPageScaling);
1025 } 1053 }
1026 }, 1054 },
1027 1055
1028 /** 1056 /**
1029 * Called when printing to a privet or extension printer fails. 1057 * Called when printing to a privet or extension printer fails.
1030 * @param {number | string} httpError The HTTP error code, or -1 if not an 1058 * @param {*} httpError The HTTP error code, or -1 or a string describing
1031 * HTTP error. 1059 * the error, if not an HTTP error.
1032 * @private 1060 * @private
1033 */ 1061 */
1034 onPrintFailed_: function(httpError) { 1062 onPrintFailed_: function(httpError) {
1035 console.error('Privet printing failed with error code ' + httpError); 1063 console.error('Privet printing failed with error code ' + httpError);
1036 this.printHeader_.setErrorMessage( 1064 this.printHeader_.setErrorMessage(
1037 loadTimeData.getString('couldNotPrint')); 1065 loadTimeData.getString('couldNotPrint'));
1038 }, 1066 },
1039 1067
1040 /** 1068 /**
1041 * Called when the print preview settings need to be changed for testing. 1069 * Called when the print preview settings need to be changed for testing.
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after
1345 // <include src="search/destination_search.js"> 1373 // <include src="search/destination_search.js">
1346 // <include src="search/provisional_destination_resolver.js"> 1374 // <include src="search/provisional_destination_resolver.js">
1347 1375
1348 window.addEventListener('DOMContentLoaded', function() { 1376 window.addEventListener('DOMContentLoaded', function() {
1349 var previewWindow = /** @type {{isTest: boolean}} */ (window); 1377 var previewWindow = /** @type {{isTest: boolean}} */ (window);
1350 if (!previewWindow.isTest) { 1378 if (!previewWindow.isTest) {
1351 var printPreview = new print_preview.PrintPreview(); 1379 var printPreview = new print_preview.PrintPreview();
1352 printPreview.initialize(); 1380 printPreview.initialize();
1353 } 1381 }
1354 }); 1382 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698