0
Commit Graph

1225 Commits

Author SHA1 Message Date
Mikhail Khokhlov
a46ddf4fdf [tracing] Fix CHECK in TracingScenario::DisableNestedScenarios
The scenario state can be kStarting in the period between OnStartTrigger
and OnTracingStart.

Bug: 401085482
Change-Id: I6058b2b2fc3e9051650731e3f9fb3bba030e36ac
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6336104
Commit-Queue: Etienne Bergeron <etienneb@chromium.org>
Auto-Submit: Mikhail Khokhlov <khokhlov@google.com>
Reviewed-by: Etienne Bergeron <etienneb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1429556}
2025-03-07 09:17:44 -08:00
Etienne Pierre-doray
f5a089b7b1 [tracing] Improve chrome data sources
This CL adds
- `kRequiresCallbacksUnderLock=false` to several chrome data sources: while true is the default for backward compatibility, these don't need it.
- Explicit Flush in BackgroundMetadataDataSource, to prevent data
loss; I'm investigating reasons why we often miss this event, this should help rule out data loss related to SMB scraping issue.

Change-Id: I37c386a85341797d69a18bf2452a59581f60cdcb
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6305392
Reviewed-by: Mikhail Khokhlov <khokhlov@google.com>
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1427109}
2025-03-03 07:16:19 -08:00
Etienne Pierre-doray
87e7224272 [tracing] Fix scenarios preset init
Previous CL
https://chromium-review.googlesource.com/c/chromium/src/+/6301771
disabled all scenarios, which also affects field scenarios.
This CL instead disable a scenario only if it's being overwritten
by presets.

Change-Id: I14ed27e4366343ce99efc9b2cc758f89291402e5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6310063
Reviewed-by: Mikhail Khokhlov <khokhlov@google.com>
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1427104}
2025-03-03 07:08:51 -08:00
Etienne Pierre-doray
178bde2f65 [tracing] Fix flow id plumbing through histogram
Following up on
https://chromium-review.googlesource.com/c/chromium/src/+/6233616

I realized that the callback is invoked as a task, so the thread local
event id  isn't plumbed correctly.
The solution I'm proposing here is to grab the event id directly in histogram impl (FindAndRunCallbacks), and forward it to callbacks, without changing the histogram API.
Drive-by: IWYU fixes.

Bug: 40257548
Change-Id: Ibf5ac1c4e96f0eff63b108d1acf3e550579f6ee5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6302393
Reviewed-by: Luc Nguyen <lucnguyen@google.com>
Reviewed-by: Etienne Bergeron <etienneb@chromium.org>
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1426581}
2025-02-28 14:45:16 -08:00
Etienne Pierre-doray
45af150748 [tracing] Improve support for local scenario configs
- command line --enable-background-tracing support base64 encoded
- Config file in chrome://traces-internals overwrites existing scenarios

Change-Id: I649db7a173b00d9a96fc5d48e3b5c751a625b9bb
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6301771
Reviewed-by: Etienne Bergeron <etienneb@chromium.org>
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1425154}
2025-02-26 07:57:05 -08:00
Etienne Pierre-doray
d8efb74074 Reland "[tracing] Prevent upload if a trace is still starting"
This is a reland of commit 2e3ae3efbb

Reason for revert: Tests are failing: tracing_scenario.cc
crbug.com/398917303
Fix: disable nested scenarios in DisableNestedScenarios

Original change's description:
> [tracing] Prevent upload if a trace is still starting
>
> This should prevent creating empty traces.
> Drive-by: drop optional `name` field in unittests
>
> Bug: 40257548
> Change-Id: I135cad44263788381e2bdff732ee77835f3ef1d0
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6285689
> Reviewed-by: Etienne Bergeron <etienneb@chromium.org>
> Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#1423975}

Bug: 40257548
Change-Id: I8236ebd70e2c9ed96cd744bd3d5ae4c8064213e7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6299922
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Reviewed-by: Etienne Bergeron <etienneb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1425132}
2025-02-26 07:13:30 -08:00
Etienne Pierre-Doray
7f5a9da0b4 Revert "[tracing] Prevent upload if a trace is still starting"
This reverts commit 2e3ae3efbb.

