Commit Graph
368 Commits
Author SHA1 Message Date
Nirupam Bhowmick e80f2b5a5e wip: update ClientWebGLContext line numbers (still failing due to context mismatch)
Updated all 4 ClientWebGLContext hunk line numbers to match Firefox 146:
- RENDERER: 2575 → 2573
- VENDOR: 2586 → 2584
- COLOR_WRITEMASK: 2677 → 2676
- getShaderPrecision: 3093 → 3091

Still 21 failing hunks remain due to context mismatches in Firefox 146's
nested switch structure and other code refactoring.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
EOF
2025-12-25 20:36:52 +00:00
Nirupam BhowmickandClaude dcae38b3cd fix: resolve Navigator.cpp Webdriver stealth patch
Fixed the Webdriver() function hunk in 1-leak-fixes.patch:
- Updated hunk context to match Firefox 146 structure
- Changed line number from 2318 to 2316 to match actual context

Progress:
- Reduced failing hunks from 22 → 21
- Reduced reject files from 13 → 12
- Navigator.cpp now completely resolved (all hunks apply)

Remaining: 21 hunks across 12 files, primarily due to Firefox 146
code structure changes (nested switches in WebGL, font system refactoring)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-25 20:32:36 +00:00
Nirupam BhowmickandClaude 513d0a0367 fix: resolve Navigator.cpp fingerprint injection hunks for Firefox 146
Fixed OnLine() and GetDoNotTrack() hunks to match Firefox 146 structure:
- Updated OnLine hunk to include new fingerprint resistance check
- Added proper context lines for Firefox 146 code structure
- Fixed GetDoNotTrack to match simplified Firefox 146 implementation

Progress:
- Reduced failing hunks from 24 → 22 (2 more fixed)
- 13 reject files remain
- Navigator.cpp fingerprint patches now apply successfully

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-25 20:23:40 +00:00
Nirupam BhowmickandClaude 55088770aa wip: update Navigator.cpp function line numbers for Firefox 146
Updated 13 Navigator.cpp hunks to match Firefox 146 function locations:
- Invalidate: 267 → 173
- GetUserAgent: 293 → 262
- GetAppCodeName: 314 → 291
- GetAppVersion: 325 → 313
- GetPlatform: 449 → 443
- GetVendor: 488 → 511
- CookieEnabled: 589 → 578
- GetBuildID: 659 → 642
- GlobalPrivacyControl: 684 → 710
- Vibrate: 882 → 868

Some hunks still fail due to code structure changes in Firefox 146
(new fingerprint resistance checks). Still 24 failing hunks to fix.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-25 20:16:58 +00:00
Nirupam BhowmickandClaude 0bd32a0652 fix: resolve all malformed patch errors and reduce failing hunks by 57%
Major fixes accomplished:
- Fixed ALL 10 malformed patch errors (blank context lines and hunk counts)
- Removed Git version trailers from 2 patches causing parse errors
- Fixed BrowsingContext.h by adding HasOrientationOverride field for Firefox 146
- Updated Navigator.cpp Webdriver function line number (2318 → 2363)
- Fixed Navigator.cpp include order to match Firefox 146 structure
- Applied comprehensive blank line and hunk count fixes to 18 patch files

Results:
- Reduced reject files from 33 → 13 (60% reduction)
- Reduced failing hunks from 56 → 24 (57% reduction)
- 0 malformed errors (was 10)
- Build completes successfully with 'make dir'

Remaining work:
- 24 failing hunks across 13 files (mostly line number adjustments)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-25 20:14:01 +00:00
Nirupam Bhowmick 2e81eadcef fix: auto-fix 3 more playwright hunks with smarter script (BrowsingContext, nsGUIEventIPC, RuntimeService) 2025-12-25 18:28:05 +00:00
Nirupam Bhowmick 75fb8d2f78 fix: auto-update 6 line numbers in 0-playwright.patch 2025-12-25 18:25:54 +00:00
Nirupam Bhowmick 6ce9c504cf fix: add missing blank line in 1-leak-fixes Navigator Webdriver patch 2025-12-25 16:29:15 +00:00
Nirupam BhowmickandClaude 21a12aaedf fix: remove incomplete function context from malformed patch hunks
Fixed 9 malformed patch errors by removing incomplete function context
from hunk headers. The patch command was failing because hunk headers
had partial function signatures that were cut off mid-expression.

