<?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>209264</bug_id>
          
          <creation_ts>2020-03-18 18:47:31 -0700</creation_ts>
          <short_desc>Intersection Observer intersections are wrong with zooming</short_desc>
          <delta_ts>2020-04-03 19:55:04 -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>DOM</component>
          <version>Safari Technology Preview</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=209947</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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Ali Juma">ajuma</assigned_to>
          <cc>ajuma</cc>
    
    <cc>cdumez</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>kangil.han</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1631485</commentid>
    <comment_count>0</comment_count>
      <attachid>393934</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-03-18 18:47:31 -0700</bug_when>
    <thetext>Created attachment 393934
Test

Working with intersection Observer I have found an issue when zoom is changed.
I have created an html file to demonstrate attached here.

Steps To Reproduce:
1. Open HTML file with included JS code 
2. Scroll down the page and notice how square change color when the top of the square touches the top of the viewport.
3. Change the Zoom level 
4. Scroll again to see how the squares change color at a different timing (not top of square with top of viewport).

Results:

In Chrome regardless of the zoom level the squares change color when the top of the square touches the top of the viewport.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631486</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-03-18 18:47:51 -0700</bug_when>
    <thetext>rdar://problem/60613094</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631853</commentid>
    <comment_count>2</comment_count>
      <attachid>394028</attachid>
    <who name="Ali Juma">ajuma</who>
    <bug_when>2020-03-19 15:01:19 -0700</bug_when>
    <thetext>Created attachment 394028
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631965</commentid>
    <comment_count>3</comment_count>
      <attachid>394028</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-03-19 19:58:52 -0700</bug_when>
    <thetext>Comment on attachment 394028
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=394028&amp;action=review

However, I think the bug report is about pinch-zoom (Page::setPageScaleFactor()).

So this patch is OK but there&apos;s another one to do for pinch-zooming.

&gt; Source/WebCore/dom/Document.cpp:7563
&gt; +        expandRootBoundsWithRootMargin(localRootBounds, observer.rootMarginBox(), rootRenderer-&gt;style().effectiveZoom());

This is the zoom level that&apos;s affected the css zoom property, and (I think) Command-+ zoom.

&gt; LayoutTests/intersection-observer/root-margin-with-zoom.html:18
&gt; +    window.internals.setPageZoomFactor(2);

This is also about Command-+ zooming</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631972</commentid>
    <comment_count>4</comment_count>
      <attachid>394028</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2020-03-19 20:07:29 -0700</bug_when>
    <thetext>Comment on attachment 394028
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=394028&amp;action=review

&gt; LayoutTests/intersection-observer/root-margin-with-zoom.html:1
&gt; +&lt;!DOCTYPE html&gt;

Would be nice to have an official WPT test too. Would https://drafts.csswg.org/css-device-adapt/#zoom-desc be usable ?

&gt; LayoutTests/intersection-observer/root-margin-with-zoom.html:5
&gt; +#target {

Can you please add meta tag pointing to spec reference?

Can you also add a comment briefly explaining how the test is working? It seems there are subtle / non-obvious aspects...

&gt; LayoutTests/intersection-observer/root-margin-with-zoom.html:7
&gt; +    height: 40px;

Should this be &lt; 20px? otherwise it seems it would still intersect with a rootMargin: &apos;20px 0px 0px 0px&apos; (half the actual rootMargin).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632189</commentid>
    <comment_count>5</comment_count>
      <attachid>394105</attachid>
    <who name="Ali Juma">ajuma</who>
    <bug_when>2020-03-20 11:42:08 -0700</bug_when>
    <thetext>Created attachment 394105
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632190</commentid>
    <comment_count>6</comment_count>
    <who name="Ali Juma">ajuma</who>
    <bug_when>2020-03-20 11:42:24 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #3)
&gt; Comment on attachment 394028 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=394028&amp;action=review
&gt; 
&gt; However, I think the bug report is about pinch-zoom
&gt; (Page::setPageScaleFactor()).

I can&apos;t reproduce any difference between Blink and WebKit when using pinch-zoom on this test case. IntersectionObserver generally ignores pinch-zoom, and computes intersections with the layout viewport (when there&apos;s no explicit root). So it&apos;s expected that the rect we&apos;re intersecting with won&apos;t match the visible viewport when zoomed in.

