<?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>84909</bug_id>
          
          <creation_ts>2012-04-25 17:00:48 -0700</creation_ts>
          <short_desc>Background tabs are fuzzy until repaint when deviceScaleFactor &gt; 1</short_desc>
          <delta_ts>2012-04-25 18:07:04 -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="Beth Dakin">bdakin</reporter>
          <assigned_to name="Beth Dakin">bdakin</assigned_to>
          <cc>bdakin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>610172</commentid>
    <comment_count>0</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2012-04-25 17:00:48 -0700</bug_when>
    <thetext>In WebKit2, if you open background tabs with a deviceScaleFactor &gt; 1, they will appear fuzzy at first when you bring them to the foreground. A repaint fixes the problem.

&lt;rdar://problem/11312064&gt;

Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610184</commentid>
    <comment_count>1</comment_count>
      <attachid>138903</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2012-04-25 17:09:06 -0700</bug_when>
    <thetext>Created attachment 138903
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610203</commentid>
    <comment_count>2</comment_count>
      <attachid>138903</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-04-25 17:26:52 -0700</bug_when>
    <thetext>Comment on attachment 138903
Patch

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

&gt; Source/WebKit2/Platform/cg/CGUtilities.h:32
&gt; +void paintBitmapContext(CGContextRef, CGContextRef bitmapContext, CGPoint destination, CGRect source, float scaleFactor);

Why float instead of CGFloat?

&gt; Source/WebKit2/UIProcess/mac/BackingStoreMac.mm:101
&gt; +    IntSize scrolledRectSize = m_scrolledRect.size();
&gt; +    scrolledRectSize.scale(m_deviceScaleFactor);

I think it’s a little unclear to have a local variable named scrolledRectSize that is not the same as m_scrolledRect.size(). Maybe its should be named scrolledRectPixelsSize or scaledSize or something like that?

&gt; Source/WebKit2/UIProcess/mac/BackingStoreMac.mm:109
&gt; -    CGContextTranslateCTM(context.get(), 0, m_scrolledRect.size().height());
&gt; +    CGContextTranslateCTM(context.get(), 0, m_scrolledRect.height());

This change seems to be unneeded. I am guessing you changed this to use scrolledRectSize and then later changed it back.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610215</commentid>
    <comment_count>3</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2012-04-25 17:39:41 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 138903 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=138903&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/Platform/cg/CGUtilities.h:32
&gt; &gt; +void paintBitmapContext(CGContextRef, CGContextRef bitmapContext, CGPoint destination, CGRect source, float scaleFactor);
&gt; 
&gt; Why float instead of CGFloat?
&gt; 

No good reason. Will fix.

&gt; &gt; Source/WebKit2/UIProcess/mac/BackingStoreMac.mm:101
&gt; &gt; +    IntSize scrolledRectSize = m_scrolledRect.size();
&gt; &gt; +    scrolledRectSize.scale(m_deviceScaleFactor);
&gt; 
&gt; I think it’s a little unclear to have a local variable named scrolledRectSize that is not the same as m_scrolledRect.size(). Maybe its should be named scrolledRectPixelsSize or scaledSize or something like that?
&gt; 

Will change.

&gt; &gt; Source/WebKit2/UIProcess/mac/BackingStoreMac.mm:109
&gt; &gt; -    CGContextTranslateCTM(context.get(), 0, m_scrolledRect.size().height());
&gt; &gt; +    CGContextTranslateCTM(context.get(), 0, m_scrolledRect.height());
&gt; 
&gt; This change seems to be unneeded. I am guessing you changed this to use scrolledRectSize and then later changed it back.

Good catch. Will fix.

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610222</commentid>
    <comment_count>4</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2012-04-25 17:45:58 -0700</bug_when>
    <thetext>Committed change: http://trac.webkit.org/changeset/115266</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610230</commentid>
    <comment_count>5</comment_count>
      <attachid>138903</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-04-25 17:52:51 -0700</bug_when>
    <thetext>Comment on attachment 138903
Patch

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

