New issue
Advanced search Search tips

Issue 923671 link

Starred by 3 users

Issue metadata

Status: Assigned
Owner:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 2
Type: Bug-Regression



Sign in to add a comment

IntersectionObserver rootMargin not compensating for devicePixelRatio

Reported by fuzzycas...@gmail.com, Jan 19 (3 days ago)

Issue description

Steps to reproduce the problem:
1. Navigate to the repro case in Android Chrome 71. It's available here in addition to attached to this bug: https://zzzev.github.io/intersectionobserver-bug-repro/index.html
2. scroll down until the centered square overlaps the red/green squares on either side

What is the expected behavior?
When overlapping, the large, fixed squares should turn green

What went wrong?
Only one side works as expected when devicePixelRatio is not 1. The left side works on Android Firefox, the right side works on Android Chrome 71, neither side works on both apps.

I believe this is because the rootMargin set on IntersectionObserver is not taking devicePixelRatio into account when it calculates the intersection area.

The right side manually multiplies the rootMargin by devicePixelRatio, which is why it works properly.

Chrome behaved the same as Firefox as of Chrome version 66.0.3359.158 (the version installed in the system image for the emulator), so I believe this is a regression. The regression may be more recent than 66; that's just the only easily available version I have to test.

Did this work before? Yes 66.0.3359.158

Does this work in other browsers? Yes

Chrome version: 71.0.3578.99  Channel: stable
OS Version: Pixel 2 XL Build/PQ1A. 190105.004
Flash Version: 

Thanks for looking into this, please let me know if I can help debug this issue further.
 
repro.html
2.2 KB View Download

Comment 1 by e...@chromium.org, Jan 21 (2 days ago)

Owner: szager@chromium.org
Status: Assigned (was: Unconfirmed)

Sign in to add a comment