mirror of
https://github.com/daijro/camoufox.git
synced 2026-10-04 16:00:21 +00:00
fpgen.yml mapped the drawn window.pageYOffset (e.g. 528) to screen.pageYOffset, and the browser returns that value from scrollY on every read, so a page saw one scroll position forever whatever the user did. Real scroll offsets are live page state, not part of a device's fingerprint, so neither offset is mapped any more. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
17 lines
644 B
Python
17 lines
644 B
Python
"""No identity pins the page's scroll offset.
|
|
|
|
The browser returns a configured screen.pageYOffset from scrollY on every read,
|
|
so a drawn value froze the page at one scroll position whatever the user did.
|
|
"""
|
|
|
|
from camoufox.fingerprints import from_fpgen, generate_fingerprint
|
|
|
|
_SCROLL_KEYS = ("screen.pageXOffset", "screen.pageYOffset")
|
|
|
|
|
|
def test_a_drawn_scroll_offset_is_not_carried_into_the_config():
|
|
fingerprint = generate_fingerprint(os="windows")
|
|
fingerprint["window"] = {**fingerprint["window"], "pageXOffset": 17, "pageYOffset": 528}
|
|
config = from_fpgen(fingerprint, "152")
|
|
assert not set(_SCROLL_KEYS) & config.keys()
|