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

Unified Diff: chrome/browser/resources/print_preview/native_layer.js

Issue 10827463: Fixes cloud-printer being treated as local-printer problem. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Fixes JSDoc comment. Created 8 years, 4 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/native_layer.js
diff --git a/chrome/browser/resources/print_preview/native_layer.js b/chrome/browser/resources/print_preview/native_layer.js
index bb0c1bedac85a85f05db893a1fb1fa486f284e02..4b3aa57e53b9c98fb22f2da4e779d6488649402b 100644
--- a/chrome/browser/resources/print_preview/native_layer.js
+++ b/chrome/browser/resources/print_preview/native_layer.js
@@ -54,6 +54,7 @@ cr.define('print_preview', function() {
FILE_SELECTION_CANCEL: 'print_preview.NativeLayer.FILE_SELECTION_CANCEL',
FILE_SELECTION_COMPLETE:
'print_preview.NativeLayer.FILE_SELECTION_COMPLETE',
+ GET_CAPABILITIES_FAIL: 'print_preview.NativeLayer.GET_CAPABILITIES_FAIL',
INITIAL_SETTINGS_SET: 'print_preview.NativeLayer.INITIAL_SETTINGS_SET',
LOCAL_DESTINATIONS_SET: 'print_preview.NativeLayer.LOCAL_DESTINATIONS_SET',
PAGE_COUNT_READY: 'print_preview.NativeLayer.PAGE_COUNT_READY',
@@ -88,6 +89,14 @@ cr.define('print_preview', function() {
COLOR: 2
};
+ /**
+ * Version of the serialized state of the print preview.
+ * @type {number}
+ * @const
+ * @private
+ */
+ NativeLayer.SERIALIZED_STATE_VERSION_ = 1;
+
NativeLayer.prototype = {
__proto__: cr.EventTarget.prototype,
@@ -196,7 +205,15 @@ cr.define('print_preview', function() {
* generating the serialized print ticket to persist.
*/
startSaveDestinationAndTicket: function(destination, printTicketStore) {
- chrome.send('saveLastPrinter', [destination.id, '' /*TODO(rltoscano)*/]);
+ // TODO(rltoscano): Implement a comprehensive serialization process.
+ var printPreviewSerializedState = {
+ 'version': print_preview.NativeLayer.SERIALIZED_STATE_VERSION_,
+ 'isLocalDestination':
+ destination.type == print_preview.Destination.Type.LOCAL
+ };
+ chrome.send(
+ 'saveLastPrinter',
+ [destination.id, JSON.stringify(printPreviewSerializedState)]);
},
/**
@@ -354,6 +371,16 @@ cr.define('print_preview', function() {
marginsType = initialSettings['marginsType'];
}
+ // TODO(rltoscano): Replace this loading of serialized state with a
+ // comprehensive version.
+ var serializedPrintPreviewState =
+ JSON.parse(initialSettings['cloudPrintData'] || '{}');
+ var isLocalDestination = true;
+ if (serializedPrintPreviewState &&
+ serializedPrintPreviewState.version == 1) {
+ isLocalDestination = serializedPrintPreviewState.isLocalDestination;
+ }
+
var nativeInitialSettings = new print_preview.NativeInitialSettings(
initialSettings['printAutomaticallyInKioskMode'] || false,
numberFormatSymbols[0] || ',',
@@ -365,7 +392,8 @@ cr.define('print_preview', function() {
customMargins,
initialSettings['duplex'] || false,
initialSettings['headerFooterEnabled'] || false,
- initialSettings['printerName'] || null);
+ initialSettings['printerName'] || null,
+ isLocalDestination);
var initialSettingsSetEvent = new cr.Event(
NativeLayer.EventType.INITIAL_SETTINGS_SET);
@@ -413,12 +441,14 @@ cr.define('print_preview', function() {
/**
* Called when native layer gets settings information for a requested local
* destination.
- * @param {Object} printer_name printer affected by error.
+ * @param {string} printerId printer affected by error.
* @private
*/
- onFailedToGetPrinterCapabilities_: function(printer_name) {
- // TODO(rltoscano): Switch to the next printer.
- console.log('onFailedToGetPrinterCapabilities: ' + printer_name);
+ onFailedToGetPrinterCapabilities_: function(destinationId) {
+ var getCapsFailEvent = new cr.Event(
+ NativeLayer.EventType.GET_CAPABILITIES_FAIL);
+ getCapsFailEvent.destinationId = destinationId;
+ this.dispatchEvent(getCapsFailEvent);
},
/** Reloads the printer list. */
@@ -597,6 +627,8 @@ cr.define('print_preview', function() {
* initially enabled.
* @param {?string} initialDestinationId ID of the destination to initially
* select.
+ * @param {boolean} isLocalDestination Whether the initial destination is
+ * local.
* @constructor
*/
function NativeInitialSettings(
@@ -610,7 +642,8 @@ cr.define('print_preview', function() {
customMargins,
isDuplexEnabled,
isHeaderFooterEnabled,
- initialDestinationId) {
+ initialDestinationId,
+ isLocalDestination) {
/**
* Whether the print preview should be in auto-print mode.
@@ -688,6 +721,13 @@ cr.define('print_preview', function() {
* @private
*/
this.initialDestinationId_ = initialDestinationId;
+
+ /**
+ * Whether the initial destination is local.
+ * @type {boolean}
+ * @private
+ */
+ this.isLocalDestination_ = isLocalDestination;
};
NativeInitialSettings.prototype = {
@@ -752,6 +792,11 @@ cr.define('print_preview', function() {
/** @return {?string} ID of the initially selected destination. */
get initialDestinationId() {
return this.initialDestinationId_;
+ },
+
+ /** @return {boolean} Whether the initial destination is local. */
+ get isLocalDestination() {
+ return this.isLocalDestination_;
}
};

Powered by Google App Engine
This is Rietveld 408576698