New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 827639 link

Starred by 10 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 2
Type: Feature

Blocked on: View detail
issue 878611
issue 879798
issue 869049



Sign in to add a comment

Intersection Observer v2

Project Member Reported by chrishtr@chromium.org, Mar 30 2018

Issue description

This is tracking bug for a Q2 2018 OKR.
 
Project Member

Comment 1 by bugdroid1@chromium.org, May 9 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/533d95e8eb5b2e2fd74bed8170fab29c967fd3b8

commit 533d95e8eb5b2e2fd74bed8170fab29c967fd3b8
Author: Stefan Zager <szager@chromium.org>
Date: Wed May 09 01:18:24 2018

[IntersectionObserverV2] Add feature plumbing

BUG=827639
R=chrishtr@chromium.org

Change-Id: I21f63aed1e3bac1cae3e5ec0f9253371508579f4
Reviewed-on: https://chromium-review.googlesource.com/1050695
Commit-Queue: Stefan Zager <szager@chromium.org>
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#557045}
[modify] https://crrev.com/533d95e8eb5b2e2fd74bed8170fab29c967fd3b8/third_party/blink/renderer/core/intersection_observer/intersection_observation.cc
[modify] https://crrev.com/533d95e8eb5b2e2fd74bed8170fab29c967fd3b8/third_party/blink/renderer/core/intersection_observer/intersection_observation.h
[modify] https://crrev.com/533d95e8eb5b2e2fd74bed8170fab29c967fd3b8/third_party/blink/renderer/core/intersection_observer/intersection_observer.cc
[modify] https://crrev.com/533d95e8eb5b2e2fd74bed8170fab29c967fd3b8/third_party/blink/renderer/core/intersection_observer/intersection_observer.h
[modify] https://crrev.com/533d95e8eb5b2e2fd74bed8170fab29c967fd3b8/third_party/blink/renderer/core/intersection_observer/intersection_observer.idl
[modify] https://crrev.com/533d95e8eb5b2e2fd74bed8170fab29c967fd3b8/third_party/blink/renderer/core/intersection_observer/intersection_observer_entry.cc
[modify] https://crrev.com/533d95e8eb5b2e2fd74bed8170fab29c967fd3b8/third_party/blink/renderer/core/intersection_observer/intersection_observer_entry.h
[modify] https://crrev.com/533d95e8eb5b2e2fd74bed8170fab29c967fd3b8/third_party/blink/renderer/core/intersection_observer/intersection_observer_entry.idl
[modify] https://crrev.com/533d95e8eb5b2e2fd74bed8170fab29c967fd3b8/third_party/blink/renderer/core/intersection_observer/intersection_observer_init.idl
[modify] https://crrev.com/533d95e8eb5b2e2fd74bed8170fab29c967fd3b8/third_party/blink/renderer/core/intersection_observer/intersection_observer_test.cc
[modify] https://crrev.com/533d95e8eb5b2e2fd74bed8170fab29c967fd3b8/third_party/blink/renderer/platform/runtime_enabled_features.json5

Project Member

Comment 2 by bugdroid1@chromium.org, May 17 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/96aa7670917d16ccdf48ce2028cc5f6836db71e8

commit 96aa7670917d16ccdf48ce2028cc5f6836db71e8
Author: Stefan Zager <szager@chromium.org>
Date: Thu May 17 02:51:35 2018

[IntersectionObserverV2] Add stop-node functionality to hit testing.

For IntersectionObserver, we only want to hit test down to the target
element.

