Commit b9d9f32f authored by Vladislav Kuzkokov's avatar Vladislav Kuzkokov Committed by Commit Bot

[Printing] Apply printing policy after capabilities are available.

'printers-added' event adds destinations without capabilities.
Capabilities and policies are pulled by getPrinterCapabilities() native
call but only capabilities are applied.
This happens most often in managed guest session where there isn't last
selected printer most of the time (for which it works a bit
differently).

Bug: 998103
Change-Id: Ibcb0965a01ff06bbd503edcc57a54b142df04903
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1772163Reviewed-by: default avatarRebekah Potter <rbpotter@chromium.org>
Commit-Queue: Vladislav Kuzkokov <vkuzkokov@chromium.org>
Cr-Commit-Position: refs/heads/master@{#692062}
parent 4062f263
...@@ -1180,6 +1180,9 @@ cr.define('print_preview', function() { ...@@ -1180,6 +1180,9 @@ cr.define('print_preview', function() {
assert(settingsInfo.printer))); assert(settingsInfo.printer)));
} }
if (dest) { if (dest) {
if (settingsInfo.printer && settingsInfo.printer.policies) {
dest.policies = settingsInfo.printer.policies;
}
if ((origin === print_preview.DestinationOrigin.LOCAL || if ((origin === print_preview.DestinationOrigin.LOCAL ||
origin === print_preview.DestinationOrigin.CROS) && origin === print_preview.DestinationOrigin.CROS) &&
dest.capabilities) { dest.capabilities) {
......
...@@ -429,8 +429,9 @@ cr.define('destination_store_test', function() { ...@@ -429,8 +429,9 @@ cr.define('destination_store_test', function() {
const localDestinationInfo = {deviceName: id1, printerName: name1}; const localDestinationInfo = {deviceName: id1, printerName: name1};
if (cr.isChromeOS) { if (cr.isChromeOS) {
localDestinationInfo.policies = { localDestinationInfo.policies = {
allowedColorModes: 0x1, allowedColorModes:
defaultColorMode: 0x1 print_preview.ColorModeRestriction.MONOCHROME,
defaultColorMode: print_preview.ColorModeRestriction.MONOCHROME,
}; };
} }
nativeLayer.setLocalDestinationCapabilities({ nativeLayer.setLocalDestinationCapabilities({
...@@ -455,10 +456,9 @@ cr.define('destination_store_test', function() { ...@@ -455,10 +456,9 @@ cr.define('destination_store_test', function() {
assertEquals(destination, destinationStore.selectedDestination); assertEquals(destination, destinationStore.selectedDestination);
// Capabilities are updated. // Capabilities are updated.
assertTrue(!!destination.capabilities); assertTrue(!!destination.capabilities);
// TODO (https://crbug.com/998103): Ensure that the destination
// policies are actually set.
if (cr.isChromeOS) { if (cr.isChromeOS) {
assertEquals(null, destination.policies); // Policies are updated.
assertTrue(!!destination.policies);
} }
}); });
}); });
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment