<?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>91405</bug_id>
          
          <creation_ts>2012-07-16 11:07:10 -0700</creation_ts>
          <short_desc>z-index should work without position on flexitems</short_desc>
          <delta_ts>2013-07-02 20:19: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>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>62048</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tony Chang">tony</reporter>
          <assigned_to name="Ojan Vafai">ojan</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>eoconnor</cc>
    
    <cc>eric</cc>
    
    <cc>hyatt</cc>
    
    <cc>jamesr</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>ojan</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>670472</commentid>
    <comment_count>0</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-07-16 11:07:10 -0700</bug_when>
    <thetext>This was recently added to the spec: http://dev.w3.org/csswg/css3-flexbox/#painting</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690814</commentid>
    <comment_count>1</comment_count>
      <attachid>157308</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-08-08 15:22:06 -0700</bug_when>
    <thetext>Created attachment 157308
Work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690817</commentid>
    <comment_count>2</comment_count>
      <attachid>157308</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-08-08 15:24:14 -0700</bug_when>
    <thetext>Comment on attachment 157308
Work in progress

In theory, this should be all we need to do, but requiresLayer is called before the flex item is appended to the RenderFlexibleBox, so parent() is always null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690849</commentid>
    <comment_count>3</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-08-08 15:47:30 -0700</bug_when>
    <thetext>I looked into calling addChild before we setStyle on the RenderBlock. addChild has a few things that depend on the style, so getting that to work would be both non-trivial and not clearly the correct change.

The alternative is to have RenderObject::createObject return RenderFlexibleBoxItems instead of RenderBlocks if the parent node is a flexbox. Then RenderFlexibleBoxItem would only override requiresLayer to return true if it has a z-index. Anyone opposed to this change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691066</commentid>
    <comment_count>4</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-08-08 18:41:08 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; The alternative is to have RenderObject::createObject return RenderFlexibleBoxItems instead of RenderBlocks if the parent node is a flexbox. Then RenderFlexibleBoxItem would only override requiresLayer to return true if it has a z-index. Anyone opposed to this change?

I suspect this would cause problems if we need to change the render tree (e.g., changing the display from -webkit-flex to block in JS).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691071</commentid>
    <comment_count>5</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-08-08 18:42:47 -0700</bug_when>
    <thetext>Don&apos;t we create layers dynamically? E.g., when adding scrollbars or when dynamically making a block position:absolute?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691096</commentid>
    <comment_count>6</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-08-08 19:08:28 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; The alternative is to have RenderObject::createObject return RenderFlexibleBoxItems instead of RenderBlocks if the parent node is a flexbox. Then RenderFlexibleBoxItem would only override requiresLayer to return true if it has a z-index. Anyone opposed to this change?
&gt; 
&gt; I suspect this would cause problems if we need to change the render tree (e.g., changing the display from -webkit-flex to block in JS).

What sorts of problems? We need to recreate the tree regardless, no? I suppose it would be slower because we need to recreate all the children instead of reparent them?