BUG=827639
R=chrishtr@chromium.org,pdr@chromium.org

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I7c64a73577c1d685ba73ecc6ad388cd790122ad8
Reviewed-on: https://chromium-review.googlesource.com/1054132
Commit-Queue: Stefan Zager <szager@chromium.org>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#559405}
[modify] https://crrev.com/96aa7670917d16ccdf48ce2028cc5f6836db71e8/third_party/blink/renderer/core/input/event_handler.cc
[modify] https://crrev.com/96aa7670917d16ccdf48ce2028cc5f6836db71e8/third_party/blink/renderer/core/input/event_handler.h
[modify] https://crrev.com/96aa7670917d16ccdf48ce2028cc5f6836db71e8/third_party/blink/renderer/core/layout/hit_test_request.h
[modify] https://crrev.com/96aa7670917d16ccdf48ce2028cc5f6836db71e8/third_party/blink/renderer/core/layout/layout_box.cc
[modify] https://crrev.com/96aa7670917d16ccdf48ce2028cc5f6836db71e8/third_party/blink/renderer/core/layout/layout_table.cc
[modify] https://crrev.com/96aa7670917d16ccdf48ce2028cc5f6836db71e8/third_party/blink/renderer/core/layout/svg/layout_svg_root.cc
[modify] https://crrev.com/96aa7670917d16ccdf48ce2028cc5f6836db71e8/third_party/blink/renderer/core/paint/paint_layer.cc
[modify] https://crrev.com/96aa7670917d16ccdf48ce2028cc5f6836db71e8/third_party/blink/renderer/core/paint/paint_layer_test.cc

Project Member

Comment 3 by bugdroid1@chromium.org, Jun 8 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/69f57e11c2322050a679d189ee5069681c5cb6a8

commit 69f57e11c2322050a679d189ee5069681c5cb6a8
Author: Stefan Zager <szager@chromium.org>
Date: Fri Jun 08 05:41:30 2018

Use an explicit rect, rather than center point and padding, for rect-based hit tests

Prior to this patch, a rect-based hit test took as parameters a center point and four padding
values for top, right, bottom, and left padding. Theoretically, a rect-based hit test might have
asymmetric padding, but in practice, this never happens in the code (i.e., it's always true that
top-padding == bottom-padding and left-padding == right-padding).

Additionally, point-based hit tests used the same call path as rect-based hit tests (with zero
padding), which made the code hard to follow.

Finally, there was a bug in the rect-based hit test implementation: point-based hit tests always
create a one-pixel rect with the hit test point at top left and width=height=1. Because rect-based
hit tests used the same code path, the hit test rect was always erroneously expanded by one pixel
to the right and one pixel down.