Reason for revert: Tests are failing: tracing_scenario.cc
b/398917303

Original change's description:
> [tracing] Prevent upload if a trace is still starting
>
> This should prevent creating empty traces.
> Drive-by: drop optional `name` field in unittests
>
> Bug: 40257548
> Change-Id: I135cad44263788381e2bdff732ee77835f3ef1d0
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6285689
> Reviewed-by: Etienne Bergeron <etienneb@chromium.org>
> Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#1423975}

Bug: 40257548
Change-Id: I8edc44d6dcce0bfc322fb661e9b81139633b5c08
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6297641
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1424743}
2025-02-25 13:06:54 -08:00
rbpotter
4e24ccdb48 chrome://traces-internals: Place behind InternalOnlyUisEnabled pref
This UI was identified as an internal debugging tool in the WebUI
survey. Place it behind the InternalOnlyUisEnabled pref, so that its
availability is controlled from chrome://chrome-urls and it appears in
the "internal debugging pages" list on that page.

Bug: 379889249
Change-Id: I599f1ca5cb8183119c3184bd3e4cd342c5f2465b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6283647
Reviewed-by: Gabriel Charette <gab@chromium.org>
Reviewed-by: Etienne Pierre-Doray <etiennep@chromium.org>
Commit-Queue: Rebekah Potter <rbpotter@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1424158}
2025-02-24 14:09:22 -08:00
Etienne Pierre-doray
2e3ae3efbb [tracing] Prevent upload if a trace is still starting
This should prevent creating empty traces.
Drive-by: drop optional `name` field in unittests

Bug: 40257548
Change-Id: I135cad44263788381e2bdff732ee77835f3ef1d0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6285689
Reviewed-by: Etienne Bergeron <etienneb@chromium.org>
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1423975}
2025-02-24 10:02:51 -08:00
rbpotter
d312658757 chrome://tracing: Place behind InternalOnlyUisEnabled pref
This UI was identified as an internal debugging tool in the WebUI
survey. Place it behind the InternalOnlyUisEnabled pref, so that its
availability is controlled from chrome://chrome-urls and it appears in
the "internal debugging pages" list on that page.

Bug: 379889249
Change-Id: Ie4db9ac8a4d40d188a89196380483e37166728ad
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6283168
Reviewed-by: Eric Seckler <eseckler@chromium.org>
Commit-Queue: Rebekah Potter <rbpotter@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1423371}
2025-02-21 13:11:57 -08:00
Roger McFarlane
8952859c39 Use bounded ranges (string_view) for histogram names.
This CL changes the histogram creation APIs to take a durable
string view (i.e., a pointer+size pair referring to memory that
the programmer has annotated that it will not be freed) instead
of just an implicit pointer. The HistogramBase class internally
represents the name's length and the histogram's flags using
16 bits in order to not grow the in-memory size of Histogram
objects. The name of the histogram is subsequently exposed by
HistogramBase as a string_view.

This CL updates consumers of the histogram name's to use a
string_view of the name. This removes many string length
calculations and string copy operations. For histograms
allocated in shared memory, it also avoids potential out-of-
bounds reads if the underlying string data is modified or
corrupted such that it no longer has a trailing NUL char
at the end of the string.

Lastly, this CL updates a number of call-sites where the
histogram names were being copied into short-lived string
objects for use as search keys into various containers to
perform the functionality without making any unnecessary
copies.

Low-Coverage-Reason: TRIVIAL_CHANGE Use of string_view instead of string/char* in some error/logging paths have low coverage.
AX-Relnotes: n/a
Bug: 393394360, 40818143
Change-Id: Iee9ee5ae62335b9e7815f4ae11bde4ff80cfd4a2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6231451
Reviewed-by: Avi Drissman <avi@chromium.org>
Reviewed-by: Antonio Rivera <antoniori@google.com>
Commit-Queue: Roger McFarlane <rogerm@chromium.org>
Reviewed-by: Etienne Pierre-Doray <etiennep@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1422750}
2025-02-20 12:50:27 -08:00
Etienne Pierre-doray
653dc10825 [tracing] Include v8 and webrtc categories in TracingController
This CL queries TrackEventCategoryRegistry directly from v8 and webrtc
to expose tracing category in TracingController