Changes:
- playwright/0-playwright.patch: Remove incomplete GetBrowsingContext( context
- voice-spoofing.patch: Remove incomplete nsSynthVoiceRegistry::GetInstance() context
- webgl-spoofing.patch: Remove incomplete GetShaderPrecisionFormat context
- webrtc-ip-spoofing.patch: Remove incomplete SetLocalDescription context
- font-fingerprinting.context.patch: Remove incomplete CanvasBidiProcessor context
- webrtc-ip.context.patch: Remove incomplete SetFontSpacingSeed context
- fingerprint-injection.patch: Remove incomplete NS_IMPL_CYCLE_COLLECTION_INHERITED context
- geolocation-spoofing.patch: Fix malformed hunk by removing FINAL_LIBRARY line and adjusting hunk header
- font-hijacker.patch: Remove incomplete UTF8StringOrArrayBufferOrArrayBufferView context

All hunks now use simple @@ headers without function context to avoid
malformed patch errors during application.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-22 03:57:47 +00:00
Nirupam BhowmickandClaude ed306e305a fix: resolve malformed patch errors in patches/playwright/0-playwright.patch
Fixed 2 malformed patch errors by merging close hunks:

1. docshell/base/nsDocShell.cpp: Merged 6 include hunks (lines 18-368) into one large hunk to fix "malformed patch at line 377" error. The hunks were too close together (less than 3 lines of context between them), causing patch to fail.

2. widget/InProcessCompositorWidget.cpp: Merged 2 hunks (lines 5-31) into one to fix "malformed patch at line 3133" error. Added proper context lines between include additions and function body modifications.

Additional fixes in other patches (collateral):
- patches/fingerprint-injection.patch: Added blank line between hunks
- patches/font-hijacker.patch: Added context lines and blank line between hunks
- patches/geolocation-spoofing.patch: Added trailing context and blank line
- patches/no-search-engines.patch: Added blank line before diff header
- patches/playwright/1-leak-fixes.patch: Fixed malformed line removal
- patches/voice-spoofing.patch: Removed invalid "\ No newline at end of file" and added proper spacing

Result: 0 malformed errors in patches/playwright/0-playwright.patch

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-22 03:40:37 +00:00
Nirupam Bhowmick 3717ecfe07 fix: restore and correct Navigator Webdriver stealth patch in 1-leak-fixes 2025-12-22 03:19:13 +00:00
Nirupam Bhowmick 9b633abe76 fix: remove orphaned line from 1-leak-fixes patch 2025-12-22 03:03:24 +00:00
Nirupam Bhowmick 6792a49161 fix: remove already-applied hunks (ForceOffline DidSet, Navigator Webdriver) 2025-12-22 03:02:16 +00:00
Nirupam Bhowmick f81517cef3 fix: correct ForceOffline DidSet hunk line number (1485 not 1360) 2025-12-22 02:56:43 +00:00
Nirupam Bhowmick c2205868fe fix: correct ReplacedBy hunk header line counts after removing malformed lines 2025-12-22 02:55:34 +00:00
Nirupam Bhowmick 886a9dc325 fix: remove malformed context lines from CanonicalBrowsingContext ReplacedBy hunk 2025-12-22 02:54:34 +00:00
Nirupam Bhowmick 82ea66ee22 fix: correct 0-playwright Webdriver hunk line number (2336 not 2339) 2025-12-22 02:53:01 +00:00
Nirupam Bhowmick 0baece29fc fix: correct 0-playwright LoadURI hunk line number (1892 not 1898) 2025-12-22 02:52:49 +00:00
Nirupam Bhowmick 08ae4f3cc1 fix: correct 0-playwright Navigator::Webdriver hunk line numbers 2025-12-22 02:17:06 +00:00
Nirupam BhowmickandClaude 5c9a5528a8 fix: correct all webgl-spoofing hunk headers with proper line counts
All hunks now have correct old/new line numbers and counts:
- UNMASKED_RENDERER: 2573,8→2575,12
- UNMASKED_VENDOR: 2584,8→2590,12
- COLOR_WRITEMASK: 2675,9→2685,11
- GetShaderPrecision: 3091,8→3103,26
- IsSupported: 6233,8→6267,19
- GetSupportedExtensions: 6244,8→6290,20

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-22 02:01:48 +00:00
Nirupam BhowmickandClaude 15bbc20e05 fix: webgl UNMASKED_RENDERER output line 2575→2576
Incrementing by +1 again as previous hunks shift line numbers.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-22 01:58:58 +00:00
Nirupam BhowmickandClaude 43f6993303 fix: update webgl UNMASKED_RENDERER new line to 2575
The other 6 hunks already applied, adding lines that shift this
hunk's output line number from 2574 to 2575.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-22 01:58:05 +00:00
Nirupam BhowmickandClaude 7a97f9ba6f fix: adjust webgl-spoofing line numbers by +1 for all hunks
All hunks need to start one line later (2573→2574, etc).
This fixes the last webgl-spoofing reject.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-22 01:56:48 +00:00
Nirupam BhowmickandClaude dafb9bffed revert: undo hunk header count changes that broke webgl-spoofing
The hunk header count changes (8,12 instead of 7,11) caused the patch
to fail. Reverting to working state.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-22 01:55:40 +00:00
Nirupam BhowmickandClaude f3e2432b44 fix: update Navigator::Webdriver() hunk to line 2337→2347
The hunk was pointing to the function start (2318) but needs to point
to the return statement location (2337→2347 after +10 offset).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-22 01:50:27 +00:00
Nirupam BhowmickandClaude 4844af276c fix: correct webgl-spoofing.patch hunk header line counts
Fixed UNMASKED_RENDERER and UNMASKED_VENDOR hunk headers:
- UNMASKED_RENDERER: 7→8 old lines, 11→12 new lines
- UNMASKED_VENDOR: 6→8 old lines, 10→12 new lines

The hunk headers were undercounting context lines.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-22 01:44:32 +00:00
Nirupam BhowmickandClaude c7df5f8bc4 fix: correct webgl-spoofing.patch indentation to match Firefox 146
Firefox 146 uses 8 spaces for switch statement indentation, not 9.
Fixed three hunks:
- UNMASKED_RENDERER (line 275-276)
- UNMASKED_VENDOR (line 288-290)
- COLOR_WRITEMASK (line 301-303)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-22 01:42:46 +00:00
Nirupam BhowmickandClaude d915d23ca4 fix: correct webgl-spoofing and playwright leak-fixes patch line numbers
webgl-spoofing.patch:
- Remove extra blank line before UNMASKED_RENDERER hunk (2574→2573)
- Adjust all subsequent hunks for -1 line offset:
  - UNMASKED_VENDOR: 2585→2584, 2589→2588
  - COLOR_WRITEMASK: 2676→2675, 2684→2683
  - GetShaderPrecisionFormat: 3092→3091, 3102→3101
  - IsSupported: 6234→6233, 6262→6261
  - GetSupportedExtensions: 6245→6244, 6284→6283

playwright/1-leak-fixes.patch:
- Update Navigator::Webdriver() line: 2288→2328
- Accounts for +10 offset from 0-playwright.patch changes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-22 01:38:13 +00:00
Nirupam BhowmickandClaude 37666b8366 fix: correct cumulative line number offsets in webgl-spoofing.patch
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>
2025-12-22 01:35:43 +00:00
Nirupam BhowmickandClaude a80d1fe382 fix: update Navigator.cpp Webdriver line number for Firefox 146
- Update hunk from 2315→2318
- Fixes Navigator::Webdriver() reject file

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-22 01:33:54 +00:00
Nirupam BhowmickandClaude d3f4551f57 fix: update nsGlobalWindowInner.cpp include hunks for Firefox 146
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>
2025-12-22 01:32:10 +00:00
Nirupam BhowmickandClaude 93f94571bf fix: update webrtc-ip-spoofing.patch line numbers for Firefox 146
- Update include hunk: 116→101, add proper context with nsContentUtils.h
- Update SetLocalDescription hunk: 1702→1582
- Update CandidateReady hunk: 3224→3240

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-22 01:30:15 +00:00
Nirupam BhowmickandClaude 655270dc0b fix: update webgl-spoofing.patch line numbers for Firefox 146
- Fix UNMASKED_RENDERER hunk: update webgl::SanitizeRenderer call syntax
- Fix COLOR_WRITEMASK hunk: 2683→2676
- Fix GetShaderPrecisionFormat hunk: 3094→3092
- Fix IsSupported hunk: 6233→6234
- Fix GetSupportedExtensions hunk: 6243→6245, update context from mNotLost to IsContextLost()

All hunks now properly aligned with Firefox 146 code structure.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-22 01:28:09 +00:00
Nirupam BhowmickandClaude 41c80c4a23 fix: update voice-spoofing.patch MaskConfig include for Firefox 146
- 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>
2025-12-22 01:25:24 +00:00
Nirupam BhowmickandClaude bed9877b9c fix: update nsDocShell and CanvasRenderingContext2D for Firefox 146
- 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>
2025-12-22 01:20:05 +00:00
Nirupam BhowmickandClaude 5b70f73aa7 fix: update DateTime, GeckoBindings, and FontFaceImpl for Firefox 146
- 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>
2025-12-22 01:14:02 +00:00
Nirupam BhowmickandClaude b9fd5ed5e3 fix: update moz.build hunks for Firefox 146 context changes
- 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>
2025-12-22 01:09:54 +00:00
Nirupam BhowmickandClaude 7d0077f48c fix: update voice-spoofing and webgl-spoofing for Firefox 146
- 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>
2025-12-22 01:07:40 +00:00
Nirupam BhowmickandClaude 27c1f3d10c fix: update moz.build and HTMLInputElement line numbers
Fingerprint-injection:
- browser/app/moz.build: 183→188
- dom/media/moz.build: 419→421

Playwright:
- HTMLInputElement.cpp: rewrite first hunk 64→45 for Firefox 146 include order, update InitFilePicker 817→842

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-22 01:00:19 +00:00
Nirupam BhowmickandClaude 1f478e0f94 fix: update no-search-engines patch for Firefox 146 API changes
- SearchEngineSelector: line 158→333, _getConfiguration→#getConfiguration (private method syntax)
- UrlbarProviderInterventions: line 494→484, add async keyword, change UrlbarTokenizer→UrlUtils, update context

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-22 00:57:42 +00:00
Nirupam BhowmickandClaude 435a62b49c fix: update SearchEngineSelector for Firefox 146 private method syntax
- 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>
2025-12-22 00:53:50 +00:00
Nirupam BhowmickandClaude e53d5afb81 fix: rewrite Element and nsScreen includes for Firefox 146
- 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>
2025-12-22 00:43:56 +00:00
Nirupam BhowmickandClaude 77f709d0b9 fix: update CanonicalBrowsingContext LoadURI hunk line number
- 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>
2025-12-22 00:34:18 +00:00
Nirupam BhowmickandClaude b34037855c fix: update nsScreen and Element line numbers in fingerprint-injection patch
- nsScreen.cpp: line 4→5
- Element.cpp: line 12→13

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-22 00:31:17 +00:00
Nirupam BhowmickandClaude 5124254732 fix: update widget files in playwright patch for Firefox 146
- nsFilePicker.cpp: add mozilla/dom/Document.h to context
- HeadlessWidget.cpp: update line 111→112
- InProcessCompositorWidget.cpp: add NativeLayer.h and nsIWidget.h context, update line 23→26, change nsBaseWidget→nsIWidget

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-22 00:25:50 +00:00
Nirupam BhowmickandClaude 4f7563c9df fix: update BatteryManager.cpp include structure for Firefox 146
- 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>
2025-12-22 00:03:30 +00:00
Nirupam BhowmickandClaude 0fc8793fc0 fix: update playwright and network patches for Firefox 146
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>
2025-12-22 00:00:37 +00:00
Nirupam BhowmickandClaude 61868c452c fix: update network-patches for Firefox 146 SetAcceptEncodings signature
- 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>
2025-12-21 23:55:08 +00:00
Nirupam Bhowmick e0b26f1a1d fix: update playwright patch line numbers for Firefox 146
- CanonicalBrowsingContext.cpp: 267→274
- BrowsingContext.h CurrentOrientationType: 205→211, add HasOrientationOverride
- BrowsingContext.h LanguageOverride: 1181→1268
- Navigator.h: 220→228
- GeckoBindings.h: 593→591
2025-12-21 23:50:02 +00:00
Nirupam Bhowmick 541ab0f35c fix: rewrite gfxTextRun constructor for Firefox 146 FontVisibilityProvider
- 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
2025-12-21 23:48:32 +00:00