Project: chromium Issues People Development process History Sign in
New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.
Issue 540528 Intersection Observer
Starred by 29 users Project Member Reported by mpb@chromium.org, Oct 7 2015 Back to list
Status: Started
Owner:
User never visited
Cc:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Launch-OWP
Launch-Accessibility: NA
Launch-Legal: ----
Launch-M-Approved: ----
Launch-M-Target: ----
Launch-Privacy: ----
Launch-Security: ----
Launch-Status: ----
Launch-Test: ----
Launch-UI: ----


Sign in to add a comment
Change description:
The Intersection Observer API can be used to asynchronously observe changes in the intersection of a target Element with an ancestor element (for infinite scrolling lists) or the top-level document's viewport (for 'viewability' tracking).

Changes to API surface:
* A new interface IntersectionObserver, and related Init, Entry and Callback interfaces.

Links:
https://rawgit.com/slightlyoff/IntersectionObserver/master/index.html
https://rawgit.com/slightlyoff/IntersectionObserver/master/index.bikeshed.html

Public standards discussion: https://github.com/slightlyoff/IntersectionObserver/issues

Support in other browsers:
Internet Explorer: positive
Firefox: positive
Safari: positive

 
Cc: kinuko@chromium.org
Project Member Comment 2 by bugdroid1@chromium.org, Dec 11 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a7fdc1aef78ed0f3ea6d66351498b4f3e4a9c3b5

commit a7fdc1aef78ed0f3ea6d66351498b4f3e4a9c3b5
Author: szager <szager@chromium.org>
Date: Fri Dec 11 01:28:43 2015

This is a rename and slight modification to mapRectToPaintInvalidationBacking.

The rename is for clarity (not for brevity, clearly).

There are two changes in functionality:

- Overflow clipping is done for all layers in the intermediate hierarchy; previously, only non-composited layers applied clipping.

- Overflow clipping is *not* done for the paint invalidation container itself; previously it was.

The reason for the change in functionality is to support the IntersectionObserver use case (see bug).

BUG=540528

Review URL: https://codereview.chromium.org/1516683002

