Skip to content

Commit 6d4ec47

Browse files
committed
Merge remote-tracking branch 'upstream/main'
2 parents 82b3624 + e283c72 commit 6d4ec47

File tree

9,002 files changed

+509992
-323241
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

9,002 files changed

+509992
-323241
lines changed

.gemini/OWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
file://config/owner/COMMON_OWNERS
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
description = "Migrates a test file to the e2e_non_hosted folder"
2+
prompt = """
3+
# Task: Migrates a test file to the e2e_non_hosted format.
4+
5+
**The user's raw command is appended below your instructions.**
6+
7+
Your task is to parse the `<original_test_file>`, `<target_test_file>`, and `<issue_id>` from their input
8+
and migrate `<original_test_file>` to the `<target_test_file>`.
9+
10+
## Expected Format
11+
The command follows this format: `/migrate-e2e-non-hosted <original_test_file> <target_test_file> <issue_id>`
12+
13+
## Step-by-step instructions
14+
15+
Step by step instructions:
16+
17+
1) Read all tests in @<target_test_file> as examples to understand the aspects of the already migrated files.
18+
2) Read all files in @test/e2e_non_hosted/shared.
19+
3) Read the non-migrated test file @<original_test_file>.
20+
4) Read relevant helpers files imported from the test file.
21+
5) Create an empty file for the migrated test @<target_test_file>.
22+
6) Update BUILD.gn files to include the new file into the build and remove it from the BUILD.gn files in the e2e folder.
23+
7) Migrate the test file following the following instructions:
24+
25+
- each test function should receive a 'devToolsPage' via its arguments and 'inspectedPage' if needed.
26+
- when calling helpers pass the 'devToolsPage' as the last argument.
27+
- update the helpers that are used by the test to accept 'devToolsPage' as the last argument if needed. CRITICAL: DO NOT UPDATE helpers if an equivalent already exists on the 'DevToolsPage'. Remember that $$, $, waitFor, click, hover, typeText helpers are available directly on devToolsPage. Rewrite accordingly.
28+
- keep the helpers from @test/e2e/helpers in place.
29+
- in helpers, the 'devToolsPage' argument should be the last one and it should be optional defaulting to 'getBrowserAndPagesWrappers().devToolsPage'.
30+
- use the globally available 'setup' function define experiments and flags for the test.
31+
- rewrite any beforeEach/afterEach hooks to be local helper functions called from the test directly.
32+
- instead of using 'devToolsPage.keyboard.press' use 'devToolsPage.keyboard.pressKey'.
33+
- instead of using global 'click' use 'devToolsPage.click'.
34+
35+
8) After you are done with changes, run 'npm run test -- -t StrictTypes <target_test_file>' to verify.
36+
9) Delete the original test file.
37+
10) Create a new branch `git checkout -b fixed-<issue_id>`.
38+
11) Commit the changes with the message 'Migrate <original_test_file>'
39+
12) Run 'git cl presubmit --upload'
40+
13) Run 'git cl upload -a -s -d -f --hashtag=migration-ai -x <issue_id>' to upload the change.
41+
14) Fix any lint issues. You may have to re-commit if files changed. When re-committing, amend the initial commit to preserve the commit message.
42+
43+
"""

