<?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>45288</bug_id>
          
          <creation_ts>2010-09-07 04:21:05 -0700</creation_ts>
          <short_desc>Fix speech button&apos;s hit test logic for RTL rendering.</short_desc>
          <delta_ts>2010-09-07 06:28:27 -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>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>39485</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Satish Sampath">satish</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>steveblock</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>274957</commentid>
    <comment_count>0</comment_count>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-09-07 04:21:05 -0700</bug_when>
    <thetext>Instead of checking individual values, we now do a bounds check with the button&apos;s frame rect which works for both right-to-left and left-to-right languages. Also updated layout test to check for this case. Since a separate JS file under /script-tests is no longer preferred, I also merged the JS and html files into one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274958</commentid>
    <comment_count>1</comment_count>
      <attachid>66704</attachid>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-09-07 04:25:09 -0700</bug_when>
    <thetext>Created attachment 66704
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274968</commentid>
    <comment_count>2</comment_count>
      <attachid>66704</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-09-07 04:53:30 -0700</bug_when>
    <thetext>Comment on attachment 66704
Patch

&gt; diff --git a/LayoutTests/fast/speech/input-text-speechbutton.html b/LayoutTests/fast/speech/input-text-speechbutton.html
&gt;  &lt;script src=&quot;../js/resources/js-test-post.js&quot;&gt;&lt;/script&gt;
Is there any precedent for this - writing the test as a non-script-test, but using the script-test resources?

&gt; diff --git a/WebCore/rendering/RenderTextControlSingleLine.cpp b/WebCore/rendering/RenderTextControlSingleLine.cpp
&gt; +        FloatPoint localPoint = absoluteToLocal(static_cast&lt;MouseEvent*&gt;(event)-&gt;absoluteLocation(), false, true);
I know that this variable is scoped to not conflict with localPoint below, but using a different name would help with readability.

