summaryrefslogtreecommitdiffstats
path: root/chrome/browser/resources
diff options
context:
space:
mode:
authorckocagil@chromium.org <ckocagil@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-08 07:56:36 +0000
committerckocagil@chromium.org <ckocagil@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-08 07:56:36 +0000
commit1e4771760a9244d2cef1c544299b976b9f940d12 (patch)
treef65bb82fa126279d7a6bb47d24205185e5dbfc62 /chrome/browser/resources
parent64bb94fdffc91abd7ab5c2ba8a1054ff445f1467 (diff)
downloadchromium_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')
-rw-r--r--chrome/browser/resources/print_preview/data/print_ticket_store.js16
-rw-r--r--chrome/browser/resources/print_preview/data/ticket_items/color.js90
-rw-r--r--chrome/browser/resources/print_preview/native_layer.js23
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?