<?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>132134</bug_id>
          
          <creation_ts>2014-04-24 10:16:55 -0700</creation_ts>
          <short_desc>[GTK] TestWebKitAccessibility unit test is flaky.</short_desc>
          <delta_ts>2017-03-11 11:00:55 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=127352</see_also>
          <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="Carlos Alberto Lopez Perez">clopez</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>jdiggs</cc>
    
    <cc>mario</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>svillar</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1003699</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2014-04-24 10:16:55 -0700</bug_when>
    <thetext>The TestWebKitAccessibility unit test is flaky.

The test usually (not ever) works if you run it directly like:

Tools/Scripts/run-gtk-tests --release WebKitBuild/Release/bin/TestWebKitAPI/WebKit2Gtk/TestWebKitAccessibility

The failure seems easier to reproduce if you run the complete test suite like:

Tools/Scripts/run-gtk-tests --release

Probably this is caused by some race condition.

A related bug is https://bugs.webkit.org/show_bug.cgi?id=100408

Some relevant errors may be:

TEST: ./Tools/gtk/../../WebKitBuild/Release/bin/TestWebKitAPI/WebKit2Gtk/TestWebKitAccessibility... (pid=18529)

  /webkit2/WebKitAccessibility/atspi-basic-hierarchy:                  **

ERROR:../../Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitAccessibility.cpp:154:void testAtspiBasicHierarchy(WebViewTest*, gconstpointer): assertion failed: (ATSPI_IS_ACCESSIBLE(testServerApp.get()))

FAIL

GTester: last random seed: R02S13299414e127a0424403f994eb6d6bfb

(pid=18582)

Error receiving IPC message on socket -1 in process 18581: Bad file descriptor

FAIL: ./Tools/gtk/../../WebKitBuild/Release/bin/TestWebKitAPI/WebKit2Gtk/TestWebKitAccessibility


Complete log: http://build.webkit.org/builders/GTK%20Linux%2064-bit%20Release/builds/46795/steps/API%20tests/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003787</commentid>
    <comment_count>1</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2014-04-24 14:57:05 -0700</bug_when>
    <thetext>This test has been marked to be skipped because of its flaky behaviour on r167769 &lt;http://trac.webkit.org/changeset/167769&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003994</commentid>
    <comment_count>2</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2014-04-25 00:48:14 -0700</bug_when>
    <thetext>Thanks for reporting this, Carlos. I&apos;ll try to take a look to this during the next week, although I suspect is going to be a tricky one to reproduce and fix without direct access to the bots, since part of the problem could be due to the specific environment (AT-SPI2, D-Bus...).

Still I will try, but next week, this one is being too surreal for me already :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1004000</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-04-25 00:56:04 -0700</bug_when>
    <thetext>I wonder why we have a unit test for accessibility since we don&apos;t expose any API for accessibility. Shouldn&apos;t it be tested with layout tests instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1004010</commentid>
    <comment_count>4</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2014-04-25 01:25:17 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; I wonder why we have a unit test for accessibility since we don&apos;t expose any API for accessibility. Shouldn&apos;t it be tested with layout tests instead?

Accessibility is a tricky beast :)

You are right in what that WebKit2GTK+ does not expose explicitly any API related to accessibility as in other APIs exposed in the UIProcess (in UIProcess/API/gtk). 

But that does not mean there is no API exposed at all. What happens here is that most of the accessibility is exposed directly from WebCore, by implementing different ATK interfaces (there you have the exposed API). This, in WebKit2, means that the accessibility ATK-based API is actually exposed to the world right from the WebProcess, not the UI Process.

However, there&apos;s still something we need to do from the UIProcess related to WebKit2, so ATs can see the whole ATK hierarchy exposed in the Web Process as &quot;connected&quot; to the very tiny ATK hierarchy present in the UIProcess (basically, an  AtkObject associated to the WebView widget):

We need to connect both hierarchies using AtkSocket and AtkPlug so ATs, which &quot;speak&quot; AT-SPI only -not ATK-, they will see everything as a single hierarchy, starting up at the level of the AtkObject for the WebView and going all the way down into the domain of WebProcess, where the &quot;real accessibility stuff&quot; lives.

So, this is what this TestWebKitAccessibility unit test checks: that such a connection between those two worlds is not broken. That&apos;s precisely why it uses AT-SPI instead of ATK to navigate top - down, so it can check that it can find the relevant AT-SPI objects wrapping ATK objects both in the UI Process and the Web Process.

Layout tests are not enough to test this because WebKitTestRunner uses the InjectedBundle to get &quot;direct access&quot; to the WebProcess for testing purposes. So, having an accessibility layout test passing using WKTR does not guarantee that this connection using AtkSocket/AtkPlug is not broken.

You can check this post of mine from last year where I tried to explain the whole thing all together, since it can be quite confusing: http://mariospr.org/2013/02/03/accessibility-in-webkitgtk/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1004015</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-04-25 01:51:55 -0700</bug_when>
    <thetext>Understood, thanks for the detailed explanation :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1004029</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2014-04-25 03:18:58 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Thanks for reporting this, Carlos. I&apos;ll try to take a look to this during the next week, although I suspect is going to be a tricky one to reproduce and fix without direct access to the bots, since part of the problem could be due to the specific environment (AT-SPI2, D-Bus...).
&gt; 

For the record: I&apos;m able to reproduce the reported behaviour on my laptop. But is also true that both machines (my laptop and the buildbot) are running Debian testing, so it could be also some behaviour specific to Debian.

If you are not able to reproduce it, then ping me on the IRC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012388</commentid>
    <comment_count>7</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2014-05-29 03:05:58 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #2)
&gt; &gt; Thanks for reporting this, Carlos. I&apos;ll try to take a look to this during the next week, although I suspect is going to be a tricky one to reproduce and fix without direct access to the bots, since part of the problem could be due to the specific environment (AT-SPI2, D-Bus...).
&gt; &gt; 
&gt; 
&gt; For the record: I&apos;m able to reproduce the reported behaviour on my laptop. But is also true that both machines (my laptop and the buildbot) are running Debian testing, so it could be also some behaviour specific to Debian.
&gt; 
&gt; If you are not able to reproduce it, then ping me on the IRC.

Hi Carlos, I was able to reproduce this test failing (only when running the full test suite, though), but the error I got is different:

   TEST: ./Tools/gtk/../../WebKitBuild/Release/bin/TestWebKitAPI/WebKit2Gtk/TestWebKitAccessibility... (pid=32387)

   ** (./Tools/gtk/../../WebKitBuild/Release/bin/TestWebKitAPI/WebKit2Gtk/TestWebKitAccessibility:32387): ERROR **: AT-SPI: COuldn&apos;t connect to accessibility bus. Is at-spi-bus-launcher running?
   GTester: last random seed: R02S135fb01e6858c1cc208988c3589f63d1
   (pid=32430)
   FAIL: ./Tools/gtk/../../WebKitBuild/Release/bin/TestWebKitAPI/WebKit2Gtk/TestWebKitAccessibility


