summaryrefslogtreecommitdiffstats
path: root/chrome/browser/resources/print_preview
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/resources/print_preview')
-rw-r--r--chrome/browser/resources/print_preview/native_layer.js5
-rw-r--r--chrome/browser/resources/print_preview/print_preview.html9
-rw-r--r--chrome/browser/resources/print_preview/print_preview.js36
3 files changed, 43 insertions, 7 deletions
diff --git a/chrome/browser/resources/print_preview/native_layer.js b/chrome/browser/resources/print_preview/native_layer.js
index b1151e6..712bf42 100644
--- a/chrome/browser/resources/print_preview/native_layer.js
+++ b/chrome/browser/resources/print_preview/native_layer.js
@@ -279,6 +279,11 @@ cr.define('print_preview', function() {
chrome.send('showSystemDialog');
},
+ /** Shows Google Cloud Print's web-based print dialog. */
+ startShowCloudPrintDialog: function() {
+ chrome.send('printWithCloudPrint');
+ },
+
/** Closes the print preview dialog. */
startCloseDialog: function() {
chrome.send('closePrintPreviewTab');
diff --git a/chrome/browser/resources/print_preview/print_preview.html b/chrome/browser/resources/print_preview/print_preview.html
index 34a49b2..739932e 100644
--- a/chrome/browser/resources/print_preview/print_preview.html
+++ b/chrome/browser/resources/print_preview/print_preview.html
@@ -51,17 +51,20 @@
</div>
<div id="link-container">
<div>
- <button id="cloud-print-dialog-link" class="link-button navbar-link"
- hidden i18n-content="cloudPrintDialogOption"></button>
<button id="system-dialog-link" class="link-button navbar-link"
hidden i18n-content="systemDialogOption"></button>
- <div id="dialog-throbber" hidden class="throbber"></div>
+ <div id="system-dialog-throbber" hidden class="throbber"></div>
</div>
<div>
<button id="open-pdf-in-preview-link" class="link-button navbar-link"
hidden i18n-content="openPdfInPreviewOption"></button>
<div id="open-preview-app-throbber" hidden class="throbber"></div>
</div>
+ <div>
+ <button id="cloud-print-dialog-link" class="link-button navbar-link"
+ hidden i18n-content="cloudPrintDialogOption"></button>
+ <div id="cloud-print-dialog-throbber" hidden class="throbber"></div>
+ </div>
</div>
</div>
<include src="search/destination_search.html"/>
diff --git a/chrome/browser/resources/print_preview/print_preview.js b/chrome/browser/resources/print_preview/print_preview.js
index b0b3655..b3a7218 100644
--- a/chrome/browser/resources/print_preview/print_preview.js
+++ b/chrome/browser/resources/print_preview/print_preview.js
@@ -247,7 +247,7 @@ cr.define('print_preview', function() {
this.tracker.add(
$('cloud-print-dialog-link'),
'click',
- this.openSystemPrintDialog_.bind(this));
+ this.onCloudPrintDialogLinkClick_.bind(this));
this.tracker.add(
$('open-pdf-in-preview-link'),
'click',
@@ -275,6 +275,10 @@ cr.define('print_preview', function() {
print_preview.DestinationStore.EventType.
SELECTED_DESTINATION_CAPABILITIES_READY,
this.printIfReady_.bind(this));
+ this.tracker.add(
+ this.destinationStore_,
+ print_preview.DestinationStore.EventType.DESTINATION_SELECT,
+ this.onDestinationSelect_.bind(this));
this.tracker.add(
this.printHeader_,
@@ -319,8 +323,6 @@ cr.define('print_preview', function() {
this.otherOptionsSettings_.decorate($('other-options-settings'));
this.previewArea_.decorate($('preview-area'));
- setIsVisible($('cloud-print-dialog-link'), cr.isChromeOS);
- setIsVisible($('system-dialog-link'), !cr.isChromeOS);
setIsVisible($('open-pdf-in-preview-link'), cr.isMac);
},
@@ -419,7 +421,7 @@ cr.define('print_preview', function() {
openSystemPrintDialog_: function() {
assert(this.uiState_ == PrintPreview.UiState_.READY,
'Opening system dialog when not in ready state: ' + this.uiState_);
- setIsVisible($('dialog-throbber'), true);
+ setIsVisible($('system-dialog-throbber'), true);
this.setIsEnabled_(false);
this.uiState_ = PrintPreview.UiState_.OPENING_NATIVE_PRINT_DIALOG;
this.nativeLayer_.startShowSystemDialog();
@@ -704,6 +706,32 @@ cr.define('print_preview', function() {
*/
onDisableScaling_: function() {
this.printTicketStore_.updateFitToPage(false);
+ },
+
+ /**
+ * Called when the open-cloud-print-dialog link is clicked. Opens the Google
+ * Cloud Print web dialog.
+ * @private
+ */
+ onCloudPrintDialogLinkClick_: function() {
+ assert(this.uiState_ == PrintPreview.UiState_.READY,
+ 'Opening Google Cloud Print dialog when not in ready state: ' +
+ this.uiState_);
+ setIsVisible($('cloud-print-dialog-throbber'), true);
+ this.setIsEnabled_(false);
+ this.uiState_ = PrintPreview.UiState_.OPENING_NATIVE_PRINT_DIALOG;
+ this.nativeLayer_.startShowCloudPrintDialog();
+ },
+
+ /**
+ * Called when a print destination is selected. Shows/hides the "Print with
+ * Cloud Print" link in the navbar.
+ * @private
+ */
+ onDestinationSelect_: function() {
+ var selectedDest = this.destinationStore_.selectedDestination;
+ setIsVisible($('cloud-print-dialog-link'),
+ !cr.isChromeOS && !selectedDest.isLocal);
}
};