<?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>24685</bug_id>
          
          <creation_ts>2009-03-18 16:54:00 -0700</creation_ts>
          <short_desc>Use Skia integer primitives for drawing Chromium Linux scrollbars</short_desc>
          <delta_ts>2009-03-24 17:03:10 -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>PC</rep_platform>
          <op_sys>Linux</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="Adam Langley">agl</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>114252</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Langley">agl</who>
    <bug_when>2009-03-18 16:54:00 -0700</bug_when>
    <thetext>The Skia drawLine function takes subpixel values and attempts to draw
a line with subpixel precision. This is complex and slow for drawing
scrollbars which use only vertical and horizontal lines.

This changes the Chromium Linux scrollbar code to use drawIRect.

Layout test changes will be in the Chromium tree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114253</commentid>
    <comment_count>1</comment_count>
      <attachid>28737</attachid>
    <who name="Adam Langley">agl</who>
    <bug_when>2009-03-18 16:55:00 -0700</bug_when>
    <thetext>Created attachment 28737
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114808</commentid>
    <comment_count>2</comment_count>
      <attachid>28737</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-03-23 11:40:21 -0700</bug_when>
    <thetext>Comment on attachment 28737
patch

&gt; +static void drawVertLine(SkCanvas* canvas, int x, int y1, int y2, const SkPaint&amp; paint) {
&gt; +  SkIRect skrect;
&gt; +  skrect.set(x, y1, x + 1, y2 + 1);
&gt; +  canvas-&gt;drawIRect(skrect, paint);
&gt; +}

nit: please use webkit style (4 space indent, bracket on newline).  there are a lot of
these style violations in this patch as well as in the previous file.  please fix :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115077</commentid>
    <comment_count>3</comment_count>
      <attachid>28917</attachid>
    <who name="Adam Langley">agl</who>
    <bug_when>2009-03-24 16:37:15 -0700</bug_when>
    <thetext>Created attachment 28917
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115083</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-03-24 17:03:10 -0700</bug_when>
    <thetext>Landed as:  http://trac.webkit.org/changeset/41960</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28737</attachid>
            <date>2009-03-18 16:55:00 -0700</date>
            <delta_ts>2009-03-24 16:37:15 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>7041</size>
            <attacher name="Adam Langley">agl</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NzZjMDJhNy4uZTdhNGNiNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAwOS0wMy0xOCAgQWRhbSBMYW5nbGV5