&gt; +        if (speechBox-&gt;frameRect().contains(static_cast&lt;int&gt;(localPoint.x()), static_cast&lt;int&gt;(localPoint.y()))) {
Why are the static casts required?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274976</commentid>
    <comment_count>3</comment_count>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-09-07 05:43:05 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; &gt;  &lt;script src=&quot;../js/resources/js-test-post.js&quot;&gt;&lt;/script&gt;
&gt; Is there any precedent for this - writing the test as a non-script-test, but using the script-test resources?

These includes are not script-test related but general JS test helpers, used by most tests. For e.g. an indexed db test - http://trac.webkit.org/browser/trunk/LayoutTests/storage/indexeddb/objectstore-cursor.html

&gt; &gt; diff --git a/WebCore/rendering/RenderTextControlSingleLine.cpp b/WebCore/rendering/RenderTextControlSingleLine.cpp
&gt; &gt; +        FloatPoint localPoint = absoluteToLocal(static_cast&lt;MouseEvent*&gt;(event)-&gt;absoluteLocation(), false, true);
&gt; I know that this variable is scoped to not conflict with localPoint below, but using a different name would help with readability.

Will do.

&gt; 
&gt; &gt; +        if (speechBox-&gt;frameRect().contains(static_cast&lt;int&gt;(localPoint.x()), static_cast&lt;int&gt;(localPoint.y()))) {
&gt; Why are the static casts required?

.x() and .y() return floats, and I explicitly casted them to int to avoid compile warnings/errors of precision loss.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274982</commentid>
    <comment_count>4</comment_count>
      <attachid>66709</attachid>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-09-07 05:53:02 -0700</bug_when>
    <thetext>Created attachment 66709
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274989</commentid>
    <comment_count>5</comment_count>
      <attachid>66709</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-09-07 06:04:32 -0700</bug_when>
    <thetext>Comment on attachment 66709
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274998</commentid>
    <comment_count>6</comment_count>
      <attachid>66709</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-07 06:28:23 -0700</bug_when>
    <thetext>Comment on attachment 66709
Patch

Clearing flags on attachment: 66709

Committed r66879: &lt;http://trac.webkit.org/changeset/66879&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274999</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-07 06:28:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66704</attachid>
            <date>2010-09-07 04:25:09 -0700</date>
            <delta_ts>2010-09-07 05:52:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45288-20100907122508.patch</filename>
            <type>text/plain</type>
            <size>6436</size>
            <attacher name="Satish Sampath">satish</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1NzE4M2JlNzk5ODA4NDZjYmRlZmZhZjVkMDE0MDYyYjk1NmNjNTBlLi41Yjc4OTg2
MjAyNjYzMDM3ZDJmOTNkMjE2NTNhMGMzYzgxOTY5MmMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTAtMDktMDcgIFNhdGlzaCBTYW1wYXRoICA8c2F0aXNoQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggc3BlZWNoIGJ1
dHRvbidzIGhpdCB0ZXN0IGxvZ2ljIGZvciBSVEwgcmVuZGVyaW5nLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUyODgKKworICAgICAgICAqIGZhc3Qv
c3BlZWNoL2lucHV0LXRleHQtc3BlZWNoYnV0dG9uLmh0bWw6IEFkZGVkIFJUTCB0ZXN0IGNhc2Ug
YW5kIG1lcmdlZCBKUyBjb2RlLgorICAgICAgICAqIGZhc3Qvc3BlZWNoL3NjcmlwdC10ZXN0cy9p
bnB1dC10ZXh0LXNwZWVjaGJ1dHRvbi5qczogUmVtb3ZlZC4KKwogMjAxMC0wOS0wNyAgQ3NhYmEg
T3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gQWRkIHBsYXRm
b3JtIHNwZWNpZmljIGV4cGVjdGVkIHJlc3VsdHMgZm9yIG5ldyBwYXNzaW5nIHRlc3RzLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2gvaW5wdXQtdGV4dC1zcGVlY2hidXR0b24u
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNoL2lucHV0LXRleHQtc3BlZWNoYnV0dG9uLmh0
bWwKaW5kZXggNTFlZjAwYjkzZDc5YzE2MzY2NmUwOWZiMWQ5YTU3YTA2YWZhM2Q3Ni4uOThiZjhi
NzgyYzk3MTY4ODUxYjMxNDJkYTc3ZWViZDY2ZGM4N2M3MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9zcGVlY2gvaW5wdXQtdGV4dC1zcGVlY2hidXR0b24uaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3NwZWVjaC9pbnB1dC10ZXh0LXNwZWVjaGJ1dHRvbi5odG1sCkBAIC03LDcgKzcs
NTIgQEAKIDxib2R5PgogPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+CiA8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvaW5wdXQtdGV4dC1zcGVlY2hidXR0
b24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorZGVzY3Jp
cHRpb24oJ1Rlc3RzIGZvciBzcGVlY2ggYnV0dG9uIGNsaWNrIHdpdGggJmx0O2lucHV0IHR5cGU9
InRleHQiIHNwZWVjaD4uJyk7CisKK2Z1bmN0aW9uIG9uQ2hhbmdlKCkgeworICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNwZWVjaElucHV0IikudmFs
dWUnLCAnUGljdHVyZXMgb2YgdGhlIG1vb24nKTsKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkg
eworICAgICAgICB2YXIgaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3BlZWNoSW5w
dXQnKTsKKyAgICAgICAgaW5wdXQuZGlyID0gJ3J0bCc7CisgICAgICAgIGlucHV0LnZhbHVlID0g
Jyc7CisgICAgICAgIGlucHV0Lm9uY2hhbmdlID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzcGVlY2hJbnB1
dCIpLnZhbHVlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUGljdHVyZXMg
b2YgdGhlIG1vb24nKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9Owor
CisgICAgICAgIHZhciB4ID0gaW5wdXQub2Zmc2V0TGVmdCArIDQ7CisgICAgICAgIHZhciB5ID0g
aW5wdXQub2Zmc2V0VG9wICsgaW5wdXQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgZXZlbnRT
ZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigp
OworICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgfSwgNTApOworfQorCitmdW5j
dGlvbiBydW4oKSB7CisgICAgdmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5w
dXQnKTsKKyAgICBpbnB1dC5pZCA9ICdzcGVlY2hJbnB1dCc7CisgICAgaW5wdXQuc3BlZWNoID0g
J3NwZWVjaCc7CisgICAgaW5wdXQub25jaGFuZ2UgPSBvbkNoYW5nZTsKKyAgICBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKGlucHV0KTsKKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIgJiYgd2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLnNldE1vY2tTcGVlY2hJbnB1dFJlc3VsdCgnUGljdHVyZXMgb2YgdGhlIG1vb24nKTsKKwor
ICAgICAgICAvLyBDbGlja2luZyB0aGUgc3BlZWNoIGJ1dHRvbiBzaG91bGQgZmlsbCBpbiBtb2Nr
IHNwZWVjaC1yZWNvZ25pemVkIHRleHQuCisgICAgICAgIHZhciB4ID0gaW5wdXQub2Zmc2V0TGVm
dCArIGlucHV0Lm9mZnNldFdpZHRoIC0gNDsKKyAgICAgICAgdmFyIHkgPSBpbnB1dC5vZmZzZXRU
b3AgKyBpbnB1dC5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICBldmVudFNlbmRlci5tb3VzZU1v
dmVUbyh4LCB5KTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICB9Cit9CisKK3dpbmRvdy5vbmxvYWQgPSBydW47Cit3
aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Cit3aW5kb3cuc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKKzwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9zcGVlY2gvc2NyaXB0LXRlc3RzL2lucHV0LXRleHQtc3BlZWNoYnV0dG9uLmpzIGIv
TGF5b3V0VGVzdHMvZmFzdC9zcGVlY2gvc2NyaXB0LXRlc3RzL2lucHV0LXRleHQtc3BlZWNoYnV0
dG9uLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNjUxMmJjOTQ4YmRjOGY2NzJh
YmI2MDIyNTY0YWFkZGMxZWFlYWQzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNoL3NjcmlwdC10ZXN0cy9pbnB1dC10
ZXh0LXNwZWVjaGJ1dHRvbi5qcworKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLWRlc2Ny
aXB0aW9uKCdUZXN0cyBmb3Igc3BlZWNoIGJ1dHRvbiBjbGljayB3aXRoICZsdDtpbnB1dCB0eXBl
PSJ0ZXh0IiBzcGVlY2g+LicpOwotCi1mdW5jdGlvbiBvbkNoYW5nZSgpIHsKLSAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzcGVlY2hJbnB1dCIpLnZh
bHVlJywgJ1BpY3R1cmVzIG9mIHRoZSBtb29uJyk7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19Ci0K
LWZ1bmN0aW9uIHJ1bigpIHsKLSAgdmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
aW5wdXQnKTsKLSAgaW5wdXQuaWQgPSAnc3BlZWNoSW5wdXQnOwotICBpbnB1dC5zcGVlY2ggPSAn
c3BlZWNoJzsKLSAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgb25DaGFuZ2UsIGZh
bHNlKTsKLSAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbnB1dCk7Ci0KLSAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldE1v
Y2tTcGVlY2hJbnB1dFJlc3VsdCgnUGljdHVyZXMgb2YgdGhlIG1vb24nKTsKLQotICAvLyBDbGlj
a2luZyB0aGUgc3BlZWNoIGJ1dHRvbiBzaG91bGQgZmlsbCBpbiBtb2NrIHNwZWVjaC1yZWNvZ25p
emVkIHRleHQuCi0gIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKLSAgICAgIHZhciB4ID0gaW5w
dXQub2Zmc2V0TGVmdCArIGlucHV0Lm9mZnNldFdpZHRoIC0gNDsKLSAgICAgIHZhciB5ID0gaW5w
dXQub2Zmc2V0VG9wICsgaW5wdXQub2Zmc2V0SGVpZ2h0IC8gMjsKLSAgICAgIGV2ZW50U2VuZGVy
Lm1vdXNlTW92ZVRvKHgsIHkpOwotICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci0gICAg
ICBldmVudFNlbmRlci5tb3VzZVVwKCk7Ci0gIH0KLX0KLQotd2luZG93Lm9ubG9hZCA9IHJ1bjsK
LXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLXdpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCA1NDU5YjU5MTdjMmVhNzAwZmQwYjFkN2U4YjdkOTJhZDQ4NTc1YWViLi5iMDA3Y2M5
NTYzZmI4MWY2YTIwYTVlYjkzM2RlZjlhOTk2NTRiYWUzIDEwMDY0NAotLS0gYS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEwLTA5
LTA3ICBTYXRpc2ggU2FtcGF0aCAgPHNhdGlzaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IHNwZWVjaCBidXR0b24ncyBo
aXQgdGVzdCBsb2dpYyBmb3IgUlRMIHJlbmRlcmluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1Mjg4CisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZTo6Zm9yd2FyZEV2ZW50KToKKwogMjAxMC0wOS0wNyAgS3dhbmcg
WXVsIFNlbyAgPHNreXVsQGNvbXBhbnkxMDAubmV0PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtl
bnQgVGFtdXJhLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRy
b2xTaW5nbGVMaW5lLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZS5jcHAKaW5kZXggYjU1M2M1NmZmNmE3NmE3YmJiYzU3MWE3NzkwODBhNGY0ZDIzMWY0
Ni4uMzU5ZDE5MjkyZDhmMThlNGQ1YzA4NmY3NDc1NTJhNTUwM2I0NTQ3YSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAorKysgYi9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwCkBAIC0zNzQs
MTggKzM3NCwxOSBAQCB2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6Zm9yd2FyZEV2
ZW50KEV2ZW50KiBldmVudCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIEZsb2F0UG9p
bnQgbG9jYWxQb2ludCA9IGlubmVyVGV4dFJlbmRlcmVyLT5hYnNvbHV0ZVRvTG9jYWwoc3RhdGlj
X2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50KS0+YWJzb2x1dGVMb2NhdGlvbigpLCBmYWxzZSwgdHJ1
ZSk7Ci0gICAgaW50IHRleHRSaWdodCA9IGlubmVyVGV4dFJlbmRlcmVyLT5ib3JkZXJCb3hSZWN0
KCkucmlnaHQoKTsKLQogI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCiAgICAgaWYgKFJlbmRlckJv
eCogc3BlZWNoQm94ID0gbV9zcGVlY2hCdXR0b24gPyBtX3NwZWVjaEJ1dHRvbi0+cmVuZGVyQm94
KCkgOiAwKSB7Ci0gICAgICAgIGlmIChsb2NhbFBvaW50LngoKSA+PSBzcGVlY2hCb3gtPngoKSAm
JiBsb2NhbFBvaW50LngoKSA8IHNwZWVjaEJveC0+eCgpICsgc3BlZWNoQm94LT53aWR0aCgpKSB7
CisgICAgICAgIEZsb2F0UG9pbnQgbG9jYWxQb2ludCA9IGFic29sdXRlVG9Mb2NhbChzdGF0aWNf
Y2FzdDxNb3VzZUV2ZW50Kj4oZXZlbnQpLT5hYnNvbHV0ZUxvY2F0aW9uKCksIGZhbHNlLCB0cnVl
KTsKKyAgICAgICAgaWYgKHNwZWVjaEJveC0+ZnJhbWVSZWN0KCkuY29udGFpbnMoc3RhdGljX2Nh
c3Q8aW50Pihsb2NhbFBvaW50LngoKSksIHN0YXRpY19jYXN0PGludD4obG9jYWxQb2ludC55KCkp
KSkgewogICAgICAgICAgICAgbV9zcGVlY2hCdXR0b24tPmRlZmF1bHRFdmVudEhhbmRsZXIoZXZl
bnQpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQogI2VuZGlmCiAKKyAg
ICBGbG9hdFBvaW50IGxvY2FsUG9pbnQgPSBpbm5lclRleHRSZW5kZXJlci0+YWJzb2x1dGVUb0xv
Y2FsKHN0YXRpY19jYXN0PE1vdXNlRXZlbnQqPihldmVudCktPmFic29sdXRlTG9jYXRpb24oKSwg
ZmFsc2UsIHRydWUpOworICAgIGludCB0ZXh0UmlnaHQgPSBpbm5lclRleHRSZW5kZXJlci0+Ym9y
ZGVyQm94UmVjdCgpLnJpZ2h0KCk7CisKICAgICBpZiAobV9yZXN1bHRzQnV0dG9uICYmIGxvY2Fs
UG9pbnQueCgpIDwgaW5uZXJUZXh0UmVuZGVyZXItPmJvcmRlckJveFJlY3QoKS54KCkpCiAgICAg
ICAgIG1fcmVzdWx0c0J1dHRvbi0+ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7CiAgICAgZWxz
ZSBpZiAobV9jYW5jZWxCdXR0b24gJiYgbG9jYWxQb2ludC54KCkgPiB0ZXh0UmlnaHQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66709</attachid>
            <date>2010-09-07 05:53:02 -0700</date>
            <delta_ts>2010-09-07 06:28:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45288-20100907135300.patch</filename>
            <type>text/plain</type>
            <size>6551</size>
            <attacher name="Satish Sampath">satish</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxMTQ1ZjAwOWMwZWE1ZWRmNTVkNDk1ZWU4YTZiYTc4ZjI4YzVmOTFmLi5jNzk5ZGU0
NjlkODJlYWRlNDg1MjY4OGIyOWU0Zjk3MjM0YjcxNTkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTUgQEAK
IDIwMTAtMDktMDcgIFNhdGlzaCBTYW1wYXRoICA8c2F0aXNoQGNocm9taXVtLm9yZz4KIAorICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggc3BlZWNoIGJ1
dHRvbidzIGhpdCB0ZXN0IGxvZ2ljIGZvciBSVEwgcmVuZGVyaW5nLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUyODgKKworICAgICAgICAqIGZhc3Qv
c3BlZWNoL2lucHV0LXRleHQtc3BlZWNoYnV0dG9uLmh0bWw6IEFkZGVkIFJUTCB0ZXN0IGNhc2Ug
YW5kIG1lcmdlZCBKUyBjb2RlLgorICAgICAgICAqIGZhc3Qvc3BlZWNoL3NjcmlwdC10ZXN0cy9p
bnB1dC10ZXh0LXNwZWVjaGJ1dHRvbi5qczogUmVtb3ZlZC4KKworMjAxMC0wOS0wNyAgU2F0aXNo
IFNhbXBhdGggIDxzYXRpc2hAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFJldmlld2VkIGJ5IEpl
cmVteSBPcmxvdy4KIAogICAgICAgICBJZ25vcmUgcHJvZ3JhbW1hdGljIGNsaWNrcyBvbiBzcGVl
Y2ggaW5wdXQgYnV0dG9uIGZvciBzZWN1cml0eSByZWFzb25zLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9zcGVlY2gvaW5wdXQtdGV4dC1zcGVlY2hidXR0b24uaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3Qvc3BlZWNoL2lucHV0LXRleHQtc3BlZWNoYnV0dG9uLmh0bWwKaW5kZXggNTFlZjAw
YjkzZDc5YzE2MzY2NmUwOWZiMWQ5YTU3YTA2YWZhM2Q3Ni4uOThiZjhiNzgyYzk3MTY4ODUxYjMx
NDJkYTc3ZWViZDY2ZGM4N2M3MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2gv
aW5wdXQtdGV4dC1zcGVlY2hidXR0b24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVj
aC9pbnB1dC10ZXh0LXNwZWVjaGJ1dHRvbi5odG1sCkBAIC03LDcgKzcsNTIgQEAKIDxib2R5Pgog
PHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxzY3Jp
cHQgc3JjPSJzY3JpcHQtdGVzdHMvaW5wdXQtdGV4dC1zcGVlY2hidXR0b24uanMiPjwvc2NyaXB0
PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorZGVzY3JpcHRpb24oJ1Rlc3RzIGZv
ciBzcGVlY2ggYnV0dG9uIGNsaWNrIHdpdGggJmx0O2lucHV0IHR5cGU9InRleHQiIHNwZWVjaD4u
Jyk7CisKK2Z1bmN0aW9uIG9uQ2hhbmdlKCkgeworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygn
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNwZWVjaElucHV0IikudmFsdWUnLCAnUGljdHVyZXMg
b2YgdGhlIG1vb24nKTsKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIg
aW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3BlZWNoSW5wdXQnKTsKKyAgICAgICAg
aW5wdXQuZGlyID0gJ3J0bCc7CisgICAgICAgIGlucHV0LnZhbHVlID0gJyc7CisgICAgICAgIGlu
cHV0Lm9uY2hhbmdlID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzcGVlY2hJbnB1dCIpLnZhbHVlJywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUGljdHVyZXMgb2YgdGhlIG1vb24nKTsK
KyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9OworCisgICAgICAgIHZhciB4
ID0gaW5wdXQub2Zmc2V0TGVmdCArIDQ7CisgICAgICAgIHZhciB5ID0gaW5wdXQub2Zmc2V0VG9w
ICsgaW5wdXQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3Zl
VG8oeCwgeSk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICBldmVu
dFNlbmRlci5tb3VzZVVwKCk7CisgICAgfSwgNTApOworfQorCitmdW5jdGlvbiBydW4oKSB7Cisg
ICAgdmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKKyAgICBpbnB1
dC5pZCA9ICdzcGVlY2hJbnB1dCc7CisgICAgaW5wdXQuc3BlZWNoID0gJ3NwZWVjaCc7CisgICAg
aW5wdXQub25jaGFuZ2UgPSBvbkNoYW5nZTsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxk
KGlucHV0KTsKKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgJiYgd2luZG93
LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldE1vY2tTcGVl
Y2hJbnB1dFJlc3VsdCgnUGljdHVyZXMgb2YgdGhlIG1vb24nKTsKKworICAgICAgICAvLyBDbGlj
a2luZyB0aGUgc3BlZWNoIGJ1dHRvbiBzaG91bGQgZmlsbCBpbiBtb2NrIHNwZWVjaC1yZWNvZ25p
emVkIHRleHQuCisgICAgICAgIHZhciB4ID0gaW5wdXQub2Zmc2V0TGVmdCArIGlucHV0Lm9mZnNl
dFdpZHRoIC0gNDsKKyAgICAgICAgdmFyIHkgPSBpbnB1dC5vZmZzZXRUb3AgKyBpbnB1dC5vZmZz
ZXRIZWlnaHQgLyAyOworICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKKyAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
VXAoKTsKKyAgICB9Cit9CisKK3dpbmRvdy5vbmxvYWQgPSBydW47Cit3aW5kb3cuanNUZXN0SXNB
c3luYyA9IHRydWU7Cit3aW5kb3cuc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2gv
c2NyaXB0LXRlc3RzL2lucHV0LXRleHQtc3BlZWNoYnV0dG9uLmpzIGIvTGF5b3V0VGVzdHMvZmFz
dC9zcGVlY2gvc2NyaXB0LXRlc3RzL2lucHV0LXRleHQtc3BlZWNoYnV0dG9uLmpzCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNjUxMmJjOTQ4YmRjOGY2NzJhYmI2MDIyNTY0YWFkZGMx
ZWFlYWQzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2Zhc3Qvc3BlZWNoL3NjcmlwdC10ZXN0cy9pbnB1dC10ZXh0LXNwZWVjaGJ1dHRv
bi5qcworKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLWRlc2NyaXB0aW9uKCdUZXN0cyBm
b3Igc3BlZWNoIGJ1dHRvbiBjbGljayB3aXRoICZsdDtpbnB1dCB0eXBlPSJ0ZXh0IiBzcGVlY2g+
LicpOwotCi1mdW5jdGlvbiBvbkNoYW5nZSgpIHsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
J2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzcGVlY2hJbnB1dCIpLnZhbHVlJywgJ1BpY3R1cmVz
IG9mIHRoZSBtb29uJyk7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19Ci0KLWZ1bmN0aW9uIHJ1bigp
IHsKLSAgdmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKLSAgaW5w
dXQuaWQgPSAnc3BlZWNoSW5wdXQnOwotICBpbnB1dC5zcGVlY2ggPSAnc3BlZWNoJzsKLSAgaW5w
dXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgb25DaGFuZ2UsIGZhbHNlKTsKLSAgZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChpbnB1dCk7Ci0KLSAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKLSAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldE1vY2tTcGVlY2hJbnB1dFJl
c3VsdCgnUGljdHVyZXMgb2YgdGhlIG1vb24nKTsKLQotICAvLyBDbGlja2luZyB0aGUgc3BlZWNo
IGJ1dHRvbiBzaG91bGQgZmlsbCBpbiBtb2NrIHNwZWVjaC1yZWNvZ25pemVkIHRleHQuCi0gIGlm
ICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKLSAgICAgIHZhciB4ID0gaW5wdXQub2Zmc2V0TGVmdCAr
IGlucHV0Lm9mZnNldFdpZHRoIC0gNDsKLSAgICAgIHZhciB5ID0gaW5wdXQub2Zmc2V0VG9wICsg
aW5wdXQub2Zmc2V0SGVpZ2h0IC8gMjsKLSAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgs
IHkpOwotICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci0gICAgICBldmVudFNlbmRlci5t
b3VzZVVwKCk7Ci0gIH0KLX0KLQotd2luZG93Lm9ubG9hZCA9IHJ1bjsKLXdpbmRvdy5qc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKLXdpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0ZDFiZDMz
OWUxYWMwOTVkZjQxNjg3YmYwYjY5MTViNGVlNTA5ZWJmLi4yZjY3Zjg4ZWZiMTI1OTJjNTc5MGEz
ZDcxYzdmYzJhYWVkMzExYTk0IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE1IEBACiAyMDEwLTA5LTA3ICBTYXRpc2ggU2Ft
cGF0aCAgPHNhdGlzaEBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgRml4IHNwZWVjaCBidXR0b24ncyBoaXQgdGVzdCBsb2dpYyBm
b3IgUlRMIHJlbmRlcmluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQ1Mjg4CisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xT
aW5nbGVMaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xl
TGluZTo6Zm9yd2FyZEV2ZW50KToKKworMjAxMC0wOS0wNyAgU2F0aXNoIFNhbXBhdGggIDxzYXRp
c2hAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFJldmlld2VkIGJ5IEplcmVteSBPcmxvdy4KIAog
ICAgICAgICBJZ25vcmUgcHJvZ3JhbW1hdGljIGNsaWNrcyBvbiBzcGVlY2ggaW5wdXQgYnV0dG9u
IGZvciBzZWN1cml0eSByZWFzb25zLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZS5jcHAKaW5kZXggYjU1M2M1NmZmNmE3NmE3YmJiYzU3MWE3Nzkw
ODBhNGY0ZDIzMWY0Ni4uNzBkOThiZjk3MWY4M2QwZmE0ZDJjMGYwYTI5ODE4MWVkODVkYzQ1YSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5l
LmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUu
Y3BwCkBAIC0zNzQsMTggKzM3NCwxOSBAQCB2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGlu
ZTo6Zm9yd2FyZEV2ZW50KEV2ZW50KiBldmVudCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIEZsb2F0UG9pbnQgbG9jYWxQb2ludCA9IGlubmVyVGV4dFJlbmRlcmVyLT5hYnNvbHV0ZVRv
TG9jYWwoc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50KS0+YWJzb2x1dGVMb2NhdGlvbigp
LCBmYWxzZSwgdHJ1ZSk7Ci0gICAgaW50IHRleHRSaWdodCA9IGlubmVyVGV4dFJlbmRlcmVyLT5i
b3JkZXJCb3hSZWN0KCkucmlnaHQoKTsKLQogI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCiAgICAg
aWYgKFJlbmRlckJveCogc3BlZWNoQm94ID0gbV9zcGVlY2hCdXR0b24gPyBtX3NwZWVjaEJ1dHRv
bi0+cmVuZGVyQm94KCkgOiAwKSB7Ci0gICAgICAgIGlmIChsb2NhbFBvaW50LngoKSA+PSBzcGVl
Y2hCb3gtPngoKSAmJiBsb2NhbFBvaW50LngoKSA8IHNwZWVjaEJveC0+eCgpICsgc3BlZWNoQm94
LT53aWR0aCgpKSB7CisgICAgICAgIEZsb2F0UG9pbnQgcG9pbnRJblRleHRDb250cm9sQ29vcmRz
ID0gYWJzb2x1dGVUb0xvY2FsKHN0YXRpY19jYXN0PE1vdXNlRXZlbnQqPihldmVudCktPmFic29s
dXRlTG9jYXRpb24oKSwgZmFsc2UsIHRydWUpOworICAgICAgICBpZiAoc3BlZWNoQm94LT5mcmFt
ZVJlY3QoKS5jb250YWlucyhyb3VuZGVkSW50UG9pbnQocG9pbnRJblRleHRDb250cm9sQ29vcmRz
KSkpIHsKICAgICAgICAgICAgIG1fc3BlZWNoQnV0dG9uLT5kZWZhdWx0RXZlbnRIYW5kbGVyKGV2
ZW50KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KICNlbmRpZgogCisg
ICAgRmxvYXRQb2ludCBsb2NhbFBvaW50ID0gaW5uZXJUZXh0UmVuZGVyZXItPmFic29sdXRlVG9M
b2NhbChzdGF0aWNfY2FzdDxNb3VzZUV2ZW50Kj4oZXZlbnQpLT5hYnNvbHV0ZUxvY2F0aW9uKCks
IGZhbHNlLCB0cnVlKTsKKyAgICBpbnQgdGV4dFJpZ2h0ID0gaW5uZXJUZXh0UmVuZGVyZXItPmJv
cmRlckJveFJlY3QoKS5yaWdodCgpOworCiAgICAgaWYgKG1fcmVzdWx0c0J1dHRvbiAmJiBsb2Nh
bFBvaW50LngoKSA8IGlubmVyVGV4dFJlbmRlcmVyLT5ib3JkZXJCb3hSZWN0KCkueCgpKQogICAg
ICAgICBtX3Jlc3VsdHNCdXR0b24tPmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOwogICAgIGVs
c2UgaWYgKG1fY2FuY2VsQnV0dG9uICYmIGxvY2FsUG9pbnQueCgpID4gdGV4dFJpZ2h0KQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>