Commit a818e77a authored by Jesse Schettler's avatar Jesse Schettler Committed by Commit Bot

Print Preview: Change available settings for ARC

When printing for ARC, make the settings that ARC can handle available
unless the selected destination does not support them.

Available when supported: collate, color, copies, duplex,
duplexShortEdge, layout, mediaSize, pin, pinValue, and vendorItems.

Unavailable: cssBackground, customMargins, dpi, headerFooter, margins,
pagesPerSheet, scaling, scalingType, scalingTypePdf, and selectionOnly.

Bug: b:140576300
Test: Print from ARC and verify the correct settings are available
Change-Id: I4bb5d53c8c64acf9bf189476d54d25ff5162f75b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1865476Reviewed-by: default avatarDaniel Cheng <dcheng@chromium.org>
Reviewed-by: default avatarRebekah Potter <rbpotter@chromium.org>
Commit-Queue: Jesse Schettler <jschettler@chromium.org>
Cr-Commit-Position: refs/heads/master@{#713060}
parent 3b921508
...@@ -9,6 +9,7 @@ cr.exportPath('print_preview'); ...@@ -9,6 +9,7 @@ cr.exportPath('print_preview');
* hasCssMediaStyles: boolean, * hasCssMediaStyles: boolean,
* hasSelection: boolean, * hasSelection: boolean,
* isModifiable: boolean, * isModifiable: boolean,
* isFromArc: boolean,
* isPdf: boolean, * isPdf: boolean,
* isScalingDisabled: boolean, * isScalingDisabled: boolean,
* fitToPageScaling: number, * fitToPageScaling: number,
...@@ -49,6 +50,7 @@ Polymer({ ...@@ -49,6 +50,7 @@ Polymer({
hasCssMediaStyles: false, hasCssMediaStyles: false,
hasSelection: false, hasSelection: false,
isModifiable: true, isModifiable: true,
isFromArc: false,
isPdf: false, isPdf: false,
isScalingDisabled: false, isScalingDisabled: false,
fitToPageScaling: 100, fitToPageScaling: 100,
...@@ -115,14 +117,16 @@ Polymer({ ...@@ -115,14 +117,16 @@ Polymer({
/** /**
* Initializes the state of the data model. * Initializes the state of the data model.
* @param {boolean} isModifiable Whether the document is modifiable. * @param {boolean} isModifiable Whether the document is modifiable.
* @param {boolean} isFromArc Whether the document is from ARC.
* @param {boolean} isPdf Whether the document is PDF. * @param {boolean} isPdf Whether the document is PDF.
* @param {string} title Title of the document. * @param {string} title Title of the document.
* @param {boolean} hasSelection Whether the document has user-selected * @param {boolean} hasSelection Whether the document has user-selected
* content. * content.
*/ */
init: function(isModifiable, isPdf, title, hasSelection) { init: function(isModifiable, isFromArc, isPdf, title, hasSelection) {
this.isInitialized_ = true; this.isInitialized_ = true;
this.set('documentSettings.isModifiable', isModifiable); this.set('documentSettings.isModifiable', isModifiable);
this.set('documentSettings.isFromArc', isFromArc);
// TODO(crbug.com/702995): Remove once Flash is deprecated. // TODO(crbug.com/702995): Remove once Flash is deprecated.
this.set('documentSettings.isPdf', isPdf); this.set('documentSettings.isPdf', isPdf);
this.set('documentSettings.title', title); this.set('documentSettings.title', title);
......
...@@ -484,8 +484,9 @@ Polymer({ ...@@ -484,8 +484,9 @@ Polymer({
observers: [ observers: [
'updateSettingsFromDestination_(destination.capabilities)', 'updateSettingsFromDestination_(destination.capabilities)',
'updateSettingsAvailabilityFromDocumentSettings_(' + 'updateSettingsAvailabilityFromDocumentSettings_(' +
'documentSettings.isModifiable, documentSettings.isPdf,' + 'documentSettings.isModifiable, documentSettings.isFromArc,' +
'documentSettings.hasCssMediaStyles, documentSettings.hasSelection)', 'documentSettings.isPdf, documentSettings.hasCssMediaStyles, ' +
'documentSettings.hasSelection)',
'updateHeaderFooterAvailable_(' + 'updateHeaderFooterAvailable_(' +
'margins, settings.margins.value, ' + 'margins, settings.margins.value, ' +
'settings.customMargins.value, settings.mediaSize.value)', 'settings.customMargins.value, settings.mediaSize.value)',
...@@ -664,11 +665,6 @@ Polymer({ ...@@ -664,11 +665,6 @@ Polymer({
this.setSettingPath_( this.setSettingPath_(
'color.available', this.destination.hasColorCapability); 'color.available', this.destination.hasColorCapability);
this.setSettingPath_(
'dpi.available',
!!caps && !!caps.dpi && !!caps.dpi.option &&
caps.dpi.option.length > 1);
const capsHasDuplex = !!caps && !!caps.duplex && !!caps.duplex.option; const capsHasDuplex = !!caps && !!caps.duplex && !!caps.duplex.option;
const capsHasLongEdge = capsHasDuplex && const capsHasLongEdge = capsHasDuplex &&
caps.duplex.option.some( caps.duplex.option.some(
...@@ -707,6 +703,7 @@ Polymer({ ...@@ -707,6 +703,7 @@ Polymer({
(!this.documentSettings.isModifiable || (!this.documentSettings.isModifiable ||
this.documentSettings.hasCssMediaStyles); this.documentSettings.hasCssMediaStyles);
const scalingAvailable = !knownSizeToSaveAsPdf && const scalingAvailable = !knownSizeToSaveAsPdf &&
!this.documentSettings.isFromArc &&
(this.documentSettings.isModifiable || this.documentSettings.isPdf); (this.documentSettings.isModifiable || this.documentSettings.isPdf);
this.setSettingPath_('scaling.available', scalingAvailable); this.setSettingPath_('scaling.available', scalingAvailable);
this.setSettingPath_( this.setSettingPath_(
...@@ -721,6 +718,10 @@ Polymer({ ...@@ -721,6 +718,10 @@ Polymer({
this.setSettingPath_( this.setSettingPath_(
'mediaSize.available', 'mediaSize.available',
!!caps && !!caps.media_size && !knownSizeToSaveAsPdf); !!caps && !!caps.media_size && !knownSizeToSaveAsPdf);
this.setSettingPath_(
'dpi.available',
!this.documentSettings.isFromArc && !!caps && !!caps.dpi &&
!!caps.dpi.option && caps.dpi.option.length > 1);
this.setSettingPath_('layout.available', this.isLayoutAvailable_(caps)); this.setSettingPath_('layout.available', this.isLayoutAvailable_(caps));
}, },
...@@ -732,22 +733,30 @@ Polymer({ ...@@ -732,22 +733,30 @@ Polymer({
this.setSettingPath_( this.setSettingPath_(
'pagesPerSheet.available', 'pagesPerSheet.available',
this.documentSettings.isModifiable || this.documentSettings.isPdf); !this.documentSettings.isFromArc &&
(this.documentSettings.isModifiable ||
this.documentSettings.isPdf));
this.setSettingPath_( this.setSettingPath_(
'margins.available', this.documentSettings.isModifiable); 'margins.available',
!this.documentSettings.isFromArc && this.documentSettings.isModifiable);
this.setSettingPath_( this.setSettingPath_(
'customMargins.available', this.documentSettings.isModifiable); 'customMargins.available',
!this.documentSettings.isFromArc && this.documentSettings.isModifiable);
this.setSettingPath_( this.setSettingPath_(
'cssBackground.available', this.documentSettings.isModifiable); 'cssBackground.available',
!this.documentSettings.isFromArc && this.documentSettings.isModifiable);
this.setSettingPath_( this.setSettingPath_(
'selectionOnly.available', 'selectionOnly.available',
this.documentSettings.isModifiable && !this.documentSettings.isFromArc &&
this.documentSettings.isModifiable &&
this.documentSettings.hasSelection); this.documentSettings.hasSelection);
this.setSettingPath_( this.setSettingPath_(
'headerFooter.available', this.isHeaderFooterAvailable_()); 'headerFooter.available',
!this.documentSettings.isFromArc && this.isHeaderFooterAvailable_());
this.setSettingPath_( this.setSettingPath_(
'rasterize.available', 'rasterize.available',
!this.documentSettings.isModifiable && !cr.isWindows && !cr.isMac); !this.documentSettings.isFromArc &&
!this.documentSettings.isModifiable && !cr.isWindows && !cr.isMac);
this.setSettingPath_( this.setSettingPath_(
'otherOptions.available', 'otherOptions.available',
this.settings.cssBackground.available || this.settings.cssBackground.available ||
...@@ -820,7 +829,8 @@ Polymer({ ...@@ -820,7 +829,8 @@ Polymer({
*/ */
isLayoutAvailable_: function(caps) { isLayoutAvailable_: function(caps) {
if (!caps || !caps.page_orientation || !caps.page_orientation.option || if (!caps || !caps.page_orientation || !caps.page_orientation.option ||
!this.documentSettings.isModifiable || (!this.documentSettings.isModifiable &&
!this.documentSettings.isFromArc) ||
this.documentSettings.hasCssMediaStyles) { this.documentSettings.hasCssMediaStyles) {
return false; return false;
} }
......
...@@ -37,6 +37,7 @@ cr.define('print_preview', function() { ...@@ -37,6 +37,7 @@ cr.define('print_preview', function() {
* decimalDelimiter: string, * decimalDelimiter: string,
* unitType: !print_preview.MeasurementSystemUnitType, * unitType: !print_preview.MeasurementSystemUnitType,
* previewModifiable: boolean, * previewModifiable: boolean,
* previewIsFromArc: boolean,
* previewIsPdf: boolean, * previewIsPdf: boolean,
* documentTitle: string, * documentTitle: string,
* documentHasSelection: boolean, * documentHasSelection: boolean,
......
...@@ -257,8 +257,9 @@ Polymer({ ...@@ -257,8 +257,9 @@ Polymer({
settings.uiLocale); settings.uiLocale);
} }
this.$.documentInfo.init( this.$.documentInfo.init(
settings.previewModifiable, settings.previewIsPdf, settings.previewModifiable, settings.previewIsFromArc,
settings.documentTitle, settings.documentHasSelection); settings.previewIsPdf, settings.documentTitle,
settings.documentHasSelection);
this.$.model.setStickySettings(settings.serializedAppStateStr); this.$.model.setStickySettings(settings.serializedAppStateStr);
this.$.model.setPolicySettings( this.$.model.setPolicySettings(
settings.headerFooter, settings.isHeaderFooterManaged); settings.headerFooter, settings.isHeaderFooterManaged);
......
...@@ -1042,6 +1042,8 @@ void PrintPreviewHandler::SendInitialSettings( ...@@ -1042,6 +1042,8 @@ void PrintPreviewHandler::SendInitialSettings(
print_preview_ui()->initiator_title()); print_preview_ui()->initiator_title());
initial_settings.SetBoolKey(kSettingPreviewModifiable, initial_settings.SetBoolKey(kSettingPreviewModifiable,
print_preview_ui()->source_is_modifiable()); print_preview_ui()->source_is_modifiable());
initial_settings.SetBoolKey(kSettingPreviewIsFromArc,
print_preview_ui()->source_is_arc());
initial_settings.SetBoolKey(kSettingPreviewIsPdf, initial_settings.SetBoolKey(kSettingPreviewIsPdf,
print_preview_ui()->source_is_pdf()); print_preview_ui()->source_is_pdf());
initial_settings.SetStringKey(kSettingPrinterName, default_printer); initial_settings.SetStringKey(kSettingPrinterName, default_printer);
......
...@@ -538,6 +538,7 @@ void PrintPreviewUI::SetInitialParams( ...@@ -538,6 +538,7 @@ void PrintPreviewUI::SetInitialParams(
return; return;
PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>( PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>(
print_preview_dialog->GetWebUI()->GetController()); print_preview_dialog->GetWebUI()->GetController());
print_preview_ui->source_is_arc_ = params.is_from_arc;
print_preview_ui->source_is_modifiable_ = params.is_modifiable; print_preview_ui->source_is_modifiable_ = params.is_modifiable;
print_preview_ui->source_is_pdf_ = params.is_pdf; print_preview_ui->source_is_pdf_ = params.is_pdf;
print_preview_ui->source_has_selection_ = params.has_selection; print_preview_ui->source_has_selection_ = params.has_selection;
......
...@@ -59,6 +59,8 @@ class PrintPreviewUI : public ConstrainedWebDialogUI { ...@@ -59,6 +59,8 @@ class PrintPreviewUI : public ConstrainedWebDialogUI {
const base::string16& initiator_title() const { return initiator_title_; } const base::string16& initiator_title() const { return initiator_title_; }
bool source_is_arc() const { return source_is_arc_; }
bool source_is_modifiable() const { return source_is_modifiable_; } bool source_is_modifiable() const { return source_is_modifiable_; }
bool source_is_pdf() const { return source_is_pdf_; } bool source_is_pdf() const { return source_is_pdf_; }
...@@ -256,6 +258,9 @@ class PrintPreviewUI : public ConstrainedWebDialogUI { ...@@ -256,6 +258,9 @@ class PrintPreviewUI : public ConstrainedWebDialogUI {
// Weak pointer to the WebUI handler. // Weak pointer to the WebUI handler.
PrintPreviewHandler* const handler_; PrintPreviewHandler* const handler_;
// Indicates whether the source document is from ARC.
bool source_is_arc_ = false;
// Indicates whether the source document can be modified. // Indicates whether the source document can be modified.
bool source_is_modifiable_ = true; bool source_is_modifiable_ = true;
......
...@@ -76,7 +76,7 @@ cr.define('invalid_settings_browsertest', function() { ...@@ -76,7 +76,7 @@ cr.define('invalid_settings_browsertest', function() {
page = document.createElement('print-preview-app'); page = document.createElement('print-preview-app');
document.body.appendChild(page); document.body.appendChild(page);
page.$.documentInfo.init(true, false, 'title', false); page.$.documentInfo.init(true, false, false, 'title', false);
const previewArea = page.$.previewArea; const previewArea = page.$.previewArea;
} }
......
...@@ -15,6 +15,7 @@ cr.define('model_settings_availability_test', function() { ...@@ -15,6 +15,7 @@ cr.define('model_settings_availability_test', function() {
model.documentSettings = { model.documentSettings = {
hasCssMediaStyles: false, hasCssMediaStyles: false,
hasSelection: false, hasSelection: false,
isFromArc: false,
isModifiable: true, isModifiable: true,
isPdf: false, isPdf: false,
isScalingDisabled: false, isScalingDisabled: false,
...@@ -114,7 +115,12 @@ cr.define('model_settings_availability_test', function() { ...@@ -114,7 +115,12 @@ cr.define('model_settings_availability_test', function() {
model.set('documentSettings.isModifiable', false); model.set('documentSettings.isModifiable', false);
assertFalse(model.settings.layout.available); assertFalse(model.settings.layout.available);
// Test with ARC - should be available.
model.set('documentSettings.isFromArc', true);
assertTrue(model.settings.layout.available);
model.set('documentSettings.isModifiable', true); model.set('documentSettings.isModifiable', true);
model.set('documentSettings.isFromArc', false);
assertTrue(model.settings.layout.available); assertTrue(model.settings.layout.available);
// Unavailable if document has CSS media styles. // Unavailable if document has CSS media styles.
...@@ -276,7 +282,15 @@ cr.define('model_settings_availability_test', function() { ...@@ -276,7 +282,15 @@ cr.define('model_settings_availability_test', function() {
assertTrue(model.settings.margins.available); assertTrue(model.settings.margins.available);
assertTrue(model.settings.customMargins.available); assertTrue(model.settings.customMargins.available);
// No margins settings for ARC.
model.set('documentSettings.isFromArc', true);
assertFalse(model.settings.margins.available);
assertFalse(model.settings.customMargins.available);
assertFalse(model.settings.margins.setFromUi);
assertFalse(model.settings.customMargins.setFromUi);
// No margins settings for PDFs. // No margins settings for PDFs.
model.set('documentSettings.isFromArc', false);
model.set('documentSettings.isModifiable', false); model.set('documentSettings.isModifiable', false);
assertFalse(model.settings.margins.available); assertFalse(model.settings.margins.available);
assertFalse(model.settings.customMargins.available); assertFalse(model.settings.customMargins.available);
...@@ -288,6 +302,13 @@ cr.define('model_settings_availability_test', function() { ...@@ -288,6 +302,13 @@ cr.define('model_settings_availability_test', function() {
// The settings are available since the printer has multiple DPI options. // The settings are available since the printer has multiple DPI options.
assertTrue(model.settings.dpi.available); assertTrue(model.settings.dpi.available);
// No resolution settings for ARC.
model.set('documentSettings.isFromArc', true);
assertFalse(model.settings.dpi.available);
model.set('documentSettings.isFromArc', false);
assertTrue(model.settings.dpi.available);
// Remove capability. // Remove capability.
let capabilities = let capabilities =
print_preview_test_utils.getCddTemplate(model.destination.id) print_preview_test_utils.getCddTemplate(model.destination.id)
...@@ -339,6 +360,14 @@ cr.define('model_settings_availability_test', function() { ...@@ -339,6 +360,14 @@ cr.define('model_settings_availability_test', function() {
model.set('destination', defaultDestination); model.set('destination', defaultDestination);
assertFalse(model.settings.scaling.available); assertFalse(model.settings.scaling.available);
// ARC -> printer
model.set('documentSettings.isFromArc', true);
model.set('documentSettings.isPdf', true);
assertFalse(model.settings.scaling.available);
// ARC -> Save as PDF
setSaveAsPdfDestination();
assertFalse(model.settings.scaling.available);
}); });
test('scalingType', function() { test('scalingType', function() {
...@@ -367,6 +396,15 @@ cr.define('model_settings_availability_test', function() { ...@@ -367,6 +396,15 @@ cr.define('model_settings_availability_test', function() {
// Non-PDF Plugin -> printer // Non-PDF Plugin -> printer
model.set('destination', defaultDestination); model.set('destination', defaultDestination);
assertFalse(model.settings.scalingType.available); assertFalse(model.settings.scalingType.available);
// ARC -> printer
model.set('documentSettings.isFromArc', true);
model.set('documentSettings.isPdf', true);
assertFalse(model.settings.scalingType.available);
// ARC -> Save as PDF
setSaveAsPdfDestination();
assertFalse(model.settings.scalingType.available);
}); });
test('scalingTypePdf', function() { test('scalingTypePdf', function() {
...@@ -395,6 +433,15 @@ cr.define('model_settings_availability_test', function() { ...@@ -395,6 +433,15 @@ cr.define('model_settings_availability_test', function() {
// Non-PDF Plugin -> printer // Non-PDF Plugin -> printer
model.set('destination', defaultDestination); model.set('destination', defaultDestination);
assertFalse(model.settings.scalingTypePdf.available); assertFalse(model.settings.scalingTypePdf.available);
// ARC -> printer
model.set('documentSettings.isFromArc', true);
model.set('documentSettings.isPdf', true);
assertFalse(model.settings.scalingTypePdf.available);
// ARC -> Save as PDF
setSaveAsPdfDestination();
assertFalse(model.settings.scalingTypePdf.available);
}); });
test('header footer', function() { test('header footer', function() {
...@@ -474,6 +521,11 @@ cr.define('model_settings_availability_test', function() { ...@@ -474,6 +521,11 @@ cr.define('model_settings_availability_test', function() {
model.set('documentSettings.isModifiable', false); model.set('documentSettings.isModifiable', false);
assertFalse(model.settings.headerFooter.available); assertFalse(model.settings.headerFooter.available);
assertFalse(model.settings.headerFooter.setFromUi); assertFalse(model.settings.headerFooter.setFromUi);
// Header/footer is never available for ARC.
model.set('documentSettings.isFromArc', true);
assertFalse(model.settings.headerFooter.available);
assertFalse(model.settings.headerFooter.setFromUi);
}); });
test('css background', function() { test('css background', function() {
...@@ -484,6 +536,11 @@ cr.define('model_settings_availability_test', function() { ...@@ -484,6 +536,11 @@ cr.define('model_settings_availability_test', function() {
model.set('documentSettings.isModifiable', false); model.set('documentSettings.isModifiable', false);
assertFalse(model.settings.cssBackground.available); assertFalse(model.settings.cssBackground.available);
assertFalse(model.settings.cssBackground.setFromUi); assertFalse(model.settings.cssBackground.setFromUi);
// No CSS background setting for ARC.
model.set('documentSettings.isFromArc', true);
assertFalse(model.settings.cssBackground.available);
assertFalse(model.settings.cssBackground.setFromUi);
}); });
test('duplex', function() { test('duplex', function() {
...@@ -537,6 +594,10 @@ cr.define('model_settings_availability_test', function() { ...@@ -537,6 +594,10 @@ cr.define('model_settings_availability_test', function() {
assertEquals( assertEquals(
!cr.isWindows && !cr.isMac, model.settings.rasterize.available); !cr.isWindows && !cr.isMac, model.settings.rasterize.available);
assertFalse(model.settings.rasterize.setFromUi); assertFalse(model.settings.rasterize.setFromUi);
// Unavailable for ARC.
model.set('documentSettings.isFromArc', true);
assertFalse(model.settings.rasterize.available);
}); });
test('selection only', function() { test('selection only', function() {
...@@ -550,6 +611,11 @@ cr.define('model_settings_availability_test', function() { ...@@ -550,6 +611,11 @@ cr.define('model_settings_availability_test', function() {
model.set('documentSettings.isModifiable', false); model.set('documentSettings.isModifiable', false);
assertFalse(model.settings.selectionOnly.available); assertFalse(model.settings.selectionOnly.available);
assertFalse(model.settings.selectionOnly.setFromUi); assertFalse(model.settings.selectionOnly.setFromUi);
// Not available for ARC.
model.set('documentSettings.isFromArc', true);
assertFalse(model.settings.selectionOnly.available);
assertFalse(model.settings.selectionOnly.setFromUi);
}); });
test('pages per sheet', function() { test('pages per sheet', function() {
...@@ -571,6 +637,11 @@ cr.define('model_settings_availability_test', function() { ...@@ -571,6 +637,11 @@ cr.define('model_settings_availability_test', function() {
// Not available for Flash content. // Not available for Flash content.
model.set('documentSettings.isPdf', false); model.set('documentSettings.isPdf', false);
assertFalse(model.settings.pagesPerSheet.available); assertFalse(model.settings.pagesPerSheet.available);
// Not available for ARC.
model.set('documentSettings.isFromArc', true);
model.set('documentSettings.isPdf', true);
assertFalse(model.settings.pagesPerSheet.available);
}); });
if (cr.isChromeOS) { if (cr.isChromeOS) {
......
...@@ -134,7 +134,8 @@ PrintMsg_PrintFrame_Params::~PrintMsg_PrintFrame_Params() {} ...@@ -134,7 +134,8 @@ PrintMsg_PrintFrame_Params::~PrintMsg_PrintFrame_Params() {}
#if BUILDFLAG(ENABLE_PRINT_PREVIEW) #if BUILDFLAG(ENABLE_PRINT_PREVIEW)
PrintHostMsg_RequestPrintPreview_Params:: PrintHostMsg_RequestPrintPreview_Params::
PrintHostMsg_RequestPrintPreview_Params() PrintHostMsg_RequestPrintPreview_Params()
: is_modifiable(false), : is_from_arc(false),
is_modifiable(false),
is_pdf(false), is_pdf(false),
webnode_only(false), webnode_only(false),
has_selection(false), has_selection(false),
......
...@@ -89,6 +89,7 @@ struct PrintMsg_PrintFrame_Params { ...@@ -89,6 +89,7 @@ struct PrintMsg_PrintFrame_Params {
struct PrintHostMsg_RequestPrintPreview_Params { struct PrintHostMsg_RequestPrintPreview_Params {
PrintHostMsg_RequestPrintPreview_Params(); PrintHostMsg_RequestPrintPreview_Params();
~PrintHostMsg_RequestPrintPreview_Params(); ~PrintHostMsg_RequestPrintPreview_Params();
bool is_from_arc;
bool is_modifiable; bool is_modifiable;
bool is_pdf; bool is_pdf;
bool webnode_only; bool webnode_only;
...@@ -214,6 +215,7 @@ IPC_STRUCT_TRAITS_END() ...@@ -214,6 +215,7 @@ IPC_STRUCT_TRAITS_END()
#if BUILDFLAG(ENABLE_PRINT_PREVIEW) #if BUILDFLAG(ENABLE_PRINT_PREVIEW)
IPC_STRUCT_TRAITS_BEGIN(PrintHostMsg_RequestPrintPreview_Params) IPC_STRUCT_TRAITS_BEGIN(PrintHostMsg_RequestPrintPreview_Params)
IPC_STRUCT_TRAITS_MEMBER(is_from_arc)
IPC_STRUCT_TRAITS_MEMBER(is_modifiable) IPC_STRUCT_TRAITS_MEMBER(is_modifiable)
IPC_STRUCT_TRAITS_MEMBER(is_pdf) IPC_STRUCT_TRAITS_MEMBER(is_pdf)
IPC_STRUCT_TRAITS_MEMBER(webnode_only) IPC_STRUCT_TRAITS_MEMBER(webnode_only)
......
...@@ -2266,10 +2266,12 @@ void PrintRenderFrameHelper::RequestPrintPreview(PrintPreviewRequestType type) { ...@@ -2266,10 +2266,12 @@ void PrintRenderFrameHelper::RequestPrintPreview(PrintPreviewRequestType type) {
print_preview_context_.source_frame()->DispatchBeforePrintEvent(); print_preview_context_.source_frame()->DispatchBeforePrintEvent();
if (!weak_this) if (!weak_this)
return; return;
const bool is_from_arc = print_preview_context_.IsForArc();
const bool is_modifiable = print_preview_context_.IsModifiable(); const bool is_modifiable = print_preview_context_.IsModifiable();
const bool is_pdf = print_preview_context_.IsPdf(); const bool is_pdf = print_preview_context_.IsPdf();
const bool has_selection = print_preview_context_.HasSelection(); const bool has_selection = print_preview_context_.HasSelection();
PrintHostMsg_RequestPrintPreview_Params params; PrintHostMsg_RequestPrintPreview_Params params;
params.is_from_arc = is_from_arc;
params.is_modifiable = is_modifiable; params.is_modifiable = is_modifiable;
params.is_pdf = is_pdf; params.is_pdf = is_pdf;
params.has_selection = has_selection; params.has_selection = has_selection;
......
...@@ -127,6 +127,7 @@ void CreatePrintSettingsDictionary(base::DictionaryValue* dict) { ...@@ -127,6 +127,7 @@ void CreatePrintSettingsDictionary(base::DictionaryValue* dict) {
dict->SetBoolean(kIsFirstRequest, true); dict->SetBoolean(kIsFirstRequest, true);
dict->SetInteger(kSettingMarginsType, DEFAULT_MARGINS); dict->SetInteger(kSettingMarginsType, DEFAULT_MARGINS);
dict->SetBoolean(kSettingPreviewModifiable, true); dict->SetBoolean(kSettingPreviewModifiable, true);
dict->SetBoolean(kSettingPreviewIsFromArc, false);
dict->SetBoolean(kSettingPreviewIsPdf, false); dict->SetBoolean(kSettingPreviewIsPdf, false);
dict->SetBoolean(kSettingHeaderFooterEnabled, false); dict->SetBoolean(kSettingHeaderFooterEnabled, false);
dict->SetBoolean(kSettingShouldPrintBackgrounds, false); dict->SetBoolean(kSettingShouldPrintBackgrounds, false);
......
...@@ -138,6 +138,9 @@ const char kSettingPinValue[] = "pinValue"; ...@@ -138,6 +138,9 @@ const char kSettingPinValue[] = "pinValue";
// Policies affecting printing destination. // Policies affecting printing destination.
const char kSettingPolicies[] = "policies"; const char kSettingPolicies[] = "policies";
// Whether the source page content is from ARC or not.
const char kSettingPreviewIsFromArc[] = "previewIsFromArc";
// Whether the source page content is PDF or not. // Whether the source page content is PDF or not.
const char kSettingPreviewIsPdf[] = "previewIsPdf"; const char kSettingPreviewIsPdf[] = "previewIsPdf";
......
...@@ -53,6 +53,7 @@ PRINTING_EXPORT extern const char kSettingPageHeight[]; ...@@ -53,6 +53,7 @@ PRINTING_EXPORT extern const char kSettingPageHeight[];
PRINTING_EXPORT extern const char kSettingPagesPerSheet[]; PRINTING_EXPORT extern const char kSettingPagesPerSheet[];
PRINTING_EXPORT extern const char kSettingPinValue[]; PRINTING_EXPORT extern const char kSettingPinValue[];
PRINTING_EXPORT extern const char kSettingPolicies[]; PRINTING_EXPORT extern const char kSettingPolicies[];
PRINTING_EXPORT extern const char kSettingPreviewIsFromArc[];
PRINTING_EXPORT extern const char kSettingPreviewIsPdf[]; PRINTING_EXPORT extern const char kSettingPreviewIsPdf[];
PRINTING_EXPORT extern const char kSettingPreviewModifiable[]; PRINTING_EXPORT extern const char kSettingPreviewModifiable[];
PRINTING_EXPORT extern const char kSettingPrintToGoogleDrive[]; PRINTING_EXPORT extern const char kSettingPrintToGoogleDrive[];
......
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