Test Your Safari Fingerprint After the iOS 26 Update
Run the fingerprint inspector above on an iPhone running iOS 26 and compare the entropy score against a backup taken on an earlier version, and Apple's Advanced Fingerprinting and Tracking Protection (AFP) becomes visible directly in the numbers. AFP activates automatically for every user who upgrades to iOS 26, without requiring any settings changes.
AFP targets the highest-entropy passive signals that fingerprinting scripts rely on: canvas rendering output is modified to reduce uniqueness, WebGL output is altered, audio processing results are normalized, and font access is restricted to a common subset.1 Consequently, a browser that previously produced a distinctive canvas hash on iOS 17 produces a modified output on iOS 26 Safari, making cross-session re-identification through canvas fingerprinting significantly harder.
Building on this, AFP differs from approaches taken by Brave and Firefox: rather than randomizing values per origin, AFP normalizes them toward a common baseline, which reduces intra-user variance while preserving the appearance of consistent behavior. Checking your own score above after the upgrade shows the reduction directly, instead of taking the description on faith.
What AFP in iOS 26 blocks and modifies
AFP modifies canvas and WebGL rendering output to reduce the uniqueness of the rendered result. Scripts calling HTMLCanvasElement.toDataURL() receive a modified pixel buffer that has been processed to reduce the hardware-specific variation caused by GPU drivers and font rasterizers. WebGL rendering output undergoes similar modification, reducing the fingerprinting value of canvas-based WebGL renders. Audio processing output through OfflineAudioContext is normalized; the floating-point values in the rendered audio buffer are adjusted to reduce DAC-specific variation.2
What AFP changes on iOS Safari
Font access is restricted to a predefined common subset, which prevents the font enumeration technique from producing a distinctive font list.1 Consequently, the four highest-entropy passive fingerprinting signals are each reduced in entropy simultaneously. Building on this, AFP activates automatically and requires no user action; the protection is present from the first Safari launch after upgrading to iOS 26, making it the broadest default-on deployment of anti-fingerprinting protection in any major browser.
You can measure the effect directly by running the inspector on an iOS 26 device and comparing the entropy score with the same device before the upgrade, or with an Android phone running the same sites. The canvas, WebGL, and audio rows should show lower variance on iOS 26 than on earlier versions, which confirms that AFP is changing the underlying values rather than only hiding them. Testing on both Wi-Fi and cellular also shows whether the network path changes the result.
What AFP does not protect against
AFP's normalization approach leaves several hardware and locale signals completely untouched, which means a determined fingerprinting script can still collect meaningful entropy from the values AFP does not modify. navigator.hardwareConcurrency reports the real CPU core count, which on Apple A-series iPhone chips is consistently 6 cores (2 performance + 4 efficiency) across all generations from A10 through A19.3 screen.width and screen.height remain reported at the logical CSS resolution, which varies across iPhone models with different display dimensions, and window.devicePixelRatio continues to report the display's actual pixel ratio without any modification.
How to test Safari protection
WebRTC behavior on iOS has restricted local IP exposure since iOS 15, when Apple introduced mDNS ICE candidates that replace real local IP addresses with randomly generated .local addresses, so WebRTC leaks are already addressed independently of AFP.4 Timezone and language signals remain unmodified. AFP also does not remove the need to test after an update, because site scripts can still combine the remaining values into a recognizable profile. Consequently, a complete fingerprint score in iOS 26 Safari will be lower than in earlier iOS versions but will not reach zero; the remaining unmodified signals still provide some entropy. Building on this, the practical effect is that canvas-based, audio-based, and font-based tracking across sessions becomes substantially harder, while lower-entropy corroborating signals like screen resolution and hardware concurrency remain available to fingerprinting scripts.
How iOS 26 AFP compares to Brave and Firefox
AFP, Brave's farbling, and Firefox's privacy.resistFingerprinting address the same fingerprinting signals through different mechanisms. AFP normalizes canvas and audio output toward a common baseline shared across many iOS 26 Safari users; the goal is to reduce the uniqueness of each device's output without randomizing it. Brave farbles canvas output per origin and per session with controlled noise; the goal is to prevent stable cross-site and cross-session linking by ensuring the hash changes each time. Firefox RFP intercepts the canvas API at the engine level and injects a session-consistent modification that degrades the hash without breaking canvas functionality.
Consequently, AFP reduces entropy by normalization toward a shared baseline, Brave reduces it through session-scoped randomization that changes the hash on every new site and session, and Firefox reduces it by engine-level intervention that modifies canvas output before the script ever receives the pixel data, each reflecting a fundamentally different philosophy about how to defeat stable fingerprint collection.5
Which approach matches your device
For a user who wants to minimize their fingerprint entropy score, Brave's approach produces the most aggressive reduction on desktop; AFP produces the most significant reduction on iOS without requiring any configuration. If you browse primarily on iPhone, upgrading to iOS 26 gives you meaningful protection with zero setup, while desktop users who want the strongest available protection should combine Brave with its Shields set to aggressive mode. The key difference is that AFP normalizes toward a shared baseline while Brave randomizes per session, so the protection mechanism that works best for you depends on whether you prioritize consistency or unpredictability in your browsing profile. Checking your entropy score on iOS 26 against an earlier backup makes the AFP reduction concrete rather than theoretical.
When to use this
Run the inspector above right after upgrading to iOS 26 to audit your Safari fingerprint, or use it to check whether AFP changes how CapyToolkit Browser Fingerprint Inspector reports signals on your specific iPhone.
Examples
Comparing canvas hash before and after iOS 26 upgrade
iOS 17 Safari: canvas hash = a4d9c2e1... (hardware-specific GPU-rendered value, stable across sessions)
iOS 26 Safari with AFP: canvas hash = modified output (normalized, less distinctive, may still be consistent within a session but differs from the pre-AFP hardware-rendered hash)
Run CapyToolkit Browser Fingerprint Inspector on your iPhone before and after updating to iOS 26 to see the actual change in entropy score.
Locating AFP settings in iOS 26
AFP is enabled by default after upgrading to iOS 26. No action is required.
To verify or adjust: Settings > Safari > Privacy > Advanced Fingerprinting and Tracking Protection. The toggle is on by default.
- 1.
Apple, "WebKit Features in Safari 26.0," webkit.org, September 2025. https://webkit.org/blog/17333/webkit-features-in-safari-26-0/
- 2.
9to5Mac, "iOS 26 counters invasive tracking," 9to5mac.com, July 2025. https://9to5mac.com/2025/07/29/with-ios-26-safari-will-counter-one-of-the-webs-most-invasive-tracking-methods/
- 3.
"Apple A-Series Chips," Wikipedia, accessed July 2026. https://en.wikipedia.org/wiki/Apple_A-series
- 4.
Eric Rescorla, "Apple's Not-So-Private Relay Fails with WebRTC," webrtchacks.com, 2022. https://webrtchacks.com/apples-not-so-private-relay-fails-with-webrtc/
- 5.
Brave, "Fingerprint Randomization," brave.com, 2020. https://brave.com/privacy-updates/3-fingerprint-randomization/