Adds two CPU throttling presets - low-tier mobile and mid-tier mobile - and a calibration process that determines the best throttling rate to
match the given preset.
The calibration process uses a benchmark and experimentally adjusts the
applied CPU throttling to discover the rate that produces the most
similar results.
See go/cpq:adaptive-throttling for more detail.
Bug: 311438112
Change-Id: Iee049f6c8e9c33ec1dee9799eeb8e370c32d9f0a
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/6151074
Reviewed-by: Paul Irish <paulirish@chromium.org>
Commit-Queue: Connor Clark <cjamcl@chromium.org>
We really misused vertical toolbars in the past, as a way to build the
UI of the settings panes within the Network, Console, and Performance
panels.
These weren't really toolbars, and there's also no good reason to even
need the toolbar here, since what we really want is a stupid grid.
Bug: 388445687
Change-Id: Ibd531823c5e5ad09829630656409a1e32b5d43ec
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/6164904
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Danil Somsikov <dsv@chromium.org>
Reviewed-by: Danil Somsikov <dsv@chromium.org>
With this CL, we remove the `.chrome-select` CSS class and the two
different ways of styling a `<select>` element (excluding the completely
custom thing in the Recorder panel), and only have one set of styles
that we use consistently for all `<select>` elements (modulo the one in
the Recorder panel b/c LitElement), independent of whether the
`<select>` is used in a toolbar or elsewhere.
That means we can now simply put a `<select>` directly into a
`<devtools-toolbar>` and it will work as expected.
Drive-by-fix: Skip the test from crbug.com/383478771 completely now,
since even though the `<select>` in the Recorder panel is unaffected
by these changes, some surrounding (likely) timing changes now make that
test fail consistently, not only on Mac.
Bug: 383478771, 388445687
Change-Id: I01d7835d5858cac8863a7337a8e43a49b55820f2
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/6163607
Commit-Queue: Danil Somsikov <dsv@chromium.org>
Reviewed-by: Danil Somsikov <dsv@chromium.org>
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
This is a manual modification of the web-vitals.js library to prevent
it from retaining DOM nodes. In some cases the DOM node may be removed
before DevTools can make a reference for it, but that is preferable to
keeping the node in memory when the user does not expect it.
Bug: 376777343
Change-Id: I507273c93a4bbe5f2f5111e1a17e179efc583ef4
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/6159204
Commit-Queue: Adam Raine <asraine@chromium.org>
Reviewed-by: Connor Clark <cjamcl@chromium.org>
section and highlight
The direct citations/footnotes rendered via MarkdownView now link to
the references section instead of directly to the source URL. On
click, the references section is expanded and the corresponding URL
highlighted.
Polished the code by using extended markdown's footnote syntax for
direct citations.
Also added a sub-heading for indirect citations if there are both
direct and indirect citations.
Screencast: https://i.imgur.com/VP6vRV6.mp4
Bug: 381228083
Change-Id: I479b299a609a2b63690c53593af1507ba2ba269a
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/6157982
Commit-Queue: Wolfgang Beyer <wolfi@chromium.org>
Auto-Submit: Wolfgang Beyer <wolfi@chromium.org>
Reviewed-by: Alex Rudenko <alexrudenko@chromium.org>
console.timeStamp will be used as a fast API to extend the performance
panel [1]. Right now, the call dispatches two trace events, one in Blink
and one in V8. Before this CL the timings added to the timeline for
console.timeStamp calls were taken from the event dispatched from Blink.
However, we have recently modified the V8 event to include 5 extra
params in accordance to the proposed extension to the console.timeStamp
API in the linked doc [2]. We did it in the V8 event to avoid the
potential overhead of passing the params to Blink from V8 and keep the
API as fast as possible.
This CL replaces the usage of the console timestamp event in Blink for
the one in V8, and updates the event type accordingly. This is the first
step towards adding support for extending the Performance panel with the
console.timeStamp API.
Note: With this done we can also delete the trace event dispatched in
Blink, since it's no longer used.
[1] go/cpq:console-timestamp
[2] https://chromium-review.googlesource.com/c/v8/v8/+/6110720
Bug: 377884142
Change-Id: I5f2a0ebd212ae5169b5c3f88bdda6d0b64ae00eb
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/6141613
Reviewed-by: Alina Varkki <alinavarkki@chromium.org>
Commit-Queue: Andres Olivares <andoli@chromium.org>
This is the first step towards making it possible to use the `Toolbar`
component within lit-html templates. It turns the `UI.Toolbar.Toolbar`
class into an `HTMLElement` and removes its shadow DOM, using a light
DOM instead with global styles. This makes it possible to easily style
toolbars and their elements differently in different context, without
having to inject additional styles into the shadow DOM manually.
Bug: 388445687
Change-Id: I7a4e03a8c12978b7d9d9da79597b656409b3a9cb
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/6157257
Reviewed-by: Danil Somsikov <dsv@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Danil Somsikov <dsv@chromium.org>
The spread syntax (...) will make a copy of the original object, which will use too much memory in our case because we have a big number of entries.
Originally we use spread syntax because we want to combine two maps. So the improvement is to check both map when we use the combined map.
Bug: 383702926
Change-Id: I191471ce8b7b33d978c61ea335acdac5fb6d412b
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/6152579
Commit-Queue: Nancy Li <nancyly@chromium.org>
Reviewed-by: Paul Irish <paulirish@chromium.org>
This is the same functionality that the cookie table has within the
network panel. For each entry in the cookie report, there will be a
right click context menu option that will show the user the network
requests that contain cookies with the same cookie name AND cookie
domain.
Bug:b/365737493
Change-Id: I445e0b253f8ffd4f25d2bcc9a6560d4ab1ba39a8
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/6140936
Reviewed-by: Shuran Huang <shuuran@chromium.org>
Commit-Queue: Joshua Thomas <masnoble@chromium.org>
Reviewed-by: Danil Somsikov <dsv@chromium.org>
Accidentally importing something as `foo//bar.js` (rather than
`foo/bar.js`) should not matter, and indeed both the TS build and
ESBuild compile fine. However you get an error when running DevTools at
runtime. What's unfortunate is that the error is very non obvious and it
took me ages to realise that the root of it was an accidental `//`.
This CL adds a check for this to the existing import rule and a test.
Fixed: 346966388
Change-Id: I3922a58b89ce639fc619c0e2b83cd14f3fe993cb
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/6157259
Commit-Queue: Andres Olivares <andoli@chromium.org>
Auto-Submit: Jack Franklin <jacktfranklin@chromium.org>
Commit-Queue: Jack Franklin <jacktfranklin@chromium.org>
Reviewed-by: Andres Olivares <andoli@chromium.org>
Pressing shift and scrolling was not previously resulting in panning action because when mouse is used, 'shift + scroll' creates a wheelEvent that is already considered horizontal scroll and and deltaY was equal to 0.
Instead, use a panning delta that uses WheelEvent deltaX if deltaY doesn't exist.
Bug: 313757601
Change-Id: Ie3fa47405acfb9848cd23693ac1bfd3e9a339cf2
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/6157258
Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
Auto-Submit: Alina Varkki <alinavarkki@chromium.org>
Commit-Queue: Alina Varkki <alinavarkki@chromium.org>
Add tests for the DataGridWithPreview component. A lot of the logic
for actually rendering the data is in DataGrid, so I plan to expand test
coverage there in a second CL. These changes focus on test coverage for
the preview behavior in the bottom split pane widget.
I identified an unset (and unused in all places but DataGridWithPreview)
property `key` on DataGridNode. With that in mind, I simply removed it
to avoid accidental usage in the future.
Bug: 377942776
Change-Id: Id0da39ce8b21a1737c030f95eeed8390c77ed9a1
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/5999722
Reviewed-by: Alex Rudenko <alexrudenko@chromium.org>
Reviewed-by: Danil Somsikov <dsv@chromium.org>
Auto-Submit: Oliver Dunk <oliverdunk@chromium.org>
Commit-Queue: Alex Rudenko <alexrudenko@chromium.org>