<?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>178396</bug_id>
          
          <creation_ts>2017-10-17 10:27:14 -0700</creation_ts>
          <short_desc>Composited frames incorrectly get requestAnimationFrame throttled</short_desc>
          <delta_ts>2017-12-05 15:30:53 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Animations</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mihai Parparita">mihaip</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</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>1361293</commentid>
    <comment_count>0</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2017-10-17 10:27:14 -0700</bug_when>
    <thetext>I&apos;m observing iframes having their requestAnimationFrame callbacks getting incorrectly throttled because WebKit thinks that they are outside of the viewport, when they are in fact visible. To reproduce (in either Safari 11.0 or more recent WebKit builds - I tried r223536):

1. Go to http://persistent.info/webkit/test-cases/frame-raf-throttling/container.html. There is an &quot;overflow: auto&quot; scrollable div (gray background, 300 pixels wide) in which there is a composited iframe (yellow, 2000 pixels wide). The iframe uses requestAnimationFrame (for how it just reports the interval between successive calls, to make throttling more apparent)
2. Scroll the container sideways
3. Once the scroll offset goes past the window width (there&apos;s a &quot;Scroll to Window Width&quot; button to do this) then the requestAnimationFrame cadence drops down every 10 seconds, corresponding to the aggressiveThrottlingAnimationInterval value in ScriptedAnimationController (which is triggered by ThrottlingReason::OutsideViewport)

What I&apos;ve traced is that when the area gets scrolled, we end up in FrameView::viewportContentsChanged, which uses applyRecursivelyWithVisibleRect() to get the visible rect to determine if the iframe is visible. That in turn relies on windowClipRect(), and that returns a 0x0 sized rectangle.

Digging into windowClipRect, we end up in windowClipRectForFrameOwner, which since the frame has an enclosing layer uses that layer&apos;s childrenClipRect. The return value of that is (-&lt;scroll offset&gt;, y - &lt;window width&gt; x &lt;window height&gt;). Thus if the scroll offset is greater than the window width, when we intersect the rectangle with the window&apos;s clip rectangle.

The reason why childrenClipRect&apos;s return value appears to refleect the window&apos;s dimensions is because it passes renderer().view().unscaledDocumentRect() as the paintDirtyRect parameter to calculateRects (which forms the basis of the return value).

I&apos;m out of my depth here as far as my WebKit knowledge, so someone with more familiarity will need to attempt a fix. Though the manifestation of this bug is that requestAnimationFrame gets throttled incorrectly, since the problem is at a lower level (as far as determining its visible rectangle) there may be other side effects too.

Given that unscaledDocumentRect is used as the initial value, a workaround is to add an element to the main frame document that is as wide as the iframe. This is what the &quot;Add Filler&quot; button does, and once that element is present (even if the main frame document uses &quot;overflow: hidden&quot;) then throttling does not occur.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1361317</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-10-17 11:12:10 -0700</bug_when>
    <thetext>&lt;rdar://problem/35033205&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378076</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-12-04 21:05:27 -0800</bug_when>
    <thetext>I think the issue is that FrameView::windowClipRectForFrameOwner() uses enclosingLayer-&gt;childrenClipRect() which is sensitive to compositing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378081</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-12-04 21:25:01 -0800</bug_when>
    <thetext>RenderLayer::childrenClipRect() takes the document rect (renderer().view().unscaledDocumentRect()) and calls localToAbsoluteQuad() on it, which maps it through the scroll offset, so it can end up with some large negative offset.

This seems wrong; we should probably map LayoutRect::infiniteRect() through and then clip to the document rect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378082</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-12-04 21:26:28 -0800</bug_when>
    <thetext>I also note that RenderWidget::setWidgetGeometry() uses childrenClipRect() and may have a similar bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378357</commentid>
    <comment_count>5</comment_count>
      <attachid>328497</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-12-05 14:15:18 -0800</bug_when>
    <thetext>Created attachment 328497
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378400</commentid>
    <comment_count>6</comment_count>
      <attachid>328497</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-05 15:30:51 -0800</bug_when>
    <thetext>Comment on attachment 328497
