diff options
author | ckocagil@chromium.org <ckocagil@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-08 07:56:36 +0000 |
---|---|---|
committer | ckocagil@chromium.org <ckocagil@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-08 07:56:36 +0000 |
commit | 1e4771760a9244d2cef1c544299b976b9f940d12 (patch) | |
tree | f65bb82fa126279d7a6bb47d24205185e5dbfc62 /chrome/browser/resources | |
parent | 64bb94fdffc91abd7ab5c2ba8a1054ff445f1467 (diff) | |
download | chromium_src-1e4771760a9244d2cef1c544299b976b9f940d12.zip chromium_src-1e4771760a9244d2cef1c544299b976b9f940d12.tar.gz chromium_src-1e4771760a9244d2cef1c544299b976b9f940d12.tar.bz2 |
Revert of Generalize printer color model handling, get rid of CUPS specific case. Enable supported paper szes… (https://codereview.chromium.org/324523002/)
Reason for revert:
Breaks Linux ASAN http://build.chromium.org/p/chromium.memory/builders/Linux%20ASan%20LSan%20Tests%20%281%29/builds/2865
Original issue's description:
> Generalize printer color model handling, get rid of CUPS specific case. Enable supported paper szes reporting for all platforms.
>
> BUG=239879
> NOTRY=true
>
> Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=275646
>
> Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=275716
TBR=vitalybuka@chromium.org,jschuh@chromium.org,alekseys@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=239879
Review URL: https://codereview.chromium.org/321703002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@275739 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/resources')
3 files changed, 46 insertions, 83 deletions
diff --git a/chrome/browser/resources/print_preview/data/print_ticket_store.js b/chrome/browser/resources/print_preview/data/print_ticket_store.js index a39a8db..0b902f4 100644 --- a/chrome/browser/resources/print_preview/data/print_ticket_store.js +++ b/chrome/browser/resources/print_preview/data/print_ticket_store.js @@ -376,13 +376,19 @@ cr.define('print_preview', function() { cjt.print.collate = {collate: this.collate.getValue()}; } if (this.color.isCapabilityAvailable() && this.color.isUserEdited()) { - var selectedOption = this.color.getSelectedOption(); - if (!selectedOption) { + var colorType = this.color.getValue() ? + 'STANDARD_COLOR' : 'STANDARD_MONOCHROME'; + // Find option with this colorType to read its vendor_id. + var selectedOptions = destination.capabilities.printer.color.option. + filter(function(option) { + return option.type == colorType; + }); + if (selectedOptions.length == 0) { console.error('Could not find correct color option'); } else { - cjt.print.color = {type: selectedOption.type}; - if (selectedOption.hasOwnProperty('vendor_id')) { - cjt.print.color.vendor_id = selectedOption.vendor_id; + cjt.print.color = {type: colorType}; + if (selectedOptions[0].hasOwnProperty('vendor_id')) { + cjt.print.color.vendor_id = selectedOptions[0].vendor_id; } } } diff --git a/chrome/browser/resources/print_preview/data/ticket_items/color.js b/chrome/browser/resources/print_preview/data/ticket_items/color.js index e3d5238..fefe538 100644 --- a/chrome/browser/resources/print_preview/data/ticket_items/color.js +++ b/chrome/browser/resources/print_preview/data/ticket_items/color.js @@ -23,18 +23,6 @@ cr.define('print_preview.ticket_items', function() { destinationStore); }; - /* - * @private {!Array.<string>} List of capability types considered color. - * @const - */ - Color.COLOR_TYPES_ = ['STANDARD_COLOR', 'CUSTOM_COLOR']; - - /* - * @private {!Array.<string>} List of capability types considered monochrome. - * @const - */ - Color.MONOCHROME_TYPES_ = ['STANDARD_MONOCHROME', 'CUSTOM_MONOCHROME']; - Color.prototype = { __proto__: print_preview.ticket_items.TicketItem.prototype, @@ -45,72 +33,56 @@ cr.define('print_preview.ticket_items', function() { /** @override */ isCapabilityAvailable: function() { - var capability = this.capability; - if (!capability) { + var colorCap = this.getColorCapability_(); + if (!colorCap) { return false; } var hasColor = false; var hasMonochrome = false; - capability.option.forEach(function(option) { - hasColor = hasColor || (Color.COLOR_TYPES_.indexOf(option.type) >= 0); - hasMonochrome = hasMonochrome || - (Color.MONOCHROME_TYPES_.indexOf(option.type) >= 0); + colorCap.option.forEach(function(option) { + hasColor = hasColor || option.type == 'STANDARD_COLOR'; + hasMonochrome = hasMonochrome || option.type == 'STANDARD_MONOCHROME'; }); return hasColor && hasMonochrome; }, - /** @return {Object} Color capability of the selected destination. */ - get capability() { - var dest = this.getSelectedDestInternal(); - return (dest && - dest.capabilities && - dest.capabilities.printer && - dest.capabilities.printer.color) || - null; - }, - - /** @return {Object} Color option corresponding to the current value. */ - getSelectedOption: function() { - var capability = this.capability; - var options = capability ? capability.option : null; - if (options) { - var typesToLookFor = - this.getValue() ? Color.COLOR_TYPES_ : Color.MONOCHROME_TYPES_; - for (var i = 0; i < typesToLookFor.length; i++) { - var matchingOptions = options.filter(function(option) { - return option.type == typesToLookFor[i]; - }); - if (matchingOptions.length > 0) { - return matchingOptions[0]; - } - } - } - return null; - }, - /** @override */ getDefaultValueInternal: function() { - var capability = this.capability; - var defaultOption = capability ? - this.getDefaultColorOption_(capability.option) : null; - return defaultOption && - (Color.COLOR_TYPES_.indexOf(defaultOption.type) >= 0); + var colorCap = this.getColorCapability_(); + var defaultOption = this.getDefaultColorOption_(colorCap.option); + return defaultOption && defaultOption.type == 'STANDARD_COLOR'; }, /** @override */ getCapabilityNotAvailableValueInternal: function() { + var colorCap = this.getColorCapability_(); + var defaultOption = colorCap ? + this.getDefaultColorOption_(colorCap.option) : null; + // TODO(rltoscano): Get rid of this check based on destination ID. These // destinations should really update their CDDs to have only one color // option that has type 'STANDARD_COLOR'. var dest = this.getSelectedDestInternal(); - if (dest) { - if (dest.id == print_preview.Destination.GooglePromotedId.DOCS || - dest.id == print_preview.Destination.GooglePromotedId.FEDEX || - dest.type == print_preview.Destination.Type.MOBILE) { - return true; - } + if (!dest) { + return false; } - return this.getDefaultValueInternal(); + return dest.id == print_preview.Destination.GooglePromotedId.DOCS || + dest.id == print_preview.Destination.GooglePromotedId.FEDEX || + dest.type == print_preview.Destination.Type.MOBILE || + defaultOption && defaultOption.type == 'STANDARD_COLOR'; + }, + + /** + * @return {Object} Color capability of the selected destination. + * @private + */ + getColorCapability_: function() { + var dest = this.getSelectedDestInternal(); + return (dest && + dest.capabilities && + dest.capabilities.printer && + dest.capabilities.printer.color) || + null; }, /** diff --git a/chrome/browser/resources/print_preview/native_layer.js b/chrome/browser/resources/print_preview/native_layer.js index 0111ccd..efdd55b 100644 --- a/chrome/browser/resources/print_preview/native_layer.js +++ b/chrome/browser/resources/print_preview/native_layer.js @@ -168,23 +168,6 @@ cr.define('print_preview', function() { }, /** - * @param {!print_preview.Destination} destination Destination to print to. - * @param {!print_preview.ticket_items.Color} color Color ticket item. - * @return {number} Native layer color model. - * @private - */ - getNativeColorModel_: function(destination, color) { - // For non-local printers native color model is ignored anyway. - var option = destination.isLocal ? color.getSelectedOption() : null; - var nativeColorModel = parseInt(option ? option.vendor_id : null); - if (isNaN(nativeColorModel)) { - return color.getValue() ? - NativeLayer.ColorMode_.COLOR : NativeLayer.ColorMode_.GRAY; - } - return nativeColorModel; - }, - - /** * Requests that a preview be generated. The following events may be * dispatched in response: * - PAGE_COUNT_READY @@ -207,7 +190,8 @@ cr.define('print_preview', function() { 'pageRange': printTicketStore.pageRange.getDocumentPageRanges(), 'mediaSize': printTicketStore.mediaSize.getValue(), 'landscape': printTicketStore.landscape.getValue(), - 'color': this.getNativeColorModel_(destination, printTicketStore.color), + 'color': printTicketStore.color.getValue() ? + NativeLayer.ColorMode_.COLOR : NativeLayer.ColorMode_.GRAY, 'headerFooterEnabled': printTicketStore.headerFooter.getValue(), 'marginsType': printTicketStore.marginsType.getValue(), 'isFirstRequest': requestId == 0, @@ -279,7 +263,8 @@ cr.define('print_preview', function() { 'pageRange': printTicketStore.pageRange.getDocumentPageRanges(), 'pageCount': printTicketStore.pageRange.getPageNumberSet().size, 'landscape': printTicketStore.landscape.getValue(), - 'color': this.getNativeColorModel_(destination, printTicketStore.color), + 'color': printTicketStore.color.getValue() ? + NativeLayer.ColorMode_.COLOR : NativeLayer.ColorMode_.GRAY, 'headerFooterEnabled': printTicketStore.headerFooter.getValue(), 'marginsType': printTicketStore.marginsType.getValue(), 'generateDraftData': true, // TODO(rltoscano): What should this be? |