| test: drop now-empty remote runner (#35343) * test: drop the now-empty remote runner from CI * move fixtures to spec-main * remove remote runner * fix stuff * remove global-paths hack * move ts-smoke to spec/ * fix test after merge * rename spec-main to spec * no need to ignore spec/node_modules twice * simplify spec-runner a little * no need to hash pj/yl twice * undo lint change to verify-mksnapshot.py * excessive .. * update electron_woa_testing.yml * don't search for test-results-remote.xml it is never produced now | 4 年前 |
| chore: emphasize documentation style guide (#45639) docs: emphasize documentation style guide | 1 年前 |
| build: only fallback to CHROMIUM_BUILDTOOLS_PATH if needed (#51558) * build: only fallback to CHROMIUM_BUILDTOOLS_PATH if needed * ci: fix lint workflow detection of src/buildtools * ci: bump build-tools SHA | 4 个月前 |
| docs: update linux build instructions (#49030) * docs: update linux build instructions * Update docs/development/build-instructions-linux.md Co-authored-by: Erick Zhao <ezhao@slack-corp.com> * Update docs/development/build-instructions-linux.md Co-authored-by: Erick Zhao <ezhao@slack-corp.com> --------- Co-authored-by: Erick Zhao <ezhao@slack-corp.com> | 9 个月前 |
| build: run the TypeScript scripts under script/ with plain node (#54168) ts-node was used as a CLI for a handful of TypeScript scripts under script/. Those now rely on the type stripping built into Node.js instead: - script/gen-filenames, check-patch-diff, run-clang-tidy and the release helpers (find-github-release, upload-to-github, github-token, types) are renamed to .mts and invoked with `node`. They use import.meta.dirname and explicit .mts / .js specifiers, and tsconfig.script.json moves to nodenext with verbatimModuleSyntax so tsc checks them the way Node runs them. - The documented minimum Node.js for building goes from 22.12 to 22.18, the first 22.x release with type stripping on by default. - script/codesign/gen-trust.ts and its trust.xml template are deleted; nothing has invoked them since generate-identity.sh switched to a user-scoped keychain in #50058. - oxfmt, oxlint, lint-staged and .gitattributes learn about .mts. ts-node itself stays for now because the spec runner still loads specs through its require hook. Co-authored-by: Claude <noreply@anthropic.com> | 5 天前 |
| build: run the TypeScript scripts under script/ with plain node (#54168) ts-node was used as a CLI for a handful of TypeScript scripts under script/. Those now rely on the type stripping built into Node.js instead: - script/gen-filenames, check-patch-diff, run-clang-tidy and the release helpers (find-github-release, upload-to-github, github-token, types) are renamed to .mts and invoked with `node`. They use import.meta.dirname and explicit .mts / .js specifiers, and tsconfig.script.json moves to nodenext with verbatimModuleSyntax so tsc checks them the way Node runs them. - The documented minimum Node.js for building goes from 22.12 to 22.18, the first 22.x release with type stripping on by default. - script/codesign/gen-trust.ts and its trust.xml template are deleted; nothing has invoked them since generate-identity.sh switched to a user-scoped keychain in #50058. - oxfmt, oxlint, lint-staged and .gitattributes learn about .mts. ts-node itself stays for now because the spec runner still loads specs through its require hook. Co-authored-by: Claude <noreply@anthropic.com> | 5 天前 |
| chore: update https://cs.chromium.org/ links to https://source.chromium.org/ (#37190) Co-authored-by: Milan Burda <miburda@microsoft.com> | 3 年前 |
| docs: fix command for clang-tidy usage (#52338) | 2 个月前 |
| build: migrate from eslint to oxlint (#50691) Consolidates the root .eslintrc.json and five nested configs (build, script, docs, default_app, spec) into a single .oxlintrc.json at the repo root. script/lint.js now shells out to the oxlint binary from node_modules/.bin instead of using the ESLint Node API, and emits GitHub Actions annotations directly via --format=github in CI (replacing the deleted eslint-stylish problem matcher). Oxlint has no markdown processor, so the ESLint-based lint of JS code blocks in docs/**/*.md is replaced with an inline regex check for bare Node.js builtin imports. This preserves the rule docs/.eslintrc.json was originally added for in #42113; the rest of the standard ruleset on docs code blocks was already being enforced in parallel by lint-roller-markdown-standard. | 5 个月前 |
| fix: cppgc WebContents stack follow-ups (#54163) * fix: throw a clear error from a Session made inert at shutdown Build Session's template with gin_helper::ObjectTemplateBuilder so a call on a wrapper the MicrotasksRunner has invalidated throws "Object has been destroyed" instead of gin's "Illegal invocation". Report the result of the shutdown-order spec through stdout, since app.exit() cannot change the exit code once the dispose pass is running. * fix: dispose the MicrotasksRunner when startup exits early When toolkit initialisation fails (e.g. no display) content never runs PostMainMessageLoopRun(), so ~JavascriptEnvironment destroyed the runner after the isolate had been disposed and with observers still registered. * fix: emit debugger 'detach' for contents disposed at quit The lifecycle client is disposed before its WebContents now, so notify the Debugger when that detaches an attached client instead of dropping the event. * fix: do not wrap a collected WebContents that is awaiting teardown Between the wrapper being collected and the deferred NativeLifecycle teardown the content::WebContents is still alive; FromOrCreate() minted a second, remote wrapper for it and emitted web-contents-created. Return null for that window instead. * chore: do not alias an owned MicrotasksRunner observer with a raw_ptr * fix: identify Electron wrappers by WrapperInfo in the serializer Unwrapping foreign API wrappers with Electron's tag range trips a V8 DCHECK in is_debug builds; unwrap with the generic range and check the type info, as gin does. * fix: let BluetoothChooser settle requests when its wrapper is gone * docs: add the ObjectTemplateBuilder include to the creating-api sample | 5 天前 |
| docs: update development-related documentation (#31043) * docs: update chromium development-related documentation * chore: remove obsolete clang-format doc clang-format linting and fixing is a pre-commit hook now * docs: update debugging documentation * docs: misc updates * Update docs/development/debugging-on-windows.md Co-authored-by: Micha Hanselmann <mh74182@gmail.com> * Update docs/development/README.md Co-authored-by: Mark Lee <malept@users.noreply.github.com> * Update docs/development/README.md Co-authored-by: Mark Lee <malept@users.noreply.github.com> * Update docs/development/README.md Co-authored-by: Mark Lee <malept@users.noreply.github.com> * Update docs/development/README.md Co-authored-by: Mark Lee <malept@users.noreply.github.com> * Update docs/development/README.md Co-authored-by: Mark Lee <malept@users.noreply.github.com> * Update docs/development/README.md Co-authored-by: Mark Lee <malept@users.noreply.github.com> * Update docs/development/debugging-on-macos.md Co-authored-by: Mark Lee <malept@users.noreply.github.com> * Update docs/development/testing.md Co-authored-by: Mark Lee <malept@users.noreply.github.com> * Update docs/development/testing.md Co-authored-by: Mark Lee <malept@users.noreply.github.com> Co-authored-by: Micha Hanselmann <mh74182@gmail.com> Co-authored-by: Mark Lee <malept@users.noreply.github.com> Co-authored-by: Cheng Zhao <zcbenz@gmail.com> | 4 年前 |
| docs: fix typos across documentation (#49734) Fix 40 typos across 25 documentation files including misspellings, missing words, doubled words, wrong words, and grammatical errors. | 7 个月前 |
| docs: update formatting for mdx3 compatibility (#42052) docs: update formatting for mdx3 compat | 2 年前 |
| chore: disallow shortcut reference links in docs Markdown (#36860) * chore: disallow shortcut reference links in docs Markdown * docs: clean up shortcut-style links | 3 年前 |
| chore: fix spelling errors in multiple files (#34574) * chore: fix spelling in .circleci Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * chore: fix spelling in BUILD.gn Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * chore: fix spelling in appveyor.yml Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * chore: fix spelling in build Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * chore: fix spelling in docs Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * chore: fix spelling in lib Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * chore: fix spelling in script Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * chore: fix spelling in shell Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * chore: fix spelling in spec Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * chore: fix spelling in spec-main Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> | 4 年前 |
| docs: update external links (#39421) | 3 年前 |
| build: check the formatting of docs code blocks with oxfmt (#54140) * build: check the formatting of docs code blocks with oxfmt lint-roller 4 splits the old `lint-roller-markdown-standard` into an oxlint half and an oxfmt half. This wires up the second one: `lint:fmt-in-markdown` runs `lint-roller-markdown-oxfmt` over docs/ as part of `lint:docs`, using docs/.oxfmtrc.json, which matches the repo's .oxfmtrc.json except that docs snippets keep their semicolon-free style. `--fix` writes the formatted blocks back, and a block can opt out with `@noformat` in its info string. * docs: format code blocks with oxfmt Result of `lint-roller-markdown-oxfmt --fix` with docs/.oxfmtrc.json, plus the @ts-expect-error line anchors (and one Docusaurus highlight marker) that moved with the reformat. The Babel output sample in the ESM guide and the two excerpts of repo source in creating-api.md are marked @noformat, and the contentTracing example passes an async callback instead of wrapping an IIFE so that it does not need a leading semicolon. --------- Co-authored-by: Claude <noreply@anthropic.com> | 5 天前 |
| build: derive patches upstream-head ref from script path (#50727) * build: derive patches upstream-head ref from script path gclient-new-workdir.py symlinks each repo's .git/refs back to the source checkout, so the fixed refs/patches/upstream-head was shared across all worktrees. Parallel `e sync` runs in different worktrees clobbered each other's upstream-head, breaking `e patches` and check-patch-diff. Suffix the ref with an md5 of the script directory so each worktree writes a distinct ref into the shared refs dir. Fall back to the legacy ref name in guess_base_commit so existing checkouts keep working until next sync. * fixup: also write legacy upstream-head ref and note it in docs | 5 个月前 |
| docs: point pull requests guide to build tools (#50198) * docs: point pull requests guide to build tools * update for `--fork` | 6 个月前 |
| docs: add reclient docs, remove goma docs (#40948) * docs: add reclient docs, remove goma docs * Apply suggestions from code review Co-authored-by: Charles Kerr <charles@charleskerr.com> --------- Co-authored-by: Charles Kerr <charles@charleskerr.com> | 2 年前 |
| refactor: run sandboxed preload scripts without an Electron JavaScript bundle (#53974) Sandboxed renderers and service worker preload realms ran a webpack bundle (sandbox_bundle / preload_realm_bundle) that built the preload scripts' `process` object and `require`, assembled the `electron` module from the JavaScript API wrappers, registered the <webview> element and then compiled and ran each preload script. With the API modules now provided by their bindings, the rest moves to C++ (shell/renderer/preload_environment.cc): - `process` is a native EventEmitter carrying the same properties as before, plus getProcessMemoryInfo(); 'loaded', 'exit', 'document-start' and 'document-end' are emitted on it directly. - `require('electron')` returns a module object whose properties load their binding on first access. - Preload scripts are compiled with CreatePreloadScript() and called with (require, process, exports, module, global); failures are logged and reported as 'preload-error' as before. The only JavaScript Electron still evaluates in a sandboxed renderer is the <webview> element implementation, now its own `webview_bundle`, and only in renderers that enable `webviewTag`. The `process` npm polyfill is no longer needed. | 9 天前 |
| docs: remove reference to archived electron/i18n repo (#54217) | 3 天前 |
| test: run the spec suite with vitest (#54264) * test: run the spec suite with vitest Replace the in-process mocha runner with vitest driving a pool of Electron processes. - spec/vitest/electron-pool.ts is a vitest pool whose workers are 'electron spec/ --vitest-worker' browser processes talking to the CLI over a Node IPC channel (JSON, see ipc-serialization.ts, because the host Node cannot read Electron's newer V8 wire format). - spec/index.js keeps the pre-ready process setup and then hands the main process to vitest's worker runtime (spec/vitest/worker.ts). experimental.viteModuleRunner is off, so spec files are imported by Electron's own Node exactly as before (native ESM, type stripping, no Vite transform). - spec/vitest/mocha-compat.ts provides mocha's BDD globals (describe/it/ before/after, this.timeout()/this.skip(), done callbacks, resettable timeouts, hooks in declaration order, a macrotask between runnables) on top of vitest, so the spec files run unchanged. - Two projects run in sequence: everything not tagged 'serial' across several workers, then the 'serial' suites one file at a time. - script/spec-runner.js translates --files/-g into vitest filters, wraps the CLI in dbus_mock.py on Linux and reruns failures from vitest's JUnit report; leftover Electron processes are killed once per run (global-setup.js) and per worker process group. - spec-timings.json for shard balancing comes from timings-reporter.ts; mocha, its reporters and ELECTRON_FORCE_TEST_SUITE_EXIT are gone. * test: run the macOS app activation, hide and dock specs serially app.isActive(), app.hide()/show() and the dock are machine-wide state, so these suites cannot share the screen with other spec processes. The isActive spec also assumed the process starts out inactive, which a freshly launched worker on the CI hosts is not; hide first in that case. | 22 小时前 |
| docs: tidy up links (#26292) | 5 年前 |