Patch

Clearing flags on attachment: 328497

Committed r225554: &lt;https://trac.webkit.org/changeset/225554&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378401</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-05 15:30:53 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328497</attachid>
            <date>2017-12-05 14:15:18 -0800</date>
            <delta_ts>2017-12-05 15:30:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178396-20171205141518.patch</filename>
            <type>text/plain</type>
            <size>6890</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDlkYjc4MmZlZDViMGYw
OWNhZDNlYTk3MTg4Y2ZkNGQ3OTIxMWExZi4uYzhjZDlkYjM1Nzc0NzRiNTUyYmU1MzkyZmQ2OGQ2
MWRmM2JhYTU5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE3LTEyLTA1ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIENvbXBvc2l0ZWQg
ZnJhbWVzIGluY29ycmVjdGx5IGdldCByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgdGhyb3R0bGVkCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgzOTYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJZiBhIGNvbXBv
c2l0ZWQgaWZyYW1lIHdhcyBpbnNpZGUgb3ZlcmZsb3c6c2Nyb2xsLCBhbmQgdGhlIG92ZXJmbG93
IHdhcyBzY3JvbGxlZCB0byB0aGUgbGVmdAorICAgICAgICBmdXJ0aGVyIHRoYW4gdGhlIHdpbmRv
dyB3aWR0aCwgdGhlbiBSZW5kZXJMYXllcjo6Y2hpbGRyZW5DbGlwUmVjdCgpIHdvdWxkIHJldHVy
biBhbiBlbXB0eSByZWN0YW5nbGUKKyAgICAgICAgYW5kIHdlJ2QgaW5jb3JyZWN0bHkgY29uc2lk
ZXIgdGhlIGlmcmFtZSBvdXQgb2YgdmlldywgYW5kIHRodXMgdGhyb3R0bGUgaXRzIHJlcXVlc3RB
bmltYXRpb25GcmFtZS4KKworICAgICAgICBjaGlsZHJlbkNsaXBSZWN0KCkgd2FzIHRha2luZyB1
bnNjYWxlZERvY3VtZW50UmVjdCgpLCBhcHBseWluZyB0aGUgY2xpcCwgYW5kIHRoZW4gbWFwcGlu
ZyB0aGUgcmVzdWx0CisgICAgICAgIGZyb20gbG9jYWwgdG8gYWJzb2x1dGUgY29vcmRpbmF0ZXMg
KHdoaWNoIG1hcHBlZCBpdCB0aHJvdWdoIHRoZSBvdmVyZmxvdyBzY3JvbGwgb2Zmc2V0KS4gVGhp
cyBpcyBpbmNvcnJlY3QKKyAgICAgICAgYmVjYXVzZSBpdCBjb25zaWRlcnMgdGhlIHVuc2NhbGVk
RG9jdW1lbnRSZWN0KCkgdG8gYmUgaW4gbG9jYWwgY29vcmRpbmF0ZXMsIHdoaWNoIGl0IGlzIG5v
dC4KKworICAgICAgICBJbnN0ZWFkLCBzdGFydCB3aXRoIHRoZSBpbmZpbml0ZSByZWN0LCB3aGlj
aCBlc3NlbnRpYWxseSB0ZWxscyB1cyBpZiB3ZSBoYXZlIGFueSBjbGlwcGluZywgYW5kIHRoZW4K
KyAgICAgICAgaW50ZXJzZWN0IHRoYXQgd2l0aCB0aGUgZG9jdW1lbnQgcmVjdCBhdCB0aGUgZW5k
LiBTb21ldGhpbmcgc2ltaWxhciBpcyBkb25lIGluIG90aGVyIHBsYWNlcyB0aGF0IGNhbGwuCisg
ICAgICAgIGNhbGN1bGF0ZVJlY3RzKCkuCisKKyAgICAgICAgVGVzdDogZmFzdC9hbmltYXRpb24v
cmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGhyb3R0bGUtaW5zaWRlLW92ZXJmbG93LXNjcm9sbC5o
dG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6OmNhbGN1bGF0ZUNsaXBSZWN0cyBjb25zdCk6CisKIDIwMTctMTIt
MDQgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xl
YW51cCBjb2RlIHRoYXQgY29tcHV0ZXMgaWZyYW1lIGNvbnRlbnQgb2Zmc2V0cyBpbiBGcmFtZVZp
ZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDI0MDc3ZjIw
NGFiZGQwOGU3NzZiYmIwZWU5ZTAxZDdhNzJiNzczNTEuLmU1ZTQyY2M2MjVjOTIxYjM2OTZhNDVl
MDIzZmNhNGJkYWY3MTE1ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmNwcApAQCAtNTYzMyw4ICs1NjMzLDEyIEBAIExheW91dFJlY3QgUmVuZGVyTGF5ZXI6OmNoaWxk
cmVuQ2xpcFJlY3QoKSBjb25zdAogICAgIENsaXBSZWN0IGZvcmVncm91bmRSZWN0OwogICAgIENs
aXBSZWN0c0NvbnRleHQgY2xpcFJlY3RzQ29udGV4dChjbGlwcGluZ1Jvb3RMYXllciwgVGVtcG9y
YXJ5Q2xpcFJlY3RzKTsKICAgICAvLyBOZWVkIHRvIHVzZSB0ZW1wb3JhcnkgY2xpcCByZWN0cywg
YmVjYXVzZSB0aGUgdmFsdWUgb2YgJ2RvbnRDbGlwVG9PdmVyZmxvdycgbWF5IGJlIGRpZmZlcmVu
dCBmcm9tIHRoZSBwYWludGluZyBwYXRoICg8cmRhcjovL3Byb2JsZW0vMTE4NDQ5MDk+KS4KLSAg
ICBjYWxjdWxhdGVSZWN0cyhjbGlwUmVjdHNDb250ZXh0LCByZW5kZXJlcigpLnZpZXcoKS51bnNj
YWxlZERvY3VtZW50UmVjdCgpLCBsYXllckJvdW5kcywgYmFja2dyb3VuZFJlY3QsIGZvcmVncm91
bmRSZWN0LCBvZmZzZXRGcm9tQW5jZXN0b3IoY2xpcFJlY3RzQ29udGV4dC5yb290TGF5ZXIpKTsK
LSAgICByZXR1cm4gY2xpcHBpbmdSb290TGF5ZXItPnJlbmRlcmVyKCkubG9jYWxUb0Fic29sdXRl
UXVhZChGbG9hdFF1YWQoZm9yZWdyb3VuZFJlY3QucmVjdCgpKSkuZW5jbG9zaW5nQm91bmRpbmdC
b3goKTsKKyAgICBjYWxjdWxhdGVSZWN0cyhjbGlwUmVjdHNDb250ZXh0LCBMYXlvdXRSZWN0Ojpp
bmZpbml0ZVJlY3QoKSwgbGF5ZXJCb3VuZHMsIGJhY2tncm91bmRSZWN0LCBmb3JlZ3JvdW5kUmVj
dCwgb2Zmc2V0RnJvbUFuY2VzdG9yKGNsaXBSZWN0c0NvbnRleHQucm9vdExheWVyKSk7CisgICAg
aWYgKGZvcmVncm91bmRSZWN0LnJlY3QoKS5pc0luZmluaXRlKCkpCisgICAgICAgIHJldHVybiBy
ZW5kZXJlcigpLnZpZXcoKS51bnNjYWxlZERvY3VtZW50UmVjdCgpOworCisgICAgYXV0byBhYnNv
bHV0ZUNsaXBwaW5nUmVjdCA9IGNsaXBwaW5nUm9vdExheWVyLT5yZW5kZXJlcigpLmxvY2FsVG9B
YnNvbHV0ZVF1YWQoRmxvYXRRdWFkKGZvcmVncm91bmRSZWN0LnJlY3QoKSkpLmVuY2xvc2luZ0Jv
dW5kaW5nQm94KCk7CisgICAgcmV0dXJuIGludGVyc2VjdGlvbihhYnNvbHV0ZUNsaXBwaW5nUmVj
dCwgcmVuZGVyZXIoKS52aWV3KCkudW5zY2FsZWREb2N1bWVudFJlY3QoKSk7CiB9CiAKIExheW91
dFJlY3QgUmVuZGVyTGF5ZXI6OmNsaXBSZWN0UmVsYXRpdmVUb0FuY2VzdG9yKFJlbmRlckxheWVy
KiBhbmNlc3RvciwgTGF5b3V0U2l6ZSBvZmZzZXRGcm9tQW5jZXN0b3IsIGNvbnN0IExheW91dFJl
Y3QmIGNvbnN0cmFpbmluZ1JlY3QpIGNvbnN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzI0MGZhZWMyMjA5ZDlmOWFlY2Fi
ZjdmMzMwN2JjNDRkYmRkOGY3Yi4uYzlkZDA0ODA5ODkyMTRjMTJmYmJjOTNlNDcyZmE0NmQ4ZWEz
ZWZkNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE3LTEyLTA1ICBTaW1vbiBGcmFzZXIgIDxz
aW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIENvbXBvc2l0ZWQgZnJhbWVzIGluY29y
cmVjdGx5IGdldCByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgdGhyb3R0bGVkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgzOTYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3JlcXVl
c3QtYW5pbWF0aW9uLWZyYW1lLXRocm90dGxlLWluc2lkZS1vdmVyZmxvdy1zY3JvbGwtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlv
bi1mcmFtZS10aHJvdHRsZS1pbnNpZGUtb3ZlcmZsb3ctc2Nyb2xsLmh0bWw6IEFkZGVkLgorCiAy
MDE3LTEyLTA0ICBOYW4gV2FuZyAgPG5fd2FuZ0BhcHBsZS5jb20+CiAKICAgICAgICAgQVg6IEFP
TTogSW1wbGVtZW50IHJlbGF0aW9uIHR5cGUgcHJvcGVydGllcwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGhyb3R0bGUtaW5z
aWRlLW92ZXJmbG93LXNjcm9sbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2FuaW1h
dGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aHJvdHRsZS1pbnNpZGUtb3ZlcmZsb3ctc2Ny
b2xsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Y2RiY2I4ZmRmNDFhOTZlOTk5YTRlOWE2YjU4
NTkyZmJjN2YyNzVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRp
b24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGhyb3R0bGUtaW5zaWRlLW92ZXJmbG93LXNjcm9s
bC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdHMgdGhhdCByZXF1ZXN0QW5pbWF0
aW9uRnJhbWUgaXMgdGhyb3R0bGVkIGluIHN1YmZyYW1lcyBhcmUgaW5zaWRlIHNjcm9sbGVkIG92
ZXJmbG93IHNjcm9sbAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworRnJhbWUgaXMg
aW5pdGlhbGx5IGluc2lkZSB0aGUgdmlld3BvcnQgc28gcmVxdWVzdEFuaW1hdGlvbkZyYW1lIHNo
b3VsZCBub3QgYmUgdGhyb3R0bGVkCitQQVNTIHRlc3RGcmFtZS5jb250ZW50V2luZG93LmludGVy
bmFscy5pc1JlcXVlc3RBbmltYXRpb25GcmFtZVRocm90dGxlZCgpIGlzIGZhbHNlCitTY3JvbGxp
bmcgb3ZlcmZsb3cuCityZXF1ZXN0QW5pbWF0aW9uRnJhbWUgc2hvdWxkIHN0aWxsIG5vdCBiZSB0
aHJvdHRsZWQKK1BBU1MgdGVzdEZyYW1lLmNvbnRlbnRXaW5kb3cuaW50ZXJuYWxzLmlzUmVxdWVz
dEFuaW1hdGlvbkZyYW1lVGhyb3R0bGVkKCkgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aHJvdHRsZS1pbnNpZGUtb3Zl
cmZsb3ctc2Nyb2xsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFu
aW1hdGlvbi1mcmFtZS10aHJvdHRsZS1pbnNpZGUtb3ZlcmZsb3ctc2Nyb2xsLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZmJlNWYwNjZkMjUzYzBjOWU0ZjFhZDg4MmE5NDNjYjhmMzRjN2I2ZgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZy
YW1lLXRocm90dGxlLWluc2lkZS1vdmVyZmxvdy1zY3JvbGwuaHRtbApAQCAtMCwwICsxLDUzIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigi
VGVzdHMgdGhhdCByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgaXMgdGhyb3R0bGVkIGluIHN1YmZyYW1l
cyBhcmUgaW5zaWRlIHNjcm9sbGVkIG92ZXJmbG93IHNjcm9sbCIpOword2luZG93LmpzVGVzdElz
QXN5bmMgPSB0cnVlOworCitmdW5jdGlvbiBzY3JvbGxPdmVyZmxvdygpCit7CisKKyAgICBkZWJ1
ZygiU2Nyb2xsaW5nIG92ZXJmbG93LiIpOworICAgIHZhciBjb250YWluZXIgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJyk7CisgICAgY29udGFpbmVyLnNjcm9sbExlZnQgPSB3
aW5kb3cuaW5uZXJXaWR0aCArIDEwOworCisgICAgZGVidWcoInJlcXVlc3RBbmltYXRpb25GcmFt
ZSBzaG91bGQgc3RpbGwgbm90IGJlIHRocm90dGxlZCIpOworICAgIHNob3VsZEJlRmFsc2UoInRl
c3RGcmFtZS5jb250ZW50V2luZG93LmludGVybmFscy5pc1JlcXVlc3RBbmltYXRpb25GcmFtZVRo
cm90dGxlZCgpIik7CisgICAgCisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIHJ1
blRlc3QoKQoreworICAgIHRlc3RGcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0
RnJhbWUiKTsKKyAgICBkZWJ1ZygiRnJhbWUgaXMgaW5pdGlhbGx5IGluc2lkZSB0aGUgdmlld3Bv
cnQgc28gcmVxdWVzdEFuaW1hdGlvbkZyYW1lIHNob3VsZCBub3QgYmUgdGhyb3R0bGVkIik7Cisg
ICAgc2hvdWxkQmVGYWxzZSgidGVzdEZyYW1lLmNvbnRlbnRXaW5kb3cuaW50ZXJuYWxzLmlzUmVx
dWVzdEFuaW1hdGlvbkZyYW1lVGhyb3R0bGVkKCkiKTsKKyAgICBzY3JvbGxPdmVyZmxvdygpOwor
fQorPC9zY3JpcHQ+Cis8c3R5bGU+CisjY29udGFpbmVyIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1
dGU7CisgICAgbGVmdDogMDsKKyAgICB3aWR0aDogMzAwcHg7CisgICAgaGVpZ2h0OiAyMDBweDsK
KyAgICBvdmVyZmxvdy14OiBhdXRvOworICAgIGJhY2tncm91bmQ6IHNpbHZlcjsKK30KKworI3Rl
c3RGcmFtZSB7CisgICAgd2lkdGg6IDIwMDBweDsKKyAgICBoZWlnaHQ6IDEwMHB4OworICAgIGJv
cmRlcjogMnB4IHNvbGlkIGJsYWNrOworICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07Cit9CisK
Kzwvc3R5bGU+Cis8ZGl2IGlkPSJjb250YWluZXIiPgorICAgIDxpZnJhbWUgaWQ9InRlc3RGcmFt
ZSIgc3JjPSJyZXNvdXJjZXMvcmVxdWVzdEFuaW1hdGlvbkZyYW1lLWZyYW1lLmh0bWwiIG9ubG9h
ZD0icnVuVGVzdCgpIj48L2lmcmFtZT4KKzwvZGl2PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>