Bug: 393384245
Change-Id: I423aad91620b1ea39863200730034586f295bfe0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6217953
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Reviewed-by: Evan Shrubsole <eshr@google.com>
Cr-Commit-Position: refs/heads/main@{#1422577}
2025-02-20 08:01:43 -08:00
Etienne Pierre-doray
7b1872c2ee [tracing] Use unique id for histogram rules
This prevent triggering the wrong rule if multiple rules
have the same names and the histogram is emitted outside the
browser process.

Bug: 40257548
Change-Id: Id352dea12fa77389da893a550e1d6d4a5d359d7a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6282886
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Reviewed-by: Gabriel Charette <gab@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1422556}
2025-02-20 07:36:12 -08:00
Etienne Pierre-doray
60dfd767e5 [tracing] Implement HistogramDataSource
To record all or specific histogram on threshold.
This has a few advantages over CustomEventRecorder
- Supports perfetto config coming from field tracing
- Supports thresholds
- Supports multiple sessions
- Doesn't rely on chrome_config string

Change-Id: I05287bd98901056c6a2b4cd46b97772dd8493d45
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6254221
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Reviewed-by: Mikhail Khokhlov <khokhlov@google.com>
Reviewed-by: Giovanni Ortuno Urquidi <ortuno@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1422191}
2025-02-19 13:57:50 -08:00
Etienne Bergeron
07d5cc369d Migrate Execute to no longer support trailing whitespaces
see: section SQL style
  https://source.chromium.org/chromium/chromium/src/+/main:sql/README.md

Bug: 394891084
Change-Id: Id5e266546b8ef34292abbf12c8b9978fdfc37c01
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6234519
Commit-Queue: Etienne Bergeron <etienneb@chromium.org>
Reviewed-by: Etienne Pierre-Doray <etiennep@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1422032}
2025-02-19 09:42:06 -08:00
Etienne Pierre-doray
226632b457 [tracing] Plumb event id between histogram samples, slices and triggers.
This CL adds a histogram scoper to connect flow id to observers,
to links histogram samples to semantically related events in tracing.
This is more robust and extensible than the previous solution
based on hashing histogram names.

Bug: 40257548
Change-Id: Ib1d5d5da42c84ff548a16b622f8932eb5dd206ba
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6233616
Reviewed-by: Gabriel Charette <gab@chromium.org>
Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Reviewed-by: Giovanni Ortuno Urquidi <ortuno@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1418857}
2025-02-11 12:51:21 -08:00
Etienne Pierre-doray
9653cf8abf [tracing] Emit background tracing error histogram
Bug: 41497361
Change-Id: Ic241feced743af15755e554a57c00545fa008283
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6239845
Reviewed-by: Gabriel Charette <gab@chromium.org>
Reviewed-by: Olivier Li <olivierli@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1417384}
2025-02-07 09:08:50 -08:00
Etienne Pierre-doray
1415b38934 [tracing] Trace upload quota is based on (scenario_name,rule_name)
I'm pushing for more triggers to share the same scenario for simplicity.
The downside is that upload quota is currently per-scenario;
It's hard to ensure that triggers are well balanced; The workaround
is to enforce upload quota per (scenario,rule).

Change-Id: I9fd1f99108e0e9c500d8fdbf1c90813db8cd966f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6240296
Reviewed-by: Gabriel Charette <gab@chromium.org>
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1417339}
2025-02-07 07:39:44 -08:00
Etienne Pierre-doray
7638e654a0 [tracing] Modernize TracingSamplerProfiler
This CL gets rid of DataSourceProxy for TracingSamplerProfiler.
It also removes dead code around legacy StartupTracing.

Change-Id: I9d687d681d26cd092e3afed263edf2c7543a9a51
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6203461
Reviewed-by: Mikhail Khokhlov <khokhlov@google.com>
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1416309}
2025-02-05 10:47:26 -08:00
Etienne Pierre-doray
6c1c3d9a75 [tracing] Add scenario config button to traces-internals
This lets us drop a config file instead of passing a command line
flag.