(In reply to comment #5)
&gt; Don&apos;t we create layers dynamically? E.g., when adding scrollbars or when dynamically making a block position:absolute?

We create them under styleDidChange, which ends up getting called when we first create the RenderObject. There may be cases where we know the parent, but there are cases where we don&apos;t, so it doesn&apos;t really help.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691757</commentid>
    <comment_count>7</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-08-09 13:30:25 -0700</bug_when>
    <thetext>Actually, there&apos;s no way we can change the type of the flex-items because they are not necessarily RenderBlocks. They could be tables, flexboxes, etc.

So, some way or another, requiresLayer needs to know that this object&apos;s parent will be a flexbox.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691761</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-08-09 13:32:28 -0700</bug_when>
    <thetext>If this is too gross we can push back on the spec change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691770</commentid>
    <comment_count>9</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-08-09 13:35:20 -0700</bug_when>
    <thetext>Actually, I think this is easy. I didn&apos;t realize adjustRenderStyle already has the following: 
    if (style-&gt;position() == StaticPosition)
        style-&gt;setHasAutoZIndex();

We just need to not do that if the parent is a flexbox. Then in RenderBlock, we can always require a layer if it has a non-auto z-index.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691809</commentid>
    <comment_count>10</comment_count>
      <attachid>157539</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-08-09 13:52:24 -0700</bug_when>
    <thetext>Created attachment 157539
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691855</commentid>
    <comment_count>11</comment_count>
      <attachid>157539</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-08-09 14:29:48 -0700</bug_when>
    <thetext>Comment on attachment 157539
Patch

Attachment 157539 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13470365</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691971</commentid>
    <comment_count>12</comment_count>
      <attachid>157539</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-08-09 16:17:41 -0700</bug_when>
    <thetext>Comment on attachment 157539
Patch

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

I think the approach is sound.

&gt; Source/WebCore/css/StyleResolver.cpp:2071
&gt; +static bool isFlexBox(EDisplay display)

Nit: maybe isFlexBoxContainer would make more sense?

&gt; Source/WebCore/rendering/RenderBlock.h:81
&gt; +    virtual bool requiresLayer() const OVERRIDE { return !style()-&gt;hasAutoZIndex() || RenderBox::requiresLayer(); }

I don&apos;t think this is totally right. Some renderers that are flex-items per the spec are not RenderBlocks: mostly all the RenderReplaced renderers (&lt;img&gt;, &lt;applet&gt;, &lt;object&gt;, &lt;embed&gt;, &lt;iframe&gt; ...).

All in all, we are better off moving the hasAutoZIndex() check in RenderBox which would cover all the above cases (assuming svg elements cannot be flex-items which I didn&apos;t see mentioned in the spec).

&gt; LayoutTests/css3/flexbox/z-index-expected.html:7
&gt; +    &lt;div style=&quot;position: absolute; top: 25px; left: 25px; height: 25px; width: 50px; z-index: 50; background-color: purple&quot;&gt;&lt;/div&gt;

I would hoist the common style into a style sheet for readability (like the width / height / position part)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691987</commentid>
    <comment_count>13</comment_count>
      <attachid>157539</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-08-09 16:49:35 -0700</bug_when>
    <thetext>Comment on attachment 157539
Patch

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

&gt; Source/WebCore/css/StyleResolver.cpp:2161
&gt; +        if (isFlexBox(parentStyle-&gt;display())) {

I like this check a lot better than the old one.

Is it possible for parentStyle to be NULL (e.g., when detached from the document)?  Should the table writing mode check above also check for a NULL parentStyle?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692134</commentid>
    <comment_count>14</comment_count>
      <attachid>157539</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-08-09 20:00:48 -0700</bug_when>
    <thetext>Comment on attachment 157539
Patch

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

&gt;&gt; Source/WebCore/css/StyleResolver.cpp:2071
&gt;&gt; +static bool isFlexBox(EDisplay display)
&gt; 
&gt; Nit: maybe isFlexBoxContainer would make more sense?

I went isDisplayFlexibleBox.

&gt;&gt; Source/WebCore/css/StyleResolver.cpp:2161
&gt;&gt; +        if (isFlexBox(parentStyle-&gt;display())) {
&gt; 
&gt; I like this check a lot better than the old one.
&gt; 
&gt; Is it possible for parentStyle to be NULL (e.g., when detached from the document)?  Should the table writing mode check above also check for a NULL parentStyle?

Good point. Looking at the calling code, it can be null in theory. Fix this case and the table writing mode case.

&gt;&gt; Source/WebCore/rendering/RenderBlock.h:81
&gt;&gt; +    virtual bool requiresLayer() const OVERRIDE { return !style()-&gt;hasAutoZIndex() || RenderBox::requiresLayer(); }
&gt; 
&gt; I don&apos;t think this is totally right. Some renderers that are flex-items per the spec are not RenderBlocks: mostly all the RenderReplaced renderers (&lt;img&gt;, &lt;applet&gt;, &lt;object&gt;, &lt;embed&gt;, &lt;iframe&gt; ...).
&gt; 
&gt; All in all, we are better off moving the hasAutoZIndex() check in RenderBox which would cover all the above cases (assuming svg elements cannot be flex-items which I didn&apos;t see mentioned in the spec).

Good call. Moved to RenderBox.

&gt;&gt; LayoutTests/css3/flexbox/z-index-expected.html:7
&gt;&gt; +    &lt;div style=&quot;position: absolute; top: 25px; left: 25px; height: 25px; width: 50px; z-index: 50; background-color: purple&quot;&gt;&lt;/div&gt;
&gt; 
&gt; I would hoist the common style into a style sheet for readability (like the width / height / position part)

Will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692153</commentid>
    <comment_count>15</comment_count>
      <attachid>157625</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-08-09 20:30:26 -0700</bug_when>
    <thetext>Created attachment 157625
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692166</commentid>
    <comment_count>16</comment_count>
      <attachid>157625</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-08-09 21:08:13 -0700</bug_when>
    <thetext>Comment on attachment 157625
Patch

Attachment 157625 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13470463</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692242</commentid>
    <comment_count>17</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-08-09 23:17:48 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; &gt; Is it possible for parentStyle to be NULL (e.g., when detached from the document)?  Should the table writing mode check above also check for a NULL parentStyle?
&gt; 
&gt; Good point. Looking at the calling code, it can be null in theory. Fix this case and the table writing mode case.

I tried to make a repro case for you where parentStyle is NULL, but I don&apos;t think it&apos;s possible.

adjustRenderStyle has 2 callers.
- styleForElement sets m_parentStyle to a clone of style()
- pseudoStyleForElement seems to check for a null parentStyle, but it only has a single caller in RenderObject.cpp.
  - in getUncachedPseudoStyle, if parentStyle is NULL, it assigns style() to parentStyle.

We could just have a follow up patch that cleans up pseudoStyleForElement.  It&apos;s confusing that parentStyle has a default arg of 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692731</commentid>
    <comment_count>18</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-08-10 11:36:00 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; adjustRenderStyle has 2 callers.
&gt; - styleForElement sets m_parentStyle to a clone of style()
&gt; - pseudoStyleForElement seems to check for a null parentStyle, but it only has a single caller in RenderObject.cpp.
&gt;   - in getUncachedPseudoStyle, if parentStyle is NULL, it assigns style() to parentStyle.

Good digging. I didn&apos;t look at the caller of pseudoStyleForElement. https://bugs.webkit.org/show_bug.cgi?id=93730</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692743</commentid>
    <comment_count>19</comment_count>
      <attachid>157776</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-08-10 11:40:49 -0700</bug_when>
    <thetext>Created attachment 157776
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>693340</commentid>
    <comment_count>20</comment_count>
      <attachid>157776</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-08-12 16:39:57 -0700</bug_when>
    <thetext>Comment on attachment 157776
Patch

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

&gt; Source/WebCore/rendering/RenderBox.h:47
&gt; +    virtual bool requiresLayer() const OVERRIDE { return isRoot() || isOutOfFlowPositioned() || isRelPositioned() || isTransparent() || hasOverflowClip() || hasTransform() || hasHiddenBackface() || hasMask() || hasReflection() || hasFilter() || style()-&gt;specifiesColumns() || !style()-&gt;hasAutoZIndex(); }

Nit: Do we need the isOutOfFlowPositioned() || isRelPositioned() part of the check now?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>693345</commentid>
    <comment_count>21</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-08-12 17:16:38 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; (From update of attachment 157776 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=157776&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderBox.h:47
&gt; &gt; +    virtual bool requiresLayer() const OVERRIDE { return isRoot() || isOutOfFlowPositioned() || isRelPositioned() || isTransparent() || hasOverflowClip() || hasTransform() || hasHiddenBackface() || hasMask() || hasReflection() || hasFilter() || style()-&gt;specifiesColumns() || !style()-&gt;hasAutoZIndex(); }
&gt; 
&gt; Nit: Do we need the isOutOfFlowPositioned() || isRelPositioned() part of the check now?

Oh, I forgot about StickyPosition.  I guess StickyPosition does not require a layer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>693644</commentid>
    <comment_count>22</comment_count>
      <attachid>157776</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-08-13 07:31:34 -0700</bug_when>
    <thetext>Comment on attachment 157776
Patch

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

&gt;&gt;&gt; Source/WebCore/rendering/RenderBox.h:47
&gt;&gt;&gt; +    virtual bool requiresLayer() const OVERRIDE { return isRoot() || isOutOfFlowPositioned() || isRelPositioned() || isTransparent() || hasOverflowClip() || hasTransform() || hasHiddenBackface() || hasMask() || hasReflection() || hasFilter() || style()-&gt;specifiesColumns() || !style()-&gt;hasAutoZIndex(); }
&gt;&gt; 
&gt;&gt; Nit: Do we need the isOutOfFlowPositioned() || isRelPositioned() part of the check now?
&gt; 
&gt; Oh, I forgot about StickyPosition.  I guess StickyPosition does not require a layer.

Yes, we need the isOutOfFlowPositoned() || isRelPositioned() part. See the placing / shifting through RenderLayer::setStatic{Block|Inline}Position and REnderLayer::relativePositionOffset.

For position: sticky, that part of the change hasn&apos;t landed. See bug 90046.

&gt; LayoutTests/css3/flexbox/z-index-expected.html:22
&gt; +    &lt;div class=&quot;small&quot; style=&quot;z-index: 50; background-color: purple; top: 25px;&quot;&gt;&lt;/div&gt;

Could you add some testing for the replaced elements that you had missed in your first patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696252</commentid>
    <comment_count>23</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-08-15 12:15:57 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; &gt; LayoutTests/css3/flexbox/z-index-expected.html:22
&gt; &gt; +    &lt;div class=&quot;small&quot; style=&quot;z-index: 50; background-color: purple; top: 25px;&quot;&gt;&lt;/div&gt;
&gt; 
&gt; Could you add some testing for the replaced elements that you had missed in your first patch?

Sigh. Good call. img elements work, but iframe elements don&apos;t for some reason. I wonder if we&apos;re wrapping them in an anonymous node.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696258</commentid>
    <comment_count>24</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-08-15 12:23:38 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; (In reply to comment #22)
&gt; &gt; &gt; LayoutTests/css3/flexbox/z-index-expected.html:22
&gt; &gt; &gt; +    &lt;div class=&quot;small&quot; style=&quot;z-index: 50; background-color: purple; top: 25px;&quot;&gt;&lt;/div&gt;
&gt; &gt; 
&gt; &gt; Could you add some testing for the replaced elements that you had missed in your first patch?
&gt; 
&gt; Sigh. Good call. img elements work, but iframe elements don&apos;t for some reason. I wonder if we&apos;re wrapping them in an anonymous node.

Turns out iframes don&apos;t work at all as flex items. Will file a separate bug and commit this with just the img test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696261</commentid>
    <comment_count>25</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-08-15 12:28:30 -0700</bug_when>
    <thetext>Committed r125693: &lt;http://trac.webkit.org/changeset/125693&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905592</commentid>
    <comment_count>26</comment_count>
      <attachid>157776</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-07-02 15:17:02 -0700</bug_when>
    <thetext>Comment on attachment 157776
Patch

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

&gt;&gt;&gt;&gt; Source/WebCore/rendering/RenderBox.h:47
&gt;&gt;&gt;&gt; +    virtual bool requiresLayer() const OVERRIDE { return isRoot() || isOutOfFlowPositioned() || isRelPositioned() || isTransparent() || hasOverflowClip() || hasTransform() || hasHiddenBackface() || hasMask() || hasReflection() || hasFilter() || style()-&gt;specifiesColumns() || !style()-&gt;hasAutoZIndex(); }
&gt;&gt;&gt; 
&gt;&gt;&gt; Nit: Do we need the isOutOfFlowPositioned() || isRelPositioned() part of the check now?
&gt;&gt; 
&gt;&gt; Oh, I forgot about StickyPosition.  I guess StickyPosition does not require a layer.
&gt; 
&gt; Yes, we need the isOutOfFlowPositoned() || isRelPositioned() part. See the placing / shifting through RenderLayer::setStatic{Block|Inline}Position and REnderLayer::relativePositionOffset.
&gt; 
&gt; For position: sticky, that part of the change hasn&apos;t landed. See bug 90046.

Adding !style()-&gt;hasAutoZIndex() was a terrible change to make. It interacts badly with -webkit-overflow-scrolling: touch, which makes all elements with non-hidden overflow have non-auto z-index.

Also, why isn&apos;t this code in a RenderFlex* subclass?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905611</commentid>
    <comment_count>27</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2013-07-02 15:48:41 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; Adding !style()-&gt;hasAutoZIndex() was a terrible change to make. It interacts badly with -webkit-overflow-scrolling: touch, which makes all elements with non-hidden overflow have non-auto z-index.
&gt; 

Can you provide a html snippet that demonstrates the problem?  I think you&apos;re saying that this makes all -webkit-overflow-scrolling: touch boxes become layers even if they don&apos;t need to?

&gt; Also, why isn&apos;t this code in a RenderFlex* subclass?

It applies to children of the flexbox, not the flexbox itself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905678</commentid>
    <comment_count>28</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-07-02 20:19:12 -0700</bug_when>
    <thetext>(In reply to comment #27)
&gt; (In reply to comment #26)
&gt; &gt; Adding !style()-&gt;hasAutoZIndex() was a terrible change to make. It interacts badly with -webkit-overflow-scrolling: touch, which makes all elements with non-hidden overflow have non-auto z-index.
&gt; &gt; 
&gt; 
&gt; Can you provide a html snippet that demonstrates the problem?  I think you&apos;re saying that this makes all -webkit-overflow-scrolling: touch boxes become layers even if they don&apos;t need to?

Yes, but I&apos;m fixing that via bug 118337.

&gt; &gt; Also, why isn&apos;t this code in a RenderFlex* subclass?
&gt; 
&gt; It applies to children of the flexbox, not the flexbox itself.

Julien explained this to me; we think the current code is correct (but possibly surprising).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157308</attachid>
            <date>2012-08-08 15:22:06 -0700</date>
            <delta_ts>2012-08-09 13:52:20 -0700</delta_ts>
            <desc>Work in progress</desc>
            <filename>bug-91405-20120808152140.patch</filename>
            <type>text/plain</type>
            <size>691</size>
            <attacher name="Ojan Vafai">ojan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1MDU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2suaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9jay5oCmluZGV4IDUzYTFmMjAyYzRhYmFkNjJiZWM4YWI3ZWI1YzBiNDZlZGUyMTVmYzQuLmJh
MmJlNmJmNjZlNDgxNTZiYmY3ODcxMzM5YTM3ZTU4YzQ5ZGMzZTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5oCkBAIC03Niw2ICs3Niw4IEBAIHB1YmxpYzoKICAgICBSZW5k
ZXJCbG9jayhOb2RlKik7CiAgICAgdmlydHVhbCB+UmVuZGVyQmxvY2soKTsKIAorICAgIHZpcnR1
YWwgYm9vbCByZXF1aXJlc0xheWVyKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gKCFzdHlsZSgp
LT5oYXNBdXRvWkluZGV4KCkgJiYgcGFyZW50KCkgJiYgcGFyZW50KCktPmlzRmxleGlibGVCb3go
KSkgfHwgUmVuZGVyQm94OjpyZXF1aXJlc0xheWVyKCk7IH0KKwogICAgIGNvbnN0IFJlbmRlck9i
amVjdENoaWxkTGlzdCogY2hpbGRyZW4oKSBjb25zdCB7IHJldHVybiAmbV9jaGlsZHJlbjsgfQog
ICAgIFJlbmRlck9iamVjdENoaWxkTGlzdCogY2hpbGRyZW4oKSB7IHJldHVybiAmbV9jaGlsZHJl
bjsgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157539</attachid>
            <date>2012-08-09 13:52:24 -0700</date>
            <delta_ts>2012-08-09 20:30:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91405-20120809135157.patch</filename>
            <type>text/plain</type>
            <size>6477</size>
            <attacher name="Ojan Vafai">ojan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1MTg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODg4YTFlOTNiZTU1MmYx
MzVjMDc0ZDA3ZGJhMDA2MDBkZDFhOTIyNy4uY2NkNWNiMDNhZWM1MjY2YmRjMWJkZjIyMGYzYjlj
ODUzY2U0Zjc3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA4LTA5ICBPamFu
IFZhZmFpICA8b2phbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgei1pbmRleCBzaG91bGQgd29y
ayB3aXRob3V0IHBvc2l0aW9uIG9uIGZsZXhpdGVtcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTE0MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZXF1aXJlIGEgbGF5ZXIgb24gYW55IFJlbmRlckJsb2Nr
IHRoYXQgaGFzIGEgbm9uLWF1dG8gei1pbmRleC4KKyAgICAgICAgRmxleC1pdGVtcyBhcmUgYWx3
YXlzIGNvZXJjZWQgdG8gdGhlaXIgZXF1aXZhbGVudCBibG9jayBkaXNwbGF5IHR5cGUsCisgICAg
ICAgIHNvIHRoZXkgd2lsbCBhbHdheXMgYmUgUmVuZGVyQmxvY2tzLgorCisgICAgICAgIFRlc3Q6
IGNzczMvZmxleGJveC96LWluZGV4Lmh0bWwKKworICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmFkanVzdFJlbmRlclN0eWxl
KToKKyAgICAgICAgLURvbid0IGNvZXJjZSB6LWluZGV4IHRvIGF1dG8gb24gc3RhdGljYWxseSBw
b3NpdGlvbmVkIGZsZXgtaXRlbXMuCisgICAgICAgIC1Vc2UgdGhlIHBhcmVudFN0eWxlIHRvIGRl
dGVybWluZSBpZiB0aGUgcGFyZW50IGlzIGEgZmxleGJveCBpbnN0ZWFkIG9mCisgICAgICAgIGxv
b2tpbmcgYXQgdGhlIGVsZW1lbnQncyBwYXJlbnROb2RlJ3MgcmVuZGVyZXIuCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmg6CisKIDIwMTItMDgtMDkgICdQYXZlbCBGZWxkbWFuJyAg
PHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBmb2xsb3cg
dXAgdG8gcjEyNTE3NCAtIGZpeCBzdWJ0eXBlIHVzZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29s
dmVyLmNwcAppbmRleCBjNTlkNWUyOWFiMDk4YzNmYmNlMTZjZDEzMWM2N2QwZjE3MjQwZTEyLi4y
MjcwMGQxZmYzMzIwMTNmZTA4YTk0ZjZiYjA5NWJmODVlMjlkMGU2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0yMDY4LDYgKzIwNjgsMTEgQEAgc3RhdGljIGJvb2wgZG9l
c05vdEluaGVyaXRUZXh0RGVjb3JhdGlvbihSZW5kZXJTdHlsZSogc3R5bGUsIEVsZW1lbnQqIGUp
CiAgICAgICAgIHx8IHN0eWxlLT5pc0Zsb2F0aW5nKCkgfHwgc3R5bGUtPmlzT3V0T2ZGbG93UG9z
aXRpb25lZCgpOwogfQogCitzdGF0aWMgYm9vbCBpc0ZsZXhCb3goRURpc3BsYXkgZGlzcGxheSkK
K3sKKyAgICByZXR1cm4gZGlzcGxheSA9PSBGTEVYIHx8IGRpc3BsYXkgPT0gSU5MSU5FX0ZMRVg7
Cit9CisKIHZvaWQgU3R5bGVSZXNvbHZlcjo6YWRqdXN0UmVuZGVyU3R5bGUoUmVuZGVyU3R5bGUq
IHN0eWxlLCBSZW5kZXJTdHlsZSogcGFyZW50U3R5bGUsIEVsZW1lbnQgKmUpCiB7CiAgICAgLy8g
Q2FjaGUgb3VyIG9yaWdpbmFsIGRpc3BsYXkuCkBAIC0yMTUzLDE0ICsyMTU4LDE0IEBAIHZvaWQg
U3R5bGVSZXNvbHZlcjo6YWRqdXN0UmVuZGVyU3R5bGUoUmVuZGVyU3R5bGUqIHN0eWxlLCBSZW5k
ZXJTdHlsZSogcGFyZW50U3R5CiAgICAgICAgIGlmIChzdHlsZS0+d3JpdGluZ01vZGUoKSAhPSBU
b3BUb0JvdHRvbVdyaXRpbmdNb2RlICYmIChzdHlsZS0+ZGlzcGxheSgpID09IEJPWCB8fCBzdHls
ZS0+ZGlzcGxheSgpID09IElOTElORV9CT1gpKQogICAgICAgICAgICAgc3R5bGUtPnNldFdyaXRp
bmdNb2RlKFRvcFRvQm90dG9tV3JpdGluZ01vZGUpOwogCi0gICAgICAgIGlmIChlICYmIGUtPnBh
cmVudE5vZGUoKSAmJiBlLT5wYXJlbnROb2RlKCktPnJlbmRlcmVyKCkgJiYgZS0+cGFyZW50Tm9k
ZSgpLT5yZW5kZXJlcigpLT5pc0ZsZXhpYmxlQm94KCkpIHsKKyAgICAgICAgaWYgKGlzRmxleEJv
eChwYXJlbnRTdHlsZS0+ZGlzcGxheSgpKSkgewogICAgICAgICAgICAgc3R5bGUtPnNldEZsb2F0
aW5nKE5vRmxvYXQpOwogICAgICAgICAgICAgc3R5bGUtPnNldERpc3BsYXkoZXF1aXZhbGVudEJs
b2NrRGlzcGxheShzdHlsZS0+ZGlzcGxheSgpLCBzdHlsZS0+aXNGbG9hdGluZygpLCBtX2NoZWNr
ZXIuc3RyaWN0UGFyc2luZygpKSk7CiAgICAgICAgIH0KICAgICB9CiAKICAgICAvLyBNYWtlIHN1
cmUgb3VyIHotaW5kZXggdmFsdWUgaXMgb25seSBhcHBsaWVkIGlmIHRoZSBvYmplY3QgaXMgcG9z
aXRpb25lZC4KLSAgICBpZiAoc3R5bGUtPnBvc2l0aW9uKCkgPT0gU3RhdGljUG9zaXRpb24pCisg
ICAgaWYgKHN0eWxlLT5wb3NpdGlvbigpID09IFN0YXRpY1Bvc2l0aW9uICYmICFpc0ZsZXhCb3go
cGFyZW50U3R5bGUtPmRpc3BsYXkoKSkpCiAgICAgICAgIHN0eWxlLT5zZXRIYXNBdXRvWkluZGV4
KCk7CiAKICAgICAvLyBBdXRvIHotaW5kZXggYmVjb21lcyAwIGZvciB0aGUgcm9vdCBlbGVtZW50
IGFuZCB0cmFuc3BhcmVudCBvYmplY3RzLiBUaGlzIHByZXZlbnRzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5oCmluZGV4IDUzYTFmMjAyYzRhYmFkNjJiZWM4YWI3ZWI1YzBiNDZl
ZGUyMTVmYzQuLjE4MTQwYjFhZjVmNzVjMzNkOGRlNWUyNzlmOWRiMWU2MTdiYmZkY2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCkBAIC03Niw2ICs3NiwxMCBAQCBwdWJs
aWM6CiAgICAgUmVuZGVyQmxvY2soTm9kZSopOwogICAgIHZpcnR1YWwgflJlbmRlckJsb2NrKCk7
CiAKKyAgICAvLyBoYXNBdXRvWkluZGV4IG9ubHkgcmV0dXJucyB0cnVlIGlmIHRoZSBlbGVtZW50
IGlzIHBvc2l0aW9uZWQgb3IgYSBmbGV4LWl0ZW0gc2luY2UKKyAgICAvLyBwb3NpdGlvbjpzdGF0
aWMgZWxlbWVudHMgdGhhdCBhcmUgbm90IGZsZXgtaXRlbXMgZ2V0IHRoZWlyIHotaW5kZXggY29l
cmNlZCB0byBhdXRvLgorICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0xheWVyKCkgY29uc3QgT1ZF
UlJJREUgeyByZXR1cm4gIXN0eWxlKCktPmhhc0F1dG9aSW5kZXgoKSB8fCBSZW5kZXJCb3g6OnJl
cXVpcmVzTGF5ZXIoKTsgfQorCiAgICAgY29uc3QgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0KiBjaGls
ZHJlbigpIGNvbnN0IHsgcmV0dXJuICZtX2NoaWxkcmVuOyB9CiAgICAgUmVuZGVyT2JqZWN0Q2hp
bGRMaXN0KiBjaGlsZHJlbigpIHsgcmV0dXJuICZtX2NoaWxkcmVuOyB9CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlNDNh
MWJhMDEyMjEwYmM1YjE4YWU2MWE5MDQxZTRkN2FkOTZkNWQzLi5kYThhZDA2MTIzYWFmM2Y1ZDEy
ZWJiYTQ2NzVkODc3OGZhNjY1OGRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDgtMDkg
IE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KKworICAgICAgICB6LWluZGV4IHNob3Vs
ZCB3b3JrIHdpdGhvdXQgcG9zaXRpb24gb24gZmxleGl0ZW1zCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTQwNQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY3NzMy9mbGV4Ym94L3otaW5kZXgtZXhwZWN0
ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9mbGV4Ym94L3otaW5kZXguaHRtbDogQWRk
ZWQuCisgICAgICAgIFVzZSBhIHJlZi10ZXN0IHNpbmNlIHdlIHdhbnQgdG8gYmUgc3VyZSB0aGF0
IHRoZSBlbGVtZW50cyBnZXQgcGFpbnRlZCBpbiB0aGUgcmlnaHQgb3JkZXIuCisKIDIwMTItMDgt
MDkgICdQYXZlbCBGZWxkbWFuJyAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBmb2xsb3cgdXAgdG8gcjEyNTE3NCAtIGZpeCBzdWJ0eXBlIHVzZS4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmxleGJveC96LWluZGV4LWV4cGVjdGVkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvei1pbmRleC1leHBlY3RlZC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjBhODc0MGZmYTVkNTk0ZDQzODUwYWU3YTZiMGU3OTljYWFhZmI0OTkKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvei1pbmRleC1leHBlY3RlZC5odG1sCkBA
IC0wLDAgKzEsOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8ZGl2PlRoaXMgdGVzdHMgdGhhdCB6LWlu
ZGV4IG9uIG5vbi1wb3NpdGlvbmVkIGZsZXgtaXRlbXMgd29ya3MuIFRoZSBncmVlbiBib3ggc2hv
dWxkIGJlIGFib3ZlIHRoZSBvcmFuZ2UgYm94LCB3aGljaCBzaG91bGQgYmUgYWJvdmUgdGhlIHB1
cnBsZSBib3hlcywgd2hpY2ggYXJlIGFib3ZlIHRoZSBzYWxtb24gYm94LjxkaXY+Cis8ZGl2IHN0
eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZSI+CisgICAgPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29s
dXRlOyB0b3A6IDA7IHotaW5kZXg6IDE7IGJhY2tncm91bmQtY29sb3I6IHNhbG1vbjsgd2lkdGg6
IDUwcHg7IGhlaWdodDogNTBweDsiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBh
YnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiA1MHB4OyB6LWluZGV4OiAxMDA7IGJhY2tncm91bmQtY29s
b3I6IG9yYW5nZTsgd2lkdGg6IDUwcHg7IGhlaWdodDogNTBweDsiPjwvZGl2PgorICAgIDxkaXYg
c3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAyNXB4OyBoZWlnaHQ6IDI1
cHg7IHdpZHRoOiA1MHB4OyB6LWluZGV4OiAxNTA7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuIj48
L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMjVweDsgbGVm
dDogMjVweDsgaGVpZ2h0OiAyNXB4OyB3aWR0aDogNTBweDsgei1pbmRleDogNTA7IGJhY2tncm91
bmQtY29sb3I6IHB1cnBsZSI+PC9kaXY+Cis8L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NzczMvZmxleGJveC96LWluZGV4Lmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvei1p
bmRleC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVmODg0NDdkMDgxZWE4ZmFkZWU2NDQ1ZDZhY2VjMmYyZmU2
NWUyNDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvei1pbmRl
eC5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGRpdj5UaGlzIHRlc3Rz
IHRoYXQgei1pbmRleCBvbiBub24tcG9zaXRpb25lZCBmbGV4LWl0ZW1zIHdvcmtzLiBUaGUgZ3Jl
ZW4gYm94IHNob3VsZCBiZSBhYm92ZSB0aGUgb3JhbmdlIGJveCwgd2hpY2ggc2hvdWxkIGJlIGFi
b3ZlIHRoZSBwdXJwbGUgYm94ZXMsIHdoaWNoIGFyZSBhYm92ZSB0aGUgc2FsbW9uIGJveC48ZGl2
PgorPGRpdiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmUiPgorICAgIDxkaXYgc3R5bGU9ImRpc3Bs
YXk6LXdlYmtpdC1mbGV4OyI+CisgICAgICAgIDxkaXYgc3R5bGU9InotaW5kZXg6IDE7IGJhY2tn
cm91bmQtY29sb3I6IHNhbG1vbjsgd2lkdGg6IDUwcHg7IGhlaWdodDogNTBweDsiPjwvZGl2Pgor
ICAgICAgICA8ZGl2IHN0eWxlPSJ6LWluZGV4OiAxMDA7IGJhY2tncm91bmQtY29sb3I6IG9yYW5n
ZTsgd2lkdGg6IDUwcHg7IGhlaWdodDogNTBweDsiPjwvZGl2PgorICAgIDwvZGl2PgorICAgIDxk
aXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAyNXB4OyBoZWlnaHQ6
IDI1cHg7IHdpZHRoOiA1MHB4OyB6LWluZGV4OiAxNTA7IGJhY2tncm91bmQtY29sb3I6IGdyZWVu
Ij48L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMjVweDsg
bGVmdDogMjVweDsgaGVpZ2h0OiAyNXB4OyB3aWR0aDogNTBweDsgei1pbmRleDogNTA7IGJhY2tn
cm91bmQtY29sb3I6IHB1cnBsZSI+PC9kaXY+Cis8L2Rpdj4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157625</attachid>
            <date>2012-08-09 20:30:26 -0700</date>
            <delta_ts>2012-08-10 11:40:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91405-20120809202959.patch</filename>
            <type>text/plain</type>
            <size>8288</size>
            <attacher name="Ojan Vafai">ojan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1MjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNThhODU2ZDFiMzk1YmNk
NTFlZDc4YjBkODlkY2VlMjEwY2UzNzVlNy4uMGM1ZjA5ZThkMTY0MjlhYjE0OWU5NWJkNTRjNTQ0
MTcxNDBiNzFjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTA4LTA5ICBPamFu
IFZhZmFpICA8b2phbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgei1pbmRleCBzaG91bGQgd29y
ayB3aXRob3V0IHBvc2l0aW9uIG9uIGZsZXhpdGVtcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTE0MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZXF1aXJlIGEgbGF5ZXIgb24gYW55IFJlbmRlckJveCB0
aGF0IGhhcyBhIG5vbi1hdXRvIHotaW5kZXguCisgICAgICAgIFN0YXRpY2FsbHkgcG9zaXRpb25l
ZCwgbm9uLWZsZXgtaXRlbSdzIGhhdmUgdGhlaXIgei1pbmRleCBjb2VyY2VkIHRvIGF1dG8sCisg
ICAgICAgIHNvIGl0J3Mgc2FmZSB0byBjaGVjayB6LWluZGV4IHVuY29uZGl0aW9uYWxseS4KKwor
ICAgICAgICBUZXN0OiBjc3MzL2ZsZXhib3gvei1pbmRleC5odG1sCisKKyAgICAgICAgKiBjc3Mv
U3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjphZGp1
c3RSZW5kZXJTdHlsZSk6CisgICAgICAgIC1Eb24ndCBjb2VyY2Ugei1pbmRleCB0byBhdXRvIG9u
IHN0YXRpY2FsbHkgcG9zaXRpb25lZCBmbGV4LWl0ZW1zLgorICAgICAgICAtVXNlIHRoZSBwYXJl
bnRTdHlsZSB0byBkZXRlcm1pbmUgaWYgdGhlIHBhcmVudCBpcyBhIGZsZXhib3ggaW5zdGVhZCBv
ZgorICAgICAgICBsb29raW5nIGF0IHRoZSBlbGVtZW50J3MgcGFyZW50Tm9kZSdzIHJlbmRlcmVy
LgorICAgICAgICAtTnVsbC1jaGVjayBwYXJlbnRTdHlsZSB1c2VzIHNpbmNlIHRoZXJlIGFyZSBj
b2RlcGF0aHMgdGhhdCBwYXNzIGluIGEgbnVsbCBwYXJlbnRTdHlsZS4KKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyQm94Lmg6CisgICAgICAgIC1BZGQgaGF2aW5nIGEgbm9uLWF1dG8gei1pbmRl
eCB0byB0aGUgbGlzdCBvZiB0aGluZ3MgdGhhdCByZXF1aXJlIGEgbGF5ZXIuCisKIDIwMTItMDgt
MDkgIEVyaWsgQXJ2aWRzc29uICA8YXJ2QGNocm9taXVtLm9yZz4KIAogICAgICAgICBIVE1MRWxl
bWVudC5jbGFzc0xpc3QgY2Fubm90IHJlbW92ZSBjbGFzc25hbWVzIHdpdGggdXBwZXJjYXNlIGNo
YXJhY3RlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCA0NmNiNDM5M2Y2
NTU0ZGFkZDZjMTg3ODdiMTg5ZTZhYzdmMmQ2MDcxLi5hMDc4MjI0NTVhNTBlNWE5ZWQzMTcyYjM3
MDUxOTM4ZDY0ZTQ1YjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNv
bHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0y
MDY4LDYgKzIwNjgsMTEgQEAgc3RhdGljIGJvb2wgZG9lc05vdEluaGVyaXRUZXh0RGVjb3JhdGlv
bihSZW5kZXJTdHlsZSogc3R5bGUsIEVsZW1lbnQqIGUpCiAgICAgICAgIHx8IHN0eWxlLT5pc0Zs
b2F0aW5nKCkgfHwgc3R5bGUtPmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpOwogfQogCitzdGF0aWMg
Ym9vbCBpc0Rpc3BsYXlGbGV4aWJsZUJveChFRGlzcGxheSBkaXNwbGF5KQoreworICAgIHJldHVy
biBkaXNwbGF5ID09IEZMRVggfHwgZGlzcGxheSA9PSBJTkxJTkVfRkxFWDsKK30KKwogdm9pZCBT
dHlsZVJlc29sdmVyOjphZGp1c3RSZW5kZXJTdHlsZShSZW5kZXJTdHlsZSogc3R5bGUsIFJlbmRl
clN0eWxlKiBwYXJlbnRTdHlsZSwgRWxlbWVudCAqZSkKIHsKICAgICAvLyBDYWNoZSBvdXIgb3Jp
Z2luYWwgZGlzcGxheS4KQEAgLTIxNDIsOSArMjE0NywxMCBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6
OmFkanVzdFJlbmRlclN0eWxlKFJlbmRlclN0eWxlKiBzdHlsZSwgUmVuZGVyU3R5bGUqIHBhcmVu
dFN0eQogCiAgICAgICAgIC8vIHdyaXRpbmctbW9kZSBkb2VzIG5vdCBhcHBseSB0byB0YWJsZSBy
b3cgZ3JvdXBzLCB0YWJsZSBjb2x1bW4gZ3JvdXBzLCB0YWJsZSByb3dzLCBhbmQgdGFibGUgY29s
dW1ucy4KICAgICAgICAgLy8gRklYTUU6IFRhYmxlIGNlbGxzIHNob3VsZCBiZSBhbGxvd2VkIHRv
IGJlIHBlcnBlbmRpY3VsYXIgb3IgZmxpcHBlZCB3aXRoIHJlc3BlY3QgdG8gdGhlIHRhYmxlLCB0
aG91Z2guCi0gICAgICAgIGlmIChzdHlsZS0+ZGlzcGxheSgpID09IFRBQkxFX0NPTFVNTiB8fCBz
dHlsZS0+ZGlzcGxheSgpID09IFRBQkxFX0NPTFVNTl9HUk9VUCB8fCBzdHlsZS0+ZGlzcGxheSgp
ID09IFRBQkxFX0ZPT1RFUl9HUk9VUAorICAgICAgICBpZiAocGFyZW50U3R5bGUKKyAgICAgICAg
ICAgICYmIChzdHlsZS0+ZGlzcGxheSgpID09IFRBQkxFX0NPTFVNTiB8fCBzdHlsZS0+ZGlzcGxh
eSgpID09IFRBQkxFX0NPTFVNTl9HUk9VUCB8fCBzdHlsZS0+ZGlzcGxheSgpID09IFRBQkxFX0ZP
T1RFUl9HUk9VUAogICAgICAgICAgICAgfHwgc3R5bGUtPmRpc3BsYXkoKSA9PSBUQUJMRV9IRUFE
RVJfR1JPVVAgfHwgc3R5bGUtPmRpc3BsYXkoKSA9PSBUQUJMRV9ST1cgfHwgc3R5bGUtPmRpc3Bs
YXkoKSA9PSBUQUJMRV9ST1dfR1JPVVAKLSAgICAgICAgICAgIHx8IHN0eWxlLT5kaXNwbGF5KCkg
PT0gVEFCTEVfQ0VMTCkKKyAgICAgICAgICAgIHx8IHN0eWxlLT5kaXNwbGF5KCkgPT0gVEFCTEVf
Q0VMTCkpCiAgICAgICAgICAgICBzdHlsZS0+c2V0V3JpdGluZ01vZGUocGFyZW50U3R5bGUtPndy
aXRpbmdNb2RlKCkpOwogCiAgICAgICAgIC8vIEZJWE1FOiBTaW5jZSB3ZSBkb24ndCBzdXBwb3J0
IGJsb2NrLWZsb3cgb24gZmxleGlibGUgYm94ZXMgeWV0LCBkaXNhbGxvdyBzZXR0aW5nCkBAIC0y
MTUzLDE0ICsyMTU5LDE0IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6YWRqdXN0UmVuZGVyU3R5bGUo
UmVuZGVyU3R5bGUqIHN0eWxlLCBSZW5kZXJTdHlsZSogcGFyZW50U3R5CiAgICAgICAgIGlmIChz
dHlsZS0+d3JpdGluZ01vZGUoKSAhPSBUb3BUb0JvdHRvbVdyaXRpbmdNb2RlICYmIChzdHlsZS0+
ZGlzcGxheSgpID09IEJPWCB8fCBzdHlsZS0+ZGlzcGxheSgpID09IElOTElORV9CT1gpKQogICAg
ICAgICAgICAgc3R5bGUtPnNldFdyaXRpbmdNb2RlKFRvcFRvQm90dG9tV3JpdGluZ01vZGUpOwog
Ci0gICAgICAgIGlmIChlICYmIGUtPnBhcmVudE5vZGUoKSAmJiBlLT5wYXJlbnROb2RlKCktPnJl
bmRlcmVyKCkgJiYgZS0+cGFyZW50Tm9kZSgpLT5yZW5kZXJlcigpLT5pc0ZsZXhpYmxlQm94KCkp
IHsKKyAgICAgICAgaWYgKHBhcmVudFN0eWxlICYmIGlzRGlzcGxheUZsZXhpYmxlQm94KHBhcmVu
dFN0eWxlLT5kaXNwbGF5KCkpKSB7CiAgICAgICAgICAgICBzdHlsZS0+c2V0RmxvYXRpbmcoTm9G
bG9hdCk7CiAgICAgICAgICAgICBzdHlsZS0+c2V0RGlzcGxheShlcXVpdmFsZW50QmxvY2tEaXNw
bGF5KHN0eWxlLT5kaXNwbGF5KCksIHN0eWxlLT5pc0Zsb2F0aW5nKCksIG1fY2hlY2tlci5zdHJp
Y3RQYXJzaW5nKCkpKTsKICAgICAgICAgfQogICAgIH0KIAogICAgIC8vIE1ha2Ugc3VyZSBvdXIg
ei1pbmRleCB2YWx1ZSBpcyBvbmx5IGFwcGxpZWQgaWYgdGhlIG9iamVjdCBpcyBwb3NpdGlvbmVk
LgotICAgIGlmIChzdHlsZS0+cG9zaXRpb24oKSA9PSBTdGF0aWNQb3NpdGlvbikKKyAgICBpZiAo
c3R5bGUtPnBvc2l0aW9uKCkgPT0gU3RhdGljUG9zaXRpb24gJiYgKCFwYXJlbnRTdHlsZSB8fCAh
aXNEaXNwbGF5RmxleGlibGVCb3gocGFyZW50U3R5bGUtPmRpc3BsYXkoKSkpKQogICAgICAgICBz
dHlsZS0+c2V0SGFzQXV0b1pJbmRleCgpOwogCiAgICAgLy8gQXV0byB6LWluZGV4IGJlY29tZXMg
MCBmb3IgdGhlIHJvb3QgZWxlbWVudCBhbmQgdHJhbnNwYXJlbnQgb2JqZWN0cy4gVGhpcyBwcmV2
ZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCmluZGV4IDJkY2MzY2RjN2NiMDRi
MjhlOTUwMGVkODQ3NTA4Y2UzM2M4YWJlZTkuLjdmZjg2YTA3YzQwNDllNmJmZGE1MmVmNzczZGI2
NTc4OGM4Njk2ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKQEAgLTQyLDcg
KzQyLDkgQEAgcHVibGljOgogICAgIFJlbmRlckJveChOb2RlKik7CiAgICAgdmlydHVhbCB+UmVu
ZGVyQm94KCk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNMYXllcigpIGNvbnN0IE9WRVJS
SURFIHsgcmV0dXJuIGlzUm9vdCgpIHx8IGlzT3V0T2ZGbG93UG9zaXRpb25lZCgpIHx8IGlzUmVs
UG9zaXRpb25lZCgpIHx8IGlzVHJhbnNwYXJlbnQoKSB8fCBoYXNPdmVyZmxvd0NsaXAoKSB8fCBo
YXNUcmFuc2Zvcm0oKSB8fCBoYXNIaWRkZW5CYWNrZmFjZSgpIHx8IGhhc01hc2soKSB8fCBoYXNS
ZWZsZWN0aW9uKCkgfHwgaGFzRmlsdGVyKCkgfHwgc3R5bGUoKS0+c3BlY2lmaWVzQ29sdW1ucygp
OyB9CisgICAgLy8gaGFzQXV0b1pJbmRleCBvbmx5IHJldHVybnMgdHJ1ZSBpZiB0aGUgZWxlbWVu
dCBpcyBwb3NpdGlvbmVkIG9yIGEgZmxleC1pdGVtIHNpbmNlCisgICAgLy8gcG9zaXRpb246c3Rh
dGljIGVsZW1lbnRzIHRoYXQgYXJlIG5vdCBmbGV4LWl0ZW1zIGdldCB0aGVpciB6LWluZGV4IGNv
ZXJjZWQgdG8gYXV0by4KKyAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNMYXllcigpIGNvbnN0IE9W
RVJSSURFIHsgcmV0dXJuIGlzUm9vdCgpIHx8IGlzT3V0T2ZGbG93UG9zaXRpb25lZCgpIHx8IGlz
UmVsUG9zaXRpb25lZCgpIHx8IGlzVHJhbnNwYXJlbnQoKSB8fCBoYXNPdmVyZmxvd0NsaXAoKSB8
fCBoYXNUcmFuc2Zvcm0oKSB8fCBoYXNIaWRkZW5CYWNrZmFjZSgpIHx8IGhhc01hc2soKSB8fCBo
YXNSZWZsZWN0aW9uKCkgfHwgaGFzRmlsdGVyKCkgfHwgc3R5bGUoKS0+c3BlY2lmaWVzQ29sdW1u
cygpIHx8ICFzdHlsZSgpLT5oYXNBdXRvWkluZGV4KCk7IH0KIAogICAgIC8vIFVzZSB0aGlzIHdp
dGggY2F1dGlvbiEgTm8gdHlwZSBjaGVja2luZyBpcyBkb25lIQogICAgIFJlbmRlckJveCogZmly
c3RDaGlsZEJveCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDg2MzY4NmIyOTNmMGUzYjRjM2M4MWExN2UwNjVl
Y2U1ZjdiZDA2YjcuLmQ4ZDU5MDIxYmUyNjE2NzFmMzhlNTJmYjA3YzBlMWY1OTY1ZjUxYzcgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wOC0wOSAgT2phbiBWYWZhaSAgPG9qYW5AY2hyb21p
dW0ub3JnPgorCisgICAgICAgIHotaW5kZXggc2hvdWxkIHdvcmsgd2l0aG91dCBwb3NpdGlvbiBv
biBmbGV4aXRlbXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTkxNDA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBjc3MzL2ZsZXhib3gvei1pbmRleC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBjc3MzL2ZsZXhib3gvei1pbmRleC5odG1sOiBBZGRlZC4KKyAgICAgICAgVXNlIGEgcmVmLXRl
c3Qgc2luY2Ugd2Ugd2FudCB0byBiZSBzdXJlIHRoYXQgdGhlIGVsZW1lbnRzIGdldCBwYWludGVk
IGluIHRoZSByaWdodCBvcmRlci4KKwogMjAxMi0wOC0wOSAgWXV0YSBLaXRhbXVyYSAgPHl1dGFr
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLiBSZW1vdmUgZHVwbGljYXRlIHRl
c3QgZXhwZWN0YXRpb24gZW50cnkgY2F1c2luZyBhIGxpbnQgZXJyb3IuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvei1pbmRleC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVz
dHMvY3NzMy9mbGV4Ym94L3otaW5kZXgtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYmZhNGUw
YjJmMjBmMDE2N2VhMGUyZGVhYzk4MGZkYjFjYjkwMDg0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3otaW5kZXgtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDIz
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKy5jb250YWluZXIgPiBkaXYgeworICAgIHBv
c2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDA7Cit9CisubGFyZ2UgeworICAgIHdpZHRoOiA1
MHB4OworICAgIGhlaWdodDogNTBweDsKK30KKy5zbWFsbCB7CisgICAgbGVmdDogMjVweDsKKyAg
ICBoZWlnaHQ6IDI1cHg7CisgICAgd2lkdGg6IDUwcHg7Cit9Cis8L3N0eWxlPgorPGRpdj5UaGlz
IHRlc3RzIHRoYXQgei1pbmRleCBvbiBub24tcG9zaXRpb25lZCBmbGV4LWl0ZW1zIHdvcmtzLiBU
aGUgZ3JlZW4gYm94IHNob3VsZCBiZSBhYm92ZSB0aGUgb3JhbmdlIGJveCwgd2hpY2ggc2hvdWxk
IGJlIGFib3ZlIHRoZSBwdXJwbGUgYm94ZXMsIHdoaWNoIGFyZSBhYm92ZSB0aGUgc2FsbW9uIGJv
eC48ZGl2PgorPGRpdiBjbGFzcz0iY29udGFpbmVyIiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmUi
PgorICAgIDxkaXYgY2xhc3M9ImxhcmdlIiBzdHlsZT0iei1pbmRleDogMTsgYmFja2dyb3VuZC1j
b2xvcjogc2FsbW9uOyI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ibGFyZ2UiIHN0eWxlPSJ6LWlu
ZGV4OiAxMDA7IGJhY2tncm91bmQtY29sb3I6IG9yYW5nZTsgbGVmdDogNTBweDsiPjwvZGl2Pgor
ICAgIDxkaXYgY2xhc3M9InNtYWxsIiBzdHlsZT0iei1pbmRleDogMTUwOyBiYWNrZ3JvdW5kLWNv
bG9yOiBncmVlbiI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic21hbGwiIHN0eWxlPSJ6LWluZGV4
OiA1MDsgYmFja2dyb3VuZC1jb2xvcjogcHVycGxlOyB0b3A6IDI1cHg7Ij48L2Rpdj4KKzwvZGl2
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3otaW5kZXguaHRtbCBiL0xh
eW91dFRlc3RzL2NzczMvZmxleGJveC96LWluZGV4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGY2NzVjMDRm
MTVhYjQ2MzdiN2ZjMDgzMjNkYzNmYTNjZmIxZjg4ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2NzczMvZmxleGJveC96LWluZGV4Lmh0bWwKQEAgLTAsMCArMSwyMiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8c3R5bGU+CisuZmxleC1pdGVtIHsKKyAgICB3aWR0aDogNTBweDsKKyAgICBo
ZWlnaHQ6IDUwcHg7Cit9CisucG9zaXRpb25lZCB7CisgICAgcG9zaXRpb246IGFic29sdXRlOyAK
KyAgICBsZWZ0OiAyNXB4OyAKKyAgICBoZWlnaHQ6IDI1cHg7CisgICAgd2lkdGg6IDUwcHg7IAor
fQorPC9zdHlsZT4KKzxkaXY+VGhpcyB0ZXN0cyB0aGF0IHotaW5kZXggb24gbm9uLXBvc2l0aW9u
ZWQgZmxleC1pdGVtcyB3b3Jrcy4gVGhlIGdyZWVuIGJveCBzaG91bGQgYmUgYWJvdmUgdGhlIG9y
YW5nZSBib3gsIHdoaWNoIHNob3VsZCBiZSBhYm92ZSB0aGUgcHVycGxlIGJveGVzLCB3aGljaCBh
cmUgYWJvdmUgdGhlIHNhbG1vbiBib3guPGRpdj4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOnJlbGF0
aXZlIj4KKyAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5Oi13ZWJraXQtZmxleDsiPgorICAgICAgICA8
ZGl2IGNsYXNzPSJmbGV4LWl0ZW0iIHN0eWxlPSJ6LWluZGV4OiAxOyBiYWNrZ3JvdW5kLWNvbG9y
OiBzYWxtb247Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iZmxleC1pdGVtIiBzdHlsZT0i
ei1pbmRleDogMTAwOyBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2U7Ij48L2Rpdj4KKyAgICA8L2Rp
dj4KKyAgICA8ZGl2IGNsYXNzPSJwb3NpdGlvbmVkIiBzdHlsZT0idG9wOiAwOyB6LWluZGV4OiAx
NTA7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuIj48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJwb3Np
dGlvbmVkIiBzdHlsZT0idG9wOiAyNXB4OyB6LWluZGV4OiA1MDsgYmFja2dyb3VuZC1jb2xvcjog
cHVycGxlIj48L2Rpdj4KKzwvZGl2Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157776</attachid>
            <date>2012-08-10 11:40:49 -0700</date>
            <delta_ts>2013-07-02 15:17:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91405-20120810114021.patch</filename>
            <type>text/plain</type>
            <size>7205</size>
            <attacher name="Ojan Vafai">ojan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1MzA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGZiNzc3MGE0NDE4MWRj
YWViM2JlY2I3ZTYwMDQ0ZjE3ZmFhYTgxMy4uZDg1YjhkMjc3MzJkODQ2N2JkZTI3NDA2ZmQ2MDBl
OGEwYjMwN2MzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTA4LTEwICBPamFu
IFZhZmFpICA8b2phbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgei1pbmRleCBzaG91bGQgd29y
ayB3aXRob3V0IHBvc2l0aW9uIG9uIGZsZXhpdGVtcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTE0MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZXF1aXJlIGEgbGF5ZXIgb24gYW55IFJlbmRlckJveCB0
aGF0IGhhcyBhIG5vbi1hdXRvIHotaW5kZXguCisgICAgICAgIFN0YXRpY2FsbHkgcG9zaXRpb25l
ZCwgbm9uLWZsZXgtaXRlbSdzIGhhdmUgdGhlaXIgei1pbmRleCBjb2VyY2VkIHRvIGF1dG8sCisg
ICAgICAgIHNvIGl0J3Mgc2FmZSB0byBjaGVjayB6LWluZGV4IHVuY29uZGl0aW9uYWxseS4KKwor
ICAgICAgICBUZXN0OiBjc3MzL2ZsZXhib3gvei1pbmRleC5odG1sCisKKyAgICAgICAgKiBjc3Mv
U3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjphZGp1
c3RSZW5kZXJTdHlsZSk6CisgICAgICAgIC1Eb24ndCBjb2VyY2Ugei1pbmRleCB0byBhdXRvIG9u
IHN0YXRpY2FsbHkgcG9zaXRpb25lZCBmbGV4LWl0ZW1zLgorICAgICAgICAtVXNlIHRoZSBwYXJl
bnRTdHlsZSB0byBkZXRlcm1pbmUgaWYgdGhlIHBhcmVudCBpcyBhIGZsZXhib3ggaW5zdGVhZCBv
ZgorICAgICAgICBsb29raW5nIGF0IHRoZSBlbGVtZW50J3MgcGFyZW50Tm9kZSdzIHJlbmRlcmVy
LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guaDoKKyAgICAgICAgLUFkZCBoYXZpbmcg
YSBub24tYXV0byB6LWluZGV4IHRvIHRoZSBsaXN0IG9mIHRoaW5ncyB0aGF0IHJlcXVpcmUgYSBs
YXllci4KKwogMjAxMi0wOC0xMCAgVGFrYXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+
CiAKICAgICAgICAgYm94LXNoYWRvdyBjcmVhdGVzIGluY29ycmVjdCBzaGFkb3cgd2hlbiBib3Jk
ZXItcmFkaXVzIGlzIHRvbyBsYXJnZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmlu
ZGV4IGJjYzhjMWY5YzRhZWY2NDNkZDdkZDI4NDJkNjVkMTBkODNjZGUwNzEuLmRlNDUzYmQ3ZTMz
ZWY5MjY0YWVlZGE0YTUzZjRkMWExMzFlOGIwZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNv
bHZlci5jcHAKQEAgLTIwNjcsNiArMjA2NywxNSBAQCBzdGF0aWMgYm9vbCBkb2VzTm90SW5oZXJp
dFRleHREZWNvcmF0aW9uKFJlbmRlclN0eWxlKiBzdHlsZSwgRWxlbWVudCogZSkKICAgICAgICAg
fHwgc3R5bGUtPmlzRmxvYXRpbmcoKSB8fCBzdHlsZS0+aXNPdXRPZkZsb3dQb3NpdGlvbmVkKCk7
CiB9CiAKK3N0YXRpYyBib29sIGlzRGlzcGxheUZsZXhpYmxlQm94KEVEaXNwbGF5IGRpc3BsYXkp
Cit7CisjaWYgRU5BQkxFKENTUzNfRkxFWEJPWCkKKyAgICByZXR1cm4gZGlzcGxheSA9PSBGTEVY
IHx8IGRpc3BsYXkgPT0gSU5MSU5FX0ZMRVg7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNl
bmRpZgorfQorCiB2b2lkIFN0eWxlUmVzb2x2ZXI6OmFkanVzdFJlbmRlclN0eWxlKFJlbmRlclN0
eWxlKiBzdHlsZSwgUmVuZGVyU3R5bGUqIHBhcmVudFN0eWxlLCBFbGVtZW50ICplKQogewogICAg
IC8vIENhY2hlIG91ciBvcmlnaW5hbCBkaXNwbGF5LgpAQCAtMjE1MiwxNCArMjE2MSwxNCBAQCB2
b2lkIFN0eWxlUmVzb2x2ZXI6OmFkanVzdFJlbmRlclN0eWxlKFJlbmRlclN0eWxlKiBzdHlsZSwg
UmVuZGVyU3R5bGUqIHBhcmVudFN0eQogICAgICAgICBpZiAoc3R5bGUtPndyaXRpbmdNb2RlKCkg
IT0gVG9wVG9Cb3R0b21Xcml0aW5nTW9kZSAmJiAoc3R5bGUtPmRpc3BsYXkoKSA9PSBCT1ggfHwg
c3R5bGUtPmRpc3BsYXkoKSA9PSBJTkxJTkVfQk9YKSkKICAgICAgICAgICAgIHN0eWxlLT5zZXRX
cml0aW5nTW9kZShUb3BUb0JvdHRvbVdyaXRpbmdNb2RlKTsKIAotICAgICAgICBpZiAoZSAmJiBl
LT5wYXJlbnROb2RlKCkgJiYgZS0+cGFyZW50Tm9kZSgpLT5yZW5kZXJlcigpICYmIGUtPnBhcmVu
dE5vZGUoKS0+cmVuZGVyZXIoKS0+aXNGbGV4aWJsZUJveCgpKSB7CisgICAgICAgIGlmIChpc0Rp
c3BsYXlGbGV4aWJsZUJveChwYXJlbnRTdHlsZS0+ZGlzcGxheSgpKSkgewogICAgICAgICAgICAg
c3R5bGUtPnNldEZsb2F0aW5nKE5vRmxvYXQpOwogICAgICAgICAgICAgc3R5bGUtPnNldERpc3Bs
YXkoZXF1aXZhbGVudEJsb2NrRGlzcGxheShzdHlsZS0+ZGlzcGxheSgpLCBzdHlsZS0+aXNGbG9h
dGluZygpLCBtX2NoZWNrZXIuc3RyaWN0UGFyc2luZygpKSk7CiAgICAgICAgIH0KICAgICB9CiAK
ICAgICAvLyBNYWtlIHN1cmUgb3VyIHotaW5kZXggdmFsdWUgaXMgb25seSBhcHBsaWVkIGlmIHRo
ZSBvYmplY3QgaXMgcG9zaXRpb25lZC4KLSAgICBpZiAoc3R5bGUtPnBvc2l0aW9uKCkgPT0gU3Rh
dGljUG9zaXRpb24pCisgICAgaWYgKHN0eWxlLT5wb3NpdGlvbigpID09IFN0YXRpY1Bvc2l0aW9u
ICYmICFpc0Rpc3BsYXlGbGV4aWJsZUJveChwYXJlbnRTdHlsZS0+ZGlzcGxheSgpKSkKICAgICAg
ICAgc3R5bGUtPnNldEhhc0F1dG9aSW5kZXgoKTsKIAogICAgIC8vIEF1dG8gei1pbmRleCBiZWNv
bWVzIDAgZm9yIHRoZSByb290IGVsZW1lbnQgYW5kIHRyYW5zcGFyZW50IG9iamVjdHMuIFRoaXMg
cHJldmVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3gu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCAyZGNjM2NkYzdj
YjA0YjI4ZTk1MDBlZDg0NzUwOGNlMzNjOGFiZWU5Li43ZmY4NmEwN2M0MDQ5ZTZiZmRhNTJlZjc3
M2RiNjU3ODhjODY5NmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCkBAIC00
Miw3ICs0Miw5IEBAIHB1YmxpYzoKICAgICBSZW5kZXJCb3goTm9kZSopOwogICAgIHZpcnR1YWwg
flJlbmRlckJveCgpOwogCi0gICAgdmlydHVhbCBib29sIHJlcXVpcmVzTGF5ZXIoKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiBpc1Jvb3QoKSB8fCBpc091dE9mRmxvd1Bvc2l0aW9uZWQoKSB8fCBp
c1JlbFBvc2l0aW9uZWQoKSB8fCBpc1RyYW5zcGFyZW50KCkgfHwgaGFzT3ZlcmZsb3dDbGlwKCkg
fHwgaGFzVHJhbnNmb3JtKCkgfHwgaGFzSGlkZGVuQmFja2ZhY2UoKSB8fCBoYXNNYXNrKCkgfHwg
aGFzUmVmbGVjdGlvbigpIHx8IGhhc0ZpbHRlcigpIHx8IHN0eWxlKCktPnNwZWNpZmllc0NvbHVt
bnMoKTsgfQorICAgIC8vIGhhc0F1dG9aSW5kZXggb25seSByZXR1cm5zIHRydWUgaWYgdGhlIGVs
ZW1lbnQgaXMgcG9zaXRpb25lZCBvciBhIGZsZXgtaXRlbSBzaW5jZQorICAgIC8vIHBvc2l0aW9u
OnN0YXRpYyBlbGVtZW50cyB0aGF0IGFyZSBub3QgZmxleC1pdGVtcyBnZXQgdGhlaXIgei1pbmRl
eCBjb2VyY2VkIHRvIGF1dG8uCisgICAgdmlydHVhbCBib29sIHJlcXVpcmVzTGF5ZXIoKSBjb25z
dCBPVkVSUklERSB7IHJldHVybiBpc1Jvb3QoKSB8fCBpc091dE9mRmxvd1Bvc2l0aW9uZWQoKSB8
fCBpc1JlbFBvc2l0aW9uZWQoKSB8fCBpc1RyYW5zcGFyZW50KCkgfHwgaGFzT3ZlcmZsb3dDbGlw
KCkgfHwgaGFzVHJhbnNmb3JtKCkgfHwgaGFzSGlkZGVuQmFja2ZhY2UoKSB8fCBoYXNNYXNrKCkg
fHwgaGFzUmVmbGVjdGlvbigpIHx8IGhhc0ZpbHRlcigpIHx8IHN0eWxlKCktPnNwZWNpZmllc0Nv
bHVtbnMoKSB8fCAhc3R5bGUoKS0+aGFzQXV0b1pJbmRleCgpOyB9CiAKICAgICAvLyBVc2UgdGhp
cyB3aXRoIGNhdXRpb24hIE5vIHR5cGUgY2hlY2tpbmcgaXMgZG9uZSEKICAgICBSZW5kZXJCb3gq
IGZpcnN0Q2hpbGRCb3goKSBjb25zdDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzMjAyZGFmMmE2NTc3Y2EzYmJlMGQyYTQx
OTJhMDE2MzM5YjliYmE3Li5mMzM3OGE3OGZiNWE2NDdiYzM1Nzg0ZDFiZmMzNTU4NzBhOWY4MTA0
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDgtMTAgIE9qYW4gVmFmYWkgIDxvamFuQGNo
cm9taXVtLm9yZz4KKworICAgICAgICB6LWluZGV4IHNob3VsZCB3b3JrIHdpdGhvdXQgcG9zaXRp
b24gb24gZmxleGl0ZW1zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05MTQwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogY3NzMy9mbGV4Ym94L3otaW5kZXgtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogY3NzMy9mbGV4Ym94L3otaW5kZXguaHRtbDogQWRkZWQuCisgICAgICAgIFVzZSBhIHJl
Zi10ZXN0IHNpbmNlIHdlIHdhbnQgdG8gYmUgc3VyZSB0aGF0IHRoZSBlbGVtZW50cyBnZXQgcGFp
bnRlZCBpbiB0aGUgcmlnaHQgb3JkZXIuCisKIDIwMTItMDgtMTAgIFRha2FzaGkgU2FrYW1vdG8g
IDx0YXNha0Bnb29nbGUuY29tPgogCiAgICAgICAgIGJveC1zaGFkb3cgY3JlYXRlcyBpbmNvcnJl
Y3Qgc2hhZG93IHdoZW4gYm9yZGVyLXJhZGl1cyBpcyB0b28gbGFyZ2UuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvei1pbmRleC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVz
dHMvY3NzMy9mbGV4Ym94L3otaW5kZXgtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYmZhNGUw
YjJmMjBmMDE2N2VhMGUyZGVhYzk4MGZkYjFjYjkwMDg0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3otaW5kZXgtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDIz
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKy5jb250YWluZXIgPiBkaXYgeworICAgIHBv
c2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDA7Cit9CisubGFyZ2UgeworICAgIHdpZHRoOiA1
MHB4OworICAgIGhlaWdodDogNTBweDsKK30KKy5zbWFsbCB7CisgICAgbGVmdDogMjVweDsKKyAg
ICBoZWlnaHQ6IDI1cHg7CisgICAgd2lkdGg6IDUwcHg7Cit9Cis8L3N0eWxlPgorPGRpdj5UaGlz
IHRlc3RzIHRoYXQgei1pbmRleCBvbiBub24tcG9zaXRpb25lZCBmbGV4LWl0ZW1zIHdvcmtzLiBU
aGUgZ3JlZW4gYm94IHNob3VsZCBiZSBhYm92ZSB0aGUgb3JhbmdlIGJveCwgd2hpY2ggc2hvdWxk
IGJlIGFib3ZlIHRoZSBwdXJwbGUgYm94ZXMsIHdoaWNoIGFyZSBhYm92ZSB0aGUgc2FsbW9uIGJv
eC48ZGl2PgorPGRpdiBjbGFzcz0iY29udGFpbmVyIiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmUi
PgorICAgIDxkaXYgY2xhc3M9ImxhcmdlIiBzdHlsZT0iei1pbmRleDogMTsgYmFja2dyb3VuZC1j
b2xvcjogc2FsbW9uOyI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ibGFyZ2UiIHN0eWxlPSJ6LWlu
ZGV4OiAxMDA7IGJhY2tncm91bmQtY29sb3I6IG9yYW5nZTsgbGVmdDogNTBweDsiPjwvZGl2Pgor
ICAgIDxkaXYgY2xhc3M9InNtYWxsIiBzdHlsZT0iei1pbmRleDogMTUwOyBiYWNrZ3JvdW5kLWNv
bG9yOiBncmVlbiI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic21hbGwiIHN0eWxlPSJ6LWluZGV4
OiA1MDsgYmFja2dyb3VuZC1jb2xvcjogcHVycGxlOyB0b3A6IDI1cHg7Ij48L2Rpdj4KKzwvZGl2
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3otaW5kZXguaHRtbCBiL0xh
eW91dFRlc3RzL2NzczMvZmxleGJveC96LWluZGV4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGY2NzVjMDRm
MTVhYjQ2MzdiN2ZjMDgzMjNkYzNmYTNjZmIxZjg4ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2NzczMvZmxleGJveC96LWluZGV4Lmh0bWwKQEAgLTAsMCArMSwyMiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8c3R5bGU+CisuZmxleC1pdGVtIHsKKyAgICB3aWR0aDogNTBweDsKKyAgICBo
ZWlnaHQ6IDUwcHg7Cit9CisucG9zaXRpb25lZCB7CisgICAgcG9zaXRpb246IGFic29sdXRlOyAK
KyAgICBsZWZ0OiAyNXB4OyAKKyAgICBoZWlnaHQ6IDI1cHg7CisgICAgd2lkdGg6IDUwcHg7IAor
fQorPC9zdHlsZT4KKzxkaXY+VGhpcyB0ZXN0cyB0aGF0IHotaW5kZXggb24gbm9uLXBvc2l0aW9u
ZWQgZmxleC1pdGVtcyB3b3Jrcy4gVGhlIGdyZWVuIGJveCBzaG91bGQgYmUgYWJvdmUgdGhlIG9y
YW5nZSBib3gsIHdoaWNoIHNob3VsZCBiZSBhYm92ZSB0aGUgcHVycGxlIGJveGVzLCB3aGljaCBh
cmUgYWJvdmUgdGhlIHNhbG1vbiBib3guPGRpdj4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOnJlbGF0
aXZlIj4KKyAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5Oi13ZWJraXQtZmxleDsiPgorICAgICAgICA8
ZGl2IGNsYXNzPSJmbGV4LWl0ZW0iIHN0eWxlPSJ6LWluZGV4OiAxOyBiYWNrZ3JvdW5kLWNvbG9y
OiBzYWxtb247Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iZmxleC1pdGVtIiBzdHlsZT0i
ei1pbmRleDogMTAwOyBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2U7Ij48L2Rpdj4KKyAgICA8L2Rp
dj4KKyAgICA8ZGl2IGNsYXNzPSJwb3NpdGlvbmVkIiBzdHlsZT0idG9wOiAwOyB6LWluZGV4OiAx
NTA7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuIj48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJwb3Np
dGlvbmVkIiBzdHlsZT0idG9wOiAyNXB4OyB6LWluZGV4OiA1MDsgYmFja2dyb3VuZC1jb2xvcjog
cHVycGxlIj48L2Rpdj4KKzwvZGl2Pgo=
</data>
<flag name="review"
          id="167741"
          type_id="1"
          status="+"
          setter="tony"
    />
    <flag name="commit-queue"
          id="168015"
          type_id="3"
          status="-"
          setter="jchaffraix"
    />
          </attachment>
      

    </bug>

</bugzilla>