Each hunk that adds lines affects all subsequent hunks' new line numbers:
- UNMASKED_RENDERER: +4 lines (2574→2574)
- UNMASKED_VENDOR: +4 lines (2585→2589, was 2535 incorrectly)
- COLOR_WRITEMASK: +2 lines (2676→2684, was 2676 incorrectly)
- GetShaderPrecisionFormat: +18 lines (3092→3102, was 3092 incorrectly)
- IsSupported: +11 lines (6234→6262, was 6234 incorrectly)
- GetSupportedExtensions: +12 lines (6245→6284, was 6245 incorrectly)
Total offset: +51 lines by end of file
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
font-fingerprinting.context.patch:
- Update include hunk from 323→325
- Remove nsIDOMXULControlElement.h from context (moved to line 247)
- Add includes after xpcpublic.h, before #ifdef blocks
webrtc-ip.context.patch:
- Update include hunk from 325→328
- Update context to match font-fingerprinting patch
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Update line numbers from 11→26 due to Firefox 146 adding more includes
- MaskConfig.hpp now added after nsString.h include at line 26
- Fixes nsSynthVoiceRegistry.cpp.rej reject file
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- nsDocShell.cpp: line 16→18, update context from ArrayUtils to Attributes/AutoRestore/BasePrincipal
- CanvasRenderingContext2D.cpp: line 20→59 for OriginAttributes include
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- DateTime.cpp: line 776→833 for internalResyncICUDefaultTimeZone
- GeckoBindings.h: fix hunk header -591,6 +591,7 → -591,6 +592,7
- FontFaceImpl.h: line 8→14 for MaskConfig include after FontFaceBinding.h
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- browser/app/moz.build: add WINCONSOLE block context, line 188→183
- dom/media/moz.build: add SPHINX_TREES context, line 419→418 (in audio-context-spoofing)
Firefox 146 added new code after the sections where patches insert LOCAL_INCLUDES
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- voice-spoofing: nsSynthVoiceRegistry line 27→11
- webgl-spoofing: UNMASKED_RENDERER hunk line 2573→2574
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Line 158→333
- Change _getConfiguration to #getConfiguration (Firefox 146 uses # for private methods)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Element.cpp: rewrite first hunk for new structure (no ElementInlines.h), update second hunk 984→1007
- nsScreen.cpp: rewrite first hunk for new include order, update hunks 37→40, 89→80
Firefox 146 changed include ordering - quoted includes first, then blank, then system/mozilla includes
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Line 1705→1903 for juggler-navigation notification
Note: First hunk (SetPrefersReducedMotionOverride/SetForcedColorsOverride) already applied in Firefox 146, causing Oops.rej
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Update line number 9→7 for includes section
- Adjust to Firefox 146's include ordering (quoted includes first, then blank, then system includes, then blank, then other includes)
- Place MaskConfig.hpp after system includes, before Constants.h
- Update WrapObject hunk line 51→49
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Playwright patch (BrowsingContext):
- Update CanonicalBrowsingContext.cpp line 274→274 with SetParentalControlsEnabled context
- Update BrowsingContext.h CurrentOrientationType line 205→209, add HasOrientationOverride field
- Update BrowsingContext.h DisplayMode section line 246→253
- Update BrowsingContext.h DidSet section line 1164→1278, change LanguageOverride nsString→nsCString, add TimezoneOverride
Network patch:
- Update SetAcceptEncodings line 1850→2113
- Add isDictionary parameter to function signature
- Update if condition to handle isDictionary case
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Update line numbers: SetAcceptEncodings 1850→2113
- Add isDictionary parameter to function signature
- Update if condition to handle isDictionary case
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Update constructor signature from nsPresContext to FontVisibilityProvider
- Remove mLastPrefFirstFont and mSkipDrawing from initializer (not in FF146)
- Update line numbers: 1861→1873, 1876→1875
- Replace mPresContext with mFontVisibilityProvider for user context extraction
- geolocation-spoofing: Update line 58→81, fix hunk header to include elif context
- audio-context-spoofing: Update line 417→419
- font-hijacker: Update line 351→379, replace CONFIGURE_SUBST_FILES with CbindgenHeader context
- Update COLOR_WRITEMASK hunk from line 2490 to 2683
- Update UNMASKED_RENDERER hunk from line 2393 to 2573 with Firefox 146 RFP context
- Update UNMASKED_VENDOR hunk from line 2400 to 2585 with Firefox 146 RFP context
- Rewrite GetShaderPrecisionFormat for Firefox 146 structure (line 3094, removed lambda)
- Update IsSupported hunk from line 5853 to 6233
- Update GetSupportedExtensions hunk from line 5864 to 6243
All 7 hunks now apply successfully
Add comprehensive task list documenting the Firefox upgrade from v135.0.1 to v147.0b3 (12 major versions). Includes status tracking for all 45 patches after syncing with upstream LibreWolf (Firefox 146) and Playwright repositories.
Key changes:
- 25 broken patches identified (56% failure rate)
- 20 patches applying cleanly (44% success rate)
- LibreWolf patches updated from upstream: 17 patches synced, 5 deleted, 2 auto-fixed
-
I'm deciding to keep Camoufox on FF135 for a bit until I can fully work out the new security changes in FF136 (that may require large-scale refactoring in Juggler).