chromium-src-build/args
jzfeng 6c97effd09 Let users to print a webpage into pdf through PrintToPDF devtools command
under headless chrome.

This patch includes:
1) adding a new print manager, i.e., HeadlessPrintManager to handle all the
   printing related IPCs for headless.
2) plumbing through the pdf data from HeadlessPrintManager to
   HeadlessDevToolsManagerDelegate to handle the PrintToPDF command.
3) adding a new option to PrintWebViewHelper on Mac to return all the printed
   pages in the first PrintHostMsg_DidPrintPage message as a single file.
   This makes it conform to Linux and Windows, which simplify the logic in
   HeadlessPrintManager.

This patch guarantees that HeadlessPrintManager is the only IPC entry point.
In the future, if there are requirements to support the same devtools command
in regular chrome, we may consider a framework to ensure multiple print managers
to work properly under a content embedder.

BUG=603559

Review-Url: https://codereview.chromium.org/2780433002
Cr-Original-Commit-Position: refs/heads/master@{#463105}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 0cbec8b353f24515cc77a67ee95addc4f7a714ab
2017-04-08 01:59:02 +00:00
..
README.txt Add readme for build/args directory. 2016-01-21 19:39:46 +00:00
headless.gn Let users to print a webpage into pdf through PrintToPDF devtools command 2017-04-08 01:59:02 +00:00

README.txt

This directory is here to hold .gni files that contain sets of GN build
arguments for given configurations.

(Currently this directory is empty because we removed the only thing here, but
this has come up several times so I'm confident we'll need this again. If this
directory is still empty by 2017, feel free to delete it. --Brett)

Some projects or bots may have build configurations with specific combinations
of flags. Rather than making a new global flag for your specific project and
adding it all over the build to each arg it should affect, you can add a .gni
file here with the variables.

For example, for project foo you may put in build/args/foo.gni:

  target_os = "android"
  use_pulseaudio = false
  use_ozone = true
  system_libdir = "foo"

Users wanting to build this configuration would run:

  $ gn args out/mybuild

And add the following line to their args for that build directory:

  import("//build/args/foo.gni")
  # You can set any other args here like normal.
  is_component_build = false

This way everybody can agree on a set of flags for a project, and their builds
stay in sync as the flags in foo.gni are modified.