<?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>118493</bug_id>
          
          <creation_ts>2013-07-08 19:25:17 -0700</creation_ts>
          <short_desc>Deferring layer flushes can cause painting without layout being done</short_desc>
          <delta_ts>2013-07-10 14:19:02 -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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>andersca</cc>
    
    <cc>koivisto</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>906978</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-07-08 19:25:17 -0700</bug_when>
    <thetext>1. We depend on a run loop observer that fires just before CA does painting to ensure that layout is up-to-date.
2. TileController manually calls setNeedsDisplay on CALayers.
3. RenderLayerCompositor can (after r147797) defer #1 and cause it to not happen in the same run loop cycle as #2.
4. This means that we can end up painting without layout being up-to-date, which can cause horrible, horrible graphical issues.

We need to not defer (#3) if TileController has setNeedsDisplay&apos;d any layers manually (or if we&apos;ve added any new dirty layers).

&lt;rdar://problem/14286329&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>906980</commentid>
    <comment_count>1</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-07-08 19:27:11 -0700</bug_when>
    <thetext>One of the best repro cases of actual real world badness caused by this is http://www.mercurynews.com, which frequently shows garbage (or black) upon loading.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907336</commentid>
    <comment_count>2</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-07-10 03:53:47 -0700</bug_when>
    <thetext>#2 is actually &quot;TileController can parent layers which had setNeedsDisplay called on them long ago, but were unparented&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907338</commentid>
    <comment_count>3</comment_count>
      <attachid>206378</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-07-10 04:03:27 -0700</bug_when>
    <thetext>Created attachment 206378
preliminary patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907442</commentid>
    <comment_count>4</comment_count>
      <attachid>206409</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-07-10 13:01:40 -0700</bug_when>
    <thetext>Created attachment 206409
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907449</commentid>
    <comment_count>5</comment_count>
      <attachid>206409</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-07-10 13:36:02 -0700</bug_when>
    <thetext>Comment on attachment 206409
patch

For the benefit of future debuggers, it might be good to add a comment above platformCALayerDidCreateTiles call as it is not that obvious that it initiates an immediate layer flush.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907450</commentid>
    <comment_count>6</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-07-10 13:38:52 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 206409 [details])
&gt; For the benefit of future debuggers, it might be good to add a comment above platformCALayerDidCreateTiles call as it is not that obvious that it initiates an immediate layer flush.

