<?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>118359</bug_id>
          
          <creation_ts>2013-07-03 09:32:53 -0700</creation_ts>
          <short_desc>[ATK] Do not expose &apos;\n&apos; for wrapped lines with ATK_TEXT_BOUNDARY_CHAR</short_desc>
          <delta_ts>2013-07-04 03:04:31 -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>Accessibility</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="Mario Sanchez Prada">mario</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>jdiggs</cc>
    
    <cc>mrobinson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>905887</commentid>
    <comment_count>0</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-07-03 09:32:53 -0700</bug_when>
    <thetext>Currently, WebKitGTK+ is exposing &apos;\n&apos; for every single visual line break in paragraphs, while it should only be doing it for those which are enforced by the author of the content (e.g. by using &lt;br&gt;), and not for every single &quot;visual end of line&quot; that might happen for other reasons, such as text wrapping (where it should be exposing just a &quot; &quot; if it&apos;s not the end of the paragraph). 

This is a regression compared to previous versions and has slipped in due to not have proper tests in place for it, so we should fix it and provide new tests to avoid the hassle in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905889</commentid>
    <comment_count>1</comment_count>
      <attachid>206007</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-07-03 09:39:04 -0700</bug_when>
    <thetext>Created attachment 206007
Patch proposal plus new Unit test

Here&apos;s the patch. It&apos;s as simple as removing the specific code I added some weeks ago by mistake, believing it was the expected behaviour (which today I double checked that it is NOT).

Anyway, the most important part of the patch IMHO is the unit test which should help avoiding these issues in the future, and which also helped me find another bug in GAIL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905899</commentid>
    <comment_count>2</comment_count>
      <attachid>206007</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-07-03 10:05:01 -0700</bug_when>
    <thetext>Comment on attachment 206007
Patch proposal plus new Unit test

Looks reasonable to me, but it probably makes sense to ensure that all new a11y tests are WebKit2 tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905902</commentid>
    <comment_count>3</comment_count>
      <attachid>206007</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-07-03 10:06:22 -0700</bug_when>
    <thetext>Comment on attachment 206007
Patch proposal plus new Unit test

Can this be tested in WebKit2? I&apos;m not sure it&apos;s worth it adding new unit tests for wk1 API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905908</commentid>
    <comment_count>4</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-07-03 10:21:50 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 206007 [details])
&gt; Can this be tested in WebKit2? I&apos;m not sure it&apos;s worth it adding new unit tests &gt; for wk1 API.

We can not test this in WebKit1 because we are checking the implementation of ATK interfaces here, and we only can use ATK APIs if we are in the same process where the accessibility hierarchy lives.

What we can do in WebKit2, though, is to check the accessibility hierarchy (and indirectly the ATK implementation) through AT-SPI2, but then you introduce several points of failure more, such as AT-SPI2, the registry, D-Bus and the ATK bridge. And on top of that you would not be testing the ATK implementation either.

So, that&apos;s why, at the moment, in WebKit2 we use AT-SPI2 to check only the &quot;connection&quot; between the two process by terms of AtkSocket/AtkPlug, and we leave the actual checking of the ATK implementation to the unit tests in WebKit1.

Additionally, these specific tests wouldn&apos;t work either in WebKit2 even if we implemented them in terms of AT-SPI2, since the LINE boundary will be completely broken there while we keep using Pango/Gail for that (see bugs 73433 and 114867).

However, I agree that we should think of a solution for the future at some point, maybe by migrating all the ATK-specific tests to AT-SPI2 specific ones. But for the time being it would be great if we could keep using this testatk.c file.

At least until we manage to get rid of the Pango/Gail dependency, which is the other reason why WebKit2 is not fully accessible right now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905911</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-07-03 10:28:37 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; (From update of attachment 206007 [details] [details])
&gt; &gt; Can this be tested in WebKit2? I&apos;m not sure it&apos;s worth it adding new unit tests &gt; for wk1 API.
&gt; 
&gt; We can not test this in WebKit1 because we are checking the implementation of ATK interfaces here, and we only can use ATK APIs if we are in the same process where the accessibility hierarchy lives.
&gt; 
&gt; What we can do in WebKit2, though, is to check the accessibility hierarchy (and indirectly the ATK implementation) through AT-SPI2, but then you introduce several points of failure more, such as AT-SPI2, the registry, D-Bus and the ATK bridge. And on top of that you would not be testing the ATK implementation either.
&gt; 
&gt; So, that&apos;s why, at the moment, in WebKit2 we use AT-SPI2 to check only the &quot;connection&quot; between the two process by terms of AtkSocket/AtkPlug, and we leave the actual checking of the ATK implementation to the unit tests in WebKit1.
&gt; 
&gt; Additionally, these specific tests wouldn&apos;t work either in WebKit2 even if we implemented them in terms of AT-SPI2, since the LINE boundary will be completely broken there while we keep using Pango/Gail for that (see bugs 73433 and 114867).
&gt; 
&gt; However, I agree that we should think of a solution for the future at some point, maybe by migrating all the ATK-specific tests to AT-SPI2 specific ones. But for the time being it would be great if we could keep using this testatk.c file.
&gt; 
&gt; At least until we manage to get rid of the Pango/Gail dependency, which is the other reason why WebKit2 is not fully accessible right now.

