commit | 8b208c9990f3fd4a984351028bf408e0f0430fb1 | [log] [tgz] |
---|---|---|
author | Etienne Dechamps <edechamps@google.com> | Tue Mar 11 17:49:57 2025 |
committer | Chromium LUCI CQ <chromium-scoped@luci-project-accounts.iam.gserviceaccount.com> | Tue Mar 11 17:49:57 2025 |
tree | a17ebd553b6ca7bed3c8a7eb6846fb1794c4c33c | |
parent | 8a16b5c0fdbe4d0e56fdcf064abd05e215ba74fa [diff] |
Refactor gn2bp string escaping The way string escaping works in gn2bp is, quite frankly, an absolute trainwreck, with escaping happening in seemingly random places and often far away from what the escaping is for (e.g. Android.bp string escaping happening far away from the blueprint value printing code). In many cases there is no escaping at all and we just pray the gn parser will not produce any special characters. This CL cleans up this mess by escaping strings where it makes sense: escaping Android.bp strings is done in the blueprint output code, and escaping genrule args for shell is done in the cmd string generation code. Also, use shlex.quote() for escaping arguments in shell command lines, as that's what it's actually for. This also improves the output somewhat, as shlex.quote() will only quote args if they actually need to be quoted, making the output more readable for simple cases where quoting is not needed. Note this CL is mostly concerned with proper escaping of Android.bp strings and shell arguments. The escaping (or lack thereof) of "$" sequences in genrule commands also leaves a lot to be desired, but I left it out of scope for this CL. Bug: b:397396295 Change-Id: I9bc1360aa5ce286dae23ebc322c57c3138f7c348 Cq-Include-Trybots: luci.chromium.try:android-cronet-arm64-gn2bp-dbg Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6308888 Commit-Queue: Etienne Dechamps <edechamps@google.com> Reviewed-by: Mohannad Farrag <aymanm@google.com> Cr-Commit-Position: refs/heads/main@{#1431006}
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.