.gemini/commands/review.toml

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
description = "Reviews the latest commit"
2+
prompt = """
3+
You are an AI assistant programmed to perform meticulous, context-aware code reviews using the tools available in the Gemini CLI. Your task is to review the latest `git` commit.
4+
5+
**Workflow:**
6+
7+
1. **Identify Changes:** Use the `git` tool to get the commit message and identify all files modified in the latest commit.
8+
2. **Review Individually:** Process each changed file one by one.
9+
3. **Gather Full Context:** For each file, get its specific code diff. Crucially, to understand the full impact of a change, use tools to read other, unchanged files in the repository as needed (e.g., to see a function definition, a class signature, or a constant that is referenced in the changed code).
10+
11+
**Analysis and Reporting:**
12+
13+
After gathering the full context for a change, analyze it against the detailed checklist below. Format your findings precisely according to the specified output structure.
14+
15+
---
16+
17+
**Review Checklist:**
18+
19+
1. **Functionality & Intent:**
20+
* Does the code appear to achieve the stated goal described in the commit message?
21+
* Are there logical flaws preventing it? Does it fully address the problem/feature described?
22+
2. **Correctness:**
23+
* Is the implementation logic sound? Any apparent errors?
24+
* Are patterns (e.g., Revealers, event handling, state management) used correctly per conventions or best practices?
25+
* Is data/state propagation robust? Any potential inconsistencies?
26+
* Is lookup logic (e.g., finding elements/data) safe against null/undefined/missing cases?
27+
* Are types used correctly/consistently?
28+
* Are component/object lifecycle methods used appropriately (initialization, cleanup)?
29+
3. **Asynchronicity:**
30+
* Is the usage of `async`/`await`, Promises, `setTimeout`, UI framework async helpers correct and necessary?
31+
* Any potential race conditions?
32+
* Is async operation cancellation handled where needed?
33+
4. **Resource Management:**
34+
* **Critical:** Examine timers (`setTimeout`, `setInterval`), event listeners (`addEventListener`), subscriptions, WebSockets, file handles, manual DOM manipulations outside framework lifecycles, etc.
35+
* **Verify explicit cleanup:** Is there corresponding cleanup logic (e.g., `removeEventListener`, `clearTimeout`, `clearInterval`, `.unsubscribe()`, `.close()`, framework-specific cleanup hooks) in appropriate lifecycle methods (e.g., `disconnectedCallback`, `useEffect` cleanup, `ngOnDestroy`, `finally`) to prevent leaks when the component/object is destroyed or the resource is no longer needed?
36+
5. **Error Handling & Edge Cases:**
37+
* Is error handling present and robust for expected failures (e.g., network, API, data validation, file operations)?
38+
* Are edge cases handled gracefully (e.g., empty inputs, nulls, zeros, boundary conditions, unexpected data types)?
39+
6. **Performance:**
40+
* Any obvious performance bottlenecks (e.g., inefficient loops, excessive re-renders/recalculations, large memory allocations, blocking operations on main thread)?
41+
* Any clear opportunities for optimization (e.g., memoization, lazy loading, debouncing/throttling)?
42+
7. **Security:**
43+
* Any potential security risks (e.g., improper handling of user input (XSS), insecure API usage, exposing sensitive data)? (Basic check)
44+
8. **Accessibility (a11y):** (Especially for UI/HTML changes)
45+
* Is semantic HTML used correctly (e.g., `<button>` for buttons, `<nav>` for navigation)?
46+
* Are necessary ARIA attributes used appropriately for custom components or complex interactions?
47+
* Is content perceivable (e.g., sufficient color contrast, alternatives for non-text content)?
48+
* Is functionality operable via keyboard? Are focus states managed correctly?
49+
9. **Testability:**
50+
* Is the code structured in a way that facilitates unit or integration testing?
51+
* Are there clear dependencies that might hinder testing? Could dependency injection help?
52+
* Based on the change, are new tests needed or existing tests require updates? (Consider this even if tests aren't in the CL).
53+
10. **Code Style, Readability & Documentation:**
54+
* Any significant issues impacting readability or maintainability beyond automated linting (e.g., unclear variable/function names, overly complex logic, magic numbers/strings)?
55+
* Are comments present for complex or non-obvious logic? Are existing comments accurate and up-to-date?
56+
* Is code documentation (e.g., JSDoc, TSDoc) needed or updated for public APIs or complex functions?
57+
11. **CSS/Styling (if applicable):** Is CSS correct, efficient, maintainable? Does it follow conventions? Any potential style conflicts or specificity issues?
58+
59+
---
60+
61+
**Output:**
62+
63+
Generate code review feedback as a series of structured comment blocks. Each block must correspond to a **single, concrete identified issue** and follow this **exact format**. **Crucially, do not use Markdown headings (#, ##, ---, === under text) for the labels (File:, Line:, Context:, Comment:).** Use the specified separator `***` between comments.
64+
65+
File: <path/to/relevant/file.ext>
66+
Line: <line_number_of_issue_or_most_relevant_line>
67+
Context:
68+
```
69+
<Code from line_number_or_relevant_line - 1>
70+
<Code from line_number_or_relevant_line>
71+
<Code from line_number_or_relevant_line + 1>
72+
```
73+
74+
Comment: <Your specific, **concrete**, and actionable review comment. Clearly explain the **identified** issue (not a potential or speculative one). If suggesting alternatives or pointing out omissions, provide **specific examples** where possible. Ask clarifying questions only if essential information seems missing in the CL for analysis. Phrased objectively and concisely.>
75+
***
76+
77+
# Guidelines for Output:
78+
79+
* Replace placeholders `<...>` with actual values based on your analysis.
80+
* **Formatting:** Ensure the labels `File:`, `Line:`, `Context:`, `Comment:` start on new lines and are treated as plain text, not Markdown headings.
81+
* For `Line:`, use the specific line number where the issue occurs. If the issue spans a block or concerns a general aspect of a function/file (e.g., missing cleanup for a resource initialized elsewhere), use the most representative line number within that context (e.g., the function definition line, the resource initialization line).
82+
* For `Context:`, provide exactly one line of code before and one line after the target line number, **wrapped in its own triple-backtick code block**. Ensure these context lines accurately reflect the code surrounding the specified line. If the target line is the first or last line of the file, provide only the available context line(s) within the code block.
83+
* Ensure each `Comment:` targets a single, distinct, and concrete issue identified from the checklist analysis. The comment text itself *can* contain Markdown formatting (like bolding), but should not start with heading markers.
84+
* Generate one complete block (including the `***` separator) for each concrete issue found. The blocks should be sequential.
85+
"""

.geminiignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
node_modules/
2+
/third_party/
3+
front_end/core/i18n/locales/*.json
4+
front_end/third_party/lighthouse/locales/*.json
5+
front_end/third_party/puppeteer/package/lib/cjs/
6+
front_end/panels/timeline/fixtures/traces/

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ npm-debug.log
2828
/scripts/ai_assistance/auto-run/data
2929
/scripts/ai_assistance/performance-trace-downloads
3030
/scripts/ai_assistance/auto-run/performance-trace-downloads
31+
# This folder is populated from the GCP bucket and managed by gclient sync.
32+
/scripts/ai_assistance/suite/outputs
3133

3234
/build
3335
/buildtools

.gn

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,6 @@ check_targets = [ "*" ]
1818
script_executable = "python3"
1919

2020
default_args = {
21+
# Use Siso instead of Ninja.
22+
use_siso = true
2123
}

.npmrc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ omit = optional # This is to avoid downloading esbuild-* package.
55
ignore-scripts = true
66
save-exact = true
77
save-dev = true # Only devDependencies are allowed.
8+
prefer-dedupe = true # Try to reduce the disk usage
89
prefer-online = true # To consult the mirror instead of local cache.
910
# See go/sk-npm-audit-mirror.
10-
registry = https://npm.skia.org/chrome-devtools
11+
registry = https://npm.skia.org/chrome-devtools

.vscode/devtools-workspace-settings.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,6 @@
77
"typescript.tsdk": "node_modules/typescript/lib",
88
"debug.javascript.terminalOptions": {
99
"skipFiles": ["node_modules/typescript/**"]
10-
}
10+
},
11+
"lit-plugin.rules.no-incompatible-type-binding": "off"
1112
}

AUTHORS

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ Ajay Panthagani <[email protected]>
1616
Alesandro Ortiz <[email protected]>
1717
Alexander Stammbach <[email protected]>
1818
Alexey Rodionov <[email protected]>
19+
Ameen Basha <[email protected]>
1920
Ankit Mishra <[email protected]>
2021
Anna Agoha <[email protected]>
2122
Anthony Xie <[email protected]>
@@ -90,6 +91,7 @@ Tony Kostowny <[email protected]>
9091
Toshiaki Tanaka <[email protected]>
9192
Tushar Singh <[email protected]>
9293
Varun Varada <[email protected]>
94+
Vitali Zaidman <[email protected]>
9395
Will Hernandez <[email protected]>
9496
Yeol Park <[email protected]>
9597
Yisi(一丝) <[email protected]>

DEPS

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,27 +12,27 @@ vars = {
1212
'build_with_chromium': False,
1313

1414
'build_url': 'https://chromium.googlesource.com/chromium/src/build.git',
15-
'build_revision': 'e13953ced04ed05f45aa3c961bd6d802aced74ec',
15+
'build_revision': '3f69beb61e8cc5cd868c39fb860c1e81c759e81e',
1616

1717
'buildtools_url': 'https://chromium.googlesource.com/chromium/src/buildtools.git',
18-
'buildtools_revision': 'b9050718cd8ee119996c515e8abe9ba65a4f4367',
18+
'buildtools_revision': 'b0b6f725c28dbe2d5d7ca6edc9b81a352965eee9',
1919

2020
'depot_tools_url': 'https://chromium.googlesource.com/chromium/tools/depot_tools.git',
21-
'depot_tools_revision': '5e6b39291412822ad5f14c1dccf9a4c6d062ad1f',
21+
'depot_tools_revision': '9e9b885a7b85483e59723d5e1e69235dcb577077',
2222

2323
'inspector_protocol_url': 'https://chromium.googlesource.com/deps/inspector_protocol',
24-
'inspector_protocol_revision': 'bdc11c1d3130b92e0986f38f2e58f93cc5a674a8',
24+
'inspector_protocol_revision': '07272ab9a30fd555890fda0718f4c2c25931653a',
2525

2626
# Keeping track of the last time we rolled the browser protocol files.
27-
'chromium_browser_protocol_revision' : '1b4f8aac5b4658583e1deab8084ae14c0800f90e',
27+
'chromium_browser_protocol_revision' : '3bf451b0bf3beb7acf5f343700e2d8115c187e00',
2828

2929
'clang_format_url': 'https://chromium.googlesource.com/external/github.com/llvm/llvm-project/clang/tools/clang-format.git',
3030
'clang_format_revision': '37f6e68a107df43b7d7e044fd36a13cbae3413f2',
3131

3232
'emscripten_tag': 'ade9d780ff17c88d81aa13860361743e3c1e1396',
3333

3434
# GN CIPD package version.
35-
'gn_version': 'git_revision:c4748415f12ac92d2781608b8b84fcc0e33e5ff9',
35+
'gn_version': 'git_revision:037970ef8d8e5b1d9d3d6defc9aa3886dbfea29a',
3636

3737
'cmake_version': 'version:[email protected]',
3838

@@ -49,7 +49,7 @@ vars = {
4949
# Chrome version used for tests. It should be regularly updated to
5050
# match the Canary version listed here:
5151
# https://googlechromelabs.github.io/chrome-for-testing/last-known-good-versions.json
52-
'chrome': '140.0.7296.0',
52+
'chrome': '141.0.7377.0',
5353

5454
# 'magic' text to tell depot_tools that git submodules should be accepted but
5555
# but parity with DEPS file is expected.
@@ -59,16 +59,16 @@ vars = {
5959
'non_git_source': 'True',
6060

6161
# siso CIPD package version
62-
'siso_version': 'git_revision:dcd000e47f19677c7a5e02550abafa9eadbd4923',
62+
'siso_version': 'git_revision:15568691576f74b11a3c73c85a3c8dd5efb72f05',
6363
}
6464

6565
# Only these hosts are allowed for dependencies in this DEPS file.
66-
# If you need to add a new host, contact chrome infrastracture team.
66+
# If you need to add a new host, contact chrome infrastructure team.
6767
allowed_hosts = [
6868
'chromium.googlesource.com',
6969
'chrome-infra-packages.appspot.com',
7070

71-
# TODO(b/337061377): Move into a separate alllowed gcs bucket list.
71+
# TODO(b/337061377): Move into a separate allowed gcs bucket list.
7272
'chromium-nodejs',
7373
]
7474

@@ -148,7 +148,7 @@ deps = {
148148
'third_party/siso': {
149149
'packages': [
150150
{
151-
'package': 'infra/build/siso/${{platform}}',
151+
'package': 'build/siso/${{platform}}',
152152
'version': Var('siso_version'),
153153
}
154154
],
@@ -216,6 +216,19 @@ deps = {
216216
},
217217
],
218218
},
219+
"scripts/ai_assistance/suite/outputs": {
220+
"dep_type": "gcs",
221+
'condition': 'checkout_ai_evals == True',
222+
"bucket": "chrome-devtools-ai-evals",
223+
"objects": [
224+
{
225+
"object_name": "f0e8e7b99dc61f7a943bfdf284552982c63bdf8d6217091f5260bc8ebd84ca9f",
226+
"sha256sum": "af579f30f2384089e1bece67db9afb71b902aa6ff99cb9749d4694ce53783670",
227+
"size_bytes": 3582,
228+
"generation": 1755705853621054
229+
}
230+
]
231+
},
219232
'third_party/node/win': {
220233
'dep_type': 'gcs',
221234
'condition': 'host_os == "win" and build_with_chromium == False and non_git_source',

0 commit comments

Comments
 (0)