<?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>188960</bug_id>
          
          <creation_ts>2018-08-26 20:40:38 -0700</creation_ts>
          <short_desc>Web Inspector: when scrolling a virtualized TreeOutline, only update the DOM periodically</short_desc>
          <delta_ts>2018-08-27 14:28:08 -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>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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>
          <dependson>174968</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1453781</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-08-26 20:40:38 -0700</bug_when>
    <thetext>Currently, we add/remove all TreeElement from the DOM every time the TreeOutline is scrolled.  This is wasteful, especially if the user is just scrolling a few pixels and the TreeOutline has a lot of children.  We should be smarter about when we want to recalculate the needed DOM elements when scrolling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1453783</commentid>
    <comment_count>1</comment_count>
      <attachid>348116</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-08-26 20:43:27 -0700</bug_when>
    <thetext>Created attachment 348116
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454044</commentid>
    <comment_count>2</comment_count>
      <attachid>348116</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2018-08-27 13:16:08 -0700</bug_when>
    <thetext>Comment on attachment 348116
Patch

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

r=me

&gt; Source/WebInspectorUI/ChangeLog:8
&gt; +        * UserInterface/Views/TreeOutline.js:

Needs explanation.

&gt; Source/WebInspectorUI/UserInterface/Views/TreeOutline.js:58
&gt; +        this._vritualizedPreviousFirstItem = NaN;

Typo. Also I don&apos;t like this name, is there a way to better convey that this is the last point from which we selected rows and over-rendered them? For all intents, this is the &quot;current&quot; virtualized first item until updateVirtualizedElements() is called again, after which we don&apos;t care about the previous value.

&gt; Source/WebInspectorUI/UserInterface/Views/TreeOutline.js:713
&gt; +            shouldScroll = (index &lt; firstItem + extraRows) || (index &gt; lastItem - extraRows);

Okay, so this means we are over-rendering by 2*extraRows, right? Above and below? That&apos;s what I would expect this code to do, but you haven&apos;t written a changelog so I could be reading the code wrong.

I don&apos;t remember who wrote this code in the first place. Have you looked to see how quickly we can render the total number of rows? It might need to decrease in order to fit the frame budget.

In any case, this improvement should be much much faster than the previous which seemed to not do any over-rendering at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454045</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-08-27 13:17:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/43766257&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454051</commentid>
    <comment_count>4</comment_count>
      <attachid>348116</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-08-27 13:31:29 -0700</bug_when>
    <thetext>Comment on attachment 348116
Patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/TreeOutline.js:713
&gt;&gt; +            shouldScroll = (index &lt; firstItem + extraRows) || (index &gt; lastItem - extraRows);
&gt; 
&gt; Okay, so this means we are over-rendering by 2*extraRows, right? Above and below? That&apos;s what I would expect this code to do, but you haven&apos;t written a changelog so I could be reading the code wrong.
&gt; 
&gt; I don&apos;t remember who wrote this code in the first place. Have you looked to see how quickly we can render the total number of rows? It might need to decrease in order to fit the frame budget.
&gt; 
&gt; In any case, this improvement should be much much faster than the previous which seemed to not do any over-rendering at all.

I actually was the one who wrote it 😅.  Your expectation is correct.  We render `extraRows` on either &quot;side&quot; (above and below) in order to give us a bit of a buffer with regards to scrolling.  There hasn&apos;t been any issues as far as the frame budget in the past, and we used to regenerate the entire `WI.TreeOutline` DOM on every scroll event, so this should be MUCH better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454064</commentid>
    <comment_count>5</comment_count>
      <attachid>348193</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-08-27 13:49:56 -0700</bug_when>
    <thetext>Created attachment 348193
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454087</commentid>
    <comment_count>6</comment_count>
      <attachid>348193</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-08-27 14:28:07 -0700</bug_when>
    <thetext>Comment on attachment 348193
Patch

Clearing flags on attachment: 348193

