[go: nahoru, domu]

Use process behavior field in PrintingContext

In order to support a policy override for controlling out-of-process
printing, the low-level //printing layer cannot rely solely upon the
printing feature flags.  Since policy preferences reside at a higher
level than //printing, this state information needs to be provided
to PrintingContext.

All logic under //printing which uses ShouldPrintJobOop() needs to be
changed.  In some cases it is insufficient to just rely upon the
existing signal for whether system calls should be skipped, so a more
detailed signal is needed.

Replace the PrintingContext "skip system calls" mechanism with an enum
to identify the process behavior desired.  This can provide the details
for whether OOP printing is involved in addition to whether system
calls should be skipped for the PrintingContext instance being created.

This API change ripples through the rest of the printing stack.  This
prepares the upper levels of the printing stack to be ready to override
the behavior if OOP printing policy is specified.

Printing support in Pepper is unused, so this code no longer even needs
to check the feature flags.  This code is just changed to use a
placeholder value of OOP disabled.

Bug: 1497035
Low-Coverage-Reason: HARD_TO_TEST, https://crbug.com/1256506, https://crbug.com/1451540
Change-Id: I8724631551aeeeb954560f3c28f5ffb1f5c0b1f7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4987444
Reviewed-by: Derek Schuff <dschuff@chromium.org>
Commit-Queue: Alan Screen <awscreen@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1220535}
29 files changed
tree: fa68499873bec7a687ae4e219e6b4e11412e5d4b
  1. android_webview/
  2. apps/
  3. ash/
  4. base/
  5. build/
  6. build_overrides/
  7. buildtools/
  8. cc/
  9. chrome/
  10. chromecast/
  11. chromeos/
  12. codelabs/
  13. components/
  14. content/
  15. courgette/
  16. crypto/
  17. dbus/
  18. device/
  19. docs/
  20. extensions/
  21. fuchsia_web/
  22. gin/
  23. google_apis/
  24. google_update/
  25. gpu/
  26. headless/
  27. infra/
  28. ios/
  29. ipc/
  30. media/
  31. mojo/
  32. native_client_sdk/
  33. net/
  34. pdf/
  35. ppapi/
  36. printing/
  37. remoting/
  38. rlz/
  39. sandbox/
  40. services/
  41. skia/
  42. sql/
  43. storage/
  44. styleguide/
  45. testing/
  46. third_party/
  47. tools/
  48. ui/
  49. url/
  50. webkit/
  51. .clang-format
  52. .clang-tidy
  53. .eslintrc.js
  54. .git-blame-ignore-revs
  55. .gitattributes
  56. .gitignore
  57. .gitmodules
  58. .gn
  59. .mailmap
  60. .rustfmt.toml
  61. .vpython3
  62. .yapfignore
  63. ATL_OWNERS
  64. AUTHORS
  65. BUILD.gn
  66. CODE_OF_CONDUCT.md
  67. codereview.settings
  68. DEPS
  69. DIR_METADATA
  70. LICENSE
  71. LICENSE.chromium_os
  72. OWNERS
  73. PRESUBMIT.py
  74. PRESUBMIT_test.py
  75. PRESUBMIT_test_mocks.py
  76. README.md
  77. WATCHLISTS
README.md

Logo Chromium

Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.

The project's web site is https://www.chromium.org.

To check out the source code locally, don't use git clone! Instead, follow the instructions on how to get the code.

Documentation in the source is rooted in docs/README.md.

Learn how to Get Around the Chromium Source Code Directory Structure .

For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.

If you found a bug, please file it at https://crbug.com/new.