<?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>157455</bug_id>
          
          <creation_ts>2016-05-07 15:49:32 -0700</creation_ts>
          <short_desc>Absolute positioned element is not placed properly when parent becomes the containing block.</short_desc>
          <delta_ts>2016-05-11 19:09:12 -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 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="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>hyatt</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1190989</commentid>
    <comment_count>0</comment_count>
      <attachid>278345</attachid>
    <who name="alan">zalan</who>
    <bug_when>2016-05-07 15:49:32 -0700</bug_when>
    <thetext>Created attachment 278345
Test case

When the parent becomes the containing block by setting transform on it. (-by using timeout)
-see test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191796</commentid>
    <comment_count>1</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2016-05-10 19:14:48 -0700</bug_when>
    <thetext>rdar://problem/26212568</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191811</commentid>
    <comment_count>2</comment_count>
      <attachid>278576</attachid>
    <who name="alan">zalan</who>
    <bug_when>2016-05-10 21:24:30 -0700</bug_when>
    <thetext>Created attachment 278576
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191957</commentid>
    <comment_count>3</comment_count>
      <attachid>278576</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-05-11 09:53:13 -0700</bug_when>
    <thetext>Comment on attachment 278576
Patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        When a container becomes a containing block, we need to check if there&apos;s any positioned box in its subtree
&gt; +        in order to &quot;re-parent&quot; them. It basically means that we remove them from RenderBlock::positionedDescendants map

&quot;...if there is ... to reparent it&quot;, or &quot;if there are...to reparent them&quot;. Don&apos;t mix singular and plural!

&gt; Source/WebCore/rendering/RenderBlock.cpp:243
&gt; +    if (oldStyle.position() == newStyle.position() &amp;&amp; hadTransform == willHaveTransform)

This is OK but I would prefer we add RenderStyle::containingBlockForPositioned(), or positionedOrTransformed() or something. I bet we need the same logic elsewhere.