Change-Id: Ie3afca32ff9ed4a2e3b7da5deec8656e7b332281
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6219373
Reviewed-by: Alex Attar <aattar@google.com>
Reviewed-by: Giovanni Ortuno Urquidi <ortuno@chromium.org>
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1415796}
2025-02-04 13:31:44 -08:00
Anthony Vallée-Dubois
9adf0bbf4b Builder pattern in DatabaseOptions
DatabaseOptions is getting too large for the "explicit out of line
constructor for complex types" presubmit. Adding a constructor to it
prevents it from being an aggregate type, which is how most of the
callers currently use it.

This Cl makes DatabaseOptions members private and adds builder-type
setters for each member. It also updates all callers, and adds an out of
line constructor.

A future improvement could be to add a passkey to the setters for
discouraged options.

Bug: None
Change-Id: I63562f43c8b290247878d194039487b240e958c2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6216099
Reviewed-by: Gabriel Charette <gab@chromium.org>
Reviewed-by: Greg Thompson <grt@chromium.org>
Owners-Override: Gabriel Charette <gab@chromium.org>
Commit-Queue: Anthony Vallée-Dubois <anthonyvd@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1414974}
2025-02-03 09:01:41 -08:00
rbpotter
069531d522 WebUI: Mark chrome://tracing as an external facing WebUI page
This page was reported by the team and confirmed via code review as an
internal debugging tool, but after reviewing the implementation of
placing the UI behind a pref controlled via chrome://chrome-urls, the
team would now prefer this to be considered an external facing UI.

Bug: 379889249
Change-Id: I277f1e53285ad61aea70c20f458bf8e69fe9a506
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6208369
Commit-Queue: Rebekah Potter <rbpotter@chromium.org>
Reviewed-by: Eric Seckler <eseckler@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1413659}
2025-01-30 11:59:27 -08:00
Chinglin Yu
6e02296d22 tracing: support system backend in tracing scenarios
This change allows tracing scenarios to collect system-wide traces using
the system tracing backend (traced).

To enable this feature:

This revision adds the support of system-wide background tracing in
tracing scenarios. A tracing scenario switches to the system tracing
backend (traced) when the following conditions are all met:

1. EnablePerfettoSystemTracing is enabled: Chrome sends trace data to
the system backend.
2. EnablePerfettoSystemBackgroundTracing is enabled: this feature flag
controls whether the scenarios are allowed to use the system backend.
3 use_system_backend is set to true in the scenario config. The scenario
needs to explicitly specify that it will use the system backend.

In cases of mismatched configuration between feature flags and scenario
config:

* If the scenario requests the system backend but the feature flags
  are disabled, the scenario will be ignored (considered a server
  config error).
* If the feature flags are enabled but the scenario doesn't request the
  system backend, the default custom backend will be used.

Bug: b:388424720
Test: unit tests TracingScenarioSystemBackendTest.*
Change-Id: I33cb2f45e59194e4348a09573e2db3f44df43d60
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5581575
Reviewed-by: Eric Seckler <eseckler@chromium.org>
Reviewed-by: Etienne Pierre-Doray <etiennep@chromium.org>
Commit-Queue: Chinglin Yu <chinglinyu@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1413380}
2025-01-30 02:23:26 -08:00
Etienne Pierre-doray
21315d38c9 [tracing] Add trigger value as a column
Drive-by: remove unused css.

Change-Id: Ide420eac81c1f5ed4a70169f21661a59fa3d842c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6204502
Reviewed-by: Alex Attar <aattar@google.com>
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Reviewed-by: Joe Mason <joenotcharles@google.com>
Cr-Commit-Position: refs/heads/main@{#1413172}
2025-01-29 14:13:19 -08:00
Tom Sepez
8726d30ed0 Suppress unsafe_libc_call warning for initial identified files.
See docs/unsafe_buffers.md for details. Enforcement is not yet
enabled, but this set of files are not in compliance with the
new warnings.

Bug: 390223051
Change-Id: I4e24c2141b9399f572678302c833947494098b29
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6187925
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Owners-Override: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1412673}
2025-01-28 18:11:08 -08:00
Etienne Pierre-doray
64748060e1 [tracing] Improve tracing scenario enrollment.
This CL uses scenario names to identify enabled scenario presets.
This allows us to keep enabled scenarios when the config is updated.
This also renames "Clear" button to "Reset" to make it clear that
this resets to the default state.

