ui: Immediately download trace from tools/record_android_trace

tools/record_android_trace works by recording a trace then (briefly)
hosting it on a local web server and opening a tab with:
https://ui.perfetto.dev/#!/?url=http://127.0.0.1:9001/foo.trace
As the UI loads, it fetches the trace from the local webserver. Once
this happens the webserver exits. The UI uses the 'URL' engine scheme
for these traces. If the user creates a permalink for a trace with this
scheme the trace is not uploaded - we assume that we can fetch it at
will from the URL. This is doubly wrong for traces sourced from
tools/record_android_trace. Firstly http://127.0.0.1 means something
different for each machine and secondly the webserver has exited and is
no longer running.

To avoid this problem we modify the ?url= handling code to immediately
download traces which come from 127.0.0.1 and thence use the File
engine scheme which will cause the trace to be uploaded if a
permalink is shared.

Bug: b/185235837
Change-Id: Icb41d95efba24d3f9c7aa8bc3d453882d53561a4
2 files changed
tree: f4b6e2d820041ff3d09ab672034ec186c20bcd6e
  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.