Cherry-pick proto filter changes on sc-dev

This is a cherry-pick of the set of CLs in b/181306741
which missed the aosp/sc branching point:

82527cb0be - Proto filter: use "bytes" field w/ checksum for bytecode
3f00374ce2 - Proto filtering: add core MessageFilter and FilterUtil
f18ab81854 - Proto filter: adds plumbing into tracing service
c6bcafab7d - trace filtering: avoid dereferencing vector[end]
14e7277182 - proto filter: fix for Windows
9bfdbf8555 - pbtx parser: support \nnn octal escaping
77c3572df3 - Proto filtering: make --dedupe optional
77cb61d607 - Proto filter: fix statsd atom value

I manually testes that the following diffs to detect missed merges:

git diff HEAD..origin/master -- include/perfetto/protozero/
0 diffs

git diff HEAD..origin/master -- src/protozero/filtering/
Minor changes due to aosp/1709695, not needed here.

git diff HEAD..origin/master -- src/tracing/core/
Only unrelated changes (SDK versioning and buffer checks)

Bug: 181306741
Merged-In: I9d5c5c23de1b4ec93ed307187fdedcc813623572
Merged-In: I516669d3b6eee746ab306b1f0edd23e89bfbafb3
Merged-In: I6be837f9a39f438129443101628d7cb5d9897bc9
Merged-In: If158ab05e86e30b4f765e69fb63710b04ad4bba6
Merged-In: I47789f818b65b4459b00dde92d4a8d02d3b0ef7a
Merged-In: I26af3d09a5b509df12112f0e53b579b1bc9e5f19
Merged-In: I75411e0a74d19e494e86cc054369d01871b773c9
Merged-In: I9e6a4540a126223093ff52f890ca43a28ed40397
Change-Id: Ic9251949e0485f09b75b405bb830ee957b433b3c
44 files changed
tree: 8482ff828baf9ffa89a544a6b6057523a3b4e75f
  1. .github/
  2. bazel/
  3. build_overrides/
  4. buildtools/
  5. debian/
  6. docs/
  7. examples/
  8. gn/
  9. include/
  10. infra/
  11. protos/
  12. src/
  13. test/
  14. tools/
  15. ui/
  16. .clang-format
  17. .clang-tidy
  18. .gitattributes
  19. .gitignore
  20. .gn
  21. .style.yapf
  22. Android.bp
  23. Android.bp.extras
  24. BUILD
  25. BUILD.extras
  26. BUILD.gn
  27. CHANGELOG
  28. codereview.settings
  29. DIR_METADATA
  30. heapprofd.rc
  31. LICENSE
  32. meson.build
  33. METADATA
  34. MODULE_LICENSE_APACHE2
  35. OWNERS
  36. perfetto.rc
  37. PerfettoIntegrationTests.xml
  38. PRESUBMIT.py
  39. README.chromium
  40. README.md
  41. TEST_MAPPING
  42. traced_perf.rc
  43. WORKSPACE
README.md

Perfetto - System profiling, app tracing and trace analysis

Perfetto is a production-grade open-source stack for performance instrumentation and trace analysis. It offers services and libraries and for recording system-level and app-level traces, native + java heap profiling, a library for analyzing traces using SQL and a web-based UI to visualize and explore multi-GB traces.

See https://perfetto.dev/docs or the /docs/ directory for documentation.