So, not sure I&apos;m seeing the same issue than you. Could you please confirm that what you can reproduce locally matches this bug&apos;s description and not this other issue?

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020233</commentid>
    <comment_count>8</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2014-07-03 05:30:10 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; So, not sure I&apos;m seeing the same issue than you. Could you please confirm that what you can reproduce locally matches this bug&apos;s description and not this other issue?
&gt; 
&gt; Thanks!

Ping?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021080</commentid>
    <comment_count>9</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2014-07-08 07:50:23 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; (In reply to comment #2)
&gt; &gt; &gt; Thanks for reporting this, Carlos. I&apos;ll try to take a look to this during the next week, although I suspect is going to be a tricky one to reproduce and fix without direct access to the bots, since part of the problem could be due to the specific environment (AT-SPI2, D-Bus...).
&gt; &gt; &gt; 
&gt; &gt; 
&gt; &gt; For the record: I&apos;m able to reproduce the reported behaviour on my laptop. But is also true that both machines (my laptop and the buildbot) are running Debian testing, so it could be also some behaviour specific to Debian.
&gt; &gt; 
&gt; &gt; If you are not able to reproduce it, then ping me on the IRC.
&gt; 
&gt; Hi Carlos, I was able to reproduce this test failing (only when running the full test suite, though), but the error I got is different:
&gt; 
&gt;    TEST: ./Tools/gtk/../../WebKitBuild/Release/bin/TestWebKitAPI/WebKit2Gtk/TestWebKitAccessibility... (pid=32387)
&gt; 
&gt;    ** (./Tools/gtk/../../WebKitBuild/Release/bin/TestWebKitAPI/WebKit2Gtk/TestWebKitAccessibility:32387): ERROR **: AT-SPI: COuldn&apos;t connect to accessibility bus. Is at-spi-bus-launcher running?
&gt;    GTester: last random seed: R02S135fb01e6858c1cc208988c3589f63d1
&gt;    (pid=32430)
&gt;    FAIL: ./Tools/gtk/../../WebKitBuild/Release/bin/TestWebKitAPI/WebKit2Gtk/TestWebKitAccessibility
&gt; 
&gt; 
&gt; So, not sure I&apos;m seeing the same issue than you. Could you please confirm that what you can reproduce locally matches this bug&apos;s description and not this other issue?
&gt; 
&gt; Thanks!

I have retested this on r170881 (after un-skipping this test on Tools/Scripts/run-gtk-tests)

I can&apos;t make the test fail by running it alone, but if I run the whole test suite the test fails.


The failure I get is:

TEST: ./Tools/gtk/../../WebKitBuild/Release/bin/TestWebKitAPI/WebKit2Gtk/TestWebKitAccessibility... (pid=2165)

** (./Tools/gtk/../../WebKitBuild/Release/bin/TestWebKitAPI/WebKit2Gtk/TestWebKitAccessibility:2165): ERROR **: AT-SPI: COuldn&apos;t connect to accessibility bus. Is at-spi-bus-launcher running?
GTester: last random seed: R02Sa59b6626786d9147f3d265f28c5b4d50
(pid=2198)
Error receiving IPC message on socket -1 in process 2196: Bad file descriptor
FAIL: ./Tools/gtk/../../WebKitBuild/Release/bin/TestWebKitAPI/WebKit2Gtk/TestWebKitAccessibility


So, probably there is now a different problem because the error is different.

But what is clear to me is that something is wrong with this test. We can&apos;t unskip it until it runs reliable (when running the whole test suite)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021513</commentid>
    <comment_count>10</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2014-07-09 18:05:09 -0700</bug_when>
    <thetext>Is it possible that the problem is being caused by some other issue, and the TestWebKitAccessibility test is merely an unfortunate casualty?

As an experiment, I skipped not just atspi-basic-hierarchy, but the full suite of accessibility tests. Then I ran the (remaining) complete test suite. I&apos;m seeing both accessibility and non-accessibility dbus errors for non-accessibility tests:


TEST: ./Tools/gtk/../../WebKitBuild/Release/bin/TestWebKitAPI/WebKit2Gtk/TestDOMNode... (pid=31957)

** (WebKitWebProcess:31969): WARNING **: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnknown: The name org.a11y.Bus was not provided by any .service files
g_dbus_connection_real_closed: Remote peer vanished with error: Underlying GIOStream returned 0 bytes on an async read (g-io-error-quark, 0). Exiting.

PASS: ./Tools/gtk/../../WebKitBuild/Release/bin/TestWebKitAPI/WebKit2Gtk/TestDOMNode

------------

TEST: ./Tools/gtk/../../WebKitBuild/Release/bin/TestWebKitAPI/WebKit2Gtk/TestFrame... (pid=32047)

** (WebKitWebProcess:32059): WARNING **: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnknown: The name org.a11y.Bus was not provided by any .service files

PASS: ./Tools/gtk/../../WebKitBuild/Release/bin/TestWebKitAPI/WebKit2Gtk/TestFrame

------------

TEST: ./Tools/gtk/../../WebKitBuild/Release/bin/TestWebKitAPI/WebKit2Gtk/TestLoaderClient... (pid=32140)

g_dbus_connection_real_closed: Remote peer vanished with error: Underlying GIOStream returned 0 bytes on an async read (g-io-error-quark, 0). Exiting.

PASS: ./Tools/gtk/../../WebKitBuild/Release/bin/TestWebKitAPI/WebKit2Gtk/TestLoaderClient

------------

TEST: ./Tools/gtk/../../WebKitBuild/Release/bin/TestWebKitAPI/WebKit2Gtk/TestDOMXPathNSResolver... (pid=32365)

** (WebKitWebProcess:32377): WARNING **: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnknown: The name org.a11y.Bus was not provided by any .service files

g_dbus_connection_real_closed: Remote peer vanished with error: Underlying GIOStream returned 0 bytes on an async read (g-io-error-quark, 0). Exiting.

------------

TEST: ./Tools/gtk/../../WebKitBuild/Release/bin/TestWebKitAPI/WebKit2Gtk/TestDOMNodeFilter... (pid=32725)

** (WebKitWebProcess:32737): WARNING **: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnknown: The name org.a11y.Bus was not provided by any .service files

g_dbus_connection_real_closed: Remote peer vanished with error: Underlying GIOStream returned 0 bytes on an async read (g-io-error-quark, 0). Exiting.

PASS: ./Tools/gtk/../../WebKitBuild/Release/bin/TestWebKitAPI/WebKit2Gtk/TestDOMNodeFilter

------------

Are you guys also seeing these errors for the non-accessibility tests? If something (the harness, some other test, whatever) is mucking with dbus and/or the at-spi2 registry, it might explain why the at-spi2 test doesn&apos;t fail reliably when run alone but does when run as part of the full suite.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021593</commentid>
    <comment_count>11</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2014-07-10 04:00:59 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Are you guys also seeing these errors for the non-accessibility tests? If something (the harness, some other test, whatever) is mucking with dbus and/or the at-spi2 registry, it might explain why the at-spi2 test doesn&apos;t fail reliably when run alone but does when run as part of the full suite.

I also see this kind of warnings on several of the other tests when running the test suite. However the other test pass. Check the output you pasted: all the tests &quot;PASS&quot;.

So I&apos;m not sure if this dbus errors are relevant to this bug or is just noise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021746</commentid>
    <comment_count>12</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2014-07-10 17:33:00 -0700</bug_when>
    <thetext>Quick and dirty &quot;fix&quot; below. At least in my environment, what seems to be happening is:

1. run-gtk-tests sets up the environment, including starting
   up the at-spi-bus-launcher 
2. If the first and/or only test is TestWebKitAccessibility, it
   will work as expected, even when unskipped.
3. For every subsequent test, main() comes along and unsets the
   DBUS_SESSION_BUS_ADDRESS environment var. Nothing comes along
   and resets it. As a result, for all but the first test, the
   harness cannot find the session bus, cannot connect to the
   at-spi2 registry, and anything that depends upon that connection
   to pass (like the accessibility tests) subsequently fails.

You don&apos;t even need to run a11y tests for this to happen. Just use run-gtk-tests to run the same test twice in a row. For instance:

Tools/Scripts/run-gtk-tests --release WebKitBuild/Release/bin/TestWebKitAPI/WebKit2Gtk/TestDOMNode WebKitBuild/Release/bin/TestWebKitAPI/WebKit2Gtk/TestDOMNode

In between the two runs, you&apos;ll get an error:

** (WebKitWebProcess:7471): WARNING **: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnknown: The name org.a11y.Bus was not provided by any .service files

There&apos;s probably some good reason for unsetting DBUS_SESSION_BUS_ADDRESS, but since I don&apos;t know what it is, I&apos;m not in the best position to provide an alternative solution. And if there&apos;s not a good reason, could we just stop unsetting it so that we can unskip this accessibility test? :)