&gt; So this patch is OK but there&apos;s another one to do for pinch-zooming.
&gt; 
&gt; &gt; Source/WebCore/dom/Document.cpp:7563
&gt; &gt; +        expandRootBoundsWithRootMargin(localRootBounds, observer.rootMarginBox(), rootRenderer-&gt;style().effectiveZoom());
&gt; 
&gt; This is the zoom level that&apos;s affected the css zoom property, and (I think)
&gt; Command-+ zoom.
&gt; 
&gt; &gt; LayoutTests/intersection-observer/root-margin-with-zoom.html:18
&gt; &gt; +    window.internals.setPageZoomFactor(2);
&gt; 
&gt; This is also about Command-+ zooming

(In reply to Frédéric Wang (:fredw) from comment #4)
&gt; Comment on attachment 394028 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=394028&amp;action=review
&gt; 
&gt; &gt; LayoutTests/intersection-observer/root-margin-with-zoom.html:1
&gt; &gt; +&lt;!DOCTYPE html&gt;
&gt; 
&gt; Would be nice to have an official WPT test too. Would
&gt; https://drafts.csswg.org/css-device-adapt/#zoom-desc be usable ?

@viewport isn&apos;t supported in WebKit or Gecko, and is slated to be removed from the spec: https://github.com/w3c/csswg-drafts/issues/4766

The CSS zoom property would be another option, but this is also non-standard and not supported by Gecko.

So there doesn&apos;t seem to be a good cross-platform way to set page zoom from web content.

&gt; &gt; LayoutTests/intersection-observer/root-margin-with-zoom.html:5
&gt; &gt; +#target {
&gt; 
&gt; Can you please add meta tag pointing to spec reference?

Done.


&gt; Can you also add a comment briefly explaining how the test is working? It
&gt; seems there are subtle / non-obvious aspects...

Done.


&gt; &gt; LayoutTests/intersection-observer/root-margin-with-zoom.html:7
&gt; &gt; +    height: 40px;
&gt; 
&gt; Should this be &lt; 20px? otherwise it seems it would still intersect with a
&gt; rootMargin: &apos;20px 0px 0px 0px&apos; (half the actual rootMargin).

No. When we have a zoom factor of 2, the target&apos;s borderBoundingBox (this is in local coordinates) is also scaled by 2, so has height 80 px instead of 40 px. Once we convert this rect into root space (which, in this case, is layout viewport space), its origin is at y=-80px rather than y=-40px. In order for this to be contained within the expanded root rect, we need the root margin to be &apos;40px 0px 0px 0px&apos;, so that when it&apos;s scaled by 2, it expands by 80px.

A simpler way of saying this: the target is 40 CSS pixels above the viewport, so should intersect when using a root margin of &apos;40px 0px 0px 0px&apos;, regardless of page zoom, since page zoom should equally affect the position/size of the target and the root margin.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632235</commentid>
    <comment_count>7</comment_count>
      <attachid>394105</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-03-20 13:14:51 -0700</bug_when>
    <thetext>Comment on attachment 394105
Patch

Oh right, I forgot that Int.Obs. was about layout viewport.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632264</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-03-20 13:58:59 -0700</bug_when>
    <thetext>Committed r258787: &lt;https://trac.webkit.org/changeset/258787&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 394105.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632300</commentid>
    <comment_count>9</comment_count>
    <who name="Ali Juma">ajuma</who>
    <bug_when>2020-03-20 14:54:54 -0700</bug_when>
    <thetext>Committed r258791: &lt;https://trac.webkit.org/changeset/258791&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>393934</attachid>
            <date>2020-03-18 18:47:31 -0700</date>
            <delta_ts>2020-03-18 18:47:31 -0700</delta_ts>
            <desc>Test</desc>
            <filename>index.html</filename>
            <type>text/html</type>
            <size>2079</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">CjwhRE9DVFlQRSBodG1sPgo8aHRtbCBsYW5nPSJlbiI+CjxoZWFkPgogIDxtZXRhIGNoYXJzZXQ9
IlVURi04Ij4KICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdp
ZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgPG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRp
YmxlIiBjb250ZW50PSJpZT1lZGdlIj4KICA8c3R5bGU+CiAgICAuc3F1YXJlewogICAgICBwb3Np
dGlvbjogcmVsYXRpdmU7CiAgICAgIHdpZHRoOiAxMDAwcHg7CiAgICAgIGhlaWdodDogNTAwcHg7
CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigxMjgsIDEzMSwgMjEzKTsKICAgICAgYm9yZGVy
OiBzb2xpZCBibGFjayAxcHg7CiAgICB9CiAgICAuY29sb3JlZHsKICAgICAgcG9zaXRpb246IHJl
bGF0aXZlOwogICAgICB3aWR0aDogMzAwcHg7CiAgICAgIGhlaWdodDogMzAwcHg7CiAgICAgIGJh
Y2tncm91bmQtY29sb3I6IGJsdWU7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOwogICAg
ICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIGZvbnQtc2l6ZTogNWVtOwogICAgfQoKICAgIC5p
bnRlcnNlY3RlZHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDMyLCAxNDMsIDIwNyk7CiAg
ICAgIGNvbG9yOiB3aGl0ZTsKCiAgICB9CgogICAgCiAgICAKICAgIAogIDwvc3R5bGU+CiAgCiAg
CiAgCiAgPHRpdGxlPkRvY3VtZW50PC90aXRsZT4KPC9oZWFkPgo8Ym9keT4KICA8ZGl2IGNsYXNz
PSJzcXVhcmUiPlNjcm9sbCBkb3duOiBJbiBTYWZhcmkgdXNlIHpvb20gdG8gaW5jcmVhc2UgdGhl
IHNpemUgb2YgdGhlIHNxdWFyZXMgYW5kIG5vdGljZSBob3cgdGhlIGludGVyc2VjdGlvbiBvYnNl
cnZlciBpcyBvZmY8L2Rpdj4KICA8ZGl2IGNsYXNzPSJjb2xvcmVkIHNxdWFyZTAiPjA8L2Rpdj4K
ICA8ZGl2IGNsYXNzPSJjb2xvcmVkIHNxdWFyZTEiPjE8L2Rpdj4KICA8ZGl2IGNsYXNzPSJjb2xv
cmVkIHNxdWFyZTIiPjI8L2Rpdj4KICA8ZGl2IGNsYXNzPSJjb2xvcmVkIHNxdWFyZTMiPjM8L2Rp
dj4KICA8ZGl2IGNsYXNzPSJjb2xvcmVkIHNxdWFyZTQiPjQ8L2Rpdj4KICA8ZGl2IGNsYXNzPSJj
b2xvcmVkIHNxdWFyZTUiPjU8L2Rpdj4KICA8ZGl2IGNsYXNzPSJjb2xvcmVkIHNxdWFyZTYiPjY8
L2Rpdj4KICA8ZGl2IGNsYXNzPSJjb2xvcmVkIHNxdWFyZTciPjc8L2Rpdj4KICA8ZGl2IGNsYXNz
PSJjb2xvcmVkIHNxdWFyZTgiPjg8L2Rpdj4KICA8ZGl2IGNsYXNzPSJjb2xvcmVkIHNxdWFyZTki
Pjk8L2Rpdj4KICA8ZGl2IGNsYXNzPSJzcXVhcmUiPjwvZGl2PgogIDxzY3JpcHQ+CgogICAgZm9y
IChsZXQgaW5kZXggPSAwOyBpbmRleCA8IDEwOyBpbmRleCsrKSB7CiAgICAgIAogICAgICBsZXQg
dGFyZ2V0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnNxdWFyZScraW5kZXgpOwogICAgICBs
ZXQgdGFyZ2V0VG9wID0gdGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIHdpbmRv
dy5zY3JvbGxZOwogICAgICAKICAgICAgbGV0IG9wdGlvbnMgPSB7CiAgICAgICAgcm9vdE1hcmdp
bjogYCR7dGFyZ2V0VG9wfXB4IDEwMDBweCAxMDAwMDAwcHggMTAwMHB4YCwKICAgICAgICB0aHJl
c2hvbGQ6IFsxXQogICAgICB9CgogICAgICBsZXQgY2FsbGJhY2sgPSBmdW5jdGlvbiAoYSxiKXsK
ICAgICAgICBhLmZvckVhY2goZWxlbWVudCA9PiB7CiAgICAgICAgICBjb25zb2xlLmxvZyhhLGIp
OwogICAgICAgICAgaWYoZWxlbWVudC5pc0ludGVyc2VjdGluZyl7CiAgICAgICAgICAgIHRhcmdl
dC5jbGFzc0xpc3QucmVtb3ZlKCdpbnRlcnNlY3RlZCcpOwogICAgICAgICAgfWVsc2V7CiAgICAg
ICAgICAgIHRhcmdldC5jbGFzc0xpc3QuYWRkKCdpbnRlcnNlY3RlZCcpOwogICAgICAgICAgfQog
ICAgICAgICAgCiAgICAgICAgfSk7CiAgICAgIH0KCiAgICAgIGxldCBvYnNlcnZlciA9IG5ldyBJ
bnRlcnNlY3Rpb25PYnNlcnZlcihjYWxsYmFjaywgb3B0aW9ucyk7CiAgICAgIAogICAgICAKICAg
ICAgb2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5ib2R5KTsKICAgICAgCiAgICB9CiAgICAKICA8
L3NjcmlwdD4KICAKPC9ib2R5Pgo8L2h0bWw+
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394028</attachid>
            <date>2020-03-19 15:01:19 -0700</date>
            <delta_ts>2020-03-20 11:42:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209264-20200319180118.patch</filename>
            <type>text/plain</type>
            <size>4594</size>
            <attacher name="Ali Juma">ajuma</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTQ3OTUwODc0MGZjZjk4
NGYwYTgyNWRiMDY5YTAzOTgyMTcxM2NkOC4uZDdiYjM5ODVlMmQwNjI2Mzg2ZGI2OTMyZWMwZmRl
ZmFkODE5ZGE2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTAzLTE5ICBBbGkg
SnVtYSAgPGFqdW1hQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbnRlcnNlY3Rpb24gT2JzZXJ2
ZXIgaW50ZXJzZWN0aW9ucyBhcmUgd3Jvbmcgd2l0aCB6b29taW5nCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkyNjQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbiBJbnRlcnNlY3Rpb25PYnNlcnZlcidz
IHJvb3RNYXJnaW4gaXMgZXhwcmVzc2VkIGluIENTUyBwaXhlbHMsCisgICAgICAgIGJ1dCB3ZSB3
ZXJlbid0IGFjY291bnRpbmcgZm9yIHBhZ2Ugem9vbS4gRml4IHRoaXMgYnkgbXVsdGlwbHlpbmcK
KyAgICAgICAgdGhlIHJvb3QgbWFyZ2luIGJ5IHRoZSB6b29tIGZhY3Rvci4KKworICAgICAgICBU
ZXN0OiBpbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvcm9vdC1tYXJnaW4td2l0aC16b29tLmh0bWwKKwor
ICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpleHBhbmRSb290
Qm91bmRzV2l0aFJvb3RNYXJnaW4pOgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZUludGVyc2Vj
dGlvblN0YXRlKToKKwogMjAyMC0wMy0xOSAgQ2hhcmxpZSBUdXJuZXIgIDxjdHVybmVyQGlnYWxp
YS5jb20+CiAKICAgICAgICAgRml4IG1hbnkgd2FybmluZ3Mgd2l0aCBDbGFuZyA3LjAgb24gR1RL
IHg4Ni02NCBpbiBEZWJ1Zy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDYxZGJhNzRiM2Q5
MzUzMGQ1M2E3ZTQ4YTEyYmRjZWIyMTk1ZTg1NTQuLjVmZjAzMDIyYTMyMTJjOTZkZTQ1NTcwODAz
ZWE0YzQyZDM1MWIwODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNzQ4OCwxMyArNzQ4
OCwxMyBAQCB2b2lkIERvY3VtZW50OjpyZW1vdmVJbnRlcnNlY3Rpb25PYnNlcnZlcihJbnRlcnNl
Y3Rpb25PYnNlcnZlciYgb2JzZXJ2ZXIpCiAgICAgbV9pbnRlcnNlY3Rpb25PYnNlcnZlcnMucmVt
b3ZlRmlyc3QoJm9ic2VydmVyKTsKIH0KIAotc3RhdGljIHZvaWQgZXhwYW5kUm9vdEJvdW5kc1dp
dGhSb290TWFyZ2luKEZsb2F0UmVjdCYgbG9jYWxSb290Qm91bmRzLCBjb25zdCBMZW5ndGhCb3gm
IHJvb3RNYXJnaW4pCitzdGF0aWMgdm9pZCBleHBhbmRSb290Qm91bmRzV2l0aFJvb3RNYXJnaW4o
RmxvYXRSZWN0JiBsb2NhbFJvb3RCb3VuZHMsIGNvbnN0IExlbmd0aEJveCYgcm9vdE1hcmdpbiwg
ZmxvYXQgem9vbUZhY3RvcikKIHsKICAgICBGbG9hdEJveEV4dGVudCByb290TWFyZ2luRmxvYXRC
b3goCi0gICAgICAgIGZsb2F0VmFsdWVGb3JMZW5ndGgocm9vdE1hcmdpbi50b3AoKSwgbG9jYWxS
b290Qm91bmRzLmhlaWdodCgpKSwKLSAgICAgICAgZmxvYXRWYWx1ZUZvckxlbmd0aChyb290TWFy
Z2luLnJpZ2h0KCksIGxvY2FsUm9vdEJvdW5kcy53aWR0aCgpKSwKLSAgICAgICAgZmxvYXRWYWx1
ZUZvckxlbmd0aChyb290TWFyZ2luLmJvdHRvbSgpLCBsb2NhbFJvb3RCb3VuZHMuaGVpZ2h0KCkp
LAotICAgICAgICBmbG9hdFZhbHVlRm9yTGVuZ3RoKHJvb3RNYXJnaW4ubGVmdCgpLCBsb2NhbFJv
b3RCb3VuZHMud2lkdGgoKSkKKyAgICAgICAgZmxvYXRWYWx1ZUZvckxlbmd0aChyb290TWFyZ2lu
LnRvcCgpLCBsb2NhbFJvb3RCb3VuZHMuaGVpZ2h0KCkpICogem9vbUZhY3RvciwKKyAgICAgICAg
ZmxvYXRWYWx1ZUZvckxlbmd0aChyb290TWFyZ2luLnJpZ2h0KCksIGxvY2FsUm9vdEJvdW5kcy53
aWR0aCgpKSAqIHpvb21GYWN0b3IsCisgICAgICAgIGZsb2F0VmFsdWVGb3JMZW5ndGgocm9vdE1h
cmdpbi5ib3R0b20oKSwgbG9jYWxSb290Qm91bmRzLmhlaWdodCgpKSAqIHpvb21GYWN0b3IsCisg
ICAgICAgIGZsb2F0VmFsdWVGb3JMZW5ndGgocm9vdE1hcmdpbi5sZWZ0KCksIGxvY2FsUm9vdEJv
dW5kcy53aWR0aCgpKSAqIHpvb21GYWN0b3IKICAgICApOwogCiAgICAgbG9jYWxSb290Qm91bmRz
LmV4cGFuZChyb290TWFyZ2luRmxvYXRCb3gpOwpAQCAtNzU2MCw3ICs3NTYwLDcgQEAgc3RhdGlj
IE9wdGlvbmFsPEludGVyc2VjdGlvbk9ic2VydmF0aW9uU3RhdGU+IGNvbXB1dGVJbnRlcnNlY3Rp
b25TdGF0ZShGcmFtZVZpZXcKICAgICB9CiAKICAgICBpZiAoYXBwbHlSb290TWFyZ2luKQotICAg
ICAgICBleHBhbmRSb290Qm91bmRzV2l0aFJvb3RNYXJnaW4obG9jYWxSb290Qm91bmRzLCBvYnNl
cnZlci5yb290TWFyZ2luQm94KCkpOworICAgICAgICBleHBhbmRSb290Qm91bmRzV2l0aFJvb3RN
YXJnaW4obG9jYWxSb290Qm91bmRzLCBvYnNlcnZlci5yb290TWFyZ2luQm94KCksIHJvb3RSZW5k
ZXJlci0+c3R5bGUoKS5lZmZlY3RpdmVab29tKCkpOwogCiAgICAgTGF5b3V0UmVjdCBsb2NhbFRh
cmdldEJvdW5kczsKICAgICBpZiAoaXM8UmVuZGVyQm94PigqdGFyZ2V0UmVuZGVyZXIpKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDg3OGZmNzVmMDNlZWU4YTBlODUyZjM2NjIyZDI5MGRhMDc5Y2JmZjMuLmNjYTg3NzE3Mzkz
YTNiOTYyNWI5NTM1ZGY5YzIzMGQ0ZjdmNzkzNmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAy
MC0wMy0xOSAgQWxpIEp1bWEgIDxhanVtYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW50ZXJz
ZWN0aW9uIE9ic2VydmVyIGludGVyc2VjdGlvbnMgYXJlIHdyb25nIHdpdGggem9vbWluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MjY0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnRlcnNlY3Rp
b24tb2JzZXJ2ZXIvcm9vdC1tYXJnaW4td2l0aC16b29tLmh0bWw6IEFkZGVkLgorCiAyMDIwLTAz
LTE5ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIEFs
bG93IGZvciBzb21lIHRvbGVyYW5jZSB3aGVuIGNoZWNraW5nIGNhbnZhcyBwaXhlbHMgaW4gZmFz
dC9tZWRpYXN0cmVhbSB0ZXN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW50ZXJzZWN0aW9u
LW9ic2VydmVyL3Jvb3QtbWFyZ2luLXdpdGgtem9vbS5odG1sIGIvTGF5b3V0VGVzdHMvaW50ZXJz
ZWN0aW9uLW9ic2VydmVyL3Jvb3QtbWFyZ2luLXdpdGgtem9vbS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1
N2JjODcwMDI3YWU3NGYwZDI2MTY2MTdiNDk0NWVhZGZjYTlhNzYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvcm9vdC1tYXJnaW4td2l0aC16b29t
Lmh0bWwKQEAgLTAsMCArMSwyOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorI3RhcmdldCB7
CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIGhlaWdodDogNDBweDsKKyAgICB3aWR0aDog
MTAwcHg7CisgICAgdG9wOiAtNDBweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKK30K
Kzwvc3R5bGU+CisKKworPGRpdiBpZD0idGFyZ2V0Ij48L2Rpdj4KKworPHNjcmlwdD4KKyAgICB3
aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2Vab29tRmFjdG9yKDIpOworICAgIGFzeW5jX3Rlc3QoKHQp
ID0+ICB7CisgICAgICAgIGxldCBvcHRpb25zID0geworICAgICAgICAgICAgcm9vdE1hcmdpbjog
JzQwcHggMHB4IDBweCAwcHgnLAorICAgICAgICAgICAgdGhyZXNob2xkOiBbMV0KKyAgICAgICAg
fQorICAgICAgICBsZXQgb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIodC5zdGVw
X2Z1bmNfZG9uZSgoZW50cmllcykgPT4geworICAgICAgICAgICAgYXNzZXJ0X3RydWUoZW50cmll
c1swXS5pc0ludGVyc2VjdGluZywgImlzSW50ZXJzZWN0aW5nIik7IAorICAgICAgICB9KSwgb3B0
aW9ucyk7CisgICAgICAgIG9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InRhcmdldCIpKTsKKyAgICB9LCAiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIncyByb290IG1hcmdpbiBh
Y2NvdW50cyBmb3Igem9vbWluZyIpOworPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394105</attachid>
            <date>2020-03-20 11:42:08 -0700</date>
            <delta_ts>2020-03-20 13:59:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209264-20200320144207.patch</filename>
            <type>text/plain</type>
            <size>5009</size>
            <attacher name="Ali Juma">ajuma</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTQ3OTUwODc0MGZjZjk4
NGYwYTgyNWRiMDY5YTAzOTgyMTcxM2NkOC4uZDdiYjM5ODVlMmQwNjI2Mzg2ZGI2OTMyZWMwZmRl
ZmFkODE5ZGE2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTAzLTE5ICBBbGkg
SnVtYSAgPGFqdW1hQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbnRlcnNlY3Rpb24gT2JzZXJ2
ZXIgaW50ZXJzZWN0aW9ucyBhcmUgd3Jvbmcgd2l0aCB6b29taW5nCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkyNjQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbiBJbnRlcnNlY3Rpb25PYnNlcnZlcidz
IHJvb3RNYXJnaW4gaXMgZXhwcmVzc2VkIGluIENTUyBwaXhlbHMsCisgICAgICAgIGJ1dCB3ZSB3
ZXJlbid0IGFjY291bnRpbmcgZm9yIHBhZ2Ugem9vbS4gRml4IHRoaXMgYnkgbXVsdGlwbHlpbmcK
KyAgICAgICAgdGhlIHJvb3QgbWFyZ2luIGJ5IHRoZSB6b29tIGZhY3Rvci4KKworICAgICAgICBU
ZXN0OiBpbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvcm9vdC1tYXJnaW4td2l0aC16b29tLmh0bWwKKwor
ICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpleHBhbmRSb290
Qm91bmRzV2l0aFJvb3RNYXJnaW4pOgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZUludGVyc2Vj
dGlvblN0YXRlKToKKwogMjAyMC0wMy0xOSAgQ2hhcmxpZSBUdXJuZXIgIDxjdHVybmVyQGlnYWxp
YS5jb20+CiAKICAgICAgICAgRml4IG1hbnkgd2FybmluZ3Mgd2l0aCBDbGFuZyA3LjAgb24gR1RL
IHg4Ni02NCBpbiBEZWJ1Zy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDYxZGJhNzRiM2Q5
MzUzMGQ1M2E3ZTQ4YTEyYmRjZWIyMTk1ZTg1NTQuLjVmZjAzMDIyYTMyMTJjOTZkZTQ1NTcwODAz
ZWE0YzQyZDM1MWIwODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNzQ4OCwxMyArNzQ4
OCwxMyBAQCB2b2lkIERvY3VtZW50OjpyZW1vdmVJbnRlcnNlY3Rpb25PYnNlcnZlcihJbnRlcnNl
Y3Rpb25PYnNlcnZlciYgb2JzZXJ2ZXIpCiAgICAgbV9pbnRlcnNlY3Rpb25PYnNlcnZlcnMucmVt
b3ZlRmlyc3QoJm9ic2VydmVyKTsKIH0KIAotc3RhdGljIHZvaWQgZXhwYW5kUm9vdEJvdW5kc1dp
dGhSb290TWFyZ2luKEZsb2F0UmVjdCYgbG9jYWxSb290Qm91bmRzLCBjb25zdCBMZW5ndGhCb3gm
IHJvb3RNYXJnaW4pCitzdGF0aWMgdm9pZCBleHBhbmRSb290Qm91bmRzV2l0aFJvb3RNYXJnaW4o
RmxvYXRSZWN0JiBsb2NhbFJvb3RCb3VuZHMsIGNvbnN0IExlbmd0aEJveCYgcm9vdE1hcmdpbiwg
ZmxvYXQgem9vbUZhY3RvcikKIHsKICAgICBGbG9hdEJveEV4dGVudCByb290TWFyZ2luRmxvYXRC
b3goCi0gICAgICAgIGZsb2F0VmFsdWVGb3JMZW5ndGgocm9vdE1hcmdpbi50b3AoKSwgbG9jYWxS
b290Qm91bmRzLmhlaWdodCgpKSwKLSAgICAgICAgZmxvYXRWYWx1ZUZvckxlbmd0aChyb290TWFy
Z2luLnJpZ2h0KCksIGxvY2FsUm9vdEJvdW5kcy53aWR0aCgpKSwKLSAgICAgICAgZmxvYXRWYWx1
ZUZvckxlbmd0aChyb290TWFyZ2luLmJvdHRvbSgpLCBsb2NhbFJvb3RCb3VuZHMuaGVpZ2h0KCkp
LAotICAgICAgICBmbG9hdFZhbHVlRm9yTGVuZ3RoKHJvb3RNYXJnaW4ubGVmdCgpLCBsb2NhbFJv
b3RCb3VuZHMud2lkdGgoKSkKKyAgICAgICAgZmxvYXRWYWx1ZUZvckxlbmd0aChyb290TWFyZ2lu
LnRvcCgpLCBsb2NhbFJvb3RCb3VuZHMuaGVpZ2h0KCkpICogem9vbUZhY3RvciwKKyAgICAgICAg
ZmxvYXRWYWx1ZUZvckxlbmd0aChyb290TWFyZ2luLnJpZ2h0KCksIGxvY2FsUm9vdEJvdW5kcy53
aWR0aCgpKSAqIHpvb21GYWN0b3IsCisgICAgICAgIGZsb2F0VmFsdWVGb3JMZW5ndGgocm9vdE1h
cmdpbi5ib3R0b20oKSwgbG9jYWxSb290Qm91bmRzLmhlaWdodCgpKSAqIHpvb21GYWN0b3IsCisg
ICAgICAgIGZsb2F0VmFsdWVGb3JMZW5ndGgocm9vdE1hcmdpbi5sZWZ0KCksIGxvY2FsUm9vdEJv
dW5kcy53aWR0aCgpKSAqIHpvb21GYWN0b3IKICAgICApOwogCiAgICAgbG9jYWxSb290Qm91bmRz
LmV4cGFuZChyb290TWFyZ2luRmxvYXRCb3gpOwpAQCAtNzU2MCw3ICs3NTYwLDcgQEAgc3RhdGlj
IE9wdGlvbmFsPEludGVyc2VjdGlvbk9ic2VydmF0aW9uU3RhdGU+IGNvbXB1dGVJbnRlcnNlY3Rp
b25TdGF0ZShGcmFtZVZpZXcKICAgICB9CiAKICAgICBpZiAoYXBwbHlSb290TWFyZ2luKQotICAg
ICAgICBleHBhbmRSb290Qm91bmRzV2l0aFJvb3RNYXJnaW4obG9jYWxSb290Qm91bmRzLCBvYnNl
cnZlci5yb290TWFyZ2luQm94KCkpOworICAgICAgICBleHBhbmRSb290Qm91bmRzV2l0aFJvb3RN
YXJnaW4obG9jYWxSb290Qm91bmRzLCBvYnNlcnZlci5yb290TWFyZ2luQm94KCksIHJvb3RSZW5k
ZXJlci0+c3R5bGUoKS5lZmZlY3RpdmVab29tKCkpOwogCiAgICAgTGF5b3V0UmVjdCBsb2NhbFRh
cmdldEJvdW5kczsKICAgICBpZiAoaXM8UmVuZGVyQm94PigqdGFyZ2V0UmVuZGVyZXIpKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDg3OGZmNzVmMDNlZWU4YTBlODUyZjM2NjIyZDI5MGRhMDc5Y2JmZjMuLmNjYTg3NzE3Mzkz
YTNiOTYyNWI5NTM1ZGY5YzIzMGQ0ZjdmNzkzNmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAy
MC0wMy0xOSAgQWxpIEp1bWEgIDxhanVtYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW50ZXJz
ZWN0aW9uIE9ic2VydmVyIGludGVyc2VjdGlvbnMgYXJlIHdyb25nIHdpdGggem9vbWluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MjY0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnRlcnNlY3Rp
b24tb2JzZXJ2ZXIvcm9vdC1tYXJnaW4td2l0aC16b29tLmh0bWw6IEFkZGVkLgorCiAyMDIwLTAz
LTE5ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIEFs
bG93IGZvciBzb21lIHRvbGVyYW5jZSB3aGVuIGNoZWNraW5nIGNhbnZhcyBwaXhlbHMgaW4gZmFz
dC9tZWRpYXN0cmVhbSB0ZXN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW50ZXJzZWN0aW9u
LW9ic2VydmVyL3Jvb3QtbWFyZ2luLXdpdGgtem9vbS5odG1sIGIvTGF5b3V0VGVzdHMvaW50ZXJz
ZWN0aW9uLW9ic2VydmVyL3Jvb3QtbWFyZ2luLXdpdGgtem9vbS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUy
NDcxMTU2OWNiZGVhNDA5ZGRmZDUxODY2OGRlNTJhNWE1YTc1ZWEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvcm9vdC1tYXJnaW4td2l0aC16b29t
Lmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8bGluayByZWw9ImhlbHAi
IGhyZWY9Imh0dHBzOi8vd3d3LnczLm9yZy9UUi9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvI2ludGVy
c2VjdGlvbi1vYnNlcnZlci1pbnRlcmZhY2UiPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyN0YXJnZXQgeworICAgIHBvc2l0
aW9uOiBhYnNvbHV0ZTsKKyAgICBoZWlnaHQ6IDQwcHg7CisgICAgd2lkdGg6IDEwMHB4OworICAg
IHRvcDogLTQwcHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Cit9Cis8L3N0eWxlPgor
CisKKzxkaXYgaWQ9InRhcmdldCI+PC9kaXY+CisKKzxzY3JpcHQ+CisgICAgLy8gVGhlIHRhcmdl
dCBpcyBwb3NpdGlvbmVkIDQwIHB4IGFib3ZlIHRoZSB2aWV3cG9ydCBzbyBzaG91bGQgZnVsbHkg
aW50ZXJzZWN0CisgICAgLy8gd2hlbiB0aGUgdmlld3BvcnQgaXMgZXhwYW5kZWQgYnkgYSByb290
IG1hcmdpbiBvZiA0MCBweCwgbm8gbWF0dGVyIHdoYXQKKyAgICAvLyBwYWdlIHpvb20gZmFjdG9y
IGlzIHVzZWQsIHNpbmNlIHBhZ2Ugem9vbSBzaG91bGQgZXF1YWxseSBhZmZlY3QgYm90aCB0aGUK
KyAgICAvLyBwb3NpdGlvbmluZyBvZiB0aGUgdGFyZ2V0IGFuZCB0aGUgc2l6ZSBvZiB0aGUgcm9v
dCBtYXJnaW4uCisgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlWm9vbUZhY3RvcigyKTsKKyAg
ICBhc3luY190ZXN0KCh0KSA9PiAgeworICAgICAgICBsZXQgb3B0aW9ucyA9IHsKKyAgICAgICAg
ICAgIHJvb3RNYXJnaW46ICc0MHB4IDBweCAwcHggMHB4JywKKyAgICAgICAgICAgIHRocmVzaG9s
ZDogWzFdCisgICAgICAgIH0KKyAgICAgICAgbGV0IG9ic2VydmVyID0gbmV3IEludGVyc2VjdGlv
bk9ic2VydmVyKHQuc3RlcF9mdW5jX2RvbmUoKGVudHJpZXMpID0+IHsKKyAgICAgICAgICAgIGFz
c2VydF90cnVlKGVudHJpZXNbMF0uaXNJbnRlcnNlY3RpbmcsICJpc0ludGVyc2VjdGluZyIpOyAK
KyAgICAgICAgfSksIG9wdGlvbnMpOworICAgICAgICBvYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKSk7CisgICAgfSwgIkludGVyc2VjdGlvbk9ic2VydmVy
J3Mgcm9vdCBtYXJnaW4gYWNjb3VudHMgZm9yIHpvb21pbmciKTsKKzwvc2NyaXB0Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>