Change-Id: Iaf0243769a07aaabd31da865a92e4c3a5e83117c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6204122
Reviewed-by: Giovanni Ortuno Urquidi <ortuno@chromium.org>
Reviewed-by: Gabriel Charette <gab@chromium.org>
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1412526}
2025-01-28 13:15:34 -08:00
Etienne Pierre-doray
e3518a36b6 [tracing] Update tracing histograms
Bug: 386793475
Change-Id: I9ffe51f007d982cdb9b0662bc4b62d8677e43150
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6207853
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Reviewed-by: Olivier Li <olivierli@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1412482}
2025-01-28 12:13:28 -08:00
Greg Thompson
48659bd1a8 [etw tracing] Show the security shield icon in traces-internals
The enable/disable toggle that triggers UAC now has the proper shield
icon.

Bug: 41497361
Change-Id: I00c4677b67cb8b7f0e0f79be4aa50567b081ffa0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6198321
Reviewed-by: Mike West <mkwst@chromium.org>
Reviewed-by: Alex Attar <aattar@google.com>
Reviewed-by: Colin Blundell <blundell@chromium.org>
Auto-Submit: Greg Thompson <grt@chromium.org>
Commit-Queue: Greg Thompson <grt@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1412298}
2025-01-28 07:29:39 -08:00
Greg Thompson
ef55c67cae [etw tracing] Register the service via chrome://traces-internals/scenarios
This CL adds a toggle to chrome://traces-internals/scenarios so that
users of per-machine beta or stable installs of Google Chrome can
manually register or unregister the Windows system tracing service.

Bug: 41497361
Change-Id: I78c4cfde989bdf686e37690fd43d5832f26947d8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6187098
Reviewed-by: Arthur Sonzogni <arthursonzogni@chromium.org>
Commit-Queue: Greg Thompson <grt@chromium.org>
Reviewed-by: Peter Beverloo <peter@chromium.org>
Reviewed-by: Alex Attar <aattar@google.com>
Reviewed-by: Avi Drissman <avi@chromium.org>
Reviewed-by: Etienne Pierre-Doray <etiennep@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1412146}
2025-01-28 00:35:40 -08:00
Etienne Pierre-doray
86adf9d9a9 [tracing] Fix TracingScenarioTest
Since the startup sessions don't get adopted in tests (we don't
start real tracing session), disable startup tracing to avoid leaks.

bug: 391438101
Change-Id: I40c25fe152e8fe32729dfa04604153a1e8f7a7e0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6190287
Reviewed-by: Eric Seckler <eseckler@chromium.org>
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1409801}
2025-01-22 10:46:25 -08:00
HuanPo Lin
52e714b046 gardener: Disable flaky TracingScenarioTest tests
Bug: 391438101
Change-Id: Ie905c8fc8861f0f132ae79946dd3a745eb2f8fca
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6188523
Reviewed-by: Shunya Shishido <sisidovski@chromium.org>
Owners-Override: Robert Lin <robertlin@google.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Huanpo Lin <robertlin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1409393}
2025-01-21 17:10:52 -08:00
Etienne Pierre-doray
9676d60389 [tracing] Move AddMetadataGeneratorFunction to BackgroundTracingManager initialization
This ensures the data sources are registered before any scenario starts.

Change-Id: I022038324fbb2f84bfb34b62317c6d2a64a3007e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6185484
Reviewed-by: Alexander Timin <altimin@chromium.org>
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1409068}
2025-01-21 08:44:25 -08:00
Kenichi Ishibashi
49e871e32f [tracing] Add //net constants to tracing metadata
Tracing "net-log" category captures NetLog events but trace logs
don't contain //net constants. This prevent us from converting a trace
log to a NetLog. Since tracing has better capabilities than NetLog
(e.g., tracing can capture NetLog events even after the network
service crashes), it would be nice to have a way to convert
tracing logs to NetLogs. The NetLog format and the NetLog viewer [1]
is still useful for investigating //net specific bugs. This CL adds
//net constants to metadata of a trace log.