ICA8YWdsQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhlIFNraWEgZHJhd0xpbmUgZnVuY3Rpb24gdGFrZXMgc3VicGl4ZWwgdmFs
dWVzIGFuZCBhdHRlbXB0cyB0byBkcmF3CisgICAgICAgIGEgbGluZSB3aXRoIHN1YnBpeGVsIHBy
ZWNpc2lvbi4gVGhpcyBpcyBjb21wbGV4IGFuZCBzbG93IGZvciBkcmF3aW5nCisgICAgICAgIHNj
cm9sbGJhcnMgd2hpY2ggdXNlIG9ubHkgdmVydGljYWwgYW5kIGhvcml6b250YWwgbGluZXMuCisK
KyAgICAgICAgVGhpcyBjaGFuZ2VzIHRoZSBDaHJvbWl1bSBMaW51eCBzY3JvbGxiYXIgY29kZSB0
byB1c2UgZHJhd0lSZWN0LgorCisgICAgICAgIExheW91dCB0ZXN0IGNoYW5nZXMgd2lsbCBiZSBp
biB0aGUgQ2hyb21pdW0gdHJlZS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjQ2ODUKKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1Njcm9s
bGJhclRoZW1lQ2hyb21pdW1MaW51eC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJU
aGVtZUNocm9taXVtOjppbnZhbGlkYXRlT25Nb3VzZUVudGVyRXhpdCk6CisgICAgICAgIChXZWJD
b3JlOjpkcmF3VmVydExpbmUpOgorICAgICAgICAoV2ViQ29yZTo6ZHJhd0hvcml6TGluZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpkcmF3Qm94KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRo
ZW1lQ2hyb21pdW06OnBhaW50VHJhY2tQaWVjZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxi
YXJUaGVtZUNocm9taXVtOjpwYWludFRodW1iKToKKwogMjAwOS0wMy0xOCAgRGF2aWQgTGV2aW4g
IDxsZXZpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwu
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hy
b21pdW1MaW51eC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1l
Q2hyb21pdW1MaW51eC5jcHAKaW5kZXggYTJkOTc2MC4uYjcxOTljMSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNocm9taXVtTGludXguY3BwCisr
KyBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4
LmNwcApAQCAtMSwxMCArMSwxMCBAQAogLyoKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAwOSwg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIAorICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQogICogbWV0OgotICogCisgKgogICogICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKICAqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KICAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKQEAgLTE0LDcgKzE0LDcgQEAKICAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKICAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiAgKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgot
ICogCisgKgogICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUwogICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKICAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgpAQCAt
NDYsMjggKzQ2LDQzIEBAIGludCBTY3JvbGxiYXJUaGVtZUNocm9taXVtOjpzY3JvbGxiYXJUaGlj
a25lc3MoU2Nyb2xsYmFyQ29udHJvbFNpemUgY29udHJvbFNpemUpCiAKIGJvb2wgU2Nyb2xsYmFy
VGhlbWVDaHJvbWl1bTo6aW52YWxpZGF0ZU9uTW91c2VFbnRlckV4aXQoKQogewotICAgIG5vdElt
cGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitzdGF0aWMgdm9pZCBkcmF3VmVy
dExpbmUoU2tDYW52YXMqIGNhbnZhcywgaW50IHgsIGludCB5MSwgaW50IHkyLCBjb25zdCBTa1Bh
aW50JiBwYWludCkgeworICBTa0lSZWN0IHNrcmVjdDsKKyAgc2tyZWN0LnNldCh4LCB5MSwgeCAr
IDEsIHkyICsgMSk7CisgIGNhbnZhcy0+ZHJhd0lSZWN0KHNrcmVjdCwgcGFpbnQpOworfQorCitz
dGF0aWMgdm9pZCBkcmF3SG9yaXpMaW5lKFNrQ2FudmFzKiBjYW52YXMsIGludCB4MSwgaW50IHgy
LCBpbnQgeSwgY29uc3QgU2tQYWludCYgcGFpbnQpIHsKKyAgU2tJUmVjdCBza3JlY3Q7CisgIHNr
cmVjdC5zZXQoeDEsIHksIHgyICsgMSwgeSArIDEpOworICBjYW52YXMtPmRyYXdJUmVjdChza3Jl
Y3QsIHBhaW50KTsKK30KKworc3RhdGljIHZvaWQgZHJhd0JveChTa0NhbnZhcyogY2FudmFzLCBj
b25zdCBJbnRSZWN0JiByZWN0LCBjb25zdCBTa1BhaW50JiBwYWludCkgeworICBjb25zdCBpbnQg
cmlnaHQgPSByZWN0LngoKSArIHJlY3Qud2lkdGgoKSAtIDE7CisgIGNvbnN0IGludCBib3R0b20g
PSByZWN0LnkoKSArIHJlY3QuaGVpZ2h0KCkgLSAxOworICBkcmF3SG9yaXpMaW5lKGNhbnZhcywg
cmVjdC54KCksIHJpZ2h0LCByZWN0LnkoKSwgcGFpbnQpOworICBkcmF3VmVydExpbmUoY2FudmFz
LCByaWdodCwgcmVjdC55KCksIGJvdHRvbSwgcGFpbnQpOworICBkcmF3SG9yaXpMaW5lKGNhbnZh
cywgcmVjdC54KCksIHJpZ2h0LCBib3R0b20sIHBhaW50KTsKKyAgZHJhd1ZlcnRMaW5lKGNhbnZh
cywgcmVjdC54KCksIHJlY3QueSgpLCBib3R0b20sIHBhaW50KTsKK30KKwogdm9pZCBTY3JvbGxi
YXJUaGVtZUNocm9taXVtOjpwYWludFRyYWNrUGllY2UoR3JhcGhpY3NDb250ZXh0KiBnYywgU2Ny
b2xsYmFyKiBzY3JvbGxiYXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBJbnRSZWN0JiByZWN0LCBTY3JvbGxiYXJQYXJ0IHBhcnRUeXBlKQogewot
ICAgIGNvbnN0IGludCByaWdodCA9IHJlY3QueCgpICsgcmVjdC53aWR0aCgpOwotICAgIGNvbnN0
IGludCBib3R0b20gPSByZWN0LnkoKSArIHJlY3QuaGVpZ2h0KCk7CiAgICAgU2tDYW52YXMqIGNv
bnN0IGNhbnZhcyA9IGdjLT5wbGF0Zm9ybUNvbnRleHQoKS0+Y2FudmFzKCk7Ci0KICAgICBTa1Bh
aW50IHBhaW50OworICAgIFNrSVJlY3Qgc2tyZWN0OworCisgICAgc2tyZWN0LnNldChyZWN0Lngo
KSwgcmVjdC55KCksIHJlY3QueCgpICsgcmVjdC53aWR0aCgpLCByZWN0LnkoKSArIHJlY3QuaGVp
Z2h0KCkpOwogICAgIHBhaW50LnNldEFSR0IoMHhmZiwgMHhlMywgMHhkZCwgMHhkOCk7Ci0gICAg
U2tSZWN0IHNrcmVjdDsKLSAgICBza3JlY3Quc2V0KHJlY3QueCgpLCByZWN0LnkoKSwgcmlnaHQs
IGJvdHRvbSk7Ci0gICAgY2FudmFzLT5kcmF3UmVjdChza3JlY3QsIHBhaW50KTsKKyAgICBjYW52
YXMtPmRyYXdJUmVjdChza3JlY3QsIHBhaW50KTsKIAogICAgIHBhaW50LnNldEFSR0IoMHhmZiwg
MHhjNSwgMHhiYSwgMHhiMCk7Ci0gICAgY2FudmFzLT5kcmF3TGluZShyZWN0LngoKSwgcmVjdC55
KCksIHJlY3QueCgpLCBib3R0b20sIHBhaW50KTsKLSAgICBjYW52YXMtPmRyYXdMaW5lKHJpZ2h0
IC0gMSwgcmVjdC55KCksIHJpZ2h0IC0gMSwgYm90dG9tLCBwYWludCk7Ci0gICAgY2FudmFzLT5k
cmF3TGluZShyZWN0LngoKSwgcmVjdC55KCksIHJpZ2h0IC0gMSwgcmVjdC55KCksIHBhaW50KTsK
LSAgICBjYW52YXMtPmRyYXdMaW5lKHJlY3QueCgpLCBib3R0b20gLSAxLCByaWdodCAtIDEsIGJv
dHRvbSAtIDEsIHBhaW50KTsKKyAgICBkcmF3Qm94KGNhbnZhcywgcmVjdCwgcGFpbnQpOwogfQog
CiB2b2lkIFNjcm9sbGJhclRoZW1lQ2hyb21pdW06OnBhaW50QnV0dG9uKEdyYXBoaWNzQ29udGV4
dCogZ2MsIFNjcm9sbGJhciogc2Nyb2xsYmFyLApAQCAtNzksOCArOTQsNiBAQCB2b2lkIFNjcm9s
bGJhclRoZW1lQ2hyb21pdW06OnBhaW50QnV0dG9uKEdyYXBoaWNzQ29udGV4dCogZ2MsIFNjcm9s
bGJhciogc2Nyb2xsYgogdm9pZCBTY3JvbGxiYXJUaGVtZUNocm9taXVtOjpwYWludFRodW1iKEdy
YXBoaWNzQ29udGV4dCogZ2MsIFNjcm9sbGJhciogc2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0JiBy
ZWN0KQogewogICAgIGNvbnN0IGJvb2wgaG92ZXJlZCA9IHNjcm9sbGJhci0+aG92ZXJlZFBhcnQo
KSA9PSBUaHVtYlBhcnQ7Ci0gICAgY29uc3QgaW50IHJpZ2h0ID0gcmVjdC54KCkgKyByZWN0Lndp
ZHRoKCk7Ci0gICAgY29uc3QgaW50IGJvdHRvbSA9IHJlY3QueSgpICsgcmVjdC5oZWlnaHQoKTsK
ICAgICBjb25zdCBpbnQgbWlkeCA9IHJlY3QueCgpICsgcmVjdC53aWR0aCgpIC8gMjsKICAgICBj
b25zdCBpbnQgbWlkeSA9IHJlY3QueSgpICsgcmVjdC5oZWlnaHQoKSAvIDI7CiAgICAgY29uc3Qg
Ym9vbCB2ZXJ0aWNhbCA9IHNjcm9sbGJhci0+b3JpZW50YXRpb24oKSA9PSBWZXJ0aWNhbFNjcm9s
bGJhcjsKQEAgLTkyLDM3ICsxMDUsMzQgQEAgdm9pZCBTY3JvbGxiYXJUaGVtZUNocm9taXVtOjpw
YWludFRodW1iKEdyYXBoaWNzQ29udGV4dCogZ2MsIFNjcm9sbGJhciogc2Nyb2xsYmEKICAgICBl
bHNlCiAgICAgICAgIHBhaW50LnNldEFSR0IoMHhmZiwgMHhmNCwgMHhmMiwgMHhlZik7CiAKLSAg
ICBTa1JlY3Qgc2tyZWN0OwotICAgIGlmICh2ZXJ0aWNhbCkgewotICAgICAgc2tyZWN0LnNldChy
ZWN0LngoKSwgcmVjdC55KCksIG1pZHggKyAxLCBib3R0b20pOwotICAgIH0gZWxzZSB7Ci0gICAg
ICBza3JlY3Quc2V0KHJlY3QueCgpLCByZWN0LnkoKSwgcmlnaHQsIG1pZHkgKyAxKTsKLSAgICB9
Ci0gICAgY2FudmFzLT5kcmF3UmVjdChza3JlY3QsIHBhaW50KTsKKyAgICBTa0lSZWN0IHNrcmVj
dDsKKyAgICBpZiAodmVydGljYWwpCisgICAgICBza3JlY3Quc2V0KHJlY3QueCgpLCByZWN0Lnko
KSwgbWlkeCArIDEsIHJlY3QueSgpICsgcmVjdC5oZWlnaHQoKSk7CisgICAgZWxzZQorICAgICAg
c2tyZWN0LnNldChyZWN0LngoKSwgcmVjdC55KCksIHJlY3QueCgpICsgcmVjdC53aWR0aCgpLCBt
aWR5ICsgMSk7CisKKyAgICBjYW52YXMtPmRyYXdJUmVjdChza3JlY3QsIHBhaW50KTsKIAotICAg
IGlmIChob3ZlcmVkKSB7CisgICAgaWYgKGhvdmVyZWQpCiAgICAgICBwYWludC5zZXRBUkdCKDB4
ZmYsIDB4ZjQsIDB4ZjIsIDB4ZWYpOwotICAgIH0gZWxzZSB7CisgICAgZWxzZQogICAgICAgcGFp
bnQuc2V0QVJHQigweGZmLCAweGVhLCAweGU1LCAweGUwKTsKLSAgICB9Ci0gICAgaWYgKHZlcnRp
Y2FsKSB7Ci0gICAgICBza3JlY3Quc2V0KG1pZHggKyAxLCByZWN0LnkoKSwgcmlnaHQsIGJvdHRv
bSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIHNrcmVjdC5zZXQocmVjdC54KCksIG1pZHkgKyAxLCBy
aWdodCwgYm90dG9tKTsKLSAgICB9Ci0gICAgY2FudmFzLT5kcmF3UmVjdChza3JlY3QsIHBhaW50
KTsKKworICAgIGlmICh2ZXJ0aWNhbCkKKyAgICAgIHNrcmVjdC5zZXQobWlkeCArIDEsIHJlY3Qu
eSgpLCByZWN0LngoKSArIHJlY3Qud2lkdGgoKSwgcmVjdC55KCkgKyByZWN0LmhlaWdodCgpKTsK
KyAgICBlbHNlCisgICAgICBza3JlY3Quc2V0KHJlY3QueCgpLCBtaWR5ICsgMSwgcmVjdC54KCkg
KyByZWN0LndpZHRoKCksIHJlY3QueSgpICsgcmVjdC5oZWlnaHQoKSk7CisKKyAgICBjYW52YXMt
PmRyYXdJUmVjdChza3JlY3QsIHBhaW50KTsKIAogICAgIHBhaW50LnNldEFSR0IoMHhmZiwgMHg5
ZCwgMHg5NiwgMHg4ZSk7Ci0gICAgY2FudmFzLT5kcmF3TGluZShyZWN0LngoKSwgcmVjdC55KCks
IHJlY3QueCgpLCBib3R0b20sIHBhaW50KTsKLSAgICBjYW52YXMtPmRyYXdMaW5lKHJpZ2h0LCBy
ZWN0LnkoKSwgcmlnaHQsIGJvdHRvbSwgcGFpbnQpOwotICAgIGNhbnZhcy0+ZHJhd0xpbmUocmVj
dC54KCksIHJlY3QueSgpLCByaWdodCwgcmVjdC55KCksIHBhaW50KTsKLSAgICBjYW52YXMtPmRy
YXdMaW5lKHJlY3QueCgpLCBib3R0b20sIHJpZ2h0LCBib3R0b20sIHBhaW50KTsKKyAgICBkcmF3
Qm94KGNhbnZhcywgcmVjdCwgcGFpbnQpOwogCiAgICAgaWYgKHJlY3QuaGVpZ2h0KCkgPiAxMCAm
JiByZWN0LndpZHRoKCkgPiAxMCkgewogICAgICAgcGFpbnQuc2V0QVJHQigweGZmLCAweDlkLCAw
eDk2LCAweDhlKTsKLSAgICAgIGNhbnZhcy0+ZHJhd0xpbmUobWlkeCAtIDEsIG1pZHksIG1pZHgg
KyAzLCBtaWR5LCBwYWludCk7Ci0gICAgICBjYW52YXMtPmRyYXdMaW5lKG1pZHggLSAxLCBtaWR5
IC0gMywgbWlkeCArIDMsIG1pZHkgLSAzLCBwYWludCk7Ci0gICAgICBjYW52YXMtPmRyYXdMaW5l
KG1pZHggLSAxLCBtaWR5ICsgMywgbWlkeCArIDMsIG1pZHkgKyAzLCBwYWludCk7CisgICAgICBk
cmF3SG9yaXpMaW5lKGNhbnZhcywgbWlkeCAtIDEsIG1pZHggKyAzLCBtaWR5LCBwYWludCk7Cisg
ICAgICBkcmF3SG9yaXpMaW5lKGNhbnZhcywgbWlkeCAtIDEsIG1pZHggKyAzLCBtaWR5IC0gMywg
cGFpbnQpOworICAgICAgZHJhd0hvcml6TGluZShjYW52YXMsIG1pZHggLSAxLCBtaWR4ICsgMywg
bWlkeSArIDMsIHBhaW50KTsKICAgICB9CiB9CiAK
</data>
<flag name="review"
          id="14168"
          type_id="1"
          status="-"
          setter="fishd"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28917</attachid>
            <date>2009-03-24 16:37:15 -0700</date>
            <delta_ts>2009-03-24 16:44:06 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>7305</size>
            <attacher name="Adam Langley">agl</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NWU5MzhhYS4uZjA3NTZkNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAwOS0wMy0xOCAgQWRhbSBMYW5nbGV5
