<?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>93508</bug_id>
          
          <creation_ts>2012-08-08 12:50:20 -0700</creation_ts>
          <short_desc>Make the Silverlight CAOpenGLLayer opaque if we know the plug-in contents is opaque to reduce blending</short_desc>
          <delta_ts>2012-08-08 13:33:30 -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>New Bugs</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>690627</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-08-08 12:50:20 -0700</bug_when>
    <thetext>Make the Silverlight CAOpenGLLayer opaque if we know the plug-in contents is opaque to reduce blending</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690632</commentid>
    <comment_count>1</comment_count>
      <attachid>157273</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-08-08 12:54:03 -0700</bug_when>
    <thetext>Created attachment 157273
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690649</commentid>
    <comment_count>2</comment_count>
      <attachid>157273</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-08-08 13:13:23 -0700</bug_when>
    <thetext>Comment on attachment 157273
Patch

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

&gt; Source/WebKit2/Shared/Plugins/PluginQuirks.h:48
&gt; +        // NPPVpluginTransparentBool, so we&apos;ll always force it unless the plug-in has a &quot;background&quot;
&gt; +        // attribute that specifies a opaque color.
&gt; +        MakeOpaqueUnlessTransparentSilverlightBackgroundAttributeExists,

It might be worth noting in this comment that the docs say &quot;a null value for the Background property of the Silverlight plug-in is interpreted as the named color White.&quot;, so no colorValue param means opaque.

&gt; Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp:557
&gt; +    if (backgroundValue == &quot;#000000&quot;)
&gt; +        return false;

This is fragile, as it would break if the content changed. Sucks that these aren&apos;t CSS colors :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690670</commentid>
    <comment_count>3</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-08-08 13:29:43 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 157273 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=157273&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/Shared/Plugins/PluginQuirks.h:48
&gt; &gt; +        // NPPVpluginTransparentBool, so we&apos;ll always force it unless the plug-in has a &quot;background&quot;
&gt; &gt; +        // attribute that specifies a opaque color.
&gt; &gt; +        MakeOpaqueUnlessTransparentSilverlightBackgroundAttributeExists,
&gt; 
&gt; It might be worth noting in this comment that the docs say &quot;a null value for the Background property of the Silverlight plug-in is interpreted as the named color White.&quot;, so no colorValue param means opaque.
&gt; 

Good idea. Fixed!

&gt; &gt; Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp:557
&gt; &gt; +    if (backgroundValue == &quot;#000000&quot;)
&gt; &gt; +        return false;
&gt; 
&gt; This is fragile, as it would break if the content changed. Sucks that these aren&apos;t CSS colors :(

I agree. I&apos;ll do the more extensive color parsing in a followup patch.

Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690673</commentid>
    <comment_count>4</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-08-08 13:33:30 -0700</bug_when>
    <thetext>Committed r125081: &lt;http://trac.webkit.org/changeset/125081&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157273</attachid>
            <date>2012-08-08 12:54:03 -0700</date>
            <delta_ts>2012-08-08 13:13:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93508-20120808125338.patch</filename>
            <type>text/plain</type>
            <size>8221</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0OTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNzAwM2Q1MDk2NDM2MmZm
Njk2NTk0NTYwN2MxNzc5ZTAzZDc4YmZjNC4uNWZmNzU3NTQxYWI3MDYxYTcxNDgwMzJkNjMwMjA5
MzBhNGZkYjNlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTA4LTA4ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSB0aGUgU2ls
dmVybGlnaHQgQ0FPcGVuR0xMYXllciBvcGFxdWUgaWYgd2Uga25vdyB0aGUgcGx1Zy1pbiBjb250
ZW50cyBpcyBvcGFxdWUgdG8gcmVkdWNlIGJsZW5kaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzUwOAorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
MTIwNTY3NjU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5Nb2R1bGVNYWMu
bW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luTW9kdWxlOjpkZXRlcm1pbmVRdWly
a3MpOgorICAgICAgICAqIFNoYXJlZC9QbHVnaW5zL1BsdWdpblF1aXJrcy5oOgorICAgICAgICBS
ZW5hbWUgdGhlIE1ha2VUcmFuc3BhcmVudElmQmFja2dyb3VuZEF0dHJpYnV0ZUV4aXN0cyBxdWly
ayB0byBNYWtlT3BhcXVlVW5sZXNzVHJhbnNwYXJlbnRTaWx2ZXJsaWdodEJhY2tncm91bmRBdHRy
aWJ1dGVFeGlzdHMKKyAgICAgICAgc2luY2Ugd2UnbGwgZXhwbGljaXRseSBjaGVjayBmb3Igb3Bh
cXVlIGJhY2tncm91bmQgY29sb3JzIChhdCBsZWFzdCBvbmUgb3BhcXVlIGJhY2tncm91bmQgY29s
b3IgZm9yIG5vdyksIGluc3RlYWQgb2YganVzdCBtYWtpbmcgdGhlCisgICAgICAgIHBsdWctaW4g
dHJhbnNwYXJlbnQgd2hlbmV2ZXIgdGhlcmUncyBhIGJhY2tncm91bmQgc3BlY2lmaWVkLgorCisg
ICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6aXNUcmFuc3BhcmVudFNpbHZlcmxpZ2h0QmFja2dyb3VuZFZhbHVl
KToKKyAgICAgICAgSGVscGVyIGZ1bmN0aW9uIGZvciBkZXRlcm1pbmluZyBpZiBhIGJhY2tncm91
bmQgdmFsdWUgaXMgdHJhbnNwYXJlbnQuIEp1c3QgY2hlY2sgZm9yIG9wYXF1ZSBibGFjayBub3cg
YW5kIHRyZWF0IGV2ZXJ5dGhpbmcgZWxzZSBhcyB0cmFuc3BhcmVudC4KKworICAgICAgICAoV2Vi
S2l0OjpOZXRzY2FwZVBsdWdpbjo6aW5pdGlhbGl6ZSk6CisgICAgICAgIENhbGwgaXNUcmFuc3Bh
cmVudFNpbHZlcmxpZ2h0QmFja2dyb3VuZFZhbHVlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbToKKyAgICAgICAgKFdlYktp
dDo6bWFrZUNHTFByZXNlbnRMYXllck9wYXF1ZSk6CisgICAgICAgIEhlbHBlciBmdW5jdGlvbiBm
b3IgZ3JhYmJpbmcgdGhlIENHTFByZXNlbnRMYXllciBmcm9tIHRoZSBsYXllciBoaWVyYXJjaHkg
YW5kIHNldHRpbmcgaXQgdG8gYmUgb3BhcXVlLgorCisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBl
UGx1Z2luOjp1cGRhdGVQbHVnaW5MYXllcik6CisgICAgICAgIENhbGwgbWFrZUNHTFByZXNlbnRM
YXllck9wYXF1ZSBpZiB0aGUgcGx1Zy1pbiBoYXMgdGhlIE1ha2VPcGFxdWVVbmxlc3NUcmFuc3Bh
cmVudFNpbHZlcmxpZ2h0QmFja2dyb3VuZEF0dHJpYnV0ZUV4aXN0cyBxdWlyayBhbmQKKyAgICAg
ICAgdGhlIHBsdWctaW4gaXMgbm90IHRyYW5zcGFyZW50LgorCiAyMDEyLTA4LTA3ICBDc2FiYSBP
c3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICBbUXRdIE5ldyBBUEkgdGVz
dHMgaW50cm91ZHVjZWQgaW4gcjExOTcyMyBtYXJrZWQgYXMgZmFpbCwgYnV0IHBhc3MKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2Fw
ZVBsdWdpbk1vZHVsZU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05ldHNj
YXBlL21hYy9OZXRzY2FwZVBsdWdpbk1vZHVsZU1hYy5tbQppbmRleCA0MzlkZTc5NTZjODYzZGJm
MWM1YTJhZWU2YTkyNWE1NGE4MjBmMWRkLi5hNDYzNWUwMzU3NzRlNGNkYmIzYTUxZWJlOWFhYWRk
MDRkZjQ3ZTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OZXRz
Y2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5Nb2R1bGVNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTW9kdWxlTWFjLm1tCkBA
IC00NzcsOCArNDc3LDggQEAgdm9pZCBOZXRzY2FwZVBsdWdpbk1vZHVsZTo6ZGV0ZXJtaW5lUXVp
cmtzKCkKIAogICAgIGlmIChwbHVnaW4uYnVuZGxlSWRlbnRpZmllciA9PSAiY29tLm1pY3Jvc29m
dC5TaWx2ZXJsaWdodFBsdWdpbiIpIHsKICAgICAgICAgLy8gU2lsdmVybGlnaHQgZG9lc24ndCBl
eHBsaWNpdGx5IG9wdCBpbnRvIHRyYW5zcGFyZW5jeSwgc28gd2UnbGwgZG8gaXQgd2hlbmV2ZXIK
LSAgICAgICAgLy8gdGhlcmUncyBhICdiYWNrZ3JvdW5kJyBhdHRyaWJ1dGUuCi0gICAgICAgIG1f
cGx1Z2luUXVpcmtzLmFkZChQbHVnaW5RdWlya3M6Ok1ha2VUcmFuc3BhcmVudElmQmFja2dyb3Vu
ZEF0dHJpYnV0ZUV4aXN0cyk7CisgICAgICAgIC8vIHRoZXJlJ3MgYSAnYmFja2dyb3VuZCcgYXR0
cmlidXRlIHRoYXQncyBzZXQgdG8gYSB0cmFuc3BhcmVudCBjb2xvci4KKyAgICAgICAgbV9wbHVn
aW5RdWlya3MuYWRkKFBsdWdpblF1aXJrczo6TWFrZU9wYXF1ZVVubGVzc1RyYW5zcGFyZW50U2ls
dmVybGlnaHRCYWNrZ3JvdW5kQXR0cmlidXRlRXhpc3RzKTsKIAogICAgICAgICAvLyBTaWx2ZXJs
aWdodCBoYXMgYSB3b3JrYXJvdW5kIGZvciBhIGxlYWsgaW4gU2FmYXJpIDIuIFRoaXMgd29ya2Fy
b3VuZCBpcwogICAgICAgICAvLyBhcHBsaWVkIHdoZW4gdGhlIHVzZXIgYWdlbnQgZG9lcyBub3Qg
Y29udGFpbiAiVmVyc2lvbi8zIiBzbyB3ZSBhcHBlbmQgaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9QbHVnaW5zL1BsdWdpblF1aXJrcy5oIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1BsdWdpbnMvUGx1Z2luUXVpcmtzLmgKaW5kZXggYzBhNjdkMzU0YjczZWMwOGZmN2ZlNTk5
ZDg1ZmNhMDYyMTRmY2RmYS4uNDg2NDJlYzk3YjY2YTQ3MTE1OTM0YjcxMWVlMzNkNmM1NjY2MzFj
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvUGx1Z2luUXVpcmtz
LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvUGx1Z2luUXVpcmtzLmgKQEAg
LTQwLDEzICs0MCwxMiBAQCBwdWJsaWM6CiAgICAgICAgIC8vIFN1cHBvcnRzIHJlY2VpdmluZyBh
IHBhaW50IGV2ZW50LCBldmVuIHdoZW4gdXNpbmcgQ29yZUFuaW1hdGlvbiByZW5kZXJpbmcuCiAg
ICAgICAgIFN1cHBvcnRzU25hcHNob3R0aW5nLAogCi0gICAgICAgIC8vIE1ha2UgdGhlIHBsdWct
aW4gdHJhbnNwYXJlbnQgaWYgaXQgaGFzIGEgImJhY2tncm91bmQiIGF0dHJpYnV0ZSBzZXQuCisg
ICAgICAgIC8vIE1ha2UgdGhlIHBsdWctaW4gb3BhcXVlIHVubGVzcyBpdCBoYXMgYSAiYmFja2dy
b3VuZCIgYXR0cmlidXRlIHNldCB0byBhIHRyYW5zcGFyZW50IGNvbG9yCisgICAgICAgIC8vIGFj
Y29yZGluZyB0byBodHRwOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvY2M4Mzgx
NDgoVlMuOTUpLmFzcHgKICAgICAgICAgLy8gTWljcm9zb2Z0IFNpbHZlcmxpZ2h0IGRvZXNuJ3Qg
b3B0IGludG8gdHJhbnNwYXJlbmN5IHVzaW5nIE5QTl9TZXRWYWx1ZSBhbmQKLSAgICAgICAgLy8g
TlBQVnBsdWdpblRyYW5zcGFyZW50Qm9vbCwgc28gd2UnbGwgYWx3YXlzIGZvcmNlIGlmIHRoZSBw
bHVnLWluIGhhcyBhICJiYWNrZ3JvdW5kIgotICAgICAgICAvLyBhdHRyaWJ1dGUgc3BlY2lmaWVk
LCByZWdhcmRsZXNzIG9mIGl0J3MgdmFsdWUuCi0gICAgICAgIC8vIEZJWE1FOiBXZSBjb3VsZCBn
ZXQgbW9yZSBmYW5jeSBoZXJlIGFuZCBjaGVjayBmb3Igc3BlY2lmaWMgdmFsdWVzIHRoYXQgd2Ug
a25vdyBhcmUKLSAgICAgICAgLy8gdHJhbnNwYXJlbnQuCi0gICAgICAgIE1ha2VUcmFuc3BhcmVu
dElmQmFja2dyb3VuZEF0dHJpYnV0ZUV4aXN0cywKKyAgICAgICAgLy8gTlBQVnBsdWdpblRyYW5z
cGFyZW50Qm9vbCwgc28gd2UnbGwgYWx3YXlzIGZvcmNlIGl0IHVubGVzcyB0aGUgcGx1Zy1pbiBo
YXMgYSAiYmFja2dyb3VuZCIKKyAgICAgICAgLy8gYXR0cmlidXRlIHRoYXQgc3BlY2lmaWVzIGEg
b3BhcXVlIGNvbG9yLgorICAgICAgICBNYWtlT3BhcXVlVW5sZXNzVHJhbnNwYXJlbnRTaWx2ZXJs
aWdodEJhY2tncm91bmRBdHRyaWJ1dGVFeGlzdHMsCiAKICAgICAgICAgLy8gV2hldGhlciBjYWxs
aW5nIE5QUF9HZXRWYWx1ZSB3aXRoIE5QUFZwbHVnaW5Db3JlQW5pbWF0aW9uTGF5ZXIgcmV0dXJu
cyBhIHJldGFpbmVkIENvcmUgQW5pbWF0aW9uCiAgICAgICAgIC8vIGxheWVyIG9yIG5vdC4gQWNj
b3JkaW5nIHRvIHRoZSBOUEFQSSBzcGVjaWZpY2F0aW9ucywgcGx1Zy1pbiBzaG91bGRuJ3QgcmV0
dXJuIGEgcmV0YWluZWQgbGF5ZXIgYnV0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmNwcAppbmRleCA0
ZDgyY2ZmMDE1ZGQ2MjFmM2RhM2UyNDZlN2U4NzUxN2U2NDVjNzY1Li5hODZlNTgzNmYzMzhkMDdk
OWE0Y2RhY2FlYzU5OTUwOWRiMjEyM2NjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5jcHAKQEAg
LTU0OCw2ICs1NDgsMTggQEAgYm9vbCBOZXRzY2FwZVBsdWdpbjo6YWxsb3dQb3B1cHMoKSBjb25z
dAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorI2lmIFBMVUdJTl9BUkNISVRFQ1RVUkUoTUFDKQor
c3RhdGljIGJvb2wgaXNUcmFuc3BhcmVudFNpbHZlcmxpZ2h0QmFja2dyb3VuZFZhbHVlKGNvbnN0
IFN0cmluZyYgYmFja2dyb3VuZFZhbHVlKQoreworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgaGFu
ZGxlIGFsbCB0aGUgY2FzZXMgZnJvbSBodHRwOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xp
YnJhcnkvY2M4MzgxNDgoVlMuOTUpLmFzcHggaGVyZQorICAgIC8vIGluc3RlYWQgb2YganVzdCBo
YXJkLWNvZGluZyBibGFjay4KKyAgICBpZiAoYmFja2dyb3VuZFZhbHVlID09ICIjMDAwMDAwIikK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisjZW5kaWYKKwog
Ym9vbCBOZXRzY2FwZVBsdWdpbjo6aW5pdGlhbGl6ZShjb25zdCBQYXJhbWV0ZXJzJiBwYXJhbWV0
ZXJzKQogewogICAgIHVpbnQxNl90IG1vZGUgPSBwYXJhbWV0ZXJzLmlzRnVsbEZyYW1lUGx1Z2lu
ID8gTlBfRlVMTCA6IE5QX0VNQkVEOwpAQCAtNTgxLDEwICs1OTMsMTAgQEAgYm9vbCBOZXRzY2Fw
ZVBsdWdpbjo6aW5pdGlhbGl6ZShjb25zdCBQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogICAgIH0K
IAogI2lmIFBMVUdJTl9BUkNISVRFQ1RVUkUoTUFDKQotICAgIGlmIChtX3BsdWdpbk1vZHVsZS0+
cGx1Z2luUXVpcmtzKCkuY29udGFpbnMoUGx1Z2luUXVpcmtzOjpNYWtlVHJhbnNwYXJlbnRJZkJh
Y2tncm91bmRBdHRyaWJ1dGVFeGlzdHMpKSB7CisgICAgaWYgKG1fcGx1Z2luTW9kdWxlLT5wbHVn
aW5RdWlya3MoKS5jb250YWlucyhQbHVnaW5RdWlya3M6Ok1ha2VPcGFxdWVVbmxlc3NUcmFuc3Bh
cmVudFNpbHZlcmxpZ2h0QmFja2dyb3VuZEF0dHJpYnV0ZUV4aXN0cykpIHsKICAgICAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBwYXJhbWV0ZXJzLm5hbWVzLnNpemUoKTsgKytpKSB7CiAgICAg
ICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UocGFyYW1ldGVycy5uYW1lc1tpXSwgImJhY2tn
cm91bmQiKSkgewotICAgICAgICAgICAgICAgIHNldElzVHJhbnNwYXJlbnQodHJ1ZSk7CisgICAg
ICAgICAgICAgICAgc2V0SXNUcmFuc3BhcmVudChpc1RyYW5zcGFyZW50U2lsdmVybGlnaHRCYWNr
Z3JvdW5kVmFsdWUocGFyYW1ldGVycy52YWx1ZXNbaV0pKTsKICAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVn
aW5NYWMubW0KaW5kZXggZjFmYTJmNjQ2ZTQyNWI4MjM0ZjVkNDExMGFmZmM4ZjE5YjcyZGY2Ni4u
OGE0NDdkZjMxZDIzYTJlYmUwMmQ0MDk5YzQwNmFkNDgxNjk3NGM5OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdp
bk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
bWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tCkBAIC0xMDU3LDYgKzEwNTcsMjcgQEAgUGxhdGZvcm1M
YXllciogTmV0c2NhcGVQbHVnaW46OnBsdWdpbkxheWVyKCkKICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8UGxhdGZvcm1MYXllcio+KG1fcGx1Z2luTGF5ZXIuZ2V0KCkpOwogfQogCitzdGF0aWMgdm9p
ZCBtYWtlQ0dMUHJlc2VudExheWVyT3BhcXVlKENBTGF5ZXIgKnBsdWdpblJvb3RMYXllcikKK3sK
KyAgICAvLyBXZSBsb29rIGZvciBhIGxheWVyIHRoYXQncyB0aGUgb25seSBzdWJsYXllciBvZiB0
aGUgcm9vdCBsYXllciB0aGF0IGlzIGFuIGluc3RhbmNlCisgICAgLy8gb2YgdGhlIENHTFByZXNl
bnRMYXllciBjbGFzcyB3aGljaCBpbiB0dXJuIGlzIGEgc3ViY2xhc3Mgb2YgQ0FPcGVuR0xMYXll
ciBhbmQgbWFrZQorICAgIC8vIGl0IG9wYXF1ZSBpZiBhbGwgdGhlc2UgY29uZGl0aW9ucyBob2xk
LgorCisgICAgTlNBcnJheSAqc3VibGF5ZXJzID0gW3BsdWdpblJvb3RMYXllciBzdWJsYXllcnNd
OworICAgIGlmIChbc3VibGF5ZXJzIGNvdW50XSAhPSAxKQorICAgICAgICByZXR1cm47CisKKyAg
ICBDbGFzcyBjZ2xQcmVzZW50TGF5ZXJDbGFzcyA9IE5TQ2xhc3NGcm9tU3RyaW5nKEAiQ0dMUHJl
c2VudExheWVyIik7CisgICAgaWYgKCFbY2dsUHJlc2VudExheWVyQ2xhc3MgaXNTdWJjbGFzc09m
Q2xhc3M6W0NBT3BlbkdMTGF5ZXIgY2xhc3NdXSkKKyAgICAgICAgcmV0dXJuOworCisgICAgQ0FM
YXllciAqbGF5ZXIgPSBbc3VibGF5ZXJzIG9iamVjdEF0SW5kZXg6MF07CisgICAgaWYgKCFbbGF5
ZXIgaXNLaW5kT2ZDbGFzczpjZ2xQcmVzZW50TGF5ZXJDbGFzc10pCisgICAgICAgIHJldHVybjsK
KworICAgIFtsYXllciBzZXRPcGFxdWU6WUVTXTsKK30KKwogdm9pZCBOZXRzY2FwZVBsdWdpbjo6
dXBkYXRlUGx1Z2luTGF5ZXIoKQogewogICAgIGlmIChtX2RyYXdpbmdNb2RlbCAhPSBOUERyYXdp
bmdNb2RlbENvcmVBbmltYXRpb24pCkBAIC0xMDg2LDYgKzExMDcsMTAgQEAgdm9pZCBOZXRzY2Fw
ZVBsdWdpbjo6dXBkYXRlUGx1Z2luTGF5ZXIoKQogICAgICAgICBtX3BsdWdpbkxheWVyID0gcmVp
bnRlcnByZXRfY2FzdDxDQUxheWVyICo+KHZhbHVlKTsKICAgICBlbHNlCiAgICAgICAgIG1fcGx1
Z2luTGF5ZXIuYWRvcHROUyhyZWludGVycHJldF9jYXN0PENBTGF5ZXIgKj4odmFsdWUpKTsKKwor
ICAgIGlmIChtX3BsdWdpbk1vZHVsZS0+cGx1Z2luUXVpcmtzKCkuY29udGFpbnMoUGx1Z2luUXVp
cmtzOjpNYWtlT3BhcXVlVW5sZXNzVHJhbnNwYXJlbnRTaWx2ZXJsaWdodEJhY2tncm91bmRBdHRy
aWJ1dGVFeGlzdHMpICYmCisgICAgICAgICFtX2lzVHJhbnNwYXJlbnQpCisgICAgICAgIG1ha2VD
R0xQcmVzZW50TGF5ZXJPcGFxdWUobV9wbHVnaW5MYXllci5nZXQoKSk7CiB9CiAKICNpZm5kZWYg
TlBfTk9fQ0FSQk9OCg==
</data>
<flag name="review"
          id="167151"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>