Committed r235401: &lt;https://trac.webkit.org/changeset/235401&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454088</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-08-27 14:28:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348116</attachid>
            <date>2018-08-26 20:43:27 -0700</date>
            <delta_ts>2018-08-27 13:49:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188960-20180826204326.patch</filename>
            <type>text/plain</type>
            <size>4333</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDQzNGQwM2UzZDA1OWI3OWI4NjY1NjM1NjZjOWQ2
OTVjMjQ0YTdhMmQuLjFmNDI5Y2FjOTdlN2Q0ODQyMWNkNjNlZWRhZWNjZWQ0YTFjYjljYjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE4LTA4LTI2ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiB3
aGVuIHNjcm9sbGluZyBhIHZpcnR1YWxpemVkIFRyZWVPdXRsaW5lLCBvbmx5IHVwZGF0ZSB0aGUg
RE9NIHBlcmlvZGljYWxseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTg4OTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1RyZWVPdXRsaW5lLmpzOgorICAgICAgICAo
V0kuVHJlZU91dGxpbmUpOgorICAgICAgICAoV0kuVHJlZU91dGxpbmUucHJvdG90eXBlLnJlZ2lz
dGVyU2Nyb2xsVmlydHVhbGl6ZXIpOgorICAgICAgICAoV0kuVHJlZU91dGxpbmUucHJvdG90eXBl
LnVwZGF0ZVZpcnR1YWxpemVkRWxlbWVudHMpOgorICAgICAgICAoV0kuVHJlZU91dGxpbmUucHJv
dG90eXBlLl9jYWxjdWxhdGVWaXJ0dWFsaXplZFZhbHVlcyk6IEFkZGVkLgorCiAyMDE4LTA4LTIz
ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBDb2xvciBwaWNrZXI6IGNhbid0IGVudGVyIGRlY2ltYWwgbnVtYmVycyBmb3Igb3BhY2l0
eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
VHJlZU91dGxpbmUuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9UcmVlT3V0bGluZS5qcwppbmRleCBjYWQ4YWQ4ODVmOWQwNzQ4M2YyNzdiZjVkN2U2ZDNhN2U0
NTg1NzEwLi4zNDljNzIwMmJiNzkxZTI1MjBhOWJjYmY0MjBhMzk5YzMxZDg4MTA5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UcmVlT3V0bGlu
ZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UcmVl
T3V0bGluZS5qcwpAQCAtNTUsNiArNTUsNyBAQCBXSS5UcmVlT3V0bGluZSA9IGNsYXNzIFRyZWVP
dXRsaW5lIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHRoaXMuX2N1c3RvbUluZGVudCA9IGZh
bHNlOwogICAgICAgICB0aGlzLl9zZWxlY3RhYmxlID0gc2VsZWN0YWJsZTsKIAorICAgICAgICB0
aGlzLl92cml0dWFsaXplZFByZXZpb3VzRmlyc3RJdGVtID0gTmFOOwogICAgICAgICB0aGlzLl92
aXJ0dWFsaXplZFNjcm9sbENvbnRhaW5lciA9IG51bGw7CiAgICAgICAgIHRoaXMuX3ZpcnR1YWxp
emVkVHJlZUl0ZW1IZWlnaHQgPSBOYU47CiAgICAgICAgIHRoaXMuX3ZpcnR1YWxpemVkVG9wU3Bh
Y2VyID0gbnVsbDsKQEAgLTY1OSw3ICs2NjAsMTAgQEAgV0kuVHJlZU91dGxpbmUgPSBjbGFzcyBU
cmVlT3V0bGluZSBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICB0aGlzLl92aXJ0dWFsaXplZEJv
dHRvbVNwYWNlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogCiAgICAgICAgIHRo
aXMuX3ZpcnR1YWxpemVkU2Nyb2xsQ29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIs
IChldmVudCkgPT4gewotICAgICAgICAgICAgdGhpcy51cGRhdGVWaXJ0dWFsaXplZEVsZW1lbnRz
KCk7CisgICAgICAgICAgICBsZXQge2V4dHJhUm93cywgZmlyc3RJdGVtfSA9IHRoaXMuX2NhbGN1
bGF0ZVZpcnR1YWxpemVkVmFsdWVzKCk7CisKKyAgICAgICAgICAgIGlmIChNYXRoLmFicyhmaXJz
dEl0ZW0gLSB0aGlzLl92cml0dWFsaXplZFByZXZpb3VzRmlyc3RJdGVtKSA+PSBleHRyYVJvd3Mp
CisgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVWaXJ0dWFsaXplZEVsZW1lbnRzKCk7CiAgICAg
ICAgIH0pOwogICAgIH0KIApAQCAtNjkzLDEwICs2OTcsNyBAQCBXSS5UcmVlT3V0bGluZSA9IGNs
YXNzIFRyZWVPdXRsaW5lIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICByZXR1cm4ge2Nv
dW50LCBzaG91bGRSZXR1cm59OwogICAgICAgICB9CiAKLSAgICAgICAgbGV0IG51bWJlclZpc2li
bGUgPSBNYXRoLmNlaWwodGhpcy5fdmlydHVhbGl6ZWRTY3JvbGxDb250YWluZXIub2Zmc2V0SGVp
Z2h0IC8gdGhpcy5fdmlydHVhbGl6ZWRUcmVlSXRlbUhlaWdodCk7Ci0gICAgICAgIGxldCBleHRy
YVJvd3MgPSBNYXRoLm1heChudW1iZXJWaXNpYmxlICogNSwgNTApOwotICAgICAgICBsZXQgZmly
c3RJdGVtID0gTWF0aC5mbG9vcih0aGlzLl92aXJ0dWFsaXplZFNjcm9sbENvbnRhaW5lci5zY3Jv
bGxUb3AgLyB0aGlzLl92aXJ0dWFsaXplZFRyZWVJdGVtSGVpZ2h0KSAtIGV4dHJhUm93czsKLSAg
ICAgICAgbGV0IGxhc3RJdGVtID0gZmlyc3RJdGVtICsgbnVtYmVyVmlzaWJsZSArIChleHRyYVJv
d3MgKiAyKTsKKyAgICAgICAgbGV0IHtudW1iZXJWaXNpYmxlLCBleHRyYVJvd3MsIGZpcnN0SXRl
bSwgbGFzdEl0ZW19ID0gdGhpcy5fY2FsY3VsYXRlVmlydHVhbGl6ZWRWYWx1ZXMoKTsKIAogICAg
ICAgICBsZXQgc2hvdWxkU2Nyb2xsID0gZmFsc2U7CiAgICAgICAgIGlmIChmb2N1c2VkVHJlZUVs
ZW1lbnQgJiYgZm9jdXNlZFRyZWVFbGVtZW50LnJldmVhbGVkKGZhbHNlKSkgewpAQCAtNzA5LDcg
KzcxMCw3IEBAIFdJLlRyZWVPdXRsaW5lID0gY2xhc3MgVHJlZU91dGxpbmUgZXh0ZW5kcyBXSS5P
YmplY3QKICAgICAgICAgICAgICAgICBsYXN0SXRlbSA9IGluZGV4ICsgZXh0cmFSb3dzOwogICAg
ICAgICAgICAgfQogCi0gICAgICAgICAgICBzaG91bGRTY3JvbGwgPSBpbmRleCA8IGZpcnN0SXRl
bSB8fCBpbmRleCA+IGxhc3RJdGVtOworICAgICAgICAgICAgc2hvdWxkU2Nyb2xsID0gKGluZGV4
IDwgZmlyc3RJdGVtICsgZXh0cmFSb3dzKSB8fCAoaW5kZXggPiBsYXN0SXRlbSAtIGV4dHJhUm93
cyk7CiAgICAgICAgIH0KIAogICAgICAgICBsZXQgdG90YWxJdGVtcyA9IHdhbGsodGhpcywgKHtw
YXJlbnQsIHRyZWVFbGVtZW50LCBjb3VudH0pID0+IHsKQEAgLTczMSw2ICs3MzIsOCBAQCBXSS5U
cmVlT3V0bGluZSA9IGNsYXNzIFRyZWVPdXRsaW5lIGV4dGVuZHMgV0kuT2JqZWN0CiAKICAgICAg
ICAgaWYgKHNob3VsZFNjcm9sbCkKICAgICAgICAgICAgIHRoaXMuX3ZpcnR1YWxpemVkU2Nyb2xs
Q29udGFpbmVyLnNjcm9sbFRvcCA9IChmaXJzdEl0ZW0gKyBleHRyYVJvd3MpICogdGhpcy5fdmly
dHVhbGl6ZWRUcmVlSXRlbUhlaWdodDsKKworICAgICAgICB0aGlzLl92cml0dWFsaXplZFByZXZp
b3VzRmlyc3RJdGVtID0gZmlyc3RJdGVtOwogICAgIH0KIAogICAgIC8vIFByb3RlY3RlZApAQCAt
ODA4LDYgKzgxMSwyMCBAQCBXSS5UcmVlT3V0bGluZSA9IGNsYXNzIFRyZWVPdXRsaW5lIGV4dGVu
ZHMgV0kuT2JqZWN0CiAgICAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoV0kuVHJlZU91
dGxpbmUuX3N0eWxlRWxlbWVudCk7CiAgICAgfQogCisgICAgX2NhbGN1bGF0ZVZpcnR1YWxpemVk
VmFsdWVzKCkKKyAgICB7CisgICAgICAgIGxldCBudW1iZXJWaXNpYmxlID0gTWF0aC5jZWlsKHRo
aXMuX3ZpcnR1YWxpemVkU2Nyb2xsQ29udGFpbmVyLm9mZnNldEhlaWdodCAvIHRoaXMuX3ZpcnR1
YWxpemVkVHJlZUl0ZW1IZWlnaHQpOworICAgICAgICBsZXQgZXh0cmFSb3dzID0gTWF0aC5tYXgo
bnVtYmVyVmlzaWJsZSAqIDUsIDUwKTsKKyAgICAgICAgbGV0IGZpcnN0SXRlbSA9IE1hdGguZmxv
b3IodGhpcy5fdmlydHVhbGl6ZWRTY3JvbGxDb250YWluZXIuc2Nyb2xsVG9wIC8gdGhpcy5fdmly
dHVhbGl6ZWRUcmVlSXRlbUhlaWdodCkgLSBleHRyYVJvd3M7CisgICAgICAgIGxldCBsYXN0SXRl
bSA9IGZpcnN0SXRlbSArIG51bWJlclZpc2libGUgKyAoZXh0cmFSb3dzICogMik7CisgICAgICAg
IHJldHVybiB7CisgICAgICAgICAgICBudW1iZXJWaXNpYmxlLAorICAgICAgICAgICAgZXh0cmFS
b3dzLAorICAgICAgICAgICAgZmlyc3RJdGVtLAorICAgICAgICAgICAgbGFzdEl0ZW0sCisgICAg
ICAgIH07CisgICAgfQorCiAgICAgX2hhbmRsZUNvbnRleHRtZW51KGV2ZW50KQogICAgIHsKICAg
ICAgICAgbGV0IHRyZWVFbGVtZW50ID0gdGhpcy50cmVlRWxlbWVudEZyb21FdmVudChldmVudCk7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348193</attachid>
            <date>2018-08-27 13:49:56 -0700</date>
            <delta_ts>2018-08-27 14:28:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188960-20180827134955.patch</filename>
            <type>text/plain</type>
            <size>4795</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDUxOTZkMDUxMDMzMjU3NWEyNThhN2ExNTJlOGFm