ICA8YWdsQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhlIFNraWEgZHJhd0xpbmUgZnVuY3Rpb24gdGFrZXMgc3VicGl4ZWwgdmFs
dWVzIGFuZCBhdHRlbXB0cyB0byBkcmF3CisgICAgICAgIGEgbGluZSB3aXRoIHN1YnBpeGVsIHBy
ZWNpc2lvbi4gVGhpcyBpcyBjb21wbGV4IGFuZCBzbG93IGZvciBkcmF3aW5nCisgICAgICAgIHNj
cm9sbGJhcnMgd2hpY2ggdXNlIG9ubHkgdmVydGljYWwgYW5kIGhvcml6b250YWwgbGluZXMuCisK
KyAgICAgICAgVGhpcyBjaGFuZ2VzIHRoZSBDaHJvbWl1bSBMaW51eCBzY3JvbGxiYXIgY29kZSB0
byB1c2UgZHJhd0lSZWN0LgorCisgICAgICAgIExheW91dCB0ZXN0IGNoYW5nZXMgd2lsbCBiZSBp
biB0aGUgQ2hyb21pdW0gdHJlZS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjQ2ODUKKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1Njcm9s
bGJhclRoZW1lQ2hyb21pdW1MaW51eC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJU
aGVtZUNocm9taXVtOjppbnZhbGlkYXRlT25Nb3VzZUVudGVyRXhpdCk6CisgICAgICAgIChXZWJD
b3JlOjpkcmF3VmVydExpbmUpOgorICAgICAgICAoV2ViQ29yZTo6ZHJhd0hvcml6TGluZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpkcmF3Qm94KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRo
ZW1lQ2hyb21pdW06OnBhaW50VHJhY2tQaWVjZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxi
YXJUaGVtZUNocm9taXVtOjpwYWludFRodW1iKToKKwogMjAwOS0wMy0yNCAgRGF2aWQgS2lsemVy
ICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEJ1ZyAyMzMxMDogU2V0dGluZyBhbiBh
YnNvbHV0ZSBwYXRoICgvYWJzKSBvbiBhbiA8aWZyYW1lPiB3aXRoIG5vIHNyYyBkb2Vzbid0IHJl
c29sdmUgdGhlIFVSTCBwcm9wZXJseQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9TY3JvbGxiYXJUaGVtZUNocm9taXVtTGludXguY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNocm9taXVtTGludXguY3BwCmluZGV4IGEyZDk3NjAuLmE5
OWQ3NzggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhl
bWVDaHJvbWl1bUxpbnV4LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Njcm9s
bGJhclRoZW1lQ2hyb21pdW1MaW51eC5jcHAKQEAgLTEsMTAgKzEsMTAgQEAKIC8qCiAgKiBDb3B5
cmlnaHQgKGMpIDIwMDgsIDIwMDksIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KiAKKyAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKICAqIG1ldDoKLSAqIAorICoK
ICAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CiAgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCkBAIC0xNCw3ICsxNCw3IEBACiAgKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CiAgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQogICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqIAorICoKICAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CiAgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKQEAgLTQ2LDI4ICs0Niw0NiBAQCBpbnQgU2Nyb2xsYmFyVGhlbWVD
aHJvbWl1bTo6c2Nyb2xsYmFyVGhpY2tuZXNzKFNjcm9sbGJhckNvbnRyb2xTaXplIGNvbnRyb2xT
aXplKQogCiBib29sIFNjcm9sbGJhclRoZW1lQ2hyb21pdW06OmludmFsaWRhdGVPbk1vdXNlRW50
ZXJFeGl0KCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBmYWxzZTsKIH0K
IAorc3RhdGljIHZvaWQgZHJhd1ZlcnRMaW5lKFNrQ2FudmFzKiBjYW52YXMsIGludCB4LCBpbnQg
eTEsIGludCB5MiwgY29uc3QgU2tQYWludCYgcGFpbnQpCit7CisgICAgU2tJUmVjdCBza3JlY3Q7
CisgICAgc2tyZWN0LnNldCh4LCB5MSwgeCArIDEsIHkyICsgMSk7CisgICAgY2FudmFzLT5kcmF3
SVJlY3Qoc2tyZWN0LCBwYWludCk7Cit9CisKK3N0YXRpYyB2b2lkIGRyYXdIb3JpekxpbmUoU2tD
YW52YXMqIGNhbnZhcywgaW50IHgxLCBpbnQgeDIsIGludCB5LCBjb25zdCBTa1BhaW50JiBwYWlu
dCkKK3sKKyAgICBTa0lSZWN0IHNrcmVjdDsKKyAgICBza3JlY3Quc2V0KHgxLCB5LCB4MiArIDEs
IHkgKyAxKTsKKyAgICBjYW52YXMtPmRyYXdJUmVjdChza3JlY3QsIHBhaW50KTsKK30KKworc3Rh
dGljIHZvaWQgZHJhd0JveChTa0NhbnZhcyogY2FudmFzLCBjb25zdCBJbnRSZWN0JiByZWN0LCBj
b25zdCBTa1BhaW50JiBwYWludCkKK3sKKyAgICBjb25zdCBpbnQgcmlnaHQgPSByZWN0LngoKSAr
IHJlY3Qud2lkdGgoKSAtIDE7CisgICAgY29uc3QgaW50IGJvdHRvbSA9IHJlY3QueSgpICsgcmVj
dC5oZWlnaHQoKSAtIDE7CisgICAgZHJhd0hvcml6TGluZShjYW52YXMsIHJlY3QueCgpLCByaWdo
dCwgcmVjdC55KCksIHBhaW50KTsKKyAgICBkcmF3VmVydExpbmUoY2FudmFzLCByaWdodCwgcmVj
dC55KCksIGJvdHRvbSwgcGFpbnQpOworICAgIGRyYXdIb3JpekxpbmUoY2FudmFzLCByZWN0Lngo
KSwgcmlnaHQsIGJvdHRvbSwgcGFpbnQpOworICAgIGRyYXdWZXJ0TGluZShjYW52YXMsIHJlY3Qu
eCgpLCByZWN0LnkoKSwgYm90dG9tLCBwYWludCk7Cit9CisKIHZvaWQgU2Nyb2xsYmFyVGhlbWVD
aHJvbWl1bTo6cGFpbnRUcmFja1BpZWNlKEdyYXBoaWNzQ29udGV4dCogZ2MsIFNjcm9sbGJhciog
c2Nyb2xsYmFyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgSW50UmVjdCYgcmVjdCwgU2Nyb2xsYmFyUGFydCBwYXJ0VHlwZSkKIHsKLSAgICBjb25z
dCBpbnQgcmlnaHQgPSByZWN0LngoKSArIHJlY3Qud2lkdGgoKTsKLSAgICBjb25zdCBpbnQgYm90
dG9tID0gcmVjdC55KCkgKyByZWN0LmhlaWdodCgpOwogICAgIFNrQ2FudmFzKiBjb25zdCBjYW52
YXMgPSBnYy0+cGxhdGZvcm1Db250ZXh0KCktPmNhbnZhcygpOwotCiAgICAgU2tQYWludCBwYWlu
dDsKKyAgICBTa0lSZWN0IHNrcmVjdDsKKworICAgIHNrcmVjdC5zZXQocmVjdC54KCksIHJlY3Qu
eSgpLCByZWN0LngoKSArIHJlY3Qud2lkdGgoKSwgcmVjdC55KCkgKyByZWN0LmhlaWdodCgpKTsK
ICAgICBwYWludC5zZXRBUkdCKDB4ZmYsIDB4ZTMsIDB4ZGQsIDB4ZDgpOwotICAgIFNrUmVjdCBz
a3JlY3Q7Ci0gICAgc2tyZWN0LnNldChyZWN0LngoKSwgcmVjdC55KCksIHJpZ2h0LCBib3R0b20p
OwotICAgIGNhbnZhcy0+ZHJhd1JlY3Qoc2tyZWN0LCBwYWludCk7CisgICAgY2FudmFzLT5kcmF3
SVJlY3Qoc2tyZWN0LCBwYWludCk7CiAKICAgICBwYWludC5zZXRBUkdCKDB4ZmYsIDB4YzUsIDB4
YmEsIDB4YjApOwotICAgIGNhbnZhcy0+ZHJhd0xpbmUocmVjdC54KCksIHJlY3QueSgpLCByZWN0
LngoKSwgYm90dG9tLCBwYWludCk7Ci0gICAgY2FudmFzLT5kcmF3TGluZShyaWdodCAtIDEsIHJl
Y3QueSgpLCByaWdodCAtIDEsIGJvdHRvbSwgcGFpbnQpOwotICAgIGNhbnZhcy0+ZHJhd0xpbmUo
cmVjdC54KCksIHJlY3QueSgpLCByaWdodCAtIDEsIHJlY3QueSgpLCBwYWludCk7Ci0gICAgY2Fu
dmFzLT5kcmF3TGluZShyZWN0LngoKSwgYm90dG9tIC0gMSwgcmlnaHQgLSAxLCBib3R0b20gLSAx
LCBwYWludCk7CisgICAgZHJhd0JveChjYW52YXMsIHJlY3QsIHBhaW50KTsKIH0KIAogdm9pZCBT
Y3JvbGxiYXJUaGVtZUNocm9taXVtOjpwYWludEJ1dHRvbihHcmFwaGljc0NvbnRleHQqIGdjLCBT
Y3JvbGxiYXIqIHNjcm9sbGJhciwKQEAgLTc5LDggKzk3LDYgQEAgdm9pZCBTY3JvbGxiYXJUaGVt
ZUNocm9taXVtOjpwYWludEJ1dHRvbihHcmFwaGljc0NvbnRleHQqIGdjLCBTY3JvbGxiYXIqIHNj
cm9sbGIKIHZvaWQgU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bTo6cGFpbnRUaHVtYihHcmFwaGljc0Nv
bnRleHQqIGdjLCBTY3JvbGxiYXIqIHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsK
ICAgICBjb25zdCBib29sIGhvdmVyZWQgPSBzY3JvbGxiYXItPmhvdmVyZWRQYXJ0KCkgPT0gVGh1
bWJQYXJ0OwotICAgIGNvbnN0IGludCByaWdodCA9IHJlY3QueCgpICsgcmVjdC53aWR0aCgpOwot
ICAgIGNvbnN0IGludCBib3R0b20gPSByZWN0LnkoKSArIHJlY3QuaGVpZ2h0KCk7CiAgICAgY29u
c3QgaW50IG1pZHggPSByZWN0LngoKSArIHJlY3Qud2lkdGgoKSAvIDI7CiAgICAgY29uc3QgaW50
IG1pZHkgPSByZWN0LnkoKSArIHJlY3QuaGVpZ2h0KCkgLyAyOwogICAgIGNvbnN0IGJvb2wgdmVy
dGljYWwgPSBzY3JvbGxiYXItPm9yaWVudGF0aW9uKCkgPT0gVmVydGljYWxTY3JvbGxiYXI7CkBA
IC05MiwzNyArMTA4LDM0IEBAIHZvaWQgU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bTo6cGFpbnRUaHVt
YihHcmFwaGljc0NvbnRleHQqIGdjLCBTY3JvbGxiYXIqIHNjcm9sbGJhCiAgICAgZWxzZQogICAg
ICAgICBwYWludC5zZXRBUkdCKDB4ZmYsIDB4ZjQsIDB4ZjIsIDB4ZWYpOwogCi0gICAgU2tSZWN0
IHNrcmVjdDsKLSAgICBpZiAodmVydGljYWwpIHsKLSAgICAgIHNrcmVjdC5zZXQocmVjdC54KCks
IHJlY3QueSgpLCBtaWR4ICsgMSwgYm90dG9tKTsKLSAgICB9IGVsc2UgewotICAgICAgc2tyZWN0
LnNldChyZWN0LngoKSwgcmVjdC55KCksIHJpZ2h0LCBtaWR5ICsgMSk7Ci0gICAgfQotICAgIGNh
bnZhcy0+ZHJhd1JlY3Qoc2tyZWN0LCBwYWludCk7CisgICAgU2tJUmVjdCBza3JlY3Q7CisgICAg
aWYgKHZlcnRpY2FsKQorICAgICAgICBza3JlY3Quc2V0KHJlY3QueCgpLCByZWN0LnkoKSwgbWlk
eCArIDEsIHJlY3QueSgpICsgcmVjdC5oZWlnaHQoKSk7CisgICAgZWxzZQorICAgICAgICBza3Jl
Y3Quc2V0KHJlY3QueCgpLCByZWN0LnkoKSwgcmVjdC54KCkgKyByZWN0LndpZHRoKCksIG1pZHkg
KyAxKTsKIAotICAgIGlmIChob3ZlcmVkKSB7Ci0gICAgICBwYWludC5zZXRBUkdCKDB4ZmYsIDB4
ZjQsIDB4ZjIsIDB4ZWYpOwotICAgIH0gZWxzZSB7Ci0gICAgICBwYWludC5zZXRBUkdCKDB4ZmYs
IDB4ZWEsIDB4ZTUsIDB4ZTApOwotICAgIH0KLSAgICBpZiAodmVydGljYWwpIHsKLSAgICAgIHNr
cmVjdC5zZXQobWlkeCArIDEsIHJlY3QueSgpLCByaWdodCwgYm90dG9tKTsKLSAgICB9IGVsc2Ug
ewotICAgICAgc2tyZWN0LnNldChyZWN0LngoKSwgbWlkeSArIDEsIHJpZ2h0LCBib3R0b20pOwot
ICAgIH0KLSAgICBjYW52YXMtPmRyYXdSZWN0KHNrcmVjdCwgcGFpbnQpOworICAgIGNhbnZhcy0+
ZHJhd0lSZWN0KHNrcmVjdCwgcGFpbnQpOworCisgICAgaWYgKGhvdmVyZWQpCisgICAgICAgIHBh
aW50LnNldEFSR0IoMHhmZiwgMHhmNCwgMHhmMiwgMHhlZik7CisgICAgZWxzZQorICAgICAgICBw
YWludC5zZXRBUkdCKDB4ZmYsIDB4ZWEsIDB4ZTUsIDB4ZTApOworCisgICAgaWYgKHZlcnRpY2Fs
KQorICAgICAgICBza3JlY3Quc2V0KG1pZHggKyAxLCByZWN0LnkoKSwgcmVjdC54KCkgKyByZWN0
LndpZHRoKCksIHJlY3QueSgpICsgcmVjdC5oZWlnaHQoKSk7CisgICAgZWxzZQorICAgICAgICBz
a3JlY3Quc2V0KHJlY3QueCgpLCBtaWR5ICsgMSwgcmVjdC54KCkgKyByZWN0LndpZHRoKCksIHJl
Y3QueSgpICsgcmVjdC5oZWlnaHQoKSk7CisKKyAgICBjYW52YXMtPmRyYXdJUmVjdChza3JlY3Qs
IHBhaW50KTsKIAogICAgIHBhaW50LnNldEFSR0IoMHhmZiwgMHg5ZCwgMHg5NiwgMHg4ZSk7Ci0g
ICAgY2FudmFzLT5kcmF3TGluZShyZWN0LngoKSwgcmVjdC55KCksIHJlY3QueCgpLCBib3R0b20s
IHBhaW50KTsKLSAgICBjYW52YXMtPmRyYXdMaW5lKHJpZ2h0LCByZWN0LnkoKSwgcmlnaHQsIGJv
dHRvbSwgcGFpbnQpOwotICAgIGNhbnZhcy0+ZHJhd0xpbmUocmVjdC54KCksIHJlY3QueSgpLCBy
aWdodCwgcmVjdC55KCksIHBhaW50KTsKLSAgICBjYW52YXMtPmRyYXdMaW5lKHJlY3QueCgpLCBi
b3R0b20sIHJpZ2h0LCBib3R0b20sIHBhaW50KTsKKyAgICBkcmF3Qm94KGNhbnZhcywgcmVjdCwg
cGFpbnQpOwogCiAgICAgaWYgKHJlY3QuaGVpZ2h0KCkgPiAxMCAmJiByZWN0LndpZHRoKCkgPiAx
MCkgewotICAgICAgcGFpbnQuc2V0QVJHQigweGZmLCAweDlkLCAweDk2LCAweDhlKTsKLSAgICAg
IGNhbnZhcy0+ZHJhd0xpbmUobWlkeCAtIDEsIG1pZHksIG1pZHggKyAzLCBtaWR5LCBwYWludCk7
Ci0gICAgICBjYW52YXMtPmRyYXdMaW5lKG1pZHggLSAxLCBtaWR5IC0gMywgbWlkeCArIDMsIG1p
ZHkgLSAzLCBwYWludCk7Ci0gICAgICBjYW52YXMtPmRyYXdMaW5lKG1pZHggLSAxLCBtaWR5ICsg
MywgbWlkeCArIDMsIG1pZHkgKyAzLCBwYWludCk7CisgICAgICAgIHBhaW50LnNldEFSR0IoMHhm
ZiwgMHg5ZCwgMHg5NiwgMHg4ZSk7CisgICAgICAgIGRyYXdIb3JpekxpbmUoY2FudmFzLCBtaWR4
IC0gMSwgbWlkeCArIDMsIG1pZHksIHBhaW50KTsKKyAgICAgICAgZHJhd0hvcml6TGluZShjYW52
YXMsIG1pZHggLSAxLCBtaWR4ICsgMywgbWlkeSAtIDMsIHBhaW50KTsKKyAgICAgICAgZHJhd0hv
cml6TGluZShjYW52YXMsIG1pZHggLSAxLCBtaWR4ICsgMywgbWlkeSArIDMsIHBhaW50KTsKICAg
ICB9CiB9CiAK
</data>
<flag name="review"
          id="14295"
          type_id="1"
          status="+"
          setter="fishd"
    />
          </attachment>
      

    </bug>

</bugzilla>