Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add network track support to the Chrome importer #5343

Open
acreskeyMoz opened this issue Jan 23, 2025 · 1 comment
Open

Add network track support to the Chrome importer #5343

acreskeyMoz opened this issue Jan 23, 2025 · 1 comment
Labels
feature Work that is user facing, and typically should be planned through https://airtable.com/shrRydo6UXheb markers Anything to do with marker data structures, marker chart, or the marker table

Comments

@acreskeyMoz
Copy link

acreskeyMoz commented Jan 23, 2025

It would be helpful if the Chrome importer mapped network requests to network tracks in the Firefox profiler.

For example, when loading the following Chrome Performance trace in the Chrome performance panel, we can see how Chrome scheduled and executed the network requests:
Chrome-login.yahoo.com Trace-20250122T160410.json

Image

However when we import this into the Firefox profiler, the network requests appear to be dropped:
https://share.firefox.dev/4h9GpsK

┆Issue is synchronized with this Jira Task

@canova canova added feature Work that is user facing, and typically should be planned through https://airtable.com/shrRydo6UXheb markers Anything to do with marker data structures, marker chart, or the marker table labels Feb 5, 2025
@canova
Copy link
Member

canova commented Feb 5, 2025

That was indeed something I wanted to do, but couldn't get around to it.

I already have some notes on this, so let me put them here:

The network markers in the Chrome data is similar to ours, they are essentially a bunch of individual markers for some certain events, and they merge them together and generate synthetic network markers out of them. But the number of markers and the data is different than what we have.

This is the place in chromium where they generate these synthetic events: https://source.chromium.org/chromium/chromium/src/+/main:third_party/devtools-frontend/src/front_end/models/trace/handlers/NetworkRequestsHandler.ts;l=193-465;drc=2176b043b513af28108c91e30d38d0ed1f0dd777

Here are the individual events to see them easily: https://source.chromium.org/chromium/chromium/src/+/main:third_party/devtools-frontend/src/front_end/models/trace/handlers/NetworkRequestsHandler.ts;l=132-191;drc=2176b043b513af28108c91e30d38d0ed1f0dd777 and https://source.chromium.org/chromium/chromium/src/+/main:third_party/devtools-frontend/src/front_end/models/trace/types/TraceEvents.ts;l=2169-2209;drc=2176b043b513af28108c91e30d38d0ed1f0dd777
These are the event names that is used to create the network events:

  • ResourceChangePriority
  • ResourceWillSendRequest (could be more than one)
  • ResourceSendRequest (could be more than one)
  • ResourceReceiveResponse
  • ResourceReceivedData (could be more than one)
  • ResourceFinish
  • ResourceMarkAsCached

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature Work that is user facing, and typically should be planned through https://airtable.com/shrRydo6UXheb markers Anything to do with marker data structures, marker chart, or the marker table
Projects
None yet
Development

No branches or pull requests

2 participants