[1] https://netlog-viewer.appspot.com/

Bug: 385170278
Change-Id: I9c64e1b6efb578c9fc1741d08146a16250794d12
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6176642
Reviewed-by: Eric Seckler <eseckler@chromium.org>
Commit-Queue: Kenichi Ishibashi <bashi@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1407210}
2025-01-16 02:39:38 -08:00
Ramon Cano Aparicio
6797d4e5e1 Rename HistogramBase::Sample to Sample32 in content.
Add size to type name so the size is known without needing to lookup
the typedef.
Continuation of https://chromium-review.googlesource.com/c/chromium/src/+/6163590

Changed occurrences under chromium/content

Bug: 40899968
Change-Id: I18af5c2d8d86656d0afc3a6094ab1aa5cb1b2f4e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6164150
Reviewed-by: Balazs Engedy <engedy@chromium.org>
Reviewed-by: Alexei Svitkine <asvitkine@chromium.org>
Reviewed-by: David Bokan <bokan@chromium.org>
Reviewed-by: Eric Seckler <eseckler@chromium.org>
Reviewed-by: Jinsuk Kim <jinsukkim@chromium.org>
Reviewed-by: Ryan Tarpine <rtarpine@chromium.org>
Reviewed-by: Roman Arora <romanarora@chromium.org>
Reviewed-by: Bo Liu <boliu@chromium.org>
Reviewed-by: Alexander Timin <altimin@chromium.org>
Reviewed-by: Luc Nguyen <lucnguyen@google.com>
Commit-Queue: Ramon Cano Aparicio <rcanoaparicio@google.com>
Cr-Commit-Position: refs/heads/main@{#1404808}
2025-01-10 08:09:02 -08:00
Etienne Pierre-doray
8563c8983b [tracing] Consider a trace uploaded only after running serialize_log_callback
This should make metrics reporting more accurate, and allow
retry uploading if chrome shuts down before serialize_log_callback
finishes.

Change-Id: Id0413f166c35eb307730abce1788ca743c354c91
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6132289
Owners-Override: Gabriel Charette <gab@chromium.org>
Reviewed-by: Gabriel Charette <gab@chromium.org>
Commit-Queue: Gabriel Charette <gab@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1401799}
2025-01-03 06:27:05 -08:00
Etienne Pierre-doray
6e4f317ad9 [tracing] Update TracingEndToEndBrowserTest.ThreadAndProcessName
To unblock perfetto roll
https://chromium-review.googlesource.com/c/chromium/src/+/6120448?attempt=1&checksRunsSelected=linux-chromeos-rel

Change-Id: Ie06b6fb6e7219db15f0d04cd169f43d37d217558
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6108111
Reviewed-by: Petr Cermak <petrcermak@chromium.org>
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1400487}
2024-12-27 06:42:19 -08:00
Etienne Pierre-doray
fbe2c6f826 [tracing] Simplify TraceLog
This CL removes unused code in TraceLog and related, including
- function overrides
- Trace buffer
- some AddTraceEvent* variants
- legacy macros
- TraceEventMemoryOverhead