Cr-Commit-Position: refs/heads/master@{#364567}

[modify] http://crrev.com/a7fdc1aef78ed0f3ea6d66351498b4f3e4a9c3b5/third_party/WebKit/Source/core/frame/FrameView.cpp
[modify] http://crrev.com/a7fdc1aef78ed0f3ea6d66351498b4f3e4a9c3b5/third_party/WebKit/Source/core/layout/LayoutBox.cpp
[modify] http://crrev.com/a7fdc1aef78ed0f3ea6d66351498b4f3e4a9c3b5/third_party/WebKit/Source/core/layout/LayoutBox.h
[modify] http://crrev.com/a7fdc1aef78ed0f3ea6d66351498b4f3e4a9c3b5/third_party/WebKit/Source/core/layout/LayoutFlowThread.cpp
[modify] http://crrev.com/a7fdc1aef78ed0f3ea6d66351498b4f3e4a9c3b5/third_party/WebKit/Source/core/layout/LayoutFlowThread.h
[modify] http://crrev.com/a7fdc1aef78ed0f3ea6d66351498b4f3e4a9c3b5/third_party/WebKit/Source/core/layout/LayoutInline.cpp
[modify] http://crrev.com/a7fdc1aef78ed0f3ea6d66351498b4f3e4a9c3b5/third_party/WebKit/Source/core/layout/LayoutInline.h
[modify] http://crrev.com/a7fdc1aef78ed0f3ea6d66351498b4f3e4a9c3b5/third_party/WebKit/Source/core/layout/LayoutListMarker.cpp
[modify] http://crrev.com/a7fdc1aef78ed0f3ea6d66351498b4f3e4a9c3b5/third_party/WebKit/Source/core/layout/LayoutObject.cpp
[modify] http://crrev.com/a7fdc1aef78ed0f3ea6d66351498b4f3e4a9c3b5/third_party/WebKit/Source/core/layout/LayoutObject.h
[modify] http://crrev.com/a7fdc1aef78ed0f3ea6d66351498b4f3e4a9c3b5/third_party/WebKit/Source/core/layout/LayoutReplaced.cpp
[modify] http://crrev.com/a7fdc1aef78ed0f3ea6d66351498b4f3e4a9c3b5/third_party/WebKit/Source/core/layout/LayoutTableCell.cpp
[modify] http://crrev.com/a7fdc1aef78ed0f3ea6d66351498b4f3e4a9c3b5/third_party/WebKit/Source/core/layout/LayoutTableCell.h
[modify] http://crrev.com/a7fdc1aef78ed0f3ea6d66351498b4f3e4a9c3b5/third_party/WebKit/Source/core/layout/LayoutText.cpp
[modify] http://crrev.com/a7fdc1aef78ed0f3ea6d66351498b4f3e4a9c3b5/third_party/WebKit/Source/core/layout/LayoutView.cpp
[modify] http://crrev.com/a7fdc1aef78ed0f3ea6d66351498b4f3e4a9c3b5/third_party/WebKit/Source/core/layout/LayoutView.h
[modify] http://crrev.com/a7fdc1aef78ed0f3ea6d66351498b4f3e4a9c3b5/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.cpp
[modify] http://crrev.com/a7fdc1aef78ed0f3ea6d66351498b4f3e4a9c3b5/third_party/WebKit/Source/core/layout/svg/LayoutSVGBlock.cpp
[modify] http://crrev.com/a7fdc1aef78ed0f3ea6d66351498b4f3e4a9c3b5/third_party/WebKit/Source/core/layout/svg/LayoutSVGBlock.h
[modify] http://crrev.com/a7fdc1aef78ed0f3ea6d66351498b4f3e4a9c3b5/third_party/WebKit/Source/core/layout/svg/LayoutSVGRoot.cpp
[modify] http://crrev.com/a7fdc1aef78ed0f3ea6d66351498b4f3e4a9c3b5/third_party/WebKit/Source/core/layout/svg/LayoutSVGRoot.h
[modify] http://crrev.com/a7fdc1aef78ed0f3ea6d66351498b4f3e4a9c3b5/third_party/WebKit/Source/core/layout/svg/SVGLayoutSupport.cpp
[modify] http://crrev.com/a7fdc1aef78ed0f3ea6d66351498b4f3e4a9c3b5/third_party/WebKit/Source/core/paint/PaintLayer.cpp
[modify] http://crrev.com/a7fdc1aef78ed0f3ea6d66351498b4f3e4a9c3b5/third_party/WebKit/Source/web/WebPluginContainerImpl.cpp

Comment 3 by szager@chromium.org, Dec 17 2015
Blockedon: chromium:570538
Project Member Comment 4 by bugdroid1@chromium.org, Jan 8 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b5cff0041ec225f4eaac870e87d6189321754983

commit b5cff0041ec225f4eaac870e87d6189321754983
Author: szager <szager@chromium.org>
Date: Fri Jan 08 23:47:53 2016

IntersectionObserver: second cut.

All major features are implemented, a few TODO's, and a few tests.

Design doc:

https://docs.google.com/document/d/1hLK0eyT5_BzyNS4OkjsnoqqFQDYCbKfyBinj94OnLiQ/edit

BUG=540528

Review URL: https://codereview.chromium.org/1449623002

Cr-Commit-Position: refs/heads/master@{#368458}

[add] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/LayoutTests/intersection-observer/helper-functions.js
[add] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/LayoutTests/intersection-observer/iframe-no-root-expected.txt
[add] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/LayoutTests/intersection-observer/iframe-no-root.html
[add] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/LayoutTests/intersection-observer/iframe-root-expected.txt
[add] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/LayoutTests/intersection-observer/iframe-root.html
[add] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/LayoutTests/intersection-observer/multiple-thresholds-expected.txt
[add] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/LayoutTests/intersection-observer/multiple-thresholds.html
[add] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/LayoutTests/intersection-observer/same-document-no-root-expected.txt
[add] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/LayoutTests/intersection-observer/same-document-no-root.html
[add] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/LayoutTests/intersection-observer/same-document-root-expected.txt
[add] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/LayoutTests/intersection-observer/same-document-root.html
[add] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/LayoutTests/resources/intersection-observer-subframe.html
[modify] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/LayoutTests/resources/js-test.js
[modify] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt
[add] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/Source/bindings/core/v8/V8IntersectionObserverCallback.cpp
[add] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/Source/bindings/core/v8/V8IntersectionObserverCallback.h
[add] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/Source/bindings/core/v8/custom/V8IntersectionObserverCustom.cpp
[modify] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/Source/bindings/core/v8/custom/custom.gypi
[modify] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/Source/bindings/core/v8/v8.gypi
[modify] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/Source/core/core.gypi
[modify] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/Source/core/dom/Document.cpp
[modify] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/Source/core/dom/Document.h
[modify] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/Source/core/dom/Element.cpp
[modify] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/Source/core/dom/Element.h
[add] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/Source/core/dom/ElementIntersectionObserverData.cpp
[add] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/Source/core/dom/ElementIntersectionObserverData.h
[modify] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/Source/core/dom/ElementRareData.cpp
[modify] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/Source/core/dom/ElementRareData.h
[add] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/Source/core/dom/IntersectionObservation.cpp
[add] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/Source/core/dom/IntersectionObservation.h
[add] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/Source/core/dom/IntersectionObserver.cpp
[add] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/Source/core/dom/IntersectionObserver.h
[add] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/Source/core/dom/IntersectionObserver.idl
[add] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/Source/core/dom/IntersectionObserverCallback.h
[add] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/Source/core/dom/IntersectionObserverController.cpp
[add] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/Source/core/dom/IntersectionObserverController.h
[add] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/Source/core/dom/IntersectionObserverEntry.cpp
[add] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/Source/core/dom/IntersectionObserverEntry.h
[add] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/Source/core/dom/IntersectionObserverEntry.idl
[add] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/Source/core/dom/IntersectionObserverInit.idl
[modify] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/Source/core/frame/FrameView.cpp
[modify] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/Source/core/frame/FrameView.h
[modify] http://crrev.com/b5cff0041ec225f4eaac870e87d6189321754983/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.in

Project Member Comment 5 by bugdroid1@chromium.org, Jan 11 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0207c69014fab8e34db458119c28a96783c260ec

commit 0207c69014fab8e34db458119c28a96783c260ec
Author: szager <szager@chromium.org>
Date: Mon Jan 11 09:10:44 2016

Get rid of unnecessary weak pointer cleanup.

BUG=540528
R=haraken@chromium.org

Review URL: https://codereview.chromium.org/1570413002

Cr-Commit-Position: refs/heads/master@{#368542}

[modify] http://crrev.com/0207c69014fab8e34db458119c28a96783c260ec/third_party/WebKit/Source/core/dom/ElementIntersectionObserverData.cpp
[modify] http://crrev.com/0207c69014fab8e34db458119c28a96783c260ec/third_party/WebKit/Source/core/dom/IntersectionObservation.cpp

Project Member Comment 8 by bugdroid1@chromium.org, Jan 12 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2cf2fab949e741b56be51d1197b064083ec45441

commit 2cf2fab949e741b56be51d1197b064083ec45441
Author: sigbjornf <sigbjornf@opera.com>
Date: Tue Jan 12 07:52:54 2016

Oilpan: fix build after r368814.

TBR=oilpan-reviews
BUG=540528
NOTRY=true
NOTREECHECKS=true
NOPRESUBMIT=true

Review URL: https://codereview.chromium.org/1575323002

Cr-Commit-Position: refs/heads/master@{#368817}

[modify] http://crrev.com/2cf2fab949e741b56be51d1197b064083ec45441/third_party/WebKit/Source/core/dom/IntersectionObserverController.cpp
[modify] http://crrev.com/2cf2fab949e741b56be51d1197b064083ec45441/third_party/WebKit/Source/core/dom/IntersectionObserverController.h

Project Member Comment 9 by bugdroid1@chromium.org, Jan 12 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a7a3254c6febcf2321642534f26d150c1b52ec0f

commit a7a3254c6febcf2321642534f26d150c1b52ec0f
Author: sigbjornf <sigbjornf@opera.com>
Date: Tue Jan 12 08:06:01 2016

Revert of Oilpan: fix build after r368814. (patchset #1 id:1 of https://codereview.chromium.org/1575323002/ )

Reason for revert:
Breaks non-Oilpan compilation.

Original issue's description:
> Oilpan: fix build after r368814.
>
> TBR=oilpan-reviews
> BUG=540528
> NOTRY=true
> NOTREECHECKS=true
> NOPRESUBMIT=true
>
> Committed: https://crrev.com/2cf2fab949e741b56be51d1197b064083ec45441
> Cr-Commit-Position: refs/heads/master@{#368817}

TBR=oilpan-reviews@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=540528

Review URL: https://codereview.chromium.org/1580683002

Cr-Commit-Position: refs/heads/master@{#368819}

[modify] http://crrev.com/a7a3254c6febcf2321642534f26d150c1b52ec0f/third_party/WebKit/Source/core/dom/IntersectionObserverController.cpp
[modify] http://crrev.com/a7a3254c6febcf2321642534f26d150c1b52ec0f/third_party/WebKit/Source/core/dom/IntersectionObserverController.h

Project Member Comment 10 by bugdroid1@chromium.org, Jan 12 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4d625ae5fa2b9edd9f3c0fa5f1e3da3bb401c9aa

commit 4d625ae5fa2b9edd9f3c0fa5f1e3da3bb401c9aa
Author: sigbjornf <sigbjornf@opera.com>
Date: Tue Jan 12 08:34:55 2016

Oilpan: fix build after r368814.

TBR=oilpan-reviews
BUG=540528
NOTRY=true
NOTREECHECKS=true
NOPRESUBMIT=true

Committed: https://crrev.com/2cf2fab949e741b56be51d1197b064083ec45441
Cr-Commit-Position: refs/heads/master@{#368817}

Review URL: https://codereview.chromium.org/1575323002

Cr-Commit-Position: refs/heads/master@{#368820}

[modify] http://crrev.com/4d625ae5fa2b9edd9f3c0fa5f1e3da3bb401c9aa/third_party/WebKit/Source/core/dom/IntersectionObserverController.cpp
[modify] http://crrev.com/4d625ae5fa2b9edd9f3c0fa5f1e3da3bb401c9aa/third_party/WebKit/Source/core/dom/IntersectionObserverController.h

Project Member Comment 12 by bugdroid1@chromium.org, Jan 13 2016
Project Member Comment 13 by bugdroid1@chromium.org, Jan 16 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/546573354e47ddd01f491c382701fa51500f85eb

commit 546573354e47ddd01f491c382701fa51500f85eb
Author: szager <szager@chromium.org>
Date: Sat Jan 16 07:36:23 2016

Use registerWeakMembers to clean up IntersectionObserver.

Pre-oilpan, when the root disappears, it observers are cleaned up
in NodeIntersectionObserverData::dispose().

Post-oilpan, the cleanup will be done with registerWeakMembers.

BUG=540528
R=haraken@chromium.org,dcheng@chromium.org

Review URL: https://codereview.chromium.org/1591763003

Cr-Commit-Position: refs/heads/master@{#369948}

[modify] http://crrev.com/546573354e47ddd01f491c382701fa51500f85eb/third_party/WebKit/Source/core/dom/IntersectionObserver.cpp
[modify] http://crrev.com/546573354e47ddd01f491c382701fa51500f85eb/third_party/WebKit/Source/core/dom/IntersectionObserver.h

Project Member Comment 14 by bugdroid1@chromium.org, Jan 17 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7beaecbcac87a75ced26b4415fb84fc2cf559307

commit 7beaecbcac87a75ced26b4415fb84fc2cf559307
Author: sigbjornf <sigbjornf@opera.com>
Date: Sun Jan 17 21:50:42 2016

Revert of Use registerWeakMembers to clean up IntersectionObserver. (patchset #1 id:1 of https://codereview.chromium.org/1591763003/ )

Reason for revert:
Broke on some tests w/ Oilpan enabled,

 https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux%20Oilpan%20Leak/builds/16410

backing it out.

(see also https://codereview.chromium.org/1596333002/ )

Original issue's description:
> Use registerWeakMembers to clean up IntersectionObserver.
>
> Pre-oilpan, when the root disappears, it observers are cleaned up
> in NodeIntersectionObserverData::dispose().
>
> Post-oilpan, the cleanup will be done with registerWeakMembers.
>
> BUG=540528
> R=haraken@chromium.org,dcheng@chromium.org
>
> Committed: https://crrev.com/546573354e47ddd01f491c382701fa51500f85eb
> Cr-Commit-Position: refs/heads/master@{#369948}

TBR=dcheng@chromium.org,haraken@chromium.org,szager@chromium.org
BUG=540528
NOTRY=true

Review URL: https://codereview.chromium.org/1600243002

Cr-Commit-Position: refs/heads/master@{#369970}

[modify] http://crrev.com/7beaecbcac87a75ced26b4415fb84fc2cf559307/third_party/WebKit/Source/core/dom/IntersectionObserver.cpp
[modify] http://crrev.com/7beaecbcac87a75ced26b4415fb84fc2cf559307/third_party/WebKit/Source/core/dom/IntersectionObserver.h

Labels: -M-47
I don't think this made M-47.
Project Member Comment 17 by bugdroid1@chromium.org, Feb 2 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/34c8bfd59f4d8943df2620620cd00ae1d0fc1999

commit 34c8bfd59f4d8943df2620620cd00ae1d0fc1999
Author: szager <szager@chromium.org>
Date: Tue Feb 02 06:53:13 2016

Fix lazy test result printing.

Previously, description() and isSuccessfullyParsed() would add their
results to the top of the document immediately, even if
setPrintTestResultsLazily() was used.  This caused problems for
async tests that relied on precise document offset measurements
(such as the IntersectionObserver tests).

With this change, setPrintTestResultsLazily() will cause *all* test
output to be delayed until finishJSTest().

BUG=540528
R=ojan@chromium.org,esprehn@chromium.org

Review URL: https://codereview.chromium.org/1648123004

Cr-Commit-Position: refs/heads/master@{#372902}

[modify] http://crrev.com/34c8bfd59f4d8943df2620620cd00ae1d0fc1999/third_party/WebKit/LayoutTests/http/tests/security/contentSecurityPolicy/img-blocked-no-gc-crash-expected.txt
[modify] http://crrev.com/34c8bfd59f4d8943df2620620cd00ae1d0fc1999/third_party/WebKit/LayoutTests/intersection-observer/helper-functions.js
[modify] http://crrev.com/34c8bfd59f4d8943df2620620cd00ae1d0fc1999/third_party/WebKit/LayoutTests/intersection-observer/iframe-no-root.html
[modify] http://crrev.com/34c8bfd59f4d8943df2620620cd00ae1d0fc1999/third_party/WebKit/LayoutTests/intersection-observer/iframe-root.html
[modify] http://crrev.com/34c8bfd59f4d8943df2620620cd00ae1d0fc1999/third_party/WebKit/LayoutTests/intersection-observer/multiple-thresholds.html
[modify] http://crrev.com/34c8bfd59f4d8943df2620620cd00ae1d0fc1999/third_party/WebKit/LayoutTests/intersection-observer/root-margin.html
[modify] http://crrev.com/34c8bfd59f4d8943df2620620cd00ae1d0fc1999/third_party/WebKit/LayoutTests/intersection-observer/same-document-no-root.html
[modify] http://crrev.com/34c8bfd59f4d8943df2620620cd00ae1d0fc1999/third_party/WebKit/LayoutTests/intersection-observer/same-document-root.html
[modify] http://crrev.com/34c8bfd59f4d8943df2620620cd00ae1d0fc1999/third_party/WebKit/LayoutTests/resources/js-test.js

Project Member Comment 19 by bugdroid1@chromium.org, Feb 3 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4a43ad53c455dfa688d57da40300efe6c37e28ce

commit 4a43ad53c455dfa688d57da40300efe6c37e28ce
Author: szager <szager@chromium.org>
Date: Wed Feb 03 01:20:17 2016

Set rootBounds to null for cross-origin observations.

BUG=540528
R=ojan@chromium.org,esprehn@chromium.org

Review URL: https://codereview.chromium.org/1615573002

Cr-Commit-Position: refs/heads/master@{#373113}

[add] http://crrev.com/4a43ad53c455dfa688d57da40300efe6c37e28ce/third_party/WebKit/LayoutTests/http/tests/intersection-observer/iframe-cross-origin-expected.txt
[add] http://crrev.com/4a43ad53c455dfa688d57da40300efe6c37e28ce/third_party/WebKit/LayoutTests/http/tests/intersection-observer/iframe-cross-origin.html
[add] http://crrev.com/4a43ad53c455dfa688d57da40300efe6c37e28ce/third_party/WebKit/LayoutTests/http/tests/intersection-observer/resources/cross-origin-subframe.html
[add] http://crrev.com/4a43ad53c455dfa688d57da40300efe6c37e28ce/third_party/WebKit/LayoutTests/http/tests/intersection-observer/resources/helper-functions.js
[modify] http://crrev.com/4a43ad53c455dfa688d57da40300efe6c37e28ce/third_party/WebKit/Source/core/dom/IntersectionObservation.cpp
[modify] http://crrev.com/4a43ad53c455dfa688d57da40300efe6c37e28ce/third_party/WebKit/Source/core/dom/IntersectionObserverEntry.cpp
[modify] http://crrev.com/4a43ad53c455dfa688d57da40300efe6c37e28ce/third_party/WebKit/Source/core/dom/IntersectionObserverEntry.h
[modify] http://crrev.com/4a43ad53c455dfa688d57da40300efe6c37e28ce/third_party/WebKit/Source/core/dom/IntersectionObserverEntry.idl

Project Member Comment 20 by bugdroid1@chromium.org, Feb 3 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/45eb90b43b0053f12da21b7a76c9ff6647942efb

commit 45eb90b43b0053f12da21b7a76c9ff6647942efb
Author: szager <szager@chromium.org>
Date: Wed Feb 03 20:35:37 2016

Use DOMHighResTimeStamp for notification time.

Note that the time is relative to the execution context that created the observer, *not* the tracking document.

BUG=540528
R=ojan@chromium.org,esprehn@chromium.org

Review URL: https://codereview.chromium.org/1613543002

Cr-Commit-Position: refs/heads/master@{#373324}

[add] http://crrev.com/45eb90b43b0053f12da21b7a76c9ff6647942efb/third_party/WebKit/LayoutTests/intersection-observer/timestamp-expected.txt
[add] http://crrev.com/45eb90b43b0053f12da21b7a76c9ff6647942efb/third_party/WebKit/LayoutTests/intersection-observer/timestamp.html
[add] http://crrev.com/45eb90b43b0053f12da21b7a76c9ff6647942efb/third_party/WebKit/LayoutTests/resources/intersection-observer-timestamp-subframe.html
[modify] http://crrev.com/45eb90b43b0053f12da21b7a76c9ff6647942efb/third_party/WebKit/Source/core/dom/IntersectionObservation.cpp
[modify] http://crrev.com/45eb90b43b0053f12da21b7a76c9ff6647942efb/third_party/WebKit/Source/core/dom/IntersectionObservation.h
[modify] http://crrev.com/45eb90b43b0053f12da21b7a76c9ff6647942efb/third_party/WebKit/Source/core/dom/IntersectionObserver.cpp
[modify] http://crrev.com/45eb90b43b0053f12da21b7a76c9ff6647942efb/third_party/WebKit/Source/core/dom/IntersectionObserver.h
[modify] http://crrev.com/45eb90b43b0053f12da21b7a76c9ff6647942efb/third_party/WebKit/Source/core/dom/IntersectionObserverController.cpp
[modify] http://crrev.com/45eb90b43b0053f12da21b7a76c9ff6647942efb/third_party/WebKit/Source/core/dom/IntersectionObserverEntry.cpp
[modify] http://crrev.com/45eb90b43b0053f12da21b7a76c9ff6647942efb/third_party/WebKit/Source/core/dom/IntersectionObserverEntry.h

Project Member Comment 21 by bugdroid1@chromium.org, Feb 5 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6d28dc728375473c3f0bde8ccbae36ee493a812b

commit 6d28dc728375473c3f0bde8ccbae36ee493a812b
Author: szager <szager@chromium.org>
Date: Fri Feb 05 09:17:23 2016

Implement attribute getters for IntersectionObserver.

BUG=540528
R=ojan@chromium.org,esprehn@chromium.org

Review URL: https://codereview.chromium.org/1669043002

Cr-Commit-Position: refs/heads/master@{#373775}

[add] http://crrev.com/6d28dc728375473c3f0bde8ccbae36ee493a812b/third_party/WebKit/LayoutTests/intersection-observer/observer-attributes-expected.txt
[add] http://crrev.com/6d28dc728375473c3f0bde8ccbae36ee493a812b/third_party/WebKit/LayoutTests/intersection-observer/observer-attributes.html
[modify] http://crrev.com/6d28dc728375473c3f0bde8ccbae36ee493a812b/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt
[modify] http://crrev.com/6d28dc728375473c3f0bde8ccbae36ee493a812b/third_party/WebKit/Source/core/dom/IntersectionObservation.cpp
[modify] http://crrev.com/6d28dc728375473c3f0bde8ccbae36ee493a812b/third_party/WebKit/Source/core/dom/IntersectionObserver.cpp
[modify] http://crrev.com/6d28dc728375473c3f0bde8ccbae36ee493a812b/third_party/WebKit/Source/core/dom/IntersectionObserver.h
[modify] http://crrev.com/6d28dc728375473c3f0bde8ccbae36ee493a812b/third_party/WebKit/Source/core/dom/IntersectionObserver.idl
[modify] http://crrev.com/6d28dc728375473c3f0bde8ccbae36ee493a812b/third_party/WebKit/Source/core/dom/IntersectionObserverController.cpp

Project Member Comment 22 by bugdroid1@chromium.org, Feb 11 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/099be5c161399ca0d0304e5a187b7a93e7b948f4

commit 099be5c161399ca0d0304e5a187b7a93e7b948f4
Author: szager <szager@chromium.org>
Date: Thu Feb 11 21:36:54 2016

Enforce containing block requirement for IntersectionObserver.

Context: https://github.com/WICG/IntersectionObserver/issues/84

Only generate notifications if the target Element is a descendant
of the root in the containing block chain.

Also consolidated all of the sanity-checking code into computeGeometry().

BUG=540528
R=ojan@chromium.org,esprehn@chromium.org

Review URL: https://codereview.chromium.org/1672273002

Cr-Commit-Position: refs/heads/master@{#375000}

[add] http://crrev.com/099be5c161399ca0d0304e5a187b7a93e7b948f4/third_party/WebKit/LayoutTests/intersection-observer/containing-block-expected.txt
[add] http://crrev.com/099be5c161399ca0d0304e5a187b7a93e7b948f4/third_party/WebKit/LayoutTests/intersection-observer/containing-block.html
[delete] http://crrev.com/d77373d2aea7656fff32833c1112997f2eddcfb4/third_party/WebKit/LayoutTests/intersection-observer/iframe-root-expected.txt
[delete] http://crrev.com/d77373d2aea7656fff32833c1112997f2eddcfb4/third_party/WebKit/LayoutTests/intersection-observer/iframe-root.html
[modify] http://crrev.com/099be5c161399ca0d0304e5a187b7a93e7b948f4/third_party/WebKit/Source/core/dom/IntersectionObservation.cpp
[modify] http://crrev.com/099be5c161399ca0d0304e5a187b7a93e7b948f4/third_party/WebKit/Source/core/dom/IntersectionObservation.h
[modify] http://crrev.com/099be5c161399ca0d0304e5a187b7a93e7b948f4/third_party/WebKit/Source/core/dom/IntersectionObserver.cpp
[modify] http://crrev.com/099be5c161399ca0d0304e5a187b7a93e7b948f4/third_party/WebKit/Source/core/dom/IntersectionObserver.h
[modify] http://crrev.com/099be5c161399ca0d0304e5a187b7a93e7b948f4/third_party/WebKit/Source/core/dom/NodeIntersectionObserverData.cpp

If I don't store a hard reference to the IntersectionObserver, then sooner or later it gets garbage collected, and stops working.

eg:
new IntersectionObserver(delta => {
 console.log(delta);
}).observe( document.getElementById('menu') );
Regarding comment #23: we're very careful not to garbage collect an IntersectionObserver while it is observing at least one target, even if you don't store a javascript reference to it.  The behavior you're describing may be a bug in the implementation.

Feel free to file a separate bug, hopefully including steps to reproduce the problem.
I want to play with it a bit longer before filing a bug, but the behaviour I'm seeing:
Given two identical IntersectionObserver observing the same DOM element, the one, whichever one, is held as a reference continues to operate correctly and indefinitely.
The unheld IntersectionObserver mostly fires only once, but sometimes works for a few seconds until it ceases to function.
Project Member Comment 26 by bugdroid1@chromium.org, Mar 1 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d151332e6b19119aff8ab7ef05b602ead73fb090

commit d151332e6b19119aff8ab7ef05b602ead73fb090
Author: szager <szager@chromium.org>
Date: Tue Mar 01 03:26:25 2016

IntersectionObserver: fix exceptions and handling of cross-origin root margin

BUG=540528

Review URL: https://codereview.chromium.org/1740923004

Cr-Commit-Position: refs/heads/master@{#378387}

[modify] https://crrev.com/d151332e6b19119aff8ab7ef05b602ead73fb090/third_party/WebKit/LayoutTests/http/tests/intersection-observer/resources/cross-origin-subframe.html
[add] https://crrev.com/d151332e6b19119aff8ab7ef05b602ead73fb090/third_party/WebKit/LayoutTests/intersection-observer/observer-exceptions-expected.txt
[add] https://crrev.com/d151332e6b19119aff8ab7ef05b602ead73fb090/third_party/WebKit/LayoutTests/intersection-observer/observer-exceptions.html
[modify] https://crrev.com/d151332e6b19119aff8ab7ef05b602ead73fb090/third_party/WebKit/LayoutTests/intersection-observer/root-margin-expected.txt
[modify] https://crrev.com/d151332e6b19119aff8ab7ef05b602ead73fb090/third_party/WebKit/LayoutTests/intersection-observer/root-margin.html
[modify] https://crrev.com/d151332e6b19119aff8ab7ef05b602ead73fb090/third_party/WebKit/Source/bindings/core/v8/custom/V8IntersectionObserverCustom.cpp
[modify] https://crrev.com/d151332e6b19119aff8ab7ef05b602ead73fb090/third_party/WebKit/Source/core/dom/IntersectionObservation.cpp
[modify] https://crrev.com/d151332e6b19119aff8ab7ef05b602ead73fb090/third_party/WebKit/Source/core/dom/IntersectionObservation.h
[modify] https://crrev.com/d151332e6b19119aff8ab7ef05b602ead73fb090/third_party/WebKit/Source/core/dom/IntersectionObserver.cpp
[modify] https://crrev.com/d151332e6b19119aff8ab7ef05b602ead73fb090/third_party/WebKit/Source/core/dom/IntersectionObserver.h
[modify] https://crrev.com/d151332e6b19119aff8ab7ef05b602ead73fb090/third_party/WebKit/Source/core/dom/IntersectionObserver.idl

Project Member Comment 27 by bugdroid1@chromium.org, Mar 2 2016
Labels: Merge-Merged-master1
The following revision refers to this bug:
  https://chrome-internal.googlesource.com/bling/chromium.git/+/d151332e6b19119aff8ab7ef05b602ead73fb090

commit d151332e6b19119aff8ab7ef05b602ead73fb090
Author: szager <szager@chromium.org>
Date: Tue Mar 01 03:26:25 2016

Labels: -OWP-Standards-MailingList OWP-Standards-UnofficialSpec M-51 Launch-Accessibility-NA
Status: Started
Project Member Comment 29 by bugdroid1@chromium.org, Mar 10 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2c168f38b5c0e4e50374be4e54c44901c60738a9

commit 2c168f38b5c0e4e50374be4e54c44901c60738a9
Author: szager <szager@chromium.org>
Date: Thu Mar 10 01:04:36 2016

IntersectionObserver: use an idle callback to send notifications.

With this change, the tests can no longer use setTimeout(0) to wait
for notifications to be delivered.  Instead, use takeRecords() to
proactively grab notifications right after they are generated
(typically in a RAF right after a layout change).

BUG=540528
R=ojan@chromium.org,haraken@chromium.org

Review URL: https://codereview.chromium.org/1776493002

Cr-Commit-Position: refs/heads/master@{#380278}

[modify] https://crrev.com/2c168f38b5c0e4e50374be4e54c44901c60738a9/third_party/WebKit/LayoutTests/http/tests/intersection-observer/iframe-cross-origin.html
[modify] https://crrev.com/2c168f38b5c0e4e50374be4e54c44901c60738a9/third_party/WebKit/LayoutTests/http/tests/intersection-observer/resources/cross-origin-subframe.html
[add] https://crrev.com/2c168f38b5c0e4e50374be4e54c44901c60738a9/third_party/WebKit/LayoutTests/intersection-observer/README
[modify] https://crrev.com/2c168f38b5c0e4e50374be4e54c44901c60738a9/third_party/WebKit/LayoutTests/intersection-observer/containing-block.html
[modify] https://crrev.com/2c168f38b5c0e4e50374be4e54c44901c60738a9/third_party/WebKit/LayoutTests/intersection-observer/iframe-no-root-expected.txt
[modify] https://crrev.com/2c168f38b5c0e4e50374be4e54c44901c60738a9/third_party/WebKit/LayoutTests/intersection-observer/iframe-no-root.html
[modify] https://crrev.com/2c168f38b5c0e4e50374be4e54c44901c60738a9/third_party/WebKit/LayoutTests/intersection-observer/multiple-thresholds-expected.txt
[modify] https://crrev.com/2c168f38b5c0e4e50374be4e54c44901c60738a9/third_party/WebKit/LayoutTests/intersection-observer/multiple-thresholds.html
[modify] https://crrev.com/2c168f38b5c0e4e50374be4e54c44901c60738a9/third_party/WebKit/LayoutTests/intersection-observer/observer-without-js-reference.html
[modify] https://crrev.com/2c168f38b5c0e4e50374be4e54c44901c60738a9/third_party/WebKit/LayoutTests/intersection-observer/root-margin-expected.txt
[modify] https://crrev.com/2c168f38b5c0e4e50374be4e54c44901c60738a9/third_party/WebKit/LayoutTests/intersection-observer/root-margin.html
[modify] https://crrev.com/2c168f38b5c0e4e50374be4e54c44901c60738a9/third_party/WebKit/LayoutTests/intersection-observer/same-document-no-root.html
[modify] https://crrev.com/2c168f38b5c0e4e50374be4e54c44901c60738a9/third_party/WebKit/LayoutTests/intersection-observer/same-document-root-expected.txt
[modify] https://crrev.com/2c168f38b5c0e4e50374be4e54c44901c60738a9/third_party/WebKit/LayoutTests/intersection-observer/same-document-root.html
[modify] https://crrev.com/2c168f38b5c0e4e50374be4e54c44901c60738a9/third_party/WebKit/LayoutTests/intersection-observer/same-document-zero-size-target.html
[modify] https://crrev.com/2c168f38b5c0e4e50374be4e54c44901c60738a9/third_party/WebKit/LayoutTests/intersection-observer/timestamp.html
[modify] https://crrev.com/2c168f38b5c0e4e50374be4e54c44901c60738a9/third_party/WebKit/Source/core/dom/IdleRequestCallback.h
[modify] https://crrev.com/2c168f38b5c0e4e50374be4e54c44901c60738a9/third_party/WebKit/Source/core/dom/IntersectionObserverController.cpp
[modify] https://crrev.com/2c168f38b5c0e4e50374be4e54c44901c60738a9/third_party/WebKit/Source/core/dom/IntersectionObserverController.h

Project Member Comment 30 by bugdroid1@chromium.org, Mar 10 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/57644d439ce9bfee85efedff9f27a31e3e0bd3f5

commit 57644d439ce9bfee85efedff9f27a31e3e0bd3f5
Author: sigbjornf <sigbjornf@opera.com>
Date: Thu Mar 10 08:40:27 2016

Revert of IntersectionObserver: use an idle callback to send notifications. (patchset #6 id:100001 of https://codereview.chromium.org/1776493002/ )

Reason for revert:
Tests added are leaking, https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux%20Leak/builds/18011

Original issue's description:
> IntersectionObserver: use an idle callback to send notifications.
>
> With this change, the tests can no longer use setTimeout(0) to wait
> for notifications to be delivered.  Instead, use takeRecords() to
> proactively grab notifications right after they are generated
> (typically in a RAF right after a layout change).
>
> BUG=540528
> R=ojan@chromium.org,haraken@chromium.org
>
> Committed: https://crrev.com/2c168f38b5c0e4e50374be4e54c44901c60738a9
> Cr-Commit-Position: refs/heads/master@{#380278}

TBR=ojan@chromium.org,haraken@chromium.org,skyostil@chromium.org,szager@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=540528

Review URL: https://codereview.chromium.org/1780163002

Cr-Commit-Position: refs/heads/master@{#380375}

[modify] https://crrev.com/57644d439ce9bfee85efedff9f27a31e3e0bd3f5/third_party/WebKit/LayoutTests/http/tests/intersection-observer/iframe-cross-origin.html
[modify] https://crrev.com/57644d439ce9bfee85efedff9f27a31e3e0bd3f5/third_party/WebKit/LayoutTests/http/tests/intersection-observer/resources/cross-origin-subframe.html
[delete] https://crrev.com/57df601ed904f5b4ccc99c786d41d467d5164a21/third_party/WebKit/LayoutTests/intersection-observer/README
[modify] https://crrev.com/57644d439ce9bfee85efedff9f27a31e3e0bd3f5/third_party/WebKit/LayoutTests/intersection-observer/containing-block.html
[modify] https://crrev.com/57644d439ce9bfee85efedff9f27a31e3e0bd3f5/third_party/WebKit/LayoutTests/intersection-observer/iframe-no-root-expected.txt
[modify] https://crrev.com/57644d439ce9bfee85efedff9f27a31e3e0bd3f5/third_party/WebKit/LayoutTests/intersection-observer/iframe-no-root.html
[modify] https://crrev.com/57644d439ce9bfee85efedff9f27a31e3e0bd3f5/third_party/WebKit/LayoutTests/intersection-observer/multiple-thresholds-expected.txt
[modify] https://crrev.com/57644d439ce9bfee85efedff9f27a31e3e0bd3f5/third_party/WebKit/LayoutTests/intersection-observer/multiple-thresholds.html
[modify] https://crrev.com/57644d439ce9bfee85efedff9f27a31e3e0bd3f5/third_party/WebKit/LayoutTests/intersection-observer/observer-without-js-reference.html
[modify] https://crrev.com/57644d439ce9bfee85efedff9f27a31e3e0bd3f5/third_party/WebKit/LayoutTests/intersection-observer/root-margin-expected.txt
[modify] https://crrev.com/57644d439ce9bfee85efedff9f27a31e3e0bd3f5/third_party/WebKit/LayoutTests/intersection-observer/root-margin.html
[modify] https://crrev.com/57644d439ce9bfee85efedff9f27a31e3e0bd3f5/third_party/WebKit/LayoutTests/intersection-observer/same-document-no-root.html
[modify] https://crrev.com/57644d439ce9bfee85efedff9f27a31e3e0bd3f5/third_party/WebKit/LayoutTests/intersection-observer/same-document-root-expected.txt
[modify] https://crrev.com/57644d439ce9bfee85efedff9f27a31e3e0bd3f5/third_party/WebKit/LayoutTests/intersection-observer/same-document-root.html
[modify] https://crrev.com/57644d439ce9bfee85efedff9f27a31e3e0bd3f5/third_party/WebKit/LayoutTests/intersection-observer/same-document-zero-size-target.html
[modify] https://crrev.com/57644d439ce9bfee85efedff9f27a31e3e0bd3f5/third_party/WebKit/LayoutTests/intersection-observer/timestamp.html
[modify] https://crrev.com/57644d439ce9bfee85efedff9f27a31e3e0bd3f5/third_party/WebKit/Source/core/dom/IdleRequestCallback.h
[modify] https://crrev.com/57644d439ce9bfee85efedff9f27a31e3e0bd3f5/third_party/WebKit/Source/core/dom/IntersectionObserverController.cpp
[modify] https://crrev.com/57644d439ce9bfee85efedff9f27a31e3e0bd3f5/third_party/WebKit/Source/core/dom/IntersectionObserverController.h

Blockedon: v8:4846
Project Member Comment 33 by bugdroid1@chromium.org, Mar 25 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1275d3aca4b5dab9bdaeac8255fd54fe58649182

commit 1275d3aca4b5dab9bdaeac8255fd54fe58649182
Author: szager <szager@chromium.org>
Date: Fri Mar 25 21:41:57 2016

IntersectionObserver: use edge-inclusive geometry for intersections.

Split this out from:

https://codereview.chromium.org/1817693002/

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

Review URL: https://codereview.chromium.org/1826323002

Cr-Commit-Position: refs/heads/master@{#383371}

[add] https://crrev.com/1275d3aca4b5dab9bdaeac8255fd54fe58649182/third_party/WebKit/LayoutTests/intersection-observer/edge-inclusive-intersection-expected.txt
[add] https://crrev.com/1275d3aca4b5dab9bdaeac8255fd54fe58649182/third_party/WebKit/LayoutTests/intersection-observer/edge-inclusive-intersection.html
[modify] https://crrev.com/1275d3aca4b5dab9bdaeac8255fd54fe58649182/third_party/WebKit/LayoutTests/intersection-observer/same-document-zero-size-target-expected.txt
[modify] https://crrev.com/1275d3aca4b5dab9bdaeac8255fd54fe58649182/third_party/WebKit/LayoutTests/intersection-observer/same-document-zero-size-target.html
[modify] https://crrev.com/1275d3aca4b5dab9bdaeac8255fd54fe58649182/third_party/WebKit/Source/core/dom/IntersectionObservation.cpp
[modify] https://crrev.com/1275d3aca4b5dab9bdaeac8255fd54fe58649182/third_party/WebKit/Source/core/dom/IntersectionObservation.h
[modify] https://crrev.com/1275d3aca4b5dab9bdaeac8255fd54fe58649182/third_party/WebKit/Source/core/dom/IntersectionObserver.cpp

Project Member Comment 34 by bugdroid1@chromium.org, Apr 4 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4cf47cb23a655b02d36e64ea3f986ff2900f5bdd

commit 4cf47cb23a655b02d36e64ea3f986ff2900f5bdd
Author: szager <szager@chromium.org>
Date: Mon Apr 04 21:53:41 2016

IntersectionObserver: use an idle callback to send notifications.

Re-landing after original:

https://codereview.chromium.org/1780163002/

... was reverted by:

https://codereview.chromium.org/1776493002/

With this change, the tests can no longer use setTimeout(0) to wait
for notifications to be delivered.  Instead, use takeRecords() to
proactively grab notifications right after they are generated
(typically in a RAF right after a layout change).

These tests tickle a bug in ScriptedIdleTaskController, hence the
LeakExpectations entries.

BUG=540528
R=ojan@chromium.org,haraken@chromium.org,sigbjornf@opera.com

Review URL: https://codereview.chromium.org/1806133002

Cr-Commit-Position: refs/heads/master@{#385021}

[modify] https://crrev.com/4cf47cb23a655b02d36e64ea3f986ff2900f5bdd/third_party/WebKit/LayoutTests/LeakExpectations
[modify] https://crrev.com/4cf47cb23a655b02d36e64ea3f986ff2900f5bdd/third_party/WebKit/LayoutTests/http/tests/intersection-observer/iframe-cross-origin.html
[modify] https://crrev.com/4cf47cb23a655b02d36e64ea3f986ff2900f5bdd/third_party/WebKit/LayoutTests/http/tests/intersection-observer/resources/cross-origin-subframe.html
[add] https://crrev.com/4cf47cb23a655b02d36e64ea3f986ff2900f5bdd/third_party/WebKit/LayoutTests/intersection-observer/README
[modify] https://crrev.com/4cf47cb23a655b02d36e64ea3f986ff2900f5bdd/third_party/WebKit/LayoutTests/intersection-observer/containing-block.html
[modify] https://crrev.com/4cf47cb23a655b02d36e64ea3f986ff2900f5bdd/third_party/WebKit/LayoutTests/intersection-observer/iframe-no-root-expected.txt
[modify] https://crrev.com/4cf47cb23a655b02d36e64ea3f986ff2900f5bdd/third_party/WebKit/LayoutTests/intersection-observer/iframe-no-root.html
[modify] https://crrev.com/4cf47cb23a655b02d36e64ea3f986ff2900f5bdd/third_party/WebKit/LayoutTests/intersection-observer/multiple-thresholds-expected.txt
[modify] https://crrev.com/4cf47cb23a655b02d36e64ea3f986ff2900f5bdd/third_party/WebKit/LayoutTests/intersection-observer/multiple-thresholds.html
[modify] https://crrev.com/4cf47cb23a655b02d36e64ea3f986ff2900f5bdd/third_party/WebKit/LayoutTests/intersection-observer/observer-without-js-reference.html
[modify] https://crrev.com/4cf47cb23a655b02d36e64ea3f986ff2900f5bdd/third_party/WebKit/LayoutTests/intersection-observer/root-margin-expected.txt
[modify] https://crrev.com/4cf47cb23a655b02d36e64ea3f986ff2900f5bdd/third_party/WebKit/LayoutTests/intersection-observer/root-margin.html
[modify] https://crrev.com/4cf47cb23a655b02d36e64ea3f986ff2900f5bdd/third_party/WebKit/LayoutTests/intersection-observer/same-document-no-root.html
[modify] https://crrev.com/4cf47cb23a655b02d36e64ea3f986ff2900f5bdd/third_party/WebKit/LayoutTests/intersection-observer/same-document-root-expected.txt
[modify] https://crrev.com/4cf47cb23a655b02d36e64ea3f986ff2900f5bdd/third_party/WebKit/LayoutTests/intersection-observer/same-document-root.html
[modify] https://crrev.com/4cf47cb23a655b02d36e64ea3f986ff2900f5bdd/third_party/WebKit/LayoutTests/intersection-observer/same-document-zero-size-target-expected.txt
[modify] https://crrev.com/4cf47cb23a655b02d36e64ea3f986ff2900f5bdd/third_party/WebKit/LayoutTests/intersection-observer/same-document-zero-size-target.html
[modify] https://crrev.com/4cf47cb23a655b02d36e64ea3f986ff2900f5bdd/third_party/WebKit/LayoutTests/intersection-observer/timestamp-expected.txt
[modify] https://crrev.com/4cf47cb23a655b02d36e64ea3f986ff2900f5bdd/third_party/WebKit/LayoutTests/intersection-observer/timestamp.html
[modify] https://crrev.com/4cf47cb23a655b02d36e64ea3f986ff2900f5bdd/third_party/WebKit/Source/core/dom/IdleRequestCallback.h
[modify] https://crrev.com/4cf47cb23a655b02d36e64ea3f986ff2900f5bdd/third_party/WebKit/Source/core/dom/IntersectionObserverController.cpp
[modify] https://crrev.com/4cf47cb23a655b02d36e64ea3f986ff2900f5bdd/third_party/WebKit/Source/core/dom/IntersectionObserverController.h

Summary: Intersection Observer (was: Intent to Implement Intersection Observer)
Project Member Comment 38 by bugdroid1@chromium.org, Apr 12 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/22392bf05de160a9f46bcb71c67a3dd5d4d8ba16

commit 22392bf05de160a9f46bcb71c67a3dd5d4d8ba16
Author: szager <szager@chromium.org>
Date: Tue Apr 12 00:03:59 2016

Add IntersectionObserverEntry.intersectionRatio attribute.

BUG=540528
R=ojan@chromium.org,leviw@chromium.org

Review URL: https://codereview.chromium.org/1872973002

Cr-Commit-Position: refs/heads/master@{#386525}

[modify] https://crrev.com/22392bf05de160a9f46bcb71c67a3dd5d4d8ba16/third_party/WebKit/LayoutTests/intersection-observer/helper-functions.js
[modify] https://crrev.com/22392bf05de160a9f46bcb71c67a3dd5d4d8ba16/third_party/WebKit/LayoutTests/intersection-observer/multiple-thresholds-expected.txt
[modify] https://crrev.com/22392bf05de160a9f46bcb71c67a3dd5d4d8ba16/third_party/WebKit/LayoutTests/intersection-observer/multiple-thresholds.html
[modify] https://crrev.com/22392bf05de160a9f46bcb71c67a3dd5d4d8ba16/third_party/WebKit/LayoutTests/virtual/stable/webexposed/global-interface-listing-expected.txt
[modify] https://crrev.com/22392bf05de160a9f46bcb71c67a3dd5d4d8ba16/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt
[modify] https://crrev.com/22392bf05de160a9f46bcb71c67a3dd5d4d8ba16/third_party/WebKit/Source/core/dom/IntersectionObservation.cpp
[modify] https://crrev.com/22392bf05de160a9f46bcb71c67a3dd5d4d8ba16/third_party/WebKit/Source/core/dom/IntersectionObserverEntry.cpp
[modify] https://crrev.com/22392bf05de160a9f46bcb71c67a3dd5d4d8ba16/third_party/WebKit/Source/core/dom/IntersectionObserverEntry.h
[modify] https://crrev.com/22392bf05de160a9f46bcb71c67a3dd5d4d8ba16/third_party/WebKit/Source/core/dom/IntersectionObserverEntry.idl

Labels: Merge-Request-51
Requesting merge to 51 of this change:

https://codereview.chromium.org/1872973002/

This feature is shipping for the first time in 51, and that patch is necessary for the implementation to match the spec.
Comment 40 by tin...@google.com, Apr 13 2016
Labels: -Merge-Request-51 Merge-Approved-51 Hotlist-Merge-Approved
Your change meets the bar and is auto-approved for M51 (branch: 2704)
Project Member Comment 41 by bugdroid1@chromium.org, Apr 13 2016
Labels: -merge-approved-51 merge-merged-2704
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4770145fafc4a0b0fb0463cbfc84b1a564848a76

commit 4770145fafc4a0b0fb0463cbfc84b1a564848a76
Author: szager <szager@chromium.org>
Date: Wed Apr 13 19:13:58 2016

Add IntersectionObserverEntry.intersectionRatio attribute.

Merge to 51; original CL:

https://codereview.chromium.org/1872973002

BUG=540528
TBR=ojan@chromium.org
NOTRY=true
NOPRESUBMIT=true

Review URL: https://codereview.chromium.org/1879323003

Cr-Commit-Position: refs/branch-heads/2704@{#32}
Cr-Branched-From: 6e53600def8f60d8c632fadc70d7c1939ccea347-refs/heads/master@{#386251}

[modify] https://crrev.com/4770145fafc4a0b0fb0463cbfc84b1a564848a76/third_party/WebKit/LayoutTests/intersection-observer/helper-functions.js
[modify] https://crrev.com/4770145fafc4a0b0fb0463cbfc84b1a564848a76/third_party/WebKit/LayoutTests/intersection-observer/multiple-thresholds-expected.txt
[modify] https://crrev.com/4770145fafc4a0b0fb0463cbfc84b1a564848a76/third_party/WebKit/LayoutTests/intersection-observer/multiple-thresholds.html
[modify] https://crrev.com/4770145fafc4a0b0fb0463cbfc84b1a564848a76/third_party/WebKit/LayoutTests/virtual/stable/webexposed/global-interface-listing-expected.txt
[modify] https://crrev.com/4770145fafc4a0b0fb0463cbfc84b1a564848a76/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt
[modify] https://crrev.com/4770145fafc4a0b0fb0463cbfc84b1a564848a76/third_party/WebKit/Source/core/dom/IntersectionObservation.cpp
[modify] https://crrev.com/4770145fafc4a0b0fb0463cbfc84b1a564848a76/third_party/WebKit/Source/core/dom/IntersectionObserverEntry.cpp
[modify] https://crrev.com/4770145fafc4a0b0fb0463cbfc84b1a564848a76/third_party/WebKit/Source/core/dom/IntersectionObserverEntry.h
[modify] https://crrev.com/4770145fafc4a0b0fb0463cbfc84b1a564848a76/third_party/WebKit/Source/core/dom/IntersectionObserverEntry.idl

Labels: -merge-merged-2704 Merge-Request-51
Requesting merge to M51 for:

https://codereview.chromium.org/1889053002

This is a bug fix for an important edge case.
Comment 44 by tin...@google.com, Apr 16 2016
Labels: -Merge-Request-51 Merge-Approved-51
Your change meets the bar and is auto-approved for M51 (branch: 2704)
Comment 45 Deleted
Please merge your change to M51 branch 2704 ASAP (before 5:00 PM PST, today) so we can take it in for M51 last Dev release tomorrow.
Project Member Comment 47 by bugdroid1@chromium.org, Apr 18 2016
Labels: -merge-approved-51 merge-merged-2704
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5d7d30d174b0df5056e01ec3c7c07008f5ca1974

commit 5d7d30d174b0df5056e01ec3c7c07008f5ca1974
Author: szager <szager@chromium.org>
Date: Mon Apr 18 18:41:20 2016

IntersectionObserver: notify when root or target is removed.

If root and target were previously intersecting, and then DOM is
modified to remove root or target, or to make target not a
containing block descendant of root, send a notification.

Merge to M51; original patch:

https://codereview.chromium.org/1889053002

BUG=540528
TBR=ojan@chromium.org
NOTRY=true
NOPRESUBMIT=true

Review URL: https://codereview.chromium.org/1893423003

Cr-Commit-Position: refs/branch-heads/2704@{#100}
Cr-Branched-From: 6e53600def8f60d8c632fadc70d7c1939ccea347-refs/heads/master@{#386251}

[add] https://crrev.com/5d7d30d174b0df5056e01ec3c7c07008f5ca1974/third_party/WebKit/LayoutTests/intersection-observer/remove-element-expected.txt
[add] https://crrev.com/5d7d30d174b0df5056e01ec3c7c07008f5ca1974/third_party/WebKit/LayoutTests/intersection-observer/remove-element.html
[modify] https://crrev.com/5d7d30d174b0df5056e01ec3c7c07008f5ca1974/third_party/WebKit/Source/core/dom/IntersectionObservation.cpp
[modify] https://crrev.com/5d7d30d174b0df5056e01ec3c7c07008f5ca1974/third_party/WebKit/Source/core/dom/IntersectionObservation.h
[modify] https://crrev.com/5d7d30d174b0df5056e01ec3c7c07008f5ca1974/third_party/WebKit/Source/core/dom/IntersectionObserver.cpp

Project Member Comment 48 by bugdroid1@chromium.org, Apr 21 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6d13f01a3151eda3c016268463eca179d93cf250

commit 6d13f01a3151eda3c016268463eca179d93cf250
Author: kjellander <kjellander@chromium.org>
Date: Thu Apr 21 14:52:00 2016

Update expectations for failing webkit_tests on WebKit Linux Leak

intersection-observer/remove-element.html seems to leak and
crbug.com/603728 virtual/gpu-rasterization/fast/images/color-profile-filter.html
experiences timeouts.

These seems to have started at https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux%20Leak/builds/18962 but it could also be earlier changes.

BUG=540528, 603728 
TBR=ericrk@chromium.org,mpb@chromium.org

Review URL: https://codereview.chromium.org/1911683003

Cr-Commit-Position: refs/heads/master@{#388773}

[modify] https://crrev.com/6d13f01a3151eda3c016268463eca179d93cf250/third_party/WebKit/LayoutTests/TestExpectations

Blockedon: 595155
I raised 3 issues:

issue 617392
issue 617393
issue 617396
Thank you for the bug reports, I will look into them.
issue 617546
Project Member Comment 55 by bugdroid1@chromium.org, Jun 22 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/bfce932785e5b2253d0a4caa5f115338d1b19443

commit bfce932785e5b2253d0a4caa5f115338d1b19443
Author: szager <szager@chromium.org>
Date: Wed Jun 22 11:59:48 2016

Add a trace event for IntersectionObserver computing intersections.

BUG=540528
R=eae@chromium.org,ojan@chromium.org

Review-Url: https://codereview.chromium.org/2089003002
Cr-Commit-Position: refs/heads/master@{#401256}

[modify] https://crrev.com/bfce932785e5b2253d0a4caa5f115338d1b19443/third_party/WebKit/Source/core/dom/IntersectionObserverController.cpp

Blockedon: 674519
Sign in to add a comment