NTA5MTczODYxM2UuLmI0YzY1ODE0YmEwYjNjMTUzMTZhOWRjYzAyOTliNTljYzQwZjI1NTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE4LTA4LTI3ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiB3
aGVuIHNjcm9sbGluZyBhIHZpcnR1YWxpemVkIFRyZWVPdXRsaW5lLCBvbmx5IHVwZGF0ZSB0aGUg
RE9NIHBlcmlvZGljYWxseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTg4OTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJpYW4gQnVyZy4KKworICAg
ICAgICBBZnRlciBlYWNoIGB1cGRhdGVWaXJ0dWFsaXplZEVsZW1lbnRzYCBjYWxsLCByZW1lbWJl
ciB0aGUgYFdJLlRyZWVFbGVtZW50YCB0aGF0IGlzIGxvY2F0ZWQKKyAgICAgICAgaGFsZndheSB3
aXRoaW4gdGhlIHZpc2libGUgbGlzdC4gV2hlbiBoYW5kbGluZyBlYWNoICJzY3JvbGwiLCBvbmx5
IHJlZ2VuZXJhdGUgdGhlCisgICAgICAgIGBXSS5UcmVlT3V0bGluZWAgRE9NIGlmIHRoZSB1c2Vy
IGhhcyBzY3JvbGxlZCBgZXh0cmFSb3dzYCBkaXN0YW5jZS4KKworICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvVmlld3MvVHJlZU91dGxpbmUuanM6CisgICAgICAgIChXSS5UcmVlT3V0bGluZSk6Cisg
ICAgICAgIChXSS5UcmVlT3V0bGluZS5wcm90b3R5cGUucmVnaXN0ZXJTY3JvbGxWaXJ0dWFsaXpl
cik6CisgICAgICAgIChXSS5UcmVlT3V0bGluZS5wcm90b3R5cGUudXBkYXRlVmlydHVhbGl6ZWRF
bGVtZW50cyk6CisgICAgICAgIChXSS5UcmVlT3V0bGluZS5wcm90b3R5cGUuX2NhbGN1bGF0ZVZp
cnR1YWxpemVkVmFsdWVzKTogQWRkZWQuCisKIDIwMTgtMDgtMjcgIERldmluIFJvdXNzbyAgPGRy
b3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHByb3ZpZGUgYXV0b2Nv
bXBsZXRpb24gZm9yIGV2ZW50IGJyZWFrcG9pbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UcmVlT3V0bGluZS5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RyZWVPdXRsaW5lLmpzCmluZGV4IGNhZDhh
ZDg4NWY5ZDA3NDgzZjI3N2JmNWQ3ZTZkM2E3ZTQ1ODU3MTAuLjRhMWJmZWI3YWQ0MTU5Zjg2OTQ3
ODU4MDJjMjQ5MTY3MzkwZmQzMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1RyZWVPdXRsaW5lLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RyZWVPdXRsaW5lLmpzCkBAIC01NSw2ICs1NSw3IEBA
IFdJLlRyZWVPdXRsaW5lID0gY2xhc3MgVHJlZU91dGxpbmUgZXh0ZW5kcyBXSS5PYmplY3QKICAg
ICAgICAgdGhpcy5fY3VzdG9tSW5kZW50ID0gZmFsc2U7CiAgICAgICAgIHRoaXMuX3NlbGVjdGFi
bGUgPSBzZWxlY3RhYmxlOwogCisgICAgICAgIHRoaXMuX3ZyaXR1YWxpemVkQ3VycmVudE1pZGRs
ZUl0ZW0gPSBOYU47CiAgICAgICAgIHRoaXMuX3ZpcnR1YWxpemVkU2Nyb2xsQ29udGFpbmVyID0g
bnVsbDsKICAgICAgICAgdGhpcy5fdmlydHVhbGl6ZWRUcmVlSXRlbUhlaWdodCA9IE5hTjsKICAg
ICAgICAgdGhpcy5fdmlydHVhbGl6ZWRUb3BTcGFjZXIgPSBudWxsOwpAQCAtNjU5LDcgKzY2MCwx
MCBAQCBXSS5UcmVlT3V0bGluZSA9IGNsYXNzIFRyZWVPdXRsaW5lIGV4dGVuZHMgV0kuT2JqZWN0
CiAgICAgICAgIHRoaXMuX3ZpcnR1YWxpemVkQm90dG9tU3BhY2VyID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiZGl2Iik7CiAKICAgICAgICAgdGhpcy5fdmlydHVhbGl6ZWRTY3JvbGxDb250YWlu
ZXIuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwgKGV2ZW50KSA9PiB7Ci0gICAgICAgICAgICB0
aGlzLnVwZGF0ZVZpcnR1YWxpemVkRWxlbWVudHMoKTsKKyAgICAgICAgICAgIGxldCB7bnVtYmVy
VmlzaWJsZSwgZXh0cmFSb3dzLCBmaXJzdEl0ZW19ID0gdGhpcy5fY2FsY3VsYXRlVmlydHVhbGl6
ZWRWYWx1ZXMoKTsKKworICAgICAgICAgICAgaWYgKE1hdGguYWJzKGZpcnN0SXRlbSArIChudW1i
ZXJWaXNpYmxlIC8gMikgLSB0aGlzLl92cml0dWFsaXplZEN1cnJlbnRNaWRkbGVJdGVtKSA+PSBl
eHRyYVJvd3MpCisgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVWaXJ0dWFsaXplZEVsZW1lbnRz
KCk7CiAgICAgICAgIH0pOwogICAgIH0KIApAQCAtNjkzLDEwICs2OTcsNyBAQCBXSS5UcmVlT3V0
bGluZSA9IGNsYXNzIFRyZWVPdXRsaW5lIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICBy
ZXR1cm4ge2NvdW50LCBzaG91bGRSZXR1cm59OwogICAgICAgICB9CiAKLSAgICAgICAgbGV0IG51
bWJlclZpc2libGUgPSBNYXRoLmNlaWwodGhpcy5fdmlydHVhbGl6ZWRTY3JvbGxDb250YWluZXIu
b2Zmc2V0SGVpZ2h0IC8gdGhpcy5fdmlydHVhbGl6ZWRUcmVlSXRlbUhlaWdodCk7Ci0gICAgICAg
IGxldCBleHRyYVJvd3MgPSBNYXRoLm1heChudW1iZXJWaXNpYmxlICogNSwgNTApOwotICAgICAg
ICBsZXQgZmlyc3RJdGVtID0gTWF0aC5mbG9vcih0aGlzLl92aXJ0dWFsaXplZFNjcm9sbENvbnRh
aW5lci5zY3JvbGxUb3AgLyB0aGlzLl92aXJ0dWFsaXplZFRyZWVJdGVtSGVpZ2h0KSAtIGV4dHJh
Um93czsKLSAgICAgICAgbGV0IGxhc3RJdGVtID0gZmlyc3RJdGVtICsgbnVtYmVyVmlzaWJsZSAr
IChleHRyYVJvd3MgKiAyKTsKKyAgICAgICAgbGV0IHtudW1iZXJWaXNpYmxlLCBleHRyYVJvd3Ms
IGZpcnN0SXRlbSwgbGFzdEl0ZW19ID0gdGhpcy5fY2FsY3VsYXRlVmlydHVhbGl6ZWRWYWx1ZXMo
KTsKIAogICAgICAgICBsZXQgc2hvdWxkU2Nyb2xsID0gZmFsc2U7CiAgICAgICAgIGlmIChmb2N1
c2VkVHJlZUVsZW1lbnQgJiYgZm9jdXNlZFRyZWVFbGVtZW50LnJldmVhbGVkKGZhbHNlKSkgewpA
QCAtNzA5LDcgKzcxMCw5IEBAIFdJLlRyZWVPdXRsaW5lID0gY2xhc3MgVHJlZU91dGxpbmUgZXh0
ZW5kcyBXSS5PYmplY3QKICAgICAgICAgICAgICAgICBsYXN0SXRlbSA9IGluZGV4ICsgZXh0cmFS
b3dzOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBzaG91bGRTY3JvbGwgPSBpbmRleCA8
IGZpcnN0SXRlbSB8fCBpbmRleCA+IGxhc3RJdGVtOworICAgICAgICAgICAgLy8gT25seSBzY3Jv
bGwgaWYgdGhlIGBmb2N1c2VkVHJlZUVsZW1lbnRgIGlzIG91dHNpZGUgdGhlIHZpc2libGUgaXRl
bXMsIG5vdCBpbmNsdWRpbmcKKyAgICAgICAgICAgIC8vIHRoZSBhZGRlZCBidWZmZXIgYGV4dHJh
Um93c2AuCisgICAgICAgICAgICBzaG91bGRTY3JvbGwgPSAoaW5kZXggPCBmaXJzdEl0ZW0gKyBl
eHRyYVJvd3MpIHx8IChpbmRleCA+IGxhc3RJdGVtIC0gZXh0cmFSb3dzKTsKICAgICAgICAgfQog
CiAgICAgICAgIGxldCB0b3RhbEl0ZW1zID0gd2Fsayh0aGlzLCAoe3BhcmVudCwgdHJlZUVsZW1l
bnQsIGNvdW50fSkgPT4gewpAQCAtNzMxLDYgKzczNCw4IEBAIFdJLlRyZWVPdXRsaW5lID0gY2xh
c3MgVHJlZU91dGxpbmUgZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgICAgICBpZiAoc2hvdWxkU2Ny
b2xsKQogICAgICAgICAgICAgdGhpcy5fdmlydHVhbGl6ZWRTY3JvbGxDb250YWluZXIuc2Nyb2xs
VG9wID0gKGZpcnN0SXRlbSArIGV4dHJhUm93cykgKiB0aGlzLl92aXJ0dWFsaXplZFRyZWVJdGVt
SGVpZ2h0OworCisgICAgICAgIHRoaXMuX3ZyaXR1YWxpemVkQ3VycmVudE1pZGRsZUl0ZW0gPSBm
aXJzdEl0ZW0gKyAobnVtYmVyVmlzaWJsZSAvIDIpOwogICAgIH0KIAogICAgIC8vIFByb3RlY3Rl
ZApAQCAtODA4LDYgKzgxMywyMCBAQCBXSS5UcmVlT3V0bGluZSA9IGNsYXNzIFRyZWVPdXRsaW5l
IGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoV0ku
VHJlZU91dGxpbmUuX3N0eWxlRWxlbWVudCk7CiAgICAgfQogCisgICAgX2NhbGN1bGF0ZVZpcnR1
YWxpemVkVmFsdWVzKCkKKyAgICB7CisgICAgICAgIGxldCBudW1iZXJWaXNpYmxlID0gTWF0aC5j
ZWlsKHRoaXMuX3ZpcnR1YWxpemVkU2Nyb2xsQ29udGFpbmVyLm9mZnNldEhlaWdodCAvIHRoaXMu
X3ZpcnR1YWxpemVkVHJlZUl0ZW1IZWlnaHQpOworICAgICAgICBsZXQgZXh0cmFSb3dzID0gTWF0
aC5tYXgobnVtYmVyVmlzaWJsZSAqIDUsIDUwKTsKKyAgICAgICAgbGV0IGZpcnN0SXRlbSA9IE1h
dGguZmxvb3IodGhpcy5fdmlydHVhbGl6ZWRTY3JvbGxDb250YWluZXIuc2Nyb2xsVG9wIC8gdGhp
cy5fdmlydHVhbGl6ZWRUcmVlSXRlbUhlaWdodCkgLSBleHRyYVJvd3M7CisgICAgICAgIGxldCBs
YXN0SXRlbSA9IGZpcnN0SXRlbSArIG51bWJlclZpc2libGUgKyAoZXh0cmFSb3dzICogMik7Cisg
ICAgICAgIHJldHVybiB7CisgICAgICAgICAgICBudW1iZXJWaXNpYmxlLAorICAgICAgICAgICAg
ZXh0cmFSb3dzLAorICAgICAgICAgICAgZmlyc3RJdGVtLAorICAgICAgICAgICAgbGFzdEl0ZW0s
CisgICAgICAgIH07CisgICAgfQorCiAgICAgX2hhbmRsZUNvbnRleHRtZW51KGV2ZW50KQogICAg
IHsKICAgICAgICAgbGV0IHRyZWVFbGVtZW50ID0gdGhpcy50cmVlRWxlbWVudEZyb21FdmVudChl
dmVudCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>