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

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

Issue 2931843003: Print Preview: Change getPrinterCapabilities to cr.sendWithPromise (Closed)
Patch Set: Address comments 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/native_layer.js
diff --git a/chrome/browser/resources/print_preview/native_layer.js b/chrome/browser/resources/print_preview/native_layer.js
index f259e5e2692179c0e77a3f30417641bcadf73f1b..f4e69846a4ae5aa07fba85ee84478b423555b11d 100644
--- a/chrome/browser/resources/print_preview/native_layer.js
+++ b/chrome/browser/resources/print_preview/native_layer.js
@@ -26,6 +26,37 @@ print_preview.PreviewSettings;
*/
print_preview.LocalDestinationInfo;
+/**
+ * @typedef {{
+ * printerId: string,
+ * printerName: string,
+ * printerDescription: string,
+ * cupsEnterprisePrinter: (boolean | undefined),
+ * capabilities: !print_preview.Cdd,
+ * }}
+ */
+print_preview.PrinterCapabilitiesResponse;
+
+/**
+ * @typedef {{
+ * serviceName: string,
+ * name: string,
+ * hasLocalPrinting: boolean,
+ * isUnregistered: boolean,
+ * cloudID: string,
+ * }}
+ * @see PrintPreviewHandler::FillPrinterDescription in print_preview_handler.cc
+ */
+print_preview.PrivetPrinterDescription;
+
+/**
+ * @typedef {{
+ * printer: !print_preview.PrivetPrinterDescription,
+ * capabilities: !print_preview.Cdd,
+ * }}
+ */
+print_preview.PrivetPrinterCapabilitiesResponse;
+
/**
* @typedef {{
* printerId: string,
@@ -45,14 +76,6 @@ cr.define('print_preview', function() {
function NativeLayer() {
// Bind global handlers
global.setUseCloudPrint = this.onSetUseCloudPrint_.bind(this);
- global.updateWithPrinterCapabilities =
- this.onUpdateWithPrinterCapabilities_.bind(this);
- global.failedToGetPrinterCapabilities =
- this.onFailedToGetPrinterCapabilities_.bind(this);
- global.failedToGetPrivetPrinterCapabilities =
- this.onFailedToGetPrivetPrinterCapabilities_.bind(this);
- global.failedToGetExtensionPrinterCapabilities =
- this.onFailedToGetExtensionPrinterCapabilities_.bind(this);
global.reloadPrintersList = this.onReloadPrintersList_.bind(this);
global.printToCloud = this.onPrintToCloud_.bind(this);
global.fileSelectionCancelled =
@@ -69,11 +92,7 @@ cr.define('print_preview', function() {
global.onDidPreviewPage = this.onDidPreviewPage_.bind(this);
global.updatePrintPreview = this.onUpdatePrintPreview_.bind(this);
global.onDidGetAccessToken = this.onDidGetAccessToken_.bind(this);
- global.onPrivetCapabilitiesSet =
- this.onPrivetCapabilitiesSet_.bind(this);
global.onPrivetPrintFailed = this.onPrivetPrintFailed_.bind(this);
- global.onExtensionCapabilitiesSet =
- this.onExtensionCapabilitiesSet_.bind(this);
global.onEnableManipulateSettingsForTest =
this.onEnableManipulateSettingsForTest_.bind(this);
global.printPresetOptionsFromDocument =
@@ -115,14 +134,12 @@ cr.define('print_preview', function() {
*/
NativeLayer.EventType = {
ACCESS_TOKEN_READY: 'print_preview.NativeLayer.ACCESS_TOKEN_READY',
- CAPABILITIES_SET: 'print_preview.NativeLayer.CAPABILITIES_SET',
CLOUD_PRINT_ENABLE: 'print_preview.NativeLayer.CLOUD_PRINT_ENABLE',
DESTINATIONS_RELOAD: 'print_preview.NativeLayer.DESTINATIONS_RELOAD',
DISABLE_SCALING: 'print_preview.NativeLayer.DISABLE_SCALING',
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',
MANIPULATE_SETTINGS_FOR_TEST:
'print_preview.NativeLayer.MANIPULATE_SETTINGS_FOR_TEST',
PAGE_COUNT_READY: 'print_preview.NativeLayer.PAGE_COUNT_READY',
@@ -134,12 +151,7 @@ cr.define('print_preview', function() {
'print_preview.NativeLayer.PREVIEW_GENERATION_FAIL',
PRINT_TO_CLOUD: 'print_preview.NativeLayer.PRINT_TO_CLOUD',
SETTINGS_INVALID: 'print_preview.NativeLayer.SETTINGS_INVALID',
- PRIVET_PRINTER_CHANGED: 'print_preview.NativeLayer.PRIVET_PRINTER_CHANGED',
- PRIVET_CAPABILITIES_SET:
- 'print_preview.NativeLayer.PRIVET_CAPABILITIES_SET',
PRIVET_PRINT_FAILED: 'print_preview.NativeLayer.PRIVET_PRINT_FAILED',
- EXTENSION_CAPABILITIES_SET:
- 'print_preview.NativeLayer.EXTENSION_CAPABILITIES_SET',
PRINT_PRESET_OPTIONS: 'print_preview.NativeLayer.PRINT_PRESET_OPTIONS',
PROVISIONAL_DESTINATION_RESOLVED:
'print_preview.NativeLayer.PROVISIONAL_DESTINATION_RESOLVED'
@@ -240,15 +252,6 @@ cr.define('print_preview', function() {
return cr.sendWithPromise('getPrivetPrinters');
},
- /**
- * Requests the privet destination's printing capabilities. A
- * PRIVET_CAPABILITIES_SET event will be dispatched in response.
- * @param {string} destinationId ID of the destination.
- */
- startGetPrivetDestinationCapabilities: function(destinationId) {
- chrome.send('getPrivetPrinterCapabilities', [destinationId]);
- },
-
/**
* Request a list of extension printers. Printers are reported as they are
* found by a series of 'extension-printers-added' events.
@@ -260,22 +263,37 @@ cr.define('print_preview', function() {
},
/**
- * Requests an extension destination's printing capabilities. A
- * EXTENSION_CAPABILITIES_SET event will be dispatched in response.
- * @param {string} destinationId The ID of the destination whose
- * capabilities are requested.
+ * Requests the destination's printing capabilities. Returns a promise that
+ * will be resolved with the capabilities if they are obtained successfully.
+ * @param {string} destinationId ID of the destination.
+ * @return {!Promise<!print_preview.PrinterCapabilitiesResponse>}
*/
- startGetExtensionDestinationCapabilities: function(destinationId) {
- chrome.send('getExtensionPrinterCapabilities', [destinationId]);
+ getPrinterCapabilities: function(destinationId) {
+ return cr.sendWithPromise('getPrinterCapabilities', destinationId);
},
/**
- * Requests the destination's printing capabilities. A CAPABILITIES_SET
- * event will be dispatched in response.
+ * Requests the privet destination's printing capabilities. Returns a
+ * promise that will be resolved with capabilities and printer information
+ * if capabilities are obtained successfully.
* @param {string} destinationId ID of the destination.
+ * @return {!Promise<!print_preview.PrivetPrinterCapabilitiesResponse>}
*/
- startGetLocalDestinationCapabilities: function(destinationId) {
- chrome.send('getPrinterCapabilities', [destinationId]);
+ getPrivetPrinterCapabilities: function(destinationId) {
+ return cr.sendWithPromise('getPrivetPrinterCapabilities', destinationId);
+ },
+
+ /**
+ * Requests the extension destination's printing capabilities. Returns a
+ * promise that will be resolved with the ID and capabilities if
+ * capabilities are obtained successfully.
+ * @param {string} destinationId The ID of the destination whose
+ * capabilities are requested.
+ * @return {!Promise<!print_preview.Cdd>}
+ */
+ getExtensionPrinterCapabilities: function(destinationId) {
+ return cr.sendWithPromise('getExtensionPrinterCapabilities',
+ destinationId);
},
/**
@@ -549,65 +567,6 @@ cr.define('print_preview', function() {
this.eventTarget_.dispatchEvent(cloudPrintEnableEvent);
},
- /**
- * Called when native layer gets settings information for a requested local
- * destination.
- * @param {Object} settingsInfo printer setting information.
- * @private
- */
- onUpdateWithPrinterCapabilities_: function(settingsInfo) {
- assert(settingsInfo.capabilities,
- 'Capabilities update without capabilites');
- var capsSetEvent = new Event(NativeLayer.EventType.CAPABILITIES_SET);
- capsSetEvent.settingsInfo = settingsInfo;
- this.eventTarget_.dispatchEvent(capsSetEvent);
- },
-
- /**
- * Called when native layer gets settings information for a requested local
- * destination.
- * @param {string} destinationId Printer affected by error.
- * @private
- */
- onFailedToGetPrinterCapabilities_: function(destinationId) {
- var getCapsFailEvent = new Event(
- NativeLayer.EventType.GET_CAPABILITIES_FAIL);
- getCapsFailEvent.destinationId = destinationId;
- getCapsFailEvent.destinationOrigin =
- print_preview.DestinationOrigin.LOCAL;
- this.eventTarget_.dispatchEvent(getCapsFailEvent);
- },
-
- /**
- * Called when native layer gets settings information for a requested privet
- * destination.
- * @param {string} destinationId Printer affected by error.
- * @private
- */
- onFailedToGetPrivetPrinterCapabilities_: function(destinationId) {
- var getCapsFailEvent = new Event(
- NativeLayer.EventType.GET_CAPABILITIES_FAIL);
- getCapsFailEvent.destinationId = destinationId;
- getCapsFailEvent.destinationOrigin =
- print_preview.DestinationOrigin.PRIVET;
- this.eventTarget_.dispatchEvent(getCapsFailEvent);
- },
-
- /**
- * Called when native layer fails to get settings information for a
- * requested extension destination.
- * @param {string} destinationId Printer affected by error.
- * @private
- */
- onFailedToGetExtensionPrinterCapabilities_: function(destinationId) {
- var getCapsFailEvent = new Event(
- NativeLayer.EventType.GET_CAPABILITIES_FAIL);
- getCapsFailEvent.destinationId = destinationId;
- getCapsFailEvent.destinationOrigin =
- print_preview.DestinationOrigin.EXTENSION;
- this.eventTarget_.dispatchEvent(getCapsFailEvent);
- },
-
/** Reloads the printer list. */
onReloadPrintersList_: function() {
cr.dispatchSimpleEvent(this.eventTarget_,
@@ -773,19 +732,6 @@ cr.define('print_preview', function() {
this.eventTarget_.dispatchEvent(printPresetOptionsEvent);
},
- /**
- * @param {Object} printer Specifies information about the printer that was
- * added.
- * @private
- */
- onPrivetCapabilitiesSet_: function(printer, capabilities) {
- var privetCapabilitiesSetEvent =
- new Event(NativeLayer.EventType.PRIVET_CAPABILITIES_SET);
- privetCapabilitiesSetEvent.printer = printer;
- privetCapabilitiesSetEvent.capabilities = capabilities;
- this.eventTarget_.dispatchEvent(privetCapabilitiesSetEvent);
- },
-
/**
* @param {string} http_error The HTTP response code or -1 if not an HTTP
* error.
@@ -798,20 +744,6 @@ cr.define('print_preview', function() {
this.eventTarget_.dispatchEvent(privetPrintFailedEvent);
},
- /**
- * Called when an extension responds to a request for an extension printer
- * capabilities.
- * @param {string} printerId The printer's ID.
- * @param {!Object} capabilities The reported printer capabilities.
- */
- onExtensionCapabilitiesSet_: function(printerId,
- capabilities) {
- var event = new Event(NativeLayer.EventType.EXTENSION_CAPABILITIES_SET);
- event.printerId = printerId;
- event.capabilities = capabilities;
- this.eventTarget_.dispatchEvent(event);
- },
-
/**
* Called when Chrome reports that attempt to resolve a provisional
* destination failed.

Powered by Google App Engine
This is Rietveld 408576698