This is tracking bug for a Q2 2018 OKR.
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
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
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
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
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
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
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
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
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
Issue 387472 has been merged into this issue.
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
Comment 1 by bugdroid1@chromium.org
, May 9 2018