&gt; Source/WebCore/rendering/RenderBlock.cpp:260
&gt; +            &amp;&amp; (containingBlock-&gt;style().position() == StaticPosition || (containingBlock-&gt;isInline() &amp;&amp; !containingBlock-&gt;isReplaced()))) {

Would be nice to wrap this conditional in a function so I know what you&apos;re checking. Why inline and not replaced! I think this pattern exists in multiple places.

Could be done separately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192185</commentid>
    <comment_count>4</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2016-05-11 19:04:01 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 278576 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=278576&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:10
&gt; &gt; +        When a container becomes a containing block, we need to check if there&apos;s any positioned box in its subtree
&gt; &gt; +        in order to &quot;re-parent&quot; them. It basically means that we remove them from RenderBlock::positionedDescendants map
&gt; 
&gt; &quot;...if there is ... to reparent it&quot;, or &quot;if there are...to reparent them&quot;.
&gt; Don&apos;t mix singular and plural!
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderBlock.cpp:243
&gt; &gt; +    if (oldStyle.position() == newStyle.position() &amp;&amp; hadTransform == willHaveTransform)
&gt; 
&gt; This is OK but I would prefer we add
&gt; RenderStyle::containingBlockForPositioned(), or positionedOrTransformed() or
&gt; something. I bet we need the same logic elsewhere.
There are a couple of places where we use similar logic (requiresLayer and canContainAbsolutelyPositionedObjects) but it seems like we explicitly write out all the requires properties there.
 
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderBlock.cpp:260
&gt; &gt; +            &amp;&amp; (containingBlock-&gt;style().position() == StaticPosition || (containingBlock-&gt;isInline() &amp;&amp; !containingBlock-&gt;isReplaced()))) {
&gt; 
&gt; Would be nice to wrap this conditional in a function so I know what you&apos;re
&gt; checking. Why inline and not replaced! I think this pattern exists in
&gt; multiple places.
&gt; 
&gt; Could be done separately.
Ok. I&apos;ll do it in a follow-up patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192186</commentid>
    <comment_count>5</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2016-05-11 19:09:12 -0700</bug_when>
    <thetext>Committed r200736: &lt;http://trac.webkit.org/changeset/200736&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>278345</attachid>
            <date>2016-05-07 15:49:32 -0700</date>
            <delta_ts>2016-05-07 15:49:32 -0700</delta_ts>
            <desc>Test case</desc>
            <filename>animation-overlap-with-children.html</filename>
            <type>text/html</type>
            <size>742</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">ICA8c3R5bGU+CiAgICAKICAgIC50cmFuc2xhdGUgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNs
YXRlWCgxMDBweCk7CiAgICB9CiAgICAKICAgIC5jb250YWluZXIgewogICAgICBoZWlnaHQ6IDIw
MHB4OwogICAgICB3aWR0aDogMjAwcHg7CiAgICAgIGJvcmRlcjogMTAwcHggc29saWQgZ3JheTsK
ICAgIH0KICAgIAogICAgLmJveCB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgbGVm
dDogMHB4OwogICAgICB0b3A6IDBweDsKICAgICAgaGVpZ2h0OiAxMDBweDsKICAgICAgd2lkdGg6
IDEwMHB4OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOwogICAgfQogIDwvc3R5bGU+Cjxi
b2R5PgpQQVNTIGlmIGdyZWVuIGFuZCBibHVlIGJveGVzIGFyZSBwb3NpdGlvbmVkIHRoZSBzYW1l
IHdheS4KICA8ZGl2IGNsYXNzPSJjb250YWluZXIiIGlkPXRpbWVyYmFzZWQ+CiAgICA8ZGl2IGNs
YXNzPSJib3giPjwvZGl2PgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InRyYW5zbGF0ZSBjb250YWlu
ZXIiPgogICAgPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogZ3JlZW4iIGNsYXNzPSJib3gi
PjwvZGl2PgogIDwvZGl2PgogIDxzY3JpcHQ+CiAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RpbWVyYmFzZWQnKS5jbGFzc0xpc3QudG9nZ2xl
KCJ0cmFuc2xhdGUiKTsgCiAgICB9LCA1MDApOwogIDwvc2NyaXB0PgoKPC9ib2R5Pgo8L2h0bWw+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278576</attachid>
            <date>2016-05-10 21:24:30 -0700</date>
            <delta_ts>2016-05-11 09:53:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157455-20160510212518.patch</filename>
            <type>text/plain</type>
            <size>11783</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwNTY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTk2MGU3OTdlOGY5ZjJk
NWIxMTYwOTk4YmZhMDJkYTc2MzdkNzc4Yy4uOGJiYTUzOWY2ZTBkNTNmNGQ1YzgxODc3ZThiYTgz
ODQ3Y2QxNzNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE2LTA1LTEwICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWJzb2x1dGUgcG9zaXRpb25l
ZCBlbGVtZW50IGlzIG5vdCBwbGFjZWQgcHJvcGVybHkgd2hlbiBwYXJlbnQgYmVjb21lcyB0aGUg
Y29udGFpbmluZyBibG9jay4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE1NzQ1NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjYyMTI1Njg+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBhIGNvbnRh
aW5lciBiZWNvbWVzIGEgY29udGFpbmluZyBibG9jaywgd2UgbmVlZCB0byBjaGVjayBpZiB0aGVy
ZSdzIGFueSBwb3NpdGlvbmVkIGJveCBpbiBpdHMgc3VidHJlZQorICAgICAgICBpbiBvcmRlciB0
byAicmUtcGFyZW50IiB0aGVtLiBJdCBiYXNpY2FsbHkgbWVhbnMgdGhhdCB3ZSByZW1vdmUgdGhl
bSBmcm9tIFJlbmRlckJsb2NrOjpwb3NpdGlvbmVkRGVzY2VuZGFudHMgbWFwCisgICAgICAgIGFu
ZCB0aGV5J2xsIGdldCByZS1pbnNlcnRlZCBkdXJpbmcgdGhlIG5leHQgbGF5b3V0IGNvcnJlY3Rs
eS4KKyAgICAgICAgVGhpcyBwYXRjaCBmaXhlcyB0aGUgY2FzZSB3aGVuIGEgY29udGFpbmVyIGJl
Y29tZXMgdGhlIGNvbnRhaW5pbmcgYmxvY2sgYnkgc2V0dGluZyB0aGUgdHJhbnNmb3JtIHByb3Bl
cnR5IGFuZCBpdHMgcG9zaXRpb25lZAorICAgICAgICBjaGlsZCBnZXRzIG1pc3BsYWNlZC4gIAor
CisgICAgICAgIFRlc3Q6IGZhc3QvYmxvY2svY29udGFpbmluZy1ibG9jay1jaGFuZ2VzLmh0bWwK
KworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCbG9jazo6cmVtb3ZlUG9zaXRpb25lZE9iamVjdHNJZk5lZWRlZCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJCbG9jazo6c3R5bGVXaWxsQ2hhbmdlKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyQmxvY2suaDoKKwogMjAxNi0wNS0wOCAgWmFsYW4gQnVqdGFzICA8emFsYW5A
YXBwbGUuY29tPgogCiAgICAgICAgIGlPUyBzZWxlY3Rpb246IFVzZSBpbmZsb3cgY29udGFpbmlu
ZyBibG9jayBmb3IgcG9zaXRpb25lZCA8YnI+LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5jcHAKaW5kZXggMTYzY2RkNDI1YjVhNjVmYzc0ZDc2ZGE2NWYyMThiZmI4OTgxNGI0
My4uODhmMjIyYjYxYWM4YzRhYmIyYWY2OTU4MzJiNGI2OWU1YWQxODFjOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC0yMzYsMzggKzIzNiw0NSBAQCBib29s
IFJlbmRlckJsb2NrOjpoYXNSYXJlRGF0YSgpIGNvbnN0CiAgICAgcmV0dXJuIGdSYXJlRGF0YU1h
cCA/IGdSYXJlRGF0YU1hcC0+Y29udGFpbnModGhpcykgOiBmYWxzZTsKIH0KIAotdm9pZCBSZW5k
ZXJCbG9jazo6c3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5k
ZXJTdHlsZSYgbmV3U3R5bGUpCit2b2lkIFJlbmRlckJsb2NrOjpyZW1vdmVQb3NpdGlvbmVkT2Jq
ZWN0c0lmTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJiBvbGRTdHlsZSwgY29uc3QgUmVuZGVyU3R5
bGUmIG5ld1N0eWxlKQogewotICAgIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSA9IGhhc0lu
aXRpYWxpemVkU3R5bGUoKSA/ICZzdHlsZSgpIDogbnVsbHB0cjsKLQotICAgIHNldFJlcGxhY2Vk
KG5ld1N0eWxlLmlzRGlzcGxheUlubGluZVR5cGUoKSk7CisgICAgYm9vbCBoYWRUcmFuc2Zvcm0g
PSBvbGRTdHlsZS5oYXNUcmFuc2Zvcm1SZWxhdGVkUHJvcGVydHkoKTsKKyAgICBib29sIHdpbGxI
YXZlVHJhbnNmb3JtID0gbmV3U3R5bGUuaGFzVHJhbnNmb3JtUmVsYXRlZFByb3BlcnR5KCk7Cisg
ICAgaWYgKG9sZFN0eWxlLnBvc2l0aW9uKCkgPT0gbmV3U3R5bGUucG9zaXRpb24oKSAmJiBoYWRU
cmFuc2Zvcm0gPT0gd2lsbEhhdmVUcmFuc2Zvcm0pCisgICAgICAgIHJldHVybjsKIAotICAgIGlm
IChvbGRTdHlsZSAmJiBvbGRTdHlsZS0+aGFzVHJhbnNmb3JtUmVsYXRlZFByb3BlcnR5KCkgJiYg
IW5ld1N0eWxlLmhhc1RyYW5zZm9ybVJlbGF0ZWRQcm9wZXJ0eSgpKQorICAgIC8vIFdlIGFyZSBu
byBsb25nZXIgYSBjb250YWluaW5nIGJsb2NrLgorICAgIGlmIChuZXdTdHlsZS5wb3NpdGlvbigp
ID09IFN0YXRpY1Bvc2l0aW9uICYmICF3aWxsSGF2ZVRyYW5zZm9ybSkgeworICAgICAgICAvLyBD
bGVhciBvdXIgcG9zaXRpb25lZCBvYmplY3RzIGxpc3QuIE91ciBhYnNvbHV0ZWx5IHBvc2l0aW9u
ZWQgZGVzY2VuZGFudHMgd2lsbCBiZQorICAgICAgICAvLyBpbnNlcnRlZCBpbnRvIG91ciBjb250
YWluaW5nIGJsb2NrJ3MgcG9zaXRpb25lZCBvYmplY3RzIGxpc3QgZHVyaW5nIGxheW91dC4KICAg
ICAgICAgcmVtb3ZlUG9zaXRpb25lZE9iamVjdHMobnVsbHB0ciwgTmV3Q29udGFpbmluZ0Jsb2Nr
KTsKLQotICAgIGlmIChvbGRTdHlsZSAmJiBwYXJlbnQoKSAmJiBkaWZmID09IFN0eWxlRGlmZmVy
ZW5jZUxheW91dCAmJiBvbGRTdHlsZS0+cG9zaXRpb24oKSAhPSBuZXdTdHlsZS5wb3NpdGlvbigp
KSB7Ci0gICAgICAgIGlmIChuZXdTdHlsZS5wb3NpdGlvbigpID09IFN0YXRpY1Bvc2l0aW9uKQot
ICAgICAgICAgICAgLy8gQ2xlYXIgb3VyIHBvc2l0aW9uZWQgb2JqZWN0cyBsaXN0LiBPdXIgYWJz
b2x1dGVseSBwb3NpdGlvbmVkIGRlc2NlbmRhbnRzIHdpbGwgYmUKLSAgICAgICAgICAgIC8vIGlu
c2VydGVkIGludG8gb3VyIGNvbnRhaW5pbmcgYmxvY2sncyBwb3NpdGlvbmVkIG9iamVjdHMgbGlz
dCBkdXJpbmcgbGF5b3V0LgotICAgICAgICAgICAgcmVtb3ZlUG9zaXRpb25lZE9iamVjdHMobnVs
bHB0ciwgTmV3Q29udGFpbmluZ0Jsb2NrKTsKLSAgICAgICAgZWxzZSBpZiAob2xkU3R5bGUtPnBv
c2l0aW9uKCkgPT0gU3RhdGljUG9zaXRpb24pIHsKLSAgICAgICAgICAgIC8vIFJlbW92ZSBvdXIg
YWJzb2x1dGVseSBwb3NpdGlvbmVkIGRlc2NlbmRhbnRzIGZyb20gdGhlaXIgY3VycmVudCBjb250
YWluaW5nIGJsb2NrLgotICAgICAgICAgICAgLy8gVGhleSB3aWxsIGJlIGluc2VydGVkIGludG8g
b3VyIHBvc2l0aW9uZWQgb2JqZWN0cyBsaXN0IGR1cmluZyBsYXlvdXQuCi0gICAgICAgICAgICBh
dXRvIGNvbnRhaW5pbmdCbG9jayA9IHBhcmVudCgpOwotICAgICAgICAgICAgd2hpbGUgKGNvbnRh
aW5pbmdCbG9jayAmJiAhaXM8UmVuZGVyVmlldz4oKmNvbnRhaW5pbmdCbG9jaykKLSAgICAgICAg
ICAgICAgICAmJiAoY29udGFpbmluZ0Jsb2NrLT5zdHlsZSgpLnBvc2l0aW9uKCkgPT0gU3RhdGlj
UG9zaXRpb24gfHwgKGNvbnRhaW5pbmdCbG9jay0+aXNJbmxpbmUoKSAmJiAhY29udGFpbmluZ0Js
b2NrLT5pc1JlcGxhY2VkKCkpKSkgewotICAgICAgICAgICAgICAgIGlmIChjb250YWluaW5nQmxv
Y2stPnN0eWxlKCkucG9zaXRpb24oKSA9PSBSZWxhdGl2ZVBvc2l0aW9uICYmIGNvbnRhaW5pbmdC
bG9jay0+aXNJbmxpbmUoKSAmJiAhY29udGFpbmluZ0Jsb2NrLT5pc1JlcGxhY2VkKCkpIHsKLSAg
ICAgICAgICAgICAgICAgICAgY29udGFpbmluZ0Jsb2NrID0gY29udGFpbmluZ0Jsb2NrLT5jb250
YWluaW5nQmxvY2soKTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIGNvbnRhaW5pbmdCbG9jayA9IGNvbnRhaW5pbmdCbG9jay0+
cGFyZW50KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgLy8gV2UgYXJlIGEg
bmV3IGNvbnRhaW5pbmcgYmxvY2suCisgICAgaWYgKG9sZFN0eWxlLnBvc2l0aW9uKCkgPT0gU3Rh
dGljUG9zaXRpb24gJiYgIWhhZFRyYW5zZm9ybSkgeworICAgICAgICAvLyBSZW1vdmUgb3VyIGFi
c29sdXRlbHkgcG9zaXRpb25lZCBkZXNjZW5kYW50cyBmcm9tIHRoZWlyIGN1cnJlbnQgY29udGFp
bmluZyBibG9jay4KKyAgICAgICAgLy8gVGhleSB3aWxsIGJlIGluc2VydGVkIGludG8gb3VyIHBv
c2l0aW9uZWQgb2JqZWN0cyBsaXN0IGR1cmluZyBsYXlvdXQuCisgICAgICAgIGF1dG8qIGNvbnRh
aW5pbmdCbG9jayA9IHBhcmVudCgpOworICAgICAgICB3aGlsZSAoY29udGFpbmluZ0Jsb2NrICYm
ICFpczxSZW5kZXJWaWV3PigqY29udGFpbmluZ0Jsb2NrKQorICAgICAgICAgICAgJiYgKGNvbnRh
aW5pbmdCbG9jay0+c3R5bGUoKS5wb3NpdGlvbigpID09IFN0YXRpY1Bvc2l0aW9uIHx8IChjb250
YWluaW5nQmxvY2stPmlzSW5saW5lKCkgJiYgIWNvbnRhaW5pbmdCbG9jay0+aXNSZXBsYWNlZCgp
KSkpIHsKKyAgICAgICAgICAgIGlmIChjb250YWluaW5nQmxvY2stPnN0eWxlKCkucG9zaXRpb24o
KSA9PSBSZWxhdGl2ZVBvc2l0aW9uICYmIGNvbnRhaW5pbmdCbG9jay0+aXNJbmxpbmUoKSAmJiAh
Y29udGFpbmluZ0Jsb2NrLT5pc1JlcGxhY2VkKCkpIHsKKyAgICAgICAgICAgICAgICBjb250YWlu
aW5nQmxvY2sgPSBjb250YWluaW5nQmxvY2stPmNvbnRhaW5pbmdCbG9jaygpOworICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAoaXM8UmVuZGVy
QmxvY2s+KCpjb250YWluaW5nQmxvY2spKQotICAgICAgICAgICAgICAgIGRvd25jYXN0PFJlbmRl
ckJsb2NrPigqY29udGFpbmluZ0Jsb2NrKS5yZW1vdmVQb3NpdGlvbmVkT2JqZWN0cyh0aGlzLCBO
ZXdDb250YWluaW5nQmxvY2spOworICAgICAgICAgICAgY29udGFpbmluZ0Jsb2NrID0gY29udGFp
bmluZ0Jsb2NrLT5wYXJlbnQoKTsKICAgICAgICAgfQorICAgICAgICBpZiAoY29udGFpbmluZ0Js
b2NrICYmIGlzPFJlbmRlckJsb2NrPigqY29udGFpbmluZ0Jsb2NrKSkKKyAgICAgICAgICAgIGRv
d25jYXN0PFJlbmRlckJsb2NrPigqY29udGFpbmluZ0Jsb2NrKS5yZW1vdmVQb3NpdGlvbmVkT2Jq
ZWN0cyh0aGlzLCBOZXdDb250YWluaW5nQmxvY2spOwogICAgIH0KK30KIAordm9pZCBSZW5kZXJC
bG9jazo6c3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJT
dHlsZSYgbmV3U3R5bGUpCit7CisgICAgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlID0gaGFz
SW5pdGlhbGl6ZWRTdHlsZSgpID8gJnN0eWxlKCkgOiBudWxscHRyOworICAgIHNldFJlcGxhY2Vk
KG5ld1N0eWxlLmlzRGlzcGxheUlubGluZVR5cGUoKSk7CisgICAgaWYgKG9sZFN0eWxlKQorICAg
ICAgICByZW1vdmVQb3NpdGlvbmVkT2JqZWN0c0lmTmVlZGVkKCpvbGRTdHlsZSwgbmV3U3R5bGUp
OwogICAgIFJlbmRlckJveDo6c3R5bGVXaWxsQ2hhbmdlKGRpZmYsIG5ld1N0eWxlKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAppbmRleCBlM2E0OWQxNzFjZGFlNzg2
YjIyMzNjODIxZDZiMTRkNGZhMDM0OTYwLi5kOGFhMjlhOGEwNWIzMjJhZGM3MmRmMzYwZjlkYjE3
ZWE0MjI5NzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaApAQCAtNDg5
LDYgKzQ4OSw4IEBAIHByaXZhdGU6CiAKICAgICBSZW5kZXJGbG93VGhyZWFkKiB1cGRhdGVDYWNo
ZWRGbG93VGhyZWFkQ29udGFpbmluZ0Jsb2NrKFJlbmRlckZsb3dUaHJlYWQqKSBjb25zdDsKIAor
ICAgIHZvaWQgcmVtb3ZlUG9zaXRpb25lZE9iamVjdHNJZk5lZWRlZChjb25zdCBSZW5kZXJTdHls
ZSYgb2xkU3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlJiBuZXdTdHlsZSk7CisKIHByaXZhdGU6CiAg
ICAgYm9vbCBoYXNSYXJlRGF0YSgpIGNvbnN0OwogICAgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDE1Y2FkNGQzNjkwMDQ4
ZmMwMTY1NGNlOTJjOGIzODczZmE5MmNhMTUuLjEwNGM0OTNkMTVmYzllYTc1YTk5OGU3YWI5ZGM2
N2YwNzFiYWI1ODEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxNi0wNS0xMCAgWmFsYW4gQnVq
dGFzICA8emFsYW5AYXBwbGUuY29tPgorCisgICAgICAgIEFic29sdXRlIHBvc2l0aW9uZWQgZWxl
bWVudCBpcyBub3QgcGxhY2VkIHByb3Blcmx5IHdoZW4gcGFyZW50IGJlY29tZXMgdGhlIGNvbnRh
aW5pbmcgYmxvY2suCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNTc0NTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI2MjEyNTY4PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gYSBjb250YWluZXIg
YmVjb21lcyBhIGNvbnRhaW5pbmcgYmxvY2ssIHdlIG5lZWQgdG8gY2hlY2sgaWYgdGhlcmUncyBh
bnkgcG9zaXRpb25lZCBib3ggaW4gaXRzIHN1YnRyZWUKKyAgICAgICAgaW4gb3JkZXIgdG8gInJl
LXBhcmVudCIgdGhlbS4gSXQgYmFzaWNhbGx5IG1lYW5zIHRoYXQgd2UgcmVtb3ZlIHRoZW0gZnJv
bSBSZW5kZXJCbG9jazo6cG9zaXRpb25lZERlc2NlbmRhbnRzIG1hcAorICAgICAgICBhbmQgdGhl
eSdsbCBnZXQgcmUtaW5zZXJ0ZWQgZHVyaW5nIHRoZSBuZXh0IGxheW91dCBjb3JyZWN0bHkuCisg
ICAgICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIGNhc2Ugd2hlbiBhIGNvbnRhaW5lciBiZWNvbWVz
IHRoZSBjb250YWluaW5nIGJsb2NrIGJ5IHNldHRpbmcgdGhlIHRyYW5zZm9ybSBwcm9wZXJ0eSBh
bmQgaXRzIHBvc2l0aW9uZWQKKyAgICAgICAgY2hpbGQgZ2V0cyBtaXNwbGFjZWQuICAKKworICAg
ICAgICAqIGZhc3QvYmxvY2svY29udGFpbmluZy1ibG9jay1jaGFuZ2VzLWV4cGVjdGVkLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvYmxvY2svY29udGFpbmluZy1ibG9jay1jaGFuZ2VzLmh0
bWw6IEFkZGVkLgorCiAyMDE2LTA1LTA4ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgaU9TIHNlbGVjdGlvbjogVXNlIGluZmxvdyBjb250YWluaW5nIGJsb2NrIGZv
ciBwb3NpdGlvbmVkIDxicj4uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2Nv
bnRhaW5pbmctYmxvY2stY2hhbmdlcy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9i
bG9jay9jb250YWluaW5nLWJsb2NrLWNoYW5nZXMtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
OTAyNmRkZjNlZTA5NTIzYTNjNDU0NzJmNzlkYzAzZTJjNTFjNzA4Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9jb250YWluaW5nLWJsb2NrLWNoYW5nZXMtZXhwZWN0
ZWQuaHRtbApAQCAtMCwwICsxLDM2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8dGl0bGU+VGhpcyB0ZXN0cyB0aGF0IHdlIHByb3Blcmx5IHJlcGFyZW50IGNvbnRhaW5pbmcg
YmxvY2sgZGVzY2VuZGFudHMuPC90aXRsZT4KKzxzdHlsZT4KKy5jb250YWluZXIgeworICAgIHBv
c2l0aW9uOiByZWxhdGl2ZTsKKyAgICBoZWlnaHQ6IDIwcHg7CisgICAgd2lkdGg6IDIwcHg7Cisg
ICAgYm9yZGVyOiAxMHB4IHNvbGlkIGdyYXk7Cit9CisKKy5pbmRlbnRlZCB7CisgIGxlZnQ6IDEw
cHg7Cit9CisKKy5ib3ggeworICAgIGxlZnQ6IDBweDsKKyAgICB0b3A6IDBweDsKKyAgICBoZWln
aHQ6IDEwcHg7CisgICAgd2lkdGg6IDEwcHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsK
K30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgY2xhc3M9Ym94IHN0eWxlPSJwb3Np
dGlvbjogYWJzb2x1dGUiPjwvZGl2PgorPGRpdiBjbGFzcz0iY29udGFpbmVyIGluZGVudGVkIj48
ZGl2IGNsYXNzPWJveD48L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9Y29udGFpbmVyPjxkaXYgY2xh
c3M9Ym94PjwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0iY29udGFpbmVyIGluZGVudGVkIj48ZGl2
IGNsYXNzPWJveD48L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9ImNvbnRhaW5lciBpbmRlbnRlZCI+
PGRpdiBjbGFzcz1ib3g+PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJjb250YWluZXIgaW5kZW50
ZWQiPjxkaXYgY2xhc3M9Ym94PjwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz1jb250YWluZXI+PGRp
diBjbGFzcz1ib3g+PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPWNvbnRhaW5lcj48L2Rpdj4KKzwv
Ym9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2NvbnRhaW5pbmctYmxvY2stY2hhbmdlcy5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9ibG9jay9jb250YWluaW5nLWJsb2NrLWNoYW5nZXMuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wZDYzMjgxYmQyZGFhNTliOWZlNzYxMzI4N2EyODlkYjZjYmY2Mzc2Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9jb250YWluaW5nLWJsb2NrLWNoYW5nZXMu
aHRtbApAQCAtMCwwICsxLDc0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
dGl0bGU+VGhpcyB0ZXN0cyB0aGF0IHdlIHByb3Blcmx5IHJlcGFyZW50IGNvbnRhaW5pbmcgYmxv
Y2sgZGVzY2VuZGFudHMuPC90aXRsZT4KKzxzdHlsZT4KKyAgICAudHJhbnNsYXRlIHsKKyAgICAg
ICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwcHgpOworICAgIH0KKworICAgIC5wb3NpdGlvbmVk
IHsKKyAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIH0KKyAgICAKKyAgICAuY29udGFp
bmVyIHsKKyAgICAgIGhlaWdodDogMjBweDsKKyAgICAgIHdpZHRoOiAyMHB4OworICAgICAgYm9y
ZGVyOiAxMHB4IHNvbGlkIGdyYXk7CisgICAgfQorICAgIAorICAgIC5ib3ggeworICAgICAgcG9z
aXRpb246IGFic29sdXRlOworICAgICAgbGVmdDogMHB4OworICAgICAgdG9wOiAwcHg7CisgICAg
ICBoZWlnaHQ6IDEwcHg7CisgICAgICB3aWR0aDogMTBweDsKKyAgICAgIGJhY2tncm91bmQtY29s
b3I6IGJsdWU7CisgICAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBjbGFzcz0i
Y29udGFpbmVyIj48ZGl2IGNsYXNzPSJib3giPjwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0iY29u
dGFpbmVyIj48ZGl2IGNsYXNzPSJib3giPjwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0iY29udGFp
bmVyIj48ZGl2IGNsYXNzPSJib3giPjwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0iY29udGFpbmVy
Ij48ZGl2IGNsYXNzPSJib3giPjwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0iY29udGFpbmVyIj48
ZGl2IGNsYXNzPSJib3giPjwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0iY29udGFpbmVyIj48ZGl2
IGNsYXNzPSJib3giPjwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0iY29udGFpbmVyIj48ZGl2IGNs
YXNzPSJib3giPjwvZGl2PjwvZGl2PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworc2V0VGltZW91dChmdW5jdGlvbigp
IHsKKyAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY29udGFpbmVyIilbMF0uY2xh
c3NMaXN0LnRvZ2dsZSgidHJhbnNsYXRlIik7CisgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFz
c05hbWUoImNvbnRhaW5lciIpWzFdLmNsYXNzTGlzdC50b2dnbGUoInBvc2l0aW9uZWQiKTsKKyAg
ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY29udGFpbmVyIilbMl0uY2xhc3NMaXN0
LnRvZ2dsZSgidHJhbnNsYXRlIik7CisgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUo
ImNvbnRhaW5lciIpWzNdLmNsYXNzTGlzdC50b2dnbGUoInBvc2l0aW9uZWQiKTsKKyAgZG9jdW1l
bnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY29udGFpbmVyIilbNF0uY2xhc3NMaXN0LnRvZ2ds
ZSgicG9zaXRpb25lZCIpOworICBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJjb250
YWluZXIiKVs1XS5jbGFzc0xpc3QudG9nZ2xlKCJ0cmFuc2xhdGUiKTsKKyAgZG9jdW1lbnQuZ2V0
RWxlbWVudHNCeUNsYXNzTmFtZSgiY29udGFpbmVyIilbNl0uY2xhc3NMaXN0LnRvZ2dsZSgidHJh
bnNsYXRlIik7CisgIGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0OworICBzZXRUaW1lb3V0KGZ1
bmN0aW9uKCkgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNvbnRhaW5l
ciIpWzJdLmNsYXNzTGlzdC50b2dnbGUoInBvc2l0aW9uZWQiKTsgCisgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudHNCeUNsYXNzTmFtZSgiY29udGFpbmVyIilbM10uY2xhc3NMaXN0LnRvZ2dsZSgidHJh
bnNsYXRlIik7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY29udGFpbmVy
IilbNF0uY2xhc3NMaXN0LnRvZ2dsZSgidHJhbnNsYXRlIik7IAorICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRzQnlDbGFzc05hbWUoImNvbnRhaW5lciIpWzVdLmNsYXNzTGlzdC50b2dnbGUoInBvc2l0
aW9uZWQiKTsgCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY29udGFpbmVy
IilbNl0uY2xhc3NMaXN0LnRvZ2dsZSgicG9zaXRpb25lZCIpOyAKKyAgICBkb2N1bWVudC5ib2R5
Lm9mZnNldEhlaWdodDsKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY29udGFpbmVyIilbNF0uY2xhc3NMaXN0LnRvZ2ds
ZSgicG9zaXRpb25lZCIpOyAKKyAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUo
ImNvbnRhaW5lciIpWzVdLmNsYXNzTGlzdC50b2dnbGUoInRyYW5zbGF0ZSIpOyAKKyAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNvbnRhaW5lciIpWzZdLmNsYXNzTGlzdC50
b2dnbGUoInRyYW5zbGF0ZSIpOyAKKyAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0Owor
ICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dHNCeUNsYXNzTmFtZSgiY29udGFpbmVyIilbNl0uY2xhc3NMaXN0LnRvZ2dsZSgicG9zaXRpb25l
ZCIpOyAKKyAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQ7CisgICAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAg
ICAgIH0sIDApOworICAgIH0sIDApOworICB9LCAwKTsKK30sIDApOworPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>
<flag name="review"
          id="302660"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>