Bug: 343404899
Change-Id: I30ab81c82e835c3a43ae1d9075681a07301b022e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6108078
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Owners-Override: Gabriel Charette <gab@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Mikhail Khokhlov <khokhlov@google.com>
Cr-Commit-Position: refs/heads/main@{#1399836}
2024-12-23 10:34:02 -08:00
rbpotter
266fb3313d WebUI: extend InternalWebUIConfig from more UIs
Specifically extending from chrome://tracing and
chrome://webrtc-internals. These UIs were identified by OWNERS in a
recent Chromium WebUI survey as targeted at Chromium developers and
as UIs that could be placed behind a pref.

The pref behavior is currently behind the InternalOnlyUisPref
feature flag.

Bug: 379889249
Change-Id: I05eae03748661e58d7dcf994e0c5a0d97cfe8c1c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6107298
Reviewed-by: Demetrios Papadopoulos <dpapad@chromium.org>
Reviewed-by: Eric Seckler <eseckler@chromium.org>
Commit-Queue: Rebekah Potter <rbpotter@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1399306}
2024-12-20 11:39:18 -08:00
Alex Ilin
bceab686c6 Fix missing deps in content/browser/tracing/trace_report
trace_report.mojom includes
content/browser/tracing/trace_report/trace_report_database.h which
depends on an auto-generated file sql/sql_name_variants.h.

This CL makes sure that sql_name_variants.h is generated before
generating C++ file from trace_report.mojom.

Bug: 385158081
Change-Id: Ibd6fc5714302b3642e4b88e3e2487a7e39dced39
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6114572
Commit-Queue: Peter Wen <wnwen@chromium.org>
Commit-Queue: Alex Ilin <alexilin@chromium.org>
Reviewed-by: Peter Wen <wnwen@chromium.org>
Auto-Submit: Alex Ilin <alexilin@chromium.org>
Owners-Override: Peter Wen <wnwen@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1399254}
2024-12-20 10:01:09 -08:00
Etienne Pierre-doray
f74d955755 [tracing] Delete unused TracingAgent
Bug: 343404899
Change-Id: I910df8dc5101dda367dcac80a0e4b00a5460cc62
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6085323
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Reviewed-by: Mikhail Khokhlov <khokhlov@google.com>
Cr-Commit-Position: refs/heads/main@{#1398021}
2024-12-18 09:37:39 -08:00
Etienne Pierre-doray
6a3ab2ac2b [tracing] Delete unused PerfettoProducer
Bug: 343404899
Change-Id: I1242ea21cedfc89f11530def76f678d972fcedf1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6086296
Reviewed-by: Yury Khmel <khmel@chromium.org>
Reviewed-by: Francois Pierre Doray <fdoray@chromium.org>
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1397439}
2024-12-17 10:45:54 -08:00
Georg Neis
35ff854b7e Remove Lacros leftovers from content/browser, part 2
Main changes:
- Replace IS_CHROMEOS_ASH with the equivalent IS_CHROMEOS
- Remove obsolete build flag includes/dependencies

Bug: b:354842935
AX-Relnotes: n/a.
Change-Id: I079b003a4664a7a3f7281905323611b6fc4fe3da
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6090635
Reviewed-by: Rakina Zata Amni <rakina@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1397108}
2024-12-16 18:02:08 -08:00
Etienne Pierre-doray
35b4fc7437 [tracing] Simplify PerfettoTaskRunner ownership
Previously, PerfettoTaskRunner was exposed publicly
by PerfettoTracedProcess and used to post tasks.
This CL avoids exposing it and makes sure
it's only create to interface with perfetto.
This also deletes RebindableTaskRunner and simplify testing code.

