<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>197891</bug_id>
          
          <creation_ts>2019-05-14 12:57:06 -0700</creation_ts>
          <short_desc>[IntersectionObserver] Regression: No initial observation when nothing else triggers rendering</short_desc>
          <delta_ts>2019-05-30 13:39:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=198382</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ali Juma">ajuma</reporter>
          <assigned_to name="Ali Juma">ajuma</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>pvollan</cc>
    
    <cc>rohitrao</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1536201</commentid>
    <comment_count>0</comment_count>
      <attachid>369885</attachid>
    <who name="Ali Juma">ajuma</who>
    <bug_when>2019-05-14 12:57:06 -0700</bug_when>
    <thetext>Created attachment 369885
Test case

After the rAF timing changes in bug 177484 (which are great news overall, bringing IntersectionObserver timing in-line with the spec and other browsers), an initial observation isn&apos;t fired after a call to IntersectionObserver::observe, until something else triggers rendering.

It should be enough to add a call to Document::scheduleRenderingUpdate at the end of IntersectionObserver::observe (this would correspond to &quot;Schedule an iteration of the event loop&quot; in https://w3c.github.io/IntersectionObserver/#dom-intersectionobserver-observe).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1536211</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-05-14 13:05:49 -0700</bug_when>
    <thetext>Did we not have tests that detected this, or did we skip them?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1536215</commentid>
    <comment_count>2</comment_count>
    <who name="Ali Juma">ajuma</who>
    <bug_when>2019-05-14 13:25:31 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #1)
&gt; Did we not have tests that detected this, or did we skip them?

Most of our tests (or at least, most of the WPTs) use rAF to wait for observations (which triggers a rendering update), or seem to call |observe| early enough that a rendering update will be scheduled for the initial layout of the page.

Speaking of skipped tests, the rAF changes seem to have fixed all of the flakiness we were seeing on the Mac Debug bots, so I&apos;ll go ahead and update those expectations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1536553</commentid>
    <comment_count>3</comment_count>
    <who name="Ali Juma">ajuma</who>
    <bug_when>2019-05-15 13:03:14 -0700</bug_when>
    <thetext>It turns out that at least one of the reasons that no existing test caught this is that the speculative tiling timer and the tile size change timer trigger flushes (and rendering updates) even after the page is loaded and nothing is changing. So calls to IntersectionObserver::observe that happen within ~1 second of page load will work properly even though IntersectionObserver isn’t itself scheduling a rendering update.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1536554</commentid>
    <comment_count>4</comment_count>
      <attachid>369985</attachid>
    <who name="Ali Juma">ajuma</who>
    <bug_when>2019-05-15 13:03:25 -0700</bug_when>
    <thetext>Created attachment 369985
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1536786</commentid>
    <comment_count>5</comment_count>
      <attachid>369985</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-16 06:55:02 -0700</bug_when>
    <thetext>Comment on attachment 369985
Patch

Clearing flags on attachment: 369985

Committed r245396: &lt;https://trac.webkit.org/changeset/245396&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1536787</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-16 06:55:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1536790</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-05-16 06:56:28 -0700</bug_when>
    <thetext>&lt;rdar://problem/50851236&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>369885</attachid>
            <date>2019-05-14 12:57:06 -0700</date>
            <delta_ts>2019-05-14 12:57:06 -0700</delta_ts>
            <desc>Test case</desc>
            <filename>intersection-observer-initial-observation.html</filename>
            <type>text/html</type>
            <size>489</size>
            <attacher name="Ali Juma">ajuma</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+Cgo8c2NyaXB0PgpmdW5jdGlvbiBjcmVhdGVPYnNlcnZlcigpIHsKICB2
YXIgb2JzID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKCgpID0+IHsKICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVySFRNTCA9ICJHb3QgYW4gb2JzZXJ2YXRpb24i
OwogIH0pOwogIG9icy5vYnNlcnZlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSk7
Cn0Kd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewogIHNldFRpbWVvdXQoY3JlYXRlT2JzZXJ2
ZXIsIDI1MDApOwp9Owo8L3NjcmlwdD4KCgo8Ym9keT4KICA8ZGl2IGlkPSJ0YXJnZXQiPjwvZGl2
PgogIDxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+CiAgMi41IHNlY29uZHMgYWZ0ZXIgbG9hZCwgeW91
IHNob3VsZCBzZWUgc29tZSB0ZXh0IGFwcGVhciBldmVuIGlmIHlvdSBkb24ndAogIGludGVyYWN0
IGF0IGFsbCB3aXRoIHRoZSB3aW5kb3cuCjwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>369985</attachid>
            <date>2019-05-15 13:03:25 -0700</date>
            <delta_ts>2019-05-16 06:55:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197891-20190515160324.patch</filename>
            <type>text/plain</type>
            <size>4238</size>
            <attacher name="Ali Juma">ajuma</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1MzA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWRlZjZlNjk0Mzk5OTQ3
Y2Y4OTdiMmM5OGNkODMwMWY0N2YzNTEzNS4uNjliMDM2OTU0ZDdlZWE1NDUwNzcyMDA5NzE2ZTA1
OWRiNjJjNDE0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE5LTA1LTE1ICBBbGkg
SnVtYSAgPGFqdW1hQGNocm9taXVtLm9yZz4KKworICAgICAgICBbSW50ZXJzZWN0aW9uT2JzZXJ2
ZXJdIFJlZ3Jlc3Npb246IE5vIGluaXRpYWwgb2JzZXJ2YXRpb24gd2hlbiBub3RoaW5nIGVsc2Ug
dHJpZ2dlcnMgcmVuZGVyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTc4OTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBTY2hlZHVsZSBhIHJlbmRlcmluZyB1cGRhdGUgd2hlbmV2ZXIgYSBuZXcgSW50
ZXJzZWN0aW9uT2JzZXJ2ZXIgdGFyZ2V0IGlzIGFkZGVkLgorCisgICAgICAgIFRlc3Q6IGludGVy
c2VjdGlvbi1vYnNlcnZlci9pbml0aWFsLW9ic2VydmF0aW9uLmh0bWwKKworICAgICAgICAqIHBh
Z2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJzZWN0
aW9uT2JzZXJ2ZXI6Om9ic2VydmUpOgorCiAyMDE5LTA1LTE0ICBSb2JpbiBNb3Jpc3NldCAgPHJt
b3Jpc3NldEBhcHBsZS5jb20+CiAKICAgICAgICAgW1dITFNMXSBwYXJzZUVmZmVjdGZ1bEFzc2ln
bm1lbnQgc2hvdWxkIG5vdCBjYWxsIHBhcnNlQ2FsbEV4cHJlc3Npb24gZGlyZWN0bHkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5jcHAKaW5kZXggMTgzNjI3OGYx
MmM0MGQyYzU2MzRhZGM5Yzg4YTE5ZGMyOTI3M2NhMy4uNjY5Yjg2ZjU0YjkyNWRkMjgxZjA1YmEx
OGM1ODU3M2YzMGIxYTY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNl
Y3Rpb25PYnNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25P
YnNlcnZlci5jcHAKQEAgLTE1OCw2ICsxNTgsNyBAQCB2b2lkIEludGVyc2VjdGlvbk9ic2VydmVy
OjpvYnNlcnZlKEVsZW1lbnQmIHRhcmdldCkKICAgICBhdXRvKiBkb2N1bWVudCA9IHRyYWNraW5n
RG9jdW1lbnQoKTsKICAgICBpZiAoIWhhZE9ic2VydmF0aW9uVGFyZ2V0cykKICAgICAgICAgZG9j
dW1lbnQtPmFkZEludGVyc2VjdGlvbk9ic2VydmVyKCp0aGlzKTsKKyAgICBkb2N1bWVudC0+c2No
ZWR1bGVSZW5kZXJpbmdVcGRhdGUoKTsKIH0KIAogdm9pZCBJbnRlcnNlY3Rpb25PYnNlcnZlcjo6
dW5vYnNlcnZlKEVsZW1lbnQmIHRhcmdldCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkMzY4ZTA2NTI1NzQ3OTY5Yzk4MDM1
M2U1ZWE2MDAxODQ3NmJjNThkLi5jZTcwMzU1MjQ3YTI2ZmI1OTkxZjc2OTI3MmQ0OTQwMTE3ZjA3
MjBhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTktMDUtMTUgIEFsaSBKdW1hICA8YWp1bWFA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFtJbnRlcnNlY3Rpb25PYnNlcnZlcl0gUmVncmVzc2lv
bjogTm8gaW5pdGlhbCBvYnNlcnZhdGlvbiB3aGVuIG5vdGhpbmcgZWxzZSB0cmlnZ2VycyByZW5k
ZXJpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5
Nzg5MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBhIHRlc3Qgd2hlcmUgb3RoZXIgdGltZXJzIHRoYXQgY2FuIHNjaGVkdWxlIHJlbmRlcmluZyB1
cGRhdGVzIGFyZSBkaXNhYmxlZCwKKyAgICAgICAgaW4gb3JkZXIgdG8gdmVyaWZ5IHRoYXQgSW50
ZXJzZWN0aW9uT2JzZXJ2ZXIgaXMgc2NoZWR1bGluZyByZW5kZXJpbmcgdXBkYXRlcworICAgICAg
ICBpdHNlbGYuCisKKyAgICAgICAgKiBpbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvaW5pdGlhbC1vYnNl
cnZhdGlvbi5odG1sOiBBZGRlZC4KKwogMjAxOS0wNS0xNCAgQWxpIEp1bWEgIDxhanVtYUBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgW0ludGVyc2VjdGlvbk9ic2VydmVyXSBVcGRhdGUgZXhwZWN0
YXRpb25zIGZvciB0ZXN0cyB0aGF0IGFyZSBubyBsb25nZXIgZmxha3kKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9pbml0aWFsLW9ic2VydmF0aW9uLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9pbml0aWFsLW9ic2Vy
dmF0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNmJkMTNmYThmMDZiMTZlZDA0OWI3MzE0
YjRiNGMyYmE4MmI2YjIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW50ZXJzZWN0
aW9uLW9ic2VydmVyL2luaXRpYWwtb2JzZXJ2YXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MyBAQAorCitQQVNTIEFuIGluaXRpYWwgb2JzZXJ2YXRpb24gaXMgZmlyZWQgZXZlbiB3aGVuIG5v
dGhpbmcgZWxzZSB0cmlnZ2VycyByZW5kZXJpbmcgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ludGVyc2VjdGlvbi1vYnNlcnZlci9pbml0aWFsLW9ic2VydmF0aW9uLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvaW5pdGlhbC1vYnNlcnZhdGlvbi5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjYyOTIwNDdlNGRmYzBkNWRjYjA4YzQwZWU2Njc5NzljMGQyZWNmZjEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvaW5pdGlhbC1vYnNl
cnZhdGlvbi5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4K
K2lmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgLy8gRGlzYWJsZSB0aW1lcnMgdGhhdCB0cmln
Z2VyIGRlbGF5ZWQgZmx1c2hlcywgc2luY2UgdGhlc2Ugd2lsbCBtYWtlCisgICAgLy8gdGhpcyB0
ZXN0IHBhc3Mgc3B1cmlvdXNseSwgZXZlbiBpZiBJbnRlcnNlY3Rpb25PYnNlcnZlciBuZXZlcgor
ICAgIC8vIHNjaGVkdWxlcyBhbnkgcmVuZGVyaW5nIHVwZGF0ZXMuCisgICAgaW50ZXJuYWxzLnNl
dFNwZWN1bGF0aXZlVGlsaW5nRGVsYXlEaXNhYmxlZEZvclRlc3RpbmcodHJ1ZSk7CisgICAgaW50
ZXJuYWxzLmRpc2FibGVUaWxlU2l6ZVVwZGF0ZURlbGF5KCk7Cit9CisKK3dpbmRvdy5vbmxvYWQg
PSBmdW5jdGlvbigpIHsKK2FzeW5jX3Rlc3QoKHQpID0+IHsKKyAgICB2YXIgb2JzZXJ2ZXIgPSBu
ZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIodC5zdGVwX2Z1bmNfZG9uZSgoKSA9PiB7CisgICAgICAg
IG9ic2VydmVyLmRpc2Nvbm5lY3QoKTsKKyAgICB9KSk7CisgICAgcmVxdWVzdEFuaW1hdGlvbkZy
YW1lKCgpID0+IHsKKyAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKKyAgICAg
ICAgICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICAgICAgICAgIG9ic2VydmVyLm9ic2Vy
dmUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpKTsKKyAgICAgICAgICAgIH0sIDAp
OworICAgICAgICB9KTsKKyAgICB9KTsKK30sICJBbiBpbml0aWFsIG9ic2VydmF0aW9uIGlzIGZp
cmVkIGV2ZW4gd2hlbiBub3RoaW5nIGVsc2UgdHJpZ2dlcnMgcmVuZGVyaW5nIik7Cit9OworPC9z
Y3JpcHQ+CisKKzxzdHlsZT4KKyN0YXJnZXQgeworICB3aWR0aDogMTAwcHg7CisgIGhlaWdodDog
MTAwcHg7CisgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworfQorPC9zdHlsZT4KKworPGRpdiBp
ZD0idGFyZ2V0Ij48L2Rpdj4KKwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>