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

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

Issue 900503002: List printers managed by extensions in print preview (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 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 cr.exportPath('print_preview'); 5 cr.exportPath('print_preview');
6 6
7 /** 7 /**
8 * @typedef {{selectSaveAsPdfDestination: boolean, 8 * @typedef {{selectSaveAsPdfDestination: boolean,
9 * layoutSettings.portrait: boolean, 9 * layoutSettings.portrait: boolean,
10 * pageRange: string, 10 * pageRange: string,
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 global.onDidGetPreviewPageCount = 50 global.onDidGetPreviewPageCount =
51 this.onDidGetPreviewPageCount_.bind(this); 51 this.onDidGetPreviewPageCount_.bind(this);
52 global.onDidPreviewPage = this.onDidPreviewPage_.bind(this); 52 global.onDidPreviewPage = this.onDidPreviewPage_.bind(this);
53 global.updatePrintPreview = this.onUpdatePrintPreview_.bind(this); 53 global.updatePrintPreview = this.onUpdatePrintPreview_.bind(this);
54 global.onDidGetAccessToken = this.onDidGetAccessToken_.bind(this); 54 global.onDidGetAccessToken = this.onDidGetAccessToken_.bind(this);
55 global.autoCancelForTesting = this.autoCancelForTesting_.bind(this); 55 global.autoCancelForTesting = this.autoCancelForTesting_.bind(this);
56 global.onPrivetPrinterChanged = this.onPrivetPrinterChanged_.bind(this); 56 global.onPrivetPrinterChanged = this.onPrivetPrinterChanged_.bind(this);
57 global.onPrivetCapabilitiesSet = 57 global.onPrivetCapabilitiesSet =
58 this.onPrivetCapabilitiesSet_.bind(this); 58 this.onPrivetCapabilitiesSet_.bind(this);
59 global.onPrivetPrintFailed = this.onPrivetPrintFailed_.bind(this); 59 global.onPrivetPrintFailed = this.onPrivetPrintFailed_.bind(this);
60 global.onExtensionPrintersAdded =
61 this.onExtensionPrintersAdded_.bind(this);
62 global.onExtensionCapabilitiesSet =
63 this.onExtensionCapabilitiesSet_.bind(this);
60 global.onEnableManipulateSettingsForTest = 64 global.onEnableManipulateSettingsForTest =
61 this.onEnableManipulateSettingsForTest_.bind(this); 65 this.onEnableManipulateSettingsForTest_.bind(this);
62 global.printPresetOptionsFromDocument = 66 global.printPresetOptionsFromDocument =
63 this.onPrintPresetOptionsFromDocument_.bind(this); 67 this.onPrintPresetOptionsFromDocument_.bind(this);
64 }; 68 };
65 69
66 /** 70 /**
67 * Event types dispatched from the Chromium native layer. 71 * Event types dispatched from the Chromium native layer.
68 * @enum {string} 72 * @enum {string}
69 * @const 73 * @const
(...skipping 18 matching lines...) Expand all
88 PREVIEW_GENERATION_DONE: 92 PREVIEW_GENERATION_DONE:
89 'print_preview.NativeLayer.PREVIEW_GENERATION_DONE', 93 'print_preview.NativeLayer.PREVIEW_GENERATION_DONE',
90 PREVIEW_GENERATION_FAIL: 94 PREVIEW_GENERATION_FAIL:
91 'print_preview.NativeLayer.PREVIEW_GENERATION_FAIL', 95 'print_preview.NativeLayer.PREVIEW_GENERATION_FAIL',
92 PRINT_TO_CLOUD: 'print_preview.NativeLayer.PRINT_TO_CLOUD', 96 PRINT_TO_CLOUD: 'print_preview.NativeLayer.PRINT_TO_CLOUD',
93 SETTINGS_INVALID: 'print_preview.NativeLayer.SETTINGS_INVALID', 97 SETTINGS_INVALID: 'print_preview.NativeLayer.SETTINGS_INVALID',
94 PRIVET_PRINTER_CHANGED: 'print_preview.NativeLayer.PRIVET_PRINTER_CHANGED', 98 PRIVET_PRINTER_CHANGED: 'print_preview.NativeLayer.PRIVET_PRINTER_CHANGED',
95 PRIVET_CAPABILITIES_SET: 99 PRIVET_CAPABILITIES_SET:
96 'print_preview.NativeLayer.PRIVET_CAPABILITIES_SET', 100 'print_preview.NativeLayer.PRIVET_CAPABILITIES_SET',
97 PRIVET_PRINT_FAILED: 'print_preview.NativeLayer.PRIVET_PRINT_FAILED', 101 PRIVET_PRINT_FAILED: 'print_preview.NativeLayer.PRIVET_PRINT_FAILED',
102 EXTENSION_PRINTERS_ADDED:
103 'print_preview.NativeLayer.EXTENSION_PRINTERS_ADDED',
104 EXTENSION_CAPABILITIES_SET:
105 'print_preview.NativeLayer.EXTENSION_CAPABILITIES_SET',
98 PRINT_PRESET_OPTIONS: 'print_preview.NativeLayer.PRINT_PRESET_OPTIONS', 106 PRINT_PRESET_OPTIONS: 'print_preview.NativeLayer.PRINT_PRESET_OPTIONS',
99 }; 107 };
100 108
101 /** 109 /**
102 * Constant values matching printing::DuplexMode enum. 110 * Constant values matching printing::DuplexMode enum.
103 * @enum {number} 111 * @enum {number}
104 */ 112 */
105 NativeLayer.DuplexMode = { 113 NativeLayer.DuplexMode = {
106 SIMPLEX: 0, 114 SIMPLEX: 0,
107 LONG_EDGE: 1, 115 LONG_EDGE: 1,
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
170 /** 178 /**
171 * Requests the privet destination's printing capabilities. A 179 * Requests the privet destination's printing capabilities. A
172 * PRIVET_CAPABILITIES_SET event will be dispatched in response. 180 * PRIVET_CAPABILITIES_SET event will be dispatched in response.
173 * @param {string} destinationId ID of the destination. 181 * @param {string} destinationId ID of the destination.
174 */ 182 */
175 startGetPrivetDestinationCapabilities: function(destinationId) { 183 startGetPrivetDestinationCapabilities: function(destinationId) {
176 chrome.send('getPrivetPrinterCapabilities', [destinationId]); 184 chrome.send('getPrivetPrinterCapabilities', [destinationId]);
177 }, 185 },
178 186
179 /** 187 /**
188 * Requests that extension system dispatches an event requesting the list of
189 * extension managed printers.
190 */
191 startGetExtensionDestinations: function() {
192 chrome.send('getExtensionPrinters');
193 },
194
195 /**
196 * Requests an extension destination's printing capabilities. A
197 * EXTENSION_CAPABILITIES_SET event will be dispatched in response.
198 * @param {string} extensionId The ID of the extension from which the
199 * capabilities should be requested.
200 * @param {string} printerId The ID of the printer whose capabilities are
201 * requested.
202 */
203 startGetExtensionDestinationCapabilities: function(extensionId, printerId) {
204 chrome.send('getExtensionPrinterCapabilities', [extensionId, printerId]);
205 },
206
207 /**
180 * Requests the destination's printing capabilities. A CAPABILITIES_SET 208 * Requests the destination's printing capabilities. A CAPABILITIES_SET
181 * event will be dispatched in response. 209 * event will be dispatched in response.
182 * @param {string} destinationId ID of the destination. 210 * @param {string} destinationId ID of the destination.
183 */ 211 */
184 startGetLocalDestinationCapabilities: function(destinationId) { 212 startGetLocalDestinationCapabilities: function(destinationId) {
185 chrome.send('getPrinterCapabilities', [destinationId]); 213 chrome.send('getPrinterCapabilities', [destinationId]);
186 }, 214 },
187 215
188 /** 216 /**
189 * @param {!print_preview.Destination} destination Destination to print to. 217 * @param {!print_preview.Destination} destination Destination to print to.
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 */ 320 */
293 startPrint: function(destination, printTicketStore, cloudPrintInterface, 321 startPrint: function(destination, printTicketStore, cloudPrintInterface,
294 documentInfo, opt_isOpenPdfInPreview, 322 documentInfo, opt_isOpenPdfInPreview,
295 opt_showSystemDialog) { 323 opt_showSystemDialog) {
296 assert(printTicketStore.isTicketValid(), 324 assert(printTicketStore.isTicketValid(),
297 'Trying to print when ticket is not valid'); 325 'Trying to print when ticket is not valid');
298 326
299 assert(!opt_showSystemDialog || (cr.isWindows && destination.isLocal), 327 assert(!opt_showSystemDialog || (cr.isWindows && destination.isLocal),
300 'Implemented for Windows only'); 328 'Implemented for Windows only');
301 329
330 // TODO(tbarzic): Implement this.
331 assert(!destination.isExtension,
332 'Printing to extension printers not yet implemented.');
333
302 var ticket = { 334 var ticket = {
303 'pageRange': printTicketStore.pageRange.getDocumentPageRanges(), 335 'pageRange': printTicketStore.pageRange.getDocumentPageRanges(),
304 'mediaSize': printTicketStore.mediaSize.getValue(), 336 'mediaSize': printTicketStore.mediaSize.getValue(),
305 'pageCount': printTicketStore.pageRange.getPageNumberSet().size, 337 'pageCount': printTicketStore.pageRange.getPageNumberSet().size,
306 'landscape': printTicketStore.landscape.getValue(), 338 'landscape': printTicketStore.landscape.getValue(),
307 'color': this.getNativeColorModel_(destination, printTicketStore.color), 339 'color': this.getNativeColorModel_(destination, printTicketStore.color),
308 'headerFooterEnabled': printTicketStore.headerFooter.getValue(), 340 'headerFooterEnabled': printTicketStore.headerFooter.getValue(),
309 'marginsType': printTicketStore.marginsType.getValue(), 341 'marginsType': printTicketStore.marginsType.getValue(),
310 'generateDraftData': true, // TODO(rltoscano): What should this be? 342 'generateDraftData': true, // TODO(rltoscano): What should this be?
311 'duplex': printTicketStore.duplex.getValue() ? 343 'duplex': printTicketStore.duplex.getValue() ?
(...skipping 401 matching lines...) Expand 10 before | Expand all | Expand 10 after
713 * @private 745 * @private
714 */ 746 */
715 onPrivetPrintFailed_: function(http_error) { 747 onPrivetPrintFailed_: function(http_error) {
716 var privetPrintFailedEvent = 748 var privetPrintFailedEvent =
717 new Event(NativeLayer.EventType.PRIVET_PRINT_FAILED); 749 new Event(NativeLayer.EventType.PRIVET_PRINT_FAILED);
718 privetPrintFailedEvent.httpError = http_error; 750 privetPrintFailedEvent.httpError = http_error;
719 this.dispatchEvent(privetPrintFailedEvent); 751 this.dispatchEvent(privetPrintFailedEvent);
720 }, 752 },
721 753
722 /** 754 /**
755 * @param {Array.<{extensionId: string,
756 * id: string,
757 * name: string,
758 * description: (string|undefined)}>} printers The list
759 * containing information about printers added by an extension.
760 * @param {boolean} done Whether this is the final list of extension
761 * managed printers.
762 */
763 onExtensionPrintersAdded_: function(printers, done) {
764 var event = new Event(NativeLayer.EventType.EXTENSION_PRINTERS_ADDED);
765 event.printers = printers;
766 event.done = done;
767 this.dispatchEvent(event);
768 },
769
770 /**
771 * Called when an extension responds to a request for an extension printer
772 * capabilities.
773 * @param {string} extensionId The ID of extension that manages the printer.
774 * @param {string} printerId The printer's ID (within the extension's
775 * space).
776 * @param {Object} capabilities The reported printer capabilities.
777 */
778 onExtensionCapabilitiesSet_: function(extensionId,
779 printerId,
780 capabilities) {
781 var event = new Event(NativeLayer.EventType.EXTENSION_CAPABILITIES_SET);
782 event.extensionID = extensionId;
783 event.printerID = printerId;
784 event.capabilities = capabilities;
785 this.dispatchEvent(event);
786 },
787
788 /**
723 * Allows for onManipulateSettings to be called 789 * Allows for onManipulateSettings to be called
724 * from the native layer. 790 * from the native layer.
725 * @private 791 * @private
726 */ 792 */
727 onEnableManipulateSettingsForTest_: function() { 793 onEnableManipulateSettingsForTest_: function() {
728 global.onManipulateSettingsForTest = 794 global.onManipulateSettingsForTest =
729 this.onManipulateSettingsForTest_.bind(this); 795 this.onManipulateSettingsForTest_.bind(this);
730 }, 796 },
731 797
732 /** 798 /**
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after
956 return this.serializedAppStateStr_; 1022 return this.serializedAppStateStr_;
957 } 1023 }
958 }; 1024 };
959 1025
960 // Export 1026 // Export
961 return { 1027 return {
962 NativeInitialSettings: NativeInitialSettings, 1028 NativeInitialSettings: NativeInitialSettings,
963 NativeLayer: NativeLayer 1029 NativeLayer: NativeLayer
964 }; 1030 };
965 }); 1031 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698