&gt;&gt;&gt; Source/WebKit2/Platform/cg/CGUtilities.h:32
&gt;&gt;&gt;  void paintImage(CGContextRef, CGImageRef, CGFloat scaleFactor, CGPoint destination, CGRect source);
&gt;&gt;&gt; -void paintBitmapContext(CGContextRef, CGContextRef bitmapContext, CGPoint destination, CGRect source);
&gt;&gt;&gt; +void paintBitmapContext(CGContextRef, CGContextRef bitmapContext, CGPoint destination, CGRect source, float scaleFactor);
&gt;&gt; 
&gt;&gt; Why float instead of CGFloat?
&gt; 
&gt; No good reason. Will fix.

On further reflection, it might make more sense to keep the argument order the same for these two functions. As a follow-up cleanup patch we could move the scale factor back before the destination rect to match paintImage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610253</commentid>
    <comment_count>6</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2012-04-25 18:07:04 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; On further reflection, it might make more sense to keep the argument order the same for these two functions. As a follow-up cleanup patch we could move the scale factor back before the destination rect to match paintImage.

Done: http://trac.webkit.org/changeset/115270</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138903</attachid>
            <date>2012-04-25 17:09:06 -0700</date>
            <delta_ts>2012-04-25 17:52:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>for-review.txt</filename>
            <type>text/plain</type>
            <size>6804</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNTI2MSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDEyLTA0LTI1ICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODQ5MDkKKyAgICAgICAgQmFja2dyb3VuZCB0YWJzIGFyZSBmdXp6