This patch makes an explicit distinction between point-based and rect-based hit tests; it gets rid
of center-point-and-padding in favor of a simple rect; and it fixes the one-pixel-padding bug.
BUG=827639

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I11e49da328080c03da2e1662cbcc0317ab409740
Reviewed-on: https://chromium-review.googlesource.com/1081331
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Stefan Zager <szager@chromium.org>
Cr-Commit-Position: refs/heads/master@{#565556}
[modify] https://crrev.com/69f57e11c2322050a679d189ee5069681c5cb6a8/third_party/WebKit/LayoutTests/fast/dom/nodesFromRect/nodesFromRect-basic.html
[modify] https://crrev.com/69f57e11c2322050a679d189ee5069681c5cb6a8/third_party/WebKit/LayoutTests/fast/dom/nodesFromRect/nodesFromRect-inner-documents.html
[modify] https://crrev.com/69f57e11c2322050a679d189ee5069681c5cb6a8/third_party/WebKit/LayoutTests/fast/dom/nodesFromRect/nodesFromRect-links-and-text.html
[modify] https://crrev.com/69f57e11c2322050a679d189ee5069681c5cb6a8/third_party/WebKit/LayoutTests/fast/dom/nodesFromRect/nodesFromRect-rotate.html
[modify] https://crrev.com/69f57e11c2322050a679d189ee5069681c5cb6a8/third_party/WebKit/LayoutTests/fast/dom/nodesFromRect/nodesFromRect-scale.html
[modify] https://crrev.com/69f57e11c2322050a679d189ee5069681c5cb6a8/third_party/WebKit/LayoutTests/fast/dom/nodesFromRect/nodesFromRect-svg.html
[modify] https://crrev.com/69f57e11c2322050a679d189ee5069681c5cb6a8/third_party/WebKit/LayoutTests/fast/dom/nodesFromRect/nodesFromRect-table.html
[modify] https://crrev.com/69f57e11c2322050a679d189ee5069681c5cb6a8/third_party/WebKit/LayoutTests/fast/dom/nodesFromRect/resources/nodesFromRect.js
[modify] https://crrev.com/69f57e11c2322050a679d189ee5069681c5cb6a8/third_party/WebKit/LayoutTests/touchadjustment/resources/touchadjustment.js
[modify] https://crrev.com/69f57e11c2322050a679d189ee5069681c5cb6a8/third_party/blink/renderer/core/exported/web_plugin_container_impl.cc
[modify] https://crrev.com/69f57e11c2322050a679d189ee5069681c5cb6a8/third_party/blink/renderer/core/input/event_handler.cc
[modify] https://crrev.com/69f57e11c2322050a679d189ee5069681c5cb6a8/third_party/blink/renderer/core/input/event_handler.h
[modify] https://crrev.com/69f57e11c2322050a679d189ee5069681c5cb6a8/third_party/blink/renderer/core/input/pointer_event_manager.cc
[modify] https://crrev.com/69f57e11c2322050a679d189ee5069681c5cb6a8/third_party/blink/renderer/core/inspector/inspector_css_agent.cc
[modify] https://crrev.com/69f57e11c2322050a679d189ee5069681c5cb6a8/third_party/blink/renderer/core/layout/hit_test_location.cc
[modify] https://crrev.com/69f57e11c2322050a679d189ee5069681c5cb6a8/third_party/blink/renderer/core/layout/hit_test_location.h
[modify] https://crrev.com/69f57e11c2322050a679d189ee5069681c5cb6a8/third_party/blink/renderer/core/layout/hit_test_result.cc
[modify] https://crrev.com/69f57e11c2322050a679d189ee5069681c5cb6a8/third_party/blink/renderer/core/layout/hit_test_result.h
[modify] https://crrev.com/69f57e11c2322050a679d189ee5069681c5cb6a8/third_party/blink/renderer/core/layout/layout_inline_test.cc
[modify] https://crrev.com/69f57e11c2322050a679d189ee5069681c5cb6a8/third_party/blink/renderer/core/page/touch_adjustment.cc
[modify] https://crrev.com/69f57e11c2322050a679d189ee5069681c5cb6a8/third_party/blink/renderer/core/page/touch_disambiguation.cc
[modify] https://crrev.com/69f57e11c2322050a679d189ee5069681c5cb6a8/third_party/blink/renderer/core/paint/paint_layer_test.cc
[modify] https://crrev.com/69f57e11c2322050a679d189ee5069681c5cb6a8/third_party/blink/renderer/core/testing/internals.cc
[modify] https://crrev.com/69f57e11c2322050a679d189ee5069681c5cb6a8/third_party/blink/renderer/core/testing/internals.h
[modify] https://crrev.com/69f57e11c2322050a679d189ee5069681c5cb6a8/third_party/blink/renderer/core/testing/internals.idl

Project Member

Comment 4 by bugdroid1@chromium.org, Jun 9 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7bb6c9acc4a534866c72afb15c2ca33a3f78e34f

commit 7bb6c9acc4a534866c72afb15c2ca33a3f78e34f
Author: Stefan Zager <szager@chromium.org>
Date: Sat Jun 09 04:17:45 2018

[IntersectionObserverV2] Implement occlusion and effects detection.

BUG=827639
R=chrishtr@chromium.org,pdr@chromium.org

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Iafb87c636885fc80485643c05cc21138d9950535
Reviewed-on: https://chromium-review.googlesource.com/1060373
Commit-Queue: Stefan Zager <szager@chromium.org>
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#565844}
[modify] https://crrev.com/7bb6c9acc4a534866c72afb15c2ca33a3f78e34f/third_party/WebKit/LayoutTests/intersection-observer/resources/intersection-observer-test-utils.js
[add] https://crrev.com/7bb6c9acc4a534866c72afb15c2ca33a3f78e34f/third_party/WebKit/LayoutTests/intersection-observer/v2/animated-occlusion.html
[add] https://crrev.com/7bb6c9acc4a534866c72afb15c2ca33a3f78e34f/third_party/WebKit/LayoutTests/intersection-observer/v2/simple-effects.html
[add] https://crrev.com/7bb6c9acc4a534866c72afb15c2ca33a3f78e34f/third_party/WebKit/LayoutTests/intersection-observer/v2/simple-occlusion.html
[modify] https://crrev.com/7bb6c9acc4a534866c72afb15c2ca33a3f78e34f/third_party/blink/renderer/core/frame/remote_frame_view.cc
[modify] https://crrev.com/7bb6c9acc4a534866c72afb15c2ca33a3f78e34f/third_party/blink/renderer/core/input/event_handler.cc
[modify] https://crrev.com/7bb6c9acc4a534866c72afb15c2ca33a3f78e34f/third_party/blink/renderer/core/input/event_handler.h
[modify] https://crrev.com/7bb6c9acc4a534866c72afb15c2ca33a3f78e34f/third_party/blink/renderer/core/intersection_observer/intersection_observation.cc
[modify] https://crrev.com/7bb6c9acc4a534866c72afb15c2ca33a3f78e34f/third_party/blink/renderer/core/intersection_observer/intersection_observer_entry.h
[modify] https://crrev.com/7bb6c9acc4a534866c72afb15c2ca33a3f78e34f/third_party/blink/renderer/core/intersection_observer/intersection_observer_test.cc
[modify] https://crrev.com/7bb6c9acc4a534866c72afb15c2ca33a3f78e34f/third_party/blink/renderer/core/layout/layout_object.cc
[modify] https://crrev.com/7bb6c9acc4a534866c72afb15c2ca33a3f78e34f/third_party/blink/renderer/core/layout/layout_object.h
[modify] https://crrev.com/7bb6c9acc4a534866c72afb15c2ca33a3f78e34f/third_party/blink/renderer/core/layout/layout_object_test.cc
[modify] https://crrev.com/7bb6c9acc4a534866c72afb15c2ca33a3f78e34f/third_party/blink/renderer/platform/runtime_enabled_features.json5
[modify] https://crrev.com/7bb6c9acc4a534866c72afb15c2ca33a3f78e34f/third_party/blink/renderer/platform/transforms/transformation_matrix.h
[modify] https://crrev.com/7bb6c9acc4a534866c72afb15c2ca33a3f78e34f/third_party/blink/renderer/platform/transforms/transformation_matrix_test.cc

Blockedon: 869049
Project Member

Comment 6 by bugdroid1@chromium.org, Aug 9

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1abadbc5476d7be43100ddb6190d0e9ab0df3b5f

commit 1abadbc5476d7be43100ddb6190d0e9ab0df3b5f
Author: Stefan Zager <szager@chromium.org>
Date: Thu Aug 09 02:07:47 2018

[IntersectionObserver] Fix initial notifications for non-zero threshold

When a target is first observed, last_threshold_index_ is set to a
sentinel value (0x1fffffff), to ensure that an initial notification
will be sent on the next frame. For that notification, if the target
is intersecting, but the intersection ratio is less than the smallest
threshold set on the observer, then the isIntersecting field of the
notification should be false.

Also, for IOv2, the isVisible field should always be false -- and
skip the expensive hit test -- if the intersection ratio is less
than the smallest threshold set on the observer.

BUG= 847623 ,827639
R=chrishtr@chromium.org

Change-Id: I518ff97a23afd92a82c4d01d9280d57ffb0c9ae2
Reviewed-on: https://chromium-review.googlesource.com/1167884
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Commit-Queue: Stefan Zager <szager@chromium.org>
Cr-Commit-Position: refs/heads/master@{#581755}
[add] https://crrev.com/1abadbc5476d7be43100ddb6190d0e9ab0df3b5f/third_party/WebKit/LayoutTests/external/wpt/intersection-observer/initial-observation-with-threshold.html
[modify] https://crrev.com/1abadbc5476d7be43100ddb6190d0e9ab0df3b5f/third_party/blink/renderer/core/intersection_observer/intersection_observation.cc

Project Member

Comment 7 by bugdroid1@chromium.org, Aug 9

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/61efda226621b88f9d9042586f1b5adc018e702f

commit 61efda226621b88f9d9042586f1b5adc018e702f
Author: Stefan Zager <szager@chromium.org>
Date: Thu Aug 09 04:20:46 2018

Fix stop node and lifecycle handling for cross-frame hit test.

Previously, when EventHandler propagated the hit test up to the local
root frame, it failed to propagate the no_lifecycle_update flag, which
inadvertently triggered a lifecycle update (causing DCHECK failures in
some cases).

Also, when the hit test code traversed into a child document inside an
iframe, it didn't propagate the stop_node field from the original hit
test request, so the hit test inside the iframe didn't honor the stop
node.

BUG=827639
R=chrishtr@chromium.org

Change-Id: Ib29f26e41b945b53db6e427d41a03742af0ee4db
Reviewed-on: https://chromium-review.googlesource.com/1167746
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Commit-Queue: Stefan Zager <szager@chromium.org>
Cr-Commit-Position: refs/heads/master@{#581781}
[modify] https://crrev.com/61efda226621b88f9d9042586f1b5adc018e702f/third_party/blink/renderer/core/input/event_handler.cc
[modify] https://crrev.com/61efda226621b88f9d9042586f1b5adc018e702f/third_party/blink/renderer/core/layout/layout_embedded_content.cc
[modify] https://crrev.com/61efda226621b88f9d9042586f1b5adc018e702f/third_party/blink/renderer/core/layout/layout_object_test.cc

Project Member

Comment 8 by bugdroid1@chromium.org, Aug 24

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c3bf6a245cb334835b60e2b0b8a274e095f54ddd

commit c3bf6a245cb334835b60e2b0b8a274e095f54ddd
Author: Stefan Zager <szager@chromium.org>
Date: Fri Aug 24 06:33:13 2018

[IntersectionObserver] Throttle v2 observations to 100ms intervals

Since determining occlusion is much more expensive than computing
clipping, throttle the frequency of IntersectionObserver notifications
to no more than one every 100ms.

BUG=827639
R=chrishtr@chromium.org

Change-Id: I6675482041418c628dbddfd648319d18d871d38b
Reviewed-on: https://chromium-review.googlesource.com/1175210
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Reviewed-by: Stefan Zager <szager@chromium.org>
Commit-Queue: Stefan Zager <szager@chromium.org>
Cr-Commit-Position: refs/heads/master@{#585725}
[modify] https://crrev.com/c3bf6a245cb334835b60e2b0b8a274e095f54ddd/third_party/WebKit/LayoutTests/http/tests/intersection-observer/resources/v2-subframe.html
[modify] https://crrev.com/c3bf6a245cb334835b60e2b0b8a274e095f54ddd/third_party/WebKit/LayoutTests/intersection-observer/resources/intersection-observer-test-utils.js
[modify] https://crrev.com/c3bf6a245cb334835b60e2b0b8a274e095f54ddd/third_party/WebKit/LayoutTests/intersection-observer/v2/animated-occlusion.html
[modify] https://crrev.com/c3bf6a245cb334835b60e2b0b8a274e095f54ddd/third_party/WebKit/LayoutTests/intersection-observer/v2/simple-effects.html
[modify] https://crrev.com/c3bf6a245cb334835b60e2b0b8a274e095f54ddd/third_party/WebKit/LayoutTests/intersection-observer/v2/simple-occlusion.html
[modify] https://crrev.com/c3bf6a245cb334835b60e2b0b8a274e095f54ddd/third_party/blink/renderer/core/intersection_observer/intersection_observer.cc
[modify] https://crrev.com/c3bf6a245cb334835b60e2b0b8a274e095f54ddd/third_party/blink/renderer/core/intersection_observer/intersection_observer.h
[modify] https://crrev.com/c3bf6a245cb334835b60e2b0b8a274e095f54ddd/third_party/blink/renderer/core/intersection_observer/intersection_observer_test.cc

Blockedon: 878611
Project Member

Comment 10 by bugdroid1@chromium.org, Aug 29

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2cede8426879204cae9a9bdaabdb470f88b2c2b2

commit 2cede8426879204cae9a9bdaabdb470f88b2c2b2
Author: Stefan Zager <szager@chromium.org>
Date: Wed Aug 29 17:35:17 2018

[IntersectionObserver] Fix hit testing stop node for iframe elements

When hit testing with an iframe element as stop node, the hit test
should not descend into the iframe's content document.

BUG=827639
R=chrishtr@chromium.org

Change-Id: I3723d83486f8b733d7354c9112496aff1e43afe4
Reviewed-on: https://chromium-review.googlesource.com/1194977
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Commit-Queue: Stefan Zager <szager@chromium.org>
Cr-Commit-Position: refs/heads/master@{#587180}
[add] https://crrev.com/2cede8426879204cae9a9bdaabdb470f88b2c2b2/third_party/WebKit/LayoutTests/intersection-observer/v2/iframe-target.html
[modify] https://crrev.com/2cede8426879204cae9a9bdaabdb470f88b2c2b2/third_party/blink/renderer/core/layout/layout_embedded_content.cc

Blockedon: 879798
Project Member

Comment 12 by bugdroid1@chromium.org, Sep 24

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0f3d65a99c669b999ae80d0d8b5bc54fe42400f4

commit 0f3d65a99c669b999ae80d0d8b5bc54fe42400f4
Author: Stefan Zager <szager@chromium.org>
Date: Mon Sep 24 23:52:40 2018

[IntersectionObserverV2] Add 'delay' option

The new options behaves similarly to the 'delay' parameter to
window.setInterval: it limits the frequency of observations to no more
often than once per N milliseconds, for a delay parameter N.

Also, require a delay parameter of at least 100 to enable occlusion
detection, and raise a javascript exception if the requirement isn't
met. The intention here is to hopefully force developers to consider
carefully whether they truly want and need to use trackVisibility.

With this change, we cannot rely on a dirty bit on the LocalFrameView
to avoid all processing of IntersectionObserver's during lifecycle
update. It may happen that a lifecycle update runs while the view is
dirty; but an observation has a delay timer that hasn't expired yet. In
that case, we mark the observation itself as dirty. We need to compute
the observation on a subsequent lifecycle update when the observation's
delay timer has expired. If the view is clean on that subsequent
lifecycle update, we *still* need to descend into the observation to
give it an opportunity to recompute.

IOv2 spec language forthcoming.

BUG=827639
R=chrishtr@chromium.org,ojan@chromium.org

Change-Id: Ia987aec67d60340b263ba1a2cbcb30502d9e6288
Reviewed-on: https://chromium-review.googlesource.com/1234265
Commit-Queue: Stefan Zager <szager@chromium.org>
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#593753}
[modify] https://crrev.com/0f3d65a99c669b999ae80d0d8b5bc54fe42400f4/third_party/WebKit/LayoutTests/http/tests/intersection-observer/resources/v2-subframe.html
[modify] https://crrev.com/0f3d65a99c669b999ae80d0d8b5bc54fe42400f4/third_party/WebKit/LayoutTests/intersection-observer/v2/animated-occlusion.html
[modify] https://crrev.com/0f3d65a99c669b999ae80d0d8b5bc54fe42400f4/third_party/WebKit/LayoutTests/intersection-observer/v2/box-shadow.html
[add] https://crrev.com/0f3d65a99c669b999ae80d0d8b5bc54fe42400f4/third_party/WebKit/LayoutTests/intersection-observer/v2/delay-test.html
[modify] https://crrev.com/0f3d65a99c669b999ae80d0d8b5bc54fe42400f4/third_party/WebKit/LayoutTests/intersection-observer/v2/iframe-target.html
[modify] https://crrev.com/0f3d65a99c669b999ae80d0d8b5bc54fe42400f4/third_party/WebKit/LayoutTests/intersection-observer/v2/simple-effects.html
[modify] https://crrev.com/0f3d65a99c669b999ae80d0d8b5bc54fe42400f4/third_party/WebKit/LayoutTests/intersection-observer/v2/simple-occlusion.html
[modify] https://crrev.com/0f3d65a99c669b999ae80d0d8b5bc54fe42400f4/third_party/WebKit/LayoutTests/intersection-observer/v2/text-shadow.html
[modify] https://crrev.com/0f3d65a99c669b999ae80d0d8b5bc54fe42400f4/third_party/blink/renderer/core/frame/local_frame_view.cc
[modify] https://crrev.com/0f3d65a99c669b999ae80d0d8b5bc54fe42400f4/third_party/blink/renderer/core/frame/local_frame_view.h
[modify] https://crrev.com/0f3d65a99c669b999ae80d0d8b5bc54fe42400f4/third_party/blink/renderer/core/intersection_observer/intersection_observation.cc
[modify] https://crrev.com/0f3d65a99c669b999ae80d0d8b5bc54fe42400f4/third_party/blink/renderer/core/intersection_observer/intersection_observation.h
[modify] https://crrev.com/0f3d65a99c669b999ae80d0d8b5bc54fe42400f4/third_party/blink/renderer/core/intersection_observer/intersection_observer.cc
[modify] https://crrev.com/0f3d65a99c669b999ae80d0d8b5bc54fe42400f4/third_party/blink/renderer/core/intersection_observer/intersection_observer.h
[modify] https://crrev.com/0f3d65a99c669b999ae80d0d8b5bc54fe42400f4/third_party/blink/renderer/core/intersection_observer/intersection_observer.idl
[modify] https://crrev.com/0f3d65a99c669b999ae80d0d8b5bc54fe42400f4/third_party/blink/renderer/core/intersection_observer/intersection_observer_init.idl
[modify] https://crrev.com/0f3d65a99c669b999ae80d0d8b5bc54fe42400f4/third_party/blink/renderer/core/intersection_observer/intersection_observer_test.cc
[modify] https://crrev.com/0f3d65a99c669b999ae80d0d8b5bc54fe42400f4/third_party/blink/renderer/core/testing/internals.cc
[modify] https://crrev.com/0f3d65a99c669b999ae80d0d8b5bc54fe42400f4/third_party/blink/renderer/core/testing/internals.h
[modify] https://crrev.com/0f3d65a99c669b999ae80d0d8b5bc54fe42400f4/third_party/blink/renderer/core/testing/internals.idl

Cc: lord.fon...@gmail.com sirdarck...@gmail.com kenrb@chromium.org creis@chromium.org abarth@chromium.org f...@chromium.org nasko@chromium.org
 Issue 387472  has been merged into this issue.
Project Member

Comment 14 by bugdroid1@chromium.org, Jan 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/afe3da079970a357218fa36525afaab1529607c8

commit afe3da079970a357218fa36525afaab1529607c8
Author: Stefan Zager <szager@chromium.org>
Date: Thu Jan 03 04:27:41 2019

[IntersectionObserver] Fix visual rect hit testing for blur filters

Blur filters do not contribute to visual overflow, so hit testing
doesn't account for them, even when the kHitTestVisualOverflow flag
is used. This change expands the rect used for occlusion hit testing
to include the radius of blur filters.

BUG=827639
R=chrishtr@chromium.org

Change-Id: I01eb61eacbaac2005a84fa181daa8e6f8765d18d
Reviewed-on: https://chromium-review.googlesource.com/c/1364152
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Commit-Queue: Stefan Zager <szager@chromium.org>
Cr-Commit-Position: refs/heads/master@{#619584}
[modify] https://crrev.com/afe3da079970a357218fa36525afaab1529607c8/third_party/blink/renderer/core/layout/layout_box.cc
[modify] https://crrev.com/afe3da079970a357218fa36525afaab1529607c8/third_party/blink/renderer/core/layout/layout_box.h
[add] https://crrev.com/afe3da079970a357218fa36525afaab1529607c8/third_party/blink/web_tests/intersection-observer/v2/blur-filter.html

Sign in to add a comment