Ok, we&apos;ll port it then when we add support for tests in the web process using injected bundle.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905915</commentid>
    <comment_count>6</comment_count>
      <attachid>206007</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-07-03 10:32:37 -0700</bug_when>
    <thetext>Comment on attachment 206007
Patch proposal plus new Unit test

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

&gt; Source/WebKit/gtk/tests/testatk.c:952
&gt; +    webkit_web_view_load_string(webView, contentsWithWrappedLines, 0, 0, 0);

Don&apos;t you need to run a main loop and wait until the page is loaded to continue with the test?

&gt; Source/WebKit/gtk/tests/testatk.c:956
&gt; +    g_object_set(G_OBJECT(settings), &quot;enable-caret-browsing&quot;, TRUE, NULL);

g_object_set receives a gpointer, not a GObject, so you don&apos;t need the cast.

&gt; Source/WebKit/gtk/tests/testatk.c:995
&gt; +    /* Check the paragraph with the text wrapped because of &lt;br&gt; elements. */

You are mixing C and C++ comments in this test, please fix it before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>906114</commentid>
    <comment_count>7</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-07-04 02:54:11 -0700</bug_when>
    <thetext>Thanks for the review Carlos. I&apos;m submitting this patch soon with your points addressed.

(In reply to comment #6)
&gt; (From update of attachment 206007 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=206007&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/gtk/tests/testatk.c:952
&gt; &gt; +    webkit_web_view_load_string(webView, contentsWithWrappedLines, 0, 0, 0);
&gt; 
&gt; Don&apos;t you need to run a main loop and wait until the page is loaded to continue with the test?

Not anymore. It&apos;s enough with spinning manually the current loop to ensure the web is loaded when getting the root element, which is performed internally in getWebAreaObject().

&gt; &gt; Source/WebKit/gtk/tests/testatk.c:956
&gt; &gt; +    g_object_set(G_OBJECT(settings), &quot;enable-caret-browsing&quot;, TRUE, NULL);
&gt; 
&gt; g_object_set receives a gpointer, not a GObject, so you don&apos;t need the cast.

Will fix.

&gt; &gt; Source/WebKit/gtk/tests/testatk.c:995
&gt; &gt; +    /* Check the paragraph with the text wrapped because of &lt;br&gt; elements. */
&gt; 
&gt; You are mixing C and C++ comments in this test, please fix it before landing.

Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>906115</commentid>
    <comment_count>8</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-07-04 03:04:31 -0700</bug_when>
    <thetext>Committed r152396: &lt;http://trac.webkit.org/changeset/152396&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206007</attachid>
            <date>2013-07-03 09:39:04 -0700</date>
            <delta_ts>2013-07-03 10:32:37 -0700</delta_ts>
            <desc>Patch proposal plus new Unit test</desc>
            <filename>0001-2013-07-03-Mario-Sanchez-Prada-mario.prada-samsung.c.patch</filename>
            <type>text/plain</type>
            <size>12110</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSBlNGY3NzM4MmFjYzNhMTczZDJjMzNiNjY1MmMyY2QwNjU1MTY5OGY0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtYXJpby5wcmFkYUBzYW1z
dW5nLmNvbT4KRGF0ZTogV2VkLCAzIEp1bCAyMDEzIDE3OjM0OjAyICswMTAwClN1YmplY3Q6IFtQ
QVRDSF0gMjAxMy0wNy0wMyAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1hcmlvLnByYWRhQHNhbXN1
bmcuY29tPgoKICAgICAgICBbQVRLXSBEbyBub3QgZXhwb3NlICdcbicgZm9yIHdyYXBwZWQgbGlu
ZXMgd2l0aCBBVEtfVEVYVF9CT1VOREFSWV9DSEFSCiAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTExODM1OQoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KCiAgICAgICAgRG8gbm90IGV4cG9zZSBhICdcbicgY2hhcmFjdGVyIGZvciBldmVy
eSB2aXN1YWwgbGluZSBicmVhay4KCiAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRB
Y2Nlc3NpYmxlSW50ZXJmYWNlVGV4dC5jcHA6CiAgICAgICAgKHdlYmtpdEFjY2Vzc2libGVUZXh0
R2V0Q2hhcik6IFJlbW92ZWQgd3JvbmcgY29kZS4KCjIwMTMtMDctMDMgIE1hcmlvIFNhbmNoZXog
UHJhZGEgIDxtYXJpby5wcmFkYUBzYW1zdW5nLmNvbT4KCiAgICAgICAgW0FUS10gRG8gbm90IGV4
cG9zZSAnXG4nIGZvciB3cmFwcGVkIGxpbmVzIHdpdGggQVRLX1RFWFRfQk9VTkRBUllfQ0hBUgog
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTgzNTkKCiAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIEFkZGVkIG5ldyB1bml0
IHRlc3QgdG8gbWFrZSBzdXJlIHdlIGV4cG9zZWQgbGluZSBicmVha3MgcHJvcGVybHkuCgogICAg
ICAgICogdGVzdHMvdGVzdGF0ay5jOgogICAgICAgICh0ZXN0V2Via2l0QXRrR2V0VGV4dEF0T2Zm
c2V0V2l0aFdyYXBwZWRMaW5lcyk6IE5ldyB1bml0IHRlc3QuCiAgICAgICAgKG1haW4pOiBBZGRl
ZCBuZXcgdGVzdCB0byB0aGUgdGVzdCBzdWl0ZS4KLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTIgKysrCiAuLi4vYXRrL1dlYktpdEFj
Y2Vzc2libGVJbnRlcmZhY2VUZXh0LmNwcCAgICAgICAgICB8ICAgIDUgLS0KIFNvdXJjZS9XZWJL
aXQvZ3RrL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMyArKysKIFNvdXJj
ZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGsuYyAgICAgICAgICAgICAgICAgIHwgICA4NyArKysr
KysrKysrKysrKysrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCAxMTIgaW5zZXJ0aW9ucygrKSwgNSBk
ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmU5MDQwMy4uMTUwMmEwMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE1IEBACisyMDEzLTA3LTAzICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bWFyaW8u
cHJhZGFAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0FUS10gRG8gbm90IGV4cG9zZSAnXG4nIGZv
ciB3cmFwcGVkIGxpbmVzIHdpdGggQVRLX1RFWFRfQk9VTkRBUllfQ0hBUgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4MzU5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRG8gbm90IGV4cG9zZSBhICdcbicg
Y2hhcmFjdGVyIGZvciBldmVyeSB2aXN1YWwgbGluZSBicmVhay4KKworICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VUZXh0LmNwcDoKKyAgICAgICAg
KHdlYmtpdEFjY2Vzc2libGVUZXh0R2V0Q2hhcik6IFJlbW92ZWQgd3JvbmcgY29kZS4KKwogMjAx
My0wNy0wMiAgUmFkdSBTdGF2aWxhICA8c3RhdmlsYUBhZG9iZS5jb20+CiAKICAgICAgICAgW0NT
U1JlZ2lvbnNdIE5vIG90aGVyIFNWRyBlbGVtZW50cyBleGNlcHQgdGhlIFNWR1Jvb3QgbXVzdCBo
YXZlIFJlZ2lvbkluZm8gb2JqZWN0cyBhdHRhY2hlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZVRleHQuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFj
ZVRleHQuY3BwCmluZGV4IDNkYTJhOWUuLmFlMmY4OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VUZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50
ZXJmYWNlVGV4dC5jcHAKQEAgLTYwMiwxMSArNjAyLDYgQEAgc3RhdGljIGdjaGFyKiB3ZWJraXRB
Y2Nlc3NpYmxlVGV4dEdldENoYXIoQXRrVGV4dCogdGV4dCwgZ2ludCBvZmZzZXQsIEdldFRleHRS
ZWwKICAgICBpZiAoKnN0YXJ0T2Zmc2V0ID09ICplbmRPZmZzZXQpCiAgICAgICAgIHJldHVybiBn
X3N0cmR1cCgiIik7CiAKLSAgICAvLyBNYWtlIHN1cmUgd2UgcmV0dXJuIHRoZSBsaW5lIGJyZWFr
IGlmIHdlIGFyZSBhdCB0aGUgdmlzdWFsIGVuZCBvZiBhIGxpbmUuCi0gICAgVmlzaWJsZVBvc2l0
aW9uIHZpc2libGVQb3NpdGlvbiA9IGNvcmVPYmplY3QtPnZpc2libGVQb3NpdGlvbkZvckluZGV4
KGFjdHVhbE9mZnNldCk7Ci0gICAgaWYgKGlzRW5kT2ZMaW5lKHZpc2libGVQb3NpdGlvbikpCi0g
ICAgICAgIHJldHVybiBnX3N0cmR1cCgiXG4iKTsKLQogICAgIHJldHVybiBnX3V0Zjhfc3Vic3Ry
aW5nKHRleHREYXRhLmdldCgpLCAqc3RhcnRPZmZzZXQsICplbmRPZmZzZXQpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cKaW5kZXggNzJlMmM0Mi4uZTlmNzAxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDEzLTA3LTAzICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bWFyaW8ucHJhZGFA
c2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0FUS10gRG8gbm90IGV4cG9zZSAnXG4nIGZvciB3cmFw
cGVkIGxpbmVzIHdpdGggQVRLX1RFWFRfQk9VTkRBUllfQ0hBUgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4MzU5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgbmV3IHVuaXQgdGVzdCB0byBtYWtl
IHN1cmUgd2UgZXhwb3NlZCBsaW5lIGJyZWFrcyBwcm9wZXJseS4KKworICAgICAgICAqIHRlc3Rz
L3Rlc3RhdGsuYzoKKyAgICAgICAgKHRlc3RXZWJraXRBdGtHZXRUZXh0QXRPZmZzZXRXaXRoV3Jh
cHBlZExpbmVzKTogTmV3IHVuaXQgdGVzdC4KKyAgICAgICAgKG1haW4pOiBBZGRlZCBuZXcgdGVz
dCB0byB0aGUgdGVzdCBzdWl0ZS4KKwogMjAxMy0wNy0wMSAgR3VzdGF2byBOb3JvbmhhIFNpbHZh
ICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jb20+CiAKICAgICAgICAgW0dUS10gUmVtb3Zl
IHVuc3VwcG9ydGVkIEFDIGJhY2tlbmRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay90
ZXN0cy90ZXN0YXRrLmMgYi9Tb3VyY2UvV2ViS2l0L2d0ay90ZXN0cy90ZXN0YXRrLmMKaW5kZXgg
MTA3MTY2YS4uOGIxNDJjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvdGVzdHMvdGVz
dGF0ay5jCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGsuYwpAQCAtNTAsNiAr
NTAsOCBAQCBzdGF0aWMgY29uc3QgY2hhciogY29udGVudHNJblRhYmxlV2l0aEhlYWRlcnMgPSAi
PGh0bWw+PGJvZHk+PHRhYmxlPjx0cj48dGg+Zm9vPAogCiBzdGF0aWMgY29uc3QgY2hhciogY29u
dGVudHNXaXRoRXh0cmFuZW91c1doaXRlU3BhY2VzID0gIjxodG1sPjxoZWFkPjxib2R5PjxwPlRo
aXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYWdyYXBoXG4gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1xuICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJvcmtlZCE8L3A+PC9ib2R5PjwvaHRtbD4iOwogCitzdGF0aWMgY29uc3QgY2hhciog
Y29udGVudHNXaXRoV3JhcHBlZExpbmVzID0gIjxodG1sPjxib2R5PjxwIHN0eWxlPSdtYXgtd2lk
dGg6MTUwcHg7Jz5UaGlzIGlzIG9uZSBsaW5lIHdyYXBwZWQgYmVjYXVzZSBvZiB0aGUgbWF4aW11
bSB3aWR0aCBvZiBpdHMgY29udGFpbmVyLjwvcD48cD5UaGlzIGlzIGFub3RoZXIgbGluZSB3cmFw
cGVkPGJyPmJlY2F1c2Ugb2Ygb25lIGZvcmNlZDxicj5saW5lIGJyZWFrIGluIHRoZSBtaWRkbGUu
PC9ib2R5PjwvaHRtbD4iOworCiBzdGF0aWMgY29uc3QgY2hhciogY29tYm9Cb3hTZWxlY3RvciA9
ICI8aHRtbD48Ym9keT48c2VsZWN0PjxvcHRpb24gc2VsZWN0ZWQgdmFsdWU9J2Zvbyc+Zm9vPC9v
cHRpb24+PG9wdGlvbiB2YWx1ZT0nYmFyJz5iYXI8L29wdGlvbj48L3NlbGVjdD48L2JvZHk+PC9o
dG1sPiI7CiAKIHN0YXRpYyBjb25zdCBjaGFyKiBlbWJlZGRlZE9iamVjdHMgPSAiPGh0bWw+PGJv
ZHk+PHA+Q2hvb3NlOiA8aW5wdXQgdmFsdWU9J2ZvbycgdHlwZT0nY2hlY2tib3gnLz5mb28gPGlu
cHV0IHZhbHVlPSdiYXInIHR5cGU9J2NoZWNrYm94Jy8+YmFyIChwaWNrIG9uZSk8L3A+PHA+Q2hv
b3NlOiA8c2VsZWN0IG5hbWU9J2Zvbyc+PG9wdGlvbj5iYXI8L29wdGlvbj48b3B0aW9uPmJhejwv
b3B0aW9uPjwvc2VsZWN0PiAocGljayBvbmUpPC9wPjxwPjxpbnB1dCBuYW1lPSdmb29iYXJidXR0
b24nIHZhbHVlPSdmb29iYXInIHR5cGU9J2J1dHRvbicvPjwvcD48L2JvZHk+PC9odG1sPiI7CkBA
IC05NDEsNiArOTQzLDkwIEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJraXRBdGtHZXRUZXh0QXRPZmZz
ZXRXaXRoU3BlY2lhbENoYXJhY3RlcnMoKQogICAgIGdfb2JqZWN0X3VucmVmKHdlYlZpZXcpOwog
fQogCitzdGF0aWMgdm9pZCB0ZXN0V2Via2l0QXRrR2V0VGV4dEF0T2Zmc2V0V2l0aFdyYXBwZWRM
aW5lcygpCit7CisgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IFdFQktJVF9XRUJfVklFVyh3
ZWJraXRfd2ViX3ZpZXdfbmV3KCkpOworICAgIGdfb2JqZWN0X3JlZl9zaW5rKHdlYlZpZXcpOwor
ICAgIEd0a0FsbG9jYXRpb24gYWxsb2NhdGlvbiA9IHsgMCwgMCwgODAwLCA2MDAgfTsKKyAgICBn
dGtfd2lkZ2V0X3NpemVfYWxsb2NhdGUoR1RLX1dJREdFVCh3ZWJWaWV3KSwgJmFsbG9jYXRpb24p
OworICAgIHdlYmtpdF93ZWJfdmlld19sb2FkX3N0cmluZyh3ZWJWaWV3LCBjb250ZW50c1dpdGhX
cmFwcGVkTGluZXMsIDAsIDAsIDApOworCisgICAgLyogRW5hYmxlIGNhcmV0IGJyb3dzaW5nLiAq
LworICAgIFdlYktpdFdlYlNldHRpbmdzKiBzZXR0aW5ncyA9IHdlYmtpdF93ZWJfdmlld19nZXRf
c2V0dGluZ3Mod2ViVmlldyk7CisgICAgZ19vYmplY3Rfc2V0KEdfT0JKRUNUKHNldHRpbmdzKSwg
ImVuYWJsZS1jYXJldC1icm93c2luZyIsIFRSVUUsIE5VTEwpOworICAgIHdlYmtpdF93ZWJfdmll
d19zZXRfc2V0dGluZ3Mod2ViVmlldywgc2V0dGluZ3MpOworCisgICAgLyogR2V0IHRvIHRoZSBp
bm5lciBBdGtUZXh0IG9iamVjdC4gKi8KKyAgICBBdGtPYmplY3QqIG9iamVjdCA9IGdldFdlYkFy
ZWFPYmplY3Qod2ViVmlldyk7CisgICAgZ19hc3NlcnQob2JqZWN0KTsKKworICAgIC8qIENoZWNr
IHRoZSBwYXJhZ3JhcGggd2l0aCB0aGUgdGV4dCB3cmFwcGVkIGJlY2F1c2Ugb2YgbWF4LXdpZHRo
LiAqLworICAgIEF0a1RleHQqIHBhcmFncmFwaDEgPSBBVEtfVEVYVChhdGtfb2JqZWN0X3JlZl9h
Y2Nlc3NpYmxlX2NoaWxkKG9iamVjdCwgMCkpOworICAgIGdfYXNzZXJ0KEFUS19JU19URVhUKHBh
cmFncmFwaDEpKTsKKworICAgIGdjaGFyKiB0ZXh0ID0gYXRrX3RleHRfZ2V0X3RleHQocGFyYWdy
YXBoMSwgMCwgLTEpOworICAgIGdfYXNzZXJ0X2NtcHN0cih0ZXh0LCA9PSwgIlRoaXMgaXMgb25l
IGxpbmUgd3JhcHBlZCBiZWNhdXNlIG9mIHRoZSBtYXhpbXVtIHdpZHRoIG9mIGl0cyBjb250YWlu
ZXIuIik7CisgICAgZ19mcmVlKHRleHQpOworCisgICAgdGVzdEdldFRleHRGdW5jdGlvbihwYXJh
Z3JhcGgxLCBhdGtfdGV4dF9nZXRfdGV4dF9iZWZvcmVfb2Zmc2V0LCBBVEtfVEVYVF9CT1VOREFS
WV9DSEFSLCAxNiwgImUiLCAxNSwgMTYpOworICAgIHRlc3RHZXRUZXh0RnVuY3Rpb24ocGFyYWdy
YXBoMSwgYXRrX3RleHRfZ2V0X3RleHRfYXRfb2Zmc2V0LCBBVEtfVEVYVF9CT1VOREFSWV9DSEFS
LCAxNiwgIiAiLCAxNiwgMTcpOworICAgIHRlc3RHZXRUZXh0RnVuY3Rpb24ocGFyYWdyYXBoMSwg
YXRrX3RleHRfZ2V0X3RleHRfYWZ0ZXJfb2Zmc2V0LCBBVEtfVEVYVF9CT1VOREFSWV9DSEFSLCAx
NiwgInciLCAxNywgMTgpOworCisgICAgdGVzdEdldFRleHRGdW5jdGlvbihwYXJhZ3JhcGgxLCBh
dGtfdGV4dF9nZXRfdGV4dF9iZWZvcmVfb2Zmc2V0LCBBVEtfVEVYVF9CT1VOREFSWV9XT1JEX1NU
QVJULCAxNiwgIm9uZSAiLCA4LCAxMik7CisgICAgdGVzdEdldFRleHRGdW5jdGlvbihwYXJhZ3Jh
cGgxLCBhdGtfdGV4dF9nZXRfdGV4dF9hdF9vZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZX1dPUkRf
U1RBUlQsIDE2LCAibGluZSAiLCAxMiwgMTcpOworICAgIHRlc3RHZXRUZXh0RnVuY3Rpb24ocGFy
YWdyYXBoMSwgYXRrX3RleHRfZ2V0X3RleHRfYWZ0ZXJfb2Zmc2V0LCBBVEtfVEVYVF9CT1VOREFS
WV9XT1JEX1NUQVJULCAxNiwgIndyYXBwZWQgIiwgMTcsIDI1KTsKKworICAgIHRlc3RHZXRUZXh0
RnVuY3Rpb24ocGFyYWdyYXBoMSwgYXRrX3RleHRfZ2V0X3RleHRfYmVmb3JlX29mZnNldCwgQVRL
X1RFWFRfQk9VTkRBUllfV09SRF9FTkQsIDE2LCAiIGxpbmUiLCAxMSwgMTYpOworICAgIHRlc3RH
ZXRUZXh0RnVuY3Rpb24ocGFyYWdyYXBoMSwgYXRrX3RleHRfZ2V0X3RleHRfYXRfb2Zmc2V0LCBB
VEtfVEVYVF9CT1VOREFSWV9XT1JEX0VORCwgMTYsICIgd3JhcHBlZCIsIDE2LCAyNCk7CisgICAg
dGVzdEdldFRleHRGdW5jdGlvbihwYXJhZ3JhcGgxLCBhdGtfdGV4dF9nZXRfdGV4dF9hZnRlcl9v
ZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZX1dPUkRfRU5ELCAxNiwgIiBiZWNhdXNlIiwgMjQsIDMy
KTsKKworICAgIHRlc3RHZXRUZXh0RnVuY3Rpb24ocGFyYWdyYXBoMSwgYXRrX3RleHRfZ2V0X3Rl
eHRfYmVmb3JlX29mZnNldCwgQVRLX1RFWFRfQk9VTkRBUllfTElORV9TVEFSVCwgMTcsICJUaGlz
IGlzIG9uZSBsaW5lICIsIDAsIDE3KTsKKyAgICB0ZXN0R2V0VGV4dEZ1bmN0aW9uKHBhcmFncmFw
aDEsIGF0a190ZXh0X2dldF90ZXh0X2F0X29mZnNldCwgQVRLX1RFWFRfQk9VTkRBUllfTElORV9T
VEFSVCwgMTcsICJ3cmFwcGVkIGJlY2F1c2UgIiwgMTcsIDMzKTsKKyAgICB0ZXN0R2V0VGV4dEZ1
bmN0aW9uKHBhcmFncmFwaDEsIGF0a190ZXh0X2dldF90ZXh0X2FmdGVyX29mZnNldCwgQVRLX1RF
WFRfQk9VTkRBUllfTElORV9TVEFSVCwgMTcsICJvZiB0aGUgbWF4aW11bSAiLCAzMywgNDgpOwor
CisgICAgLy8gVGhlIGZvbGxvd2luZyBsaW5lIHdvbid0IHdvcmsgYXQgdGhlIG1vbWVudCBiZWNh
dXNlIG9mIGEgYnVnIGluIEdhaWxUZXh0VXRpbC4KKyAgICAvLyBzZWUgaHR0cHM6Ly9idWd6aWxs
YS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMzU1NAorICAgIC8vIHRlc3RHZXRUZXh0RnVu
Y3Rpb24ocGFyYWdyYXBoMSwgYXRrX3RleHRfZ2V0X3RleHRfYmVmb3JlX29mZnNldCwgQVRLX1RF
WFRfQk9VTkRBUllfTElORV9FTkQsIDE3LCAiVGhpcyBpcyBvbmUgbGluZSIsIDAsIDE2KTsKKyAg
ICB0ZXN0R2V0VGV4dEZ1bmN0aW9uKHBhcmFncmFwaDEsIGF0a190ZXh0X2dldF90ZXh0X2F0X29m
ZnNldCwgQVRLX1RFWFRfQk9VTkRBUllfTElORV9FTkQsIDE3LCAiIHdyYXBwZWQgYmVjYXVzZSIs
IDE2LCAzMik7CisgICAgdGVzdEdldFRleHRGdW5jdGlvbihwYXJhZ3JhcGgxLCBhdGtfdGV4dF9n
ZXRfdGV4dF9hZnRlcl9vZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZX0xJTkVfRU5ELCAxNywgIiBv
ZiB0aGUgbWF4aW11bSIsIDMyLCA0Nyk7CisKKyAgICBnX29iamVjdF91bnJlZihwYXJhZ3JhcGgx
KTsKKworICAgIC8qIENoZWNrIHRoZSBwYXJhZ3JhcGggd2l0aCB0aGUgdGV4dCB3cmFwcGVkIGJl
Y2F1c2Ugb2YgPGJyPiBlbGVtZW50cy4gKi8KKyAgICBBdGtUZXh0KiBwYXJhZ3JhcGgyID0gQVRL
X1RFWFQoYXRrX29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChvYmplY3QsIDEpKTsKKyAgICBn
X2Fzc2VydChBVEtfSVNfVEVYVChwYXJhZ3JhcGgyKSk7CisKKyAgICB0ZXh0ID0gYXRrX3RleHRf
Z2V0X3RleHQocGFyYWdyYXBoMiwgMCwgLTEpOworICAgIGdfYXNzZXJ0X2NtcHN0cih0ZXh0LCA9
PSwgIlRoaXMgaXMgYW5vdGhlciBsaW5lIHdyYXBwZWRcbmJlY2F1c2Ugb2Ygb25lIGZvcmNlZFxu
bGluZSBicmVhayBpbiB0aGUgbWlkZGxlLiIpOworICAgIGdfZnJlZSh0ZXh0KTsKKworICAgIHRl
c3RHZXRUZXh0RnVuY3Rpb24ocGFyYWdyYXBoMiwgYXRrX3RleHRfZ2V0X3RleHRfYmVmb3JlX29m
ZnNldCwgQVRLX1RFWFRfQk9VTkRBUllfQ0hBUiwgMjgsICJkIiwgMjcsIDI4KTsKKyAgICB0ZXN0
R2V0VGV4dEZ1bmN0aW9uKHBhcmFncmFwaDIsIGF0a190ZXh0X2dldF90ZXh0X2F0X29mZnNldCwg
QVRLX1RFWFRfQk9VTkRBUllfQ0hBUiwgMjgsICJcbiIsIDI4LCAyOSk7CisgICAgdGVzdEdldFRl
eHRGdW5jdGlvbihwYXJhZ3JhcGgyLCBhdGtfdGV4dF9nZXRfdGV4dF9hZnRlcl9vZmZzZXQsIEFU
S19URVhUX0JPVU5EQVJZX0NIQVIsIDI4LCAiYiIsIDI5LCAzMCk7CisKKyAgICB0ZXN0R2V0VGV4
dEZ1bmN0aW9uKHBhcmFncmFwaDIsIGF0a190ZXh0X2dldF90ZXh0X2JlZm9yZV9vZmZzZXQsIEFU
S19URVhUX0JPVU5EQVJZX1dPUkRfU1RBUlQsIDI4LCAibGluZSAiLCAxNiwgMjEpOworICAgIHRl
c3RHZXRUZXh0RnVuY3Rpb24ocGFyYWdyYXBoMiwgYXRrX3RleHRfZ2V0X3RleHRfYXRfb2Zmc2V0
LCBBVEtfVEVYVF9CT1VOREFSWV9XT1JEX1NUQVJULCAyOCwgIndyYXBwZWRcbiIsIDIxLCAyOSk7
CisgICAgdGVzdEdldFRleHRGdW5jdGlvbihwYXJhZ3JhcGgyLCBhdGtfdGV4dF9nZXRfdGV4dF9h
ZnRlcl9vZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZX1dPUkRfU1RBUlQsIDI4LCAiYmVjYXVzZSAi
LCAyOSwgMzcpOworCisgICAgdGVzdEdldFRleHRGdW5jdGlvbihwYXJhZ3JhcGgyLCBhdGtfdGV4
dF9nZXRfdGV4dF9iZWZvcmVfb2Zmc2V0LCBBVEtfVEVYVF9CT1VOREFSWV9XT1JEX0VORCwgMjgs
ICIgd3JhcHBlZCIsIDIwLCAyOCk7CisgICAgdGVzdEdldFRleHRGdW5jdGlvbihwYXJhZ3JhcGgy
LCBhdGtfdGV4dF9nZXRfdGV4dF9hdF9vZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZX1dPUkRfRU5E
LCAyOCwgIlxuYmVjYXVzZSIsIDI4LCAzNik7CisgICAgdGVzdEdldFRleHRGdW5jdGlvbihwYXJh
Z3JhcGgyLCBhdGtfdGV4dF9nZXRfdGV4dF9hZnRlcl9vZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZ
X1dPUkRfRU5ELCAyOCwgIiBvZiIsIDM2LCAzOSk7CisKKyAgICB0ZXN0R2V0VGV4dEZ1bmN0aW9u
KHBhcmFncmFwaDIsIGF0a190ZXh0X2dldF90ZXh0X2JlZm9yZV9vZmZzZXQsIEFUS19URVhUX0JP
VU5EQVJZX0xJTkVfU1RBUlQsIDMwLCAiVGhpcyBpcyBhbm90aGVyIGxpbmUgd3JhcHBlZFxuIiwg
MCwgMjkpOworICAgIHRlc3RHZXRUZXh0RnVuY3Rpb24ocGFyYWdyYXBoMiwgYXRrX3RleHRfZ2V0
X3RleHRfYXRfb2Zmc2V0LCBBVEtfVEVYVF9CT1VOREFSWV9MSU5FX1NUQVJULCAzMCwgImJlY2F1
c2Ugb2Ygb25lIGZvcmNlZFxuIiwgMjksIDUxKTsKKyAgICB0ZXN0R2V0VGV4dEZ1bmN0aW9uKHBh
cmFncmFwaDIsIGF0a190ZXh0X2dldF90ZXh0X2FmdGVyX29mZnNldCwgQVRLX1RFWFRfQk9VTkRB
UllfTElORV9TVEFSVCwgMzAsICJsaW5lIGJyZWFrIGluIHRoZSBtaWRkbGUuIiwgNTEsIDc2KTsK
KworICAgIC8vIFRoZSBmb2xsb3dpbmcgbGluZSB3b24ndCB3b3JrIGF0IHRoZSBtb21lbnQgYmVj
YXVzZSBvZiBhIGJ1ZyBpbiBHYWlsVGV4dFV0aWwuCisgICAgLy8gc2VlIGh0dHBzOi8vYnVnemls
bGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDM1NTQKKyAgICAvLyB0ZXN0R2V0VGV4dEZ1
bmN0aW9uKHBhcmFncmFwaDIsIGF0a190ZXh0X2dldF90ZXh0X2JlZm9yZV9vZmZzZXQsIEFUS19U
RVhUX0JPVU5EQVJZX0xJTkVfRU5ELCAzMCwgIlRoaXMgaXMgYW5vdGhlciBsaW5lIHdyYXBwZWQi
LCAwLCAyOCk7CisgICAgdGVzdEdldFRleHRGdW5jdGlvbihwYXJhZ3JhcGgyLCBhdGtfdGV4dF9n
ZXRfdGV4dF9hdF9vZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZX0xJTkVfRU5ELCAzMCwgIlxuYmVj
YXVzZSBvZiBvbmUgZm9yY2VkIiwgMjgsIDUwKTsKKyAgICB0ZXN0R2V0VGV4dEZ1bmN0aW9uKHBh
cmFncmFwaDIsIGF0a190ZXh0X2dldF90ZXh0X2FmdGVyX29mZnNldCwgQVRLX1RFWFRfQk9VTkRB
UllfTElORV9FTkQsIDMwLCAiXG5saW5lIGJyZWFrIGluIHRoZSBtaWRkbGUuIiwgNTAsIDc2KTsK
KworICAgIGdfb2JqZWN0X3VucmVmKHBhcmFncmFwaDIpOworCisgICAgZ19vYmplY3RfdW5yZWYo
d2ViVmlldyk7Cit9CisKIHN0YXRpYyB2b2lkIHRlc3RXZWJraXRBdGtHZXRUZXh0SW5QYXJhZ3Jh
cGhBbmRCb2R5U2ltcGxlKCkKIHsKICAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0gV0VCS0lU
X1dFQl9WSUVXKHdlYmtpdF93ZWJfdmlld19uZXcoKSk7CkBAIC0yMDExLDYgKzIwOTcsNyBAQCBp
bnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgZ190ZXN0X2FkZF9mdW5jKCIvd2Vi
a2l0L2F0ay9nZXRUZXh0QXRPZmZzZXRUZXh0SW5wdXQiLCB0ZXN0V2Via2l0QXRrR2V0VGV4dEF0
T2Zmc2V0VGV4dElucHV0KTsKICAgICBnX3Rlc3RfYWRkX2Z1bmMoIi93ZWJraXQvYXRrL2dldFRl
eHRBdE9mZnNldFdpdGhQcmVmb3JtYXR0ZWRUZXh0IiwgdGVzdFdlYmtpdEF0a0dldFRleHRBdE9m
ZnNldFdpdGhQcmVmb3JtYXR0ZWRUZXh0KTsKICAgICBnX3Rlc3RfYWRkX2Z1bmMoIi93ZWJraXQv
YXRrL2dldFRleHRBdE9mZnNldFdpdGhTcGVjaWFsQ2hhcmFjdGVycyIsIHRlc3RXZWJraXRBdGtH
ZXRUZXh0QXRPZmZzZXRXaXRoU3BlY2lhbENoYXJhY3RlcnMpOworICAgIGdfdGVzdF9hZGRfZnVu
YygiL3dlYmtpdC9hdGsvZ2V0VGV4dEF0T2Zmc2V0V2l0aFdyYXBwZWRMaW5lcyIsIHRlc3RXZWJr
aXRBdGtHZXRUZXh0QXRPZmZzZXRXaXRoV3JhcHBlZExpbmVzKTsKICAgICBnX3Rlc3RfYWRkX2Z1
bmMoIi93ZWJraXQvYXRrL2dldFRleHRJblBhcmFncmFwaEFuZEJvZHlTaW1wbGUiLCB0ZXN0V2Vi
a2l0QXRrR2V0VGV4dEluUGFyYWdyYXBoQW5kQm9keVNpbXBsZSk7CiAgICAgZ190ZXN0X2FkZF9m
dW5jKCIvd2Via2l0L2F0ay9nZXRUZXh0SW5QYXJhZ3JhcGhBbmRCb2R5TW9kZXJhdGUiLCB0ZXN0
V2Via2l0QXRrR2V0VGV4dEluUGFyYWdyYXBoQW5kQm9keU1vZGVyYXRlKTsKICAgICBnX3Rlc3Rf
YWRkX2Z1bmMoIi93ZWJraXQvYXRrL2dldFRleHRJblRhYmxlIiwgdGVzdFdlYmtpdEF0a0dldFRl
eHRJblRhYmxlKTsKLS0gCjEuNy4xMC40Cgo=
</data>
<flag name="review"
          id="227664"
          type_id="1"
          status="+"
          setter="cgarcia"
    />
          </attachment>
      

    </bug>

</bugzilla>