eSB1bnRpbCByZXBhaW50IHdoZW4gZGV2aWNlU2NhbGVGYWN0b3IgPiAxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmFja2luZ1N0b3JlTWFjIHBhaW50
cyBpbnRvIGEgQml0bWFwIGluc3RlYWQgb2YgYSBDR0xheWVyIHdoZW4gdGhlcmUgaXMgbm8gCisg
ICAgICAgIGNvbnRhaW5pbmcgd2luZG93LiBUaGF0IGJpdG1hcCBpcyB1c2VkIGZvciB0aGUgaW5p
dGlhbCBwYWludCB3aGVuIGEgYmFja2dyb3VuZCB0YWIgCisgICAgICAgIGZpcnN0IGNvbWVzIHRv
IGhlIGZvcmVncm91bmQsIHNvIGl0IG5lZWRzIHRvIGJlIEhpRFBJLWF3YXJlLiAgCisKKyAgICAg
ICAgcGFpbnRCaXRtYXBDb250ZXh0KCkgbm93IHRha2VzIGEgc2NhbGUgZmFjdG9yIHRoYXQgaXQg
cGFzc2VzIGFsb25nIHRvIHBhaW50SW1hZ2UgCisgICAgICAgIHJhdGhlciB0aGFuIGhhcmRjb2Rp
bmcgYSBzY2FsZSBmYWN0b3Igb2YgMSBmb3IgcGFpbnRJbWFnZS4KKyAgICAgICAgKiBQbGF0Zm9y
bS9jZy9DR1V0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OnBhaW50Qml0bWFwQ29udGV4
dCk6CisgICAgICAgICogUGxhdGZvcm0vY2cvQ0dVdGlsaXRpZXMuaDoKKyAgICAgICAgKFdlYktp
dCk6CisKKyAgICAgICAgV2hlbiB0aGVzZSBmdW5jdGlvbnMgZmFsbCBpbnRvIHRoZSBiaXRtYXAg
Y2FzZSwgdGhleSBuZWVkIHRvIGFkb3B0IHRoZSBkZXZpY2UgCisgICAgICAgIHNjYWxlIGZhY3Rv
ciwgd2hpY2ggbWVhbnMgdGhleSBuZWVkIHRvIHNjYWxlIGluIHNpemUgYnkgdGhlIHNjYWxlIGZh
Y3RvciwgYW5kIGFsc28gCisgICAgICAgIHNjYWxlIHRoZWlyIGNvbnRleHQuIAorICAgICAgICAq
IFVJUHJvY2Vzcy9tYWMvQmFja2luZ1N0b3JlTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpCYWNr
aW5nU3RvcmU6OnJlc2V0U2Nyb2xsZWRSZWN0KToKKyAgICAgICAgKFdlYktpdDo6QmFja2luZ1N0
b3JlOjpwYWludCk6CisgICAgICAgIChXZWJLaXQ6OkJhY2tpbmdTdG9yZTo6YmFja2luZ1N0b3Jl
Q29udGV4dCk6CisKIDIwMTItMDQtMjUgIEVucmljYSBDYXN1Y2NpICA8ZW5yaWNhQGFwcGxlLmNv
bT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMTEwNDk0KTogRHJhZ2dpbmcgaW1hZ2VzIGZyb20g
U2FmYXJpIHRvIEZpbmRlciByZXN1bHRzIGluIC53ZWJsb2MgcmF0aGVyIHRoYW4gaW1hZ2UgZmls
ZQpJbmRleDogU291cmNlL1dlYktpdDIvUGxhdGZvcm0vY2cvQ0dVdGlsaXRpZXMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2NnL0NHVXRpbGl0aWVzLmNwcAkocmV2
aXNpb24gMTE1MjMyKQorKysgU291cmNlL1dlYktpdDIvUGxhdGZvcm0vY2cvQ0dVdGlsaXRpZXMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OCwxMCArNDgsMTAgQEAgdm9pZCBwYWludEltYWdlKENH
Q29udGV4dFJlZiBjb250ZXh0LCBDRwogICAgIENHQ29udGV4dFJlc3RvcmVHU3RhdGUoY29udGV4
dCk7CiB9CiAKLXZvaWQgcGFpbnRCaXRtYXBDb250ZXh0KENHQ29udGV4dFJlZiBjb250ZXh0LCBD
R0NvbnRleHRSZWYgYml0bWFwQ29udGV4dCwgQ0dQb2ludCBkZXN0aW5hdGlvbiwgQ0dSZWN0IHNv
dXJjZSkKK3ZvaWQgcGFpbnRCaXRtYXBDb250ZXh0KENHQ29udGV4dFJlZiBjb250ZXh0LCBDR0Nv
bnRleHRSZWYgYml0bWFwQ29udGV4dCwgQ0dQb2ludCBkZXN0aW5hdGlvbiwgQ0dSZWN0IHNvdXJj
ZSwgZmxvYXQgc2NhbGVGYWN0b3IpCiB7CiAgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGltYWdl
KEFkb3B0Q0YsIENHQml0bWFwQ29udGV4dENyZWF0ZUltYWdlKGJpdG1hcENvbnRleHQpKTsKLSAg
ICBwYWludEltYWdlKGNvbnRleHQsIGltYWdlLmdldCgpLCAxLCBkZXN0aW5hdGlvbiwgc291cmNl
KTsKKyAgICBwYWludEltYWdlKGNvbnRleHQsIGltYWdlLmdldCgpLCBzY2FsZUZhY3RvciwgZGVz
dGluYXRpb24sIHNvdXJjZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vY2cvQ0dVdGlsaXRpZXMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9jZy9DR1V0aWxpdGllcy5oCShyZXZpc2lvbiAxMTUyMzIpCisr
KyBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9jZy9DR1V0aWxpdGllcy5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yOSw3ICsyOSw3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdm9pZCBwYWludEltYWdl
KENHQ29udGV4dFJlZiwgQ0dJbWFnZVJlZiwgQ0dGbG9hdCBzY2FsZUZhY3RvciwgQ0dQb2ludCBk
ZXN0aW5hdGlvbiwgQ0dSZWN0IHNvdXJjZSk7Ci12b2lkIHBhaW50Qml0bWFwQ29udGV4dChDR0Nv
bnRleHRSZWYsIENHQ29udGV4dFJlZiBiaXRtYXBDb250ZXh0LCBDR1BvaW50IGRlc3RpbmF0aW9u
LCBDR1JlY3Qgc291cmNlKTsKK3ZvaWQgcGFpbnRCaXRtYXBDb250ZXh0KENHQ29udGV4dFJlZiwg
Q0dDb250ZXh0UmVmIGJpdG1hcENvbnRleHQsIENHUG9pbnQgZGVzdGluYXRpb24sIENHUmVjdCBz
b3VyY2UsIGZsb2F0IHNjYWxlRmFjdG9yKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvQmFja2luZ1N0b3JlTWFjLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvQmFja2luZ1N0b3JlTWFjLm1t
CShyZXZpc2lvbiAxMTUyMzIpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL0JhY2tp
bmdTdG9yZU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtOTcsMTYgKzk3LDIxIEBAIHZvaWQgQmFj
a2luZ1N0b3JlOjpyZXNldFNjcm9sbGVkUmVjdCgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
KyAgICBJbnRTaXplIHNjcm9sbGVkUmVjdFNpemUgPSBtX3Njcm9sbGVkUmVjdC5zaXplKCk7Cisg
ICAgc2Nyb2xsZWRSZWN0U2l6ZS5zY2FsZShtX2RldmljZVNjYWxlRmFjdG9yKTsKKwogICAgIFJl
dGFpblB0cjxDR0NvbG9yU3BhY2VSZWY+IGNvbG9yU3BhY2UoQWRvcHRDRiwgQ0dDb2xvclNwYWNl
Q3JlYXRlRGV2aWNlUkdCKCkpOwotICAgIFJldGFpblB0cjxDR0NvbnRleHRSZWY+IGNvbnRleHQo
QWRvcHRDRiwgQ0dCaXRtYXBDb250ZXh0Q3JlYXRlKDAsIG1fc2Nyb2xsZWRSZWN0LnNpemUoKS53
aWR0aCgpLCBtX3Njcm9sbGVkUmVjdC5zaXplKCkuaGVpZ2h0KCksIDgsIG1fc2Nyb2xsZWRSZWN0
LnNpemUoKS53aWR0aCgpICogNCwgY29sb3JTcGFjZS5nZXQoKSwga0NHSW1hZ2VBbHBoYVByZW11
bHRpcGxpZWRGaXJzdCB8IGtDR0JpdG1hcEJ5dGVPcmRlcjMySG9zdCkpOworICAgIFJldGFpblB0
cjxDR0NvbnRleHRSZWY+IGNvbnRleHQoQWRvcHRDRiwgQ0dCaXRtYXBDb250ZXh0Q3JlYXRlKDAs
IHNjcm9sbGVkUmVjdFNpemUud2lkdGgoKSwgc2Nyb2xsZWRSZWN0U2l6ZS5oZWlnaHQoKSwgOCwg
c2Nyb2xsZWRSZWN0U2l6ZS53aWR0aCgpICogNCwgY29sb3JTcGFjZS5nZXQoKSwga0NHSW1hZ2VB
bHBoYVByZW11bHRpcGxpZWRGaXJzdCB8IGtDR0JpdG1hcEJ5dGVPcmRlcjMySG9zdCkpOworCisg
ICAgQ0dDb250ZXh0U2NhbGVDVE0oY29udGV4dC5nZXQoKSwgbV9kZXZpY2VTY2FsZUZhY3Rvciwg
bV9kZXZpY2VTY2FsZUZhY3Rvcik7CiAKICAgICBDR0NvbnRleHRUcmFuc2xhdGVDVE0oY29udGV4
dC5nZXQoKSwgLW1fc2Nyb2xsZWRSZWN0LmxvY2F0aW9uKCkueCgpLCAtbV9zY3JvbGxlZFJlY3Qu
bG9jYXRpb24oKS55KCkpOwotICAgIENHQ29udGV4dFRyYW5zbGF0ZUNUTShjb250ZXh0LmdldCgp
LCAwLCBtX3Njcm9sbGVkUmVjdC5zaXplKCkuaGVpZ2h0KCkpOworICAgIENHQ29udGV4dFRyYW5z
bGF0ZUNUTShjb250ZXh0LmdldCgpLCAwLCBtX3Njcm9sbGVkUmVjdC5oZWlnaHQoKSk7CiAgICAg
Q0dDb250ZXh0U2NhbGVDVE0oY29udGV4dC5nZXQoKSwgMSwgLTEpOwogICAgIHBhaW50KGNvbnRl
eHQuZ2V0KCksIG1fc2Nyb2xsZWRSZWN0KTsKIAogICAgIEludFJlY3Qgc291cmNlUmVjdChJbnRQ
b2ludCgpLCBtX3Njcm9sbGVkUmVjdC5zaXplKCkpOwotICAgIHBhaW50Qml0bWFwQ29udGV4dChi
YWNraW5nU3RvcmVDb250ZXh0KCksIGNvbnRleHQuZ2V0KCksIG1fc2Nyb2xsZWRSZWN0LmxvY2F0
aW9uKCksIHNvdXJjZVJlY3QpOworICAgIHBhaW50Qml0bWFwQ29udGV4dChiYWNraW5nU3RvcmVD
b250ZXh0KCksIGNvbnRleHQuZ2V0KCksIG1fc2Nyb2xsZWRSZWN0LmxvY2F0aW9uKCksIHNvdXJj
ZVJlY3QsIG1fZGV2aWNlU2NhbGVGYWN0b3IpOwogCiAgICAgbV9zY3JvbGxlZFJlY3QgPSBJbnRS
ZWN0KCk7CiAgICAgbV9zY3JvbGxlZFJlY3RPZmZzZXQgPSBJbnRTaXplKCk7CkBAIC0xMzIsNyAr
MTM3LDcgQEAgdm9pZCBCYWNraW5nU3RvcmU6OnBhaW50KFBsYXRmb3JtR3JhcGhpYwogICAgICAg
ICBzb3VyY2UgPSBwYXJ0OwogICAgICAgICBzb3VyY2Uub3JpZ2luLnggKz0gb2Zmc2V0LndpZHRo
KCk7CiAgICAgICAgIHNvdXJjZS5vcmlnaW4ueSArPSBvZmZzZXQuaGVpZ2h0KCk7Ci0gICAgICAg
IHBhaW50Qml0bWFwQ29udGV4dChjb250ZXh0LCBtX2JpdG1hcENvbnRleHQuZ2V0KCksIHBhcnQu
bG9jYXRpb24oKSwgc291cmNlKTsKKyAgICAgICAgcGFpbnRCaXRtYXBDb250ZXh0KGNvbnRleHQs
IG1fYml0bWFwQ29udGV4dC5nZXQoKSwgcGFydC5sb2NhdGlvbigpLCBzb3VyY2UsIG1fZGV2aWNl
U2NhbGVGYWN0b3IpOwogICAgIH0pOwogfQogCkBAIC0xNTQsNyArMTU5LDcgQEAgQ0dDb250ZXh0
UmVmIEJhY2tpbmdTdG9yZTo6YmFja2luZ1N0b3JlQwogCiAgICAgICAgIGlmIChtX2JpdG1hcENv
bnRleHQpIHsKICAgICAgICAgICAgIC8vIFBhaW50IHRoZSBjb250ZW50cyBvZiB0aGUgYml0bWFw
IGludG8gdGhlIGxheWVyIGNvbnRleHQuCi0gICAgICAgICAgICBwYWludEJpdG1hcENvbnRleHQo
bGF5ZXJDb250ZXh0LCBtX2JpdG1hcENvbnRleHQuZ2V0KCksIENHUG9pbnRaZXJvLCBDR1JlY3RN
YWtlKDAsIDAsIG1fc2l6ZS53aWR0aCgpLCBtX3NpemUuaGVpZ2h0KCkpKTsKKyAgICAgICAgICAg
IHBhaW50Qml0bWFwQ29udGV4dChsYXllckNvbnRleHQsIG1fYml0bWFwQ29udGV4dC5nZXQoKSwg
Q0dQb2ludFplcm8sIENHUmVjdE1ha2UoMCwgMCwgbV9zaXplLndpZHRoKCksIG1fc2l6ZS5oZWln
aHQoKSksIG1fZGV2aWNlU2NhbGVGYWN0b3IpOwogICAgICAgICAgICAgbV9iaXRtYXBDb250ZXh0
ID0gbnVsbHB0cjsKICAgICAgICAgfQogCkBAIC0xNjMsMTEgKzE2OCwxNSBAQCBDR0NvbnRleHRS
ZWYgQmFja2luZ1N0b3JlOjpiYWNraW5nU3RvcmVDCiAKICAgICBpZiAoIW1fYml0bWFwQ29udGV4
dCkgewogICAgICAgICBSZXRhaW5QdHI8Q0dDb2xvclNwYWNlUmVmPiBjb2xvclNwYWNlKEFkb3B0
Q0YsIENHQ29sb3JTcGFjZUNyZWF0ZURldmljZVJHQigpKTsKLSAgICAgICAgCi0gICAgICAgIG1f
Yml0bWFwQ29udGV4dC5hZG9wdENGKENHQml0bWFwQ29udGV4dENyZWF0ZSgwLCBtX3NpemUud2lk
dGgoKSwgbV9zaXplLmhlaWdodCgpLCA4LCBtX3NpemUud2lkdGgoKSAqIDQsIGNvbG9yU3BhY2Uu
Z2V0KCksIGtDR0ltYWdlQWxwaGFQcmVtdWx0aXBsaWVkRmlyc3QgfCBrQ0dCaXRtYXBCeXRlT3Jk
ZXIzMkhvc3QpKTsKKworICAgICAgICBJbnRTaXplIHNjYWxlZFNpemUobV9zaXplKTsKKyAgICAg
ICAgc2NhbGVkU2l6ZS5zY2FsZShtX2RldmljZVNjYWxlRmFjdG9yKTsKKyAgICAgICAgbV9iaXRt
YXBDb250ZXh0LmFkb3B0Q0YoQ0dCaXRtYXBDb250ZXh0Q3JlYXRlKDAsIHNjYWxlZFNpemUud2lk
dGgoKSwgc2NhbGVkU2l6ZS5oZWlnaHQoKSwgOCwgc2NhbGVkU2l6ZS53aWR0aCgpICogNCwgY29s
b3JTcGFjZS5nZXQoKSwga0NHSW1hZ2VBbHBoYVByZW11bHRpcGxpZWRGaXJzdCB8IGtDR0JpdG1h
cEJ5dGVPcmRlcjMySG9zdCkpOwogCiAgICAgICAgIENHQ29udGV4dFNldEJsZW5kTW9kZShtX2Jp
dG1hcENvbnRleHQuZ2V0KCksIGtDR0JsZW5kTW9kZUNvcHkpOwogCisgICAgICAgIENHQ29udGV4
dFNjYWxlQ1RNKG1fYml0bWFwQ29udGV4dC5nZXQoKSwgbV9kZXZpY2VTY2FsZUZhY3RvciwgbV9k
ZXZpY2VTY2FsZUZhY3Rvcik7CisKICAgICAgICAgLy8gV2Ugd2FudCB0aGUgb3JpZ2luIHRvIGJl
IGluIHRoZSB0b3AgbGVmdCBjb3JuZXIgc28gZmxpcCB0aGUgYmFja2luZyBzdG9yZSBjb250ZXh0
LgogICAgICAgICBDR0NvbnRleHRUcmFuc2xhdGVDVE0obV9iaXRtYXBDb250ZXh0LmdldCgpLCAw
LCBtX3NpemUuaGVpZ2h0KCkpOwogICAgICAgICBDR0NvbnRleHRTY2FsZUNUTShtX2JpdG1hcENv
bnRleHQuZ2V0KCksIDEsIC0xKTsK
</data>
<flag name="review"
          id="144397"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>