True. I&apos;ll do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907464</commentid>
    <comment_count>7</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-07-10 14:19:02 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/152548</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206378</attachid>
            <date>2013-07-10 04:03:27 -0700</date>
            <delta_ts>2013-07-10 13:01:40 -0700</delta_ts>
            <desc>preliminary patch</desc>
            <filename>preliminary.diff</filename>
            <type>text/plain</type>
            <size>5584</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9UaWxl
Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9U
aWxlQ29udHJvbGxlci5tbQppbmRleCBiOTM1MDIwLi41MjEzYTQxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGlsZUNvbnRyb2xsZXIubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDb250cm9sbGVy
Lm1tCkBAIC02ODYsMjYgKzY4NiwzMCBAQCB2b2lkIFRpbGVDb250cm9sbGVyOjpyZXZhbGlkYXRl
VGlsZXMoVGlsZVZhbGlkYXRpb25Qb2xpY3lGbGFncyBmb3JlZ3JvdW5kVmFsaWRhdAogICAgICAg
ICAgICAgSW50UmVjdCB0aWxlUmVjdCA9IHJlY3RGb3JUaWxlSW5kZXgodGlsZUluZGV4KTsKICAg
ICAgICAgICAgIG1fcHJpbWFyeVRpbGVDb3ZlcmFnZVJlY3QudW5pdGUodGlsZVJlY3QpOwogCisg
ICAgICAgICAgICBib29sIHNob3VsZENoYW5nZVRpbGVMYXllckZyYW1lID0gZmFsc2U7CisKICAg
ICAgICAgICAgIFRpbGVJbmZvJiB0aWxlSW5mbyA9IG1fdGlsZXMuYWRkKHRpbGVJbmRleCwgVGls
ZUluZm8oKSkuaXRlcmF0b3ItPnZhbHVlOwotICAgICAgICAgICAgaWYgKCF0aWxlSW5mby5sYXll
cikgeworICAgICAgICAgICAgaWYgKCF0aWxlSW5mby5sYXllcikKICAgICAgICAgICAgICAgICB0
aWxlSW5mby5sYXllciA9IGNyZWF0ZVRpbGVMYXllcih0aWxlUmVjdCk7Ci0gICAgICAgICAgICAg
ICAgaWYgKCFtX3VucGFyZW50c09mZnNjcmVlblRpbGVzIHx8IG1faXNJbldpbmRvdykKLSAgICAg
ICAgICAgICAgICAgICAgW21fdGlsZUNvbnRhaW5lckxheWVyLmdldCgpIGFkZFN1YmxheWVyOnRp
bGVJbmZvLmxheWVyLmdldCgpXTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKCghbV91bnBhcmVudHNPZmZzY3JlZW5UaWxlcyB8fCBtX2lzSW5XaW5kb3cpICYmICFb
dGlsZUluZm8ubGF5ZXIuZ2V0KCkgc3VwZXJsYXllcl0pCi0gICAgICAgICAgICAgICAgICAgIFtt
X3RpbGVDb250YWluZXJMYXllci5nZXQoKSBhZGRTdWJsYXllcjp0aWxlSW5mby5sYXllci5nZXQo
KV07Ci0KKyAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgIC8vIFdlIGFscmVhZHkg
aGF2ZSBhIGxheWVyIGZvciB0aGlzIHRpbGUuIEVuc3VyZSB0aGF0IGl0cyBzaXplIGlzIGNvcnJl
Y3QuCiAgICAgICAgICAgICAgICAgRmxvYXRTaXplIHRpbGVMYXllclNpemUoW3RpbGVJbmZvLmxh
eWVyLmdldCgpIGZyYW1lXS5zaXplKTsKLSAgICAgICAgICAgICAgICBpZiAodGlsZUxheWVyU2l6
ZSA9PSBGbG9hdFNpemUodGlsZVJlY3Quc2l6ZSgpKSkKLSAgICAgICAgICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgICAgICAgICAgc2hvdWxkQ2hhbmdlVGlsZUxheWVyRnJhbWUgPSB0aWxl
TGF5ZXJTaXplICE9IEZsb2F0U2l6ZSh0aWxlUmVjdC5zaXplKCkpOwogCi0gICAgICAgICAgICAg
ICAgW3RpbGVJbmZvLmxheWVyLmdldCgpIHNldEZyYW1lOnRpbGVSZWN0XTsKKyAgICAgICAgICAg
ICAgICBpZiAoc2hvdWxkQ2hhbmdlVGlsZUxheWVyRnJhbWUpCisgICAgICAgICAgICAgICAgICAg
IFt0aWxlSW5mby5sYXllci5nZXQoKSBzZXRGcmFtZTp0aWxlUmVjdF07CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIGJvb2wgc2hvdWxkUGFyZW50VGlsZUxheWVyID0gKCFtX3VucGFyZW50
c09mZnNjcmVlblRpbGVzIHx8IG1faXNJbldpbmRvdykgJiYgIVt0aWxlSW5mby5sYXllci5nZXQo
KSBzdXBlcmxheWVyXTsKKworICAgICAgICAgICAgaWYgKHNob3VsZFBhcmVudFRpbGVMYXllcikK
KyAgICAgICAgICAgICAgICBbbV90aWxlQ29udGFpbmVyTGF5ZXIuZ2V0KCkgYWRkU3VibGF5ZXI6
dGlsZUluZm8ubGF5ZXIuZ2V0KCldOworCisgICAgICAgICAgICBpZiAoKHNob3VsZFBhcmVudFRp
bGVMYXllciAmJiBbdGlsZUluZm8ubGF5ZXIuZ2V0KCkgbmVlZHNEaXNwbGF5XSkgfHwgc2hvdWxk
Q2hhbmdlVGlsZUxheWVyRnJhbWUpIHsKKyAgICAgICAgICAgICAgICBGbG9hdFJlY3Qgc2NhbGVk
VGlsZVJlY3QgPSB0aWxlUmVjdDsKKyAgICAgICAgICAgICAgICBzY2FsZWRUaWxlUmVjdC5zY2Fs
ZSgxIC8gbV9zY2FsZSk7CisgICAgICAgICAgICAgICAgZGlydHlSZWN0cy5hcHBlbmQoc2NhbGVk
VGlsZVJlY3QpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgICAgICBGbG9h
dFJlY3Qgc2NhbGVkVGlsZVJlY3QgPSB0aWxlUmVjdDsKLSAgICAgICAgICAgIHNjYWxlZFRpbGVS
ZWN0LnNjYWxlKDEgLyBtX3NjYWxlKTsKLSAgICAgICAgICAgIGRpcnR5UmVjdHMuYXBwZW5kKHNj
YWxlZFRpbGVSZWN0KTsKICAgICAgICAgfQogICAgIH0KIApAQCAtODM2LDE4ICs4NDAsMTggQEAg
dm9pZCBUaWxlQ29udHJvbGxlcjo6ZW5zdXJlVGlsZXNGb3JSZWN0KGNvbnN0IEZsb2F0UmVjdCYg
cmVjdCkKIAogICAgICAgICAgICAgSW50UmVjdCB0aWxlUmVjdCA9IHJlY3RGb3JUaWxlSW5kZXgo
dGlsZUluZGV4KTsKICAgICAgICAgICAgIFRpbGVJbmZvJiB0aWxlSW5mbyA9IG1fdGlsZXMuYWRk
KHRpbGVJbmRleCwgVGlsZUluZm8oKSkuaXRlcmF0b3ItPnZhbHVlOwotICAgICAgICAgICAgaWYg
KCF0aWxlSW5mby5sYXllcikgewotICAgICAgICAgICAgICAgIHRpbGVJbmZvLmxheWVyID0gY3Jl
YXRlVGlsZUxheWVyKHRpbGVSZWN0KTsKLSAgICAgICAgICAgICAgICBbbV90aWxlQ29udGFpbmVy
TGF5ZXIuZ2V0KCkgYWRkU3VibGF5ZXI6dGlsZUluZm8ubGF5ZXIuZ2V0KCldOwotICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAoIVt0aWxlSW5mby5sYXllci5nZXQoKSBz
dXBlcmxheWVyXSkKLSAgICAgICAgICAgICAgICAgICAgW21fdGlsZUNvbnRhaW5lckxheWVyLmdl
dCgpIGFkZFN1YmxheWVyOnRpbGVJbmZvLmxheWVyLmdldCgpXTsKIAorICAgICAgICAgICAgYm9v
bCBzaG91bGRDaGFuZ2VUaWxlTGF5ZXJGcmFtZSA9IGZhbHNlOworCisgICAgICAgICAgICBpZiAo
IXRpbGVJbmZvLmxheWVyKQorICAgICAgICAgICAgICAgIHRpbGVJbmZvLmxheWVyID0gY3JlYXRl
VGlsZUxheWVyKHRpbGVSZWN0KTsKKyAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAg
IC8vIFdlIGFscmVhZHkgaGF2ZSBhIGxheWVyIGZvciB0aGlzIHRpbGUuIEVuc3VyZSB0aGF0IGl0
cyBzaXplIGlzIGNvcnJlY3QuCiAgICAgICAgICAgICAgICAgQ0dTaXplIHRpbGVMYXllclNpemUg
PSBbdGlsZUluZm8ubGF5ZXIuZ2V0KCkgZnJhbWVdLnNpemU7Ci0gICAgICAgICAgICAgICAgaWYg
KHRpbGVMYXllclNpemUud2lkdGggPj0gdGlsZVJlY3Qud2lkdGgoKSAmJiB0aWxlTGF5ZXJTaXpl
LmhlaWdodCA+PSB0aWxlUmVjdC5oZWlnaHQoKSkKLSAgICAgICAgICAgICAgICAgICAgY29udGlu
dWU7Ci0gICAgICAgICAgICAgICAgW3RpbGVJbmZvLmxheWVyLmdldCgpIHNldEZyYW1lOnRpbGVS
ZWN0XTsKKyAgICAgICAgICAgICAgICBzaG91bGRDaGFuZ2VUaWxlTGF5ZXJGcmFtZSA9IHRpbGVM
YXllclNpemUud2lkdGggPCB0aWxlUmVjdC53aWR0aCgpIHx8IHRpbGVMYXllclNpemUuaGVpZ2h0
IDwgdGlsZVJlY3QuaGVpZ2h0KCk7CisKKyAgICAgICAgICAgICAgICBpZiAoc2hvdWxkQ2hhbmdl
VGlsZUxheWVyRnJhbWUpCisgICAgICAgICAgICAgICAgICAgIFt0aWxlSW5mby5sYXllci5nZXQo
KSBzZXRGcmFtZTp0aWxlUmVjdF07CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmICgh
dGlsZVJlY3QuaW50ZXJzZWN0cyhtX3ByaW1hcnlUaWxlQ292ZXJhZ2VSZWN0KSkgewpAQCAtODU1
LDkgKzg1OSwxNiBAQCB2b2lkIFRpbGVDb250cm9sbGVyOjplbnN1cmVUaWxlc0ZvclJlY3QoY29u
c3QgRmxvYXRSZWN0JiByZWN0KQogICAgICAgICAgICAgICAgICsrdGlsZXNJbkNvaG9ydDsKICAg
ICAgICAgICAgIH0KIAotICAgICAgICAgICAgRmxvYXRSZWN0IHNjYWxlZFRpbGVSZWN0ID0gdGls
ZVJlY3Q7Ci0gICAgICAgICAgICBzY2FsZWRUaWxlUmVjdC5zY2FsZSgxIC8gbV9zY2FsZSk7Ci0g
ICAgICAgICAgICBkaXJ0eVJlY3RzLmFwcGVuZChzY2FsZWRUaWxlUmVjdCk7CisgICAgICAgICAg
ICBib29sIHNob3VsZFBhcmVudFRpbGVMYXllciA9ICFbdGlsZUluZm8ubGF5ZXIuZ2V0KCkgc3Vw
ZXJsYXllcl07CisKKyAgICAgICAgICAgIGlmIChzaG91bGRQYXJlbnRUaWxlTGF5ZXIpCisgICAg
ICAgICAgICAgICAgW21fdGlsZUNvbnRhaW5lckxheWVyLmdldCgpIGFkZFN1YmxheWVyOnRpbGVJ
bmZvLmxheWVyLmdldCgpXTsKKworICAgICAgICAgICAgaWYgKChzaG91bGRQYXJlbnRUaWxlTGF5
ZXIgJiYgW3RpbGVJbmZvLmxheWVyLmdldCgpIG5lZWRzRGlzcGxheV0pIHx8IHNob3VsZENoYW5n
ZVRpbGVMYXllckZyYW1lKSB7CisgICAgICAgICAgICAgICAgRmxvYXRSZWN0IHNjYWxlZFRpbGVS
ZWN0ID0gdGlsZVJlY3Q7CisgICAgICAgICAgICAgICAgc2NhbGVkVGlsZVJlY3Quc2NhbGUoMSAv
IG1fc2NhbGUpOworICAgICAgICAgICAgICAgIGRpcnR5UmVjdHMuYXBwZW5kKHNjYWxlZFRpbGVS
ZWN0KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KICAgICAKQEAgLTk5MywxMiAr
MTAwNCw5IEBAIFdlYlRpbGVMYXllciogVGlsZUNvbnRyb2xsZXI6OnRpbGVMYXllckF0SW5kZXgo
Y29uc3QgVGlsZUluZGV4JiBpbmRleCkgY29uc3QKIFJldGFpblB0cjxXZWJUaWxlTGF5ZXI+IFRp
bGVDb250cm9sbGVyOjpjcmVhdGVUaWxlTGF5ZXIoY29uc3QgSW50UmVjdCYgdGlsZVJlY3QpCiB7
CiAgICAgUmV0YWluUHRyPFdlYlRpbGVMYXllcj4gbGF5ZXIgPSBMYXllclBvb2w6OnNoYXJlZFBv
b2woKS0+dGFrZUxheWVyV2l0aFNpemUodGlsZVJlY3Quc2l6ZSgpKTsKLSAgICBpZiAobGF5ZXIp
IHsKLSAgICAgICAgLy8gSWYgd2Ugd2VyZSBhYmxlIHRvIHJlc3RvcmUgYSBsYXllciBmcm9tIHRo
ZSBMYXllclBvb2wsIHdlIHNob3VsZCBjYWxsIHNldE5lZWRzRGlzcGxheSB0bwotICAgICAgICAv
LyBlbnN1cmUgd2UgYXZvaWQgc3RhbGUgY29udGVudC4KKyAgICBpZiAobGF5ZXIpCiAgICAgICAg
IFtsYXllciByZXNldFBhaW50Q291bnRdOwotICAgICAgICBbbGF5ZXIgc2V0TmVlZHNEaXNwbGF5
XTsKLSAgICB9IGVsc2UKKyAgICBlbHNlCiAgICAgICAgIGxheWVyID0gYWRvcHROUyhbW1dlYlRp
bGVMYXllciBhbGxvY10gaW5pdF0pOwogICAgIFtsYXllci5nZXQoKSBzZXRBbmNob3JQb2ludDpD
R1BvaW50WmVyb107CiAgICAgW2xheWVyLmdldCgpIHNldEZyYW1lOnRpbGVSZWN0XTsKQEAgLTEw
MTYsNiArMTAyNCw4IEBAIFJldGFpblB0cjxXZWJUaWxlTGF5ZXI+IFRpbGVDb250cm9sbGVyOjpj
cmVhdGVUaWxlTGF5ZXIoY29uc3QgSW50UmVjdCYgdGlsZVJlY3QpCiAgICAgW2xheWVyLmdldCgp
IHNldEFjY2VsZXJhdGVzRHJhd2luZzptX2FjY2VsZXJhdGVzRHJhd2luZ107CiAjZW5kaWYKIAor
ICAgIFtsYXllciBzZXROZWVkc0Rpc3BsYXldOworCiAgICAgcmV0dXJuIGxheWVyOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206409</attachid>
            <date>2013-07-10 13:01:40 -0700</date>
            <delta_ts>2013-07-10 13:36:02 -0700</delta_ts>
            <desc>patch</desc>
            <filename>preliminary.diff</filename>
            <type>text/plain</type>
            <size>8073</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiNjE5ZjJiLi41MmRlZmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMg
QEAKKzIwMTMtMDctMTAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgRGVmZXJyaW5nIGxheWVyIGZsdXNoZXMgY2FuIGNhdXNlIHBhaW50aW5nIHdpdGhv
dXQgbGF5b3V0IGJlaW5nIGRvbmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTExODQ5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIHIxNDc3OTcgYWRkZWQgYSBtZWNoYW5pc20gZm9yIHRoZSBUaWxlQ29udHJv
bGxlciB0byBpbmZvcm0gUmVuZGVyTGF5ZXJDb21wb3NpdG9yCisgICAgICAgIHRoYXQgaXQgaGFk
IHBlcmZvcm1lZCBhbiBhY3Rpb24gKHNldE5lZWRzRGlzcGxheSwgZXRjLikgdGhhdCB3b3VsZCBj
YXVzZSBDb3JlQW5pbWF0aW9uCisgICAgICAgIHRvIGNhbGwgYmFjayBpbnRvIHVzIHRvIHBhaW50
IGluIHRoaXMgcnVubG9vcCwgYW5kIHRoYXQgaXQgc2hvdWxkbid0IHRocm90dGxlIHRoZSBuZXh0
CisgICAgICAgIGxheWVyIGZsdXNoLgorCisgICAgICAgIEhvd2V2ZXIsIGlmIHRpbGVzIHdlcmUg
Y3JlYXRlZCBhbmQgbGVmdCB1bnBhcmVudGVkIChiZWNhdXNlIHRoZSBUaWxlQ29udHJvbGxlciB3
YXMKKyAgICAgICAgb3V0LW9mLXdpbmRvdyksIHdoZW4gdGhleSBhcmUgbGF0ZXIgcGFyZW50ZWQs
IHdlIGZhaWxlZCB0byBpbmZvcm0gUmVuZGVyTGF5ZXJDb21wb3NpdG9yCisgICAgICAgIHRoYXQg
dGhleSB3ZXJlIGFib3V0IHRvIGNhbGwgYmFjayBmb3IgcGFpbnRpbmcsIGFuZCBzbyBpdCB3b3Vs
ZCBoYXBwaWx5IHRocm90dGxlIHRoZQorICAgICAgICBuZXh0IGxheWVyIGZsdXNoLCBhbmQgbGF5
b3V0IHdvdWxkIGJlIG91dCBvZiBkYXRlLCBhbmQgZ2FyYmFnZSBhbmQgY29ycnVwdGlvbiBjb3Vs
ZCByZXN1bHQuCisKKyAgICAgICAgVG8gcmVzb2x2ZSB0aGlzLCByZXdvcmsgdGhlIGxvZ2ljIHN1
cnJvdW5kaW5nIHBhcmVudGluZyBleGlzdGluZy1idXQtdW5wYXJlbnRlZCB0aWxlcworICAgICAg
ICB0byBlbnN1cmUgdGhhdCB0aGV5IGdldCBhZGRlZCB0byB0aGUgVGlsZUNvbnRyb2xsZXIncyBk
aXJ0eVJlY3QuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzOyB0aGUgYnVnIG9ubHkgcmVwcm9kdWNl
cyB1bmRlciBzcGVjaWZpYyB0aW1pbmcgY2lyY3Vtc3RhbmNlcywgYW5kCisgICAgICAgIG1hbmlm
ZXN0cyBpdHNlbGYgYXMgYW4gYXNzZXJ0aW9uIGZhaWx1cmUgb3IgZ2FyYmFnZSBvbiB0aGUgc2Ny
ZWVuLCBzbyBpdCdzIHF1aXRlCisgICAgICAgIGhhcmQgdG8gbWFrZSBhIHdvcmthYmxlIHRlc3Qu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGlsZUNvbnRyb2xsZXIubW06
CisgICAgICAgIChXZWJDb3JlOjpUaWxlQ29udHJvbGxlcjo6cmV2YWxpZGF0ZVRpbGVzKToKKyAg
ICAgICAgLSBGYWN0b3Igb3V0IHRoZSBjb2RlIHRvIHBhcmVudCB1bnBhcmVudGVkIHRpbGVzIHNv
IHRoYXQgaXQgaXMgc2hhcmVkIGJldHdlZW4gdGhlCisgICAgICAgICAgICBjcmVhdGVkLW5ldy10
aWxlIGFuZCByZXBhcmVudGluZy1leGlzdGluZy10aWxlIGNhc2VzLgorICAgICAgICAtIEtlZXAg
dHJhY2sgb2Ygd2hldGhlciB3ZSB1cGRhdGVkIHRoZSBmcmFtZSBvZiBhIHByZS1leGlzdGluZyB0
aWxlLgorICAgICAgICAtIElmIHRoZSB0aWxlIGlzIGRpcnR5IGFuZCBuZWVkZWQgdG8gYmUgcGFy
ZW50ZWQgKGJlY2F1c2UgZWl0aGVyIGl0J3MgbmV3CisgICAgICAgICAgICBvciBoYWRuJ3QgYmVl
biBwYXJlbnRlZCBiZWZvcmUpLCBhZGQgaXQgdG8gdGhlIGRpcnR5IHJlY3QgbGlzdC4KKyAgICAg
ICAgLSBJZiB0aGUgdGlsZSBjaGFuZ2VkIHNpemUsIGFkZCBpdCB0byB0aGUgZGlydHkgcmVjdCBs
aXN0LgorCisgICAgICAgIChXZWJDb3JlOjpUaWxlQ29udHJvbGxlcjo6ZW5zdXJlVGlsZXNGb3JS
ZWN0KToKKyAgICAgICAgRGl0dG8gZXZlcnl0aGluZyBmcm9tIHJldmFsaWRhdGVUaWxlcy4KKwor
ICAgICAgICAoV2ViQ29yZTo6VGlsZUNvbnRyb2xsZXI6OmNyZWF0ZVRpbGVMYXllcik6CisgICAg
ICAgIC0gRXhwbGljaXRseSBtYXJrIGZyZXNoIHRpbGVzIGFzIG5lZWRpbmcgZGlzcGxheSwgc28g
dGhhdCB3ZSBjYW4gZGVwZW5kIG9uCisgICAgICAgICAgICBbV2ViVGlsZUxheWVyIG5lZWRzRGlz
cGxheV0gaW4gcmV2YWxpZGF0ZVRpbGVzIHRvIHRlbGwgdXMgdGhhdCBpdCdzIGRpcnR5LgorCiAy
MDEzLTA3LTA4ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTUyNDE2LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDb250cm9sbGVyLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDb250cm9sbGVyLm1tCmlu
ZGV4IGI5MzUwMjAuLjUyMTNhNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL21hYy9UaWxlQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGlsZUNvbnRyb2xsZXIubW0KQEAgLTY4NiwyNiArNjg2
LDMwIEBAIHZvaWQgVGlsZUNvbnRyb2xsZXI6OnJldmFsaWRhdGVUaWxlcyhUaWxlVmFsaWRhdGlv
blBvbGljeUZsYWdzIGZvcmVncm91bmRWYWxpZGF0CiAgICAgICAgICAgICBJbnRSZWN0IHRpbGVS
ZWN0ID0gcmVjdEZvclRpbGVJbmRleCh0aWxlSW5kZXgpOwogICAgICAgICAgICAgbV9wcmltYXJ5
VGlsZUNvdmVyYWdlUmVjdC51bml0ZSh0aWxlUmVjdCk7CiAKKyAgICAgICAgICAgIGJvb2wgc2hv
dWxkQ2hhbmdlVGlsZUxheWVyRnJhbWUgPSBmYWxzZTsKKwogICAgICAgICAgICAgVGlsZUluZm8m
IHRpbGVJbmZvID0gbV90aWxlcy5hZGQodGlsZUluZGV4LCBUaWxlSW5mbygpKS5pdGVyYXRvci0+
dmFsdWU7Ci0gICAgICAgICAgICBpZiAoIXRpbGVJbmZvLmxheWVyKSB7CisgICAgICAgICAgICBp
ZiAoIXRpbGVJbmZvLmxheWVyKQogICAgICAgICAgICAgICAgIHRpbGVJbmZvLmxheWVyID0gY3Jl
YXRlVGlsZUxheWVyKHRpbGVSZWN0KTsKLSAgICAgICAgICAgICAgICBpZiAoIW1fdW5wYXJlbnRz
T2Zmc2NyZWVuVGlsZXMgfHwgbV9pc0luV2luZG93KQotICAgICAgICAgICAgICAgICAgICBbbV90
aWxlQ29udGFpbmVyTGF5ZXIuZ2V0KCkgYWRkU3VibGF5ZXI6dGlsZUluZm8ubGF5ZXIuZ2V0KCld
OwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAoKCFtX3VucGFyZW50
c09mZnNjcmVlblRpbGVzIHx8IG1faXNJbldpbmRvdykgJiYgIVt0aWxlSW5mby5sYXllci5nZXQo
KSBzdXBlcmxheWVyXSkKLSAgICAgICAgICAgICAgICAgICAgW21fdGlsZUNvbnRhaW5lckxheWVy
LmdldCgpIGFkZFN1YmxheWVyOnRpbGVJbmZvLmxheWVyLmdldCgpXTsKLQorICAgICAgICAgICAg
ZWxzZSB7CiAgICAgICAgICAgICAgICAgLy8gV2UgYWxyZWFkeSBoYXZlIGEgbGF5ZXIgZm9yIHRo
aXMgdGlsZS4gRW5zdXJlIHRoYXQgaXRzIHNpemUgaXMgY29ycmVjdC4KICAgICAgICAgICAgICAg
ICBGbG9hdFNpemUgdGlsZUxheWVyU2l6ZShbdGlsZUluZm8ubGF5ZXIuZ2V0KCkgZnJhbWVdLnNp
emUpOwotICAgICAgICAgICAgICAgIGlmICh0aWxlTGF5ZXJTaXplID09IEZsb2F0U2l6ZSh0aWxl
UmVjdC5zaXplKCkpKQotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRDaGFuZ2VUaWxlTGF5ZXJGcmFtZSA9IHRpbGVMYXllclNpemUgIT0gRmxvYXRT
aXplKHRpbGVSZWN0LnNpemUoKSk7CiAKLSAgICAgICAgICAgICAgICBbdGlsZUluZm8ubGF5ZXIu
Z2V0KCkgc2V0RnJhbWU6dGlsZVJlY3RdOworICAgICAgICAgICAgICAgIGlmIChzaG91bGRDaGFu
Z2VUaWxlTGF5ZXJGcmFtZSkKKyAgICAgICAgICAgICAgICAgICAgW3RpbGVJbmZvLmxheWVyLmdl
dCgpIHNldEZyYW1lOnRpbGVSZWN0XTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYm9v
bCBzaG91bGRQYXJlbnRUaWxlTGF5ZXIgPSAoIW1fdW5wYXJlbnRzT2Zmc2NyZWVuVGlsZXMgfHwg
bV9pc0luV2luZG93KSAmJiAhW3RpbGVJbmZvLmxheWVyLmdldCgpIHN1cGVybGF5ZXJdOworCisg
ICAgICAgICAgICBpZiAoc2hvdWxkUGFyZW50VGlsZUxheWVyKQorICAgICAgICAgICAgICAgIFtt
X3RpbGVDb250YWluZXJMYXllci5nZXQoKSBhZGRTdWJsYXllcjp0aWxlSW5mby5sYXllci5nZXQo
KV07CisKKyAgICAgICAgICAgIGlmICgoc2hvdWxkUGFyZW50VGlsZUxheWVyICYmIFt0aWxlSW5m
by5sYXllci5nZXQoKSBuZWVkc0Rpc3BsYXldKSB8fCBzaG91bGRDaGFuZ2VUaWxlTGF5ZXJGcmFt
ZSkgeworICAgICAgICAgICAgICAgIEZsb2F0UmVjdCBzY2FsZWRUaWxlUmVjdCA9IHRpbGVSZWN0
OworICAgICAgICAgICAgICAgIHNjYWxlZFRpbGVSZWN0LnNjYWxlKDEgLyBtX3NjYWxlKTsKKyAg
ICAgICAgICAgICAgICBkaXJ0eVJlY3RzLmFwcGVuZChzY2FsZWRUaWxlUmVjdCk7CiAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIEZsb2F0UmVjdCBzY2FsZWRUaWxlUmVj
dCA9IHRpbGVSZWN0OwotICAgICAgICAgICAgc2NhbGVkVGlsZVJlY3Quc2NhbGUoMSAvIG1fc2Nh
bGUpOwotICAgICAgICAgICAgZGlydHlSZWN0cy5hcHBlbmQoc2NhbGVkVGlsZVJlY3QpOwogICAg
ICAgICB9CiAgICAgfQogCkBAIC04MzYsMTggKzg0MCwxOCBAQCB2b2lkIFRpbGVDb250cm9sbGVy
OjplbnN1cmVUaWxlc0ZvclJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogCiAgICAgICAgICAg
ICBJbnRSZWN0IHRpbGVSZWN0ID0gcmVjdEZvclRpbGVJbmRleCh0aWxlSW5kZXgpOwogICAgICAg
ICAgICAgVGlsZUluZm8mIHRpbGVJbmZvID0gbV90aWxlcy5hZGQodGlsZUluZGV4LCBUaWxlSW5m
bygpKS5pdGVyYXRvci0+dmFsdWU7Ci0gICAgICAgICAgICBpZiAoIXRpbGVJbmZvLmxheWVyKSB7
Ci0gICAgICAgICAgICAgICAgdGlsZUluZm8ubGF5ZXIgPSBjcmVhdGVUaWxlTGF5ZXIodGlsZVJl
Y3QpOwotICAgICAgICAgICAgICAgIFttX3RpbGVDb250YWluZXJMYXllci5nZXQoKSBhZGRTdWJs
YXllcjp0aWxlSW5mby5sYXllci5nZXQoKV07Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgIGlmICghW3RpbGVJbmZvLmxheWVyLmdldCgpIHN1cGVybGF5ZXJdKQotICAgICAg
ICAgICAgICAgICAgICBbbV90aWxlQ29udGFpbmVyTGF5ZXIuZ2V0KCkgYWRkU3VibGF5ZXI6dGls
ZUluZm8ubGF5ZXIuZ2V0KCldOwogCisgICAgICAgICAgICBib29sIHNob3VsZENoYW5nZVRpbGVM
YXllckZyYW1lID0gZmFsc2U7CisKKyAgICAgICAgICAgIGlmICghdGlsZUluZm8ubGF5ZXIpCisg
ICAgICAgICAgICAgICAgdGlsZUluZm8ubGF5ZXIgPSBjcmVhdGVUaWxlTGF5ZXIodGlsZVJlY3Qp
OworICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgLy8gV2UgYWxyZWFkeSBoYXZl
IGEgbGF5ZXIgZm9yIHRoaXMgdGlsZS4gRW5zdXJlIHRoYXQgaXRzIHNpemUgaXMgY29ycmVjdC4K
ICAgICAgICAgICAgICAgICBDR1NpemUgdGlsZUxheWVyU2l6ZSA9IFt0aWxlSW5mby5sYXllci5n
ZXQoKSBmcmFtZV0uc2l6ZTsKLSAgICAgICAgICAgICAgICBpZiAodGlsZUxheWVyU2l6ZS53aWR0
aCA+PSB0aWxlUmVjdC53aWR0aCgpICYmIHRpbGVMYXllclNpemUuaGVpZ2h0ID49IHRpbGVSZWN0
LmhlaWdodCgpKQotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAg
ICBbdGlsZUluZm8ubGF5ZXIuZ2V0KCkgc2V0RnJhbWU6dGlsZVJlY3RdOworICAgICAgICAgICAg
ICAgIHNob3VsZENoYW5nZVRpbGVMYXllckZyYW1lID0gdGlsZUxheWVyU2l6ZS53aWR0aCA8IHRp
bGVSZWN0LndpZHRoKCkgfHwgdGlsZUxheWVyU2l6ZS5oZWlnaHQgPCB0aWxlUmVjdC5oZWlnaHQo
KTsKKworICAgICAgICAgICAgICAgIGlmIChzaG91bGRDaGFuZ2VUaWxlTGF5ZXJGcmFtZSkKKyAg
ICAgICAgICAgICAgICAgICAgW3RpbGVJbmZvLmxheWVyLmdldCgpIHNldEZyYW1lOnRpbGVSZWN0
XTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKCF0aWxlUmVjdC5pbnRlcnNlY3Rz
KG1fcHJpbWFyeVRpbGVDb3ZlcmFnZVJlY3QpKSB7CkBAIC04NTUsOSArODU5LDE2IEBAIHZvaWQg
VGlsZUNvbnRyb2xsZXI6OmVuc3VyZVRpbGVzRm9yUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3Qp
CiAgICAgICAgICAgICAgICAgKyt0aWxlc0luQ29ob3J0OwogICAgICAgICAgICAgfQogCi0gICAg
ICAgICAgICBGbG9hdFJlY3Qgc2NhbGVkVGlsZVJlY3QgPSB0aWxlUmVjdDsKLSAgICAgICAgICAg
IHNjYWxlZFRpbGVSZWN0LnNjYWxlKDEgLyBtX3NjYWxlKTsKLSAgICAgICAgICAgIGRpcnR5UmVj
dHMuYXBwZW5kKHNjYWxlZFRpbGVSZWN0KTsKKyAgICAgICAgICAgIGJvb2wgc2hvdWxkUGFyZW50
VGlsZUxheWVyID0gIVt0aWxlSW5mby5sYXllci5nZXQoKSBzdXBlcmxheWVyXTsKKworICAgICAg
ICAgICAgaWYgKHNob3VsZFBhcmVudFRpbGVMYXllcikKKyAgICAgICAgICAgICAgICBbbV90aWxl
Q29udGFpbmVyTGF5ZXIuZ2V0KCkgYWRkU3VibGF5ZXI6dGlsZUluZm8ubGF5ZXIuZ2V0KCldOwor
CisgICAgICAgICAgICBpZiAoKHNob3VsZFBhcmVudFRpbGVMYXllciAmJiBbdGlsZUluZm8ubGF5
ZXIuZ2V0KCkgbmVlZHNEaXNwbGF5XSkgfHwgc2hvdWxkQ2hhbmdlVGlsZUxheWVyRnJhbWUpIHsK
KyAgICAgICAgICAgICAgICBGbG9hdFJlY3Qgc2NhbGVkVGlsZVJlY3QgPSB0aWxlUmVjdDsKKyAg
ICAgICAgICAgICAgICBzY2FsZWRUaWxlUmVjdC5zY2FsZSgxIC8gbV9zY2FsZSk7CisgICAgICAg
ICAgICAgICAgZGlydHlSZWN0cy5hcHBlbmQoc2NhbGVkVGlsZVJlY3QpOworICAgICAgICAgICAg
fQogICAgICAgICB9CiAgICAgfQogICAgIApAQCAtOTkzLDEyICsxMDA0LDkgQEAgV2ViVGlsZUxh
eWVyKiBUaWxlQ29udHJvbGxlcjo6dGlsZUxheWVyQXRJbmRleChjb25zdCBUaWxlSW5kZXgmIGlu
ZGV4KSBjb25zdAogUmV0YWluUHRyPFdlYlRpbGVMYXllcj4gVGlsZUNvbnRyb2xsZXI6OmNyZWF0
ZVRpbGVMYXllcihjb25zdCBJbnRSZWN0JiB0aWxlUmVjdCkKIHsKICAgICBSZXRhaW5QdHI8V2Vi
VGlsZUxheWVyPiBsYXllciA9IExheWVyUG9vbDo6c2hhcmVkUG9vbCgpLT50YWtlTGF5ZXJXaXRo
U2l6ZSh0aWxlUmVjdC5zaXplKCkpOwotICAgIGlmIChsYXllcikgewotICAgICAgICAvLyBJZiB3
ZSB3ZXJlIGFibGUgdG8gcmVzdG9yZSBhIGxheWVyIGZyb20gdGhlIExheWVyUG9vbCwgd2Ugc2hv
dWxkIGNhbGwgc2V0TmVlZHNEaXNwbGF5IHRvCi0gICAgICAgIC8vIGVuc3VyZSB3ZSBhdm9pZCBz
dGFsZSBjb250ZW50LgorICAgIGlmIChsYXllcikKICAgICAgICAgW2xheWVyIHJlc2V0UGFpbnRD
b3VudF07Ci0gICAgICAgIFtsYXllciBzZXROZWVkc0Rpc3BsYXldOwotICAgIH0gZWxzZQorICAg
IGVsc2UKICAgICAgICAgbGF5ZXIgPSBhZG9wdE5TKFtbV2ViVGlsZUxheWVyIGFsbG9jXSBpbml0
XSk7CiAgICAgW2xheWVyLmdldCgpIHNldEFuY2hvclBvaW50OkNHUG9pbnRaZXJvXTsKICAgICBb
bGF5ZXIuZ2V0KCkgc2V0RnJhbWU6dGlsZVJlY3RdOwpAQCAtMTAxNiw2ICsxMDI0LDggQEAgUmV0
YWluUHRyPFdlYlRpbGVMYXllcj4gVGlsZUNvbnRyb2xsZXI6OmNyZWF0ZVRpbGVMYXllcihjb25z
dCBJbnRSZWN0JiB0aWxlUmVjdCkKICAgICBbbGF5ZXIuZ2V0KCkgc2V0QWNjZWxlcmF0ZXNEcmF3
aW5nOm1fYWNjZWxlcmF0ZXNEcmF3aW5nXTsKICNlbmRpZgogCisgICAgW2xheWVyIHNldE5lZWRz
RGlzcGxheV07CisKICAgICByZXR1cm4gbGF5ZXI7CiB9CiAK
</data>
<flag name="review"
          id="228078"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>