Bug: 343404899
Change-Id: I4a36f700dd8ae59c12d606c52b7d8f57f4798e82
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6078187
Reviewed-by: Gabriel Charette <gab@chromium.org>
Reviewed-by: Francois Pierre Doray <fdoray@chromium.org>
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Reviewed-by: Alex Rudenko <alexrudenko@chromium.org>
Reviewed-by: Yury Khmel <khmel@chromium.org>
Reviewed-by: Mikhail Khokhlov <khokhlov@google.com>
Cr-Commit-Position: refs/heads/main@{#1396904}
2024-12-16 12:05:55 -08:00
Etienne Pierre-doray
b067d9fac2 [tracing] Delete ProducerClient
This CL implements test replacements for MockProducer
and TestDataSource, and deletes ProducerClient.

This temporarily moves RebindableTaskRunner to tracing::TestUtils
(to be deleted in follow-up), to fix TracingServiceTest.

Bug: 343404899
Change-Id: Id78a73dd55c461b362fe1a5010c9a9b603846e81
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6078882
Reviewed-by: Yury Khmel <khmel@chromium.org>
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Reviewed-by: Francois Pierre Doray <fdoray@chromium.org>
Reviewed-by: Mikhail Khokhlov <khokhlov@google.com>
Cr-Commit-Position: refs/heads/main@{#1395562}
2024-12-12 12:18:13 -08:00
Etienne Pierre-doray
57db71a357 [tracing] Delete TraceEventDataSource dead code
This is a no-op in Perfetto SDK.

Bug: 343404899
Change-Id: If1c547f445d95227cef31950fd743725734c70f3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6072371
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Reviewed-by: Mikhail Khokhlov <khokhlov@google.com>
Cr-Commit-Position: refs/heads/main@{#1394571}
2024-12-10 23:50:43 +00:00
Etienne Pierre-doray
07daecb900 [tracing] Fix DeleteUploadedTraceContentOlderThan
Previous implementation would wrongly delete the old report.

Change-Id: I9e804910184817ee78ec95b9b350168704daff34
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6072757
Reviewed-by: Gabriel Charette <gab@chromium.org>
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1393681}
2024-12-09 15:59:26 +00:00
Etienne Pierre-doray
f8f587cab6 [tracing] Keep uploaded trace content for 2 days
Since the pipeline takes ~2 days to surface traces, there's a
valid use case for keeping the trace around for a bit.

Change-Id: I363d97aee7059c5e9749f5ab78188d660f8efb7b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6068571
Reviewed-by: Gabriel Charette <gab@chromium.org>
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1393070}
2024-12-06 19:39:00 +00:00
Anthony Vallée-Dubois
71d7031332 Change the database tag from a setter to a ctor param
This CL should be a mostly mechanical change, replacing the calls to
`set_histogram_tag` to an argument on the 2 `sql::Database`
constructors. Nothing else should be different.

Change-Id: Ie8fd1d7a677fa66ff90c426fea9367ac4c7c469d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6037574
Reviewed-by: Carlos Knippschild <carlosk@chromium.org>
Reviewed-by: Steven Holte <holte@chromium.org>
Reviewed-by: Bo Liu <boliu@chromium.org>
Reviewed-by: Sebastien Seguin-Gagnon <sebsg@chromium.org>
Reviewed-by: Etienne Bergeron <etienneb@chromium.org>
Reviewed-by: Ayu Ishii <ayui@chromium.org>
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Commit-Queue: Anthony Vallée-Dubois <anthonyvd@chromium.org>
Reviewed-by: mmenke <mmenke@chromium.org>
Reviewed-by: Siddhartha S <ssid@chromium.org>
Reviewed-by: Sophie Chang <sophiechang@chromium.org>
Reviewed-by: Ben Reich <benreich@chromium.org>
Reviewed-by: Greg Thompson <grt@chromium.org>
Reviewed-by: Daniel Rubery <drubery@chromium.org>
Reviewed-by: Maks Orlovich <morlovich@chromium.org>
Reviewed-by: Ravjit Uppal <ravjit@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1391975}
2024-12-05 00:17:43 +00:00
Etienne Pierre-doray
16d047e488 [tracing] Cleanup perfetto system producer
This is dead code post perfetto SDK migration.

Change-Id: I86eeace14bdddd0247bb244e6d6f2e32f3d2af70
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6064442
Reviewed-by: Colin Blundell <blundell@chromium.org>
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Reviewed-by: Mikhail Khokhlov <khokhlov@google.com>
Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1391149}
2024-12-03 19:12:12 +00:00
Etienne Pierre-doray
cf6f244903 [tracing] Add causal flows on tracing triggers
This CL adds a flow that connects to scenario triggers.
The flow is added on all histogram samples and named triggers.
It can also be connected to specific trace events: this
connects "MainThreadsCongestion" as an example.

Drive-by: rename rule_id/rule_name to avoid ambiguity
Drive-by: delete unused BackgroundTracingRule::trigger_delay_

Change-Id: I94959c5323172fd6a75f9361c5d47dbba199fa6f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6055229
Reviewed-by: Etienne Bergeron <etienneb@chromium.org>
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1391114}
2024-12-03 18:23:47 +00:00