Web Application Testing
anthropics/skills
Tests local web applications with Python Playwright scripts, checking frontend behavior, capturing screenshots and reading browser console logs.
Modularize a chrome/browser/ subfolder by splitting its sources out of the monolithic //chrome/browser:browser target into dedicated sourceset targets in the subfolder's own BUILD.gn.
$ npx skills add nwjs/chromium.src --skill modularize-chrome-browser -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install nwjs/chromium.src modularize-chrome-browser --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/nwjs/chromium.src.git skills-src && mkdir -p .claude/skills && cp -r skills-src/agents/projects/bedrock/modularize-chrome-browser .claude/skills/modularize-chrome-browser && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "modularize-chrome-browser" agent skill from https://github.com/nwjs/chromium.src/tree/main/agents/projects/bedrock/modularize-chrome-browser into .claude/skills/modularize-chrome-browser/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "modularize-chrome-browser", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/nwjs/chromium.src/tree/main/agents/projects/bedrock/modularize-chrome-browserType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add nwjs/chromium.src --skill modularize-chrome-browser -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install nwjs/chromium.src modularize-chrome-browser --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nwjs/chromium.src.git skills-src && mkdir -p .agents/skills && cp -r skills-src/agents/projects/bedrock/modularize-chrome-browser .agents/skills/modularize-chrome-browser && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "modularize-chrome-browser" agent skill from https://github.com/nwjs/chromium.src/tree/main/agents/projects/bedrock/modularize-chrome-browser into .agents/skills/modularize-chrome-browser/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "modularize-chrome-browser", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add nwjs/chromium.src --skill modularize-chrome-browser -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install nwjs/chromium.src modularize-chrome-browser --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nwjs/chromium.src.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/agents/projects/bedrock/modularize-chrome-browser .cursor/skills/modularize-chrome-browser && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "modularize-chrome-browser" agent skill from https://github.com/nwjs/chromium.src/tree/main/agents/projects/bedrock/modularize-chrome-browser into .cursor/skills/modularize-chrome-browser/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "modularize-chrome-browser", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/nwjs/chromium.src.git --path agents/projects/bedrock/modularize-chrome-browser--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add nwjs/chromium.src --skill modularize-chrome-browser -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install nwjs/chromium.src modularize-chrome-browser --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nwjs/chromium.src.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/agents/projects/bedrock/modularize-chrome-browser .gemini/skills/modularize-chrome-browser && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "modularize-chrome-browser" agent skill from https://github.com/nwjs/chromium.src/tree/main/agents/projects/bedrock/modularize-chrome-browser into .gemini/skills/modularize-chrome-browser/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "modularize-chrome-browser", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install nwjs/chromium.src modularize-chrome-browserInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add nwjs/chromium.src --skill modularize-chrome-browser -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/nwjs/chromium.src.git skills-src && mkdir -p .github/skills && cp -r skills-src/agents/projects/bedrock/modularize-chrome-browser .github/skills/modularize-chrome-browser && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "modularize-chrome-browser" agent skill from https://github.com/nwjs/chromium.src/tree/main/agents/projects/bedrock/modularize-chrome-browser into .github/skills/modularize-chrome-browser/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "modularize-chrome-browser", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add nwjs/chromium.src --skill modularize-chrome-browser -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install nwjs/chromium.src modularize-chrome-browser --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nwjs/chromium.src.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/agents/projects/bedrock/modularize-chrome-browser .opencode/skills/modularize-chrome-browser && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "modularize-chrome-browser" agent skill from https://github.com/nwjs/chromium.src/tree/main/agents/projects/bedrock/modularize-chrome-browser into .opencode/skills/modularize-chrome-browser/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "modularize-chrome-browser", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
modularize-chrome-browserModularize a chrome/browser/ subfolder by splitting its sources out of the monolithic //chrome/browser:browser target into dedicated sourceset targets in the subfolder's own BUILD.gn.
Modularize Chrome Browser is an agent skill from nwjs/chromium.src. Modularize a chrome/browser/ subfolder by splitting its sources out of the monolithic //chrome/browser:browser target into dedicated sourceset targets in the subfolder's own BUILD.gn. Use when the user asks to modularize, extract, or create BUILD targets for a chrome/browser/ subfolder, or mentions "Project Bedrock", "//chrome/browser modularization", or wants to split a subfolder into header/impl/test targets. Also use when the user says "modularize chrome/browser/X" for any X.
Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Testing & QA. The repository describes itself as: Chromium codebase with NW.js modifications. Based on https://chromium.googlesource.com/chromium/src.git. The licence is BSD-3-Clause.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit a9e8946. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
python3bashgitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Modularize Chrome Browser loads about 3k tokens when it runs. Until then it costs about 128 tokens; SKILL.md has 1,022 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from nwjs/chromium.src at commit a9e8946, republished under its BSD-3-Clause licence (© nwjs). 1,022 words, ~3,020 tokens.
.claude/skills/modularize-chrome-browser/SKILL.md (or your agent's skills folder).Extract sources for a chrome/browser/<subfolder>/ from the monolithic
//chrome/browser:browser target into well-defined source_set targets in the
subfolder's own BUILD.gn. Changes must conform to
//docs/chrome_browser_design_principles.md.
The end state is: - chrome/browser/<subfolder>/BUILD.gn defines
::<subfolder> (headers), ::impl (.cc files), ::unit_tests, and
::browser_tests as needed. - chrome/browser/BUILD.gn no longer lists the
subfolder's .cc/.h files directly; instead it deps on ::impl. -
chrome/test/BUILD.gn no longer lists the subfolder's test files directly;
instead it deps on ::unit_tests / ::browser_tests. - Build verification
passes.
Important: Do not make any changes unless explicitly instructed by the user. When asked to plan, produce a numbered list of steps only.
An existing BUILD.gn in the subfolder does not mean the subfolder is
already modularized. Verify by checking whether the files are still listed in
chrome/browser/BUILD.gn:
grep -n "<subfolder>/" chrome/browser/BUILD.gn | head -60
grep -n "<subfolder>/" chrome/test/BUILD.gn | head -60If files appear there, modularization is needed regardless of whether a
BUILD.gn already exists.
ls chrome/browser/<subfolder>/| Subfolder layout | Classification | Action | | ------------------------ |
----------------- | ---------------------------- | | Only an android/ (or |
Platform-specific | Skip — nothing to modularize | | : other platform) : : at
the root level : | : sub-subfolder, no : : : | : .cc/.h at root : : : | Has
.cc/.h files at | Hybrid | Modularize the root | | : root AND a platform : :
.cc/.h files; leave the : | : sub-subfolder : : platform subfolder alone : |
Has .cc/.h files, no | Standard | Modularize normally | | : platform
subfolder : : :
| Category | Files | | ------------------------------------ |
------------------------------------ | | Public headers (.h that form the | →
::<subfolder> target | | : API surface) : : | Implementation (.cc + paired
.h) | → ::impl target | | *_unittest.cc | → ::unit_tests target | |
*_browsertest.cc or | → ::browser_tests target | | : *_browser_test.cc : :
| Fuzzer (*_fuzzer.cc) | → separate fuzzer_test() (leave in | | : : place) :
Also read each header to understand which deps are actually required at the
header level vs. only in .cc files.
Use when there are meaningful .h files that consumers depend on independently
of the .cc files, or when circular dependencies need to be broken.
source_set("<subfolder>") {
sources = [
"foo.h",
"foo_factory.h",
]
public_deps = [
# Only deps whose types appear in the public header signatures.
"//base",
"//chrome/browser/profiles:profile",
"//components/keyed_service/core",
]
# Deps used only by .cc files belong in ::impl, not here.
# Keep public_deps minimal — they are transitive and leak to all consumers.
}
source_set("impl") {
sources = [
"foo.cc",
"foo_factory.cc",
]
public_deps = [ "//chrome/browser:browser_public_dependencies" ]
deps = [
":<subfolder>",
"//base",
# Deps only needed in .cc files go here as private deps.
"//content/public/browser",
]
}public + sources splitUse for smaller or simpler components where the header/impl split doesn't add
meaningful value. Declare public headers explicitly using the public variable:
source_set("<subfolder>") {
public = [
"foo.h",
]
sources = [
"foo.cc",
"foo_factory.cc",
"foo_factory.h", # internal header, not part of public API
]
public_deps = [
"//base",
]
deps = [
"//content/public/browser",
]
}public_deps to the strict minimum — they are transitive
and increase the risk of circular dependencies for all downstream consumers.
Move implementation-only deps to private deps.# Copyright 20XX The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# (import any needed buildflags, e.g.)
# import("//extensions/buildflags/buildflags.gni")
source_set("<subfolder>") {
# ... (Pattern A or B from above)
}
source_set("impl") {
# ... (Pattern A only)
}
source_set("unit_tests") {
testonly = true
sources = [ "foo_unittest.cc" ]
deps = [
":<subfolder>",
":impl",
"//base/test:test_support",
"//chrome/test:test_support",
"//testing/gtest",
]
}
source_set("browser_tests") {
testonly = true
defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
sources = [ "foo_browsertest.cc" ]
deps = [
":<subfolder>",
":impl",
"//base/test:test_support",
"//chrome/test:test_support",
"//content/test:test_support",
"//testing/gtest",
]
}Key rules:
::browser_tests if there are no
browser test files).::browser_tests always sets defines = ["HAS_OUT_OF_PROC_TEST_RUNNER"].if (is_android), if (is_chromeos),
if (enable_extensions) guards exactly as they appear in the original
chrome/browser/BUILD.gn..h files belong in the interface/public target even when the .cc
is in ::impl.if (is_chromeos)) as the files
that use them.If a class uses an interface pattern (e.g., a delegate or checker injected via
constructor), do not add BUILDFLAG(IS_ANDROID) build guards around the
code just to skip it on desktop. Instead, pass nullptr on platforms that don't
have an implementation and add a null-check in the method body. This keeps the
code testable on all platforms and avoids ifdef fragmentation.
// Good: platform-agnostic, null-safe
bool Foo::IsInteractable() {
if (!interactability_checker_) return true;
return interactability_checker_->Check();
}.h and .cc file from the monolithic sources list.gn "//chrome/browser/<subfolder>:impl",
(For Pattern B, dep on "//chrome/browser/<subfolder>" instead.)"//chrome/browser/<subfolder>", keep or
replace it with :impl as appropriate.Remove *_unittest.cc files from chrome_unit_tests sources and add:
gn "//chrome/browser/<subfolder>:unit_tests",
Remove *_browsertest.cc files from browser test sources and add:
gn "//chrome/browser/<subfolder>:browser_tests",
Run build verification first (Phase 6), then resolve any errors.
// nogncheck to bypass header check failures. Fix the
dependency graph instead.nogncheck is to bypass
conditional includes that are not currently supported by GN. In such cases,
the added pragma MUST be exactly // nogncheck crbug.com/40147906.//chrome/test:unit_tests), you cannot move that file to the module without
violating header checks. In this case, leave the file in the monolith until
the other folder is also modularized.Add an explicit dep to the failing target:
gn deps += [ "//chrome/browser/<subfolder>" ]
Or, if //chrome/browser:browser already depends on ::impl and the cycle is
intentional, use allow_circular_includes_from on ::impl:
gn allow_circular_includes_from = [ "//chrome/browser:browser_public_dependencies" ]
Add the dep directly to the failing target, or promote it to public_deps on
the target that owns the header.
allow_circular_includes_from rulessources, not headers from its
transitive deps.::impl sets
allow_circular_includes_from = ["//chrome/browser:browser_public_dependencies"].Always run after every edit: bash git cl format
# Desktop Linux (primary — always run this):
python3 tools/mb/mb.py gen -m tryserver.chromium.linux -b linux-rel \
--config-file tools/mb/mb_config.pyl out/Default
# Android arm64 (run if the subfolder has Android-specific code):
python3 tools/mb/mb.py gen -m tryserver.chromium.android -b android-arm64-rel \
--config-file tools/mb/mb_config.pyl out/DefaultFix any include errors and re-run until clean.
Wrap the commit message at 72 characters:
Modularize chrome/browser/<subfolder>/BUILD.gn targets
The monolithic `chrome/browser` target leads to long compilation
times and potential circular dependencies. This change extracts
the C++ and header files from `chrome/browser/<subfolder>/` into
dedicated `source_set` targets:
- `:<subfolder>` — header-only interface target
- `:impl` — implementation (.cc files)
- `:unit_tests` — unit tests (moved from chrome/test:unit_tests)
- `:browser_tests` — browser tests (moved from
chrome/test:browser_tests)
Platform-specific conditions and dependencies were preserved
identically to the original `chrome/browser` configuration.
Missing dependencies implicit to the monolithic target were
explicitly declared.
Bug: <bug-id>Existing BUILD.gn ≠ modularized: Always grep chrome/browser/BUILD.gn to
confirm files have actually been moved out.
Over-broad public_deps: Every entry in public_deps is transitive — all
downstream consumers pull it in. Audit each one; if a type is only used in
.cc files, move it to private deps.
Missing allow_circular_includes_from: If a .h in ::impl is still
Missing platform guards: Copy if (is_android), if (is_chromeos),
if (enable_extensions) verbatim from the original.
Unnecessary BUILDFLAG guards: If a class uses a platform-specific
delegate, prefer passing nullptr on other platforms and null-checking at
runtime instead of build-guarding the whole file.
scoped_mock_* headers: Keep in the interface target if used by tests
outside the folder; move .cc to ::impl or a test-only target.
Forgetting git cl format: Always format after changes before verifying
or committing.
© nwjs, BSD-3-Clause. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in agents/projects/bedrock/modularize-chrome-browser of nwjs/chromium.src.
Open the folder on GitHubat commit a9e8946
Modularize Chrome Browser next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Modularize Chrome Browser this skillnwjs/chromium.src | 160 | — | ~3k | Automated safety check: Pass | BSD-3-Clause | |
| Web Application Testinganthropics/skills | 180k | 51 repos | ~966 | Automated safety check: Pass | Apache-2.0 | |
| Diagnosing Bugsfossasia/eventyay-interpretation | 1.6k | 32 repos | ~2.1k | Automated safety check: Pass | Apache-2.0 | |
| TDDpietheinstrengholt/rssmonster | 564 | 30 repos | ~906 | Automated safety check: Pass | MIT | |
| TDD WorkflowhellangleZ/burn-in-cceverywhere-ralph | 112 | 11 repos | ~2.4k | Automated safety check: Pass | None | |
| TDDsanity-io/sanity | 6.4k | 20 repos | ~1k | Automated safety check: Pass | MIT |
anthropics/skills
Tests local web applications with Python Playwright scripts, checking frontend behavior, capturing screenshots and reading browser console logs.
fossasia/eventyay-interpretation
Diagnosis loop for hard bugs and performance regressions. An agent skill from fossasia/eventyay-interpretation.
pietheinstrengholt/rssmonster
Test-driven development. An agent skill from pietheinstrengholt/rssmonster.
hellangleZ/burn-in-cceverywhere-ralph
A skill your agent uses when writing new features, fixing bugs, or refactoring code.
sanity-io/sanity
Test-driven development with red-green-refactor loop. An agent skill from sanity-io/sanity.
Ibrahim-3d/orchestrator-supaconductor
A skill your agent uses when working with Conductor's context-driven development methodology, managing project context artifacts, or understanding the relationship between product.md, tech-stack.md…
nwjs/chromium.src
Extracts raw trace data from Perfetto traces, runs arbitrary SQL queries for custom follow-up analysis, and applies expert cognitive principles (Tiered Flow Analysis, Semantic Mismatch, Redundancy)…
nwjs/chromium.src
Autonomous multi-agent performance optimization loop for Chromium and V8.
nwjs/chromium.src
Automated Tracing & Performance Telemetry in Chromium using Perfetto and Telemetry benchmarks.
nwjs/chromium.src
Queries Chrome commit, version, release, and milestone metadata.
nwjs/chromium.src
Search and reference Chromium documentation from the local docs index, including design docs, APIs, and development guides.
nwjs/chromium.src
Diagnose Chromium GN dependency and include-visibility failures, including BUILD.gn deps/publicdeps, DEPS include rules, private headers, and circular dependencies.
Categories
Modularize a chrome/browser/ subfolder by splitting its sources out of the monolithic //chrome/browser:browser target into dedicated sourceset targets in the subfolder's own BUILD.gn. src.gn.
Modularize Chrome Browser fits situations like: the user asks to modularize; create BUILD targets for a chrome/browser/ subfolder; mentions Project Bedrock; //chrome/browser modularization.
Run `npx skills add nwjs/chromium.src --skill modularize-chrome-browser -a claude-code`. Or copy the skill folder (agents/projects/bedrock/modularize-chrome-browser in nwjs/chromium.src) into .claude/skills/modularize-chrome-browser in your project. Claude Code loads it when a task matches its description.
Run `npx skills add nwjs/chromium.src --skill modularize-chrome-browser -a codex`. Or copy the skill folder (agents/projects/bedrock/modularize-chrome-browser in nwjs/chromium.src) into .agents/skills/modularize-chrome-browser in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add nwjs/chromium.src --skill modularize-chrome-browser -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/modularize-chrome-browser, .gemini/skills/modularize-chrome-browser, .github/skills/modularize-chrome-browser and .opencode/skills/modularize-chrome-browser in your project.
Going by SKILL.md and its folder, Modularize Chrome Browser needs the command-line tools its instructions call (python3, bash and git). Our summary lists: Python 3. Its frontmatter pre-approves these tools: Read.
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Modularize Chrome Browser is published under the BSD-3-Clause licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Modularize Chrome Browser: Web Application Testing (anthropics/skills, 180k stars), Diagnosing Bugs (fossasia/eventyay-interpretation, 1.6k stars), TDD (pietheinstrengholt/rssmonster, 564 stars) and TDD Workflow (hellangleZ/burn-in-cceverywhere-ralph, 112 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
nwjs (a GitHub organization) maintains it in nwjs/chromium.src, which has 160 GitHub stars. The repository holds 64 skills in this directory. The repository was last updated on October 3, 2026.
Source: nwjs/chromium.src on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.