// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/printing/xps_features.h"
#include "printing/buildflags/buildflags.h"
#if BUILDFLAG(ENABLE_OOP_PRINTING)
#include "base/feature_list.h"
#include "chrome/browser/printing/oop_features.h"
#include "printing/printing_features.h"
#endif
namespace printing {
bool IsXpsPrintCapabilityRequired() {
// Require XPS printing to be used out-of-process.
#if BUILDFLAG(ENABLE_OOP_PRINTING)
// TODO(crbug.com/40283514): Incorporate policy override check.
return ShouldPrintJobOop() &&
(base::FeatureList::IsEnabled(features::kUseXpsForPrinting) ||
base::FeatureList::IsEnabled(features::kUseXpsForPrintingFromPdf));
#else
return false;
#endif
}
bool ShouldPrintUsingXps(bool source_is_pdf) {
// Require XPS to be used out-of-process.
#if BUILDFLAG(ENABLE_OOP_PRINTING)
// TODO(crbug.com/40283514): Incorporate policy override check.
return ShouldPrintJobOop() &&
base::FeatureList::IsEnabled(source_is_pdf
? features::kUseXpsForPrintingFromPdf
: features::kUseXpsForPrinting);
#else
return false;
#endif
}
} // namespace printing