Chromium Code Reviews| 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 d4beb8926afb27fd2400ba4f8f52f222d76fc2be..57b73bfd32479953afff2728d6356b4700df8b0b 100644 |
| --- a/chrome/browser/resources/print_preview/native_layer.js |
| +++ b/chrome/browser/resources/print_preview/native_layer.js |
| @@ -57,6 +57,10 @@ cr.define('print_preview', function() { |
| global.onPrivetCapabilitiesSet = |
| this.onPrivetCapabilitiesSet_.bind(this); |
| global.onPrivetPrintFailed = this.onPrivetPrintFailed_.bind(this); |
| + global.onExtensionPrintersAdded = |
| + this.onExtensionPrintersAdded_.bind(this); |
| + global.onExtensionCapabilitiesSet = |
| + this.onExtensionCapabilitiesSet_.bind(this); |
| global.onEnableManipulateSettingsForTest = |
| this.onEnableManipulateSettingsForTest_.bind(this); |
| global.printPresetOptionsFromDocument = |
| @@ -95,6 +99,10 @@ cr.define('print_preview', function() { |
| PRIVET_CAPABILITIES_SET: |
| 'print_preview.NativeLayer.PRIVET_CAPABILITIES_SET', |
| PRIVET_PRINT_FAILED: 'print_preview.NativeLayer.PRIVET_PRINT_FAILED', |
| + EXTENSION_PRINTERS_ADDED: |
| + 'print_preview.NativeLayer.EXTENSION_PRINTERS_ADDED', |
| + EXTENSION_CAPABILITIES_SET: |
| + 'print_preview.NativeLayer.EXTENSION_CAPABILITIES_SET', |
| PRINT_PRESET_OPTIONS: 'print_preview.NativeLayer.PRINT_PRESET_OPTIONS', |
| }; |
| @@ -177,6 +185,26 @@ cr.define('print_preview', function() { |
| }, |
| /** |
| + * Requests that extension system dispatches an event requesting the list of |
| + * extension managed printers. |
| + */ |
| + startGetExtensionDestinations: function() { |
| + chrome.send('getExtensionPrinters'); |
| + }, |
| + |
| + /** |
| + * Requests an extension destination's printing capabilities. A |
| + * EXTENSION_CAPABILITIES_SET event will be dispatched in response. |
| + * @param {string} extensionId The ID of the extension from which the |
| + * capabilities should be requested. |
| + * @param {string} printerId The ID of the printer whose capabilities are |
| + * requested. |
| + */ |
| + startGetExtensionDestinationCapabilities: function(extensionId, printerId) { |
| + chrome.send('getExtensionPrinterCapabilities', [extensionId, printerId]); |
| + }, |
| + |
| + /** |
| * Requests the destination's printing capabilities. A CAPABILITIES_SET |
| * event will be dispatched in response. |
| * @param {string} destinationId ID of the destination. |
| @@ -299,6 +327,10 @@ cr.define('print_preview', function() { |
| assert(!opt_showSystemDialog || (cr.isWindows && destination.isLocal), |
| 'Implemented for Windows only'); |
| + // TODO(tbarzic): Implement this. |
| + assert(!destination.isExtension, |
| + 'Printing to extension printers not yet implemented.'); |
| + |
| var ticket = { |
| 'pageRange': printTicketStore.pageRange.getDocumentPageRanges(), |
| 'mediaSize': printTicketStore.mediaSize.getValue(), |
| @@ -720,6 +752,40 @@ cr.define('print_preview', function() { |
| }, |
| /** |
| + * @param {Array.<{extensionId: string, |
| + * id: string, |
| + * name: string, |
| + * description: (string|undefined)}>} printers The list |
| + * containing information about printers added by an extension. |
| + * @param {boolean} done Whether this is the final list of extension |
| + * managed printers. |
| + */ |
| + onExtensionPrintersAdded_: function(printers, done) { |
| + var event = new Event(NativeLayer.EventType.EXTENSION_PRINTERS_ADDED); |
| + event.printers = printers; |
| + event.done = done; |
| + this.dispatchEvent(event); |
| + }, |
| + |
| + /** |
| + * Called when an extension responds to a request for an extension printer |
| + * capabilities. |
| + * @param {string} extensionId The ID of extension that manages the printer. |
| + * @param {string} printerId The printer's ID (within the extension's |
| + * space). |
| + * @param {Object} capabilities The reported printer capabilities. |
|
Aleksey Shlyapnikov
2015/02/03 20:18:24
!Object or can they be null?
tbarzic
2015/02/04 02:21:23
Done.
|
| + */ |
| + onExtensionCapabilitiesSet_: function(extensionId, |
| + printerId, |
| + capabilities) { |
| + var event = new Event(NativeLayer.EventType.EXTENSION_CAPABILITIES_SET); |
| + event.extensionID = extensionId; |
|
Aleksey Shlyapnikov
2015/02/03 20:18:24
extensionId
tbarzic
2015/02/04 02:21:23
removed
|
| + event.printerID = printerId; |
|
Aleksey Shlyapnikov
2015/02/03 20:18:24
printerId
tbarzic
2015/02/04 02:21:23
Done.
|
| + event.capabilities = capabilities; |
| + this.dispatchEvent(event); |
| + }, |
| + |
| + /** |
| * Allows for onManipulateSettings to be called |
| * from the native layer. |
| * @private |