diff --git a/.claude/skills/electron-chromium-upgrade/SKILL.md b/.claude/skills/electron-chromium-upgrade/SKILL.md index 212e833edb..52d4ed1a8d 100644 --- a/.claude/skills/electron-chromium-upgrade/SKILL.md +++ b/.claude/skills/electron-chromium-upgrade/SKILL.md @@ -7,14 +7,13 @@ description: Guide for performing Chromium version upgrades in the Electron proj ## Summary -Run `e sync --3` repeatedly, fixing patch conflicts as they arise, until it succeeds. Then run `e patches all` and commit changes atomically. +Run `e sync --3` repeatedly, fixing patch conflicts as they arise, until it succeeds. Then export patches and commit changes atomically. ## Success Criteria Phase One is complete when: - `e sync --3` exits with code 0 (no patch failures) -- `e patches all` has been run to export all changes -- All changes are committed per the commit guidelines below +- All changes are committed per the commit guidelines Do not stop until these criteria are met. @@ -30,12 +29,18 @@ The `roller/chromium/main` branch is created by automation to update Electron's - `patches/`: Patch files organized by target - `docs/development/patches.md`: Patch system documentation +## Pre-flight Checks + +Run these once at the start of each upgrade session: + +1. **Clear rerere cache** (if enabled): `git rerere clear` in both the electron and `..` repos. Stale recorded resolutions from a prior attempt can silently apply wrong merges. +2. **Ensure pre-commit hooks are installed**: Check that `.git/hooks/pre-commit` exists. If not, run `yarn husky` to install it. The hook runs `lint-staged` which handles clang-format for C++ files. + ## Workflow -1. Delete the `.git/rr-cache` in both the `electron` and `..` folder to ensure no accidental rerere replays occur from before this upgrade phase attempt started -2. Run `e sync --3` (the `--3` flag enables 3-way merge, always required) -3. If succeeds → skip to step 6 -4. If patch fails: +1. Run `e sync --3` (the `--3` flag enables 3-way merge, always required) +2. If succeeds → skip to step 5 +3. If patch fails: - Identify target repo and patch from error output - Analyze failure (see references/patch-analysis.md) - Fix conflict in target repo's working directory @@ -43,10 +48,8 @@ The `roller/chromium/main` branch is created by automation to update Electron's - Repeat until all patches for that repo apply - IMPORTANT: Once `git am --continue` succeeds you MUST run `e patches {target}` to export fixes - Return to step 1 -5. When `e sync --3` succeeds, run `e patches all` -6. **Read `references/phase-one-commit-guidelines.md` NOW**, then commit changes following those instructions exactly. - -Before committing any Phase One changes, you MUST read `references/phase-one-commit-guidelines.md` and follow its instructions exactly. +4. When `e sync --3` succeeds, run `e patches all` +5. **Read `references/phase-one-commit-guidelines.md` NOW**, then commit changes following those instructions exactly. ## Commands Reference @@ -56,6 +59,7 @@ Before committing any Phase One changes, you MUST read `references/phase-one-com | `git am --continue` | Continue after resolving conflict (run in target repo) | | `e patches {target}` | Export commits from target repo to patch files | | `e patches all` | Export all patches from all targets | +| `e patches {target} --commit-updates` | Export patches and auto-commit trivial changes | | `e patches --list-targets` | List targets and config paths | ## Patch System Mental Model @@ -81,24 +85,20 @@ Fix existing patches 99% of the time rather than creating new ones. 2. **Never change TODO assignees**: `TODO(name)` must retain original name 3. **Update descriptions**: If upstream changed (e.g., `DCHECK` → `CHECK_IS_TEST`), update patch commit message to reflect current state -## Final Deliverable - -After Phase One, write a summary of every change: what was fixed, why, reasoning, and Chromium CL links. - # Electron Chromium Upgrade: Phase Two ## Summary -Run `e build -k 999` repeatedly, fixing build issues as they arise, until it succeeds. Then run `e start --version` to validate Electron launches and commit changes atomically. +Run `e build -k 999 -- --quiet` repeatedly, fixing build issues as they arise, until it succeeds. Then run `e start --version` to validate Electron launches and commit changes atomically. Run Phase Two immediately after Phase One is complete. ## Success Criteria Phase Two is complete when: -- `e build -k 999` exits with code 0 (no build failures) +- `e build -k 999 -- --quiet` exits with code 0 (no build failures) - `e start --version` has been run to check Electron launches -- All changes are committed per the commit guidelines below +- All changes are committed per the commit guidelines Do not stop until these criteria are met. Do not delete code or features, never comment out code in order to take short cut. Make all existing code, logic and intention work. @@ -112,8 +112,7 @@ The `roller/chromium/main` branch is created by automation to update Electron's ## Workflow -1. Run `e build -k 999` (the `-k 999` flag is a flag to ninja to say "do not stop until you find that many errors" it is an attempt to get as much error - context as possible for each time we run build) +1. Run `e build -k 999 -- --quiet` (the `--quiet` flag suppresses per-target status lines, showing only errors and the final result) 2. If succeeds → skip to step 6 3. If build fails: - Identify underlying file in "electron" from the compilation error message @@ -126,27 +125,17 @@ The `roller/chromium/main` branch is created by automation to update Electron's 4. **CRITICAL**: After ANY commit (especially patch commits), immediately run `git status` in the electron repo - Look for other modified `.patch` files that only have index/hunk header changes - These are dependent patches affected by your fix - - Commit them immediately with: `git commit -am "chore: update patch hunk headers"` - - This prevents losing track of necessary updates + - Commit them immediately with: `git commit -am "chore: update patches (trivial only)"` 5. Return to step 1 6. When `e build` succeeds, run `e start --version` 7. Check if you have any pending changes in the Chromium repo by running `git status` - If you have changes follow the instructions below in "A. Patch Fixes" to correctly commit those modifications into the appropriate patch file -Before committing any Phase Two changes, you MUST read `references/phase-two-commit-guidelines.md` and follow its instructions exactly. - -## Build Error Detection - -When monitoring `e build -k 999` output, filter for errors using this regex pattern: -error:|FAILED:|fatal:|subcommand failed|build finished - -The build output is extremely verbose. Filtering is essential to catch errors quickly. - ## Commands Reference | Command | Purpose | |---------|---------| -| `e build -k 999` | Builds Electron and won't stop until either all targets attempted or 999 errors found | +| `e build -k 999 -- --quiet` | Build Electron, continue on errors, suppress status lines | | `e build -t {target}.o` | Build just one specific target to verify a fix | | `e start --version` | Validate Electron launches after successful build | @@ -163,28 +152,21 @@ When the error is in a file that Electron patches (check with `grep -l "filename git add git commit --fixup= GIT_SEQUENCE_EDITOR=: git rebase --autosquash --autostash -i ^ -3. Export the updated patch: e patches chromium -4. Commit the updated patch file in the electron repo following the `references/phase-one-commit-guidelines.md`, then commit changes following those instructions exactly. **READ THESE GUIDELINES BEFORE COMMITTING THESE CHANGES** + ``` +3. Export the updated patch: `e patches chromium` +4. Commit the updated patch file following `references/phase-one-commit-guidelines.md`. To find the original patch commit to fixup: `git log --oneline | grep -i "keyword from patch name"` The base commit for rebase is the Chromium commit before patches were applied. Find it by checking the `refs/patches/upstream-head` ref. -B. Electron Code Fixes (for files in shell/, electron/, etc.) +### B. Electron Code Fixes (for files in shell/, electron/, etc.) When the error is in Electron's own source code: 1. Edit files directly in the electron repo 2. Commit directly (no patch export needed) -Dependent Patch Updates - -IMPORTANT: When you modify a patch, other patches that apply to the same file may have their hunk headers invalidated. After committing a patch fix: - -1. Run git status in the electron repo -2. Look for other modified .patch files with just index/hunk header changes -3. Commit these with: git commit -m "chore: update patch hunk headers" - # Critical: Read Before Committing - Before ANY Phase One commits: Read `references/phase-one-commit-guidelines.md` @@ -196,4 +178,4 @@ This skill has additional reference files in `references/`: - phase-one-commit-guidelines.md - Commit format for Phase One - phase-two-commit-guidelines.md - Commit format for Phase Two -Read these when referenced in the workflow steps. \ No newline at end of file +Read these when referenced in the workflow steps. diff --git a/.claude/skills/electron-chromium-upgrade/references/patch-analysis.md b/.claude/skills/electron-chromium-upgrade/references/patch-analysis.md index 45fae36e39..d0504734af 100644 --- a/.claude/skills/electron-chromium-upgrade/references/patch-analysis.md +++ b/.claude/skills/electron-chromium-upgrade/references/patch-analysis.md @@ -17,6 +17,56 @@ Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/{CL_NUMBER} ``` +## Critical: Resolve by Intent, Not by Mechanical Merge + +When resolving a patch conflict, do NOT blindly preserve the patch's old code. Instead: + +1. **Understand the upstream CL's full scope** — not just the conflicting hunk. + Run `git show --stat` and read diffs for all affected files. + Upstream may have removed structs, members, or methods that the patch + references in other hunks or files. + +2. **Re-read the patch commit message** to understand its *intent* — what + behavior does it need to preserve or add? + +3. **Implement the intent against the new upstream code.** If the patch's + purpose is "add a feature flag guard", add only the guard — don't also + restore old code inside the guard that upstream separately removed. + +### Lesson: Upstream Removals Break Patch References + +- **Trigger:** Patch conflict involves an upstream refactor (not just context drift) +- **Strategy:** After identifying the upstream CL, check its full diff for + removed types, members, and methods. If the patch's old code references + something removed, the resolution must use the new upstream mechanism. +- **Evidence:** An upstream CL removed a `HeadlessModeWindow` struct from a + header, but the conflict was only in a `.mm` file. Mechanically keeping the + patch's old line (`headless_mode_window_ = ...`) produced code referencing + a nonexistent type — caught only on review, not at patch-apply time. + +### Lesson: Separate Patch Purpose from Patch Implementation + +- **Trigger:** Conflict between "upstream simplified code" vs "patch has older code" +- **Strategy:** Identify the *minimal* change the patch needs. If the patch + wraps code in a conditional, only add the conditional — don't restore old + code that was inside the conditional but was separately cleaned up upstream. +- **Evidence:** An occlusion patch needed only a feature flag check, but the + old patch also contained a version check that upstream intentionally removed. + Mechanically preserving the old patch code re-added the removed check. + +### Lesson: Finish the Adaptation at Conflict Time + +- **Trigger:** A patch conflict involves an upstream API removal or replacement +- **Strategy:** When resolving the conflict, fully adapt the patch to use the + new API in the same commit. Don't remove the old code and leave behind stale + references that will "be fixed in Phase Two." Each patch fix commit should be + a complete resolution. +- **Evidence:** A safestorage patch conflicted because Chromium removed Keychain V1. + The conflict was resolved by removing V1 hunks, but the remaining code still + called V1 methods (`FindGenericPassword` with 3 args, `ItemDelete` with + `SecKeychainItemRef`). These should have been adapted to V2 APIs in the same + commit, not deferred. + ## Common Failure Patterns | Pattern | Cause | Solution | diff --git a/.claude/skills/electron-chromium-upgrade/references/phase-one-commit-guidelines.md b/.claude/skills/electron-chromium-upgrade/references/phase-one-commit-guidelines.md index b8362ea4e7..c628a2127e 100644 --- a/.claude/skills/electron-chromium-upgrade/references/phase-one-commit-guidelines.md +++ b/.claude/skills/electron-chromium-upgrade/references/phase-one-commit-guidelines.md @@ -4,19 +4,65 @@ Only follow these instructions if there are uncommitted changes to `patches/` af Ignore other instructions about making commit messages, our guidelines are CRITICALLY IMPORTANT and must be followed. -## Atomic Commits +## Each Commit Must Be Complete -For each fix made to a patch, create a separate commit: +When resolving a patch conflict, fully adapt the patch to the new upstream code in the same commit. If the upstream change removes an API the patch uses, update the patch to use the replacement API now — don't leave stale references knowing they'll need fixing later. The goal is that each commit represents a finished resolution, not a partial one that defers known work to a future phase. + +## Commit Message Style + +**Titles** follow the 60/80-character guideline: simple changes fit within 60 characters, otherwise the limit is 80 characters. + +Always include a `Co-Authored-By` trailer identifying the AI model that assisted (e.g., `Co-Authored-By: `). + +### Patch conflict fixes + +Use `fix(patch):` prefix. The title should name the upstream change, not your response to it: ``` -fix(patch-conflict): {concise title} - -{Brief explanation, 1-2 paragraphs max} +fix(patch): {topic headline} Ref: {Chromium CL link} + +Co-Authored-By: ``` -IMPORTANT: Ensure that any changes made to patch content as a result of a change in Chromium is committed individually. Each change should have it's own commit message and it's own REF. +Only add a description body if it provides clarity beyond the title. For straightforward context drift or simple API renames, the title + Ref is sufficient. + +Examples: +- `fix(patch): constant moved to header` +- `fix(patch): headless mode refactor upstream` +- `fix(patch): V1 Keychain removal` + +### Upstreamed patch removal + +When patches are no longer needed (applied cleanly with "already applied" or confirmed upstreamed), group ALL removals into a single commit: + +``` +chore: remove upstreamed patch +``` + +or (if multiple): + +``` +chore: remove upstreamed patches +``` + +If the patch file did NOT contain a `Reviewed-on: https://chromium-review.googlesource.com/c/chromium/...` link, add a `Ref:` in the commit. If it did (i.e. cherry-picks), no `Ref:` is needed. + +### Trivial patch updates + +After all fix commits, stage remaining trivial changes (index, line numbers, context only): + +```bash +git add patches +git commit -m "chore: update patches (trivial only)" +``` + +**Conflict resolution can produce trivial results.** A `git am` conflict doesn't always mean the patch content changed — context drift alone can cause a conflict. After resolving and exporting, inspect the patch diff: if only index hashes, line numbers, and context lines changed (not the patch's own `+`/`-` lines), it's trivial and belongs here, not in a `fix(patch):` commit. + +## Atomic Commits + +Each patch conflict fix gets its own commit with its own Ref. IMPORTANT: Try really hard to find the CL reference per the instructions below. Each change you made should in theory have been in response to a change made in Chromium that you identified or can identify. Try for a while to identify and include the ref in the commit message. Do not give up easily. @@ -30,23 +76,27 @@ Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/XXXXXXX If no CL found after searching: `Ref: Unable to locate CL` -## Final Cleanup +## Example Commits -After all fix commits, stage remaining changes: - -```bash -git add patches -git commit -m "chore: update patch hunk headers" -``` - -## Example Commit +### Patch conflict fix (simple — title is sufficient) ``` -fix(patch-conflict): update web_contents_impl.cc context for navigation refactor +fix(patch): constant moved to header -The upstream navigation code was refactored to use NavigationRequest directly -instead of going through NavigationController. Updated surrounding context -to match new code structure. +Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7536483 -Ref: https://chromium-review.googlesource.com/c/chromium/src/+/1234567 -``` \ No newline at end of file +Co-Authored-By: +``` + +### Patch conflict fix (complex — description adds value) + +``` +fix(patch): V1 Keychain removal + +Upstream deleted the V1 Keychain API. Removed V1 hunks and adapted +keychain_password_mac.mm to use KeychainV2 APIs. + +Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7540447 + +Co-Authored-By: +``` diff --git a/.claude/skills/electron-chromium-upgrade/references/phase-two-commit-guidelines.md b/.claude/skills/electron-chromium-upgrade/references/phase-two-commit-guidelines.md index 7b05842986..d28e8a2f6f 100644 --- a/.claude/skills/electron-chromium-upgrade/references/phase-two-commit-guidelines.md +++ b/.claude/skills/electron-chromium-upgrade/references/phase-two-commit-guidelines.md @@ -4,41 +4,37 @@ Only follow these instructions if there are uncommitted changes in the Electron Ignore other instructions about making commit messages, our guidelines are CRITICALLY IMPORTANT and must be followed. +## Commit Message Style + +**Titles** follow the 60/80-character guideline: simple changes fit within 60 characters, otherwise the limit is 80 characters. Exception: upstream Chromium CL titles are used verbatim even if longer. + +Always include a `Co-Authored-By` trailer identifying the AI model that assisted (e.g., `Co-Authored-By: `). + ## Two Commit Types ### For Electron Source Changes (shell/, electron/, etc.) ``` -{CL-Number}: {concise description of API change} - -{Brief explanation of what upstream changed and how Electron was adapted} +{CL-Number}: {upstream CL's original title} Ref: {Chromium CL link} + +Co-Authored-By: ``` -IMPORTANT: Ensure that any change made to electron as a result of a change in Chromium is committed individually. Each change should have it's own commit message and it's own REF. Logically grouped into commits that make sense rather than one giant commit. +Use the **upstream CL's original commit title** — do not paraphrase or rewrite it. To find it: `git log -1 --format=%s `. -IMPORTANT: Try really hard to find the CL reference per the instructions below. Each change you made should in theory have been in response to a change made in Chromium that you identified or can identify. Try for a while to identify and include the ref in the commit message. Do not give up easily. +Only add a description body if it provides clarity beyond what the title already says (e.g., when Electron's adaptation is non-obvious). For simple renames, method additions, or straightforward API updates, the title + Ref link is sufficient. -You may include multiple "Ref" links if required. +Each change should have its own commit and its own Ref. Logically group into commits that make sense rather than one giant commit. You may include multiple "Ref" links if required. -For a CL link in the format `https://chromium-review.googlesource.com/c/chromium/src/+/2958369` the "CL-Number" is `2958369` +For a CL link in the format `https://chromium-review.googlesource.com/c/chromium/src/+/2958369` the "CL-Number" is `2958369`. + +IMPORTANT: Try really hard to find the CL reference. Each change you made should in theory have been in response to a change in Chromium. Do not give up easily. ### For Patch Updates (patches/chromium/*.patch) -Use the same fixup workflow as Phase One: -1. Fix in Chromium source tree -2. Fixup commit + rebase -3. Export with `e patches chromium` -4. Commit the patch file: - -``` -fix(patch-update): {concise description} - -{Brief explanation} - -Ref: {Chromium CL link} -``` +Use the same fixup workflow as Phase One and follow `references/phase-one-commit-guidelines.md` for the commit message format (`fix(patch):` prefix, topic style). ## Dependent Patch Header Updates @@ -46,37 +42,43 @@ After any patch modification, check for other affected patches: ```bash git status -# If other .patch files show as modified with only hunk header changes: +# If other .patch files show as modified with only index, line number, and context changes: git add patches/ -git commit -m "chore: update patch hunk headers" +git commit -m "chore: update patches (trivial only)" ``` ## Finding CL References Use git log or git blame on Chromium source files. Look for: +``` Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/XXXXXXX +``` -If no CL found after searching: Ref: Unable to locate CL +If no CL found after searching: `Ref: Unable to locate CL` ## Example Commits -### Electron Source Fix +### Electron Source Fix (simple — title is self-explanatory) -fix: update GetPlugins to GetPluginsAsync for API change +``` +7535923: Rename ozone buildflags -The upstream Chromium API changed: -- Old: GetPlugins(callback) - took a callback -- New: GetPluginsAsync(callback) - async version takes a callback +Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7535923 -Ref: https://chromium-review.googlesource.com/c/chromium/src/+/1234567 +Co-Authored-By: +``` -### Patch Fix +### Electron Source Fix (complex — description adds value) -fix(patch-conflict): update picture-in-picture for gesture handling refactor +``` +7534194: Convert some functions in ui::Clipboard to async -Upstream added new gesture handling code that accesses live caption dialog. -The live caption functionality is disabled in Electron's patch, so wrapped -the new code in #if 0 guards to match existing pattern. +Adapted ExtractCustomPlatformNames calls to use RunLoop pattern +consistent with existing ReadImage implementation, since upstream +converted the API from synchronous return to callback-based. -Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7654321 +Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7534194 + +Co-Authored-By: +``` diff --git a/DEPS b/DEPS index 434d5b5697..9e444574ac 100644 --- a/DEPS +++ b/DEPS @@ -2,7 +2,7 @@ gclient_gn_args_from = 'src' vars = { 'chromium_version': - '146.0.7666.0', + '147.0.7687.0', 'node_version': 'v24.13.1', 'nan_version': diff --git a/patches/boringssl/expose_ripemd160.patch b/patches/boringssl/expose_ripemd160.patch index 06e316820d..53b5c2cdfd 100644 --- a/patches/boringssl/expose_ripemd160.patch +++ b/patches/boringssl/expose_ripemd160.patch @@ -82,7 +82,7 @@ index feaf17c72cecb8099bc11ac10747fbad719ddca9..891a73f229e3f0838cb2fa99b8fb24fd void EVP_MD_do_all(void (*callback)(const EVP_MD *cipher, const char *name, diff --git a/include/openssl/digest.h b/include/openssl/digest.h -index a86c18926e7798a3b0aae70c53870e03b5acd0ab..f4f27f9e803533d8db50d89e7a0125384a025a46 100644 +index 40670234682ac00dec268dea43f0ee1e39e8684f..293fbc9faf01ea0ca4e58b0a65b14597fe4916a6 100644 --- a/include/openssl/digest.h +++ b/include/openssl/digest.h @@ -48,6 +48,9 @@ OPENSSL_EXPORT const EVP_MD *EVP_blake2b256(void); diff --git a/patches/chromium/.patches b/patches/chromium/.patches index e4556a9642..c60e2fdfac 100644 --- a/patches/chromium/.patches +++ b/patches/chromium/.patches @@ -143,6 +143,4 @@ fix_check_for_file_existence_before_setting_mtime.patch fix_linux_tray_id.patch expose_gtk_ui_platform_field.patch patch_osr_control_screen_info.patch -loaf_add_feature_to_enable_sourceurl_for_all_protocols.patch -cherry-pick-e045399a1ecb.patch refactor_allow_customizing_config_in_freedesktopsecretkeyprovider.patch diff --git a/patches/chromium/add_contentgpuclient_precreatemessageloop_callback.patch b/patches/chromium/add_contentgpuclient_precreatemessageloop_callback.patch index 98f924cc3d..e011860dbf 100644 --- a/patches/chromium/add_contentgpuclient_precreatemessageloop_callback.patch +++ b/patches/chromium/add_contentgpuclient_precreatemessageloop_callback.patch @@ -10,7 +10,7 @@ Allows Electron to restore WER when ELECTRON_DEFAULT_ERROR_MODE is set. This should be upstreamed. diff --git a/content/gpu/gpu_main.cc b/content/gpu/gpu_main.cc -index b9fbc9e5b1d57e0ed842b08f0e3709d2bcf25aa5..bee847f2c72ae6856eb40d6e7e4afa6927965ea8 100644 +index 7265019647734154f64108efd7e6376b7a9fc1ba..398aaff3af5bff791f114e4023d0e07be86dd79a 100644 --- a/content/gpu/gpu_main.cc +++ b/content/gpu/gpu_main.cc @@ -272,6 +272,10 @@ int GpuMain(MainFunctionParams parameters) { diff --git a/patches/chromium/add_didinstallconditionalfeatures.patch b/patches/chromium/add_didinstallconditionalfeatures.patch index 3af491886b..03561cf8f1 100644 --- a/patches/chromium/add_didinstallconditionalfeatures.patch +++ b/patches/chromium/add_didinstallconditionalfeatures.patch @@ -23,10 +23,10 @@ index 8077ed85e45e56d6cccb691223216c1f6a94b5ee..dd4cee346f16df703d414bf206bbe6c9 int32_t world_id) {} virtual void DidClearWindowObject() {} diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc -index 3bb9a589b1a8b90c5f70e556f44232911eb62d3a..4d2788bf2795326e7094a24fc9551cad9fcebc90 100644 +index 757ee4f4e5862d8ebaf8279e3f9e8b950066a0e9..bc18237e7d68bb4c07f3488c9a23d072e2867ca5 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc -@@ -4754,6 +4754,12 @@ void RenderFrameImpl::DidCreateScriptContext(v8::Local context, +@@ -4756,6 +4756,12 @@ void RenderFrameImpl::DidCreateScriptContext(v8::Local context, observer.DidCreateScriptContext(context, world_id); } @@ -40,10 +40,10 @@ index 3bb9a589b1a8b90c5f70e556f44232911eb62d3a..4d2788bf2795326e7094a24fc9551cad int world_id) { for (auto& observer : observers_) diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h -index 6b58b8f00d16ce5a39e9d9879cf7cecdd5052e50..8adf1f8691fc36599f75cae18be9b8230cae1e20 100644 +index 521b137f242c3feaa9e8ad29a0904597de70bd93..d2f9204e144f90290336e75d21119ef0f99a1d24 100644 --- a/content/renderer/render_frame_impl.h +++ b/content/renderer/render_frame_impl.h -@@ -607,6 +607,8 @@ class CONTENT_EXPORT RenderFrameImpl +@@ -606,6 +606,8 @@ class CONTENT_EXPORT RenderFrameImpl void DidObserveLayoutShift(double score, bool after_input_or_scroll) override; void DidCreateScriptContext(v8::Local context, int world_id) override; @@ -123,10 +123,10 @@ index e7b822d45d608a78009576c2a299201014dd93ec..54be144d5b24b369e12d551e6c15d2d8 int32_t world_id) override; diff --git a/third_party/blink/renderer/core/loader/empty_clients.h b/third_party/blink/renderer/core/loader/empty_clients.h -index 00427a65059e03a3b5733de7e9fd061aa91da95c..cb14cd270c69ee9ec20ea2e52a968d9dd721182e 100644 +index 1122107b258e34e389eb5db2204c3c9d5782a688..3293587e03aab9104fd2baffd215782cc8266a6d 100644 --- a/third_party/blink/renderer/core/loader/empty_clients.h +++ b/third_party/blink/renderer/core/loader/empty_clients.h -@@ -430,6 +430,8 @@ class CORE_EXPORT EmptyLocalFrameClient : public LocalFrameClient { +@@ -426,6 +426,8 @@ class CORE_EXPORT EmptyLocalFrameClient : public LocalFrameClient { void DidCreateScriptContext(v8::Local, int32_t world_id) override {} diff --git a/patches/chromium/allow_disabling_blink_scheduler_throttling_per_renderview.patch b/patches/chromium/allow_disabling_blink_scheduler_throttling_per_renderview.patch index b4b6712adf..30e4078ec3 100644 --- a/patches/chromium/allow_disabling_blink_scheduler_throttling_per_renderview.patch +++ b/patches/chromium/allow_disabling_blink_scheduler_throttling_per_renderview.patch @@ -116,10 +116,10 @@ index 932658273154ef2e022358e493a8e7c00c86e732..57bbfb5cde62c9496c351c861880a189 // Visibility ----------------------------------------------------------- diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc -index 71d165e99309bc632b8abc707f6b8695bc8a88a0..6aae8ee3c34d11ee927822f54e76f8e136b6faf9 100644 +index af97dfb66e5b43bf5275d5f66cd95f7ee6289da8..d5d5a18a8d63cbb056cd4c3eca739f5d7bf1f26b 100644 --- a/third_party/blink/renderer/core/exported/web_view_impl.cc +++ b/third_party/blink/renderer/core/exported/web_view_impl.cc -@@ -2531,6 +2531,10 @@ void WebViewImpl::SetPageLifecycleStateInternal( +@@ -2515,6 +2515,10 @@ void WebViewImpl::SetPageLifecycleStateInternal( TRACE_EVENT2("navigation", "WebViewImpl::SetPageLifecycleStateInternal", "old_state", old_state, "new_state", new_state); @@ -130,7 +130,7 @@ index 71d165e99309bc632b8abc707f6b8695bc8a88a0..6aae8ee3c34d11ee927822f54e76f8e1 bool storing_in_bfcache = new_state->is_in_back_forward_cache && !old_state->is_in_back_forward_cache; bool restoring_from_bfcache = !new_state->is_in_back_forward_cache && -@@ -4193,10 +4197,23 @@ PageScheduler* WebViewImpl::Scheduler() const { +@@ -4188,10 +4192,23 @@ PageScheduler* WebViewImpl::Scheduler() const { return GetPage()->GetPageScheduler(); } @@ -155,10 +155,10 @@ index 71d165e99309bc632b8abc707f6b8695bc8a88a0..6aae8ee3c34d11ee927822f54e76f8e1 // Do not throttle if the page should be painting. bool is_visible = diff --git a/third_party/blink/renderer/core/exported/web_view_impl.h b/third_party/blink/renderer/core/exported/web_view_impl.h -index 21d84d57e83dedbab658c25e87ac7c469db778d0..dae614e1badff16d581b559245da80bbb220cf59 100644 +index 91e365742891468bac13f7a9e6de4d2c390c7e7c..9b6c8ebc91d2421fc71e5b2593f9f73ffa889223 100644 --- a/third_party/blink/renderer/core/exported/web_view_impl.h +++ b/third_party/blink/renderer/core/exported/web_view_impl.h -@@ -445,6 +445,7 @@ class CORE_EXPORT WebViewImpl final : public WebView, +@@ -446,6 +446,7 @@ class CORE_EXPORT WebViewImpl final : public WebView, LocalDOMWindow* PagePopupWindow() const; PageScheduler* Scheduler() const override; @@ -166,7 +166,7 @@ index 21d84d57e83dedbab658c25e87ac7c469db778d0..dae614e1badff16d581b559245da80bb void SetVisibilityState(mojom::blink::PageVisibilityState visibility_state, bool is_initial_state) override; mojom::blink::PageVisibilityState GetVisibilityState() override; -@@ -959,6 +960,8 @@ class CORE_EXPORT WebViewImpl final : public WebView, +@@ -956,6 +957,8 @@ class CORE_EXPORT WebViewImpl final : public WebView, // If true, we send IPC messages when |preferred_size_| changes. bool send_preferred_size_changes_ = false; diff --git a/patches/chromium/allow_electron_to_depend_on_components_os_crypt_sync.patch b/patches/chromium/allow_electron_to_depend_on_components_os_crypt_sync.patch index ca5fb38aa2..b6507a9aa3 100644 --- a/patches/chromium/allow_electron_to_depend_on_components_os_crypt_sync.patch +++ b/patches/chromium/allow_electron_to_depend_on_components_os_crypt_sync.patch @@ -10,7 +10,7 @@ so we can remove this patch once we migrate our code to use os_crypt async. diff --git a/components/os_crypt/sync/BUILD.gn b/components/os_crypt/sync/BUILD.gn -index 23aa391aaf380f87310fb295277809f8b105d6e8..bb308187837371ecfa2482affaf35ac7ed98c1f3 100644 +index 3b1c34e213b0990b8f0823228a1a02c5bf0c7198..ea48241edef8eaf7bfc8285d7cbbea567d3a7cbb 100644 --- a/components/os_crypt/sync/BUILD.gn +++ b/components/os_crypt/sync/BUILD.gn @@ -10,6 +10,7 @@ import("//components/os_crypt/sync/features.gni") diff --git a/patches/chromium/allow_setting_secondary_label_via_simplemenumodel.patch b/patches/chromium/allow_setting_secondary_label_via_simplemenumodel.patch index 66a4c97a99..878f1f7727 100644 --- a/patches/chromium/allow_setting_secondary_label_via_simplemenumodel.patch +++ b/patches/chromium/allow_setting_secondary_label_via_simplemenumodel.patch @@ -6,10 +6,10 @@ Subject: Allow setting secondary label via SimpleMenuModel Builds on https://chromium-review.googlesource.com/c/chromium/src/+/2208976 diff --git a/ui/menus/simple_menu_model.cc b/ui/menus/simple_menu_model.cc -index 1e43ac04035446ea68a6aa3b1b252f8bc9e22099..cdf45574fde7459019ecd57ad14b8fec5e04c8af 100644 +index 156e5068000ceb89a096f51d358ae69a3f0cf5d8..4609ad44d0f75789070e28fa8e485a98cc60c11a 100644 --- a/ui/menus/simple_menu_model.cc +++ b/ui/menus/simple_menu_model.cc -@@ -55,6 +55,11 @@ std::u16string SimpleMenuModel::Delegate::GetLabelForCommandId( +@@ -57,6 +57,11 @@ std::u16string SimpleMenuModel::Delegate::GetLabelForCommandId( return std::u16string(); } @@ -21,7 +21,7 @@ index 1e43ac04035446ea68a6aa3b1b252f8bc9e22099..cdf45574fde7459019ecd57ad14b8fec ImageModel SimpleMenuModel::Delegate::GetIconForCommandId( int command_id) const { return ImageModel(); -@@ -348,6 +353,11 @@ void SimpleMenuModel::SetAcceleratorAt(size_t index, +@@ -350,6 +355,11 @@ void SimpleMenuModel::SetAcceleratorAt(size_t index, MenuItemsChanged(); } @@ -33,7 +33,7 @@ index 1e43ac04035446ea68a6aa3b1b252f8bc9e22099..cdf45574fde7459019ecd57ad14b8fec void SimpleMenuModel::SetMinorText(size_t index, const std::u16string& minor_text) { items_[ValidateItemIndex(index)].minor_text = minor_text; -@@ -454,6 +464,12 @@ std::u16string SimpleMenuModel::GetLabelAt(size_t index) const { +@@ -458,6 +468,12 @@ std::u16string SimpleMenuModel::GetLabelAt(size_t index) const { return items_[ValidateItemIndex(index)].label; } @@ -47,7 +47,7 @@ index 1e43ac04035446ea68a6aa3b1b252f8bc9e22099..cdf45574fde7459019ecd57ad14b8fec return items_[ValidateItemIndex(index)].minor_text; } diff --git a/ui/menus/simple_menu_model.h b/ui/menus/simple_menu_model.h -index 596663d62632e4331f8aad421298d1fcdc9ab05e..469778f0c13e6d3fd30023af9b19c4a4cb7969be 100644 +index 8ddab95a135c34c8153dfe208104f0233e511093..59dc68ce7d69c10fe6f3b286c790da155e2d16f2 100644 --- a/ui/menus/simple_menu_model.h +++ b/ui/menus/simple_menu_model.h @@ -99,6 +99,7 @@ class COMPONENT_EXPORT(UI_MENUS) SimpleMenuModel : public MenuModel { @@ -68,7 +68,7 @@ index 596663d62632e4331f8aad421298d1fcdc9ab05e..469778f0c13e6d3fd30023af9b19c4a4 // Sets the minor text for the item at |index|. void SetMinorText(size_t index, const std::u16string& minor_text); -@@ -274,6 +278,7 @@ class COMPONENT_EXPORT(UI_MENUS) SimpleMenuModel : public MenuModel { +@@ -276,6 +280,7 @@ class COMPONENT_EXPORT(UI_MENUS) SimpleMenuModel : public MenuModel { ui::MenuSeparatorType GetSeparatorTypeAt(size_t index) const override; int GetCommandIdAt(size_t index) const override; std::u16string GetLabelAt(size_t index) const override; @@ -76,7 +76,7 @@ index 596663d62632e4331f8aad421298d1fcdc9ab05e..469778f0c13e6d3fd30023af9b19c4a4 std::u16string GetMinorTextAt(size_t index) const override; ImageModel GetMinorIconAt(size_t index) const override; bool IsItemDynamicAt(size_t index) const override; -@@ -321,6 +326,7 @@ class COMPONENT_EXPORT(UI_MENUS) SimpleMenuModel : public MenuModel { +@@ -324,6 +329,7 @@ class COMPONENT_EXPORT(UI_MENUS) SimpleMenuModel : public MenuModel { ItemType type = TYPE_COMMAND; std::u16string label; ui::Accelerator accelerator; diff --git a/patches/chromium/blink_local_frame.patch b/patches/chromium/blink_local_frame.patch index c574a3da2a..877b1bf4fa 100644 --- a/patches/chromium/blink_local_frame.patch +++ b/patches/chromium/blink_local_frame.patch @@ -49,7 +49,7 @@ index ac5d88520a785e12b66ebd96c92c46319a08311c..5c582e4f249c28a5739da2da4e600ee2 // its owning reference back to our owning LocalFrame. client_->Detached(type); diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc -index b44d08b5d44830e38b87e15e6a8e3a1a09ac9b79..ed1bc8e58a982091dd00134b4915ddc758bfe507 100644 +index 0be460ef929e13fc07e8114764dc5600edcce016..b9370cc9d15601cfccde02b28cdd92bfaf3208f9 100644 --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc @@ -778,10 +778,6 @@ bool LocalFrame::DetachImpl(FrameDetachType type) { diff --git a/patches/chromium/build_add_electron_tracing_category.patch b/patches/chromium/build_add_electron_tracing_category.patch index 3b72bc08e8..000400ab54 100644 --- a/patches/chromium/build_add_electron_tracing_category.patch +++ b/patches/chromium/build_add_electron_tracing_category.patch @@ -8,7 +8,7 @@ categories in use are known / declared. This patch is required for us to introduce a new Electron category for Electron-specific tracing. diff --git a/base/trace_event/builtin_categories.h b/base/trace_event/builtin_categories.h -index 56408734b26428933a1fb8c04cee317c659feea7..0fa09a8d86241456293119edecf209f8d0790c0e 100644 +index e14d2d0b5eaadb11b93ad9031f10706f9f8ed7df..9e033d3ffd9f733fedd0b5ac0af8ad4386f49ae4 100644 --- a/base/trace_event/builtin_categories.h +++ b/base/trace_event/builtin_categories.h @@ -133,6 +133,7 @@ PERFETTO_DEFINE_CATEGORIES_IN_NAMESPACE_WITH_ATTRS( diff --git a/patches/chromium/build_add_public_config_simdutf_config.patch b/patches/chromium/build_add_public_config_simdutf_config.patch index de63ade977..55b5931f45 100644 --- a/patches/chromium/build_add_public_config_simdutf_config.patch +++ b/patches/chromium/build_add_public_config_simdutf_config.patch @@ -11,7 +11,7 @@ To accomplish this, we need to make simdutf's config public here for use by third_party/electron_node. diff --git a/third_party/simdutf/BUILD.gn b/third_party/simdutf/BUILD.gn -index 68f1ed4e012cff5e0abd64a153a329518860689d..eeb846525e58f038733318915a770bafa22cafc5 100644 +index 05215d2610d5c4bed1381b6d3af39441bc1eb8c5..bbb3495511da95d56728eb092979bb1e5dd650c2 100644 --- a/third_party/simdutf/BUILD.gn +++ b/third_party/simdutf/BUILD.gn @@ -8,9 +8,14 @@ source_set("header") { diff --git a/patches/chromium/build_allow_electron_mojom_interfaces_to_depend_on_blink.patch b/patches/chromium/build_allow_electron_mojom_interfaces_to_depend_on_blink.patch index 41ccbc52e5..e184ad52c0 100644 --- a/patches/chromium/build_allow_electron_mojom_interfaces_to_depend_on_blink.patch +++ b/patches/chromium/build_allow_electron_mojom_interfaces_to_depend_on_blink.patch @@ -10,10 +10,10 @@ Needed for: 2) //electron/shell/common:web_contents_utility diff --git a/content/public/common/BUILD.gn b/content/public/common/BUILD.gn -index afa85a15f8064b6a1b3f3ddd34797f0008af94d1..51946114bfd1564e4e5352ecae934a5d89b4ce03 100644 +index ab27fe9ec8680eee6ddde2975e16edc2f6468621..45d0d6f6da8ba72f243699a6f48187f38c85c390 100644 --- a/content/public/common/BUILD.gn +++ b/content/public/common/BUILD.gn -@@ -358,6 +358,8 @@ mojom("interfaces") { +@@ -366,6 +366,8 @@ mojom("interfaces") { "//content/common/*", "//extensions/common:mojom", "//extensions/common:mojom_blink", diff --git a/patches/chromium/build_disable_thin_lto_mac.patch b/patches/chromium/build_disable_thin_lto_mac.patch index 76c8038268..e5257a50f5 100644 --- a/patches/chromium/build_disable_thin_lto_mac.patch +++ b/patches/chromium/build_disable_thin_lto_mac.patch @@ -11,10 +11,10 @@ This patch can (and should) be removed when we can prevent those symbols from being stripped in the release build. diff --git a/build/config/compiler/compiler.gni b/build/config/compiler/compiler.gni -index c26e04c0556f7a5edf131ef42a375a71bf536da5..9028f13dfee04a33874a4d3d996cf223cc506928 100644 +index cf363be5e8ecd7c64aa2c326de19192dc5844caa..fe88d3c2ae707e406af2e875de05d23f597688e6 100644 --- a/build/config/compiler/compiler.gni +++ b/build/config/compiler/compiler.gni -@@ -90,7 +90,7 @@ declare_args() { +@@ -103,7 +103,7 @@ declare_args() { # Chrome's clang. crbug.com/1033839 use_thin_lto = is_cfi || (is_clang && is_official_build && chrome_pgo_phase != 1 && diff --git a/patches/chromium/build_do_not_depend_on_packed_resource_integrity.patch b/patches/chromium/build_do_not_depend_on_packed_resource_integrity.patch index bb936f12b8..1a8b9b7f39 100644 --- a/patches/chromium/build_do_not_depend_on_packed_resource_integrity.patch +++ b/patches/chromium/build_do_not_depend_on_packed_resource_integrity.patch @@ -11,7 +11,7 @@ if we ever align our .pak file generation with Chrome we can remove this patch. diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn -index 4a742db71f62f9ac891ceeb0604ca0b99d1d89c1..2c5af6482e2b6905552a05b16d3df0a400e96582 100644 +index 8aad429c56915e0e842d95e246ad4ae41b0d1588..a13c79ad0c8a2ce42679847eee5ec57d6041932b 100644 --- a/chrome/BUILD.gn +++ b/chrome/BUILD.gn @@ -196,11 +196,16 @@ if (!is_android && !is_mac) { @@ -33,10 +33,10 @@ index 4a742db71f62f9ac891ceeb0604ca0b99d1d89c1..2c5af6482e2b6905552a05b16d3df0a4 "//base", "//build:branding_buildflags", diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn -index 487a055090691fb015465144e6e703cde846adf5..c75d7e336ad00230c2a7852f62c69b8f0cae748d 100644 +index 3d21780be1af55fc701a6b489d67a3244ca151f9..d39ba67ddbca3d0410ddf64866c4823d6a3e6ba8 100644 --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -4746,7 +4746,7 @@ static_library("browser") { +@@ -4748,7 +4748,7 @@ static_library("browser") { ] } @@ -46,10 +46,10 @@ index 487a055090691fb015465144e6e703cde846adf5..c75d7e336ad00230c2a7852f62c69b8f # than here in :chrome_dll. deps += [ "//chrome:packed_resources_integrity_header" ] diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn -index 66e2d12af77a88806a194ac5e5a986ae246e19dd..f2e53a896d6567408c4fe12bf36ecdaebdb7f384 100644 +index c48681f108485bd277e6545b2ebc50c1ff8d1b96..5889dc8886c4dd6ed335c38e63b5d7d27ad6bf8b 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn -@@ -7712,9 +7712,12 @@ test("unit_tests") { +@@ -7775,9 +7775,12 @@ test("unit_tests") { "//chrome/notification_helper", ] @@ -63,7 +63,7 @@ index 66e2d12af77a88806a194ac5e5a986ae246e19dd..f2e53a896d6567408c4fe12bf36ecdae "//chrome//services/util_win:unit_tests", "//chrome/app:chrome_dll_resources", "//chrome/app:win_unit_tests", -@@ -8681,6 +8684,10 @@ test("unit_tests") { +@@ -8744,6 +8747,10 @@ test("unit_tests") { "../browser/performance_manager/policies/background_tab_loading_policy_unittest.cc", ] @@ -74,7 +74,7 @@ index 66e2d12af77a88806a194ac5e5a986ae246e19dd..f2e53a896d6567408c4fe12bf36ecdae sources += [ # The importer code is not used on Android. "../common/importer/firefox_importer_utils_unittest.cc", -@@ -8738,7 +8745,6 @@ test("unit_tests") { +@@ -8801,7 +8808,6 @@ test("unit_tests") { # TODO(crbug.com/417513088): Maybe merge with the non-android `deps` declaration above? deps += [ "../browser/screen_ai:screen_ai_install_state", diff --git a/patches/chromium/build_gn.patch b/patches/chromium/build_gn.patch index 5b88311547..62f7c083be 100644 --- a/patches/chromium/build_gn.patch +++ b/patches/chromium/build_gn.patch @@ -7,7 +7,7 @@ These are variables we add to the root BUILDCONFIG so that they're available everywhere, without having to import("//electron/.../flags.gni"). diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn -index b5dca4a24f63813a230655df433105039513974d..94065bca4c3a60c10ff4c54d8d4fdbe64c29cf75 100644 +index 4375b08443820cfb945826f4ad5a121291727448..7e7bc7b83590370ac6d14661910279f347e93ad2 100644 --- a/build/config/BUILDCONFIG.gn +++ b/build/config/BUILDCONFIG.gn @@ -123,6 +123,9 @@ if (current_os == "") { diff --git a/patches/chromium/can_create_window.patch b/patches/chromium/can_create_window.patch index 1107e60b70..103cd0171a 100644 --- a/patches/chromium/can_create_window.patch +++ b/patches/chromium/can_create_window.patch @@ -9,10 +9,10 @@ potentially prevent a window from being created. TODO(loc): this patch is currently broken. diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc -index 4ea4d47084d39f0a165a3a2948ab3ed291f01c47..f7eaca99d21f707e9e139e65bf7c69c6359cece3 100644 +index b24a969b257b3854a6e49ec16a7cd7ca74e11036..b0bb049e9b52827152b89826d185b8b8fbac39aa 100644 --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc -@@ -10003,6 +10003,7 @@ void RenderFrameHostImpl::CreateNewWindow( +@@ -9998,6 +9998,7 @@ void RenderFrameHostImpl::CreateNewWindow( last_committed_origin_, params->window_container_type, params->target_url, params->referrer.To(), params->frame_name, params->disposition, *params->features, @@ -21,10 +21,10 @@ index 4ea4d47084d39f0a165a3a2948ab3ed291f01c47..f7eaca99d21f707e9e139e65bf7c69c6 &no_javascript_access); diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index 99ef8c6adf68ee069bb38cf7552c28c5da367cb8..ca53ad6537e317dade06332b07bf9c0fe1fc00eb 100644 +index 2639400b52df75164f2e3a0eeb9b2ff73c4dd285..e1bc262366e11ddccfa3942b9becb786ac06eba9 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -5351,6 +5351,10 @@ FrameTree* WebContentsImpl::CreateNewWindow( +@@ -5360,6 +5360,10 @@ FrameTree* WebContentsImpl::CreateNewWindow( create_params.initially_hidden = renderer_started_hidden; create_params.initial_popup_url = params.target_url; @@ -35,7 +35,7 @@ index 99ef8c6adf68ee069bb38cf7552c28c5da367cb8..ca53ad6537e317dade06332b07bf9c0f // Even though all codepaths leading here are in response to a renderer // trying to open a new window, if the new window ends up in a different // browsing instance, then the RenderViewHost, RenderWidgetHost, -@@ -5403,6 +5407,12 @@ FrameTree* WebContentsImpl::CreateNewWindow( +@@ -5412,6 +5416,12 @@ FrameTree* WebContentsImpl::CreateNewWindow( // Sets the newly created WebContents WindowOpenDisposition. new_contents_impl->original_window_open_disposition_ = params.disposition; @@ -48,7 +48,7 @@ index 99ef8c6adf68ee069bb38cf7552c28c5da367cb8..ca53ad6537e317dade06332b07bf9c0f // If the new frame has a name, make sure any SiteInstances that can find // this named frame have proxies for it. Must be called after // SetSessionStorageNamespace, since this calls CreateRenderView, which uses -@@ -5444,12 +5454,6 @@ FrameTree* WebContentsImpl::CreateNewWindow( +@@ -5453,12 +5463,6 @@ FrameTree* WebContentsImpl::CreateNewWindow( AddWebContentsDestructionObserver(new_contents_impl); } @@ -77,7 +77,7 @@ index ecfe129905639e9b7a5ed973017539cfaec9c2af..39308fa42e57b2dfba91aaa6f33d1a0b // Operation result when the renderer asks the browser to create a new window. diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc -index 27785c7f58d13a57d64c7373547f2c1b5071c4e9..dde4648c5315ba8295e95d3335425ca12d7a5285 100644 +index 368d4b51b5b50ce5f48a1371ca5f69d053cdf014..715facf2ec1d8f1dfd8bfe1949481ab21c784611 100644 --- a/content/public/browser/content_browser_client.cc +++ b/content/public/browser/content_browser_client.cc @@ -868,6 +868,8 @@ bool ContentBrowserClient::CanCreateWindow( @@ -90,7 +90,7 @@ index 27785c7f58d13a57d64c7373547f2c1b5071c4e9..dde4648c5315ba8295e95d3335425ca1 bool opener_suppressed, bool* no_javascript_access) { diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h -index 264bc115b437987e038b44e6e884c375db841aa0..5280ea840a979dc2cd9d77fae9c2cfbb10105f4a 100644 +index aff5ce9518500bb655b5e7ae33ecde29d0b0c014..27a3ec60ef7e1fef85a4b5be1e7e519d11a711d3 100644 --- a/content/public/browser/content_browser_client.h +++ b/content/public/browser/content_browser_client.h @@ -205,6 +205,7 @@ class NetworkService; @@ -133,7 +133,7 @@ index 509256e4c327806f9a24eab69c1d4e84581767ce..f8f3996cbd00c06bec2962a54488b2d8 WebContents* source, const OpenURLParams& params, diff --git a/content/public/browser/web_contents_delegate.h b/content/public/browser/web_contents_delegate.h -index 6a72c7925222ed8a11830b68718d7973629a6d2c..a6f0447b6ede476162f555d951f346b080e40be3 100644 +index ea862108a0f83a4aa966046ba15a8ca6757261ee..8fd2a5d359dd883754316095f66a83e8e255926c 100644 --- a/content/public/browser/web_contents_delegate.h +++ b/content/public/browser/web_contents_delegate.h @@ -18,6 +18,7 @@ @@ -170,10 +170,10 @@ index 6a72c7925222ed8a11830b68718d7973629a6d2c..a6f0447b6ede476162f555d951f346b0 // typically happens when popups are created. virtual void WebContentsCreated(WebContents* source_contents, diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc -index 1981118e714a0360b38f1bee7f81dbab20c48341..3bb9a589b1a8b90c5f70e556f44232911eb62d3a 100644 +index dd17c9c1d3d17736ca7ec934977069cdb7ed30b8..757ee4f4e5862d8ebaf8279e3f9e8b950066a0e9 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc -@@ -6846,6 +6846,10 @@ WebView* RenderFrameImpl::CreateNewWindow( +@@ -6848,6 +6848,10 @@ WebView* RenderFrameImpl::CreateNewWindow( params->started_by_ad = GetWebFrame()->IsAdFrame() || GetWebFrame()->IsAdScriptInStack(); @@ -224,10 +224,10 @@ index d92bab531c12c62a5321a23f4a0cb89691668127..2060e04795ba8e7a923fd0fe3485b8c5 } // namespace blink diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_party/blink/renderer/core/frame/local_dom_window.cc -index c425735d53a8a79c9ce20c049506659c17b51be3..0c652f899781138cc177460a949280606ebd059f 100644 +index 6b6397f2dd6c5dbb832d540464192c2ad73d3c16..979eb77e66ba2ad6d7f89851d183e2036b027674 100644 --- a/third_party/blink/renderer/core/frame/local_dom_window.cc +++ b/third_party/blink/renderer/core/frame/local_dom_window.cc -@@ -2335,6 +2335,8 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate, +@@ -2339,6 +2339,8 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate, WebWindowFeatures window_features = GetWindowFeaturesFromString(features, entered_window); diff --git a/patches/chromium/cherry-pick-e045399a1ecb.patch b/patches/chromium/cherry-pick-e045399a1ecb.patch deleted file mode 100644 index bfded91f01..0000000000 --- a/patches/chromium/cherry-pick-e045399a1ecb.patch +++ /dev/null @@ -1,132 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Dominik=20R=C3=B6ttsches?= -Date: Thu, 12 Feb 2026 06:35:36 -0800 -Subject: Avoid stale iteration in CSSFontFeatureValuesMap -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -To avoid invalid iterator state, take a snapshot of the -map when creating the iteration source. This addresses -the immediate problem of iterating while modifying. - -Remaining work tracked in https://crbug.com/483936078 - -Fixed: 483569511 -Change-Id: Ie29cfdf7ed94bbe189b44c842a5efce571bb2cee -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7566570 -Commit-Queue: Dominik Röttsches -Reviewed-by: Anders Hartvoll Ruud -Cr-Commit-Position: refs/heads/main@{#1583927} - -diff --git a/third_party/blink/renderer/core/css/css_font_feature_values_map.cc b/third_party/blink/renderer/core/css/css_font_feature_values_map.cc -index 0c5990799fbfdff5f1d1e04a9038a471217ad0d2..2ea27901e3ba503e7e1acc5dacf90dc60d52ac1a 100644 ---- a/third_party/blink/renderer/core/css/css_font_feature_values_map.cc -+++ b/third_party/blink/renderer/core/css/css_font_feature_values_map.cc -@@ -13,16 +13,15 @@ class FontFeatureValuesMapIterationSource final - : public PairSyncIterable::IterationSource { - public: - FontFeatureValuesMapIterationSource(const CSSFontFeatureValuesMap& map, -- const FontFeatureAliases* aliases) -- : map_(map), aliases_(aliases), iterator_(aliases->begin()) {} -+ const FontFeatureAliases aliases) -+ : map_(map), -+ aliases_(std::move(aliases)), -+ iterator_(aliases_.begin()) {} - - bool FetchNextItem(ScriptState* script_state, - String& map_key, - Vector& map_value) override { -- if (!aliases_) { -- return false; -- } -- if (iterator_ == aliases_->end()) { -+ if (iterator_ == aliases_.end()) { - return false; - } - map_key = iterator_->key; -@@ -37,9 +36,13 @@ class FontFeatureValuesMapIterationSource final - } - - private: -- // Needs to be kept alive while we're iterating over it. - const Member map_; -- const FontFeatureAliases* aliases_; -+ // Create a copy to keep the iterator from becoming invalid if there are -+ // modifications to the aliases HashMap while iterating. -+ // TODO(https://crbug.com/483936078): Implement live/stable iteration over -+ // FontFeatureAliases by changing its storage type, avoiding taking a copy -+ // here. -+ const FontFeatureAliases aliases_; - FontFeatureAliases::const_iterator iterator_; - }; - -@@ -49,8 +52,8 @@ uint32_t CSSFontFeatureValuesMap::size() const { - - PairSyncIterable::IterationSource* - CSSFontFeatureValuesMap::CreateIterationSource(ScriptState*) { -- return MakeGarbageCollected(*this, -- aliases_); -+ return MakeGarbageCollected( -+ *this, aliases_ ? *aliases_ : FontFeatureAliases()); - } - - bool CSSFontFeatureValuesMap::GetMapEntry(ScriptState*, -diff --git a/third_party/blink/web_tests/external/wpt/css/css-fonts/font_feature_values_map_iteration.html b/third_party/blink/web_tests/external/wpt/css/css-fonts/font_feature_values_map_iteration.html -new file mode 100644 -index 0000000000000000000000000000000000000000..eac7198b0b4a58007cbcc77ad3e9357a1009117c ---- /dev/null -+++ b/third_party/blink/web_tests/external/wpt/css/css-fonts/font_feature_values_map_iteration.html -@@ -0,0 +1,52 @@ -+ -+ -+ -+ CSSFontFeatureValuesMap Iteration and Modification -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ diff --git a/patches/chromium/chore_add_electron_deps_to_gitignores.patch b/patches/chromium/chore_add_electron_deps_to_gitignores.patch index 6049e69820..a72ff56f43 100644 --- a/patches/chromium/chore_add_electron_deps_to_gitignores.patch +++ b/patches/chromium/chore_add_electron_deps_to_gitignores.patch @@ -6,10 +6,10 @@ Subject: chore: add electron deps to gitignores Makes things like "git status" quicker when developing electron locally diff --git a/.gitignore b/.gitignore -index 1e90af1c4a66df7f3acce570fbfb0d3b15d66195..21d4dabc8275aacf7a6252dd5861127a0bb661e0 100644 +index 2e51e5ac21e2ee4b94944c2c39f788e51e82f489..285e151fc1cf2ae0768fa71c5620dfdda48e1115 100644 --- a/.gitignore +++ b/.gitignore -@@ -227,6 +227,7 @@ vs-chromium-project.txt +@@ -229,6 +229,7 @@ vs-chromium-project.txt /data /delegate_execute /device/serial/device_serial_mojo.xml diff --git a/patches/chromium/chore_add_electron_objects_to_wrappablepointertag.patch b/patches/chromium/chore_add_electron_objects_to_wrappablepointertag.patch index 10cf42a246..858e03495e 100644 --- a/patches/chromium/chore_add_electron_objects_to_wrappablepointertag.patch +++ b/patches/chromium/chore_add_electron_objects_to_wrappablepointertag.patch @@ -8,10 +8,10 @@ electron objects that extend gin::Wrappable and gets allocated on the cpp heap diff --git a/gin/public/wrappable_pointer_tags.h b/gin/public/wrappable_pointer_tags.h -index 573bcb2e56068a2ade6d8ab28964b077487874fd..acb0c0b44f6530e49b32ea7602c25d498ae4f210 100644 +index c29e8554933994ff56ccea394af34e17c4e9fc2c..42512541b36ceb353483a29eca2c858b9628854b 100644 --- a/gin/public/wrappable_pointer_tags.h +++ b/gin/public/wrappable_pointer_tags.h -@@ -74,7 +74,19 @@ enum WrappablePointerTag : uint16_t { +@@ -76,7 +76,19 @@ enum WrappablePointerTag : uint16_t { kTextInputControllerBindings, // content::TextInputControllerBindings kWebAXObjectProxy, // content::WebAXObjectProxy kWrappedExceptionHandler, // extensions::WrappedExceptionHandler diff --git a/patches/chromium/chore_expose_isolate_parameter_in_script_lifecycle_observers.patch b/patches/chromium/chore_expose_isolate_parameter_in_script_lifecycle_observers.patch index 50cdd2ba54..0603f28c4e 100644 --- a/patches/chromium/chore_expose_isolate_parameter_in_script_lifecycle_observers.patch +++ b/patches/chromium/chore_expose_isolate_parameter_in_script_lifecycle_observers.patch @@ -34,10 +34,10 @@ index dd4cee346f16df703d414bf206bbe6c9f4b1f796..5565f5a9259bd7da0722080bf01b3415 virtual void DidClearWindowObject() {} virtual void DidChangeScrollOffset() {} diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc -index 4d2788bf2795326e7094a24fc9551cad9fcebc90..1b560c64976b184ec86be25bc6949bb9141cc44f 100644 +index bc18237e7d68bb4c07f3488c9a23d072e2867ca5..cb942a969388291ac1177838970d8e233a6695fb 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc -@@ -4760,10 +4760,11 @@ void RenderFrameImpl::DidInstallConditionalFeatures( +@@ -4762,10 +4762,11 @@ void RenderFrameImpl::DidInstallConditionalFeatures( observer.DidInstallConditionalFeatures(context, world_id); } @@ -52,10 +52,10 @@ index 4d2788bf2795326e7094a24fc9551cad9fcebc90..1b560c64976b184ec86be25bc6949bb9 void RenderFrameImpl::DidChangeScrollOffset() { diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h -index 8adf1f8691fc36599f75cae18be9b8230cae1e20..08ae7506cdb6c5d9996f77d1199234a0120b53d2 100644 +index d2f9204e144f90290336e75d21119ef0f99a1d24..fb6ab632e5326370eae23a4e665a9216cd4e93b7 100644 --- a/content/renderer/render_frame_impl.h +++ b/content/renderer/render_frame_impl.h -@@ -609,7 +609,8 @@ class CONTENT_EXPORT RenderFrameImpl +@@ -608,7 +608,8 @@ class CONTENT_EXPORT RenderFrameImpl int world_id) override; void DidInstallConditionalFeatures(v8::Local context, int world_id) override; @@ -139,7 +139,7 @@ index 89515878024756de8263622e054e50a9ad284232..f1e94fd2583d18641ab91d9d598ad94a int32_t world_id) { extension_dispatcher_->WillReleaseScriptContext( diff --git a/extensions/renderer/extension_frame_helper.h b/extensions/renderer/extension_frame_helper.h -index 6a54b76669f497fae7d8808c7fd873dc833db1cb..eee92c9b2cf71df397d377f72dd87eff9fc35c32 100644 +index b74b195e3d8a31156d3677ca2d3de6c6237813f6..1334f5f9e307f4f1a730cf04d772633522491241 100644 --- a/extensions/renderer/extension_frame_helper.h +++ b/extensions/renderer/extension_frame_helper.h @@ -197,7 +197,8 @@ class ExtensionFrameHelper @@ -245,10 +245,10 @@ index 54be144d5b24b369e12d551e6c15d2d85fa8b8c3..0ddb1e0730618bba73e54c2618930355 // Returns true if we should allow register V8 extensions to be added. diff --git a/third_party/blink/renderer/core/loader/empty_clients.h b/third_party/blink/renderer/core/loader/empty_clients.h -index cb14cd270c69ee9ec20ea2e52a968d9dd721182e..7a3d983758896cbc58ff68adb33d1ebebf8a5404 100644 +index 3293587e03aab9104fd2baffd215782cc8266a6d..853a06d570f5d87f7f5e4cdd663bad4ac8a4fe06 100644 --- a/third_party/blink/renderer/core/loader/empty_clients.h +++ b/third_party/blink/renderer/core/loader/empty_clients.h -@@ -432,7 +432,8 @@ class CORE_EXPORT EmptyLocalFrameClient : public LocalFrameClient { +@@ -428,7 +428,8 @@ class CORE_EXPORT EmptyLocalFrameClient : public LocalFrameClient { int32_t world_id) override {} void DidInstallConditionalFeatures(v8::Local, int32_t world_id) override {} diff --git a/patches/chromium/chore_grandfather_in_electron_views_and_delegates.patch b/patches/chromium/chore_grandfather_in_electron_views_and_delegates.patch index 1cf44ff8b0..ad96b4ba4a 100644 --- a/patches/chromium/chore_grandfather_in_electron_views_and_delegates.patch +++ b/patches/chromium/chore_grandfather_in_electron_views_and_delegates.patch @@ -10,7 +10,7 @@ Subject: chore: "grandfather in" Electron Views and Delegates 6448510: Lock further access to View::set_owned_by_client(). | https://chromium-review.googlesource.com/c/chromium/src/+/6448510 diff --git a/ui/views/view.h b/ui/views/view.h -index 193a954ccae57abbd9f977d542ef9a931e9ce77b..60da3226347167470f562fbc0a5ed5f633a47ea6 100644 +index d410372741fbe404a37ada06118c351a9480e564..3c81a2dc067789a58cc9e9d3b8cad783bc66827d 100644 --- a/ui/views/view.h +++ b/ui/views/view.h @@ -78,6 +78,19 @@ class ArcNotificationContentView; diff --git a/patches/chromium/chore_introduce_blocking_api_for_electron.patch b/patches/chromium/chore_introduce_blocking_api_for_electron.patch index e7372507e0..2124fd838d 100644 --- a/patches/chromium/chore_introduce_blocking_api_for_electron.patch +++ b/patches/chromium/chore_introduce_blocking_api_for_electron.patch @@ -7,7 +7,7 @@ This patch comes after Chromium removed the ScopedAllowIO API in favor of explicitly adding ScopedAllowBlocking calls as friends. diff --git a/base/threading/thread_restrictions.h b/base/threading/thread_restrictions.h -index 6f000c21239c85de00733ccaef02feeabdf994de..c91dec8e89141526e2f125c270805a3bd153a542 100644 +index b53745dd0a4011fb15ab16d61f9a6effd5c03598..185520358c4839834d34b584de0e60d34afe01fc 100644 --- a/base/threading/thread_restrictions.h +++ b/base/threading/thread_restrictions.h @@ -133,6 +133,7 @@ class KeyStorageLinux; @@ -18,7 +18,7 @@ index 6f000c21239c85de00733ccaef02feeabdf994de..c91dec8e89141526e2f125c270805a3b class Profile; class ProfileImpl; class ScopedAllowBlockingForProfile; -@@ -282,6 +283,9 @@ class BackendImpl; +@@ -285,6 +286,9 @@ class BackendImpl; class InFlightIO; bool CleanupDirectorySync(const base::FilePath&); } // namespace disk_cache @@ -28,7 +28,7 @@ index 6f000c21239c85de00733ccaef02feeabdf994de..c91dec8e89141526e2f125c270805a3b namespace enterprise_connectors { class LinuxKeyRotationCommand; } // namespace enterprise_connectors -@@ -580,6 +584,7 @@ class BASE_EXPORT ScopedAllowBlocking { +@@ -583,6 +587,7 @@ class BASE_EXPORT ScopedAllowBlocking { friend class ::DesktopNotificationBalloon; friend class ::FirefoxProfileLock; friend class ::GaiaConfig; @@ -36,7 +36,7 @@ index 6f000c21239c85de00733ccaef02feeabdf994de..c91dec8e89141526e2f125c270805a3b friend class ::ProfileImpl; friend class ::ScopedAllowBlockingForProfile; #if BUILDFLAG(IS_WIN) -@@ -625,6 +630,7 @@ class BASE_EXPORT ScopedAllowBlocking { +@@ -628,6 +633,7 @@ class BASE_EXPORT ScopedAllowBlocking { friend class cronet::CronetPrefsManager; friend class crypto::ScopedAllowBlockingForNSS; // http://crbug.com/59847 friend class drive::FakeDriveService; diff --git a/patches/chromium/chore_modify_chromium_handling_of_mouse_events.patch b/patches/chromium/chore_modify_chromium_handling_of_mouse_events.patch index 2776a1d35c..e1ae13bdaa 100644 --- a/patches/chromium/chore_modify_chromium_handling_of_mouse_events.patch +++ b/patches/chromium/chore_modify_chromium_handling_of_mouse_events.patch @@ -61,10 +61,10 @@ index b65ced55f997d5064b9d9338190567f8c264fce8..e8acd2828ed05deefa335ce2bb461f0c Widget* GetWidget(); const Widget* GetWidget() const; diff --git a/ui/views/win/hwnd_message_handler.cc b/ui/views/win/hwnd_message_handler.cc -index 180fe676748d9f4b2ad5e26c7e35ee14c8a79f11..bbefa1324800849b389efbe487ad6631615327e7 100644 +index a553dc21818bdfc91790f9991749c9fcdb1aa208..fd21436484c851acfe0027cfc475ebef5e642d64 100644 --- a/ui/views/win/hwnd_message_handler.cc +++ b/ui/views/win/hwnd_message_handler.cc -@@ -3281,15 +3281,19 @@ LRESULT HWNDMessageHandler::HandleMouseEventInternal(UINT message, +@@ -3267,15 +3267,19 @@ LRESULT HWNDMessageHandler::HandleMouseEventInternal(UINT message, } // We must let Windows handle the caption buttons if it's drawing them, or // they won't work. @@ -86,7 +86,7 @@ index 180fe676748d9f4b2ad5e26c7e35ee14c8a79f11..bbefa1324800849b389efbe487ad6631 return 0; } } -@@ -3312,6 +3316,7 @@ LRESULT HWNDMessageHandler::HandleMouseEventInternal(UINT message, +@@ -3298,6 +3302,7 @@ LRESULT HWNDMessageHandler::HandleMouseEventInternal(UINT message, // handle alt-space, or in the frame itself. is_right_mouse_pressed_on_caption_ = false; ReleaseCapture(); @@ -94,7 +94,7 @@ index 180fe676748d9f4b2ad5e26c7e35ee14c8a79f11..bbefa1324800849b389efbe487ad6631 // |point| is in window coordinates, but WM_NCHITTEST and TrackPopupMenu() // expect screen coordinates. POINT screen_point = CR_POINT_INITIALIZER_FROM_LPARAM(l_param); -@@ -3319,7 +3324,17 @@ LRESULT HWNDMessageHandler::HandleMouseEventInternal(UINT message, +@@ -3305,7 +3310,17 @@ LRESULT HWNDMessageHandler::HandleMouseEventInternal(UINT message, w_param = static_cast(SendMessage( hwnd(), WM_NCHITTEST, 0, MAKELPARAM(screen_point.x, screen_point.y))); if (w_param == HTCAPTION || w_param == HTSYSMENU) { diff --git a/patches/chromium/chore_partial_revert_of.patch b/patches/chromium/chore_partial_revert_of.patch index 1d3d1fe1eb..6a06d2af56 100644 --- a/patches/chromium/chore_partial_revert_of.patch +++ b/patches/chromium/chore_partial_revert_of.patch @@ -14,10 +14,10 @@ track down the source of this problem & figure out if we can fix it by changing something in Electron. diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index 4b5c7b2f8ea61dc156b6136991f25b91190fd4e6..4c951d0326500e68a2644b7917ce6b87ee54c39e 100644 +index 0e4fb92136e7ee014dd390142bb4c38349c3ed6b..4248fe3b201b9b62ab7c3bfc07658f116e974867 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -5322,7 +5322,7 @@ FrameTree* WebContentsImpl::CreateNewWindow( +@@ -5331,7 +5331,7 @@ FrameTree* WebContentsImpl::CreateNewWindow( : IsGuest(); // While some guest types do not have a guest SiteInstance, the ones that // don't all override WebContents creation above. diff --git a/patches/chromium/chore_patch_out_partition_attribute_dcheck_for_webviews.patch b/patches/chromium/chore_patch_out_partition_attribute_dcheck_for_webviews.patch index 375cdf257c..e08ecfa1c7 100644 --- a/patches/chromium/chore_patch_out_partition_attribute_dcheck_for_webviews.patch +++ b/patches/chromium/chore_patch_out_partition_attribute_dcheck_for_webviews.patch @@ -14,7 +14,7 @@ This change patches it out to prevent the DCHECK. It can be removed once/if we see a better solution to the problem. diff --git a/content/browser/site_instance_impl.cc b/content/browser/site_instance_impl.cc -index 7fff40908c71615cdacec33f4238e31c4b2ee6a4..241f1f0eedeedd2d6dc1675e8b69e007c2122b81 100644 +index edcbf7effafbf0f0c8a613ed05a259f4996c1690..74c40adbfae086fab9c1e29f4f494e52221c3f01 100644 --- a/content/browser/site_instance_impl.cc +++ b/content/browser/site_instance_impl.cc @@ -224,7 +224,7 @@ scoped_refptr SiteInstanceImpl::CreateForGuest( diff --git a/patches/chromium/chore_patch_out_profile_methods.patch b/patches/chromium/chore_patch_out_profile_methods.patch index 7ac5183b4e..5270d83d36 100644 --- a/patches/chromium/chore_patch_out_profile_methods.patch +++ b/patches/chromium/chore_patch_out_profile_methods.patch @@ -43,10 +43,10 @@ index 21d5ab99800c0830cc31ec4ebb24e3f05cd904d8..3f8f514519d6e4a0abe3690f5df35de8 // When the enterprise policy is not set, use finch/feature flag choice. return base::FeatureList::IsEnabled(chrome_pdf::features::kPdfXfaSupport); diff --git a/chrome/browser/pdf/pdf_extension_util.cc b/chrome/browser/pdf/pdf_extension_util.cc -index a5ca2bceacf0bdcb394d8730ac047dbd781b1ca3..93997149e0057ebd457f2bd4acbf917a00591142 100644 +index 32cc3ee248d7bc488b91aa44504f057da1b1471c..cb5ae8612b29f222d452df9e2354e67cd14e8999 100644 --- a/chrome/browser/pdf/pdf_extension_util.cc +++ b/chrome/browser/pdf/pdf_extension_util.cc -@@ -248,10 +248,13 @@ bool IsPrintingEnabled(content::BrowserContext* context) { +@@ -255,10 +255,13 @@ bool IsPrintingEnabled(content::BrowserContext* context) { #if BUILDFLAG(ENABLE_PDF_INK2) bool IsPdfAnnotationsEnabledByPolicy(content::BrowserContext* context) { diff --git a/patches/chromium/chore_provide_iswebcontentscreationoverridden_with_full_params.patch b/patches/chromium/chore_provide_iswebcontentscreationoverridden_with_full_params.patch index a36e62d654..f932ffbfff 100644 --- a/patches/chromium/chore_provide_iswebcontentscreationoverridden_with_full_params.patch +++ b/patches/chromium/chore_provide_iswebcontentscreationoverridden_with_full_params.patch @@ -80,7 +80,7 @@ index 39fa45f0a0f9076bd7ac0be6f455dd540a276512..3d0381d463eed73470b28085830f2a23 content::WebContents* source, const content::OpenURLParams& params, diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc -index a5deff46819dc2aee4ffb44a9b6aabcb3f65c528..9e3ce7b90d9254ecb4bd024ae62909825e3f38bc 100644 +index 7c9f086470c13c782563f6ebaeea26277f1838c1..d8f1178cada860357a074b14f27287dd7ebab965 100644 --- a/chrome/browser/ui/browser.cc +++ b/chrome/browser/ui/browser.cc @@ -2351,7 +2351,8 @@ bool Browser::IsWebContentsCreationOverridden( @@ -103,7 +103,7 @@ index a5deff46819dc2aee4ffb44a9b6aabcb3f65c528..9e3ce7b90d9254ecb4bd024ae6290982 WebContents* Browser::CreateCustomWebContents( diff --git a/chrome/browser/ui/browser.h b/chrome/browser/ui/browser.h -index b5b72e04fbf0467107818a97c12ed6ac6e369dd7..63324d9384e3fd0c742aea083e9ea5d5ae6af7f1 100644 +index bc5483d1f30f50927ac8af011edc783767d94896..e533b1624814fe7140f89d0d7c6c2e51284a803e 100644 --- a/chrome/browser/ui/browser.h +++ b/chrome/browser/ui/browser.h @@ -932,8 +932,7 @@ class Browser : public TabStripModelObserver, @@ -223,10 +223,10 @@ index b969f1d97b7e3396119b579cfbe61e19ff7d2dd4..b8d6169652da28266a514938b45b39c5 content::WebContents* AddNewContents( content::WebContents* source, diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index 2890adbe64e95ffa53611f6616511628232c4570..e9bbc2b44544ba718ab7eabc5627ff03a1c211b4 100644 +index 2f431d36474a3f7798bc1ec04b4a0f681d12d49b..796dbccf85c2ffaa5e0ec921596beec59e9b7444 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -5287,8 +5287,7 @@ FrameTree* WebContentsImpl::CreateNewWindow( +@@ -5296,8 +5296,7 @@ FrameTree* WebContentsImpl::CreateNewWindow( if (delegate_ && delegate_->IsWebContentsCreationOverridden( opener, source_site_instance, params.window_container_type, @@ -251,7 +251,7 @@ index f8f3996cbd00c06bec2962a54488b2d8f1666530..fde24980f7eefd2696a9094bdb977879 } diff --git a/content/public/browser/web_contents_delegate.h b/content/public/browser/web_contents_delegate.h -index a6f0447b6ede476162f555d951f346b080e40be3..58f34bc33426136d2040f241f2cb5928dc19fb2d 100644 +index 8fd2a5d359dd883754316095f66a83e8e255926c..832394b10f3ff5879c002b49d9eeb3479c9f002a 100644 --- a/content/public/browser/web_contents_delegate.h +++ b/content/public/browser/web_contents_delegate.h @@ -380,8 +380,7 @@ class CONTENT_EXPORT WebContentsDelegate { @@ -329,7 +329,7 @@ index d86fc00d6c58a11ef2503d307a8b4416af866419..d469bf55fa6046acdda173e213314585 content::RenderFrameHost* opener, content::SiteInstance* source_site_instance, diff --git a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc -index 828b7cf7ef981dca939ea8842960176b6bfe8925..ecb0774145c35d11f9462c8394294d8b232291ff 100644 +index 49727adaa1c78d0f3704dcac866c1d4a8afe9474..edfd99c2ebeff77b9aa446be61b76fadceef89ec 100644 --- a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc +++ b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc @@ -423,8 +423,7 @@ bool MimeHandlerViewGuest::IsWebContentsCreationOverridden( @@ -385,10 +385,10 @@ index 756d4192271d6a65cfe8e1511737c565b543cb1f..5688f6f745056565c3c01947f741c4d1 int opener_render_process_id, int opener_render_frame_id, diff --git a/headless/lib/browser/headless_web_contents_impl.cc b/headless/lib/browser/headless_web_contents_impl.cc -index 3143e1c3bef99488c80f02e3a1fe4ab12acd854c..bb75971438348a0bcb3e4ed0658dc35567f20799 100644 +index ae616fa9c352413e23fb509b3e12e0e4fab5a094..0efa65f7d4346cfe78d2f27ba55a0526202315ff 100644 --- a/headless/lib/browser/headless_web_contents_impl.cc +++ b/headless/lib/browser/headless_web_contents_impl.cc -@@ -208,8 +208,7 @@ class HeadlessWebContentsImpl::Delegate : public content::WebContentsDelegate { +@@ -232,8 +232,7 @@ class HeadlessWebContentsImpl::Delegate : public content::WebContentsDelegate { content::SiteInstance* source_site_instance, content::mojom::WindowContainerType window_container_type, const GURL& opener_url, diff --git a/patches/chromium/chore_remove_check_is_test_on_script_injection_tracker.patch b/patches/chromium/chore_remove_check_is_test_on_script_injection_tracker.patch index dc14f55699..3fdfbc7be6 100644 --- a/patches/chromium/chore_remove_check_is_test_on_script_injection_tracker.patch +++ b/patches/chromium/chore_remove_check_is_test_on_script_injection_tracker.patch @@ -9,7 +9,7 @@ Electron when a session is non persistent we do not initialize the ExtensionSystem, so this check is not relevant for Electron. diff --git a/extensions/browser/script_injection_tracker.cc b/extensions/browser/script_injection_tracker.cc -index 748c4012338c3e53fce1ea66d1cb95e8f397e901..c4c229ff10fb72d6098070378aa92661c211e97d 100644 +index 78e82a70e4a5d323f25d4d90eac1c5e4f070d24d..f7ab8718503695217d398f2ee7c2b37ab4320341 100644 --- a/extensions/browser/script_injection_tracker.cc +++ b/extensions/browser/script_injection_tracker.cc @@ -176,7 +176,6 @@ std::vector GetLoadedDynamicScripts( diff --git a/patches/chromium/create_browser_v8_snapshot_file_name_fuse.patch b/patches/chromium/create_browser_v8_snapshot_file_name_fuse.patch index 66beb13a63..790457ba30 100644 --- a/patches/chromium/create_browser_v8_snapshot_file_name_fuse.patch +++ b/patches/chromium/create_browser_v8_snapshot_file_name_fuse.patch @@ -7,7 +7,7 @@ By default, chromium sets up one v8 snapshot to be used in all v8 contexts. This to have a dedicated browser process v8 snapshot defined by the file `browser_v8_context_snapshot.bin`. diff --git a/content/app/content_main_runner_impl.cc b/content/app/content_main_runner_impl.cc -index 61a645ade548e47c049d6491bca3a9c700473f95..c4838efd40b1c53bcd624116245ebb5f5bfd8658 100644 +index 81e2e8bbae7c2d8c5ef6c4fad5121121317901ca..3c7722778d909d35ab268c81fd406f0870502fd4 100644 --- a/content/app/content_main_runner_impl.cc +++ b/content/app/content_main_runner_impl.cc @@ -277,8 +277,13 @@ void AsanProcessInfoCB(const char* reason, @@ -79,10 +79,10 @@ index 8c318a31454c57b0e8db3770a36c45be427f053c..6f809c9672448ed9797e3c9da492ad2c friend class ContentClientCreator; friend class ContentClientInitializer; diff --git a/gin/v8_initializer.cc b/gin/v8_initializer.cc -index 3b0e038918a175c70beb91e0c5d816aed2e6f181..8d3e00535b6bec4068b07ded8f19f18c48da3769 100644 +index 6b7dffe9c65ee04787a0dbc39d8d055c4daf0582..e63c8e92e3d8ae1ff0bec37e614ca8ed989b21e4 100644 --- a/gin/v8_initializer.cc +++ b/gin/v8_initializer.cc -@@ -643,8 +643,7 @@ void V8Initializer::GetV8ExternalSnapshotData(const char** snapshot_data_out, +@@ -646,8 +646,7 @@ void V8Initializer::GetV8ExternalSnapshotData(const char** snapshot_data_out, #if defined(V8_USE_EXTERNAL_STARTUP_DATA) @@ -92,7 +92,7 @@ index 3b0e038918a175c70beb91e0c5d816aed2e6f181..8d3e00535b6bec4068b07ded8f19f18c if (g_mapped_snapshot) { // TODO(crbug.com/40558459): Confirm not loading different type of snapshot // files in a process. -@@ -653,10 +652,17 @@ void V8Initializer::LoadV8Snapshot(V8SnapshotFileType snapshot_file_type) { +@@ -656,10 +655,17 @@ void V8Initializer::LoadV8Snapshot(V8SnapshotFileType snapshot_file_type) { base::MemoryMappedFile::Region file_region; base::File file = diff --git a/patches/chromium/custom_protocols_plzserviceworker.patch b/patches/chromium/custom_protocols_plzserviceworker.patch index 139874e788..f983e52f17 100644 --- a/patches/chromium/custom_protocols_plzserviceworker.patch +++ b/patches/chromium/custom_protocols_plzserviceworker.patch @@ -8,10 +8,10 @@ Allow registering custom protocols to handle service worker main script fetching Refs https://bugs.chromium.org/p/chromium/issues/detail?id=996511 diff --git a/content/browser/service_worker/service_worker_context_wrapper.cc b/content/browser/service_worker/service_worker_context_wrapper.cc -index 25e8b179815dce93168d377961f6848199228bcd..d61f9554f0ab76ee9d654a70e419522b53165f9c 100644 +index f52e7bf0cfcba6ee161b027e2bf449a8dbafbe43..a616f78127e9aa7dc4ac28c0a1362abedd0a7e00 100644 --- a/content/browser/service_worker/service_worker_context_wrapper.cc +++ b/content/browser/service_worker/service_worker_context_wrapper.cc -@@ -1941,6 +1941,26 @@ ServiceWorkerContextWrapper::GetLoaderFactoryForBrowserInitiatedRequest( +@@ -1956,6 +1956,26 @@ ServiceWorkerContextWrapper::GetLoaderFactoryForBrowserInitiatedRequest( loader_factory_bundle_info = context()->loader_factory_bundle_for_update_check()->Clone(); @@ -38,7 +38,7 @@ index 25e8b179815dce93168d377961f6848199228bcd..d61f9554f0ab76ee9d654a70e419522b if (auto* config = content::WebUIConfigMap::GetInstance().GetConfig( browser_context(), scope)) { // If this is a Service Worker for a WebUI, the WebUI's URLDataSource -@@ -1960,9 +1980,7 @@ ServiceWorkerContextWrapper::GetLoaderFactoryForBrowserInitiatedRequest( +@@ -1975,9 +1995,7 @@ ServiceWorkerContextWrapper::GetLoaderFactoryForBrowserInitiatedRequest( features::kEnableServiceWorkersForChromeScheme) && scope.scheme() == kChromeUIScheme) { config->RegisterURLDataSource(browser_context()); @@ -49,7 +49,7 @@ index 25e8b179815dce93168d377961f6848199228bcd..d61f9554f0ab76ee9d654a70e419522b .emplace(kChromeUIScheme, CreateWebUIServiceWorkerLoaderFactory( browser_context(), kChromeUIScheme, base::flat_set())); -@@ -1970,9 +1988,7 @@ ServiceWorkerContextWrapper::GetLoaderFactoryForBrowserInitiatedRequest( +@@ -1985,9 +2003,7 @@ ServiceWorkerContextWrapper::GetLoaderFactoryForBrowserInitiatedRequest( features::kEnableServiceWorkersForChromeUntrusted) && scope.scheme() == kChromeUIUntrustedScheme) { config->RegisterURLDataSource(browser_context()); diff --git a/patches/chromium/desktop_media_list.patch b/patches/chromium/desktop_media_list.patch index 5335aa89be..5254d0d9f3 100644 --- a/patches/chromium/desktop_media_list.patch +++ b/patches/chromium/desktop_media_list.patch @@ -82,7 +82,7 @@ index 786c526588d81b8b5b1b5dd3760719a53e005995..f66b7d0b4dfcbb8ed3dde5a9ff463ae2 const Source& GetSource(int index) const override; DesktopMediaList::Type GetMediaListType() const override; diff --git a/chrome/browser/media/webrtc/native_desktop_media_list.cc b/chrome/browser/media/webrtc/native_desktop_media_list.cc -index 3be638f1032815d39634b5725031d7f3124e1ad2..fce3e30bc736ac72a42d24956d4abf9f49c8fc41 100644 +index 7c72345e20589fe078169426d9b5b5a0ae81bae8..2c86b75c43651bd78d5ff7eeb54aa366ee3228bc 100644 --- a/chrome/browser/media/webrtc/native_desktop_media_list.cc +++ b/chrome/browser/media/webrtc/native_desktop_media_list.cc @@ -216,9 +216,13 @@ content::DesktopMediaID::Id GetUpdatedWindowId( diff --git a/patches/chromium/disable_hidden.patch b/patches/chromium/disable_hidden.patch index f2b9c10fd3..e89ee31fe1 100644 --- a/patches/chromium/disable_hidden.patch +++ b/patches/chromium/disable_hidden.patch @@ -6,10 +6,10 @@ Subject: disable_hidden.patch Electron uses this to disable background throttling for hidden windows. diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc -index f41937897e1189357969f92f6741ab4f6eb0599e..798ca07aa4cd1f47f459def5d6b57473cc8c7f2b 100644 +index 5f820ecdcb99e57d1d51cd28fff7874f9ba58e23..1455aa5083f8eef7bf9644a1cc522db3e67b0227 100644 --- a/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc -@@ -847,6 +847,10 @@ void RenderWidgetHostImpl::WasHidden() { +@@ -848,6 +848,10 @@ void RenderWidgetHostImpl::WasHidden() { return; } @@ -21,10 +21,10 @@ index f41937897e1189357969f92f6741ab4f6eb0599e..798ca07aa4cd1f47f459def5d6b57473 // Prompts should remain open and functional across tab switches. if (!delegate_ || !delegate_->IsWaitingForPointerLockPrompt(this)) { diff --git a/content/browser/renderer_host/render_widget_host_impl.h b/content/browser/renderer_host/render_widget_host_impl.h -index bffb574713aaefb61c7204b5d859f1d7c77b2192..889c9f3549fdc71171c830e17595bee6f21eb9e8 100644 +index bd0f3ec2116a137d2a24e81e6bf0b5854a47f2f9..e1585de8fad7b11174d51666e7dce681f39b0815 100644 --- a/content/browser/renderer_host/render_widget_host_impl.h +++ b/content/browser/renderer_host/render_widget_host_impl.h -@@ -1039,6 +1039,8 @@ class CONTENT_EXPORT RenderWidgetHostImpl +@@ -1042,6 +1042,8 @@ class CONTENT_EXPORT RenderWidgetHostImpl base::TimeDelta GetHungRendererDelayForTesting(); diff --git a/patches/chromium/dom_storage_limits.patch b/patches/chromium/dom_storage_limits.patch index 2d44ada44a..69ea60d365 100644 --- a/patches/chromium/dom_storage_limits.patch +++ b/patches/chromium/dom_storage_limits.patch @@ -16,23 +16,22 @@ amount of chromium code that needs to be changed for Electron as well as keeps these storage areas limited to a bounded size meanwhile giving application developers more space to work with. -diff --git a/components/services/storage/dom_storage/dom_storage_constants.cc b/components/services/storage/dom_storage/dom_storage_constants.cc -index aa5edd1d07d97bee4912b14996ff804351240e94..8334b7eb6a3293c068f5234508f8dca780ccb262 100644 ---- a/components/services/storage/dom_storage/dom_storage_constants.cc -+++ b/components/services/storage/dom_storage/dom_storage_constants.cc -@@ -6,7 +6,9 @@ +diff --git a/components/services/storage/dom_storage/dom_storage_constants.h b/components/services/storage/dom_storage/dom_storage_constants.h +index 9d9a8aeab2343942a88ee882e21191719bee019f..9f58743e0bb79e3e10095a6a1adc543846022f3b 100644 +--- a/components/services/storage/dom_storage/dom_storage_constants.h ++++ b/components/services/storage/dom_storage/dom_storage_constants.h +@@ -11,7 +11,8 @@ namespace storage { - namespace storage { - --const size_t kPerStorageAreaQuota = 10 * 1024 * 1024; + // The quota for each storage area. + // This value is enforced by clients and by the storage service. +-inline constexpr size_t kPerStorageAreaQuota = 10 * 1024 * 1024; +// Electron's dom_storage_limits.patch increased this value from 10MiB to 100MiB -+const size_t kPerStorageAreaQuota = 100 * 1024 * 1024; -+ - const size_t kPerStorageAreaOverQuotaAllowance = 100 * 1024; ++inline constexpr size_t kPerStorageAreaQuota = 100 * 1024 * 1024; - } // namespace storage + // In the storage service we allow some overage to + // accommodate concurrent writes from different clients diff --git a/third_party/blink/public/mojom/dom_storage/storage_area.mojom b/third_party/blink/public/mojom/dom_storage/storage_area.mojom -index 332be0811d86c7a265f440ab7719460160a22617..e3382d843599ef6017e0ac557919b3a41809f17d 100644 +index 2552cc9cfab2c54caf584b14944324b92ae22171..f6e9a4a998f13d55b4d213a8bae2d50b090f138a 100644 --- a/third_party/blink/public/mojom/dom_storage/storage_area.mojom +++ b/third_party/blink/public/mojom/dom_storage/storage_area.mojom @@ -50,7 +50,8 @@ struct KeyValue { diff --git a/patches/chromium/enable_reset_aspect_ratio.patch b/patches/chromium/enable_reset_aspect_ratio.patch index 8d60f03b6f..6d4f1f9841 100644 --- a/patches/chromium/enable_reset_aspect_ratio.patch +++ b/patches/chromium/enable_reset_aspect_ratio.patch @@ -19,10 +19,10 @@ index 3a02cb67eb114efdfe796de8e544e05f6559ddae..1e0c7aa8a17ca62eda9bee3444668e03 excluded_margin); } diff --git a/ui/views/win/hwnd_message_handler.cc b/ui/views/win/hwnd_message_handler.cc -index fcd56efb87230f193b492b657c6843ec168009e9..b68f7c997fab3f370bad77a956c77579fcd24a51 100644 +index 9735afc8efad7d1ef841574af30db3a8937b69ca..ad1dceef2209f312e3fdec6c7f7bc2b05c93b297 100644 --- a/ui/views/win/hwnd_message_handler.cc +++ b/ui/views/win/hwnd_message_handler.cc -@@ -1068,8 +1068,11 @@ void HWNDMessageHandler::SetFullscreen(bool fullscreen, +@@ -1046,8 +1046,11 @@ void HWNDMessageHandler::SetFullscreen(bool fullscreen, void HWNDMessageHandler::SetAspectRatio(float aspect_ratio, const gfx::Size& excluded_margin) { diff --git a/patches/chromium/export_gin_v8platform_pageallocator_for_usage_outside_of_the_gin.patch b/patches/chromium/export_gin_v8platform_pageallocator_for_usage_outside_of_the_gin.patch index d6f641120d..26d185314a 100644 --- a/patches/chromium/export_gin_v8platform_pageallocator_for_usage_outside_of_the_gin.patch +++ b/patches/chromium/export_gin_v8platform_pageallocator_for_usage_outside_of_the_gin.patch @@ -21,7 +21,7 @@ index 8c32005730153251e93516340e4baa500d777178..ff444dc689542a909ec5aada39816931 ThreadIsolatedAllocator* GetThreadIsolatedAllocator() override; #endif diff --git a/gin/v8_platform.cc b/gin/v8_platform.cc -index 1dea7a32eeb7f4783da020fc974acd78863742bb..d7ea65359a39f3c633c212c51b5a7909e789f53e 100644 +index fe339f6a069064ec92bddd5df9df96f84d13bd9a..41bc93d602c6558620ec728ac8207dedbabdd407 100644 --- a/gin/v8_platform.cc +++ b/gin/v8_platform.cc @@ -222,6 +222,10 @@ ThreadIsolatedAllocator* V8Platform::GetThreadIsolatedAllocator() { diff --git a/patches/chromium/expose_gtk_ui_platform_field.patch b/patches/chromium/expose_gtk_ui_platform_field.patch index 9f3f9a2255..19349b45b3 100644 --- a/patches/chromium/expose_gtk_ui_platform_field.patch +++ b/patches/chromium/expose_gtk_ui_platform_field.patch @@ -10,7 +10,7 @@ This patch should be proposed upstream. Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7237910 "7237910: Remove g_gtk_ui global" diff --git a/extensions/renderer/script_injection.cc b/extensions/renderer/script_injection.cc -index 393aa9918c97e9d61ef0f6e596aeeaa3d93862c6..5397fe5b57a60ea0948e412d0627c942f37dd0df 100644 +index eb6d5e0d2789b5f688a2a5bb634a2857529be862..97978ddb03dedaf0e8277a9ce33cf1b720d2eb52 100644 --- a/extensions/renderer/script_injection.cc +++ b/extensions/renderer/script_injection.cc @@ -9,6 +9,7 @@ diff --git a/patches/chromium/expose_setuseragent_on_networkcontext.patch b/patches/chromium/expose_setuseragent_on_networkcontext.patch index e6fc079f82..49a37237c2 100644 --- a/patches/chromium/expose_setuseragent_on_networkcontext.patch +++ b/patches/chromium/expose_setuseragent_on_networkcontext.patch @@ -33,7 +33,7 @@ index 0ab8187b0db8ae6db46d81738f653a2bc4c566f6..de3d55e85c22317f7f9375eb94d0d5d4 } // namespace net diff --git a/services/network/network_context.cc b/services/network/network_context.cc -index 02f70ce0f192562c11cdbc4d193302e700a302aa..f9e704f9dc76f802b330487238717a6df3ba7b36 100644 +index 81f99ddf906bc1767f3d79ac303c0f7cdd31dd65..b83e4c4c2eddb9fc276fffb77bb115e2721b1684 100644 --- a/services/network/network_context.cc +++ b/services/network/network_context.cc @@ -1879,6 +1879,13 @@ void NetworkContext::SetNetworkConditions( @@ -51,7 +51,7 @@ index 02f70ce0f192562c11cdbc4d193302e700a302aa..f9e704f9dc76f802b330487238717a6d // This may only be called on NetworkContexts created with the constructor // that calls MakeURLRequestContext(). diff --git a/services/network/network_context.h b/services/network/network_context.h -index 01a7a606dd6341df2c519776399f8f9875b557f7..d8de2ba162a97fab31a797408ed918cba4382543 100644 +index c78ef874c575c7fdff5cc068fc34e7ce0231737e..5613c4db90ba5e0263d5c9ead2638cd38eccccde 100644 --- a/services/network/network_context.h +++ b/services/network/network_context.h @@ -321,6 +321,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext @@ -63,10 +63,10 @@ index 01a7a606dd6341df2c519776399f8f9875b557f7..d8de2ba162a97fab31a797408ed918cb void SetEnableReferrers(bool enable_referrers) override; #if BUILDFLAG(IS_CT_SUPPORTED) diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom -index 9599c3570b74fa03464beb9adeb1a0c237744640..0a837fbd18a0e597805b418a7f3022c499fb0c41 100644 +index 8f2f1cc4f4df6ce8c00a65d6b8c008a896800fd7..b843412396f17bc094fa5a5dcf4ab3a11ef7d00d 100644 --- a/services/network/public/mojom/network_context.mojom +++ b/services/network/public/mojom/network_context.mojom -@@ -1277,6 +1277,9 @@ interface NetworkContext { +@@ -1276,6 +1276,9 @@ interface NetworkContext { SetNetworkConditions(mojo_base.mojom.UnguessableToken throttling_profile_id, array conditions); @@ -77,7 +77,7 @@ index 9599c3570b74fa03464beb9adeb1a0c237744640..0a837fbd18a0e597805b418a7f3022c4 SetAcceptLanguage(string new_accept_language); diff --git a/services/network/test/test_network_context.h b/services/network/test/test_network_context.h -index b228a3725b04b92037fc1c2ec601f04642d59fc3..7905f8afd42dd4646745cc4ce5dc7c169ab0ac26 100644 +index 8ce978e789227dd5fcd4117f40996bba7504e537..91c98d895024b01e3b527d7e1e07c629bef4d420 100644 --- a/services/network/test/test_network_context.h +++ b/services/network/test/test_network_context.h @@ -156,6 +156,7 @@ class TestNetworkContext : public mojom::NetworkContext { diff --git a/patches/chromium/extend_apply_webpreferences.patch b/patches/chromium/extend_apply_webpreferences.patch index cb52451341..63d3e6f7e7 100644 --- a/patches/chromium/extend_apply_webpreferences.patch +++ b/patches/chromium/extend_apply_webpreferences.patch @@ -15,10 +15,10 @@ Ideally we could add an embedder observer pattern here but that can be done in future work. diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc -index 6aae8ee3c34d11ee927822f54e76f8e136b6faf9..8d90e826715a00173f83485c0105387e7fc9568b 100644 +index d5d5a18a8d63cbb056cd4c3eca739f5d7bf1f26b..693df80c3859c1bcb54b6791eee852f5817d734b 100644 --- a/third_party/blink/renderer/core/exported/web_view_impl.cc +++ b/third_party/blink/renderer/core/exported/web_view_impl.cc -@@ -1919,6 +1919,8 @@ void WebView::ApplyWebPreferences(const web_pref::WebPreferences& prefs, +@@ -1903,6 +1903,8 @@ void WebView::ApplyWebPreferences(const web_pref::WebPreferences& prefs, #if BUILDFLAG(IS_MAC) web_view_impl->SetMaximumLegibleScale( prefs.default_maximum_page_scale_factor); diff --git a/patches/chromium/feat_add_data_parameter_to_processsingleton.patch b/patches/chromium/feat_add_data_parameter_to_processsingleton.patch index b4345cc593..50e2e755c8 100644 --- a/patches/chromium/feat_add_data_parameter_to_processsingleton.patch +++ b/patches/chromium/feat_add_data_parameter_to_processsingleton.patch @@ -13,7 +13,7 @@ app.requestSingleInstanceLock API so that users can pass in a JSON object for the second instance to send to the first instance. diff --git a/chrome/browser/process_singleton.h b/chrome/browser/process_singleton.h -index 2748dd196fe1f56357348a204e24f0b8a28b97dd..5800dd00b47c657d9e6766f3fc5a30654cffffa6 100644 +index f076d0f783e2c0f6b5444002f756001adf2729bd..a03d99f929e2d354cdba969567d781561656261d 100644 --- a/chrome/browser/process_singleton.h +++ b/chrome/browser/process_singleton.h @@ -18,7 +18,8 @@ @@ -65,7 +65,7 @@ index 2748dd196fe1f56357348a204e24f0b8a28b97dd..5800dd00b47c657d9e6766f3fc5a3065 #if BUILDFLAG(IS_WIN) bool EscapeVirtualization(const base::FilePath& user_data_dir); diff --git a/chrome/browser/process_singleton_posix.cc b/chrome/browser/process_singleton_posix.cc -index 73aa4cb9652870b0bff4684d7c72ae7dbd852db8..b55c942a8ccb326e4898172a7b4f6c0aa3183a0b 100644 +index 5a88dfda5eb2c4bf5b547a76eef81b530f3ea96e..0c423610fc2c5514693d33b527088cf839a404f2 100644 --- a/chrome/browser/process_singleton_posix.cc +++ b/chrome/browser/process_singleton_posix.cc @@ -619,6 +619,7 @@ class ProcessSingleton::LinuxWatcher diff --git a/patches/chromium/feat_add_support_for_embedder_snapshot_validation.patch b/patches/chromium/feat_add_support_for_embedder_snapshot_validation.patch index 638c43a7a3..7dc821ba5b 100644 --- a/patches/chromium/feat_add_support_for_embedder_snapshot_validation.patch +++ b/patches/chromium/feat_add_support_for_embedder_snapshot_validation.patch @@ -6,7 +6,7 @@ Subject: feat: add support for embedder snapshot validation IsValid is not exposed despite being commented as for embedders, this exposes something that works for us. diff --git a/gin/v8_initializer.cc b/gin/v8_initializer.cc -index 8d3e00535b6bec4068b07ded8f19f18c48da3769..2a7c146fc549d563f187797feb8b190b64234b30 100644 +index e63c8e92e3d8ae1ff0bec37e614ca8ed989b21e4..743b785e7effe57b8c55fd2e6d779353226f807e 100644 --- a/gin/v8_initializer.cc +++ b/gin/v8_initializer.cc @@ -76,11 +76,23 @@ bool GenerateEntropy(unsigned char* buffer, size_t amount) { diff --git a/patches/chromium/feat_allow_code_cache_in_custom_schemes.patch b/patches/chromium/feat_allow_code_cache_in_custom_schemes.patch index 3662e3ff02..b76fc6d5b8 100644 --- a/patches/chromium/feat_allow_code_cache_in_custom_schemes.patch +++ b/patches/chromium/feat_allow_code_cache_in_custom_schemes.patch @@ -414,7 +414,7 @@ index 33e2ff42e4d9da442d522b959a4a21c2f7032b6b..a0d81212327fc17e1f4704e78803c1d7 std::vector extension_schemes; // Registers a URL scheme with a predefined default custom handler. diff --git a/url/url_util.cc b/url/url_util.cc -index 7578135ca53c4421cfc08c722d9471f376a0673c..cd136b7a978adb4fb8f293015817eb55a06f1176 100644 +index c0b42521519d0d13e79c5b4bf67446f006209419..a2727e8450429e1f07824ecb0785fb3c717d56d7 100644 --- a/url/url_util.cc +++ b/url/url_util.cc @@ -131,6 +131,9 @@ struct SchemeRegistry { @@ -427,7 +427,7 @@ index 7578135ca53c4421cfc08c722d9471f376a0673c..cd136b7a978adb4fb8f293015817eb55 // Schemes with a predefined default custom handler. std::vector predefined_handler_schemes; -@@ -667,6 +670,15 @@ const std::vector& GetEmptyDocumentSchemes() { +@@ -666,6 +669,15 @@ const std::vector& GetEmptyDocumentSchemes() { return GetSchemeRegistry().empty_document_schemes; } diff --git a/patches/chromium/feat_configure_launch_options_for_service_process.patch b/patches/chromium/feat_configure_launch_options_for_service_process.patch index c8ad7240ad..f323ca84ab 100644 --- a/patches/chromium/feat_configure_launch_options_for_service_process.patch +++ b/patches/chromium/feat_configure_launch_options_for_service_process.patch @@ -193,7 +193,7 @@ index d9c14f91747bde0e76056d7f2f2ada166e67f994..09335acac17f526fb8d8e42e4b2d993b UtilityProcessHost::Start(std::move(utility_options), diff --git a/content/browser/service_host/utility_process_host.cc b/content/browser/service_host/utility_process_host.cc -index 5101e22a804554d7e289d37f8a4191976763b69f..f00b3a784de14d564b6d02eeb72bc80711ac7395 100644 +index bcb910d6c715535843ef515ee0bd7d3d794fb6c0..3739d028b77b5e33ad0435f99a101b6407128a0d 100644 --- a/content/browser/service_host/utility_process_host.cc +++ b/content/browser/service_host/utility_process_host.cc @@ -241,13 +241,13 @@ UtilityProcessHost::Options& UtilityProcessHost::Options::WithFileToPreload( @@ -259,7 +259,7 @@ index 5101e22a804554d7e289d37f8a4191976763b69f..f00b3a784de14d564b6d02eeb72bc807 UtilityProcessHost::Options& UtilityProcessHost::Options::WithBoundReceiverOnChildProcessForTesting( mojo::GenericPendingReceiver receiver) { -@@ -531,9 +570,30 @@ bool UtilityProcessHost::StartProcess() { +@@ -534,9 +573,30 @@ bool UtilityProcessHost::StartProcess() { } #endif // BUILDFLAG(ENABLE_GPU_CHANNEL_MEDIA_CAPTURE) && !BUILDFLAG(IS_WIN) @@ -520,10 +520,10 @@ index ee2df2f709b17571747f53efc208ea9d234d076f..e20e5d5233db5bf1bbb81560bbf3d403 } // namespace content diff --git a/content/public/browser/sandboxed_process_launcher_delegate.cc b/content/public/browser/sandboxed_process_launcher_delegate.cc -index b0c57f32835b1d04e4c4f136bab327dc0286df4d..0373d505bfefcc9b44148e82524faf4f9d6a6c40 100644 +index 939a9a2e90f799afa3c1aeb4d3247d860aa128cf..96606f9d5b8be1bd30bbbdcce355c1fcf61a96e4 100644 --- a/content/public/browser/sandboxed_process_launcher_delegate.cc +++ b/content/public/browser/sandboxed_process_launcher_delegate.cc -@@ -74,11 +74,23 @@ ZygoteCommunication* SandboxedProcessLauncherDelegate::GetZygote() { +@@ -88,11 +88,23 @@ ZygoteCommunication* SandboxedProcessLauncherDelegate::GetZygote() { } #endif // BUILDFLAG(USE_ZYGOTE) @@ -550,18 +550,18 @@ index b0c57f32835b1d04e4c4f136bab327dc0286df4d..0373d505bfefcc9b44148e82524faf4f #if BUILDFLAG(IS_MAC) diff --git a/content/public/browser/sandboxed_process_launcher_delegate.h b/content/public/browser/sandboxed_process_launcher_delegate.h -index cf86232460f117627f1c822fcf18b334bcf62341..7e559235533a36ceecc24787b07987a4fefc1f8c 100644 +index 4159eef9e1f54c82ac0d8ad6437925dd3c6fa3ec..b835257f686635b91f80c2d6651fb735b866ab7f 100644 --- a/content/public/browser/sandboxed_process_launcher_delegate.h +++ b/content/public/browser/sandboxed_process_launcher_delegate.h -@@ -8,6 +8,7 @@ - #include +@@ -9,6 +9,7 @@ + #include #include "base/environment.h" +#include "base/files/file_path.h" #include "base/files/scoped_file.h" #include "base/process/process.h" #include "build/build_config.h" -@@ -63,10 +64,19 @@ class CONTENT_EXPORT SandboxedProcessLauncherDelegate +@@ -65,10 +66,19 @@ class CONTENT_EXPORT SandboxedProcessLauncherDelegate virtual ZygoteCommunication* GetZygote(); #endif // BUILDFLAG(USE_ZYGOTE) @@ -742,10 +742,10 @@ index 0062d2cb6634b8b29977a0312516b1b13936b40a..888ff36d70c83010f1f45e9eeb2dd6b5 // An interface which can be implemented and registered/unregistered with diff --git a/sandbox/policy/win/sandbox_win.cc b/sandbox/policy/win/sandbox_win.cc -index 2b23d76459e5f714ac33868ea247ebbb9d51bb2a..edb3838b8b30dd0767c1aaeabed29f73ce8249dc 100644 +index 2266ec1424b23841e0215ffefa4506f108368bc2..1aea2187a48e9ecb6746f52654e1d99c5df3ff33 100644 --- a/sandbox/policy/win/sandbox_win.cc +++ b/sandbox/policy/win/sandbox_win.cc -@@ -605,11 +605,9 @@ base::win::ScopedHandle CreateUnsandboxedJob() { +@@ -617,11 +617,9 @@ base::win::ScopedHandle CreateUnsandboxedJob() { // command line flag. ResultCode LaunchWithoutSandbox( const base::CommandLine& cmd_line, @@ -758,7 +758,7 @@ index 2b23d76459e5f714ac33868ea247ebbb9d51bb2a..edb3838b8b30dd0767c1aaeabed29f73 options.feedback_cursor_off = true; // Network process runs in a job even when unsandboxed. This is to ensure it // does not outlive the browser, which could happen if there is a lot of I/O -@@ -900,7 +898,7 @@ bool SandboxWin::InitTargetServices(TargetServices* target_services) { +@@ -912,7 +910,7 @@ bool SandboxWin::InitTargetServices(TargetServices* target_services) { // static ResultCode SandboxWin::GeneratePolicyForSandboxedProcess( const base::CommandLine& cmd_line, @@ -767,7 +767,7 @@ index 2b23d76459e5f714ac33868ea247ebbb9d51bb2a..edb3838b8b30dd0767c1aaeabed29f73 SandboxDelegate* delegate, TargetPolicy* policy) { const base::CommandLine& launcher_process_command_line = -@@ -914,7 +912,7 @@ ResultCode SandboxWin::GeneratePolicyForSandboxedProcess( +@@ -926,7 +924,7 @@ ResultCode SandboxWin::GeneratePolicyForSandboxedProcess( } // Add any handles to be inherited to the policy. @@ -776,7 +776,7 @@ index 2b23d76459e5f714ac33868ea247ebbb9d51bb2a..edb3838b8b30dd0767c1aaeabed29f73 policy->AddHandleToShare(handle); if (!policy->GetConfig()->IsConfigured()) { -@@ -929,6 +927,13 @@ ResultCode SandboxWin::GeneratePolicyForSandboxedProcess( +@@ -941,6 +939,13 @@ ResultCode SandboxWin::GeneratePolicyForSandboxedProcess( // have no effect. These calls can fail with SBOX_ERROR_BAD_PARAMS. policy->SetStdoutHandle(GetStdHandle(STD_OUTPUT_HANDLE)); policy->SetStderrHandle(GetStdHandle(STD_ERROR_HANDLE)); @@ -790,7 +790,7 @@ index 2b23d76459e5f714ac33868ea247ebbb9d51bb2a..edb3838b8b30dd0767c1aaeabed29f73 #endif if (!delegate->PreSpawnTarget(policy)) -@@ -940,7 +945,7 @@ ResultCode SandboxWin::GeneratePolicyForSandboxedProcess( +@@ -952,7 +957,7 @@ ResultCode SandboxWin::GeneratePolicyForSandboxedProcess( // static ResultCode SandboxWin::StartSandboxedProcess( const base::CommandLine& cmd_line, @@ -799,7 +799,7 @@ index 2b23d76459e5f714ac33868ea247ebbb9d51bb2a..edb3838b8b30dd0767c1aaeabed29f73 SandboxDelegate* delegate, StartSandboxedProcessCallback result_callback) { SandboxLaunchTimer timer; -@@ -950,7 +955,7 @@ ResultCode SandboxWin::StartSandboxedProcess( +@@ -962,7 +967,7 @@ ResultCode SandboxWin::StartSandboxedProcess( *base::CommandLine::ForCurrentProcess())) { base::Process process; ResultCode result = @@ -808,7 +808,7 @@ index 2b23d76459e5f714ac33868ea247ebbb9d51bb2a..edb3838b8b30dd0767c1aaeabed29f73 DWORD last_error = GetLastError(); std::move(result_callback).Run(std::move(process), last_error, result); return SBOX_ALL_OK; -@@ -960,7 +965,7 @@ ResultCode SandboxWin::StartSandboxedProcess( +@@ -972,7 +977,7 @@ ResultCode SandboxWin::StartSandboxedProcess( timer.OnPolicyCreated(); ResultCode result = GeneratePolicyForSandboxedProcess( diff --git a/patches/chromium/feat_corner_smoothing_css_rule_and_blink_painting.patch b/patches/chromium/feat_corner_smoothing_css_rule_and_blink_painting.patch index dc0e4599e5..a42d1b796d 100644 --- a/patches/chromium/feat_corner_smoothing_css_rule_and_blink_painting.patch +++ b/patches/chromium/feat_corner_smoothing_css_rule_and_blink_painting.patch @@ -20,7 +20,7 @@ making three primary changes to Blink: * Controls whether the CSS rule is available. diff --git a/third_party/blink/public/mojom/use_counter/metrics/css_property_id.mojom b/third_party/blink/public/mojom/use_counter/metrics/css_property_id.mojom -index 47bcd315f50d54ede50676997c14a84cc78fae08..8703f0fb80901f92f798a3d8bcc5303ae3e4fd2e 100644 +index 3d92fdce159a52728f572481f23d27758beafb9a..cae9673c37f65ca9a98e43f544d1c1651f6593c2 100644 --- a/third_party/blink/public/mojom/use_counter/metrics/css_property_id.mojom +++ b/third_party/blink/public/mojom/use_counter/metrics/css_property_id.mojom @@ -50,7 +50,7 @@ enum CSSSampleId { @@ -33,10 +33,10 @@ index 47bcd315f50d54ede50676997c14a84cc78fae08..8703f0fb80901f92f798a3d8bcc5303a // per page visit for each CSS histogram being logged on the blink side and the // browser side. diff --git a/third_party/blink/renderer/build/scripts/core/css/css_properties.py b/third_party/blink/renderer/build/scripts/core/css/css_properties.py -index 576fb9bff78221a61236a76a597b6b66ae8a5e6a..78e844e7dd0bd85640b208bfcdd385fdd553e255 100755 +index 6e60de1319c5506d7180719fa230ab9cf537b832..e570e335fbd413340ddedeee423eca71275b4c1c 100755 --- a/third_party/blink/renderer/build/scripts/core/css/css_properties.py +++ b/third_party/blink/renderer/build/scripts/core/css/css_properties.py -@@ -324,7 +324,7 @@ class CSSProperties(object): +@@ -346,7 +346,7 @@ class CSSProperties(object): name_without_leading_dash = name_without_leading_dash[1:] internal_visited_order = 1 if name_without_leading_dash.startswith( @@ -46,10 +46,10 @@ index 576fb9bff78221a61236a76a597b6b66ae8a5e6a..78e844e7dd0bd85640b208bfcdd385fd 'internal-forced-visited-'): internal_visited_order = 0 diff --git a/third_party/blink/renderer/core/css/css_properties.json5 b/third_party/blink/renderer/core/css/css_properties.json5 -index 940deeed996413815a4b178a2ce6c4ab92a59a43..62f3881998e5197b3c43b04618f8efbc623129c5 100644 +index 092b19939b9f08fe8920eb631fc5eff057ec5b49..d6a413ee1de2cadbb2985d717432f740ce318266 100644 --- a/third_party/blink/renderer/core/css/css_properties.json5 +++ b/third_party/blink/renderer/core/css/css_properties.json5 -@@ -9320,6 +9320,26 @@ +@@ -9550,6 +9550,26 @@ property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], }, @@ -77,7 +77,7 @@ index 940deeed996413815a4b178a2ce6c4ab92a59a43..62f3881998e5197b3c43b04618f8efbc { name: "-internal-visited-color", diff --git a/third_party/blink/renderer/core/css/css_property_equality.cc b/third_party/blink/renderer/core/css/css_property_equality.cc -index e7077a46930b158ee062e746f643cb3afe75a93e..0b8d25ab2ac81b0d5a6b85d233c8787464bbfb2c 100644 +index add3cfe363fcd6e0bf05429f21290ede31059936..ddf26f82b131d3f017115484b14307b0fd29bc58 100644 --- a/third_party/blink/renderer/core/css/css_property_equality.cc +++ b/third_party/blink/renderer/core/css/css_property_equality.cc @@ -402,6 +402,8 @@ bool CSSPropertyEquality::PropertiesEqual(const PropertyHandle& property, @@ -90,10 +90,10 @@ index e7077a46930b158ee062e746f643cb3afe75a93e..0b8d25ab2ac81b0d5a6b85d233c87874 return a.EmptyCells() == b.EmptyCells(); case CSSPropertyID::kFill: diff --git a/third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc b/third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc -index bc07180eb81a1f12c23c8c40ec5d92bccc11eb5a..075f8f494b35fa411b6d609a9e853c864d84bb43 100644 +index b55f04439a2a965c66f852d1f2113aff4c6d5cec..641452e965ed343dd1008a7163d88114b058171a 100644 --- a/third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc +++ b/third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc -@@ -12851,5 +12851,36 @@ const CSSValue* InternalEmptyLineHeight::ParseSingleValue( +@@ -13116,5 +13116,36 @@ const CSSValue* InternalEmptyLineHeight::ParseSingleValue( CSSValueID::kNone>(stream); } @@ -131,10 +131,10 @@ index bc07180eb81a1f12c23c8c40ec5d92bccc11eb5a..075f8f494b35fa411b6d609a9e853c86 } // namespace css_longhand } // namespace blink diff --git a/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc b/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc -index 6ef37baf747592faee92804fc96b36004f65ed92..6a0eb1dfb758eb6610819232dd1ca632118ad16c 100644 +index c75e87a27ba45c6e1c80039158ef4a635b796497..2e477e4cd16214442274d85fbc7fd268204d22ad 100644 --- a/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc +++ b/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc -@@ -4180,6 +4180,15 @@ PositionTryFallback StyleBuilderConverter::ConvertSinglePositionTryFallback( +@@ -4173,6 +4173,15 @@ PositionTryFallback StyleBuilderConverter::ConvertSinglePositionTryFallback( return PositionTryFallback(scoped_name, tactic_list); } @@ -202,10 +202,10 @@ index 19cda703154dab9397827ab6ea66c2ca446c644d..dd5943c511886f4e39b2e7f10e67e60f return result; } diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn -index 83ebf4a21a9d42b307a8a2108e118174d6d62f0e..160b3828d38f55734740cc07d6f851099922f70b 100644 +index 878869ec15e97201f8aa557e30590a3c170a468c..62b32313503c7a77bdcf83dc3998bd3b624988b2 100644 --- a/third_party/blink/renderer/platform/BUILD.gn +++ b/third_party/blink/renderer/platform/BUILD.gn -@@ -1669,6 +1669,8 @@ component("platform") { +@@ -1671,6 +1671,8 @@ component("platform") { "widget/widget_base.h", "widget/widget_base_client.h", "windows_keyboard_codes.h", @@ -313,7 +313,7 @@ index 18f283e625101318ee14b50e6e765dfd1c9a1a44..44a3a55974c9e4b9e715574075f25661 auto DrawAsSinglePath = [&]() { diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -index add134dd9f197069e36c6355e7c83ce060461b7d..50fc6bc67fa1edcfff786f2c98b3fe67381b6189 100644 +index d198d74cf6c101268082a7676b861be369675cf4..84996d23da89792c9f2efbba6888db5cadf798d3 100644 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 @@ -214,6 +214,10 @@ diff --git a/patches/chromium/feat_enable_offscreen_rendering_with_viz_compositor.patch b/patches/chromium/feat_enable_offscreen_rendering_with_viz_compositor.patch index 5784938f05..8d038e65c6 100644 --- a/patches/chromium/feat_enable_offscreen_rendering_with_viz_compositor.patch +++ b/patches/chromium/feat_enable_offscreen_rendering_with_viz_compositor.patch @@ -8,7 +8,7 @@ rendering with the viz compositor by way of a custom HostDisplayClient and LayeredWindowUpdater. diff --git a/components/viz/host/host_display_client.cc b/components/viz/host/host_display_client.cc -index aed835411f5728c5685baa43eda2dd1585119b18..0e66085b1c457c1f1f6be241c7d331d735e15942 100644 +index b153c538488b7b77af0630a454604d9fb7eba487..1b97bfae745d3aeaa4ebd3d3a0dfc64f48da0d70 100644 --- a/components/viz/host/host_display_client.cc +++ b/components/viz/host/host_display_client.cc @@ -49,9 +49,9 @@ void HostDisplayClient::OnDisplayReceivedCALayerParams( @@ -39,7 +39,7 @@ index aed835411f5728c5685baa43eda2dd1585119b18..0e66085b1c457c1f1f6be241c7d331d7 gpu::SurfaceHandle child_window) { NOTREACHED(); diff --git a/components/viz/host/host_display_client.h b/components/viz/host/host_display_client.h -index 07fe1ea0e8e5f28428a164eedc28d4e5150ab13b..1a20c4b5765ce504c64c0dabfe3080fb65dbc03d 100644 +index 03410160827d5fde6478bb1b16f82b1367413183..2a1368e85b789b51f41625d1db877185ad7d7a6c 100644 --- a/components/viz/host/host_display_client.h +++ b/components/viz/host/host_display_client.h @@ -39,6 +39,9 @@ class VIZ_HOST_EXPORT HostDisplayClient : public mojom::DisplayClient { @@ -521,7 +521,7 @@ index b5154321105f08335b67ad2d552afa61337a4976..cb28230d9a8da6bd2259ef0c89801329 waiting_on_draw_ack_ = true; diff --git a/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc b/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc -index caa78654fff6978a4ce22292147092675074ab40..35dbf28fc67d1d5e4d7c13b39bc7937aa54d23bd 100644 +index 1dc24df8320bb0a878d6ae838a984b39f6b3922d..be0b51d7fec5dcc12413a8b4c1b63a0a03dd618b 100644 --- a/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc +++ b/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc @@ -131,7 +131,8 @@ RootCompositorFrameSinkImpl::Create( @@ -563,7 +563,7 @@ index 399fba1a3d4e601dc2cdd5f1f4def8b7fd7a3011..8bcbe0d26c80323155d536c0d3a177a1 gpu::SyncPointManager* GetSyncPointManager() override; gpu::Scheduler* GetGpuScheduler() override; diff --git a/content/browser/compositor/viz_process_transport_factory.cc b/content/browser/compositor/viz_process_transport_factory.cc -index 8eb6ce27082c858283f56cc67f4f3012d4a624c2..6228b6935102002fdbaff31dccf5a1a8257d395b 100644 +index 59a7d48453bc4d317c5760f57ad3bf84d5a81106..6b03be074cfd1ef113394debbfeeb6463b96dc2e 100644 --- a/content/browser/compositor/viz_process_transport_factory.cc +++ b/content/browser/compositor/viz_process_transport_factory.cc @@ -406,8 +406,14 @@ void VizProcessTransportFactory::OnEstablishedGpuChannel( @@ -619,10 +619,10 @@ index 2f462f0deb5fc8a637457243fb5d5849fc214d14..695869b83cefaa24af93a2e11b39de05 + Draw(gfx.mojom.Rect damage_rect) => (); }; diff --git a/ui/compositor/compositor.h b/ui/compositor/compositor.h -index a54db013c6057ec4af188e66bda932e2c5595d67..25176dd54365848ff09f0de77d31aed77de54a15 100644 +index 2d9a64dc320017b6b5c4ff9d67674493f440700c..cbca71f44ec504c06ae3a119695db205f42302fc 100644 --- a/ui/compositor/compositor.h +++ b/ui/compositor/compositor.h -@@ -88,6 +88,7 @@ class DisplayPrivate; +@@ -89,6 +89,7 @@ class DisplayPrivate; class ExternalBeginFrameController; } // namespace mojom @@ -630,7 +630,7 @@ index a54db013c6057ec4af188e66bda932e2c5595d67..25176dd54365848ff09f0de77d31aed7 class HostFrameSinkManager; class LocalSurfaceId; class RasterContextProvider; -@@ -145,6 +146,15 @@ class COMPOSITOR_EXPORT ExternalBeginFrameControllerClientFactory { +@@ -146,6 +147,15 @@ class COMPOSITOR_EXPORT ExternalBeginFrameControllerClientFactory { viz::mojom::ExternalBeginFrameControllerClient> CreateExternalBeginFrameControllerClient() = 0; }; @@ -646,7 +646,7 @@ index a54db013c6057ec4af188e66bda932e2c5595d67..25176dd54365848ff09f0de77d31aed7 // Compositor object to take care of GPU painting. // A Browser compositor object is responsible for generating the final -@@ -189,6 +199,9 @@ class COMPOSITOR_EXPORT Compositor : public base::PowerSuspendObserver, +@@ -190,6 +200,9 @@ class COMPOSITOR_EXPORT Compositor : public base::PowerSuspendObserver, // Schedules a redraw of the layer tree associated with this compositor. void ScheduleDraw(); @@ -656,7 +656,7 @@ index a54db013c6057ec4af188e66bda932e2c5595d67..25176dd54365848ff09f0de77d31aed7 // Sets the root of the layer tree drawn by this Compositor. The root layer // must have no parent. The compositor's root layer is reset if the root layer // is destroyed. NULL can be passed to reset the root layer, in which case the -@@ -630,6 +643,8 @@ class COMPOSITOR_EXPORT Compositor : public base::PowerSuspendObserver, +@@ -631,6 +644,8 @@ class COMPOSITOR_EXPORT Compositor : public base::PowerSuspendObserver, simple_begin_frame_observers_; std::unique_ptr host_begin_frame_observer_; diff --git a/patches/chromium/feat_enable_passing_exit_code_on_service_process_crash.patch b/patches/chromium/feat_enable_passing_exit_code_on_service_process_crash.patch index 3b7fc085fd..2708540df4 100644 --- a/patches/chromium/feat_enable_passing_exit_code_on_service_process_crash.patch +++ b/patches/chromium/feat_enable_passing_exit_code_on_service_process_crash.patch @@ -84,10 +84,10 @@ index 2648adb1cf38ab557b66ffd0e3034b26b04d76d6..98eab587f343f6ca472efc3d4e7b31b2 private: const std::string service_interface_name_; diff --git a/content/browser/service_host/utility_process_host.cc b/content/browser/service_host/utility_process_host.cc -index f00b3a784de14d564b6d02eeb72bc80711ac7395..e14f4b3b4cde8182431faee7c46d0bf901f98d9e 100644 +index 3739d028b77b5e33ad0435f99a101b6407128a0d..512426af65fc421dfe48fe07a2a9a8274e5f33ec 100644 --- a/content/browser/service_host/utility_process_host.cc +++ b/content/browser/service_host/utility_process_host.cc -@@ -648,7 +648,7 @@ void UtilityProcessHost::OnProcessCrashed(int exit_code) { +@@ -651,7 +651,7 @@ void UtilityProcessHost::OnProcessCrashed(int exit_code) { : Client::CrashType::kPreIpcInitialization; } #endif // BUILDFLAG(IS_WIN) diff --git a/patches/chromium/feat_ensure_mas_builds_of_the_same_application_can_use_safestorage.patch b/patches/chromium/feat_ensure_mas_builds_of_the_same_application_can_use_safestorage.patch index dad64f27b4..9c598df4e0 100644 --- a/patches/chromium/feat_ensure_mas_builds_of_the_same_application_can_use_safestorage.patch +++ b/patches/chromium/feat_ensure_mas_builds_of_the_same_application_can_use_safestorage.patch @@ -12,7 +12,7 @@ We attempt to migrate the safe storage key from the old account, if that migrati Existing apps that aren't built for the app store should be unimpacted, there is one edge case where a user uses BOTH an AppStore and a darwin build of the same app only one will keep it's access to the safestorage key as during the migration we delete the old account. This is an acceptable edge case as no one should be actively using two versions of the same app. diff --git a/components/os_crypt/common/keychain_password_mac.mm b/components/os_crypt/common/keychain_password_mac.mm -index a3a8c87ad73f3bc69fc567f9f9d054b185093d7b..e9e0259f8faf35576a6a7ca658c5041e2a1fefd3 100644 +index 69bfbbf0f58ca3b05a601bea87b14dcf0fb2eecb..d65359cfca82ca8c31922e8856435cf13b40810f 100644 --- a/components/os_crypt/common/keychain_password_mac.mm +++ b/components/os_crypt/common/keychain_password_mac.mm @@ -32,6 +32,12 @@ @@ -28,7 +28,7 @@ index a3a8c87ad73f3bc69fc567f9f9d054b185093d7b..e9e0259f8faf35576a6a7ca658c5041e // These two strings ARE indeed user facing. But they are used to access // the encryption keyword. So as to not lose encrypted data when system // locale changes we DO NOT LOCALIZE. -@@ -88,16 +94,51 @@ +@@ -88,16 +94,55 @@ uma_result); }; @@ -46,9 +46,7 @@ index a3a8c87ad73f3bc69fc567f9f9d054b185093d7b..e9e0259f8faf35576a6a7ca658c5041e + // non-suffixed account exists. If it does we can use that key and migrate it + // to the new account. + if (password.error() == errSecItemNotFound) { -+ base::apple::ScopedCFTypeRef item_ref; -+ password = keychain.FindGenericPassword(service_name, account_name, -+ item_ref.InitializeInto()); ++ password = keychain.FindGenericPassword(service_name, account_name); + + if (password.has_value()) { + // If we found the legacy account name we should copy it over to @@ -60,7 +58,13 @@ index a3a8c87ad73f3bc69fc567f9f9d054b185093d7b..e9e0259f8faf35576a6a7ca658c5041e + // If we successfully made the suffixed account we can delete the old + // account to ensure new apps don't try to use it and run into IAM + // issues -+ error = keychain.ItemDelete(item_ref.get()); ++ NSDictionary* delete_query = @{ ++ (__bridge id)kSecClass : (__bridge id)kSecClassGenericPassword, ++ (__bridge id)kSecAttrService : @(service_name.c_str()), ++ (__bridge id)kSecAttrAccount : @(account_name.c_str()), ++ }; ++ error = keychain.ItemDelete( ++ (__bridge CFDictionaryRef)delete_query); + if (error != noErr) { + OSSTATUS_DLOG(ERROR, error) + << "Keychain delete for legacy key failed"; @@ -82,142 +86,3 @@ index a3a8c87ad73f3bc69fc567f9f9d054b185093d7b..e9e0259f8faf35576a6a7ca658c5041e } OSSTATUS_LOG(ERROR, password.error()) << "Keychain lookup failed"; -diff --git a/crypto/apple/keychain.h b/crypto/apple/keychain.h -index 1d2264a5229206f45d1a9bcb009d47180efa6a8b..1dcf2b1d09831012c7f5768a5c6193d529efc821 100644 ---- a/crypto/apple/keychain.h -+++ b/crypto/apple/keychain.h -@@ -17,6 +17,14 @@ - - namespace crypto::apple { - -+// TODO(smaddock): Migrate to SecItem* as part of -+// https://issues.chromium.org/issues/40233280 -+#if BUILDFLAG(IS_IOS) -+using AppleSecKeychainItemRef = void*; -+#else -+using AppleSecKeychainItemRef = SecKeychainItemRef; -+#endif -+ - // Wraps the KeychainServices API in a very thin layer, to allow it to be - // mocked out for testing. - -@@ -44,13 +52,18 @@ class CRYPTO_EXPORT Keychain { - // std::vector arm is populated instead. - virtual base::expected, OSStatus> FindGenericPassword( - std::string_view service_name, -- std::string_view account_name) const = 0; -+ std::string_view account_name, -+ AppleSecKeychainItemRef* item = nullptr) const = 0; - - virtual OSStatus AddGenericPassword( - std::string_view service_name, - std::string_view account_name, - base::span password) const = 0; - -+#if BUILDFLAG(IS_MAC) -+ virtual OSStatus ItemDelete(AppleSecKeychainItemRef item) const = 0; -+#endif // !BUILDFLAG(IS_MAC) -+ - protected: - Keychain(); - }; -diff --git a/crypto/apple/keychain_secitem.h b/crypto/apple/keychain_secitem.h -index eb74282adaba24ebd667f0ab3fc34dbe4cd8b527..7b91eb27489cece38eca719986255c5ec01c4bac 100644 ---- a/crypto/apple/keychain_secitem.h -+++ b/crypto/apple/keychain_secitem.h -@@ -17,12 +17,17 @@ class CRYPTO_EXPORT KeychainSecItem : public Keychain { - - base::expected, OSStatus> FindGenericPassword( - std::string_view service_name, -- std::string_view account_name) const override; -+ std::string_view account_name, -+ AppleSecKeychainItemRef* item) const override; - - OSStatus AddGenericPassword( - std::string_view service_name, - std::string_view account_name, - base::span password) const override; -+ -+#if BUILDFLAG(IS_MAC) -+ OSStatus ItemDelete(AppleSecKeychainItemRef item) const override; -+#endif // !BUILDFLAG(IS_MAC) - }; - - } // namespace crypto::apple -diff --git a/crypto/apple/keychain_secitem.mm b/crypto/apple/keychain_secitem.mm -index a8d50dd27db52526b0635c2b97f076df1994a6aa..e45f0d1079c8acfae55cf873e66ab3d9a10ad8ee 100644 ---- a/crypto/apple/keychain_secitem.mm -+++ b/crypto/apple/keychain_secitem.mm -@@ -138,7 +138,8 @@ - - base::expected, OSStatus> - KeychainSecItem::FindGenericPassword(std::string_view service_name, -- std::string_view account_name) const { -+ std::string_view account_name, -+ AppleSecKeychainItemRef* item) const { - base::apple::ScopedCFTypeRef query = - MakeGenericPasswordQuery(service_name, account_name); - -@@ -165,4 +166,13 @@ - return base::ToVector(base::apple::CFDataToSpan(password_data)); - } - -+#if BUILDFLAG(IS_MAC) -+OSStatus KeychainSecItem::ItemDelete(AppleSecKeychainItemRef item) const { -+ // TODO(smaddock): AppleSecKeychainItemRef aliases the deprecated -+ // SecKeychainItemRef. Need to update this to accept a CFDictionary in the -+ // case of SecItemDelete. -+ return noErr; -+} -+#endif -+ - } // namespace crypto::apple -diff --git a/crypto/apple/mock_keychain.cc b/crypto/apple/mock_keychain.cc -index 080806aaf3fc10548b160850ad36ef3519ea2b6f..21f04059d67ba41118face6ee9327aa05e854362 100644 ---- a/crypto/apple/mock_keychain.cc -+++ b/crypto/apple/mock_keychain.cc -@@ -32,7 +32,8 @@ MockKeychain::~MockKeychain() = default; - - base::expected, OSStatus> - MockKeychain::FindGenericPassword(std::string_view service_name, -- std::string_view account_name) const { -+ std::string_view account_name, -+ AppleSecKeychainItemRef* item) const { - IncrementKeychainAccessHistogram(); - - // When simulating |noErr|, return canned |passwordData| and -@@ -56,6 +57,10 @@ OSStatus MockKeychain::AddGenericPassword( - return noErr; - } - -+OSStatus MockKeychain::ItemDelete(SecKeychainItemRef itemRef) const { -+ return noErr; -+} -+ - std::string MockKeychain::GetEncryptionPassword() const { - IncrementKeychainAccessHistogram(); - return kPassword; -diff --git a/crypto/apple/mock_keychain.h b/crypto/apple/mock_keychain.h -index 680efe0312c81449e069c19d9c6ef146da7834db..b49c2ba5f639344ab57e9f14c098effc38729d1f 100644 ---- a/crypto/apple/mock_keychain.h -+++ b/crypto/apple/mock_keychain.h -@@ -36,13 +36,18 @@ class CRYPTO_EXPORT MockKeychain : public Keychain { - // Keychain implementation. - base::expected, OSStatus> FindGenericPassword( - std::string_view service_name, -- std::string_view account_name) const override; -+ std::string_view account_name, -+ AppleSecKeychainItemRef* item) const override; - - OSStatus AddGenericPassword( - std::string_view service_name, - std::string_view account_name, - base::span password) const override; - -+#if !BUILDFLAG(IS_IOS) -+ OSStatus ItemDelete(SecKeychainItemRef itemRef) const override; -+#endif // !BUILDFLAG(IS_IOS) -+ - // Returns the password that OSCrypt uses to generate its encryption key. - std::string GetEncryptionPassword() const; - diff --git a/patches/chromium/feat_expose_raw_response_headers_from_urlloader.patch b/patches/chromium/feat_expose_raw_response_headers_from_urlloader.patch index 299cfa8b87..ceca88aeff 100644 --- a/patches/chromium/feat_expose_raw_response_headers_from_urlloader.patch +++ b/patches/chromium/feat_expose_raw_response_headers_from_urlloader.patch @@ -17,10 +17,10 @@ headers, moving forward we should find a way in upstream to provide access to these headers for loader clients created on the browser process. diff --git a/services/network/public/cpp/resource_request.cc b/services/network/public/cpp/resource_request.cc -index dd0ebad1fdcadab06b25df192a85153d1e65e141..7716dca3cdd57d484b8499b80e50e0c8accc510f 100644 +index 189230e448183c52b9da41ecc520b366d1bea14f..689d1ecf00b553c039b9d9e19540cd5a3e053118 100644 --- a/services/network/public/cpp/resource_request.cc +++ b/services/network/public/cpp/resource_request.cc -@@ -197,6 +197,7 @@ ResourceRequest::TrustedParams& ResourceRequest::TrustedParams::operator=( +@@ -203,6 +203,7 @@ ResourceRequest::TrustedParams& ResourceRequest::TrustedParams::operator=( allow_cookies_from_browser = other.allow_cookies_from_browser; include_request_cookies_with_response = other.include_request_cookies_with_response; @@ -28,7 +28,7 @@ index dd0ebad1fdcadab06b25df192a85153d1e65e141..7716dca3cdd57d484b8499b80e50e0c8 enabled_client_hints = other.enabled_client_hints; cookie_observer = Clone(&const_cast&>( -@@ -232,6 +233,7 @@ bool ResourceRequest::TrustedParams::EqualsForTesting( +@@ -241,6 +242,7 @@ bool ResourceRequest::TrustedParams::EqualsForTesting( const TrustedParams& other) const { return isolation_info.IsEqualForTesting(other.isolation_info) && disable_secure_dns == other.disable_secure_dns && @@ -37,10 +37,10 @@ index dd0ebad1fdcadab06b25df192a85153d1e65e141..7716dca3cdd57d484b8499b80e50e0c8 allow_cookies_from_browser == other.allow_cookies_from_browser && include_request_cookies_with_response == diff --git a/services/network/public/cpp/resource_request.h b/services/network/public/cpp/resource_request.h -index 3fa1c79443ca23ad6b25e38daf6e95e8a899740c..67c5a7b55569704167fe089d1d3d5c24f666a429 100644 +index 415e80174751de75bc9ef92a435679e22c32b39e..df25f808b55bccd72d5edba2be3f06a9f74f2e15 100644 --- a/services/network/public/cpp/resource_request.h +++ b/services/network/public/cpp/resource_request.h -@@ -98,6 +98,7 @@ struct COMPONENT_EXPORT(NETWORK_CPP_BASE) ResourceRequest { +@@ -116,6 +116,7 @@ struct COMPONENT_EXPORT(NETWORK_CPP_BASE) ResourceRequest { bool has_user_activation = false; bool allow_cookies_from_browser = false; bool include_request_cookies_with_response = false; @@ -49,7 +49,7 @@ index 3fa1c79443ca23ad6b25e38daf6e95e8a899740c..67c5a7b55569704167fe089d1d3d5c24 mojo::PendingRemote cookie_observer; mojo::PendingRemote trust_token_observer; diff --git a/services/network/public/cpp/url_request_mojom_traits.cc b/services/network/public/cpp/url_request_mojom_traits.cc -index 646be484e4d5b3b917bed0ee2d0a52fdf57a8291..b49035fab82ddb29e211e1e215c70aab0a625222 100644 +index 599ea96d28ad13e76c50a2153c59e563fb25b6b6..6b85715c4034f6894d550b62f5cef45e691db967 100644 --- a/services/network/public/cpp/url_request_mojom_traits.cc +++ b/services/network/public/cpp/url_request_mojom_traits.cc @@ -67,6 +67,7 @@ bool StructTraits& enabled_client_hints( diff --git a/services/network/public/mojom/url_request.mojom b/services/network/public/mojom/url_request.mojom -index affb80d9ffcc8da3f572b1a1461d2cd648ef3376..3f6301b1732171073c5fb072feaf12e3fb55c74c 100644 +index 0a0c6d22bdb2ce106e8e18adb5141999167e3f93..e49e8f85bdd122ee263d69efe0ee0abc139e83b3 100644 --- a/services/network/public/mojom/url_request.mojom +++ b/services/network/public/mojom/url_request.mojom @@ -111,6 +111,9 @@ struct TrustedUrlRequestParams { @@ -112,10 +112,10 @@ index 13a211107294e856616d1626fa1dc9c79eb5646c..549a36886d665c1a8100f09b7a86c8dc string mime_type; diff --git a/services/network/url_loader.cc b/services/network/url_loader.cc -index 1bb1dc14917765f83e9369cdc9b4daec1a66838e..009d1baa692bc5e574c5af7119b69ed1e644e0cd 100644 +index 4966eab4be1f80102677b555ed872157b64f983a..a3c4abd3b82bdd8849a10b1cc9d13d68006e972a 100644 --- a/services/network/url_loader.cc +++ b/services/network/url_loader.cc -@@ -370,6 +370,9 @@ URLLoader::URLLoader( +@@ -373,6 +373,9 @@ URLLoader::URLLoader( mojo::SimpleWatcher::ArmingPolicy::MANUAL, TaskRunner(request.priority)), per_factory_orb_state_(context.GetMutableOrbState()), @@ -125,7 +125,7 @@ index 1bb1dc14917765f83e9369cdc9b4daec1a66838e..009d1baa692bc5e574c5af7119b69ed1 devtools_request_id_(request.devtools_request_id), options_(PopulateOptions(options, factory_params_->is_orb_enabled, -@@ -562,7 +565,7 @@ void URLLoader::SetUpUrlRequestCallbacks( +@@ -570,7 +573,7 @@ void URLLoader::SetUpUrlRequestCallbacks( &URLLoader::IsSharedDictionaryReadAllowed, base::Unretained(this))); } @@ -134,7 +134,7 @@ index 1bb1dc14917765f83e9369cdc9b4daec1a66838e..009d1baa692bc5e574c5af7119b69ed1 url_request_->SetResponseHeadersCallback(base::BindRepeating( &URLLoader::SetRawResponseHeaders, base::Unretained(this))); } -@@ -1152,6 +1155,19 @@ void URLLoader::OnResponseStarted(net::URLRequest* url_request, int net_error) { +@@ -1168,6 +1171,19 @@ void URLLoader::OnResponseStarted(net::URLRequest* url_request, int net_error) { } response_ = BuildResponseHead(); @@ -153,12 +153,12 @@ index 1bb1dc14917765f83e9369cdc9b4daec1a66838e..009d1baa692bc5e574c5af7119b69ed1 + } DispatchOnRawResponse(); - ad_auction_event_record_request_helper_.HandleResponse( + if (expected_response_headers_for_synthetic_response && diff --git a/services/network/url_loader.h b/services/network/url_loader.h -index a2bd92673272f1d356d76fbd1ac9f8195d0e40ee..a83c98f8a6fdf86c563bc99829543d9ffde8c5f6 100644 +index 3411c79d785cc6f9d6404e6384ec8e97f6bad8d7..9890fee8cba2da4bf126d4849a4ca41e3d3d2209 100644 --- a/services/network/url_loader.h +++ b/services/network/url_loader.h -@@ -625,6 +625,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) URLLoader +@@ -629,6 +629,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) URLLoader std::unique_ptr resource_scheduler_request_handle_; diff --git a/patches/chromium/feat_separate_content_settings_callback_for_sync_and_async_clipboard.patch b/patches/chromium/feat_separate_content_settings_callback_for_sync_and_async_clipboard.patch index 4f1f5e02dd..7bd0908474 100644 --- a/patches/chromium/feat_separate_content_settings_callback_for_sync_and_async_clipboard.patch +++ b/patches/chromium/feat_separate_content_settings_callback_for_sync_and_async_clipboard.patch @@ -20,7 +20,7 @@ This patch will be removed when the deprecated sync api support is removed. diff --git a/components/permissions/permission_util.cc b/components/permissions/permission_util.cc -index 1e0b4bfd8b31f9ccbd663e8bb7c3990a9fa9c879..d9d7e902dfaaf360dc80bd292b56eeba9cfc5f12 100644 +index 26f508b259cab776d32c95731900b30cc8df649f..3b25ba24e81c7b5b27e65f30ea7a2c174c397efa 100644 --- a/components/permissions/permission_util.cc +++ b/components/permissions/permission_util.cc @@ -552,7 +552,8 @@ ContentSettingsType PermissionUtil::PermissionTypeToContentSettingsTypeSafe( diff --git a/patches/chromium/fix_adjust_headless_mode_handling_in_native_widget.patch b/patches/chromium/fix_adjust_headless_mode_handling_in_native_widget.patch index 2f5d1bee98..fee6ad7cfe 100644 --- a/patches/chromium/fix_adjust_headless_mode_handling_in_native_widget.patch +++ b/patches/chromium/fix_adjust_headless_mode_handling_in_native_widget.patch @@ -23,7 +23,7 @@ additional headless changes from breaking macOS window behavior. https://chromium-review.googlesource.com/c/chromium/src/+/7487666 diff --git a/components/remote_cocoa/app_shim/native_widget_mac_nswindow.mm b/components/remote_cocoa/app_shim/native_widget_mac_nswindow.mm -index 96588e0dfd084822f5c98cfaf2ee3c403fbd5e5f..b7983880254a09722d540c41937095f63cbb8109 100644 +index 2a195724de141fd4f0f06c03314e6096a0d0ed3f..2532ae21d9244b2ec9747ef7d9916668dcad145c 100644 --- a/components/remote_cocoa/app_shim/native_widget_mac_nswindow.mm +++ b/components/remote_cocoa/app_shim/native_widget_mac_nswindow.mm @@ -218,6 +218,7 @@ @implementation NativeWidgetMacNSWindow { @@ -67,23 +67,23 @@ index 96588e0dfd084822f5c98cfaf2ee3c403fbd5e5f..b7983880254a09722d540c41937095f6 return _headless_info.get(); } diff --git a/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.mm b/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.mm -index b99b8ec014c81c1d6ad14a6758568dd864102e2a..5747d9b79444674b65d481248fb0576679cdef4e 100644 +index 01d4ee891850efc4b27a8663c9be1c754fd2843b..f241962a1e0e40b95b219bc9578fba5f0a1c8669 100644 --- a/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.mm +++ b/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.mm -@@ -534,7 +534,7 @@ NSUInteger CountBridgedWindows(NSArray* child_windows) { +@@ -535,7 +535,7 @@ NSUInteger CountBridgedWindows(NSArray* child_windows) { is_translucent_window_ = params->is_translucent; pending_restoration_data_ = params->state_restoration_data; - if (display::Screen::Get()->IsHeadless()) { + if (params->is_headless_mode_window) { - headless_mode_window_ = std::make_optional(); + [window_ setIsHeadless:YES]; } diff --git a/components/remote_cocoa/common/native_widget_ns_window.mojom b/components/remote_cocoa/common/native_widget_ns_window.mojom -index 11954a3adfb6d517b6dc8e780a4a9aba8a0bf98a..1ddc1f34055c8b42177703ccc2f0d006294430da 100644 +index 7387ef1852678d48908bd1d7dc0e5d44ca613195..4aa37d1f54758e2acbf9b4e467cc22fc1e092e68 100644 --- a/components/remote_cocoa/common/native_widget_ns_window.mojom +++ b/components/remote_cocoa/common/native_widget_ns_window.mojom -@@ -81,6 +81,8 @@ struct NativeWidgetNSWindowInitParams { +@@ -83,6 +83,8 @@ struct NativeWidgetNSWindowInitParams { // NSWindowCollectionBehaviorParticipatesInCycle (this is not the // default for NSWindows with NSWindowStyleMaskBorderless). bool force_into_collection_cycle; @@ -93,22 +93,22 @@ index 11954a3adfb6d517b6dc8e780a4a9aba8a0bf98a..1ddc1f34055c8b42177703ccc2f0d006 // window's workspace and fullscreen state, and can be retrieved from or // applied to a window. diff --git a/ui/views/cocoa/native_widget_mac_ns_window_host.h b/ui/views/cocoa/native_widget_mac_ns_window_host.h -index 2239b085ac7fd87fe06aef1001551f8afe8e21e4..9ead3ab0755fe5c3500893325f0597e07e7241cc 100644 +index dccf58b3d0d1003d236e204cde4edbab00610eac..3bceb396989c59449e7f76183b9d13721509349e 100644 --- a/ui/views/cocoa/native_widget_mac_ns_window_host.h +++ b/ui/views/cocoa/native_widget_mac_ns_window_host.h -@@ -556,6 +556,7 @@ class VIEWS_EXPORT NativeWidgetMacNSWindowHost +@@ -560,6 +560,7 @@ class VIEWS_EXPORT NativeWidgetMacNSWindowHost bool is_miniaturized_ = false; bool is_window_key_ = false; bool is_mouse_capture_active_ = false; + bool is_headless_mode_window_ = false; bool is_zoomed_ = false; + bool is_visible_on_all_workspaces_ = false; gfx::Rect window_bounds_before_fullscreen_; - diff --git a/ui/views/cocoa/native_widget_mac_ns_window_host.mm b/ui/views/cocoa/native_widget_mac_ns_window_host.mm -index a1185e4f63de04c56448257567533764476d6c3c..a79f6a28aae530dab3043fb30f8f0a9778f7230c 100644 +index 04ccf05abbdeba229a39f547d1affc6e21e7d377..89275857eee2606c68279485e08f336d90a82f76 100644 --- a/ui/views/cocoa/native_widget_mac_ns_window_host.mm +++ b/ui/views/cocoa/native_widget_mac_ns_window_host.mm -@@ -466,6 +466,7 @@ void HandleAccelerator(const ui::Accelerator& accelerator, +@@ -467,6 +467,7 @@ void HandleAccelerator(const ui::Accelerator& accelerator, if (!is_tooltip) { tooltip_manager_ = std::make_unique(GetNSWindowMojo()); } @@ -116,7 +116,7 @@ index a1185e4f63de04c56448257567533764476d6c3c..a79f6a28aae530dab3043fb30f8f0a97 if (params.workspace.length()) { std::string restoration_data; -@@ -483,6 +484,7 @@ void HandleAccelerator(const ui::Accelerator& accelerator, +@@ -484,6 +485,7 @@ void HandleAccelerator(const ui::Accelerator& accelerator, window_params->modal_type = widget->widget_delegate()->GetModalType(); window_params->is_translucent = params.opacity == Widget::InitParams::WindowOpacity::kTranslucent; @@ -124,7 +124,7 @@ index a1185e4f63de04c56448257567533764476d6c3c..a79f6a28aae530dab3043fb30f8f0a97 window_params->is_tooltip = is_tooltip; // macOS likes to put shadows on most things. However, frameless windows -@@ -664,9 +666,10 @@ void HandleAccelerator(const ui::Accelerator& accelerator, +@@ -665,9 +667,10 @@ void HandleAccelerator(const ui::Accelerator& accelerator, // case it will never become visible but we want its compositor to produce // frames for screenshooting and screencasting. UpdateCompositorProperties(); @@ -138,7 +138,7 @@ index a1185e4f63de04c56448257567533764476d6c3c..a79f6a28aae530dab3043fb30f8f0a97 // Register the CGWindowID (used to identify this window for video capture) diff --git a/ui/views/widget/widget.cc b/ui/views/widget/widget.cc -index 0f0e8102182d7e2c91b83985ebda4e25015a3680..800a7f9cf2c4dd8eb82ae840a5bbcfa6aab4bd9b 100644 +index 76579d56af01b14504ce240f09b60bdb7f5e6b6a..5a6ae46a0033c3bdc9cebc86e09c1aa08d989708 100644 --- a/ui/views/widget/widget.cc +++ b/ui/views/widget/widget.cc @@ -223,6 +223,18 @@ ui::ZOrderLevel Widget::InitParams::EffectiveZOrderLevel() const { @@ -169,7 +169,7 @@ index 0f0e8102182d7e2c91b83985ebda4e25015a3680..800a7f9cf2c4dd8eb82ae840a5bbcfa6 if (params.opacity == views::Widget::InitParams::WindowOpacity::kInferred && diff --git a/ui/views/widget/widget.h b/ui/views/widget/widget.h -index 067d889a0a586bfc5bb6ef9adbd746a26d224c42..e7322c26b185510a491cea9803c6201b286eee8e 100644 +index f64f2a4e70e290898a4e655dbba01c73c75a180b..69493800e35e469ba670dee8f25ac069f1c04bfd 100644 --- a/ui/views/widget/widget.h +++ b/ui/views/widget/widget.h @@ -324,6 +324,11 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, @@ -206,7 +206,7 @@ index 067d889a0a586bfc5bb6ef9adbd746a26d224c42..e7322c26b185510a491cea9803c6201b // True if the window size will follow the content preferred size. bool is_autosized() const { return is_autosized_; } -@@ -1729,6 +1742,9 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, +@@ -1734,6 +1747,9 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, // If true, the mouse is currently down. bool is_mouse_button_pressed_ = false; diff --git a/patches/chromium/fix_aspect_ratio_with_max_size.patch b/patches/chromium/fix_aspect_ratio_with_max_size.patch index cd74261545..d2e5871588 100644 --- a/patches/chromium/fix_aspect_ratio_with_max_size.patch +++ b/patches/chromium/fix_aspect_ratio_with_max_size.patch @@ -11,10 +11,10 @@ enlarge window above dimensions set during creation of the BrowserWindow. diff --git a/ui/views/win/hwnd_message_handler.cc b/ui/views/win/hwnd_message_handler.cc -index b68f7c997fab3f370bad77a956c77579fcd24a51..180fe676748d9f4b2ad5e26c7e35ee14c8a79f11 100644 +index ad1dceef2209f312e3fdec6c7f7bc2b05c93b297..a553dc21818bdfc91790f9991749c9fcdb1aa208 100644 --- a/ui/views/win/hwnd_message_handler.cc +++ b/ui/views/win/hwnd_message_handler.cc -@@ -3874,17 +3874,30 @@ void HWNDMessageHandler::SizeWindowToAspectRatio(UINT param, +@@ -3859,17 +3859,30 @@ void HWNDMessageHandler::SizeWindowToAspectRatio(UINT param, delegate_->GetMinMaxSize(&min_window_size, &max_window_size); min_window_size = delegate_->DIPToScreenSize(min_window_size); max_window_size = delegate_->DIPToScreenSize(max_window_size); diff --git a/patches/chromium/fix_check_for_file_existence_before_setting_mtime.patch b/patches/chromium/fix_check_for_file_existence_before_setting_mtime.patch index 65bf3b41dc..6c332241fd 100644 --- a/patches/chromium/fix_check_for_file_existence_before_setting_mtime.patch +++ b/patches/chromium/fix_check_for_file_existence_before_setting_mtime.patch @@ -8,7 +8,7 @@ Check for broken links by confirming the file exists before setting its utime. This patch should be upstreamed & removed. diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py -index 0700060feb2b0384b4f0ea2a36a4af42df5054d5..3607160a83c1e0246738abb23b10dc3a0a824651 100755 +index 25aae31df7604819841c9c089c29c18fb2f1fcd4..dc72a5726a5f31716b1657cf6deee1dafb8b2af7 100755 --- a/tools/clang/scripts/update.py +++ b/tools/clang/scripts/update.py @@ -201,10 +201,9 @@ def DownloadAndUnpack(url, output_dir, path_prefixes=None, is_known_zip=False): diff --git a/patches/chromium/fix_crash_loading_non-standard_schemes_in_iframes.patch b/patches/chromium/fix_crash_loading_non-standard_schemes_in_iframes.patch index 02adc03444..8b8b97e547 100644 --- a/patches/chromium/fix_crash_loading_non-standard_schemes_in_iframes.patch +++ b/patches/chromium/fix_crash_loading_non-standard_schemes_in_iframes.patch @@ -28,10 +28,10 @@ The patch should be removed in favor of either: Upstream bug https://bugs.chromium.org/p/chromium/issues/detail?id=1081397. diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc -index 39f86bf7117adcbaa11c147dfe07981279cb0265..673d89a63bd34bc0535a488c8449686ba3e7d5e6 100644 +index fdb9ec0640d3dad4b774c651a17b0ec443fbfa21..f7013a451b84272eb031ed80e3a75c8b61856351 100644 --- a/content/browser/renderer_host/navigation_request.cc +++ b/content/browser/renderer_host/navigation_request.cc -@@ -11683,6 +11683,11 @@ url::Origin NavigationRequest::GetOriginForURLLoaderFactoryUnchecked() { +@@ -11693,6 +11693,11 @@ url::Origin NavigationRequest::GetOriginForURLLoaderFactoryUnchecked() { target_rph_id); } @@ -44,7 +44,7 @@ index 39f86bf7117adcbaa11c147dfe07981279cb0265..673d89a63bd34bc0535a488c8449686b // origin of |common_params.url| and/or |common_params.initiator_origin|. url::Origin resolved_origin = url::Origin::Resolve( diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc -index a2aebaac0ff383b2afc4a050c69dfd11df719e24..c7d98a8b648a25fe38370a1546d5a6439571facb 100644 +index 17eeeb829ca50e5c2119e9094e7168eca5040313..99517ac017a12328223e02b18b96e55cc9a25d4a 100644 --- a/third_party/blink/renderer/core/loader/document_loader.cc +++ b/third_party/blink/renderer/core/loader/document_loader.cc @@ -2321,6 +2321,7 @@ Frame* DocumentLoader::CalculateOwnerFrame() { diff --git a/patches/chromium/fix_disabling_background_throttling_in_compositor.patch b/patches/chromium/fix_disabling_background_throttling_in_compositor.patch index ec1b55ba65..04da279843 100644 --- a/patches/chromium/fix_disabling_background_throttling_in_compositor.patch +++ b/patches/chromium/fix_disabling_background_throttling_in_compositor.patch @@ -12,7 +12,7 @@ invisible state of the `viz::DisplayScheduler` owned by the `ui::Compositor`. diff --git a/ui/compositor/compositor.cc b/ui/compositor/compositor.cc -index cde7a73e067837822c6993fcb5fe7c26cfc07528..be56b0e47917fe9e2ddcc0e90fcdba48357ad452 100644 +index 0baec53e72ffcc36c47e097c21ebb03e7b15aca0..a72f53bf0b40a493aeb56c20eea5bbd198855fcf 100644 --- a/ui/compositor/compositor.cc +++ b/ui/compositor/compositor.cc @@ -369,7 +369,8 @@ void Compositor::SetLayerTreeFrameSink( @@ -53,10 +53,10 @@ index cde7a73e067837822c6993fcb5fe7c26cfc07528..be56b0e47917fe9e2ddcc0e90fcdba48 void Compositor::SetSeamlessRefreshRates( const std::vector& seamless_refresh_rates) { diff --git a/ui/compositor/compositor.h b/ui/compositor/compositor.h -index 25176dd54365848ff09f0de77d31aed77de54a15..f01bcd99f6834d38ac74998bfdf8be622fbd797b 100644 +index cbca71f44ec504c06ae3a119695db205f42302fc..4b999d9387279c7cb5ada13344212504ef48ef42 100644 --- a/ui/compositor/compositor.h +++ b/ui/compositor/compositor.h -@@ -514,6 +514,10 @@ class COMPOSITOR_EXPORT Compositor : public base::PowerSuspendObserver, +@@ -515,6 +515,10 @@ class COMPOSITOR_EXPORT Compositor : public base::PowerSuspendObserver, const cc::LayerTreeSettings& GetLayerTreeSettings() const; @@ -67,7 +67,7 @@ index 25176dd54365848ff09f0de77d31aed77de54a15..f01bcd99f6834d38ac74998bfdf8be62 size_t saved_events_metrics_count_for_testing() const { return host_->saved_events_metrics_count_for_testing(); } -@@ -724,6 +728,12 @@ class COMPOSITOR_EXPORT Compositor : public base::PowerSuspendObserver, +@@ -731,6 +735,12 @@ class COMPOSITOR_EXPORT Compositor : public base::PowerSuspendObserver, // See go/report-ux-metrics-at-painting for details. bool animation_started_ = false; diff --git a/patches/chromium/fix_move_autopipsettingshelper_behind_branding_buildflag.patch b/patches/chromium/fix_move_autopipsettingshelper_behind_branding_buildflag.patch index 239b7b510e..f488ca7d5e 100644 --- a/patches/chromium/fix_move_autopipsettingshelper_behind_branding_buildflag.patch +++ b/patches/chromium/fix_move_autopipsettingshelper_behind_branding_buildflag.patch @@ -83,7 +83,7 @@ index e8a525444092a20624616b280b99f9b218180410..c2c43e67cf671bbf2282fb5728860b5f PictureInPictureOcclusionTracker* diff --git a/chrome/browser/ui/views/overlay/video_overlay_window_views.cc b/chrome/browser/ui/views/overlay/video_overlay_window_views.cc -index 89083187a3b872eaba30f1075445d0709a1607b3..00c3913eb2b58db525599bfa38ba637d42fdc1f4 100644 +index ff3634d3138c91d380e405ce8f375819bafd23f3..eb439c429b99d72cbfa5cae25c97cf066623bb5b 100644 --- a/chrome/browser/ui/views/overlay/video_overlay_window_views.cc +++ b/chrome/browser/ui/views/overlay/video_overlay_window_views.cc @@ -444,11 +444,13 @@ std::unique_ptr VideoOverlayWindowViews::Create( diff --git a/patches/chromium/fix_multiple_scopedpumpmessagesinprivatemodes_instances.patch b/patches/chromium/fix_multiple_scopedpumpmessagesinprivatemodes_instances.patch index 6605f24d7b..673dbac709 100644 --- a/patches/chromium/fix_multiple_scopedpumpmessagesinprivatemodes_instances.patch +++ b/patches/chromium/fix_multiple_scopedpumpmessagesinprivatemodes_instances.patch @@ -13,10 +13,10 @@ This patch adds a global reference count to keep track of enable/disable behavior on this reference count. diff --git a/base/message_loop/message_pump_apple.mm b/base/message_loop/message_pump_apple.mm -index 52ed68ac3150bdeef3c5032f3f5f7df3d5aaac51..1658aece3e8fbcef89944a849e311f7949a68de9 100644 +index 55753d0249ad013f244a88d77a4bdf4620df4a45..aa73243057b27e38e664629ef402f00de8835975 100644 --- a/base/message_loop/message_pump_apple.mm +++ b/base/message_loop/message_pump_apple.mm -@@ -760,20 +760,29 @@ explicit OptionalAutoreleasePool(MessagePumpCFRunLoopBase* pump) { +@@ -774,20 +774,29 @@ explicit OptionalAutoreleasePool(MessagePumpCFRunLoopBase* pump) { #else diff --git a/patches/chromium/fix_non-client_mouse_tracking_and_message_bubbling_on_windows.patch b/patches/chromium/fix_non-client_mouse_tracking_and_message_bubbling_on_windows.patch index 084f134ef6..c5947c3d53 100644 --- a/patches/chromium/fix_non-client_mouse_tracking_and_message_bubbling_on_windows.patch +++ b/patches/chromium/fix_non-client_mouse_tracking_and_message_bubbling_on_windows.patch @@ -13,10 +13,10 @@ messages in the legacy window handle layer. These conditions are regularly hit with WCO-enabled windows on Windows. diff --git a/content/browser/renderer_host/legacy_render_widget_host_win.cc b/content/browser/renderer_host/legacy_render_widget_host_win.cc -index a19ddfe9f82684bec4e18ca71b285aa0849acd33..bfd37eda48ba59cda50dafebbd44f758ff438fc0 100644 +index 871bb720529690ef81fbcd27056393766b9525ff..471a5b3ecb184ef2bf23b0ec3066711925ddaa4b 100644 --- a/content/browser/renderer_host/legacy_render_widget_host_win.cc +++ b/content/browser/renderer_host/legacy_render_widget_host_win.cc -@@ -363,12 +363,12 @@ LRESULT LegacyRenderWidgetHostHWND::OnKeyboardRange(UINT message, +@@ -371,12 +371,12 @@ LRESULT LegacyRenderWidgetHostHWND::OnKeyboardRange(UINT message, LRESULT LegacyRenderWidgetHostHWND::OnMouseRange(UINT message, WPARAM w_param, LPARAM l_param) { @@ -31,7 +31,7 @@ index a19ddfe9f82684bec4e18ca71b285aa0849acd33..bfd37eda48ba59cda50dafebbd44f758 tme.hwndTrack = hwnd(); tme.dwHoverTime = 0; TrackMouseEvent(&tme); -@@ -401,7 +401,10 @@ LRESULT LegacyRenderWidgetHostHWND::OnMouseRange(UINT message, +@@ -409,7 +409,10 @@ LRESULT LegacyRenderWidgetHostHWND::OnMouseRange(UINT message, // the picture. if (!msg_handled && (message >= WM_NCMOUSEMOVE && message <= WM_NCXBUTTONDBLCLK)) { diff --git a/patches/chromium/fix_on-screen-keyboard_hides_on_input_blur_in_webview.patch b/patches/chromium/fix_on-screen-keyboard_hides_on_input_blur_in_webview.patch index 8a4fe8a0ae..96d832fa3f 100644 --- a/patches/chromium/fix_on-screen-keyboard_hides_on_input_blur_in_webview.patch +++ b/patches/chromium/fix_on-screen-keyboard_hides_on_input_blur_in_webview.patch @@ -64,7 +64,7 @@ index 705a2ee24e463a65784a48844d7c9c26ae7b48db..87bf9b64616688152bd681cb57cefbc6 TextInputManager::SelectionRegion::SelectionRegion( diff --git a/content/browser/renderer_host/text_input_manager.h b/content/browser/renderer_host/text_input_manager.h -index 75df43e3cd2721a92c90c18154d53d5c203e2465..ce42c75c8face36d21f53f44c0201ac46df71d6a 100644 +index 5158897a7a7af9f29580faa17498a8dbab40af87..96617b9bb0275144b0e9ed18547d9982aa05baea 100644 --- a/content/browser/renderer_host/text_input_manager.h +++ b/content/browser/renderer_host/text_input_manager.h @@ -69,6 +69,10 @@ class CONTENT_EXPORT TextInputManager { @@ -87,10 +87,10 @@ index 75df43e3cd2721a92c90c18154d53d5c203e2465..ce42c75c8face36d21f53f44c0201ac4 // The view with active text input state, i.e., a focused element. // It will be nullptr if no such view exists. Note that the active view diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index 2460932f2f8ed1a6d80b8fea0453ce550e428885..4b5c7b2f8ea61dc156b6136991f25b91190fd4e6 100644 +index 3b3bd369e235c9710fb80789dbb289350714c535..0e4fb92136e7ee014dd390142bb4c38349c3ed6b 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -10202,7 +10202,7 @@ void WebContentsImpl::OnFocusedElementChangedInFrame( +@@ -10208,7 +10208,7 @@ void WebContentsImpl::OnFocusedElementChangedInFrame( "WebContentsImpl::OnFocusedElementChangedInFrame", "render_frame_host", frame); RenderWidgetHostViewBase* root_view = diff --git a/patches/chromium/fix_remove_caption-removing_style_call.patch b/patches/chromium/fix_remove_caption-removing_style_call.patch index 0fb776dcd7..3100ec331a 100644 --- a/patches/chromium/fix_remove_caption-removing_style_call.patch +++ b/patches/chromium/fix_remove_caption-removing_style_call.patch @@ -18,10 +18,10 @@ or resizing, but Electron does not seem to run into that issue for opaque frameless windows even with that block commented out. diff --git a/ui/views/win/hwnd_message_handler.cc b/ui/views/win/hwnd_message_handler.cc -index bbefa1324800849b389efbe487ad6631615327e7..10985dbb1d89a2e0b79ed4f9411a179c80bf98ed 100644 +index fd21436484c851acfe0027cfc475ebef5e642d64..bbd092d2a90765c52fd5792ee37a909d028634fe 100644 --- a/ui/views/win/hwnd_message_handler.cc +++ b/ui/views/win/hwnd_message_handler.cc -@@ -1875,7 +1875,23 @@ LRESULT HWNDMessageHandler::OnCreate(CREATESTRUCT* create_struct) { +@@ -1856,7 +1856,23 @@ LRESULT HWNDMessageHandler::OnCreate(CREATESTRUCT* create_struct) { SendMessage(hwnd(), WM_CHANGEUISTATE, MAKELPARAM(UIS_CLEAR, UISF_HIDEFOCUS), 0); diff --git a/patches/chromium/fix_resolve_dynamic_background_material_update_issue_on_windows_11.patch b/patches/chromium/fix_resolve_dynamic_background_material_update_issue_on_windows_11.patch index b0edd5e21f..6818721317 100644 --- a/patches/chromium/fix_resolve_dynamic_background_material_update_issue_on_windows_11.patch +++ b/patches/chromium/fix_resolve_dynamic_background_material_update_issue_on_windows_11.patch @@ -36,10 +36,10 @@ index 0cd07fd5fb55dcc0d972de4c027fcb895d156592..0f4d335e1d54b5e92fc217080d86513d // Overridden from DesktopWindowTreeHost: void Init(const Widget::InitParams& params) override; diff --git a/ui/views/win/hwnd_message_handler.cc b/ui/views/win/hwnd_message_handler.cc -index 10985dbb1d89a2e0b79ed4f9411a179c80bf98ed..f2a0cef99f44599d8b801bf490e7bcb0da7aa339 100644 +index bbd092d2a90765c52fd5792ee37a909d028634fe..fcd2adc9b2eff4b75b1e381351b78f11dca63d30 100644 --- a/ui/views/win/hwnd_message_handler.cc +++ b/ui/views/win/hwnd_message_handler.cc -@@ -1008,13 +1008,13 @@ void HWNDMessageHandler::FrameTypeChanged() { +@@ -986,13 +986,13 @@ void HWNDMessageHandler::FrameTypeChanged() { void HWNDMessageHandler::PaintAsActiveChanged() { if (!delegate_->HasNonClientView() || !delegate_->CanActivate() || @@ -55,7 +55,7 @@ index 10985dbb1d89a2e0b79ed4f9411a179c80bf98ed..f2a0cef99f44599d8b801bf490e7bcb0 } void HWNDMessageHandler::SetWindowIcons(const gfx::ImageSkia& window_icon, -@@ -1099,7 +1099,14 @@ void HWNDMessageHandler::SizeConstraintsChanged() { +@@ -1077,7 +1077,14 @@ void HWNDMessageHandler::SizeConstraintsChanged() { // allowing ui::GetResizableFrameThickness() to be used consistently when // removing the visible system frame. const bool had_caption_on_init = window_style() & WS_CAPTION; @@ -71,7 +71,7 @@ index 10985dbb1d89a2e0b79ed4f9411a179c80bf98ed..f2a0cef99f44599d8b801bf490e7bcb0 const bool can_maximize = can_resize && delegate_->CanMaximize(); auto set_style_func = [&style](LONG bit, bool should_set) { -@@ -1697,11 +1704,16 @@ void HWNDMessageHandler::ResetWindowRegion(bool force, bool redraw) { +@@ -1678,11 +1685,16 @@ void HWNDMessageHandler::ResetWindowRegion(bool force, bool redraw) { // through, but that isn't the case when using Direct3D to draw transparent // windows. So we route translucent windows throught to the delegate to // allow for a custom hit mask. @@ -89,7 +89,7 @@ index 10985dbb1d89a2e0b79ed4f9411a179c80bf98ed..f2a0cef99f44599d8b801bf490e7bcb0 return; } -@@ -2449,17 +2461,18 @@ LRESULT HWNDMessageHandler::OnNCActivate(UINT message, +@@ -2435,17 +2447,18 @@ LRESULT HWNDMessageHandler::OnNCActivate(UINT message, delegate_->SchedulePaint(); } diff --git a/patches/chromium/fix_restore_original_resize_performance_on_macos.patch b/patches/chromium/fix_restore_original_resize_performance_on_macos.patch index 1a3928c046..1916639214 100644 --- a/patches/chromium/fix_restore_original_resize_performance_on_macos.patch +++ b/patches/chromium/fix_restore_original_resize_performance_on_macos.patch @@ -11,10 +11,10 @@ This patch should be upstreamed as a conditional revert of the logic in desktop vs mobile runtimes. i.e. restore the old logic only on desktop platforms diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc -index a1487f8aabb5ebfef85d4b9bf4bcac2b1370c70c..e5fcc7acc4823f3b9396c431815d9d97a986f86b 100644 +index 5df63357160d96b77c8c123a984aeef9850b1ae2..9b598ba34285bfe04c7c45557dd51af73bece3fe 100644 --- a/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc -@@ -2181,9 +2181,8 @@ RenderWidgetHostImpl::GetWidgetInputHandler() { +@@ -2192,9 +2192,8 @@ RenderWidgetHostImpl::GetWidgetInputHandler() { void RenderWidgetHostImpl::NotifyScreenInfoChanged() { // The resize message (which may not happen immediately) will carry with it // the screen info as well as the new size (if the screen has changed scale diff --git a/patches/chromium/fix_return_v8_value_from_localframe_requestexecutescript.patch b/patches/chromium/fix_return_v8_value_from_localframe_requestexecutescript.patch index e225661718..4565370dd6 100644 --- a/patches/chromium/fix_return_v8_value_from_localframe_requestexecutescript.patch +++ b/patches/chromium/fix_return_v8_value_from_localframe_requestexecutescript.patch @@ -8,7 +8,7 @@ v8::Value instead of base::Value. Refs https://bugs.chromium.org/p/chromium/issues/detail?id=1323953 diff --git a/extensions/renderer/script_injection.cc b/extensions/renderer/script_injection.cc -index 8ce2c7f2739ef1342b323fbf27160f52990e2b56..393aa9918c97e9d61ef0f6e596aeeaa3d93862c6 100644 +index 51a94c63d6647fd989f0286e8f930d36508bc133..eb6d5e0d2789b5f688a2a5bb634a2857529be862 100644 --- a/extensions/renderer/script_injection.cc +++ b/extensions/renderer/script_injection.cc @@ -319,6 +319,7 @@ void ScriptInjection::InjectJs(std::set* executing_scripts, @@ -59,10 +59,10 @@ index cba373664bec3a32abad6fe0396bd67b53b7e67f..a54f1b3351efd2d8f324436f7f35cd43 #endif // THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_SCRIPT_EXECUTION_CALLBACK_H_ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc -index ed1bc8e58a982091dd00134b4915ddc758bfe507..157cae42179da715a8d5b6d9697cfc673fbdcab3 100644 +index b9370cc9d15601cfccde02b28cdd92bfaf3208f9..f5cb28cbe21ab22f5bc340f3adba4ae79fe7cb3f 100644 --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc -@@ -3220,6 +3220,7 @@ void LocalFrame::RequestExecuteScript( +@@ -3221,6 +3221,7 @@ void LocalFrame::RequestExecuteScript( mojom::blink::EvaluationTiming evaluation_timing, mojom::blink::LoadEventBlockingOption blocking_option, WebScriptExecutionCallback callback, @@ -70,7 +70,7 @@ index ed1bc8e58a982091dd00134b4915ddc758bfe507..157cae42179da715a8d5b6d9697cfc67 BackForwardCacheAware back_forward_cache_aware, mojom::blink::WantResultOption want_result_option, mojom::blink::PromiseResultOption promise_behavior) { -@@ -3277,7 +3278,7 @@ void LocalFrame::RequestExecuteScript( +@@ -3278,7 +3279,7 @@ void LocalFrame::RequestExecuteScript( PausableScriptExecutor::CreateAndRun( script_state, std::move(script_sources), execute_script_policy, user_gesture, evaluation_timing, blocking_option, want_result_option, @@ -80,7 +80,7 @@ index ed1bc8e58a982091dd00134b4915ddc758bfe507..157cae42179da715a8d5b6d9697cfc67 void LocalFrame::SetEvictCachedSessionStorageOnFreezeOrUnload() { diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h -index c0e8a5798c9c6ec6273fcaf4f19bdcc74108efdc..d56938ac2d6b7a0927e52590ad2ed757f8aaadc3 100644 +index 4bdcc643bd636cf68b0d1a36155114b158ec23fd..bdbc7e8753345ed342d1f4507fbf5878313659ef 100644 --- a/third_party/blink/renderer/core/frame/local_frame.h +++ b/third_party/blink/renderer/core/frame/local_frame.h @@ -829,6 +829,7 @@ class CORE_EXPORT LocalFrame final @@ -92,10 +92,10 @@ index c0e8a5798c9c6ec6273fcaf4f19bdcc74108efdc..d56938ac2d6b7a0927e52590ad2ed757 mojom::blink::WantResultOption, mojom::blink::PromiseResultOption); diff --git a/third_party/blink/renderer/core/frame/local_frame_mojo_handler.cc b/third_party/blink/renderer/core/frame/local_frame_mojo_handler.cc -index 556d17c107ae4d6d5fbeb97ef3ddb58d48e453e5..20c9be2070dd64eb87eda5c4a7ec2d29ddd52700 100644 +index 7f51c2c394512e13b6e04c2483b44b1feefc9447..bab96904371930a1b43426251bbbf24c21ccd2b5 100644 --- a/third_party/blink/renderer/core/frame/local_frame_mojo_handler.cc +++ b/third_party/blink/renderer/core/frame/local_frame_mojo_handler.cc -@@ -985,6 +985,7 @@ void LocalFrameMojoHandler::JavaScriptExecuteRequestInIsolatedWorld( +@@ -987,6 +987,7 @@ void LocalFrameMojoHandler::JavaScriptExecuteRequestInIsolatedWorld( std::move(callback).Run(value ? std::move(*value) : base::Value()); }, std::move(callback)), @@ -211,7 +211,7 @@ index f2c94689450f0333a144ccf82cf147c194896e6b..1c2e9fe36c297f7d614d9ca290e4d13c const mojom::blink::UserActivationOption user_activation_option_; const mojom::blink::LoadEventBlockingOption blocking_option_; diff --git a/third_party/blink/renderer/core/frame/web_frame_test.cc b/third_party/blink/renderer/core/frame/web_frame_test.cc -index 070c53703e8af06b73eae0be07aa5d6f8496f777..5e6585e7d6129ff9ee45d9fce972775c9b3ab51c 100644 +index c274456a74f5e91f7852965fd8e1b5e9f0733e53..bdaeb9a9b252d81a5ad1563a4af1b329c2771873 100644 --- a/third_party/blink/renderer/core/frame/web_frame_test.cc +++ b/third_party/blink/renderer/core/frame/web_frame_test.cc @@ -298,6 +298,7 @@ void ExecuteScriptsInMainWorld( diff --git a/patches/chromium/fix_select_the_first_menu_item_when_opened_via_keyboard.patch b/patches/chromium/fix_select_the_first_menu_item_when_opened_via_keyboard.patch index 97e1c71f79..251a2c0796 100644 --- a/patches/chromium/fix_select_the_first_menu_item_when_opened_via_keyboard.patch +++ b/patches/chromium/fix_select_the_first_menu_item_when_opened_via_keyboard.patch @@ -6,7 +6,7 @@ Subject: fix: select the first menu item when opened via keyboard This fixes an accessibility issue where the root view is 'focused' to the screen reader instead of the first menu item as with all other native menus. This patch will be upstreamed. diff --git a/ui/views/controls/menu/menu_controller.cc b/ui/views/controls/menu/menu_controller.cc -index f84caf2bba616b52ae572f0195c02baa2e05d21e..2e2e3df20b1fa8acbf859300f3de3e24b5cf5efd 100644 +index 06f61e5bcc7558a3b79588d2943bf5dfd08b7275..366faeb22d6ee456228e994a3cddb853c31e8f1a 100644 --- a/ui/views/controls/menu/menu_controller.cc +++ b/ui/views/controls/menu/menu_controller.cc @@ -724,6 +724,16 @@ void MenuController::Run(Widget* parent, @@ -26,7 +26,7 @@ index f84caf2bba616b52ae572f0195c02baa2e05d21e..2e2e3df20b1fa8acbf859300f3de3e24 if (button_controller) { pressed_lock_ = button_controller->TakeLock( false, ui::LocatedEvent::FromIfValid(event)); -@@ -2523,18 +2533,15 @@ void MenuController::OpenMenuImpl(MenuItemView* item, bool show) { +@@ -2529,18 +2539,15 @@ void MenuController::OpenMenuImpl(MenuItemView* item, bool show) { } item->GetSubmenu()->ShowAt(params); diff --git a/patches/chromium/frame_host_manager.patch b/patches/chromium/frame_host_manager.patch index 4942e35a01..13578935b4 100644 --- a/patches/chromium/frame_host_manager.patch +++ b/patches/chromium/frame_host_manager.patch @@ -6,10 +6,10 @@ Subject: frame_host_manager.patch Allows embedder to intercept site instances created by chromium. diff --git a/content/browser/renderer_host/render_frame_host_manager.cc b/content/browser/renderer_host/render_frame_host_manager.cc -index 40bec6c27e5f6b27abaabd07d77535a1f6a2e09f..3a70911b9015ae83d88a886cf9fafe853bb966a5 100644 +index 467dcf95804174826078bfc7f213b4ed3031b89c..cb1985160aebb3a03a098e065c3ba8730938b29b 100644 --- a/content/browser/renderer_host/render_frame_host_manager.cc +++ b/content/browser/renderer_host/render_frame_host_manager.cc -@@ -4850,6 +4850,9 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest( +@@ -4852,6 +4852,9 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest( request->ResetStateForSiteInstanceChange(); } @@ -20,7 +20,7 @@ index 40bec6c27e5f6b27abaabd07d77535a1f6a2e09f..3a70911b9015ae83d88a886cf9fafe85 } diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h -index 5280ea840a979dc2cd9d77fae9c2cfbb10105f4a..aced90838f8be0c50345192e858ddac9662be458 100644 +index 27a3ec60ef7e1fef85a4b5be1e7e519d11a711d3..810d31a5b77a3180e80ff8f2cbcd765aaade64c5 100644 --- a/content/public/browser/content_browser_client.h +++ b/content/public/browser/content_browser_client.h @@ -350,6 +350,11 @@ class CONTENT_EXPORT ContentBrowserClient { diff --git a/patches/chromium/gin_enable_disable_v8_platform.patch b/patches/chromium/gin_enable_disable_v8_platform.patch index 089e04ec18..358c1def70 100644 --- a/patches/chromium/gin_enable_disable_v8_platform.patch +++ b/patches/chromium/gin_enable_disable_v8_platform.patch @@ -41,10 +41,10 @@ index 3909e70dc1425c2cb02624f4b3017784a2ae6c9d..a57b92f02085d6392e6d9d0cc037df6b // Returns whether `Initialize` has already been invoked in the process. // Initialization is a one-way operation (i.e., this method cannot return diff --git a/gin/v8_initializer.cc b/gin/v8_initializer.cc -index e11231ebfedd7421f104d5f471486ad8d8d6ecbb..3b0e038918a175c70beb91e0c5d816aed2e6f181 100644 +index 5cad9cf7b1a8d3d120c4f2fef5a0a5b2834501c7..6b7dffe9c65ee04787a0dbc39d8d055c4daf0582 100644 --- a/gin/v8_initializer.cc +++ b/gin/v8_initializer.cc -@@ -526,7 +526,8 @@ void SetFeatureFlags() { +@@ -529,7 +529,8 @@ void SetFeatureFlags() { void V8Initializer::Initialize(IsolateHolder::ScriptMode mode, const std::string& js_command_line_flags, bool disallow_v8_feature_flag_overrides, @@ -54,7 +54,7 @@ index e11231ebfedd7421f104d5f471486ad8d8d6ecbb..3b0e038918a175c70beb91e0c5d816ae static bool v8_is_initialized = false; if (v8_is_initialized) return; -@@ -541,7 +542,8 @@ void V8Initializer::Initialize(IsolateHolder::ScriptMode mode, +@@ -544,7 +545,8 @@ void V8Initializer::Initialize(IsolateHolder::ScriptMode mode, } SetFlags(mode, js_command_line_flags); diff --git a/patches/chromium/gritsettings_resource_ids.patch b/patches/chromium/gritsettings_resource_ids.patch index 39fa66e5b3..e2dea94a7c 100644 --- a/patches/chromium/gritsettings_resource_ids.patch +++ b/patches/chromium/gritsettings_resource_ids.patch @@ -6,11 +6,11 @@ Subject: gritsettings_resource_ids.patch Add electron resources file to the list of resource ids generation. diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ids.spec -index 13e0cd7958522192144e3488940ff2fffabb3cee..a246a95bcf26ca00a31161183d0b321168b62052 100644 +index 1086c5919dcd93459af9a83a624d0dfdaacd814a..ada81d7c1b747e9ed618f66e9797ea1b3fa157cd 100644 --- a/tools/gritsettings/resource_ids.spec +++ b/tools/gritsettings/resource_ids.spec -@@ -1636,6 +1636,11 @@ - "messages": [10120], +@@ -1645,6 +1645,11 @@ + "includes": [12000], }, + "electron/build/electron_resources.grd": { diff --git a/patches/chromium/gtk_visibility.patch b/patches/chromium/gtk_visibility.patch index bf1e0ff35c..0098a6b3bf 100644 --- a/patches/chromium/gtk_visibility.patch +++ b/patches/chromium/gtk_visibility.patch @@ -18,7 +18,7 @@ index fdc3442590bddda969681d49c451d32f086bd5d1..b6fd63c0c845e5d7648e8693f1639b1f # on GTK. "//examples:peerconnection_client", diff --git a/ui/ozone/platform/x11/BUILD.gn b/ui/ozone/platform/x11/BUILD.gn -index ffae34799460f555e0269ad5dcfd9c0f668b16ea..706c8de26b2409f44dc6e53441740ff053cbb312 100644 +index 75a94f4deaec7b71fc54911e7dec6c90e42670db..a77cdc899faaf31ae403c0566f821b965e08b010 100644 --- a/ui/ozone/platform/x11/BUILD.gn +++ b/ui/ozone/platform/x11/BUILD.gn @@ -6,7 +6,7 @@ import("//build/config/chromeos/ui_mode.gni") diff --git a/patches/chromium/hack_plugin_response_interceptor_to_point_to_electron.patch b/patches/chromium/hack_plugin_response_interceptor_to_point_to_electron.patch index c6ab380617..c7e43be3a1 100644 --- a/patches/chromium/hack_plugin_response_interceptor_to_point_to_electron.patch +++ b/patches/chromium/hack_plugin_response_interceptor_to_point_to_electron.patch @@ -8,7 +8,7 @@ require a largeish patch to get working, so just redirect it to our implementation instead. diff --git a/chrome/browser/plugins/plugin_response_interceptor_url_loader_throttle.cc b/chrome/browser/plugins/plugin_response_interceptor_url_loader_throttle.cc -index 18fb39fba6e1a6245d22120ba129abf4e5b42b96..62e79cba8161f2acc3ff9e9e20953179ded4ef4e 100644 +index 9fd5f8813728f46d63a215df31e7542aef4d3899..4e600c23a554dfa63acbe6805ee8374156191377 100644 --- a/chrome/browser/plugins/plugin_response_interceptor_url_loader_throttle.cc +++ b/chrome/browser/plugins/plugin_response_interceptor_url_loader_throttle.cc @@ -12,8 +12,8 @@ diff --git a/patches/chromium/loaf_add_feature_to_enable_sourceurl_for_all_protocols.patch b/patches/chromium/loaf_add_feature_to_enable_sourceurl_for_all_protocols.patch deleted file mode 100644 index dd8b05bd59..0000000000 --- a/patches/chromium/loaf_add_feature_to_enable_sourceurl_for_all_protocols.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Niklas Wenzel -Date: Wed, 4 Feb 2026 06:02:40 -0800 -Subject: LoAF: Add feature to enable sourceURL for all protocols - -Backports https://crrev.com/c/7510894 (minus the test changes). - -Can be removed when that CL is included via a Chromium roll. - -Change-Id: Id5e58a151b13cc0ac054f4ec237b038255d683fd -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7510894 -Commit-Queue: Noam Rosenthal -Reviewed-by: Dave Tapuska -Reviewed-by: Noam Rosenthal -Cr-Commit-Position: refs/heads/main@{#1579397} - -diff --git a/third_party/blink/renderer/core/frame/animation_frame_timing_monitor.cc b/third_party/blink/renderer/core/frame/animation_frame_timing_monitor.cc -index 20eb792c45d23874fb6a3982a335a140820a94d0..1e8c8c6f73bf576f10cb32beb80cadcaa9516b71 100644 ---- a/third_party/blink/renderer/core/frame/animation_frame_timing_monitor.cc -+++ b/third_party/blink/renderer/core/frame/animation_frame_timing_monitor.cc -@@ -524,8 +524,15 @@ void AnimationFrameTimingMonitor::Trace(Visitor* visitor) const { - visitor->Trace(frame_handling_input_); - } - -+BASE_FEATURE(kAlwaysLogLOAFURL, base::FEATURE_DISABLED_BY_DEFAULT); -+ - namespace { -+ - bool ShouldAllowScriptURL(const String& url) { -+ if (base::FeatureList::IsEnabled(kAlwaysLogLOAFURL)) { -+ return true; -+ } -+ - KURL kurl(url); - return kurl.ProtocolIsData() || kurl.ProtocolIsInHTTPFamily() || - kurl.ProtocolIs("blob") || kurl.IsEmpty(); -diff --git a/third_party/blink/renderer/core/frame/animation_frame_timing_monitor.h b/third_party/blink/renderer/core/frame/animation_frame_timing_monitor.h -index 60a891c17f34ec617c86d0fcbfcec0f2469bdd07..91475dfc3175cf49b8396c9f029cb25bf3ec1e75 100644 ---- a/third_party/blink/renderer/core/frame/animation_frame_timing_monitor.h -+++ b/third_party/blink/renderer/core/frame/animation_frame_timing_monitor.h -@@ -22,6 +22,11 @@ class TimeTicks; - - namespace blink { - -+// When enabled, long-animation-frame events will always include the sourceURL, -+// regardless of protocol. This is useful during development when using `file:` -+// URLs or custom protocols defined by embedders. -+CORE_EXPORT BASE_DECLARE_FEATURE(kAlwaysLogLOAFURL); -+ - class LocalFrame; - - // Monitors long-animation-frame timing (LoAF). diff --git a/patches/chromium/mas_avoid_private_macos_api_usage.patch.patch b/patches/chromium/mas_avoid_private_macos_api_usage.patch.patch index 6edfee98e5..9ec14b45a6 100644 --- a/patches/chromium/mas_avoid_private_macos_api_usage.patch.patch +++ b/patches/chromium/mas_avoid_private_macos_api_usage.patch.patch @@ -50,10 +50,10 @@ system font by checking if it's kCTFontPriorityAttribute is set to system priority. diff --git a/base/BUILD.gn b/base/BUILD.gn -index 01b3ae3c904b76a0421f0562cfcd887980087d80..b712db260fb9b941da82b6a4d1849db1964074c2 100644 +index 7f4fe7dddb46da7dc17139ca5ac4d0bcc1785d52..3037c9345632da72e21729540cae9471928dff19 100644 --- a/base/BUILD.gn +++ b/base/BUILD.gn -@@ -1084,6 +1084,7 @@ component("base") { +@@ -1083,6 +1083,7 @@ component("base") { "//build:ios_buildflags", "//build/config/compiler:compiler_buildflags", "//third_party/modp_b64", @@ -129,10 +129,10 @@ index 416e541436d201aabca26cdbf7e8477103bd014c..8c5f92b03d67e5f0587b0e9420969061 } diff --git a/base/allocator/partition_allocator/src/partition_alloc/BUILD.gn b/base/allocator/partition_allocator/src/partition_alloc/BUILD.gn -index 780c58f4fdc6161e631b76cfdcf39f4305341e25..08b09b5f25c780611b182400d221a9b50576f2ab 100644 +index 8b706f07b3c370f1a6f83ac23e508a0a22eae1db..d85a8886cc1bbe65359c03dc1e3e9b014d543ecc 100644 --- a/base/allocator/partition_allocator/src/partition_alloc/BUILD.gn +++ b/base/allocator/partition_allocator/src/partition_alloc/BUILD.gn -@@ -988,6 +988,7 @@ if (is_clang_or_gcc) { +@@ -987,6 +987,7 @@ if (is_clang_or_gcc) { ":allocator_base", ":allocator_core", ":buildflags", @@ -376,22 +376,22 @@ index e12c1d078147d956a1d9b1bc498c1b1d6fe7b974..233362259dc4e728ed37435e65041764 } // namespace base diff --git a/components/os_crypt/common/keychain_password_mac.mm b/components/os_crypt/common/keychain_password_mac.mm -index 0206d808c72b38e3d3abc98bd9a44fc47ed6c4da..a3a8c87ad73f3bc69fc567f9f9d054b185093d7b 100644 +index f240dc22ee391c98c8768af7141b7447b6507cc6..69bfbbf0f58ca3b05a601bea87b14dcf0fb2eecb 100644 --- a/components/os_crypt/common/keychain_password_mac.mm +++ b/components/os_crypt/common/keychain_password_mac.mm @@ -19,6 +19,7 @@ #include "base/types/expected.h" #include "build/branding_buildflags.h" - #include "crypto/apple/keychain.h" + #include "crypto/apple/keychain_v2.h" +#include "electron/mas.h" #include "third_party/abseil-cpp/absl/cleanup/cleanup.h" - using crypto::apple::Keychain; + using crypto::apple::KeychainV2; diff --git a/components/os_crypt/sync/BUILD.gn b/components/os_crypt/sync/BUILD.gn -index 2d155f49248a24b5551cb93e010ac1a0c0f94261..23aa391aaf380f87310fb295277809f8b105d6e8 100644 +index 2ee822cd0c8293c7a742ef4a07499043643f7ac0..3b1c34e213b0990b8f0823228a1a02c5bf0c7198 100644 --- a/components/os_crypt/sync/BUILD.gn +++ b/components/os_crypt/sync/BUILD.gn -@@ -61,6 +61,7 @@ component("sync") { +@@ -58,6 +58,7 @@ component("sync") { deps += [ "//components/os_crypt/common:keychain_password_mac", "//crypto:mock_apple_keychain", @@ -612,7 +612,7 @@ index 3a815ebf505bd95fa7f6b61ba433d98fbfe20225..149de0175c2ec0e41e3ba40caad7019c + @end diff --git a/components/remote_cocoa/app_shim/native_widget_mac_nswindow.h b/components/remote_cocoa/app_shim/native_widget_mac_nswindow.h -index 889c0849910afa8f5be8bd8f55692bb482335383..ff2a4bc790b0fa2dec9702d82a0221855833cb65 100644 +index 48f47bf3eeb8464d1c3925f0f73f62c790cac2f0..b7b2b7c1b7e99927012ce1676cc753b2bcdd887b 100644 --- a/components/remote_cocoa/app_shim/native_widget_mac_nswindow.h +++ b/components/remote_cocoa/app_shim/native_widget_mac_nswindow.h @@ -10,6 +10,7 @@ @@ -640,7 +640,7 @@ index 889c0849910afa8f5be8bd8f55692bb482335383..ff2a4bc790b0fa2dec9702d82a022185 // The NSWindow used by BridgedNativeWidget. Provides hooks into AppKit that // can only be accomplished by overriding methods. diff --git a/components/remote_cocoa/app_shim/native_widget_mac_nswindow.mm b/components/remote_cocoa/app_shim/native_widget_mac_nswindow.mm -index 20fbdb2d4ac747aa174c5d8e19fd9f1ea48314a9..96588e0dfd084822f5c98cfaf2ee3c403fbd5e5f 100644 +index a5fc9193711a7cc2eee45171178c070321177ca2..2a195724de141fd4f0f06c03314e6096a0d0ed3f 100644 --- a/components/remote_cocoa/app_shim/native_widget_mac_nswindow.mm +++ b/components/remote_cocoa/app_shim/native_widget_mac_nswindow.mm @@ -22,6 +22,7 @@ @@ -704,7 +704,7 @@ index 20fbdb2d4ac747aa174c5d8e19fd9f1ea48314a9..96588e0dfd084822f5c98cfaf2ee3c40 @implementation NativeWidgetMacNSWindow { @private CommandDispatcher* __strong _commandDispatcher; -@@ -262,6 +273,7 @@ - (NativeWidgetMacNSWindowHeadlessInfo*)headlessInfo { +@@ -268,6 +279,7 @@ - (BOOL)invokeOriginalIsVisibleForTesting { // bubbles and the find bar, but these should not be movable. // Instead, let's push this up to the parent window which should be // the browser. @@ -712,7 +712,7 @@ index 20fbdb2d4ac747aa174c5d8e19fd9f1ea48314a9..96588e0dfd084822f5c98cfaf2ee3c40 - (void)_zoomToScreenEdge:(NSUInteger)edge { if (self.parentWindow) { [self.parentWindow _zoomToScreenEdge:edge]; -@@ -269,6 +281,7 @@ - (void)_zoomToScreenEdge:(NSUInteger)edge { +@@ -275,6 +287,7 @@ - (void)_zoomToScreenEdge:(NSUInteger)edge { [super _zoomToScreenEdge:edge]; } } @@ -720,7 +720,7 @@ index 20fbdb2d4ac747aa174c5d8e19fd9f1ea48314a9..96588e0dfd084822f5c98cfaf2ee3c40 // This override helps diagnose lifetime issues in crash stacktraces by // inserting a symbol on NativeWidgetMacNSWindow and should be kept even if it -@@ -401,6 +414,8 @@ - (NSAccessibilityRole)accessibilityRole { +@@ -407,6 +420,8 @@ - (NSAccessibilityRole)accessibilityRole { // NSWindow overrides. @@ -729,7 +729,7 @@ index 20fbdb2d4ac747aa174c5d8e19fd9f1ea48314a9..96588e0dfd084822f5c98cfaf2ee3c40 + (Class)frameViewClassForStyleMask:(NSWindowStyleMask)windowStyle { if (windowStyle & NSWindowStyleMaskTitled) { if (Class customFrame = [NativeWidgetMacNSWindowTitledFrame class]) -@@ -412,6 +427,8 @@ + (Class)frameViewClassForStyleMask:(NSWindowStyleMask)windowStyle { +@@ -418,6 +433,8 @@ + (Class)frameViewClassForStyleMask:(NSWindowStyleMask)windowStyle { return [super frameViewClassForStyleMask:windowStyle]; } @@ -738,7 +738,7 @@ index 20fbdb2d4ac747aa174c5d8e19fd9f1ea48314a9..96588e0dfd084822f5c98cfaf2ee3c40 - (NSRect)constrainFrameRect:(NSRect)frameRect toScreen:(NSScreen*)screen { if (self.isHeadless || self.parentWindow) { // AppKit's default implementation moves child windows down to avoid -@@ -449,12 +466,14 @@ - (BOOL)_usesCustomDrawing { +@@ -455,12 +472,14 @@ - (BOOL)_usesCustomDrawing { // if it were valid to set that style for windows, setting the window style // recalculates and re-caches a bunch of stuff, so a surgical override is the // cleanest approach. @@ -753,7 +753,7 @@ index 20fbdb2d4ac747aa174c5d8e19fd9f1ea48314a9..96588e0dfd084822f5c98cfaf2ee3c40 + (void)_getExteriorResizeEdgeThicknesses: (NSEdgeAndCornerThicknesses*)outThicknesses -@@ -708,9 +727,11 @@ - (id)archiver:(NSKeyedArchiver*)archiver willEncodeObject:(id)object { +@@ -714,9 +733,11 @@ - (id)archiver:(NSKeyedArchiver*)archiver willEncodeObject:(id)object { } - (void)saveRestorableState { @@ -765,7 +765,7 @@ index 20fbdb2d4ac747aa174c5d8e19fd9f1ea48314a9..96588e0dfd084822f5c98cfaf2ee3c40 // Certain conditions, such as in the Speedometer 3 benchmark, can trigger a // rapid succession of calls to saveRestorableState. If there's no pending -@@ -777,6 +798,7 @@ - (void)reallySaveRestorableState { +@@ -783,6 +804,7 @@ - (void)reallySaveRestorableState { // affects its restorable state changes. - (void)invalidateRestorableState { [super invalidateRestorableState]; @@ -773,7 +773,7 @@ index 20fbdb2d4ac747aa174c5d8e19fd9f1ea48314a9..96588e0dfd084822f5c98cfaf2ee3c40 if ([self _isConsideredOpenForPersistentState]) { if (_willUpdateRestorableState) return; -@@ -789,6 +811,7 @@ - (void)invalidateRestorableState { +@@ -795,6 +817,7 @@ - (void)invalidateRestorableState { _willUpdateRestorableState = NO; [NSObject cancelPreviousPerformRequestsWithTarget:self]; } @@ -781,7 +781,7 @@ index 20fbdb2d4ac747aa174c5d8e19fd9f1ea48314a9..96588e0dfd084822f5c98cfaf2ee3c40 } // On newer SDKs, _canMiniaturize respects NSWindowStyleMaskMiniaturizable in -@@ -965,6 +988,7 @@ - (void)maybeRemoveTreeFromOrderingGroups { +@@ -971,6 +994,7 @@ - (void)maybeRemoveTreeFromOrderingGroups { // Since _removeFromGroups: is not documented it could go away in newer // versions of macOS. If the selector does not exist, DumpWithoutCrashing() so // we hear about the change. @@ -789,7 +789,7 @@ index 20fbdb2d4ac747aa174c5d8e19fd9f1ea48314a9..96588e0dfd084822f5c98cfaf2ee3c40 if (![NSWindow instancesRespondToSelector:@selector(_removeFromGroups:)]) { base::debug::DumpWithoutCrashing(); return; -@@ -982,6 +1006,7 @@ - (void)maybeRemoveTreeFromOrderingGroups { +@@ -988,6 +1012,7 @@ - (void)maybeRemoveTreeFromOrderingGroups { [currentWindow _removeFromGroups:child]; } } @@ -798,7 +798,7 @@ index 20fbdb2d4ac747aa174c5d8e19fd9f1ea48314a9..96588e0dfd084822f5c98cfaf2ee3c40 - (NSWindow*)rootWindow { diff --git a/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.mm b/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.mm -index c6cfdc7b778f2027280d8624a0d48f385365f758..b99b8ec014c81c1d6ad14a6758568dd864102e2a 100644 +index efcdbc9d3114c2229af87af755f642f053f51730..01d4ee891850efc4b27a8663c9be1c754fd2843b 100644 --- a/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.mm +++ b/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.mm @@ -42,6 +42,7 @@ @@ -809,7 +809,7 @@ index c6cfdc7b778f2027280d8624a0d48f385365f758..b99b8ec014c81c1d6ad14a6758568dd8 #include "mojo/public/cpp/bindings/self_owned_receiver.h" #include "net/cert/x509_util_apple.h" #include "ui/accelerated_widget_mac/window_resize_helper_mac.h" -@@ -74,10 +75,13 @@ +@@ -75,10 +76,13 @@ using CGRegionRef = CFTypeRef; CG_EXTERN CGSConnectionID CGSMainConnectionID(void); @@ -836,7 +836,7 @@ index c6cfdc7b778f2027280d8624a0d48f385365f758..b99b8ec014c81c1d6ad14a6758568dd8 // Beware: This view was briefly removed (in favor of a bare CALayer) in // https://crrev.com/c/1236675. The ordering of unassociated layers relative -@@ -1221,6 +1227,7 @@ NSUInteger CountBridgedWindows(NSArray* child_windows) { +@@ -1187,6 +1193,7 @@ NSUInteger CountBridgedWindows(NSArray* child_windows) { } void NativeWidgetNSWindowBridge::SetAllowScreenshots(bool allow) { @@ -844,7 +844,7 @@ index c6cfdc7b778f2027280d8624a0d48f385365f758..b99b8ec014c81c1d6ad14a6758568dd8 CGSConnectionID connection_id = CGSMainConnectionID(); CGSWindowID window_id = ns_window().windowNumber; CGRect frame = ns_window().frame; -@@ -1230,6 +1237,10 @@ NSUInteger CountBridgedWindows(NSArray* child_windows) { +@@ -1196,6 +1203,10 @@ NSUInteger CountBridgedWindows(NSArray* child_windows) { region.reset(CGRegionCreateWithRect(frame)); } CGSSetWindowCaptureExcludeShape(connection_id, window_id, region.get()); @@ -961,7 +961,7 @@ index 712d59e1f7d9681c122e6d05a8b65bccbfacb492..de24209bbd3cd4a530c6f32990a0f93a return kAttributes; } diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn -index dea1ad18b05a249f6e0b867e1a6ecd528b2e36d6..db2a79357a6a0fa0862c0a94358de3798166023f 100644 +index cea27cb456859db57e20c973db94e8ed3c12c3eb..6c745fa7ed7a590c8271f461dc62f792e15ddce2 100644 --- a/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn @@ -345,6 +345,7 @@ source_set("browser") { @@ -1082,10 +1082,10 @@ index cf8652cb6ddbf07e114d576c192bcda99dc78e3a..c4ada35c3ca32ce06ffc57577af7bc4c /////////////////////////////////////////////////////////////////////////////// diff --git a/content/common/BUILD.gn b/content/common/BUILD.gn -index 864bedc939029e594abb441c390c143739874fc9..3ef7c5ad377ddba1a00c55a97c7602d55effb299 100644 +index 642c556a310705c34e4d9505afd910add76f727c..c3be3144e00cec6d71faad182c77bd0e7f924813 100644 --- a/content/common/BUILD.gn +++ b/content/common/BUILD.gn -@@ -265,6 +265,7 @@ source_set("common") { +@@ -276,6 +276,7 @@ source_set("common") { "//ui/shell_dialogs", "//url", "//url/ipc:url_ipc", @@ -1176,7 +1176,7 @@ index a1068589ad844518038ee7bc15a3de9bc5cba525..1ff781c49f086ec8015c7d3c44567dbe } // namespace content diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn -index fb48801fd89b4fabb7eb294aa4d088f69a4f5384..0e2df5a8844d431e0cf7baa6f15403745b5cd9b2 100644 +index f84d44d043af9f8e5abc8b49e7e8e32d9af3efff..ef6c2deb5cc88e4beffde4d912a47e8f40315fcc 100644 --- a/content/test/BUILD.gn +++ b/content/test/BUILD.gn @@ -700,6 +700,7 @@ static_library("test_support") { @@ -1196,7 +1196,7 @@ index fb48801fd89b4fabb7eb294aa4d088f69a4f5384..0e2df5a8844d431e0cf7baa6f1540374 } mojom("content_test_mojo_bindings") { -@@ -2063,6 +2066,7 @@ test("content_browsertests") { +@@ -2064,6 +2067,7 @@ test("content_browsertests") { "//ui/shell_dialogs", "//ui/snapshot", "//ui/webui:test_support", @@ -1204,7 +1204,7 @@ index fb48801fd89b4fabb7eb294aa4d088f69a4f5384..0e2df5a8844d431e0cf7baa6f1540374 ] if (!(is_chromeos && target_cpu == "arm64" && current_cpu == "arm")) { -@@ -3405,6 +3409,7 @@ test("content_unittests") { +@@ -3410,6 +3414,7 @@ test("content_unittests") { "//ui/shell_dialogs", "//ui/webui:test_support", "//url", @@ -1283,10 +1283,10 @@ index f300e8d331057e894b43b74944e5052c39206844..4ff5277d550485cd79c5b5316d89c730 base::WeakPtr diff --git a/gpu/ipc/service/BUILD.gn b/gpu/ipc/service/BUILD.gn -index 327c2a54f2977ec99885c8c50709129cd5dcd87f..67c1b8a68dec740d0230d6b2396234b9a8b39a8a 100644 +index 03a74b7d29f12be3a5d208b43beaa13f47a8e4a6..d36254ca28c1a3a4ef2b15cfbb3272129588cc20 100644 --- a/gpu/ipc/service/BUILD.gn +++ b/gpu/ipc/service/BUILD.gn -@@ -119,6 +119,7 @@ component("service") { +@@ -125,6 +125,7 @@ component("service") { "QuartzCore.framework", ] defines += [ "GL_SILENCE_DEPRECATION" ] @@ -2127,7 +2127,7 @@ index ef031ba14e4c649f6f3a5718ac521e6b424d64cb..38e528450196b4dbd5fa6a25b96baa10 // Accessible object if (AXElementWrapper::IsValidElement(value)) { diff --git a/ui/base/BUILD.gn b/ui/base/BUILD.gn -index 7d1c33b93adebfb9d93464399af2df84418d74f4..0b9789fad27bd46acecda88ccf3b13e58c39232c 100644 +index f4570ade0bc32c45e35b2d1eb11a192f3d78efd9..4da3ddf5aa20ce6320af522a04f2a251e995f610 100644 --- a/ui/base/BUILD.gn +++ b/ui/base/BUILD.gn @@ -355,6 +355,13 @@ component("base") { @@ -2248,10 +2248,10 @@ index 93e90c4eba9bc9b93d68e834eb6baabeb2d0ecf0..1b90f41d05f847a94adf2f4da827b1d0 } // namespace diff --git a/ui/display/BUILD.gn b/ui/display/BUILD.gn -index 1b3ed08902ddb5a4400345c4b0d204ca82df2c5e..6db9f06dbaf357cf83ac7b6ff9acc2f20149d09c 100644 +index 47da87797a4a6e2163fc356955b516d6c7a2f276..87d7cac13dfe0bd5ec91398f7fe75c0c28ef0474 100644 --- a/ui/display/BUILD.gn +++ b/ui/display/BUILD.gn -@@ -138,6 +138,12 @@ component("display") { +@@ -140,6 +140,12 @@ component("display") { "//ui/gfx/geometry", ] @@ -2295,10 +2295,10 @@ index bfffd0444b0711b201cedaddfd3edaa7b5d9220a..8cdae9f250d407d0c2d34ba7c0891b84 // Query the display's refresh rate. display.set_display_frequency(screen.maximumFramesPerSecond); diff --git a/ui/gfx/BUILD.gn b/ui/gfx/BUILD.gn -index 8db4f9770541cbd49830fba2770adb03c5db3b2e..7fcbd3fc20a1b116587bf6507cd43ca6f0164b22 100644 +index a4e4367a1e7eb3f9f6d66e01db5768bc957da16e..ec014ee74dee2c5237a73fc1f1ad832d5596f93b 100644 --- a/ui/gfx/BUILD.gn +++ b/ui/gfx/BUILD.gn -@@ -280,6 +280,8 @@ component("gfx") { +@@ -284,6 +284,8 @@ component("gfx") { "CoreGraphics.framework", "CoreText.framework", ] @@ -2346,10 +2346,10 @@ index bbe355cf69f160866188216cc274d75bd35603db..06ee100d7ea2e892dbf3c0b1adc96c50 // enough. return PlatformFontMac::SystemFontType::kGeneral; diff --git a/ui/views/BUILD.gn b/ui/views/BUILD.gn -index 6253f851c93670055f3fe9e14e1b8d0970e9beb9..b1b224285e5dfef66cfbec828e47527e3b8dfcde 100644 +index 5cbc7acdb196ecb8dcc987b81cf774938ff8bdfe..39badc4037525eb0039d6514cc988e8df2e6c953 100644 --- a/ui/views/BUILD.gn +++ b/ui/views/BUILD.gn -@@ -726,6 +726,8 @@ component("views") { +@@ -728,6 +728,8 @@ component("views") { "IOSurface.framework", "QuartzCore.framework", ] @@ -2358,7 +2358,7 @@ index 6253f851c93670055f3fe9e14e1b8d0970e9beb9..b1b224285e5dfef66cfbec828e47527e } if (is_win) { -@@ -1155,6 +1157,8 @@ source_set("test_support") { +@@ -1157,6 +1159,8 @@ source_set("test_support") { "//ui/base/mojom:ui_base_types", ] @@ -2368,7 +2368,7 @@ index 6253f851c93670055f3fe9e14e1b8d0970e9beb9..b1b224285e5dfef66cfbec828e47527e sources += [ "test/desktop_window_tree_host_win_test_api.cc", diff --git a/ui/views/cocoa/native_widget_mac_ns_window_host.h b/ui/views/cocoa/native_widget_mac_ns_window_host.h -index fdc7eb4e4c5e8338c725f7d317559b091d8b38fe..2239b085ac7fd87fe06aef1001551f8afe8e21e4 100644 +index 197f6a9b1f12f723d34baa4c9efe2982c1f01c10..dccf58b3d0d1003d236e204cde4edbab00610eac 100644 --- a/ui/views/cocoa/native_widget_mac_ns_window_host.h +++ b/ui/views/cocoa/native_widget_mac_ns_window_host.h @@ -19,6 +19,7 @@ @@ -2389,7 +2389,7 @@ index fdc7eb4e4c5e8338c725f7d317559b091d8b38fe..2239b085ac7fd87fe06aef1001551f8a @class NSView; namespace remote_cocoa { -@@ -506,10 +509,12 @@ class VIEWS_EXPORT NativeWidgetMacNSWindowHost +@@ -510,10 +513,12 @@ class VIEWS_EXPORT NativeWidgetMacNSWindowHost mojo::AssociatedRemote remote_ns_window_remote_; @@ -2403,7 +2403,7 @@ index fdc7eb4e4c5e8338c725f7d317559b091d8b38fe..2239b085ac7fd87fe06aef1001551f8a // Used to force the NSApplication's focused accessibility element to be the // views::Views accessibility tree when the NSView for this is focused. diff --git a/ui/views/cocoa/native_widget_mac_ns_window_host.mm b/ui/views/cocoa/native_widget_mac_ns_window_host.mm -index e40d0d5be1c48fc713d738f9ffb8105cce450e52..a1185e4f63de04c56448257567533764476d6c3c 100644 +index abdd8d9be9ef405f9159a5f1d19c5b08cbbe03e7..04ccf05abbdeba229a39f547d1affc6e21e7d377 100644 --- a/ui/views/cocoa/native_widget_mac_ns_window_host.mm +++ b/ui/views/cocoa/native_widget_mac_ns_window_host.mm @@ -20,6 +20,7 @@ @@ -2414,7 +2414,7 @@ index e40d0d5be1c48fc713d738f9ffb8105cce450e52..a1185e4f63de04c56448257567533764 #include "mojo/public/cpp/bindings/self_owned_associated_receiver.h" #include "ui/accelerated_widget_mac/window_resize_helper_mac.h" #include "ui/accessibility/accessibility_features.h" -@@ -361,8 +362,12 @@ void HandleAccelerator(const ui::Accelerator& accelerator, +@@ -362,8 +363,12 @@ void HandleAccelerator(const ui::Accelerator& accelerator, if (in_process_ns_window_bridge_) { return gfx::NativeViewAccessible(in_process_ns_window_bridge_->ns_view()); } @@ -2427,7 +2427,7 @@ index e40d0d5be1c48fc713d738f9ffb8105cce450e52..a1185e4f63de04c56448257567533764 } gfx::NativeViewAccessible -@@ -378,8 +383,12 @@ void HandleAccelerator(const ui::Accelerator& accelerator, +@@ -379,8 +384,12 @@ void HandleAccelerator(const ui::Accelerator& accelerator, [in_process_ns_window_bridge_->ns_view() window]); } @@ -2440,7 +2440,7 @@ index e40d0d5be1c48fc713d738f9ffb8105cce450e52..a1185e4f63de04c56448257567533764 } remote_cocoa::mojom::NativeWidgetNSWindow* -@@ -1450,9 +1459,11 @@ void HandleAccelerator(const ui::Accelerator& accelerator, +@@ -1462,9 +1471,11 @@ void HandleAccelerator(const ui::Accelerator& accelerator, // for PWAs. However this breaks accessibility on in-process windows, // so set it back to NO when a local window gains focus. See // https://crbug.com/41485830. @@ -2452,7 +2452,7 @@ index e40d0d5be1c48fc713d738f9ffb8105cce450e52..a1185e4f63de04c56448257567533764 // Explicitly set the keyboard accessibility state on regaining key // window status. if (is_key && is_content_first_responder) { -@@ -1605,17 +1616,20 @@ void HandleAccelerator(const ui::Accelerator& accelerator, +@@ -1617,17 +1628,20 @@ void HandleAccelerator(const ui::Accelerator& accelerator, void NativeWidgetMacNSWindowHost::SetRemoteAccessibilityTokens( const std::vector& window_token, const std::vector& view_token) { @@ -2473,7 +2473,7 @@ index e40d0d5be1c48fc713d738f9ffb8105cce450e52..a1185e4f63de04c56448257567533764 *pid = getpid(); id element_id = GetNativeViewAccessible(); -@@ -1628,6 +1642,7 @@ void HandleAccelerator(const ui::Accelerator& accelerator, +@@ -1640,6 +1654,7 @@ void HandleAccelerator(const ui::Accelerator& accelerator, } *token = ui::RemoteAccessibility::GetTokenForLocalElement(element_id); diff --git a/patches/chromium/network_service_allow_remote_certificate_verification_logic.patch b/patches/chromium/network_service_allow_remote_certificate_verification_logic.patch index 60115ed21f..edebdbab82 100644 --- a/patches/chromium/network_service_allow_remote_certificate_verification_logic.patch +++ b/patches/chromium/network_service_allow_remote_certificate_verification_logic.patch @@ -7,7 +7,7 @@ This adds a callback from the network service that's used to implement session.setCertificateVerifyCallback. diff --git a/services/network/network_context.cc b/services/network/network_context.cc -index 36771cf23bbf39af4fcc79576e93fc0c2ee1a8ab..02f70ce0f192562c11cdbc4d193302e700a302aa 100644 +index 7e784ecaa70358f861764077882c9421ad793f38..81f99ddf906bc1767f3d79ac303c0f7cdd31dd65 100644 --- a/services/network/network_context.cc +++ b/services/network/network_context.cc @@ -170,6 +170,11 @@ @@ -148,7 +148,7 @@ index 36771cf23bbf39af4fcc79576e93fc0c2ee1a8ab..02f70ce0f192562c11cdbc4d193302e7 void NetworkContext::CreateURLLoaderFactory( mojo::PendingReceiver receiver, mojom::URLLoaderFactoryParamsPtr params) { -@@ -2674,6 +2791,10 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( +@@ -2679,6 +2796,10 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( cert_verifier = std::make_unique( std::make_unique( std::move(cert_verifier))); @@ -160,7 +160,7 @@ index 36771cf23bbf39af4fcc79576e93fc0c2ee1a8ab..02f70ce0f192562c11cdbc4d193302e7 builder.SetCertVerifier(IgnoreErrorsCertVerifier::MaybeWrapCertVerifier( diff --git a/services/network/network_context.h b/services/network/network_context.h -index 98ec8269223714f54f48245bfc83f0c018dbf0b3..01a7a606dd6341df2c519776399f8f9875b557f7 100644 +index 1aa005e66e02de189d3f9e07721e3ef34d79cc94..c78ef874c575c7fdff5cc068fc34e7ce0231737e 100644 --- a/services/network/network_context.h +++ b/services/network/network_context.h @@ -118,6 +118,7 @@ class SimpleUrlPatternMatcher; @@ -180,7 +180,7 @@ index 98ec8269223714f54f48245bfc83f0c018dbf0b3..01a7a606dd6341df2c519776399f8f98 void ResetURLLoaderFactories() override; void GetViaObliviousHttp( mojom::ObliviousHttpRequestPtr request, -@@ -958,6 +961,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -965,6 +968,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext std::vector dismount_closures_; #endif // BUILDFLAG(IS_DIRECTORY_TRANSFER_REQUIRED) @@ -190,7 +190,7 @@ index 98ec8269223714f54f48245bfc83f0c018dbf0b3..01a7a606dd6341df2c519776399f8f98 std::unique_ptr internal_host_resolver_; std::set, base::UniquePtrComparator> diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom -index 036b7177221e0c067dc6ef580dcbe7ed80845028..9599c3570b74fa03464beb9adeb1a0c237744640 100644 +index 2c22826c90d078b710c11a336058c78ec27cb6f4..8f2f1cc4f4df6ce8c00a65d6b8c008a896800fd7 100644 --- a/services/network/public/mojom/network_context.mojom +++ b/services/network/public/mojom/network_context.mojom @@ -313,6 +313,17 @@ struct SocketBrokerRemotes { @@ -211,7 +211,7 @@ index 036b7177221e0c067dc6ef580dcbe7ed80845028..9599c3570b74fa03464beb9adeb1a0c2 // Parameters for constructing a network context. struct NetworkContextParams { // The user agent string. -@@ -963,6 +974,9 @@ interface NetworkContext { +@@ -962,6 +973,9 @@ interface NetworkContext { // Sets a client for this network context. SetClient(pending_remote client); @@ -222,7 +222,7 @@ index 036b7177221e0c067dc6ef580dcbe7ed80845028..9599c3570b74fa03464beb9adeb1a0c2 CreateURLLoaderFactory( pending_receiver url_loader_factory, diff --git a/services/network/test/test_network_context.h b/services/network/test/test_network_context.h -index 233a5c213e50ea5a39dff0543842602279a7c7c3..b228a3725b04b92037fc1c2ec601f04642d59fc3 100644 +index 6c96b6643b8aac24e6aa365398a87b25044801d2..8ce978e789227dd5fcd4117f40996bba7504e537 100644 --- a/services/network/test/test_network_context.h +++ b/services/network/test/test_network_context.h @@ -63,6 +63,8 @@ class TestNetworkContext : public mojom::NetworkContext { diff --git a/patches/chromium/notification_provenance.patch b/patches/chromium/notification_provenance.patch index ab4a7d60ed..bbce945064 100644 --- a/patches/chromium/notification_provenance.patch +++ b/patches/chromium/notification_provenance.patch @@ -7,7 +7,7 @@ Pass RenderFrameHost through to PlatformNotificationService so Electron can identify which renderer a notification came from. diff --git a/chrome/browser/notifications/platform_notification_service_impl.cc b/chrome/browser/notifications/platform_notification_service_impl.cc -index fd890f3c91b0e614174362e2b7d61a63b9094c0c..6e63db38f289a6a83fdd93879e067d85fed25705 100644 +index 8ffb699fa54ca06d3d6e6160403cbc302a765367..ab86e573011f5e128217f4739be16358cc02b4e0 100644 --- a/chrome/browser/notifications/platform_notification_service_impl.cc +++ b/chrome/browser/notifications/platform_notification_service_impl.cc @@ -266,6 +266,7 @@ bool PlatformNotificationServiceImpl::WasClosedProgrammatically( @@ -133,10 +133,10 @@ index 9bf238e64af483294ae3c3f18a4e9aed49a8658d..b9b2a4c8c387b8e8b4eb1f02fc0f891c const GURL& document_url, const WeakDocumentPtr& weak_document_ptr, diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc -index 02369c57e0a307d32a9f38752a650aedeec34808..377c9375ba8e98bb7b8db39259d15a3ae504af7b 100644 +index 43d91211e346f1fb1b415adcb674a391da25f3be..b54c240121e41ce1f6110fb314d341649b54dffc 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -2353,7 +2353,7 @@ void RenderProcessHostImpl::CreateNotificationService( +@@ -2359,7 +2359,7 @@ void RenderProcessHostImpl::CreateNotificationService( case RenderProcessHost::NotificationServiceCreatorType::kSharedWorker: case RenderProcessHost::NotificationServiceCreatorType::kDedicatedWorker: { storage_partition_impl_->GetPlatformNotificationContext()->CreateService( @@ -145,7 +145,7 @@ index 02369c57e0a307d32a9f38752a650aedeec34808..377c9375ba8e98bb7b8db39259d15a3a creator_type, std::move(receiver)); break; } -@@ -2361,7 +2361,7 @@ void RenderProcessHostImpl::CreateNotificationService( +@@ -2367,7 +2367,7 @@ void RenderProcessHostImpl::CreateNotificationService( CHECK(rfh); storage_partition_impl_->GetPlatformNotificationContext()->CreateService( diff --git a/patches/chromium/osr_shared_texture_remove_keyed_mutex_on_win_dxgi.patch b/patches/chromium/osr_shared_texture_remove_keyed_mutex_on_win_dxgi.patch index 5abab12e03..52ef9f9aad 100644 --- a/patches/chromium/osr_shared_texture_remove_keyed_mutex_on_win_dxgi.patch +++ b/patches/chromium/osr_shared_texture_remove_keyed_mutex_on_win_dxgi.patch @@ -11,7 +11,7 @@ For resolving complex conflict please pin @reitowo For more reason please see: https://crrev.com/c/5465148 diff --git a/gpu/command_buffer/service/shared_image/d3d_image_backing_factory.cc b/gpu/command_buffer/service/shared_image/d3d_image_backing_factory.cc -index 4f1db7db3da9f792ed2a0352abf6940b0f03f4ff..c35b5a44474b6a0c38f177342263e49a58d49f60 100644 +index 660a50670db25c48bdb7ab9facd8efbe944844f1..904ae1ef29aae9a28b555acc71928450ea848588 100644 --- a/gpu/command_buffer/service/shared_image/d3d_image_backing_factory.cc +++ b/gpu/command_buffer/service/shared_image/d3d_image_backing_factory.cc @@ -378,7 +378,8 @@ gfx::GpuMemoryBufferHandle D3DImageBackingFactory::CreateGpuMemoryBufferHandle( diff --git a/patches/chromium/picture-in-picture.patch b/patches/chromium/picture-in-picture.patch index 38e0148859..709ba22404 100644 --- a/patches/chromium/picture-in-picture.patch +++ b/patches/chromium/picture-in-picture.patch @@ -38,7 +38,7 @@ index a7a637438116a1c7846194dea4412100a45c9331..bb3877d546bfea141d3d6ebb396b88fa ui::ImageModel::FromVectorIcon(*icon, kColorPipWindowForeground, kCloseButtonIconSize)); diff --git a/chrome/browser/ui/views/overlay/video_overlay_window_views.cc b/chrome/browser/ui/views/overlay/video_overlay_window_views.cc -index 315bbdb102329f38da986fbe3fd1a964b27a8ea4..89083187a3b872eaba30f1075445d0709a1607b3 100644 +index 94648718cc291dea8d5f4d7eace79c67d92bdd5f..ff3634d3138c91d380e405ce8f375819bafd23f3 100644 --- a/chrome/browser/ui/views/overlay/video_overlay_window_views.cc +++ b/chrome/browser/ui/views/overlay/video_overlay_window_views.cc @@ -18,12 +18,16 @@ @@ -87,7 +87,7 @@ index 315bbdb102329f38da986fbe3fd1a964b27a8ea4..89083187a3b872eaba30f1075445d070 std::wstring app_user_model_id; Browser* browser = chrome::FindBrowserWithTab(controller->GetWebContents()); if (browser) { -@@ -695,6 +701,7 @@ void VideoOverlayWindowViews::OnMouseEvent(ui::MouseEvent* event) { +@@ -704,6 +710,7 @@ void VideoOverlayWindowViews::OnMouseEvent(ui::MouseEvent* event) { } case ui::EventType::kMousePressed: @@ -95,7 +95,7 @@ index 315bbdb102329f38da986fbe3fd1a964b27a8ea4..89083187a3b872eaba30f1075445d070 // Hide the live caption dialog if it's visible and the user clicks // outside of it. if (live_caption_dialog_ && live_caption_dialog_->GetVisible() && -@@ -703,6 +710,7 @@ void VideoOverlayWindowViews::OnMouseEvent(ui::MouseEvent* event) { +@@ -712,6 +719,7 @@ void VideoOverlayWindowViews::OnMouseEvent(ui::MouseEvent* event) { SetLiveCaptionDialogVisibility(false); return; } @@ -103,7 +103,7 @@ index 315bbdb102329f38da986fbe3fd1a964b27a8ea4..89083187a3b872eaba30f1075445d070 break; default: -@@ -738,11 +746,11 @@ bool VideoOverlayWindowViews::HideLiveCaptionDialogForGestureIfNecessary( +@@ -747,11 +755,11 @@ bool VideoOverlayWindowViews::HideLiveCaptionDialogForGestureIfNecessary( if (event->type() != ui::EventType::kGestureTap) { return false; } @@ -117,7 +117,7 @@ index 315bbdb102329f38da986fbe3fd1a964b27a8ea4..89083187a3b872eaba30f1075445d070 if (!GetLiveCaptionDialogBounds().Contains(event->location())) { SetLiveCaptionDialogVisibility(false); event->SetHandled(); -@@ -1222,6 +1230,7 @@ void VideoOverlayWindowViews::SetUpViews() { +@@ -1231,6 +1239,7 @@ void VideoOverlayWindowViews::SetUpViews() { timestamp->SetBackgroundColor(SK_ColorTRANSPARENT); timestamp->SetHorizontalAlignment(gfx::ALIGN_LEFT); @@ -125,7 +125,7 @@ index 315bbdb102329f38da986fbe3fd1a964b27a8ea4..89083187a3b872eaba30f1075445d070 auto live_status = std::make_unique( l10n_util::GetStringUTF16(IDS_PICTURE_IN_PICTURE_LIVE_STATUS_TEXT), views::style::CONTEXT_LABEL, views::style::STYLE_CAPTION_BOLD); -@@ -1241,6 +1250,7 @@ void VideoOverlayWindowViews::SetUpViews() { +@@ -1250,6 +1259,7 @@ void VideoOverlayWindowViews::SetUpViews() { Profile::FromBrowserContext( controller_->GetWebContents()->GetBrowserContext())); live_caption_dialog->SetVisible(false); @@ -133,7 +133,7 @@ index 315bbdb102329f38da986fbe3fd1a964b27a8ea4..89083187a3b872eaba30f1075445d070 auto toggle_microphone_button = std::make_unique(base::BindRepeating( -@@ -1363,13 +1373,15 @@ void VideoOverlayWindowViews::SetUpViews() { +@@ -1372,13 +1382,15 @@ void VideoOverlayWindowViews::SetUpViews() { timestamp_ = playback_controls_container_view_->AddChildView(std::move(timestamp)); @@ -150,7 +150,7 @@ index 315bbdb102329f38da986fbe3fd1a964b27a8ea4..89083187a3b872eaba30f1075445d070 toggle_camera_button_ = vc_controls_container_view_->AddChildView( std::move(toggle_camera_button)); -@@ -1648,6 +1660,7 @@ void VideoOverlayWindowViews::OnUpdateControlsBounds() { +@@ -1657,6 +1669,7 @@ void VideoOverlayWindowViews::OnUpdateControlsBounds() { timestamp_->SetSize({max_timestamp_width, kTimestampHeight}); timestamp_->SetVisible(!is_live_); @@ -158,7 +158,7 @@ index 315bbdb102329f38da986fbe3fd1a964b27a8ea4..89083187a3b872eaba30f1075445d070 live_status_->SetPosition(timestamp_position); live_status_->SetMaximumWidthSingleLine(max_timestamp_width); live_status_->SetSize( -@@ -1655,7 +1668,6 @@ void VideoOverlayWindowViews::OnUpdateControlsBounds() { +@@ -1664,7 +1677,6 @@ void VideoOverlayWindowViews::OnUpdateControlsBounds() { .width(), kTimestampHeight}); live_status_->SetVisible(is_live_); @@ -166,7 +166,7 @@ index 315bbdb102329f38da986fbe3fd1a964b27a8ea4..89083187a3b872eaba30f1075445d070 gfx::Rect live_caption_button_bounds( bottom_controls_bounds.right() - kBottomControlsHorizontalMargin - kActionButtonSize.width(), -@@ -1668,7 +1680,7 @@ void VideoOverlayWindowViews::OnUpdateControlsBounds() { +@@ -1677,7 +1689,7 @@ void VideoOverlayWindowViews::OnUpdateControlsBounds() { live_caption_dialog_->SetPosition( {live_caption_button_bounds.right() - live_caption_dialog_->width(), live_caption_button_bounds.y() - live_caption_dialog_->height()}); @@ -175,7 +175,7 @@ index 315bbdb102329f38da986fbe3fd1a964b27a8ea4..89083187a3b872eaba30f1075445d070 // The play/pause button and replay/forward 10 seconds buttons should not be // visible while dragging the progress bar or for live media. const bool is_dragging_progress_bar = -@@ -2067,18 +2079,25 @@ gfx::Rect VideoOverlayWindowViews::GetProgressViewBounds() { +@@ -2076,18 +2088,25 @@ gfx::Rect VideoOverlayWindowViews::GetProgressViewBounds() { } gfx::Rect VideoOverlayWindowViews::GetLiveCaptionButtonBounds() { @@ -201,7 +201,7 @@ index 315bbdb102329f38da986fbe3fd1a964b27a8ea4..89083187a3b872eaba30f1075445d070 MediaEngagementService* service = MediaEngagementService::Get(Profile::FromBrowserContext( GetController()->GetWebContents()->GetBrowserContext())); -@@ -2087,6 +2106,8 @@ bool VideoOverlayWindowViews::HasHighMediaEngagement( +@@ -2096,6 +2115,8 @@ bool VideoOverlayWindowViews::HasHighMediaEngagement( } return service->HasHighEngagement(origin); @@ -210,7 +210,7 @@ index 315bbdb102329f38da986fbe3fd1a964b27a8ea4..89083187a3b872eaba30f1075445d070 } bool VideoOverlayWindowViews::IsTrustedForMediaPlayback() const { -@@ -2348,11 +2369,14 @@ void VideoOverlayWindowViews::UpdateTimestampLabel(base::TimeDelta current_time, +@@ -2357,11 +2378,14 @@ void VideoOverlayWindowViews::UpdateTimestampLabel(base::TimeDelta current_time, } void VideoOverlayWindowViews::OnLiveCaptionButtonPressed() { @@ -225,7 +225,7 @@ index 315bbdb102329f38da986fbe3fd1a964b27a8ea4..89083187a3b872eaba30f1075445d070 if (wanted_visibility == live_caption_dialog_->GetVisible()) { return; } -@@ -2375,6 +2399,7 @@ void VideoOverlayWindowViews::SetLiveCaptionDialogVisibility( +@@ -2384,6 +2408,7 @@ void VideoOverlayWindowViews::SetLiveCaptionDialogVisibility( for (auto* control : controls_to_be_disabled_when_live_caption_is_open) { control->SetEnabled(!wanted_visibility); } diff --git a/patches/chromium/port_autofill_colors_to_the_color_pipeline.patch b/patches/chromium/port_autofill_colors_to_the_color_pipeline.patch index 3e57dbcc2e..a7bb3b7430 100644 --- a/patches/chromium/port_autofill_colors_to_the_color_pipeline.patch +++ b/patches/chromium/port_autofill_colors_to_the_color_pipeline.patch @@ -8,10 +8,10 @@ needed in chromium but our autofill implementation uses them. This patch can be our autofill implementation to work like Chromium's. diff --git a/ui/color/color_id.h b/ui/color/color_id.h -index c811479d785a438230a6f16ee1949d2dd97bc7ac..59208ffdf3810239546be9682c9c7948810c84c4 100644 +index 10067d16998f5772dd0431d47909cfb656de360d..2fb1c5344086227d47467f87d980b2c8f5112cad 100644 --- a/ui/color/color_id.h +++ b/ui/color/color_id.h -@@ -440,6 +440,10 @@ +@@ -441,6 +441,10 @@ E_CPONLY(kColorRadioButtonForegroundUnchecked) \ E_CPONLY(kColorRadioButtonForegroundDisabled) \ E_CPONLY(kColorRadioButtonForegroundChecked) \ @@ -22,7 +22,7 @@ index c811479d785a438230a6f16ee1949d2dd97bc7ac..59208ffdf3810239546be9682c9c7948 E_CPONLY(kColorSegmentedButtonBorder) \ E_CPONLY(kColorSegmentedButtonFocus) \ E_CPONLY(kColorSegmentedButtonForegroundChecked) \ -@@ -548,6 +552,7 @@ +@@ -549,6 +553,7 @@ E_CPONLY(kColorTreeNodeForeground) \ E_CPONLY(kColorTreeNodeForegroundSelectedFocused) \ E_CPONLY(kColorTreeNodeForegroundSelectedUnfocused) \ @@ -31,10 +31,10 @@ index c811479d785a438230a6f16ee1949d2dd97bc7ac..59208ffdf3810239546be9682c9c7948 /* ui::NativeThemeBase::ControlColorId. */ \ E_CPONLY(kColorWebNativeControlAccent) \ diff --git a/ui/color/ui_color_mixer.cc b/ui/color/ui_color_mixer.cc -index 8817142344cc9abed442f07b5cbe759b82901c06..edf6d4ca1bfce93f8dcbeb2585c9ec07e3ff7f76 100644 +index c0696d530d282dcc2d8d95c518faa6326a354e8e..5a967fd5697a92d2acea2ea81b6c1115d41c2a48 100644 --- a/ui/color/ui_color_mixer.cc +++ b/ui/color/ui_color_mixer.cc -@@ -181,6 +181,17 @@ void AddUiColorMixer(ColorProvider* provider, const ColorProviderKey& key) { +@@ -182,6 +182,17 @@ void AddUiColorMixer(ColorProvider* provider, const ColorProviderKey& key) { mixer[kColorProgressBarPaused] = {kColorDisabledForeground}; mixer[kColorRadioButtonForegroundChecked] = {kColorButtonForeground}; mixer[kColorRadioButtonForegroundUnchecked] = {kColorSecondaryForeground}; @@ -52,7 +52,7 @@ index 8817142344cc9abed442f07b5cbe759b82901c06..edf6d4ca1bfce93f8dcbeb2585c9ec07 mixer[kColorSeparator] = {kColorMidground}; mixer[kColorShadowBase] = {dark_mode ? SK_ColorBLACK : gfx::kGoogleGrey800}; mixer[kColorShadowValueAmbientShadowElevationThree] = -@@ -277,6 +288,7 @@ void AddUiColorMixer(ColorProvider* provider, const ColorProviderKey& key) { +@@ -278,6 +289,7 @@ void AddUiColorMixer(ColorProvider* provider, const ColorProviderKey& key) { mixer[kColorTreeNodeForegroundSelectedFocused] = {kColorTreeNodeForeground}; mixer[kColorTreeNodeForegroundSelectedUnfocused] = { kColorTreeNodeForegroundSelectedFocused}; @@ -61,7 +61,7 @@ index 8817142344cc9abed442f07b5cbe759b82901c06..edf6d4ca1bfce93f8dcbeb2585c9ec07 CompleteDefaultWebNativeRendererColorIdsDefinition( mixer, dark_mode, diff --git a/ui/color/win/native_color_mixers_win.cc b/ui/color/win/native_color_mixers_win.cc -index 3a9c0fe7771d3c48b428ce15186abc489f87f511..8ed3e1ed471dfeba885c807888e145993fa23a1e 100644 +index 1e9287a29a293654968fd2263792bdabfab84e27..569b764b4e5ed6be525e6faa36669050bdd5bace 100644 --- a/ui/color/win/native_color_mixers_win.cc +++ b/ui/color/win/native_color_mixers_win.cc @@ -145,6 +145,10 @@ void AddNativeUiColorMixer(ColorProvider* provider, @@ -83,7 +83,7 @@ index 3a9c0fe7771d3c48b428ce15186abc489f87f511..8ed3e1ed471dfeba885c807888e14599 // Window Text mixer[kColorAlertLowSeverity] = {kColorNativeWindowText}; -@@ -166,6 +171,7 @@ void AddNativeUiColorMixer(ColorProvider* provider, +@@ -167,6 +172,7 @@ void AddNativeUiColorMixer(ColorProvider* provider, mixer[kColorTableGroupingIndicator] = {kColorNativeWindowText}; mixer[kColorThrobber] = {kColorNativeWindowText}; mixer[kColorTooltipForeground] = {kColorNativeWindowText}; @@ -91,7 +91,7 @@ index 3a9c0fe7771d3c48b428ce15186abc489f87f511..8ed3e1ed471dfeba885c807888e14599 // Hyperlinks mixer[kColorLinkForegroundDefault] = {kColorNativeHotlight}; -@@ -208,6 +214,7 @@ void AddNativeUiColorMixer(ColorProvider* provider, +@@ -209,6 +215,7 @@ void AddNativeUiColorMixer(ColorProvider* provider, mixer[kColorTextfieldForeground] = {kColorNativeBtnText}; mixer[kColorTextfieldForegroundPlaceholder] = {kColorNativeBtnText}; mixer[kColorTextfieldForegroundDisabled] = {kColorNativeBtnText}; diff --git a/patches/chromium/printing.patch b/patches/chromium/printing.patch index 76a8c1b6de..c300f9c6bb 100644 --- a/patches/chromium/printing.patch +++ b/patches/chromium/printing.patch @@ -577,7 +577,7 @@ index cdd25ff24507cc49684454820c7d385b8c67259e..d4dc7e8e0cd604a6418f76e2e387985d // Indication that the job is getting canceled. bool canceling_job_ = false; diff --git a/chrome/browser/printing/printer_query.cc b/chrome/browser/printing/printer_query.cc -index 15bd25f0d99b38c2d3a01b5bab78173ea9fef23c..27de3e2b4de7052af5d60a0c60b8ceec79869a49 100644 +index 2a477e820d9f0126a05f86cd44f02c2189275bad..a2e9442ff9f5acf8e301f457b1806251e0587672 100644 --- a/chrome/browser/printing/printer_query.cc +++ b/chrome/browser/printing/printer_query.cc @@ -356,17 +356,19 @@ void PrinterQuery::UpdatePrintSettings(base::DictValue new_settings, @@ -605,7 +605,7 @@ index 15bd25f0d99b38c2d3a01b5bab78173ea9fef23c..27de3e2b4de7052af5d60a0c60b8ceec #if BUILDFLAG(IS_CHROMEOS) diff --git a/chrome/browser/printing/printer_query_oop.cc b/chrome/browser/printing/printer_query_oop.cc -index 0dd564edd45425c75830f5e078f6fb375d10460b..61e0af99682502056f77426f6d17ee33463df6ae 100644 +index dc2a15ab4d784b0b6c85b84a30c3c08a17ed8e3d..8facb5981cc421cad6bce71dfa8985b0a3270405 100644 --- a/chrome/browser/printing/printer_query_oop.cc +++ b/chrome/browser/printing/printer_query_oop.cc @@ -126,7 +126,7 @@ void PrinterQueryOop::OnDidAskUserForSettings( diff --git a/patches/chromium/process_singleton.patch b/patches/chromium/process_singleton.patch index 93cb2df956..bcfcc797ee 100644 --- a/patches/chromium/process_singleton.patch +++ b/patches/chromium/process_singleton.patch @@ -18,7 +18,7 @@ This patch adds a few changes to the Chromium code: admin permissions. diff --git a/chrome/browser/process_singleton.h b/chrome/browser/process_singleton.h -index c19313c0b58baf0597a99d52ed7fcdb7faacc934..2748dd196fe1f56357348a204e24f0b8a28b97dd 100644 +index e11ccd361a0837eef71869b65f510830171c3a29..f076d0f783e2c0f6b5444002f756001adf2729bd 100644 --- a/chrome/browser/process_singleton.h +++ b/chrome/browser/process_singleton.h @@ -101,12 +101,19 @@ class ProcessSingleton { @@ -51,7 +51,7 @@ index c19313c0b58baf0597a99d52ed7fcdb7faacc934..2748dd196fe1f56357348a204e24f0b8 base::win::MessageWindow window_; // The message-only window. bool is_virtualized_; // Stuck inside Microsoft Softricity VM environment. diff --git a/chrome/browser/process_singleton_posix.cc b/chrome/browser/process_singleton_posix.cc -index 09f3425d08097eba3a9dc40d0a4af38209b06b1f..73aa4cb9652870b0bff4684d7c72ae7dbd852db8 100644 +index f36983753ab7bdf2ecd332408f1f3d9c01f87a62..5a88dfda5eb2c4bf5b547a76eef81b530f3ea96e 100644 --- a/chrome/browser/process_singleton_posix.cc +++ b/chrome/browser/process_singleton_posix.cc @@ -55,6 +55,7 @@ diff --git a/patches/chromium/refactor_expose_cursor_changes_to_the_webcontentsobserver.patch b/patches/chromium/refactor_expose_cursor_changes_to_the_webcontentsobserver.patch index f3f4c38abc..59b64436b1 100644 --- a/patches/chromium/refactor_expose_cursor_changes_to_the_webcontentsobserver.patch +++ b/patches/chromium/refactor_expose_cursor_changes_to_the_webcontentsobserver.patch @@ -30,10 +30,10 @@ index 9fce41c59c6878e0a29b831d76fcb53dcf86dcd5..2cff43e9fc4374ae48d87dd048a295a0 // RenderWidgetHost on the primary main frame, and false otherwise. virtual bool IsWidgetForPrimaryMainFrame(RenderWidgetHostImpl*); diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc -index 798ca07aa4cd1f47f459def5d6b57473cc8c7f2b..a1487f8aabb5ebfef85d4b9bf4bcac2b1370c70c 100644 +index 1455aa5083f8eef7bf9644a1cc522db3e67b0227..5df63357160d96b77c8c123a984aeef9850b1ae2 100644 --- a/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc -@@ -2092,6 +2092,9 @@ void RenderWidgetHostImpl::SetCursor(const ui::Cursor& cursor) { +@@ -2103,6 +2103,9 @@ void RenderWidgetHostImpl::SetCursor(const ui::Cursor& cursor) { if (view_) { view_->UpdateCursor(cursor); } @@ -44,10 +44,10 @@ index 798ca07aa4cd1f47f459def5d6b57473cc8c7f2b..a1487f8aabb5ebfef85d4b9bf4bcac2b void RenderWidgetHostImpl::ShowContextMenuAtPoint( diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index ca53ad6537e317dade06332b07bf9c0fe1fc00eb..2890adbe64e95ffa53611f6616511628232c4570 100644 +index e1bc262366e11ddccfa3942b9becb786ac06eba9..2f431d36474a3f7798bc1ec04b4a0f681d12d49b 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -6159,6 +6159,11 @@ TextInputManager* WebContentsImpl::GetTextInputManager() { +@@ -6168,6 +6168,11 @@ TextInputManager* WebContentsImpl::GetTextInputManager() { return text_input_manager_.get(); } @@ -60,7 +60,7 @@ index ca53ad6537e317dade06332b07bf9c0fe1fc00eb..2890adbe64e95ffa53611f6616511628 RenderWidgetHostImpl* render_widget_host) { return render_widget_host == GetPrimaryMainFrame()->GetRenderWidgetHost(); diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h -index 431f13cba0469765bdfbda01db95f51efe6bb991..2ab758b93a06133c057da2a31709ef2e0b5f90b2 100644 +index 1f4f44aabe1255989f53e04737607031835eb594..ee0012bc2811a7f8469300a2118c494c1ff00c0e 100644 --- a/content/browser/web_contents/web_contents_impl.h +++ b/content/browser/web_contents/web_contents_impl.h @@ -1192,6 +1192,7 @@ class CONTENT_EXPORT WebContentsImpl diff --git a/patches/chromium/refactor_expose_file_system_access_blocklist.patch b/patches/chromium/refactor_expose_file_system_access_blocklist.patch index 3c02728ad6..21a0db8b4e 100644 --- a/patches/chromium/refactor_expose_file_system_access_blocklist.patch +++ b/patches/chromium/refactor_expose_file_system_access_blocklist.patch @@ -8,7 +8,7 @@ it in Electron and prevent drift from Chrome's blocklist. We should look for a w to upstream this change to Chrome. diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc -index b2457fa5e7de1a4ea28a71985e54825b5172d370..ac44b6723085c7a94a5d8736e24ea4ea22ac206a 100644 +index e45b723af85446b5c7537d49e70f34b2a67bab97..ac44b6723085c7a94a5d8736e24ea4ea22ac206a 100644 --- a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc +++ b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc @@ -83,11 +83,13 @@ @@ -130,7 +130,7 @@ index b2457fa5e7de1a4ea28a71985e54825b5172d370..ac44b6723085c7a94a5d8736e24ea4ea - // to - // access only _its_ corresponding natively installed application, but - // unfortunately there's no straightforward way to do that. See -- // https://crbug.com/984641#c22. +- // https://crbug.com/40095723#c22. - {base::DIR_HOME, FILE_PATH_LITERAL("Library/Containers"), - BlockType::kDontBlockChildren}, - // Allow access to iCloud files... diff --git a/patches/chromium/refactor_expose_hostimportmoduledynamically_and.patch b/patches/chromium/refactor_expose_hostimportmoduledynamically_and.patch index 84fa24a655..52b34ac396 100644 --- a/patches/chromium/refactor_expose_hostimportmoduledynamically_and.patch +++ b/patches/chromium/refactor_expose_hostimportmoduledynamically_and.patch @@ -7,10 +7,10 @@ Subject: refactor: expose HostImportModuleDynamically and This is so that Electron can blend Blink's and Node's implementations of these isolate handlers. diff --git a/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc b/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc -index 0e46775a1c05252db46010985b3f59ee92622286..8732a4189bcdf55e7377248b634e70b48fae4ce6 100644 +index 0d6d15ca0abf91df9b7ac9f1630a150b7afcd6d3..8ffd5a65d6b7d0f61372c7dbe3d1ca3d9397d6d3 100644 --- a/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc +++ b/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc -@@ -741,8 +741,9 @@ bool WasmCustomDescriptorsEnabledCallback(v8::Local context) { +@@ -738,8 +738,9 @@ bool WasmCustomDescriptorsEnabledCallback(v8::Local context) { return RuntimeEnabledFeatures::WebAssemblyCustomDescriptorsEnabled( execution_context); } @@ -21,7 +21,7 @@ index 0e46775a1c05252db46010985b3f59ee92622286..8732a4189bcdf55e7377248b634e70b4 v8::Local context, v8::Local v8_host_defined_options, v8::Local v8_referrer_resource_url, -@@ -820,20 +821,23 @@ v8::MaybeLocal HostImportModuleWithPhaseDynamically( +@@ -817,20 +818,23 @@ v8::MaybeLocal HostImportModuleWithPhaseDynamically( return resolver->Promise().V8Promise(); } @@ -47,7 +47,7 @@ index 0e46775a1c05252db46010985b3f59ee92622286..8732a4189bcdf55e7377248b634e70b4 v8::Local module, v8::Local meta) { v8::Isolate* isolate = v8::Isolate::GetCurrent(); -@@ -860,6 +864,7 @@ void HostGetImportMetaProperties(v8::Local context, +@@ -857,6 +861,7 @@ void HostGetImportMetaProperties(v8::Local context, meta->CreateDataProperty(context, resolve_key, resolve_value).ToChecked(); } @@ -55,7 +55,7 @@ index 0e46775a1c05252db46010985b3f59ee92622286..8732a4189bcdf55e7377248b634e70b4 bool IsDOMExceptionWrapper(v8::Isolate* isolate, v8::Local object) { return V8DOMException::HasInstance(isolate, object); } -@@ -890,7 +895,6 @@ void EmitDevToolsEvent(v8::Isolate* isolate) { +@@ -887,7 +892,6 @@ void EmitDevToolsEvent(v8::Isolate* isolate) { } // namespace @@ -63,7 +63,7 @@ index 0e46775a1c05252db46010985b3f59ee92622286..8732a4189bcdf55e7377248b634e70b4 void V8Initializer::InitializeV8Common(v8::Isolate* isolate) { // Set up garbage collection before setting up anything else as V8 may trigger // GCs during Blink setup. -@@ -906,9 +910,9 @@ void V8Initializer::InitializeV8Common(v8::Isolate* isolate) { +@@ -903,9 +907,9 @@ void V8Initializer::InitializeV8Common(v8::Isolate* isolate) { SharedArrayBufferConstructorEnabledCallback); isolate->SetHostImportModuleDynamicallyCallback(HostImportModuleDynamically); isolate->SetHostImportModuleWithPhaseDynamicallyCallback( diff --git a/patches/chromium/refactor_patch_electron_permissiontypes_into_blink.patch b/patches/chromium/refactor_patch_electron_permissiontypes_into_blink.patch index d0767b6cf5..9450bab433 100644 --- a/patches/chromium/refactor_patch_electron_permissiontypes_into_blink.patch +++ b/patches/chromium/refactor_patch_electron_permissiontypes_into_blink.patch @@ -6,7 +6,7 @@ Subject: refactor: patch electron PermissionTypes into blink 6387077: [PermissionOptions] Generalize PermissionRequestDescription | https://chromium-review.googlesource.com/c/chromium/src/+/6387077 diff --git a/components/permissions/permission_util.cc b/components/permissions/permission_util.cc -index d9d7e902dfaaf360dc80bd292b56eeba9cfc5f12..4507fec489ecb0d6e02dbf613c6a87817f7b7f65 100644 +index 3b25ba24e81c7b5b27e65f30ea7a2c174c397efa..f0503f0502a5b4bf2fe3b22ccde42acece395e6a 100644 --- a/components/permissions/permission_util.cc +++ b/components/permissions/permission_util.cc @@ -552,9 +552,17 @@ ContentSettingsType PermissionUtil::PermissionTypeToContentSettingsTypeSafe( diff --git a/patches/chromium/refactor_unfilter_unresponsive_events.patch b/patches/chromium/refactor_unfilter_unresponsive_events.patch index 3c76a3f4d6..59bbc78b8c 100644 --- a/patches/chromium/refactor_unfilter_unresponsive_events.patch +++ b/patches/chromium/refactor_unfilter_unresponsive_events.patch @@ -15,10 +15,10 @@ This CL removes these filters so the unresponsive event can still be accessed from our JS event. The filtering is moved into Electron's code. diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index 4c951d0326500e68a2644b7917ce6b87ee54c39e..a0039d06b681a8d229604f8d8ef026b3ddb1e70e 100644 +index 4248fe3b201b9b62ab7c3bfc07658f116e974867..c6f195bc51925686d573c74bd6d8edaa1edd96b7 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -10364,25 +10364,13 @@ void WebContentsImpl::RendererUnresponsive( +@@ -10370,25 +10370,13 @@ void WebContentsImpl::RendererUnresponsive( base::RepeatingClosure hang_monitor_restarter) { OPTIONAL_TRACE_EVENT1("content", "WebContentsImpl::RendererUnresponsive", "render_widget_host", render_widget_host); diff --git a/patches/chromium/resource_file_conflict.patch b/patches/chromium/resource_file_conflict.patch index 510a10fa90..99a27b5bf3 100644 --- a/patches/chromium/resource_file_conflict.patch +++ b/patches/chromium/resource_file_conflict.patch @@ -52,10 +52,10 @@ Some alternatives to this patch: None of these options seems like a substantial maintainability win over this patch to me (@nornagon). diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn -index d6686618cb86ba313f456adebf586c9e4a7ff89f..4a742db71f62f9ac891ceeb0604ca0b99d1d89c1 100644 +index 4a54a9062f94b6fdae1435ae46fd3b88fc164fa4..8aad429c56915e0e842d95e246ad4ae41b0d1588 100644 --- a/chrome/BUILD.gn +++ b/chrome/BUILD.gn -@@ -1538,7 +1538,7 @@ if (is_chrome_branded && !is_android) { +@@ -1539,7 +1539,7 @@ if (is_chrome_branded && !is_android) { } } @@ -64,7 +64,7 @@ index d6686618cb86ba313f456adebf586c9e4a7ff89f..4a742db71f62f9ac891ceeb0604ca0b9 chrome_paks("packed_resources") { if (is_mac) { output_dir = "$root_gen_dir/repack" -@@ -1584,6 +1584,12 @@ repack("browser_tests_pak") { +@@ -1585,6 +1585,12 @@ repack("browser_tests_pak") { deps = [ "//chrome/test/data/webui:resources" ] } diff --git a/patches/chromium/revert_code_health_clean_up_stale_macwebcontentsocclusion.patch b/patches/chromium/revert_code_health_clean_up_stale_macwebcontentsocclusion.patch index 9010974487..6492376ddd 100644 --- a/patches/chromium/revert_code_health_clean_up_stale_macwebcontentsocclusion.patch +++ b/patches/chromium/revert_code_health_clean_up_stale_macwebcontentsocclusion.patch @@ -18,7 +18,7 @@ This partially (leaves the removal of the feature flag) reverts ef865130abd5539e7bce12308659b19980368f12. diff --git a/content/app_shim_remote_cocoa/web_contents_occlusion_checker_mac.h b/content/app_shim_remote_cocoa/web_contents_occlusion_checker_mac.h -index 13e928e3790735fdad68fbca0a8a8e9d0836fdee..2719f8853e840d6f890d01220345644db163fd07 100644 +index 04c7635cc093d9d676869383670a8f2199f14ac6..52d76e804e47ab0b56016d26262d6d67cbc00875 100644 --- a/content/app_shim_remote_cocoa/web_contents_occlusion_checker_mac.h +++ b/content/app_shim_remote_cocoa/web_contents_occlusion_checker_mac.h @@ -11,6 +11,8 @@ @@ -62,7 +62,7 @@ index a5570988c3721d9f6bd05c402a7658d3af6f2c2c..0a2dba6aa2d48bc39d2a55c8b4d66067 // Alternative implementation of orderWindow:relativeTo:. Replaces diff --git a/content/app_shim_remote_cocoa/web_contents_view_cocoa.mm b/content/app_shim_remote_cocoa/web_contents_view_cocoa.mm -index 8fa50db5b7aee7f8138d2b9be41d15e567059c36..c5bb7897b00ee5a6be6789096f9a55f7df64c385 100644 +index 1ef2c9052262eccdbc40030746a858b7f30ac469..c7101b0d71826b05f61bfe0e74429d922769e792 100644 --- a/content/app_shim_remote_cocoa/web_contents_view_cocoa.mm +++ b/content/app_shim_remote_cocoa/web_contents_view_cocoa.mm @@ -15,6 +15,7 @@ @@ -81,7 +81,7 @@ index 8fa50db5b7aee7f8138d2b9be41d15e567059c36..c5bb7897b00ee5a6be6789096f9a55f7 using remote_cocoa::mojom::DraggingInfo; using remote_cocoa::mojom::SelectionDirection; -@@ -122,17 +124,20 @@ @implementation WebContentsViewCocoa { +@@ -122,12 +124,15 @@ @implementation WebContentsViewCocoa { WebDragSource* __strong _dragSource; NSDragOperation _dragOperation; @@ -90,25 +90,16 @@ index 8fa50db5b7aee7f8138d2b9be41d15e567059c36..c5bb7897b00ee5a6be6789096f9a55f7 } + (void)initialize { -- if (![WebContentsOcclusionCheckerMac -- manualOcclusionDetectionSupportedForCurrentMacOSVersion]) { -- return; -- } -+ if (base::FeatureList::IsEnabled(kMacWebContentsOcclusion)) { -+ if (![WebContentsOcclusionCheckerMac -+ manualOcclusionDetectionSupportedForCurrentMacOSVersion]) { -+ return; -+ } - - // Create the WebContentsOcclusionCheckerMac shared instance. - [WebContentsOcclusionCheckerMac sharedInstance]; ++ if (base::FeatureList::IsEnabled(kMacWebContentsOcclusion)) { + // Create the WebContentsOcclusionCheckerMac shared instance. + [WebContentsOcclusionCheckerMac sharedInstance]; + } } - (instancetype)initWithViewsHostableView:(ui::ViewsHostableView*)v { -@@ -443,6 +448,7 @@ - (void)updateWebContentsVisibility: +@@ -438,6 +443,7 @@ - (void)updateWebContentsVisibility: (remote_cocoa::mojom::Visibility)visibility { using remote_cocoa::mojom::Visibility; @@ -116,7 +107,7 @@ index 8fa50db5b7aee7f8138d2b9be41d15e567059c36..c5bb7897b00ee5a6be6789096f9a55f7 if (!_host) return; -@@ -488,6 +494,20 @@ - (void)updateWebContentsVisibility { +@@ -483,6 +489,20 @@ - (void)updateWebContentsVisibility { [self updateWebContentsVisibility:visibility]; } @@ -137,7 +128,7 @@ index 8fa50db5b7aee7f8138d2b9be41d15e567059c36..c5bb7897b00ee5a6be6789096f9a55f7 - (void)resizeSubviewsWithOldSize:(NSSize)oldBoundsSize { // Subviews do not participate in auto layout unless the the size this view // changes. This allows RenderWidgetHostViewMac::SetBounds(..) to select a -@@ -510,11 +530,39 @@ - (void)viewWillMoveToWindow:(NSWindow*)newWindow { +@@ -505,11 +525,39 @@ - (void)viewWillMoveToWindow:(NSWindow*)newWindow { NSWindow* oldWindow = [self window]; @@ -181,7 +172,7 @@ index 8fa50db5b7aee7f8138d2b9be41d15e567059c36..c5bb7897b00ee5a6be6789096f9a55f7 } if (newWindow) { -@@ -522,26 +570,66 @@ - (void)viewWillMoveToWindow:(NSWindow*)newWindow { +@@ -517,26 +565,66 @@ - (void)viewWillMoveToWindow:(NSWindow*)newWindow { selector:@selector(windowChangedOcclusionState:) name:NSWindowDidChangeOcclusionStateNotification object:newWindow]; @@ -254,7 +245,7 @@ index 8fa50db5b7aee7f8138d2b9be41d15e567059c36..c5bb7897b00ee5a6be6789096f9a55f7 } diff --git a/content/common/features.cc b/content/common/features.cc -index ea4c05a2ac7e05f55cfdfaccef0158c81fb360c4..d2d6fe1a33177b90574cae4f84d832e11274e4ad 100644 +index d68ce97371263a4ea2cb3a6445ce41d565a03748..228bf41ed76d872c5bcbf81e8916b99e85939690 100644 --- a/content/common/features.cc +++ b/content/common/features.cc @@ -364,6 +364,14 @@ BASE_FEATURE(kInterestGroupUpdateIfOlderThan, base::FEATURE_ENABLED_BY_DEFAULT); @@ -273,7 +264,7 @@ index ea4c05a2ac7e05f55cfdfaccef0158c81fb360c4..d2d6fe1a33177b90574cae4f84d832e1 BASE_FEATURE(kKeepChildProcessAfterIPCReset, base::FEATURE_DISABLED_BY_DEFAULT); diff --git a/content/common/features.h b/content/common/features.h -index a482f12b9e95a84bf3d9981e06dab623eb5b4941..45a248901f3a45097857d5d620379c5c2739687c 100644 +index 24443780a7196b40096f44826232f77eaab68ffa..9164f2cf39542525ef2c30f572c7d0b557473f5d 100644 --- a/content/common/features.h +++ b/content/common/features.h @@ -140,6 +140,9 @@ CONTENT_EXPORT BASE_DECLARE_FEATURE(kInterestGroupUpdateIfOlderThan); diff --git a/patches/chromium/revert_partial_remove_unused_prehandlemouseevent.patch b/patches/chromium/revert_partial_remove_unused_prehandlemouseevent.patch index 600ee53a23..3ef1871906 100644 --- a/patches/chromium/revert_partial_remove_unused_prehandlemouseevent.patch +++ b/patches/chromium/revert_partial_remove_unused_prehandlemouseevent.patch @@ -39,10 +39,10 @@ index 2cff43e9fc4374ae48d87dd048a295a00e5575e4..9cb5baccaa083a8030d4d0d57dc00040 // event before sending it to the renderer. See enum for details on return // value. diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc -index e5fcc7acc4823f3b9396c431815d9d97a986f86b..95b4370872f1529c14110f314609c314bc317198 100644 +index 9b598ba34285bfe04c7c45557dd51af73bece3fe..c435d4441c99f87cc6a38fa73f73da6b34d9880a 100644 --- a/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc -@@ -1598,6 +1598,10 @@ void RenderWidgetHostImpl::ForwardMouseEventWithLatencyInfo( +@@ -1599,6 +1599,10 @@ void RenderWidgetHostImpl::ForwardMouseEventWithLatencyInfo( CHECK_GE(mouse_event.GetType(), WebInputEvent::Type::kMouseTypeFirst); CHECK_LE(mouse_event.GetType(), WebInputEvent::Type::kMouseTypeLast); @@ -54,10 +54,10 @@ index e5fcc7acc4823f3b9396c431815d9d97a986f86b..95b4370872f1529c14110f314609c314 if (mouse_event_callback.Run(mouse_event)) { return; diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index a0039d06b681a8d229604f8d8ef026b3ddb1e70e..8d9f9b03c07474fafb0085e5bd666c6c98f127d2 100644 +index c6f195bc51925686d573c74bd6d8edaa1edd96b7..fd42152a7b0125b4140bc3e15e74e295a0aa0613 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -4461,6 +4461,12 @@ void WebContentsImpl::RenderWidgetWasResized( +@@ -4463,6 +4463,12 @@ void WebContentsImpl::RenderWidgetWasResized( width_changed); } @@ -71,7 +71,7 @@ index a0039d06b681a8d229604f8d8ef026b3ddb1e70e..8d9f9b03c07474fafb0085e5bd666c6c const gfx::PointF& client_pt) { if (delegate_) { diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h -index 2ab758b93a06133c057da2a31709ef2e0b5f90b2..ec8e60e2fbfa41791d4b3d8f484a4dce3252fa8a 100644 +index ee0012bc2811a7f8469300a2118c494c1ff00c0e..c755229cd1c52d1431e6b17459db562da8653cc2 100644 --- a/content/browser/web_contents/web_contents_impl.h +++ b/content/browser/web_contents/web_contents_impl.h @@ -1122,6 +1122,7 @@ class CONTENT_EXPORT WebContentsImpl @@ -100,7 +100,7 @@ index fde24980f7eefd2696a9094bdb97787909955ae9..fccd564720c8d9ba33dd99600f88fd70 WebContents* source, const input::NativeWebKeyboardEvent& event) { diff --git a/content/public/browser/web_contents_delegate.h b/content/public/browser/web_contents_delegate.h -index 58f34bc33426136d2040f241f2cb5928dc19fb2d..951ef162e4783979857d1d1d2eb15695618a2021 100644 +index 832394b10f3ff5879c002b49d9eeb3479c9f002a..40911069b5364e5a60786c1a4947880ccab15b46 100644 --- a/content/public/browser/web_contents_delegate.h +++ b/content/public/browser/web_contents_delegate.h @@ -326,6 +326,13 @@ class CONTENT_EXPORT WebContentsDelegate { diff --git a/patches/chromium/revert_remove_the_allowaggressivethrottlingwithwebsocket_feature.patch b/patches/chromium/revert_remove_the_allowaggressivethrottlingwithwebsocket_feature.patch index d071c1124a..5f78479b6c 100644 --- a/patches/chromium/revert_remove_the_allowaggressivethrottlingwithwebsocket_feature.patch +++ b/patches/chromium/revert_remove_the_allowaggressivethrottlingwithwebsocket_feature.patch @@ -6,7 +6,7 @@ Subject: Revert "Remove the AllowAggressiveThrottlingWithWebSocket feature." This reverts commit 615c1810a187840ffeb04096087efff86edb37de. diff --git a/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc b/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc -index e5d3d9da688cf82cfe0561bd72f72b623ffdb907..b8e145928eb573d20df4bbaee37e9a930e6e9ec1 100644 +index 2aabcba134b58d36d6570a06b221f3e5991d5377..0b9b721da002c6d931cd2e32aa62737d7c964716 100644 --- a/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc +++ b/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc @@ -102,6 +102,17 @@ enum WebSocketOpCode { diff --git a/patches/chromium/revert_views_remove_desktopwindowtreehostwin_window_enlargement.patch b/patches/chromium/revert_views_remove_desktopwindowtreehostwin_window_enlargement.patch index 56336f3f4e..4aba960620 100644 --- a/patches/chromium/revert_views_remove_desktopwindowtreehostwin_window_enlargement.patch +++ b/patches/chromium/revert_views_remove_desktopwindowtreehostwin_window_enlargement.patch @@ -10,10 +10,10 @@ on Windows. We should refactor our code so that this patch isn't necessary. diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json -index ee61a8860e6acc7dec1daa6f49ce32e5ac97c64d..94b5774c1e22208d5dc5627da945454d7926fd7e 100644 +index 6a4b21bef4d184bff421e0f352993525c684690a..bd20bb85ad1612cfd95cced5ca68d540ddf13325 100644 --- a/testing/variations/fieldtrial_testing_config.json +++ b/testing/variations/fieldtrial_testing_config.json -@@ -26563,6 +26563,21 @@ +@@ -26776,6 +26776,21 @@ ] } ], diff --git a/patches/chromium/scroll_bounce_flag.patch b/patches/chromium/scroll_bounce_flag.patch index d72f9c3bd7..8385a37561 100644 --- a/patches/chromium/scroll_bounce_flag.patch +++ b/patches/chromium/scroll_bounce_flag.patch @@ -6,10 +6,10 @@ Subject: scroll_bounce_flag.patch Patch to make scrollBounce option work. diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc -index 45a65d4edc77c0211a8725fd2e2da49222d52071..028ff20cf097324dbfd174470dd23eeed5f20eaf 100644 +index 231e13b24a57984886b7220f2de4cf866c65a3a6..2df5003b8b18d19ecc01057de4f0a992d5d8836c 100644 --- a/content/renderer/render_thread_impl.cc +++ b/content/renderer/render_thread_impl.cc -@@ -1128,11 +1128,11 @@ bool RenderThreadImpl::IsLcdTextEnabled() { +@@ -1129,11 +1129,11 @@ bool RenderThreadImpl::IsLcdTextEnabled() { } bool RenderThreadImpl::IsElasticOverscrollEnabledOnRoot() { diff --git a/patches/chromium/support_mixed_sandbox_with_zygote.patch b/patches/chromium/support_mixed_sandbox_with_zygote.patch index ef5e95b427..f61769748a 100644 --- a/patches/chromium/support_mixed_sandbox_with_zygote.patch +++ b/patches/chromium/support_mixed_sandbox_with_zygote.patch @@ -22,10 +22,10 @@ However, the patch would need to be reviewed by the security team, as it does touch a security-sensitive class. diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc -index 377c9375ba8e98bb7b8db39259d15a3ae504af7b..d1aed513b3147259a41200c4159f75778d12c13a 100644 +index b54c240121e41ce1f6110fb314d341649b54dffc..9030f1ae9d970dcf36ea3da4808f6ce455d616bf 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -1935,6 +1935,10 @@ bool RenderProcessHostImpl::Init() { +@@ -1939,6 +1939,10 @@ bool RenderProcessHostImpl::Init() { std::unique_ptr sandbox_delegate = std::make_unique( *cmd_line, IsPdf(), IsJitDisabled()); diff --git a/patches/chromium/web_contents.patch b/patches/chromium/web_contents.patch index 4ff08c6aaf..cfce114b6b 100644 --- a/patches/chromium/web_contents.patch +++ b/patches/chromium/web_contents.patch @@ -9,10 +9,10 @@ is needed for OSR. Originally landed in https://github.com/electron/libchromiumcontent/pull/226. diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index e9bbc2b44544ba718ab7eabc5627ff03a1c211b4..005cb6776c620af858a1188f89743ef1ba595c3c 100644 +index 796dbccf85c2ffaa5e0ec921596beec59e9b7444..ed421a1b008b686b2714205a046b061124897148 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -4179,6 +4179,13 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params, +@@ -4180,6 +4180,13 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params, params.main_frame_name, GetOpener(), primary_main_frame_policy, base::UnguessableToken::Create()); @@ -26,7 +26,7 @@ index e9bbc2b44544ba718ab7eabc5627ff03a1c211b4..005cb6776c620af858a1188f89743ef1 std::unique_ptr delegate = GetContentClient()->browser()->GetWebContentsViewDelegate(this); -@@ -4189,6 +4196,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params, +@@ -4190,6 +4197,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params, view_ = CreateWebContentsView(this, std::move(delegate), &render_view_host_delegate_view_); } @@ -35,7 +35,7 @@ index e9bbc2b44544ba718ab7eabc5627ff03a1c211b4..005cb6776c620af858a1188f89743ef1 CHECK(view_.get()); diff --git a/content/public/browser/web_contents.h b/content/public/browser/web_contents.h -index 8c313b2e33e7f40ac30a3c3160e734e8bddaf73a..bbcdd8dfc12a3cdefbf4957c86cbc5b19be74f33 100644 +index d3ff17bbff0e71ead2c3f98e90bbecd922ab6008..81bffaddac5dfd0e4fd81c5d30cffc661532c2f8 100644 --- a/content/public/browser/web_contents.h +++ b/content/public/browser/web_contents.h @@ -129,11 +129,14 @@ class PrerenderHandle; diff --git a/patches/chromium/webview_fullscreen.patch b/patches/chromium/webview_fullscreen.patch index 8cff7a4456..cef1b12a95 100644 --- a/patches/chromium/webview_fullscreen.patch +++ b/patches/chromium/webview_fullscreen.patch @@ -15,10 +15,10 @@ Note that we also need to manually update embedder's `api::WebContents::IsFullscreenForTabOrPending` value. diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc -index f7eaca99d21f707e9e139e65bf7c69c6359cece3..aeb8fb48210a6ce267464c3a780cd0a34ae1595d 100644 +index b0bb049e9b52827152b89826d185b8b8fbac39aa..290b9dbc4e731106ba185cd15910864423b1d3d6 100644 --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc -@@ -9110,6 +9110,17 @@ void RenderFrameHostImpl::EnterFullscreen( +@@ -9096,6 +9096,17 @@ void RenderFrameHostImpl::EnterFullscreen( } } @@ -37,10 +37,10 @@ index f7eaca99d21f707e9e139e65bf7c69c6359cece3..aeb8fb48210a6ce267464c3a780cd0a3 if (had_fullscreen_token && !GetView()->HasFocus()) { GetView()->Focus(); diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc -index 005cb6776c620af858a1188f89743ef1ba595c3c..2460932f2f8ed1a6d80b8fea0453ce550e428885 100644 +index ed421a1b008b686b2714205a046b061124897148..3b3bd369e235c9710fb80789dbb289350714c535 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -4478,21 +4478,25 @@ KeyboardEventProcessingResult WebContentsImpl::PreHandleKeyboardEvent( +@@ -4480,21 +4480,25 @@ KeyboardEventProcessingResult WebContentsImpl::PreHandleKeyboardEvent( const input::NativeWebKeyboardEvent& event) { OPTIONAL_TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("content.verbose"), "WebContentsImpl::PreHandleKeyboardEvent"); @@ -80,7 +80,7 @@ index 005cb6776c620af858a1188f89743ef1ba595c3c..2460932f2f8ed1a6d80b8fea0453ce55 } bool WebContentsImpl::HandleMouseEvent(const blink::WebMouseEvent& event) { -@@ -4668,7 +4672,7 @@ void WebContentsImpl::EnterFullscreenMode( +@@ -4670,7 +4674,7 @@ void WebContentsImpl::EnterFullscreenMode( OPTIONAL_TRACE_EVENT0("content", "WebContentsImpl::EnterFullscreenMode"); DCHECK(CanEnterFullscreenMode(requesting_frame)); DCHECK(requesting_frame->IsActive()); diff --git a/patches/chromium/worker_context_will_destroy.patch b/patches/chromium/worker_context_will_destroy.patch index 756ec05e06..8d76fac9a8 100644 --- a/patches/chromium/worker_context_will_destroy.patch +++ b/patches/chromium/worker_context_will_destroy.patch @@ -67,10 +67,10 @@ index a26e45d64229f692efb4a218c653afc212788d1f..4c797975567026268ea107f42e47f641 const WebSecurityOrigin& script_origin) { return false; diff --git a/third_party/blink/renderer/core/workers/worker_thread.cc b/third_party/blink/renderer/core/workers/worker_thread.cc -index 0660054931e295abafb420ce567f6b45d9af39d6..bea00fa0a9faaa0c0e7fa5b444c1e485d1e883d1 100644 +index ef25707a97c4d7619da664fe5908681c8f659ad8..fa81395d6df143b31e4ae28dc9104a9149c0d91a 100644 --- a/third_party/blink/renderer/core/workers/worker_thread.cc +++ b/third_party/blink/renderer/core/workers/worker_thread.cc -@@ -824,6 +824,12 @@ void WorkerThread::PrepareForShutdownOnWorkerThread() { +@@ -803,6 +803,12 @@ void WorkerThread::PrepareForShutdownOnWorkerThread() { } pause_handle_.reset(); diff --git a/patches/devtools_frontend/chore_expose_ui_to_allow_electron_to_set_dock_side.patch b/patches/devtools_frontend/chore_expose_ui_to_allow_electron_to_set_dock_side.patch index a6e8edba0b..21333b745f 100644 --- a/patches/devtools_frontend/chore_expose_ui_to_allow_electron_to_set_dock_side.patch +++ b/patches/devtools_frontend/chore_expose_ui_to_allow_electron_to_set_dock_side.patch @@ -10,10 +10,10 @@ to handle this without patching, but this is fairly clean for now and no longer patching legacy devtools code. diff --git a/front_end/entrypoints/main/MainImpl.ts b/front_end/entrypoints/main/MainImpl.ts -index 24bebe7a64772cfaa513dfbe9c8453b0f878a856..939451f98b06e0dca0dc9c0678939ac3fa69db64 100644 +index 9e23f71aa924d38b225748ddf03c21fa7e051030..f232cbc7c7c1e30dc0414333fb895cf1a22b3252 100644 --- a/front_end/entrypoints/main/MainImpl.ts +++ b/front_end/entrypoints/main/MainImpl.ts -@@ -813,6 +813,8 @@ export class MainImpl { +@@ -814,6 +814,8 @@ export class MainImpl { globalThis.Main = globalThis.Main || {}; // @ts-expect-error Exported for Tests.js globalThis.Main.Main = MainImpl; diff --git a/patches/perfetto/define_ssize_t_to_be_intptr_t_to_match_libuv.patch b/patches/perfetto/define_ssize_t_to_be_intptr_t_to_match_libuv.patch index db8575858f..94f667ce50 100644 --- a/patches/perfetto/define_ssize_t_to_be_intptr_t_to_match_libuv.patch +++ b/patches/perfetto/define_ssize_t_to_be_intptr_t_to_match_libuv.patch @@ -8,10 +8,10 @@ This definition conflicts with libuv's: https://github.com/libuv/libuv/blob/bb0b Breaks the build on 32-bit windows. diff --git a/include/perfetto/ext/base/sys_types.h b/include/perfetto/ext/base/sys_types.h -index 0e93a6903645b1f61e7518eb2ee7bf5a1b8f9f5e..e848bd31a66678ca557759cd79cafc52691b8adc 100644 +index 407819b4636ea1efcd169d0d3606d63e8cfe854c..9bc86d3549d530fd672be14239a1121c252c9280 100644 --- a/include/perfetto/ext/base/sys_types.h +++ b/include/perfetto/ext/base/sys_types.h -@@ -33,11 +33,7 @@ using uid_t = int; +@@ -34,11 +34,7 @@ using gid_t = int; using pid_t = int; #endif // !GCC diff --git a/patches/sqlite/fix_rename_sqlite_win32_exports_to_avoid_conflicts_with_node_js.patch b/patches/sqlite/fix_rename_sqlite_win32_exports_to_avoid_conflicts_with_node_js.patch index d539776faa..1e96056deb 100644 --- a/patches/sqlite/fix_rename_sqlite_win32_exports_to_avoid_conflicts_with_node_js.patch +++ b/patches/sqlite/fix_rename_sqlite_win32_exports_to_avoid_conflicts_with_node_js.patch @@ -10,13 +10,13 @@ the exported symbols in SQLite to avoid conflicts with Node.js. This should be upstreamed to SQLite. diff --git a/amalgamation/rename_exports.h b/amalgamation/rename_exports.h -index f61b7c38dcfa3a69ccc392c3e808fc8c2622773f..f4d5bb88a176ccb28c37420d30ac88c690486f96 100644 +index 53af6dbdc5296158a627a6ea639d8c77737909a4..1fa3f750c123b17ff7630ada4adae25ead1d17c0 100644 --- a/amalgamation/rename_exports.h +++ b/amalgamation/rename_exports.h -@@ -367,6 +367,15 @@ - #define sqlite3session_patchset chrome_sqlite3session_patchset // Lines 11682-11686 - #define sqlite3session_patchset_strm chrome_sqlite3session_patchset_strm // Lines 12948-12952 - #define sqlite3session_table_filter chrome_sqlite3session_table_filter // Lines 11450-11457 +@@ -372,6 +372,15 @@ + #define sqlite3session_patchset chrome_sqlite3session_patchset // Lines 11829-11833 + #define sqlite3session_patchset_strm chrome_sqlite3session_patchset_strm // Lines 13141-13145 + #define sqlite3session_table_filter chrome_sqlite3session_table_filter // Lines 11597-11604 +#define sqlite3_win32_write_debug chrome_sqlite3_win32_write_debug +#define sqlite3_win32_sleep chrome_sqlite3_win32_sleep +#define sqlite3_win32_is_nt chrome_sqlite3_win32_is_nt diff --git a/shell/browser/api/electron_api_desktop_capturer.cc b/shell/browser/api/electron_api_desktop_capturer.cc index 6d0d4dcab9..509ff092d7 100644 --- a/shell/browser/api/electron_api_desktop_capturer.cc +++ b/shell/browser/api/electron_api_desktop_capturer.cc @@ -33,7 +33,7 @@ #include "third_party/webrtc/modules/desktop_capture/win/dxgi_duplicator_controller.h" #include "third_party/webrtc/modules/desktop_capture/win/screen_capturer_win_directx.h" #include "ui/display/win/display_info.h" -#elif BUILDFLAG(IS_OZONE_X11) +#elif BUILDFLAG(SUPPORTS_OZONE_X11) #include "base/logging.h" #include "ui/base/x/x11_display_util.h" #include "ui/base/x/x11_util.h" @@ -461,7 +461,7 @@ void DesktopCapturer::UpdateSourcesList(DesktopMediaList* list) { for (auto& source : screen_sources) { source.display_id = base::NumberToString(source.media_list_source.id.id); } -#elif BUILDFLAG(IS_OZONE_X11) +#elif BUILDFLAG(SUPPORTS_OZONE_X11) // On Linux, with X11, the source id is the numeric value of the // display name atom and the display id is either the EDID or the // loop index when that display was found (see diff --git a/shell/browser/native_window_views.cc b/shell/browser/native_window_views.cc index 68b2483657..701cdc9435 100644 --- a/shell/browser/native_window_views.cc +++ b/shell/browser/native_window_views.cc @@ -5,7 +5,7 @@ // FIXME(ckerr) this incorrect #include order is a temporary // fix to unblock the roll. Will fix in an upgrade followup. #include "ui/base/ozone_buildflags.h" -#if BUILDFLAG(IS_OZONE_X11) +#if BUILDFLAG(SUPPORTS_OZONE_X11) #include "ui/base/x/x11_util.h" #endif @@ -65,7 +65,7 @@ #include "ui/views/widget/desktop_aura/desktop_native_widget_aura.h" #include "ui/views/window/native_frame_view.h" -#if BUILDFLAG(IS_OZONE_X11) +#if BUILDFLAG(SUPPORTS_OZONE_X11) #include "shell/browser/ui/views/global_menu_bar_x11.h" #include "shell/browser/ui/x/event_disabler.h" #include "shell/browser/ui/x/x_window_utils.h" diff --git a/shell/browser/native_window_views.h b/shell/browser/native_window_views.h index e3847e19fa..2ff5436e32 100644 --- a/shell/browser/native_window_views.h +++ b/shell/browser/native_window_views.h @@ -36,7 +36,7 @@ class ClientFrameViewLinux; class GlobalMenuBarX11; #endif -#if BUILDFLAG(IS_OZONE_X11) +#if BUILDFLAG(SUPPORTS_OZONE_X11) class EventDisabler; #endif @@ -273,7 +273,7 @@ class NativeWindowViews : public NativeWindow, std::unique_ptr global_menu_bar_; #endif -#if BUILDFLAG(IS_OZONE_X11) +#if BUILDFLAG(SUPPORTS_OZONE_X11) // To disable the mouse events. std::unique_ptr event_disabler_; #endif diff --git a/shell/browser/net/url_loader_network_observer.h b/shell/browser/net/url_loader_network_observer.h index 04ffcb3518..e7b41948ec 100644 --- a/shell/browser/net/url_loader_network_observer.h +++ b/shell/browser/net/url_loader_network_observer.h @@ -58,7 +58,7 @@ class URLLoaderNetworkObserver void OnDataUseUpdate(int32_t network_traffic_annotation_id_hash, base::ByteSize recv_bytes, base::ByteSize sent_bytes) override {} - void OnWebSocketConnectedToPrivateNetwork( + void OnWebSocketConnectedToLocalNetwork( const GURL& request_url, network::mojom::IPAddressSpace ip_address_space) override {} void OnCertificateRequested( @@ -70,7 +70,7 @@ class URLLoaderNetworkObserver network::mojom::TransportType transport_type, network::mojom::IPAddressSpace ip_address_space, OnLocalNetworkAccessPermissionRequiredCallback callback) override {} - void OnUrlLoaderConnectedToPrivateNetwork( + void OnUrlLoaderConnectedToLocalNetwork( const GURL& request_url, network::mojom::IPAddressSpace response_address_space, network::mojom::IPAddressSpace client_address_space, diff --git a/shell/browser/ui/inspectable_web_contents.h b/shell/browser/ui/inspectable_web_contents.h index 841fb8d77f..eb707002e3 100644 --- a/shell/browser/ui/inspectable_web_contents.h +++ b/shell/browser/ui/inspectable_web_contents.h @@ -199,6 +199,7 @@ class InspectableWebContents void DispatchHttpRequest( DispatchCallback callback, const DevToolsDispatchHttpRequestParams& params) override {} + void RequestRestart() override {} // content::DevToolsFrontendHostDelegate: void HandleMessageFromDevToolsFrontend(base::DictValue message); diff --git a/shell/common/api/electron_api_clipboard.cc b/shell/common/api/electron_api_clipboard.cc index 2f810d4250..649450a444 100644 --- a/shell/common/api/electron_api_clipboard.cc +++ b/shell/common/api/electron_api_clipboard.cc @@ -75,14 +75,32 @@ std::string Clipboard::Read(const std::string& format_string) { } // Otherwise, resolve custom format names std::map custom_format_names; - custom_format_names = - clipboard->ExtractCustomPlatformNames(ui::ClipboardBuffer::kCopyPaste, - /* data_dst = */ nullptr); + { + base::RunLoop run_loop(base::RunLoop::Type::kNestableTasksAllowed); + clipboard->ExtractCustomPlatformNames( + ui::ClipboardBuffer::kCopyPaste, /* data_dst = */ std::nullopt, + base::BindOnce( + [](std::map* out, base::OnceClosure quit, + std::map result) { + *out = std::move(result); + std::move(quit).Run(); + }, + &custom_format_names, run_loop.QuitClosure())); + run_loop.Run(); + } #if BUILDFLAG(IS_LINUX) if (!custom_format_names.contains(format_string)) { - custom_format_names = - clipboard->ExtractCustomPlatformNames(ui::ClipboardBuffer::kSelection, - /* data_dst = */ nullptr); + base::RunLoop run_loop(base::RunLoop::Type::kNestableTasksAllowed); + clipboard->ExtractCustomPlatformNames( + ui::ClipboardBuffer::kSelection, /* data_dst = */ std::nullopt, + base::BindOnce( + [](std::map* out, base::OnceClosure quit, + std::map result) { + *out = std::move(result); + std::move(quit).Run(); + }, + &custom_format_names, run_loop.QuitClosure())); + run_loop.Run(); } #endif @@ -243,7 +261,7 @@ gfx::Image Clipboard::ReadImage(gin::Arguments* const args) { base::RepeatingClosure callback = run_loop.QuitClosure(); clipboard->ReadPng( GetClipboardBuffer(args), - /* data_dst = */ nullptr, + /* data_dst = */ std::nullopt, base::BindOnce( [](std::optional* image, base::RepeatingClosure cb, const std::vector& result) { diff --git a/shell/common/api/electron_api_url_loader.h b/shell/common/api/electron_api_url_loader.h index 77f395b39f..da484095e6 100644 --- a/shell/common/api/electron_api_url_loader.h +++ b/shell/common/api/electron_api_url_loader.h @@ -127,13 +127,13 @@ class SimpleURLLoaderWrapper final void OnDataUseUpdate(int32_t network_traffic_annotation_id_hash, base::ByteSize recv_bytes, base::ByteSize sent_bytes) override {} - void OnWebSocketConnectedToPrivateNetwork( + void OnWebSocketConnectedToLocalNetwork( const GURL& request_url, network::mojom::IPAddressSpace ip_address_space) override {} void Clone( mojo::PendingReceiver observer) override; - void OnUrlLoaderConnectedToPrivateNetwork( + void OnUrlLoaderConnectedToLocalNetwork( const GURL& request_url, network::mojom::IPAddressSpace response_address_space, network::mojom::IPAddressSpace client_address_space,