<?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>53436</bug_id>
          
          <creation_ts>2011-01-31 10:11:47 -0800</creation_ts>
          <short_desc>[Gtk] atk_text_get_caret_offset fails for list items</short_desc>
          <delta_ts>2011-02-07 08:23:31 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>53388</dependson>
          <blocked>25531</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mario Sanchez Prada">mario</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>apinheiro</cc>
    
    <cc>jdiggs</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>342643</commentid>
    <comment_count>0</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-01-31 10:11:47 -0800</bug_when>
    <thetext>Steps to reproduce:

1. Open the test case attached to bug 53388 (attachment 80582) in Epiphany.

2. Enable caret mode by pressing F7 and manually (with the mouse) place the caret in the first item, right after the &apos;First&apos; word.

3. Using Accerciser, attempt to get the caret position within that list item, by:

A. Selecting the corresponding object in Accerciser&apos;s tree of accessible objects

B. Typing &apos;acc.queryText().caretOffset()

Expected results: You should get 8 as the offset value

Actual results: You get 5 as the offset value, basically because it&apos;s plainly ignoring the fact that a 3-characted marker (&apos;1. &apos;) is present for that list item.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342671</commentid>
    <comment_count>1</comment_count>
      <attachid>80659</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-01-31 10:44:10 -0800</bug_when>
    <thetext>Created attachment 80659
Patch proposal + unit test

Attaching patch proposal + unit test (actually an update of another one)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342673</commentid>
    <comment_count>2</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-01-31 10:45:04 -0800</bug_when>
    <thetext>Depending on bug 53388 as the unit test is an update of the code previously modified with the patch for that bug, so they should be applied in specific order</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342856</commentid>
    <comment_count>3</comment_count>
      <attachid>80659</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-01-31 15:32:01 -0800</bug_when>
    <thetext>Comment on attachment 80659
Patch proposal + unit test

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        (webkit_accessible_text_get_caret_offset): Ajust the offset with

Should be &quot;Adjust&quot; here.

&gt; Source/WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:1231
&gt; +        offset += g_utf8_strlen(markerText.utf8().data(), -1);

Unless I&apos;m mistaken, if you want the offset in bytes, you should use strlen(markerText.utf8().data()) if you want the offset in characters you can just use markerText.length().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343254</commentid>
    <comment_count>4</comment_count>
      <attachid>80766</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-02-01 09:15:29 -0800</bug_when>
    <thetext>Created attachment 80766
Patch proposal + unit tests