diff --git a/Tools/Scripts/run-gtk-tests b/Tools/Scripts/run-gtk-tests
index d530f9d..eececf5 100755
--- a/Tools/Scripts/run-gtk-tests
+++ b/Tools/Scripts/run-gtk-tests
@@ -63,7 +63,6 @@ class TestRunner:
     SKIPPED = [
         SkippedTest(&quot;WebKit2Gtk/TestUIClient&quot;, &quot;/webkit2/WebKitWebView/mouse-target&quot;, &quot;Test times out after r150890&quot;, 117689),
         SkippedTest(&quot;WebKit2Gtk/TestContextMenu&quot;, SkippedTest.ENTIRE_SUITE, &quot;Test times out after r150890&quot;, 117689),
-        SkippedTest(&quot;WebKit2APITests/TestWebKitAccessibility&quot;, &quot;/webkit2/WebKitAccessibility/atspi-basic-hierarchy&quot;, &quot;Test is flaky&quot;
         SkippedTest(&quot;WebKit2Gtk/TestWebKitWebView&quot;, &quot;/webkit2/WebKitWebView/snapshot&quot;, &quot;Test fails&quot;, 120404),
         SkippedTest(&quot;WebKit2Gtk/TestWebKitWebView&quot;, &quot;/webkit2/WebKitWebView/page-visibility&quot;, &quot;Test fails or times out&quot;, 131731),
         SkippedTest(&quot;WebKit2Gtk/TestCookieManager&quot;, &quot;/webkit2/WebKitCookieManager/persistent-storage&quot;, &quot;Test is flaky&quot;, 134580),
diff --git a/Tools/TestWebKitAPI/gtk/WebKit2Gtk/TestMain.cpp b/Tools/TestWebKitAPI/gtk/WebKit2Gtk/TestMain.cpp
index 8043554..7f1aa63 100644
--- a/Tools/TestWebKitAPI/gtk/WebKit2Gtk/TestMain.cpp
+++ b/Tools/TestWebKitAPI/gtk/WebKit2Gtk/TestMain.cpp
@@ -53,7 +53,6 @@ static void removeNonEmptyDirectory(const char* directoryPath)
 
 int main(int argc, char** argv)
 {
-    g_unsetenv(&quot;DBUS_SESSION_BUS_ADDRESS&quot;);
     gtk_test_init(&amp;argc, &amp;argv, 0);
     g_setenv(&quot;WEBKIT_EXEC_PATH&quot;, WEBKIT_EXEC_PATH, FALSE);
     g_setenv(&quot;WEBKIT_INJECTED_BUNDLE_PATH&quot;, WEBKIT_INJECTED_BUNDLE_PATH, FALSE);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021820</commentid>
    <comment_count>13</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-07-11 04:29:27 -0700</bug_when>
    <thetext>Is the a11y bus daemon required for all tests or only for TestWebKitAccessibility? If it&apos;s only needed by that one, it should probably spawned by the test itself (like all other tests that use their own bus daemon), instead of the script.  We really need to unset the DBUS_SESSION_BUS_ADDRESS, see https://bugs.webkit.org/show_bug.cgi?id=118427


    * UIProcess/API/gtk/tests/TestMain.cpp:
    (main): Unset DBUS_SESSION_BUS_ADDRESS environment variable to
    make sure that the GLib bus singleton is initialized by the
    private DBus session bus created by the tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061047</commentid>
    <comment_count>14</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-01-13 20:07:11 -0800</bug_when>
    <thetext>*** Bug 140413 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061048</commentid>
    <comment_count>15</comment_count>
      <attachid>244572</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-01-13 20:12:30 -0800</bug_when>
    <thetext>Created attachment 244572
broken patch

Here I implement Carlos&apos;s suggestion, but the test is still broken when running with all other tests, and passes even without accessibility daemons(!) (comment out the call to startAccessibilityDaemons()) when run alone. Hopefully I&apos;ve done something wrong. I&apos;m just uploading the patch because it will save time for anyone who tries to look at this in the future.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244572</attachid>
            <date>2015-01-13 20:12:30 -0800</date>
            <delta_ts>2015-01-14 08:41:38 -0800</delta_ts>
            <desc>broken patch</desc>
            <filename>0001-Trying-to-fix-TestWebKitAccessibility.patch</filename>
            <type>text/plain</type>
            <size>11944</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">RnJvbSBlMjg5MWNmOWMwM2YwN2NjYmY2ZTMxZTY4Zjc1OGI2NDc0NWQ0ZmI3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNaWNoYWVsIENhdGFuemFybyA8bWNhdGFuemFyb0BpZ2FsaWEu
Y29tPgpEYXRlOiBUdWUsIDEzIEphbiAyMDE1IDIxOjU3OjQzIC0wNjAwClN1YmplY3Q6IFtQQVRD
SF0gVHJ5aW5nIHRvIGZpeCBUZXN0V2ViS2l0QWNjZXNzaWJpbGl0eQoKLS0tCiBUb29scy9TY3Jp
cHRzL3J1bi1ndGstdGVzdHMgICAgICAgICAgICAgICAgICAgICAgICB8ICA1NCAtLS0tLS0tLS0t
CiAuLi4vVGVzdHMvV2ViS2l0Mkd0ay9UZXN0V2ViS2l0QWNjZXNzaWJpbGl0eS5jcHAgICB8IDEw
OSArKysrKysrKysrKysrKysrKy0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgOTIgaW5zZXJ0aW9ucygr
KSwgNzEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9ydW4tZ3RrLXRl
c3RzIGIvVG9vbHMvU2NyaXB0cy9ydW4tZ3RrLXRlc3RzCmluZGV4IGU2ZjVlYTQuLmI2MGM0MDgg
MTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvcnVuLWd0ay10ZXN0cworKysgYi9Ub29scy9TY3Jp
cHRzL3J1bi1ndGstdGVzdHMKQEAgLTYzLDcgKzYzLDYgQEAgY2xhc3MgVGVzdFJ1bm5lcjoKICAg
ICBTS0lQUEVEID0gWwogICAgICAgICBTa2lwcGVkVGVzdCgiV2ViS2l0Mkd0ay9UZXN0VUlDbGll
bnQiLCAiL3dlYmtpdDIvV2ViS2l0V2ViVmlldy9tb3VzZS10YXJnZXQiLCAiVGVzdCB0aW1lcyBv
dXQgYWZ0ZXIgcjE1MDg5MCIsIDExNzY4OSksCiAgICAgICAgIFNraXBwZWRUZXN0KCJXZWJLaXQy
R3RrL1Rlc3RDb250ZXh0TWVudSIsIFNraXBwZWRUZXN0LkVOVElSRV9TVUlURSwgIlRlc3QgdGlt
ZXMgb3V0IGFmdGVyIHIxNTA4OTAiLCAxMTc2ODkpLAotICAgICAgICBTa2lwcGVkVGVzdCgiV2Vi
S2l0MkFQSVRlc3RzL1Rlc3RXZWJLaXRBY2Nlc3NpYmlsaXR5IiwgIi93ZWJraXQyL1dlYktpdEFj
Y2Vzc2liaWxpdHkvYXRzcGktYmFzaWMtaGllcmFyY2h5IiwgIlRlc3QgaXMgZmxha3kiLCAxMzIx
MzQpLAogICAgICAgICBTa2lwcGVkVGVzdCgiV2ViS2l0Mkd0ay9UZXN0V2ViS2l0V2ViVmlldyIs
ICIvd2Via2l0Mi9XZWJLaXRXZWJWaWV3L3NuYXBzaG90IiwgIlRlc3QgZmFpbHMiLCAxMjA0MDQp
LAogICAgICAgICBTa2lwcGVkVGVzdCgiV2ViS2l0Mkd0ay9UZXN0V2ViS2l0V2ViVmlldyIsICIv
d2Via2l0Mi9XZWJLaXRXZWJWaWV3L3BhZ2UtdmlzaWJpbGl0eSIsICJUZXN0IGZhaWxzIG9yIHRp
bWVzIG91dCIsIDEzMTczMSksCiAgICAgICAgIFNraXBwZWRUZXN0KCJXZWJLaXQyR3RrL1Rlc3RD
b29raWVNYW5hZ2VyIiwgIi93ZWJraXQyL1dlYktpdENvb2tpZU1hbmFnZXIvcGVyc2lzdGVudC1z
dG9yYWdlIiwgIlRlc3QgaXMgZmxha3kiLCAxMzQ1ODApLApAQCAtOTYsMTAgKzk1LDYgQEAgY2xh
c3MgVGVzdFJ1bm5lcjoKICAgICAgICAgaWYgbm90IHN5cy5zdGRvdXQuaXNhdHR5KCk6CiAgICAg
ICAgICAgICBzZWxmLl90dHlfY29sb3JzX3BhdHRlcm4gPSByZS5jb21waWxlKCJcMDMzXFtbMC05
O10qbSIpCiAKLSAgICAgICAgIyBUaGVzZSBTUEkgZGFlbW9ucyBuZWVkIHRvIGJlIGFjdGl2ZSBm
b3IgdGhlIGFjY2Vzc2liaWxpdHkgdGVzdHMgdG8gd29yay4KLSAgICAgICAgc2VsZi5fc3BpX3Jl
Z2lzdHJ5ZCA9IE5vbmUKLSAgICAgICAgc2VsZi5fc3BpX2J1c19sYXVuY2hlciA9IE5vbmUKLQog
ICAgIGRlZiBfdGVzdF9wcm9ncmFtc19iYXNlX2RpcihzZWxmKToKICAgICAgICAgcmV0dXJuIG9z
LnBhdGguam9pbihzZWxmLl9wcm9ncmFtc19wYXRoLCAiVGVzdFdlYktpdEFQSSIpCiAKQEAgLTEz
Miw0NiArMTI3LDYgQEAgY2xhc3MgVGVzdFJ1bm5lcjoKICAgICAgICAgICAgIHRlc3RzLmV4dGVu
ZChzZWxmLl9nZXRfdGVzdHNfZnJvbV9kaXIoYWJzb2x1dGVfdGVzdF9kaXIpKQogICAgICAgICBy
ZXR1cm4gdGVzdHMKIAotICAgIGRlZiBfbG9va3VwX2F0c3BpMl9iaW5hcnkoc2VsZiwgZmlsZW5h
bWUpOgotICAgICAgICBleGVjX3ByZWZpeCA9IGNvbW1vbi5wa2dfY29uZmlnX2ZpbGVfdmFyaWFi
bGUoJ2F0c3BpLTInLCAnZXhlY19wcmVmaXgnKQotICAgICAgICBpZiBub3QgZXhlY19wcmVmaXg6
Ci0gICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICBmb3IgcGF0aCBpbiBbJ2xpYmV4ZWMn
LCAnbGliL2F0LXNwaTItY29yZScsICdsaWIzMi9hdC1zcGkyLWNvcmUnLCAnbGliNjQvYXQtc3Bp
Mi1jb3JlJ106Ci0gICAgICAgICAgICBmaWxlcGF0aCA9IG9zLnBhdGguam9pbihleGVjX3ByZWZp
eCwgcGF0aCwgZmlsZW5hbWUpCi0gICAgICAgICAgICBpZiBvcy5wYXRoLmlzZmlsZShmaWxlcGF0
aCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGZpbGVwYXRoCi0KLSAgICAgICAgcmV0dXJuIE5v
bmUKLQotICAgIGRlZiBfc3RhcnRfYWNjZXNzaWJpbGl0eV9kYWVtb25zKHNlbGYpOgotICAgICAg
ICBzcGlfYnVzX2xhdW5jaGVyX3BhdGggPSBzZWxmLl9sb29rdXBfYXRzcGkyX2JpbmFyeSgnYXQt
c3BpLWJ1cy1sYXVuY2hlcicpCi0gICAgICAgIHNwaV9yZWdpc3RyeWRfcGF0aCA9IHNlbGYuX2xv
b2t1cF9hdHNwaTJfYmluYXJ5KCdhdC1zcGkyLXJlZ2lzdHJ5ZCcpCi0gICAgICAgIGlmIG5vdCBz
cGlfYnVzX2xhdW5jaGVyX3BhdGggb3Igbm90IHNwaV9yZWdpc3RyeWRfcGF0aDoKLSAgICAgICAg
ICAgIHJldHVybiBGYWxzZQotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX3NwaV9i
dXNfbGF1bmNoZXIgPSBzdWJwcm9jZXNzLlBvcGVuKFtzcGlfYnVzX2xhdW5jaGVyX3BhdGhdLCBl
bnY9c2VsZi5fdGVzdF9lbnYpCi0gICAgICAgIGV4Y2VwdDoKLSAgICAgICAgICAgIHN5cy5zdGRl
cnIud3JpdGUoIkZhaWxlZCB0byBsYXVuY2ggdGhlIGFjY2Vzc2liaWxpdHkgYnVzXG4iKQotICAg
ICAgICAgICAgc3lzLnN0ZGVyci5mbHVzaCgpCi0gICAgICAgICAgICByZXR1cm4gRmFsc2UKLQot
ICAgICAgICAjIFdlIG5lZWQgdG8gd2FpdCB1bnRpbCB0aGUgU1BJIGJ1cyBpcyBsYXVuY2hlZCBi
ZWZvcmUgdHJ5aW5nIHRvIHN0YXJ0IHRoZSBTUEkKLSAgICAgICAgIyByZWdpc3RyeSwgc28gd2Ug
c3BpbiBhIG1haW4gbG9vcCB1bnRpbCB0aGUgYnVzIG5hbWUgYXBwZWFycyBvbiBEQnVzLgotICAg
ICAgICBsb29wID0gR0xpYi5NYWluTG9vcCgpCi0gICAgICAgIEdpby5idXNfd2F0Y2hfbmFtZShH
aW8uQnVzVHlwZS5TRVNTSU9OLCAnb3JnLmExMXkuQnVzJywgR2lvLkJ1c05hbWVXYXRjaGVyRmxh
Z3MuTk9ORSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhbWJkYSAqYXJnczogbG9vcC5x
dWl0KCksIE5vbmUpCi0gICAgICAgIGxvb3AucnVuKCkKLQotICAgICAgICB0cnk6Ci0gICAgICAg
ICAgICBzZWxmLl9zcGlfcmVnaXN0cnlkID0gc3VicHJvY2Vzcy5Qb3Blbihbc3BpX3JlZ2lzdHJ5
ZF9wYXRoXSwgZW52PXNlbGYuX3Rlc3RfZW52KQotICAgICAgICBleGNlcHQ6Ci0gICAgICAgICAg
ICBzeXMuc3RkZXJyLndyaXRlKCJGYWlsZWQgdG8gbGF1bmNoIHRoZSBhY2Nlc3NpYmlsaXR5IHJl
Z2lzdHJ5XG4iKQotICAgICAgICAgICAgc3lzLnN0ZGVyci5mbHVzaCgpCi0gICAgICAgICAgICBy
ZXR1cm4gRmFsc2UKLQotICAgICAgICByZXR1cm4gVHJ1ZQotCiAgICAgZGVmIF9ydW5feHZmYihz
ZWxmKToKICAgICAgICAgc2VsZi5feHZmYiA9IE5vbmUKICAgICAgICAgaWYgbm90IHNlbGYuX29w
dGlvbnMudXNlX3h2ZmI6CkBAIC0xOTgsMTggKzE1Myw5IEBAIGNsYXNzIFRlc3RSdW5uZXI6CiAK
ICAgICAgICAgaWYgbm90IHNlbGYuX3J1bl94dmZiKCk6CiAgICAgICAgICAgICByZXR1cm4gRmFs
c2UKLQotICAgICAgICAjIElmIHdlIGNhbm5vdCBzdGFydCB0aGUgYWNjZXNzaWJpbGl0eSBkYWVt
b25zLCB3ZSBjYW4ganVzdCBza2lwIHRoZSBhY2Nlc3NpYmlsaXR5IHRlc3RzLgotICAgICAgICBp
ZiBub3Qgc2VsZi5fc3RhcnRfYWNjZXNzaWJpbGl0eV9kYWVtb25zKCk6Ci0gICAgICAgICAgICBw
cmludCAiQ291bGQgbm90IHN0YXJ0IGFjY2Vzc2liaWxpdHkgYnVzLCBzbyBkaXNhYmxpbmcgVGVz
dFdlYktpdEFjY2Vzc2liaWxpdHkiCi0gICAgICAgICAgICBzZWxmLl9kaXNhYmxlZF90ZXN0cy5h
cHBlbmQoIldlYktpdDJBUElUZXN0cy9UZXN0V2ViS2l0QWNjZXNzaWJpbGl0eSIpCiAgICAgICAg
IHJldHVybiBUcnVlCiAKICAgICBkZWYgX3RlYXJfZG93bl90ZXN0aW5nX2Vudmlyb25tZW50KHNl
bGYpOgotICAgICAgICBpZiBzZWxmLl9zcGlfcmVnaXN0cnlkOgotICAgICAgICAgICAgc2VsZi5f
c3BpX3JlZ2lzdHJ5ZC50ZXJtaW5hdGUoKQotICAgICAgICBpZiBzZWxmLl9zcGlfYnVzX2xhdW5j
aGVyOgotICAgICAgICAgICAgc2VsZi5fc3BpX2J1c19sYXVuY2hlci50ZXJtaW5hdGUoKQogICAg
ICAgICBpZiBzZWxmLl94dmZiOgogICAgICAgICAgICAgc2VsZi5feHZmYi50ZXJtaW5hdGUoKQog
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdl
YktpdEFjY2Vzc2liaWxpdHkuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
R3RrL1Rlc3RXZWJLaXRBY2Nlc3NpYmlsaXR5LmNwcAppbmRleCBhNWQ4ZGY5Li5jZmRmMzg4IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYktp
dEFjY2Vzc2liaWxpdHkuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Mkd0ay9UZXN0V2ViS2l0QWNjZXNzaWJpbGl0eS5jcHAKQEAgLTQyLDI3ICs0Miw0NSBAQCBzdGF0
aWMgY29uc3QgY2hhcioga1Rlc3RTZXJ2ZXJBcHBOYW1lID0gIkFjY2Vzc2liaWxpdHlUZXN0U2Vy
dmVyIjsKIC8vIE1heCBzZWNvbmRzIHRvIHdhaXQgZm9yIHRoZSB0ZXN0IHNlcnZlciBiZWZvcmUg
aW5zcGVjdGluZyBpdC4KIHN0YXRpYyBjb25zdCBpbnQga01heFdhaXRGb3JDaGlsZCA9IDU7CiAK
LS8vIFRoZSBQSUQgZm9yIHRoZSB0ZXN0IHNlcnZlciBydW5uaW5nLCBzbyB3ZSBjYW4ga2lsbCBp
dCBpZiBuZWVkZWQuCi1zdGF0aWMgR1BpZCBrQ2hpbGRQcm9jZXNzUGlkID0gMDsKKy8vIFRoZSBQ
SURzIGZvciB0aGUgY2hpbGQgcHJvY2Vzc2VzLCBzbyB3ZSBjYW4ga2lsbCB0aGVtIGlmIG5lZWRl
ZC4KK3N0YXRpYyBHUGlkIGtUZXN0U2VydmVyUGlkID0gMDsKK3N0YXRpYyBHUGlkIGtBdHNwaUJ1
c0xhdW5jaGVyUGlkID0gMDsKK3N0YXRpYyBHUGlkIGtBdHNwaVJlZ2lzdHJ5ZFBpZCA9IDA7CiAK
LS8vIFdoZXRoZXIgdGhlIGNoaWxkIGhhcyByZXBsaWVkIGFuZCBpdCdzIHJlYWR5Lgotc3RhdGlj
IGJvb2wga0NoaWxkSXNSZWFkeSA9IGZhbHNlOworLy8gV2hldGhlciB0aGUgdGVzdCBzZXJ2ZXIg
aGFzIHJlcGxpZWQgYW5kIGlzIHJlYWR5Lgorc3RhdGljIGJvb2wga1Rlc3RTZXJ2ZXJJc1JlYWR5
ID0gZmFsc2U7CiAKIHN0YXRpYyB2b2lkIHN0b3BUZXN0U2VydmVyKCkKIHsKICAgICAvLyBEbyBu
b3RoaW5nIGlmIHRoZXJlJ3Mgbm8gc2VydmVyIHJ1bm5pbmcuCi0gICAgaWYgKCFrQ2hpbGRQcm9j
ZXNzUGlkKQorICAgIGlmICgha1Rlc3RTZXJ2ZXJQaWQpCiAgICAgICAgIHJldHVybjsKIAotICAg
IGdfc3Bhd25fY2xvc2VfcGlkKGtDaGlsZFByb2Nlc3NQaWQpOwotICAgIGtpbGwoa0NoaWxkUHJv
Y2Vzc1BpZCwgU0lHVEVSTSk7Ci0gICAga0NoaWxkUHJvY2Vzc1BpZCA9IDA7CisgICAgZ19zcGF3
bl9jbG9zZV9waWQoa1Rlc3RTZXJ2ZXJQaWQpOworICAgIGtpbGwoa1Rlc3RTZXJ2ZXJQaWQsIFNJ
R1RFUk0pOworICAgIGtUZXN0U2VydmVyUGlkID0gMDsKK30KKworc3RhdGljIHZvaWQgc3RvcEFj
Y2Vzc2liaWxpdHlEYWVtb25zKCkKK3sKKyAgICBpZiAoa0F0c3BpQnVzTGF1bmNoZXJQaWQpIHsK
KyAgICAgICAgZ19zcGF3bl9jbG9zZV9waWQoa0F0c3BpQnVzTGF1bmNoZXJQaWQpOworICAgICAg
ICBraWxsKGtBdHNwaUJ1c0xhdW5jaGVyUGlkLCBTSUdURVJNKTsKKyAgICAgICAga0F0c3BpQnVz
TGF1bmNoZXJQaWQgPSAwOworICAgIH0KKworICAgIGlmIChrQXRzcGlSZWdpc3RyeWRQaWQpIHsK
KyAgICAgICAgZ19zcGF3bl9jbG9zZV9waWQoa0F0c3BpUmVnaXN0cnlkUGlkKTsKKyAgICAgICAg
a2lsbChrQXRzcGlSZWdpc3RyeWRQaWQsIFNJR1RFUk0pOworICAgICAgICBrQXRzcGlSZWdpc3Ry
eWRQaWQgPSAwOworICAgIH0KIH0KIAogc3RhdGljIHZvaWQgc2lnQWJvcnRIYW5kbGVyKGludCBz
aWdOdW0pCiB7Ci0gICAgLy8gSnVzdCBzdG9wIHRoZSB0ZXN0IHNlcnZlciBpZiBTSUdBQlJUIHdh
cyByZWNlaXZlZC4KICAgICBzdG9wVGVzdFNlcnZlcigpOworICAgIHN0b3BBY2Nlc3NpYmlsaXR5
RGFlbW9ucygpOworICAgIHJhaXNlKFNJR0FCUlQpOwogfQogCiBzdGF0aWMgZ3BvaW50ZXIgdGVz
dFNlcnZlck1vbml0b3JUaHJlYWRGdW5jKGdwb2ludGVyKQpAQCAtNzEsNyArODksNyBAQCBzdGF0
aWMgZ3BvaW50ZXIgdGVzdFNlcnZlck1vbml0b3JUaHJlYWRGdW5jKGdwb2ludGVyKQogICAgIGdf
dXNsZWVwKGtNYXhXYWl0Rm9yQ2hpbGQgKiBHX1VTRUNfUEVSX1NFQyk7CiAKICAgICAvLyBLaWxs
IHRoZSBjaGlsZCBwcm9jZXNzIGlmIG5vdCByZWFkeSB5ZXQuCi0gICAgaWYgKCFrQ2hpbGRJc1Jl
YWR5KQorICAgIGlmICgha1Rlc3RTZXJ2ZXJJc1JlYWR5KQogICAgICAgICBzdG9wVGVzdFNlcnZl
cigpOwogCiAgICAgZ190aHJlYWRfZXhpdCgwKTsKQEAgLTgwLDcgKzk4LDcgQEAgc3RhdGljIGdw
b2ludGVyIHRlc3RTZXJ2ZXJNb25pdG9yVGhyZWFkRnVuYyhncG9pbnRlcikKIAogc3RhdGljIHZv
aWQgc3RhcnRUZXN0U2VydmVyTW9uaXRvcigpCiB7Ci0gICAga0NoaWxkSXNSZWFkeSA9IGZhbHNl
OworICAgIGtUZXN0U2VydmVySXNSZWFkeSA9IGZhbHNlOwogICAgIGdfdGhyZWFkX25ldygiVGVz
dFNlcnZlck1vbml0b3IiLCB0ZXN0U2VydmVyTW9uaXRvclRocmVhZEZ1bmMsIDApOwogfQogCkBA
IC05Niw3ICsxMTQsNyBAQCBzdGF0aWMgdm9pZCBzdGFydFRlc3RTZXJ2ZXIoKQogICAgIC8vIFNw
YXduIHRoZSBzZXJ2ZXIsIGdldHRpbmcgaXRzIHN0ZG91dCBmaWxlIGRlc2NyaXB0b3IgdG8gc2V0
IGEKICAgICAvLyBjb21tdW5pY2F0aW9uIGNoYW5uZWwsIHNvIHdlIGtub3cgd2hlbiBpdCdzIHJl
YWR5LgogICAgIGludCBjaGlsZFN0ZG91dCA9IDA7Ci0gICAgaWYgKCFnX3NwYXduX2FzeW5jX3dp
dGhfcGlwZXMoMCwgdGVzdFNlcnZlckFyZ3YsIDAsIHN0YXRpY19jYXN0PEdTcGF3bkZsYWdzPigw
KSwgMCwgMCwgJmtDaGlsZFByb2Nlc3NQaWQsIDAsICZjaGlsZFN0ZG91dCwgMCwgMCkpIHsKKyAg
ICBpZiAoIWdfc3Bhd25fYXN5bmNfd2l0aF9waXBlcygwLCB0ZXN0U2VydmVyQXJndiwgMCwgc3Rh
dGljX2Nhc3Q8R1NwYXduRmxhZ3M+KDApLCAwLCAwLCAma1Rlc3RTZXJ2ZXJQaWQsIDAsICZjaGls
ZFN0ZG91dCwgMCwgMCkpIHsKICAgICAgICAgY2xvc2UoY2hpbGRTdGRvdXQpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQpAQCAtMTEwLDE3ICsxMjgsNzMgQEAgc3RhdGljIHZvaWQgc3RhcnRUZXN0
U2VydmVyKCkKICAgICBpZiAoZ19pb19jaGFubmVsX3JlYWRfY2hhcnMoaW9DaGFubmVsLCBtc2cs
IDIsIDAsIDApID09IEdfSU9fU1RBVFVTX05PUk1BTCkgewogICAgICAgICAvLyBDaGVjayB3aGV0
aGVyIHRoZSBzZXJ2ZXIgc2VudCBhIG1lc3NhZ2Ugc2F5aW5nIGl0J3MgcmVhZHkKICAgICAgICAg
Ly8gYW5kIHN0b3JlIHRoZSByZXN1bHQgZ2xvYmFsbHksIHNvIHRoZSBtb25pdG9yIGNhbiBzZWUg
aXQuCi0gICAgICAgIGtDaGlsZElzUmVhZHkgPSBtc2dbMF0gPT0gJ08nICYmIG1zZ1sxXSA9PSAn
Syc7CisgICAgICAgIGtUZXN0U2VydmVySXNSZWFkeSA9IG1zZ1swXSA9PSAnTycgJiYgbXNnWzFd
ID09ICdLJzsKICAgICB9CiAgICAgZ19pb19jaGFubmVsX3VucmVmKGlvQ2hhbm5lbCk7CiAgICAg
Y2xvc2UoY2hpbGRTdGRvdXQpOwogCiAgICAgLy8gVGhlIHRpbWVvdXQgd2FzIHJlYWNoZWQgYW5k
IHRoZSBzZXJ2ZXIgaXMgbm90IHJlYWR5IHlldCwgc28KICAgICAvLyBzdG9wIGl0IGlubWVkaWF0
ZWx5LCBhbmQgbGV0IHRoZSB1bml0IHRlc3RzIGZhaWwuCi0gICAgaWYgKCFrQ2hpbGRJc1JlYWR5
KQorICAgIGlmICgha1Rlc3RTZXJ2ZXJJc1JlYWR5KQogICAgICAgICBzdG9wVGVzdFNlcnZlcigp
OwogfQogCitzdGF0aWMgR1VuaXF1ZVB0cjxjaGFyPiBwa2dDb25maWdGaWxlVmFyaWFibGUoY29u
c3QgY2hhciogcGFja2FnZSwgY29uc3QgY2hhciogdmFyaWFibGUpCit7CisgICAgR1VuaXF1ZVB0
cjxjaGFyPiBhcmd1bWVudChnX3N0cmR1cF9wcmludGYoIi0tdmFyaWFibGU9JXMiLCB2YXJpYWJs
ZSkpOworICAgIGNoYXIqIHN0ZE91dDsKKyAgICBjaGFyKiBhcmd2W10gPSB7Y29uc3RfY2FzdDxj
aGFyKj4oInBrZy1jb25maWciKSwgYXJndW1lbnQuZ2V0KCksIGNvbnN0X2Nhc3Q8Y2hhcio+KHBh
Y2thZ2UpLCBudWxscHRyfTsKKyAgICBpbnQgZXhpdFN0YXR1czsKKyAgICBHVW5pcXVlT3V0UHRy
PEdFcnJvcj4gZXJyb3I7CisgICAgaWYgKCFnX3NwYXduX3N5bmMobnVsbHB0ciwgYXJndiwgbnVs
bHB0ciwgR19TUEFXTl9TRUFSQ0hfUEFUSCwgbnVsbHB0ciwgbnVsbHB0ciwgJnN0ZE91dCwgbnVs
bHB0ciwgJmV4aXRTdGF0dXMsICZlcnJvci5vdXRQdHIoKSkpCisgICAgICAgIGdfZXJyb3IoIkZh
aWxlZCB0byBzcGF3biBwa2ctY29uZmlnOiAlcyIsIGVycm9yLT5tZXNzYWdlKTsKKyAgICBpZiAo
ZXhpdFN0YXR1cykKKyAgICAgICAgZ19lcnJvcigicGtnLWNvbmZpZyBmYWlsZWQgd2l0aCBleGl0
IHN0YXR1cyAlZCIsIGV4aXRTdGF0dXMpOworICAgIHJldHVybiBHVW5pcXVlUHRyPGNoYXI+KGdf
c3RyY2hvbXAoc3RkT3V0KSk7Cit9CisKK3N0YXRpYyBHVW5pcXVlUHRyPGNoYXI+IGxvb2t1cEF0
c3BpMkJpbmFyeShjb25zdCBjaGFyKiBmaWxlbmFtZSkKK3sKKyAgICBHVW5pcXVlUHRyPGNoYXI+
IGV4ZWNQcmVmaXgocGtnQ29uZmlnRmlsZVZhcmlhYmxlKCJhdHNwaS0yIiwgImV4ZWNfcHJlZml4
IikpOworICAgIGNvbnN0IGNoYXIqIHBhdGhzW10gPSB7ImxpYmV4ZWMiLCAibGliL2F0LXNwaTIt
Y29yZSIsICJsaWIzMi9hdC1zcGkyLWNvcmUiLCAibGliNjQvYXQtc3BpMi1jb3JlIn07CisgICAg
Zm9yIChpbnQgaSA9IDA7IGkgPCBHX05fRUxFTUVOVFMocGF0aHMpOyBpKyspIHsKKyAgICAgICAg
R1VuaXF1ZVB0cjxjaGFyPiBwYXRoKGdfYnVpbGRfZmlsZW5hbWUoZXhlY1ByZWZpeC5nZXQoKSwg
cGF0aHNbaV0sIGZpbGVuYW1lLCBudWxscHRyKSk7CisgICAgICAgIEdSZWZQdHI8R0ZpbGU+IGZp
bGUgPSBhZG9wdEdSZWYoZ19maWxlX25ld19mb3JfcGF0aChwYXRoLmdldCgpKSk7CisgICAgICAg
IGlmIChnX2ZpbGVfcXVlcnlfZXhpc3RzKGZpbGUuZ2V0KCksIG51bGxwdHIpKQorICAgICAgICAg
ICAgcmV0dXJuIEdVbmlxdWVQdHI8Y2hhcj4oZ19zdHJkdXAoZ19maWxlX2dldF9wYXRoKGZpbGUu
Z2V0KCkpKSk7CisgICAgfQorICAgIHJldHVybiBHVW5pcXVlUHRyPGNoYXI+KCk7Cit9CisKK3N0
YXRpYyB2b2lkIG9uQnVzTmFtZUFwcGVhcmVkKEdEQnVzQ29ubmVjdGlvbiosIGNvbnN0IGNoYXIq
LCBjb25zdCBjaGFyKiwgZ3BvaW50ZXIgdXNlckRhdGEpCit7CisgICAgR01haW5Mb29wKiBsb29w
ID0gc3RhdGljX2Nhc3Q8R01haW5Mb29wKj4odXNlckRhdGEpOworICAgIGdfbWFpbl9sb29wX3F1
aXQobG9vcCk7Cit9CisKK3N0YXRpYyB2b2lkIHN0YXJ0QWNjZXNzaWJpbGl0eURhZW1vbnMoKQor
eworICAgIEdVbmlxdWVQdHI8Y2hhcj4gYXRzcGlCdXNMYXVuY2hlclBhdGgobG9va3VwQXRzcGky
QmluYXJ5KCJhdC1zcGktYnVzLWxhdW5jaGVyIikpOworICAgIEdVbmlxdWVQdHI8Y2hhcj4gYXRz
cGlSZWdpc3RyeWRQYXRoKGxvb2t1cEF0c3BpMkJpbmFyeSgiYXQtc3BpMi1yZWdpc3RyeWQiKSk7
CisgICAgZ19hc3NlcnQoYXRzcGlCdXNMYXVuY2hlclBhdGggJiYgYXRzcGlSZWdpc3RyeWRQYXRo
KTsKKworICAgIGNoYXIqIGF0c3BpQnVzTGF1bmNoZXJBcmd2W10gPSB7YXRzcGlCdXNMYXVuY2hl
clBhdGguZ2V0KCksIG51bGxwdHJ9OworICAgIEdVbmlxdWVPdXRQdHI8R0Vycm9yPiBlcnJvcjsK
KyAgICBpZiAoIWdfc3Bhd25fYXN5bmMobnVsbHB0ciwgYXRzcGlCdXNMYXVuY2hlckFyZ3YsIG51
bGxwdHIsIEdfU1BBV05fREVGQVVMVCwgbnVsbHB0ciwgbnVsbHB0ciwgJmtBdHNwaUJ1c0xhdW5j
aGVyUGlkLCAmZXJyb3Iub3V0UHRyKCkpKQorICAgICAgICBnX2Vycm9yKCJGYWlsZWQgdG8gbGF1
bmNoIHRoZSBhY2Nlc3NpYmlsaXR5IGJ1czogJXMiLCBlcnJvci0+bWVzc2FnZSk7CisKKyAgICAv
LyBXZSBuZWVkIHRvIHdhaXQgdW50aWwgdGhlIFNQSSBidXMgaXMgbGF1bmNoZWQgYmVmb3JlIHRy
eWluZyB0byBzdGFydCB0aGUKKyAgICAvLyBTUEkgcmVnaXN0cnksIHNvIHdlIHNwaW4gYSBtYWlu
IGxvb3AgdW50aWwgdGhlIGJ1cyBuYW1lIGFwcGVhcnMgb24gRC1CdXMuCisgICAgR1JlZlB0cjxH
TWFpbkxvb3A+IGxvb3AgPSBhZG9wdEdSZWYoZ19tYWluX2xvb3BfbmV3KG51bGxwdHIsIEZBTFNF
KSk7CisgICAgYXV0byB3YXRjaGVySUQgPSBnX2J1c193YXRjaF9uYW1lKEdfQlVTX1RZUEVfU0VT
U0lPTiwgIm9yZy5hMTF5LkJ1cyIsIEdfQlVTX05BTUVfV0FUQ0hFUl9GTEFHU19OT05FLCBvbkJ1
c05hbWVBcHBlYXJlZCwgbnVsbHB0ciwgbG9vcC5nZXQoKSwgbnVsbHB0cik7CisgICAgZ19tYWlu
X2xvb3BfcnVuKGxvb3AuZ2V0KCkpOworICAgIGdfYnVzX3Vud2F0Y2hfbmFtZSh3YXRjaGVySUQp
OworCisgICAgY2hhciogYXRzcGlSZWdpc3RyeWRBcmd2W10gPSB7YXRzcGlSZWdpc3RyeWRQYXRo
LmdldCgpLCBudWxscHRyfTsKKyAgICBpZiAoIWdfc3Bhd25fYXN5bmMobnVsbHB0ciwgYXRzcGlS
ZWdpc3RyeWRBcmd2LCBudWxscHRyLCBHX1NQQVdOX0RFRkFVTFQsIG51bGxwdHIsIG51bGxwdHIs
ICZrQXRzcGlSZWdpc3RyeWRQaWQsICZlcnJvci5vdXRQdHIoKSkpCisgICAgICAgIGdfZXJyb3Io
IkZhaWxlZCB0byBsYXVuY2ggdGhlIGFjY2Vzc2liaWxpdHkgcmVnaXN0cnk6ICVzIiwgZXJyb3It
Pm1lc3NhZ2UpOworfQorCiBzdGF0aWMgdm9pZCBjaGVja0F0c3BpQWNjZXNzaWJsZShBdHNwaUFj
Y2Vzc2libGUqIGFjY2Vzc2libGUsIGNvbnN0IGNoYXIqIHRhcmdldE5hbWUsIEF0c3BpUm9sZSB0
YXJnZXRSb2xlKQogewogICAgIGdfYXNzZXJ0KEFUU1BJX0lTX0FDQ0VTU0lCTEUoYWNjZXNzaWJs
ZSkpOwpAQCAtMjA4LDE3ICsyODIsMTggQEAgc3RhdGljIHZvaWQgdGVzdEF0c3BpQmFzaWNIaWVy
YXJjaHkoV2ViVmlld1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiAKIHZvaWQgYmVmb3JlQWxs
KCkKIHsKLSAgICAvLyBXZSBpbnN0YWxsIGEgaGFuZGxlciB0byBlbnN1cmUgdGhhdCB3ZSBraWxs
IHRoZSBjaGlsZCBwcm9jZXNzCisgICAgLy8gV2UgaW5zdGFsbCBhIGhhbmRsZXIgdG8gZW5zdXJl
IHRoYXQgd2Uga2lsbCB0aGUgY2hpbGQgcHJvY2Vzc2VzCiAgICAgLy8gaWYgdGhlIHBhcmVudCBk
aWVzIGJlY2F1c2Ugb2Ygd2hhdGV2ZXIgdGhlIHJlYXNvbiBpcy4KICAgICBzaWduYWwoU0lHQUJS
VCwgc2lnQWJvcnRIYW5kbGVyKTsKIAotICAgIC8vIFN0YXJ0IHRoZSBhY2Nlc3NpYmlsaXR5IHRl
c3Qgc2VydmVyIGFuZCBsb2FkIHRoZSB0ZXN0cy4KKyAgICBzdGFydEFjY2Vzc2liaWxpdHlEYWVt
b25zKCk7CiAgICAgc3RhcnRUZXN0U2VydmVyKCk7CisKICAgICBXZWJWaWV3VGVzdDo6YWRkKCJX
ZWJLaXRBY2Nlc3NpYmlsaXR5IiwgImF0c3BpLWJhc2ljLWhpZXJhcmNoeSIsIHRlc3RBdHNwaUJh
c2ljSGllcmFyY2h5KTsKIH0KIAogdm9pZCBhZnRlckFsbCgpCiB7Ci0gICAgLy8gRW5zdXJlIHdl
IHN0b3AgdGhlIHNlcnZlci4KICAgICBzdG9wVGVzdFNlcnZlcigpOworICAgIHN0b3BBY2Nlc3Np
YmlsaXR5RGFlbW9ucygpOwogfQotLSAKMi4xLjAKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>