| # Copyright 2016 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//build/config/cast.gni") |
| import("//build/config/chromeos/args.gni") |
| import("//build/config/chromeos/ui_mode.gni") |
| import("//build/config/features.gni") |
| import("//build/config/sanitizers/sanitizers.gni") |
| import("//pdf/features.gni") |
| |
| declare_args() { |
| # Enables printing support. |
| enable_printing = !is_ios && !is_castos && !is_cast_android |
| |
| # TODO(crbug.com/1432082): iOS blink port only enables printing_tests to run |
| # unit tests and web tests for now because the port does not enable the |
| # printing feature yet. |
| enable_printing_tests = is_ios && use_blink |
| } |
| |
| declare_args() { |
| # TODO(awscreen) Safety net to avoid revert for a flag rename which affects |
| # many locations. Remove this once `enable_printing` has landed. |
| enable_basic_printing = enable_printing |
| |
| # Enables printing with print preview. |
| # Print preview requires PDF per //printing/BUILD.gn. |
| # The is_android condition is currently redundant but left for clarity. |
| enable_print_preview = enable_printing && enable_pdf && !is_android |
| |
| # Enables the printing system dialog for platforms that support printing |
| # and have a system dialog. |
| enable_basic_print_dialog = enable_printing && !is_chromeos && !is_fuchsia |
| |
| if (use_fuzzing_engine && (is_linux || is_chromeos)) { |
| # For fuzzing, just restrict to chromeos and linux. |
| use_cups = true |
| } else { |
| use_cups = (is_chromeos_device || (is_linux && !is_castos) || is_mac) && |
| !is_fuchsia |
| } |
| |
| # Enables out-of-process printing. Do not have this definition just be |
| # based on `enable_print_preview`; this feature could still be appropriate |
| # for some build configurations which explicitly disable print preview. |
| enable_oop_printing = enable_printing && !is_android && !is_fuchsia |
| |
| # Enable snapshotting a page when printing for its content to be analyzed for |
| # sensitive content by enterprise users. |
| enable_print_content_analysis = is_chromeos || is_win || is_linux || is_mac |
| } |
| |
| declare_args() { |
| enable_concurrent_basic_print_dialogs = enable_basic_print_dialog && is_linux |
| |
| # Enables the printing system dialog being invoked from out-of-process for |
| # platforms that support printing, have a system dialog, and which can invoke |
| # that system print dialog from a process other than the browser process. |
| # TODO(crbug.com/809738) Determine if Linux Wayland can be made to have a |
| # system dialog be modal against an application window in the browser process. |
| enable_oop_basic_print_dialog = enable_oop_printing && is_win |
| |
| # Enables out-of-process print handling for platforms which support a system |
| # print dialog but are unable to invoke that dialog from the Print Backend |
| # service. |
| enable_oop_printing_no_oop_basic_print_dialog = |
| enable_oop_printing && (is_linux || is_mac) |
| } |
| |
| declare_args() { |
| # Enables the CUPS IPP printing backend. |
| # TODO(crbug.com/226176): Remove this after CUPS PPD API calls are removed. |
| use_cups_ipp = use_cups && !is_linux |
| } |