(In reply to comment #3)
&gt; (From update of attachment 80659 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=80659&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:11
&gt; &gt; +        (webkit_accessible_text_get_caret_offset): Ajust the offset with
&gt; 
&gt; Should be &quot;Adjust&quot; here.

Fixed
 
&gt; &gt; Source/WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:1231
&gt; &gt; +        offset += g_utf8_strlen(markerText.utf8().data(), -1);
&gt; 
&gt; Unless I&apos;m mistaken, if you want the offset in bytes, you should use strlen(markerText.utf8().data()) if you want the offset in characters you can just use markerText.length().

You&apos;re right. Thanks for noticing.

Fixed either there and in webkit_accessible_text_set_caret_offset (and updated the ChangeLog)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346590</commentid>
    <comment_count>5</comment_count>
      <attachid>80766</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2011-02-07 08:12:27 -0800</bug_when>
    <thetext>Comment on attachment 80766
Patch proposal + unit tests

Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346591</commentid>
    <comment_count>6</comment_count>
      <attachid>80766</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-02-07 08:14:56 -0800</bug_when>
    <thetext>Comment on attachment 80766
Patch proposal + unit tests

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

&gt; Source/WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:1231
&gt; +        // We need to adjust the offset for list items.

Might want to clarify this a little bit to say &quot;We need to adjust the offset for the list item marker.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346594</commentid>
    <comment_count>7</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-02-07 08:17:59 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 80766 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=80766&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:1231
&gt; &gt; +        // We need to adjust the offset for list items.
&gt; 
&gt; Might want to clarify this a little bit to say &quot;We need to adjust the offset for the list item marker.&quot;

:-) 

Yes, you&apos;re right, sorry. Specifying that the thing is related to the item marker adding some extra length to the exposed text will, definitely, be clearer.

I&apos;ll change that when committing then.

Thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346596</commentid>
    <comment_count>8</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-02-07 08:23:31 -0800</bug_when>
    <thetext>Committed r77817: &lt;http://trac.webkit.org/changeset/77817&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80659</attachid>
            <date>2011-01-31 10:44:10 -0800</date>
            <delta_ts>2011-02-01 09:15:29 -0800</delta_ts>
            <desc>Patch proposal + unit test</desc>
            <filename>0001-2011-01-31-Mario-Sanchez-Prada-msanchez-igalia.com.patch</filename>
            <type>text/plain</type>
            <size>5273</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSBjNjc4MmRmYmYxOWEzMDIxMmU3MjhhNjczYzFlZmMwMmZkZDdlMWE4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtc2FuY2hlekBpZ2FsaWEu
Y29tPgpEYXRlOiBNb24sIDMxIEphbiAyMDExIDE5OjQxOjM3ICswMTAwClN1YmplY3Q6IFtQQVRD
SF0gMjAxMS0wMS0zMSAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+
CgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICBbR3RrXSBhdGtf
dGV4dF9nZXRfY2FyZXRfb2Zmc2V0IGZhaWxzIGZvciBsaXN0IGl0ZW1zCiAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzNDM2CgogICAgICAgIENvbnNpZGVy
IGxpc3QgaXRlbSBtYXJrZXJzIHdoZW4gY2FsY3VsYXRpbmcgdGhlIG9mZnNldC4KCiAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHA6CiAg
ICAgICAgKHdlYmtpdF9hY2Nlc3NpYmxlX3RleHRfZ2V0X2NhcmV0X29mZnNldCk6IEFqdXN0IHRo
ZSBvZmZzZXQgd2l0aAogICAgICAgIHRoZSBpdGVtIG1hcmtlcidzIGxlbmd0aCBmb3IgbGlzdCBp
dGVtcy4KCjIwMTEtMDEtMzEgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEu
Y29tPgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgW0d0a10g
YXRrX3RleHRfZ2V0X2NhcmV0X29mZnNldCBmYWlscyBmb3IgbGlzdCBpdGVtcwogICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzQzNgoKICAgICAgICBVcGRh
dGUgdW5pdCB0ZXN0IHRvIGNoZWNrIHRoZSBmaXggZm9yIHRoaXMgYnVnLgoKICAgICAgICAqIHRl
c3RzL3Rlc3RhdGsuYzoKICAgICAgICAodGVzdFdlYmtpdEF0a0NhcmV0T2Zmc2V0cyk6IENoZWNr
IHRoYXQgdGhlIGNhcmV0IG9mZnNldCByZXR1cm5lZAogICAgICAgIG1hdGNoIHRoZSB2YWx1ZSBw
cmV2aW91c2x5IHNldC4KLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgMTMgKysrKysrKysrKysrKwogLi4uL2d0ay9BY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlckF0ay5jcHAgICAgICAgICAgfCAgIDEyICsrKysrKysrKysrLQogU291cmNl
L1dlYktpdC9ndGsvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEzICsrKysr
KysrKysrKysKIFNvdXJjZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGsuYyAgICAgICAgICAgICAg
ICAgIHwgICAgNiArKy0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgMzkgaW5zZXJ0aW9ucygrKSwgNSBk
ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjBhYWZiYS4uMjY0Njc2MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMiw2ICsyLDE5IEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAK
KyAgICAgICAgW0d0a10gYXRrX3RleHRfZ2V0X2NhcmV0X29mZnNldCBmYWlscyBmb3IgbGlzdCBp
dGVtcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM0
MzYKKworICAgICAgICBDb25zaWRlciBsaXN0IGl0ZW0gbWFya2VycyB3aGVuIGNhbGN1bGF0aW5n
IHRoZSBvZmZzZXQuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlckF0ay5jcHA6CisgICAgICAgICh3ZWJraXRfYWNjZXNzaWJsZV90ZXh0X2dl
dF9jYXJldF9vZmZzZXQpOiBBanVzdCB0aGUgb2Zmc2V0IHdpdGgKKyAgICAgICAgdGhlIGl0ZW0g
bWFya2VyJ3MgbGVuZ3RoIGZvciBsaXN0IGl0ZW1zLgorCisyMDExLTAxLTMxICBNYXJpbyBTYW5j
aGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKwogICAgICAgICBbR3RrXSBhdGtfdGV4dF9zZXRfY2FyZXRfb2Zmc2V0
IGZhaWxzIGZvciBsaXN0IGl0ZW1zCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01MzM4OAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAK
aW5kZXggZGY3OThjZC4uZDE2ZWY2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRr
LmNwcApAQCAtMTIwOCw4ICsxMjA4LDEwIEBAIHN0YXRpYyBnaW50IHdlYmtpdF9hY2Nlc3NpYmxl
X3RleHRfZ2V0X2NhcmV0X29mZnNldChBdGtUZXh0KiB0ZXh0KQogICAgIC8vIGNvcmVPYmplY3Qg
aXMgdGhlIHVuaWdub3JlZCBvYmplY3Qgd2hvc2Ugb2Zmc2V0IHRoZSBjYWxsZXIgaXMgcmVxdWVz
dGluZy4KICAgICAvLyBmb2N1c2VkT2JqZWN0IGlzIHRoZSBvYmplY3Qgd2l0aCB0aGUgY2FyZXQu
IEl0IGlzIGxpa2VseSBpZ25vcmVkIC0tIHVubGVzcyBpdCdzIGEgbGluay4KICAgICBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBjb3JlT2JqZWN0ID0gY29yZSh0ZXh0KTsKLSAgICBOb2RlKiBmb2N1c2Vk
Tm9kZSA9IGNvcmVPYmplY3QtPnNlbGVjdGlvbigpLmVuZCgpLm5vZGUoKTsKKyAgICBpZiAoIWNv
cmVPYmplY3QtPmlzQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCgpKQorICAgICAgICByZXR1cm4g
MDsKIAorICAgIE5vZGUqIGZvY3VzZWROb2RlID0gY29yZU9iamVjdC0+c2VsZWN0aW9uKCkuZW5k
KCkubm9kZSgpOwogICAgIGlmICghZm9jdXNlZE5vZGUpCiAgICAgICAgIHJldHVybiAwOwogCkBA
IC0xMjIxLDYgKzEyMjMsMTQgQEAgc3RhdGljIGdpbnQgd2Via2l0X2FjY2Vzc2libGVfdGV4dF9n
ZXRfY2FyZXRfb2Zmc2V0KEF0a1RleHQqIHRleHQpCiAgICAgaWYgKCFvYmplY3RBbmRPZmZzZXRV
bmlnbm9yZWQoZm9jdXNlZE9iamVjdCwgb2Zmc2V0LCAhY29yZU9iamVjdC0+aXNMaW5rKCkpKQog
ICAgICAgICByZXR1cm4gMDsKIAorICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSB0b0FjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QoY29yZU9iamVjdCktPnJlbmRlcmVyKCk7CisgICAgaWYgKHJl
bmRlcmVyICYmIHJlbmRlcmVyLT5pc0xpc3RJdGVtKCkpIHsKKyAgICAgICAgU3RyaW5nIG1hcmtl
clRleHQgPSB0b1JlbmRlckxpc3RJdGVtKHJlbmRlcmVyKS0+bWFya2VyVGV4dFdpdGhTdWZmaXgo
KTsKKworICAgICAgICAvLyBXZSBuZWVkIHRvIGFkanVzdCB0aGUgb2Zmc2V0IGZvciBsaXN0IGl0
ZW1zLgorICAgICAgICBvZmZzZXQgKz0gZ191dGY4X3N0cmxlbihtYXJrZXJUZXh0LnV0ZjgoKS5k
YXRhKCksIC0xKTsKKyAgICB9CisKICAgICAvLyBUT0RPOiBWZXJpZnkgdGhpcyBmb3IgUlRMIHRl
eHQuCiAgICAgcmV0dXJuIG9mZnNldDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA4MDFhNzk4Li5m
ZTExZDk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMTkgQEAKIAogICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBbR3RrXSBhdGtfdGV4dF9nZXRfY2Fy
ZXRfb2Zmc2V0IGZhaWxzIGZvciBsaXN0IGl0ZW1zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzQzNgorCisgICAgICAgIFVwZGF0ZSB1bml0IHRlc3Qg
dG8gY2hlY2sgdGhlIGZpeCBmb3IgdGhpcyBidWcuCisKKyAgICAgICAgKiB0ZXN0cy90ZXN0YXRr
LmM6CisgICAgICAgICh0ZXN0V2Via2l0QXRrQ2FyZXRPZmZzZXRzKTogQ2hlY2sgdGhhdCB0aGUg
Y2FyZXQgb2Zmc2V0IHJldHVybmVkCisgICAgICAgIG1hdGNoIHRoZSB2YWx1ZSBwcmV2aW91c2x5
IHNldC4KKworMjAxMS0wMS0zMSAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxp
YS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKICAgICAgICAg
W0d0a10gYXRrX3RleHRfc2V0X2NhcmV0X29mZnNldCBmYWlscyBmb3IgbGlzdCBpdGVtcwogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTMzODgKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvdGVzdHMvdGVzdGF0ay5jIGIvU291cmNlL1dlYktp
dC9ndGsvdGVzdHMvdGVzdGF0ay5jCmluZGV4IDUwNjJjMmIuLjA0MDRkZTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGsuYworKysgYi9Tb3VyY2UvV2ViS2l0L2d0
ay90ZXN0cy90ZXN0YXRrLmMKQEAgLTI5NSwxMCArMjk1LDggQEAgc3RhdGljIHZvaWQgdGVzdFdl
YmtpdEF0a0NhcmV0T2Zmc2V0cygpCiAgICAgLyogSXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIHBs
YWNlIHRoZSBjYXJldCBpbnNpZGUgYW4gaXRlbSdzIHRleHQuICovCiAgICAgcmVzdWx0ID0gYXRr
X3RleHRfc2V0X2NhcmV0X29mZnNldChBVEtfVEVYVChsaXN0SXRlbSksIDUpOwogICAgIGdfYXNz
ZXJ0X2NtcGludChyZXN1bHQsID09LCBUUlVFKTsKLQotICAgIC8qIFVuY29tbWVudCB0aGUgZm9s
bG93aW5nIHR3byBsaW5lcyB3aGVuIGZpeGluZyBidWcgNTM0MzYuICovCi0gICAgLyogb2Zmc2V0
ID0gYXRrX3RleHRfZ2V0X2NhcmV0X29mZnNldChBVEtfVEVYVChsaXN0SXRlbSkpOyAqLwotICAg
IC8qIGdfYXNzZXJ0X2NtcGludChvZmZzZXQsID09LCA1KTsgKi8KKyAgICBvZmZzZXQgPSBhdGtf
dGV4dF9nZXRfY2FyZXRfb2Zmc2V0KEFUS19URVhUKGxpc3RJdGVtKSk7CisgICAgZ19hc3NlcnRf
Y21waW50KG9mZnNldCwgPT0sIDUpOwogCiAgICAgQXRrT2JqZWN0KiBwYW5lbCA9IGF0a19vYmpl
Y3RfcmVmX2FjY2Vzc2libGVfY2hpbGQob2JqZWN0LCAzKTsKICAgICBnX2Fzc2VydChBVEtfSVNf
T0JKRUNUKHBhbmVsKSk7Ci0tIAoxLjcuMy41Cgo=
</data>
<flag name="review"
          id="72161"
          type_id="1"
          status="-"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80766</attachid>
            <date>2011-02-01 09:15:29 -0800</date>
            <delta_ts>2011-02-07 08:14:56 -0800</delta_ts>
            <desc>Patch proposal + unit tests</desc>
            <filename>0001-2011-02-01-Mario-Sanchez-Prada-msanchez-igalia.com.patch</filename>
            <type>text/plain</type>
            <size>5948</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSA0YmQ5NjlmMTg0OTFhYTA4OTU2YTg4NDI3NTZmYjZiOTdiZWE4M2QzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtc2FuY2hlekBpZ2FsaWEu
Y29tPgpEYXRlOiBUdWUsIDEgRmViIDIwMTEgMTc6NDc6MDEgKzAxMDAKU3ViamVjdDogW1BBVENI
XSAyMDExLTAyLTAxICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4K
CiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIFtHdGtdIGF0a190
ZXh0X2dldF9jYXJldF9vZmZzZXQgZmFpbHMgZm9yIGxpc3QgaXRlbXMKICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM0MzYKCiAgICAgICAgQ29uc2lkZXIg
bGlzdCBpdGVtIG1hcmtlcnMgd2hlbiBjYWxjdWxhdGluZyB0aGUgb2Zmc2V0LgoKICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcDoKICAg
ICAgICAod2Via2l0X2FjY2Vzc2libGVfdGV4dF9nZXRfY2FyZXRfb2Zmc2V0KTogQWRqdXN0IHRo
ZSBvZmZzZXQKICAgICAgICB3aXRoIHRoZSBpdGVtIG1hcmtlcidzIGxlbmd0aCBmb3IgbGlzdCBp
dGVtcy4KICAgICAgICAod2Via2l0X2FjY2Vzc2libGVfdGV4dF9zZXRfY2FyZXRfb2Zmc2V0KTog
UmVwbGFjZSB1c2FnZSBvZgogICAgICAgIGdfdXRmOF9zdHJsZW4oKSBieSBjYWxsaW5nIHRvIG1h
cmtlclRleHQubGVuZ3RoKCkuCjIwMTEtMDItMDEgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2Fu
Y2hlekBpZ2FsaWEuY29tPgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAg
ICAgICAgW0d0a10gYXRrX3RleHRfZ2V0X2NhcmV0X29mZnNldCBmYWlscyBmb3IgbGlzdCBpdGVt
cwogICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzQzNgoK
ICAgICAgICBVcGRhdGUgdW5pdCB0ZXN0IHRvIGNoZWNrIHRoZSBmaXggZm9yIHRoaXMgYnVnLgoK
ICAgICAgICAqIHRlc3RzL3Rlc3RhdGsuYzoKICAgICAgICAodGVzdFdlYmtpdEF0a0NhcmV0T2Zm
c2V0cyk6IENoZWNrIHRoYXQgdGhlIGNhcmV0IG9mZnNldCByZXR1cm5lZAogICAgICAgIG1hdGNo
IHRoZSB2YWx1ZSBwcmV2aW91c2x5IHNldC4KLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTUgKysrKysrKysrKysrKysrCiAuLi4vZ3Rr
L0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcCAgICAgICAgICB8ICAgMTQgKysrKysr
KysrKysrLS0KIFNvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgIHwgICAxMyArKysrKysrKysrKysrCiBTb3VyY2UvV2ViS2l0L2d0ay90ZXN0cy90ZXN0YXRr
LmMgICAgICAgICAgICAgICAgICB8ICAgIDYgKystLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDQyIGlu
c2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGUwMmM2Y2UuLjIxNTJk
MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMS0wMi0wMSAgTWFyaW8gU2FuY2hl
eiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW0d0a10gYXRrX3RleHRfZ2V0X2NhcmV0X29mZnNldCBm
YWlscyBmb3IgbGlzdCBpdGVtcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTM0MzYKKworICAgICAgICBDb25zaWRlciBsaXN0IGl0ZW0gbWFya2VycyB3
aGVuIGNhbGN1bGF0aW5nIHRoZSBvZmZzZXQuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0
ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHA6CisgICAgICAgICh3ZWJraXRfYWNj
ZXNzaWJsZV90ZXh0X2dldF9jYXJldF9vZmZzZXQpOiBBZGp1c3QgdGhlIG9mZnNldAorICAgICAg
ICB3aXRoIHRoZSBpdGVtIG1hcmtlcidzIGxlbmd0aCBmb3IgbGlzdCBpdGVtcy4KKyAgICAgICAg
KHdlYmtpdF9hY2Nlc3NpYmxlX3RleHRfc2V0X2NhcmV0X29mZnNldCk6IFJlcGxhY2UgdXNhZ2Ug
b2YKKyAgICAgICAgZ191dGY4X3N0cmxlbigpIGJ5IGNhbGxpbmcgdG8gbWFya2VyVGV4dC5sZW5n
dGgoKS4KKwogMjAxMS0wMi0wMSAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgRml4IGxpbmtlciB3YXJuaW5ncyBpbiBSZWxlYXNlX0xUQ0cgYnVpbGRzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlckF0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAKaW5kZXggODE1ZmNmMS4uNzEwZjNmYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJBdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0Fj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcApAQCAtMTIwOSw4ICsxMjA5LDEwIEBAIHN0
YXRpYyBnaW50IHdlYmtpdF9hY2Nlc3NpYmxlX3RleHRfZ2V0X2NhcmV0X29mZnNldChBdGtUZXh0
KiB0ZXh0KQogICAgIC8vIGNvcmVPYmplY3QgaXMgdGhlIHVuaWdub3JlZCBvYmplY3Qgd2hvc2Ug
b2Zmc2V0IHRoZSBjYWxsZXIgaXMgcmVxdWVzdGluZy4KICAgICAvLyBmb2N1c2VkT2JqZWN0IGlz
IHRoZSBvYmplY3Qgd2l0aCB0aGUgY2FyZXQuIEl0IGlzIGxpa2VseSBpZ25vcmVkIC0tIHVubGVz
cyBpdCdzIGEgbGluay4KICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBjb3JlT2JqZWN0ID0gY29y
ZSh0ZXh0KTsKLSAgICBOb2RlKiBmb2N1c2VkTm9kZSA9IGNvcmVPYmplY3QtPnNlbGVjdGlvbigp
LmVuZCgpLm5vZGUoKTsKKyAgICBpZiAoIWNvcmVPYmplY3QtPmlzQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdCgpKQorICAgICAgICByZXR1cm4gMDsKIAorICAgIE5vZGUqIGZvY3VzZWROb2RlID0g
Y29yZU9iamVjdC0+c2VsZWN0aW9uKCkuZW5kKCkubm9kZSgpOwogICAgIGlmICghZm9jdXNlZE5v
ZGUpCiAgICAgICAgIHJldHVybiAwOwogCkBAIC0xMjIyLDYgKzEyMjQsMTQgQEAgc3RhdGljIGdp
bnQgd2Via2l0X2FjY2Vzc2libGVfdGV4dF9nZXRfY2FyZXRfb2Zmc2V0KEF0a1RleHQqIHRleHQp
CiAgICAgaWYgKCFvYmplY3RBbmRPZmZzZXRVbmlnbm9yZWQoZm9jdXNlZE9iamVjdCwgb2Zmc2V0
LCAhY29yZU9iamVjdC0+aXNMaW5rKCkpKQogICAgICAgICByZXR1cm4gMDsKIAorICAgIFJlbmRl
ck9iamVjdCogcmVuZGVyZXIgPSB0b0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QoY29yZU9iamVj
dCktPnJlbmRlcmVyKCk7CisgICAgaWYgKHJlbmRlcmVyICYmIHJlbmRlcmVyLT5pc0xpc3RJdGVt
KCkpIHsKKyAgICAgICAgU3RyaW5nIG1hcmtlclRleHQgPSB0b1JlbmRlckxpc3RJdGVtKHJlbmRl
cmVyKS0+bWFya2VyVGV4dFdpdGhTdWZmaXgoKTsKKworICAgICAgICAvLyBXZSBuZWVkIHRvIGFk
anVzdCB0aGUgb2Zmc2V0IGZvciBsaXN0IGl0ZW1zLgorICAgICAgICBvZmZzZXQgKz0gbWFya2Vy
VGV4dC5sZW5ndGgoKTsKKyAgICB9CisKICAgICAvLyBUT0RPOiBWZXJpZnkgdGhpcyBmb3IgUlRM
IHRleHQuCiAgICAgcmV0dXJuIG9mZnNldDsKIH0KQEAgLTE3MDYsNyArMTcxNiw3IEBAIHN0YXRp
YyBnYm9vbGVhbiB3ZWJraXRfYWNjZXNzaWJsZV90ZXh0X3NldF9jYXJldF9vZmZzZXQoQXRrVGV4
dCogdGV4dCwgZ2ludCBvZmZzCiAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IHRvQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdChjb3JlT2JqZWN0KS0+cmVuZGVyZXIoKTsKICAgICBpZiAocmVu
ZGVyZXIgJiYgcmVuZGVyZXItPmlzTGlzdEl0ZW0oKSkgewogICAgICAgICBTdHJpbmcgbWFya2Vy
VGV4dCA9IHRvUmVuZGVyTGlzdEl0ZW0ocmVuZGVyZXIpLT5tYXJrZXJUZXh0V2l0aFN1ZmZpeCgp
OwotICAgICAgICBpbnQgbWFya2VyTGVuZ3RoID0gZ191dGY4X3N0cmxlbihtYXJrZXJUZXh0LnV0
ZjgoKS5kYXRhKCksIC0xKTsKKyAgICAgICAgaW50IG1hcmtlckxlbmd0aCA9IG1hcmtlclRleHQu
bGVuZ3RoKCk7CiAgICAgICAgIGlmIChvZmZzZXQgPCBtYXJrZXJMZW5ndGgpCiAgICAgICAgICAg
ICByZXR1cm4gRkFMU0U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCAwZTVkZWJjLi5jNzFjNGNmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTggQEAKIDIwMTEtMDItMDEgIE1hcmlvIFNhbmNo
ZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgogCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHdGtdIGF0a190ZXh0X2dldF9jYXJldF9vZmZzZXQg
ZmFpbHMgZm9yIGxpc3QgaXRlbXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTUzNDM2CisKKyAgICAgICAgVXBkYXRlIHVuaXQgdGVzdCB0byBjaGVjayB0
aGUgZml4IGZvciB0aGlzIGJ1Zy4KKworICAgICAgICAqIHRlc3RzL3Rlc3RhdGsuYzoKKyAgICAg
ICAgKHRlc3RXZWJraXRBdGtDYXJldE9mZnNldHMpOiBDaGVjayB0aGF0IHRoZSBjYXJldCBvZmZz
ZXQgcmV0dXJuZWQKKyAgICAgICAgbWF0Y2ggdGhlIHZhbHVlIHByZXZpb3VzbHkgc2V0LgorCisy
MDExLTAyLTAxICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KKwog
ICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCiAKICAgICAgICAgW0d0a10gYXRr
X3RleHRfc2V0X2NhcmV0X29mZnNldCBmYWlscyBmb3IgbGlzdCBpdGVtcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9ndGsvdGVzdHMvdGVzdGF0ay5jIGIvU291cmNlL1dlYktpdC9ndGsvdGVz
dHMvdGVzdGF0ay5jCmluZGV4IDJlMDVhYTIuLjY1MDg2MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGsuYworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay90ZXN0cy90
ZXN0YXRrLmMKQEAgLTI5NSwxMCArMjk1LDggQEAgc3RhdGljIHZvaWQgdGVzdFdlYmtpdEF0a0Nh
cmV0T2Zmc2V0cygpCiAgICAgLyogSXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIHBsYWNlIHRoZSBj
YXJldCBpbnNpZGUgYW4gaXRlbSdzIHRleHQuICovCiAgICAgcmVzdWx0ID0gYXRrX3RleHRfc2V0
X2NhcmV0X29mZnNldChBVEtfVEVYVChsaXN0SXRlbSksIDUpOwogICAgIGdfYXNzZXJ0X2NtcGlu
dChyZXN1bHQsID09LCBUUlVFKTsKLQotICAgIC8qIFVuY29tbWVudCB0aGUgZm9sbG93aW5nIHR3
byBsaW5lcyB3aGVuIGZpeGluZyBidWcgNTM0MzYuICovCi0gICAgLyogb2Zmc2V0ID0gYXRrX3Rl
eHRfZ2V0X2NhcmV0X29mZnNldChBVEtfVEVYVChsaXN0SXRlbSkpOyAqLwotICAgIC8qIGdfYXNz
ZXJ0X2NtcGludChvZmZzZXQsID09LCA1KTsgKi8KKyAgICBvZmZzZXQgPSBhdGtfdGV4dF9nZXRf
Y2FyZXRfb2Zmc2V0KEFUS19URVhUKGxpc3RJdGVtKSk7CisgICAgZ19hc3NlcnRfY21waW50KG9m
ZnNldCwgPT0sIDUpOwogCiAgICAgQXRrT2JqZWN0KiBwYW5lbCA9IGF0a19vYmplY3RfcmVmX2Fj
Y2Vzc2libGVfY2hpbGQob2JqZWN0LCAzKTsKICAgICBnX2Fzc2VydChBVEtfSVNfT0JKRUNUKHBh
bmVsKSk7Ci0tIAoxLjcuMy41Cgo=
</data>
<flag name="review"
          id="72263"
          type_id="1"
          status="+"
          setter="xan.lopez"
    />
          </attachment>
      

    </bug>

</bugzilla>