<?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>122148</bug_id>
          
          <creation_ts>2013-10-01 02:18:14 -0700</creation_ts>
          <short_desc>[ATK] Expose ARIA Busy state</short_desc>
          <delta_ts>2020-03-30 10:19:05 -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>Linux</op_sys>
          <bug_status>UNCONFIRMED</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>145646</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Krzysztof Czech">k.czech</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>jdiggs</cc>
    
    <cc>mario</cc>
    
    <cc>me</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>934940</commentid>
    <comment_count>0</comment_count>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2013-10-01 02:18:14 -0700</bug_when>
    <thetext>Expose aria-busy state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>934941</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2013-10-01 02:18:25 -0700</bug_when>
    <thetext>&lt;rdar://problem/15119077&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>934947</commentid>
    <comment_count>2</comment_count>
      <attachid>213067</attachid>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2013-10-01 02:38:53 -0700</bug_when>
    <thetext>Created attachment 213067
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>934960</commentid>
    <comment_count>3</comment_count>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2013-10-01 03:42:17 -0700</bug_when>
    <thetext>I found that, changes I proposed make accessibility/loading-iframe-sends-notification.html test failing both for EFL and GTK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>934965</commentid>
    <comment_count>4</comment_count>
      <attachid>213067</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-10-01 03:52:54 -0700</bug_when>
    <thetext>Comment on attachment 213067
Patch

Looks good to me. Also, I realized that we are not exposing ATK_STATE_BUSY in the ATK wrapper.

Perhaps it would be a good thing to do now for consistency with the fact that we are exposing the state change (but in a different bug anyway). What do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>934968</commentid>
    <comment_count>5</comment_count>
      <attachid>213067</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-10-01 03:56:34 -0700</bug_when>
    <thetext>Comment on attachment 213067
Patch

(In reply to comment #3)
&gt; I found that, changes I proposed make accessibility/loading-iframe-sends-notification.html test failing both for EFL and GTK.

(Sorry, I didn&apos;t see this message until now. Removing the cq flag for now, just in case)

How to they fail exactly? Could you paste here the diff output?

Perhaps they just need some rebaselining after all...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>934973</commentid>
    <comment_count>6</comment_count>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2013-10-01 04:13:38 -0700</bug_when>
    <thetext>  PASS findByAccessibleTitleSubstring(root, &apos;InnerButton&apos;) != null is false
  Got notification on iframe.
 +FAIL findByAccessibleTitleSubstring(root, &apos;InnerButton&apos;) != null should be true. Was false.
 +Got notification on iframe.
 +PASS findByAccessibleTitleSubstring(root, &apos;InnerButton&apos;) != null is true
 +Got notification on iframe.
  PASS findByAccessibleTitleSubstring(root, &apos;InnerButton&apos;) != null is true
  PASS gotIframeNotification is true
  PASS successfullyParsed is true



This is a diff output while I&apos;m running accessibility/loading-iframe-sends-notification.html with the changes related to exposing aria-busy notification</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>934991</commentid>
    <comment_count>7</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-10-01 05:36:48 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt;   PASS findByAccessibleTitleSubstring(root, &apos;InnerButton&apos;) != null is false
&gt;   Got notification on iframe.
&gt;  +FAIL findByAccessibleTitleSubstring(root, &apos;InnerButton&apos;) != null should be true. Was false.
&gt;  +Got notification on iframe.
&gt;  +PASS findByAccessibleTitleSubstring(root, &apos;InnerButton&apos;) != null is true
&gt;  +Got notification on iframe.
&gt;   PASS findByAccessibleTitleSubstring(root, &apos;InnerButton&apos;) != null is true
&gt;   PASS gotIframeNotification is true
&gt;   PASS successfullyParsed is true
&gt; 
&gt; 
&gt; 
&gt; This is a diff output while I&apos;m running accessibility/loading-iframe-sends-notification.html
&gt; with the changes related to exposing aria-busy notification

Hrm... I think what it&apos;s happening here is that in the following piece of code in that test...

    [...]
    // Initially, the iframe should not be loaded, so we shouldn&apos;t be able to find this button.
    shouldBeFalse(&quot;findByAccessibleTitleSubstring(root, &apos;InnerButton&apos;) != null&quot;);

    window.accessibilityController.addNotificationListener(function (target, notification) {
        // Ignore this notification if it&apos;s not on the iframe.
        if (target.description.indexOf(&quot;InnerFrame&quot;) == -1)
            return;

        debug(&quot;Got notification on iframe.&quot;);
        gotIframeNotification = true;

        // Check that the button within the iframe is now reachable from the root.
        shouldBeTrue(&quot;findByAccessibleTitleSubstring(root, &apos;InnerButton&apos;) != null&quot;);
    });
    [...]


... the notification listener is now being called more often than before, as now you are also emitting a signal/notification when the busy state changes (AXElementBusyChanged), not simply when the layout is completed (AXLayoutComplete), which I think is the only case that was being captured before in that listener. Adding a &quot;debug(&apos;Notification received: &apos; + notification);&quot; line in that test could be useful to check whether that theory is true.

If that&apos;s the case, maybe we could update this test so that listener early returns when the notification received is not the expected one (AXLayoutComplete, I suppose), but still it&apos;s a mystery to me why this problem is not happening in the Mac in the first place, since I guess they should be getting the additional notification there as well.

Chris, Samuel, any comment on this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935026</commentid>
    <comment_count>8</comment_count>
    <who name="Samuel White">samuel_white</who>
    <bug_when>2013-10-01 08:47:31 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt;   PASS findByAccessibleTitleSubstring(root, &apos;InnerButton&apos;) != null is false
&gt; &gt;   Got notification on iframe.
&gt; &gt;  +FAIL findByAccessibleTitleSubstring(root, &apos;InnerButton&apos;) != null should be true. Was false.
&gt; &gt;  +Got notification on iframe.
&gt; &gt;  +PASS findByAccessibleTitleSubstring(root, &apos;InnerButton&apos;) != null is true
&gt; &gt;  +Got notification on iframe.
&gt; &gt;   PASS findByAccessibleTitleSubstring(root, &apos;InnerButton&apos;) != null is true
&gt; &gt;   PASS gotIframeNotification is true
&gt; &gt;   PASS successfullyParsed is true
&gt; &gt; 
&gt; &gt; 
&gt; &gt; 
&gt; &gt; This is a diff output while I&apos;m running accessibility/loading-iframe-sends-notification.html
&gt; &gt; with the changes related to exposing aria-busy notification
&gt; 
&gt; Hrm... I think what it&apos;s happening here is that in the following piece of code in that test...
&gt; 
&gt;     [...]
&gt;     // Initially, the iframe should not be loaded, so we shouldn&apos;t be able to find this button.
&gt;     shouldBeFalse(&quot;findByAccessibleTitleSubstring(root, &apos;InnerButton&apos;) != null&quot;);
&gt; 
&gt;     window.accessibilityController.addNotificationListener(function (target, notification) {
&gt;         // Ignore this notification if it&apos;s not on the iframe.
&gt;         if (target.description.indexOf(&quot;InnerFrame&quot;) == -1)
&gt;             return;
&gt; 
&gt;         debug(&quot;Got notification on iframe.&quot;);
&gt;         gotIframeNotification = true;
&gt; 
&gt;         // Check that the button within the iframe is now reachable from the root.
&gt;         shouldBeTrue(&quot;findByAccessibleTitleSubstring(root, &apos;InnerButton&apos;) != null&quot;);
&gt;     });
&gt;     [...]
&gt; 
&gt; 
&gt; ... the notification listener is now being called more often than before, as now you are also emitting a signal/notification when the busy state changes (AXElementBusyChanged), not simply when the layout is completed (AXLayoutComplete), which I think is the only case that was being captured before in that listener. Adding a &quot;debug(&apos;Notification received: &apos; + notification);&quot; line in that test could be useful to check whether that theory is true.

Agreed. We should be seeing one AXLoadComplete and one AXLayoutComplete notification, not sure about the third one. Adding a debug as suggested to dump the notification type should shed some light on what is going wrong here.

&gt; 
&gt; If that&apos;s the case, maybe we could update this test so that listener early returns when the notification received is not the expected one (AXLayoutComplete, I suppose), but still it&apos;s a mystery to me why this problem is not happening in the Mac in the first place, since I guess they should be getting the additional notification there as well.
&gt; 
&gt; Chris, Samuel, any comment on this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935045</commentid>
    <comment_count>9</comment_count>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2013-10-01 09:12:53 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 213067 [details])
&gt; Looks good to me. Also, I realized that we are not exposing ATK_STATE_BUSY in the ATK wrapper.
&gt; 
&gt; Perhaps it would be a good thing to do now for consistency with the fact that we are exposing the state change (but in a different bug anyway). What do you think?

I agree with you ATK_STATE_BUSY should be exposed. Other thing is that DRT and WTR do not provide isBusy() property for testing it. I guess one could be added in one patch along with exposing ATK_STATE_BUSY. I will propose it. What do you think ?.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935049</commentid>
    <comment_count>10</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-10-01 09:21:56 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; (In reply to comment #6)
&gt; &gt; &gt;   PASS findByAccessibleTitleSubstring(root, &apos;InnerButton&apos;) != null is false
&gt; &gt; &gt;   Got notification on iframe.
&gt; &gt; &gt;  +FAIL findByAccessibleTitleSubstring(root, &apos;InnerButton&apos;) != null should be true. Was false.
&gt; &gt; &gt;  +Got notification on iframe.
&gt; &gt; &gt;  +PASS findByAccessibleTitleSubstring(root, &apos;InnerButton&apos;) != null is true
&gt; &gt; &gt;  +Got notification on iframe.
&gt; &gt; &gt;   PASS findByAccessibleTitleSubstring(root, &apos;InnerButton&apos;) != null is true
&gt; &gt; &gt;   PASS gotIframeNotification is true
&gt; &gt; &gt;   PASS successfullyParsed is true
&gt; &gt; &gt; 
&gt; &gt; &gt; 
&gt; &gt; &gt; 
&gt; &gt; &gt; This is a diff output while I&apos;m running accessibility/loading-iframe-sends-notification.html
&gt; &gt; &gt; with the changes related to exposing aria-busy notification
&gt; &gt; 
&gt; &gt; Hrm... I think what it&apos;s happening here is that in the following piece of code in that test...
&gt; &gt; 
&gt; &gt;     [...]
&gt; &gt;     // Initially, the iframe should not be loaded, so we shouldn&apos;t be able to find this button.
&gt; &gt;     shouldBeFalse(&quot;findByAccessibleTitleSubstring(root, &apos;InnerButton&apos;) != null&quot;);
&gt; &gt; 
&gt; &gt;     window.accessibilityController.addNotificationListener(function (target, notification) {
&gt; &gt;         // Ignore this notification if it&apos;s not on the iframe.
&gt; &gt;         if (target.description.indexOf(&quot;InnerFrame&quot;) == -1)
&gt; &gt;             return;
&gt; &gt; 
&gt; &gt;         debug(&quot;Got notification on iframe.&quot;);
&gt; &gt;         gotIframeNotification = true;
&gt; &gt; 
&gt; &gt;         // Check that the button within the iframe is now reachable from the root.
&gt; &gt;         shouldBeTrue(&quot;findByAccessibleTitleSubstring(root, &apos;InnerButton&apos;) != null&quot;);
&gt; &gt;     });
&gt; &gt;     [...]

Generally, you can&apos;t be that sure of ordering of notifications I&apos;ve noticed, especially once tests start being run in parallel. I might rewrite this test so that you only check the new conditions after you&apos;ve received the specific notification you&apos;re looking for. There can be all other kinds of notifications flying around


&gt; &gt; 
&gt; &gt; 
&gt; &gt; ... the notification listener is now being called more often than before, as now you are also emitting a signal/notification when the busy state changes (AXElementBusyChanged), not simply when the layout is completed (AXLayoutComplete), which I think is the only case that was being captured before in that listener. Adding a &quot;debug(&apos;Notification received: &apos; + notification);&quot; line in that test could be useful to check whether that theory is true.
&gt; 
&gt; Agreed. We should be seeing one AXLoadComplete and one AXLayoutComplete notification, not sure about the third one. Adding a debug as suggested to dump the notification type should shed some light on what is going wrong here.
&gt; 
&gt; &gt; 
&gt; &gt; If that&apos;s the case, maybe we could update this test so that listener early returns when the notification received is not the expected one (AXLayoutComplete, I suppose), but still it&apos;s a mystery to me why this problem is not happening in the Mac in the first place, since I guess they should be getting the additional notification there as well.
&gt; &gt; 
&gt; &gt; Chris, Samuel, any comment on this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935051</commentid>
    <comment_count>11</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-10-01 09:24:41 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; [...]
&gt; 
&gt; Agreed. We should be seeing one AXLoadComplete and one AXLayoutComplete 
&gt; notification, not sure about the third one. Adding a debug as suggested 
&gt; to dump the notification type should shed some light on what is going 
&gt; wrong here.

I added a debug line like that right before the shouldBeTrue() line, and this is what I got:


  On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.


  PASS findByAccessibleTitleSubstring(root, &apos;InnerButton&apos;) != null is false
  Got notification on iframe.

  ### Notification received: AXElementBusyChanged ### 

  FAIL findByAccessibleTitleSubstring(root, &apos;InnerButton&apos;) != null should be true. Was false.
  Got notification on iframe.

  ### Notification received: AXElementBusyChanged ### 

  PASS findByAccessibleTitleSubstring(root, &apos;InnerButton&apos;) != null is true
  Got notification on iframe.

  ### Notification received: AXLayoutComplete ### 

  PASS findByAccessibleTitleSubstring(root, &apos;InnerButton&apos;) != null is true
  PASS gotIframeNotification is true
  PASS successfullyParsed is true

  TEST COMPLETE


If I instead leave Krzysztof&apos;s patch out of the game, then I only get the one AXLayoutComplete notification, which seems to be correct according to the test expectations.

I checked the patch again and again, and I don&apos;t see it&apos;s doing anything different than the mac counterparts (just emitting the event and catching it in DRT/WKTR) so I wonder why this is not happening in the Mac. 

Of course, adding a filter to early return in case the notification is not AXLayoutComplete would &quot;fix&quot; the failing test, but I do want to make sure we are not hiding any other problem</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935055</commentid>
    <comment_count>12</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-10-01 09:26:53 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Generally, you can&apos;t be that sure of ordering of notifications I&apos;ve noticed, 
&gt; especially once tests start being run in parallel. I might rewrite this test 
&gt; so that you only check the new conditions after you&apos;ve received the specific 
&gt; notification you&apos;re looking for. There can be all other kinds of 
&gt; notifications flying around

See my previous comment about my findings after applying the patch and logging the notifications. That might be helpful.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213067</attachid>
            <date>2013-10-01 02:38:53 -0700</date>
            <delta_ts>2013-10-01 03:56:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>a11y-aria-busy-state.patch</filename>
            <type>text/plain</type>
            <size>9310</size>
            <attacher name="Krzysztof Czech">k.czech</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4MWI2MmQ2Li5kZjliNzRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTMtMTAt
MDEgIEtyenlzenRvZiBDemVjaCAgPGsuY3plY2hAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0FU
S10gRXhwb3NlIEFSSUEgQnVzeSBzdGF0ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyMjE0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFNoYXJpbmcgc3BlY2lmaWMgbWFjIHRlc3Qgd2l0aCBHVEsgYW5k
IEVGTC4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvZWxlbWVudC1idXN5LWNoYW5nZWQtZXhw
ZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2li
aWxpdHkvZWxlbWVudC1idXN5LWNoYW5nZWQtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvZWxlbWVudC1idXN5LWNoYW5nZWQuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2VsZW1lbnQtYnVzeS1jaGFuZ2VkLmh0bWwu
CisKIDIwMTMtMDktMzAgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAg
ICAgICAgTGF5b3V0IFRlc3QgbWVkaWEvY2xpY2stdm9sdW1lLWJhci1ub3QtcGF1c2luZy5odG1s
IGlzIGZsYWt5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2VsZW1lbnQt
YnVzeS1jaGFuZ2VkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZWxl
bWVudC1idXN5LWNoYW5nZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmQwMmVhNTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3Np
YmlsaXR5L2VsZW1lbnQtYnVzeS1jaGFuZ2VkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBA
CitUaGlzIHRlc3RzIHRoYXQgQVhFbGVtZW50QnVzeUNoYW5nZWQgaXMgcG9zdGVkIGNvcnJlY3Rs
eS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1JlY2VpdmVkIEFYRWxlbWVudEJ1
c3lDaGFuZ2VkIG5vdGlmaWNhdGlvbiAxIG9mIDIKK1JlY2VpdmVkIEFYRWxlbWVudEJ1c3lDaGFu
Z2VkIG5vdGlmaWNhdGlvbiAyIG9mIDIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L2VsZW1lbnQtYnVzeS1jaGFuZ2VkLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2Vs
ZW1lbnQtYnVzeS1jaGFuZ2VkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uYTNiOWE3YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
ZWxlbWVudC1idXN5LWNoYW5nZWQuaHRtbApAQCAtMCwwICsxLDQyIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzx0aXRsZT5FbGVtZW50IEJ1c3kgQ2hhbmdlZDwvdGl0bGU+Cis8L2hl
YWQ+Cis8IS0tIEJ1c3kgc3RhdGUgYmVnaW5zIGZhbHNlLiAtLT4KKzxib2R5IGFyaWEtYnVzeT0i
ZmFsc2UiIGlkPSJib2R5Ij4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0
aGF0IEFYRWxlbWVudEJ1c3lDaGFuZ2VkIGlzIHBvc3RlZCBjb3JyZWN0bHkuIik7CisgICAgCisg
ICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgIAorICAgIHZhciBib2R5ID0gMDsK
KyAgICB2YXIgbm90aWZpY2F0aW9uQ291bnQgPSAwOworICAgIAorICAgIGlmICh3aW5kb3cuYWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICAgICAgYm9keSA9IGFjY2Vzc2liaWxpdHlDb250
cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiYm9keSIpOworICAgICAgICBib2R5LmFkZE5v
dGlmaWNhdGlvbkxpc3RlbmVyKGZ1bmN0aW9uKG5vdGlmaWNhdGlvbikgeworICAgICAgICAgICAg
ZGVidWcoIlJlY2VpdmVkICIgKyBub3RpZmljYXRpb24gKyAiIG5vdGlmaWNhdGlvbiAiICsgKytu
b3RpZmljYXRpb25Db3VudCArICIgb2YgMiIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBp
ZiAobm90aWZpY2F0aW9uQ291bnQgPT0gMikgeworICAgICAgICAgICAgICAgIGJvZHkucmVtb3Zl
Tm90aWZpY2F0aW9uTGlzdGVuZXIoKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIAor
ICAgICAgICAvLyBUb2dnbGUgdGhyb3VnaCBib3RoIGJ1c3kgc3RhdGUgdHJhbnNpdGlvbnMuCisg
ICAgICAgIHZhciBidXN5RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib2R5Iik7
CisgICAgICAgIGJ1c3lFbGVtZW50LnNldEF0dHJpYnV0ZSgiYXJpYS1idXN5IiwgInRydWUiKTsK
KyAgICAgICAgYnVzeUVsZW1lbnQuc2V0QXR0cmlidXRlKCJhcmlhLWJ1c3kiLCAiZmFsc2UiKTsK
KyAgICB9Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvZWxlbWVudC1idXN5LWNoYW5nZWQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvZWxlbWVudC1i
dXN5LWNoYW5nZWQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBk
MDJlYTU2Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmls
aXR5L2VsZW1lbnQtYnVzeS1jaGFuZ2VkLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDExICswLDAgQEAKLVRoaXMgdGVzdHMgdGhhdCBBWEVsZW1lbnRCdXN5Q2hhbmdlZCBpcyBwb3N0
ZWQgY29ycmVjdGx5LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUmVjZWl2ZWQg
QVhFbGVtZW50QnVzeUNoYW5nZWQgbm90aWZpY2F0aW9uIDEgb2YgMgotUmVjZWl2ZWQgQVhFbGVt
ZW50QnVzeUNoYW5nZWQgbm90aWZpY2F0aW9uIDIgb2YgMgotUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2VsZW1lbnQtYnVzeS1jaGFuZ2VkLmh0bWwgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9lbGVtZW50LWJ1c3ktY2hhbmdlZC5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MjM5ZDgyLi4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2VsZW1lbnQtYnVzeS1jaGFu
Z2VkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4K
LTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KLTx0aXRsZT5FbGVtZW50IEJ1c3kgQ2hhbmdlZDwvdGl0bGU+Ci08
L2hlYWQ+Ci08IS0tIEJ1c3kgc3RhdGUgYmVnaW5zIGZhbHNlLiAtLT4KLTxib2R5IGFyaWEtYnVz
eT0iZmFsc2UiIGlkPSJib2R5Ij4KLQotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLSAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0
cyB0aGF0IEFYRWxlbWVudEJ1c3lDaGFuZ2VkIGlzIHBvc3RlZCBjb3JyZWN0bHkuIik7Ci0gICAg
Ci0gICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotICAgIAotICAgIHZhciBib2R5ID0g
MDsKLSAgICB2YXIgbm90aWZpY2F0aW9uQ291bnQgPSAwOwotICAgIAotICAgIGlmICh3aW5kb3cu
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKLSAgICAgICAgYm9keSA9IGFjY2Vzc2liaWxpdHlD
b250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiYm9keSIpOwotICAgICAgICBib2R5LmFk
ZE5vdGlmaWNhdGlvbkxpc3RlbmVyKGZ1bmN0aW9uKG5vdGlmaWNhdGlvbikgewotICAgICAgICAg
ICAgZGVidWcoIlJlY2VpdmVkICIgKyBub3RpZmljYXRpb24gKyAiIG5vdGlmaWNhdGlvbiAiICsg
Kytub3RpZmljYXRpb25Db3VudCArICIgb2YgMiIpOwotICAgICAgICAgICAgCi0gICAgICAgICAg
ICBpZiAobm90aWZpY2F0aW9uQ291bnQgPT0gMikgewotICAgICAgICAgICAgICAgIGJvZHkucmVt
b3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIoKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAg
ICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0gICAgICAg
IAotICAgICAgICAvLyBUb2dnbGUgdGhyb3VnaCBib3RoIGJ1c3kgc3RhdGUgdHJhbnNpdGlvbnMu
Ci0gICAgICAgIHZhciBidXN5RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib2R5
Iik7Ci0gICAgICAgIGJ1c3lFbGVtZW50LnNldEF0dHJpYnV0ZSgiYXJpYS1idXN5IiwgInRydWUi
KTsKLSAgICAgICAgYnVzeUVsZW1lbnQuc2V0QXR0cmlidXRlKCJhcmlhLWJ1c3kiLCAiZmFsc2Ui
KTsKLSAgICB9Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDExNWIyMjUuLmViMWFhZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMy0xMC0w
MSAgS3J6eXN6dG9mIEN6ZWNoICA8ay5jemVjaEBzYW1zdW5nLmNvbT4KKworICAgICAgICBbQVRL
XSBFeHBvc2UgQVJJQSBCdXN5IHN0YXRlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTIyMTQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgRXhwb3NlZCBBWEVsZW1lbnRCdXN5Q2hhbmdlZCBub3RpZmljYXRp
b24gdG8gQVRLLgorCisgICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkvZWxlbWVudC1idXN5LWNo
YW5nZWQuaHRtbAorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hdGsvQVhPYmplY3RDYWNoZUF0
ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3Rp
ZmljYXRpb24pOgorCiAyMDEzLTA5LTMwICBSeXVhbiBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5n
LmNvbT4KIAogICAgICAgICBCdWlsZCBmaXggZm9yIEVGTCwgUXQsIEd0ayBwb3J0IGFmdGVyIHIx
NTY2ODgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL0FYT2Jq
ZWN0Q2FjaGVBdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvQVhPYmpl
Y3RDYWNoZUF0ay5jcHAKaW5kZXggMjUzYjEyYS4uZTBhMWJmNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvQVhPYmplY3RDYWNoZUF0ay5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvQVhPYmplY3RDYWNoZUF0ay5jcHAKQEAgLTE2
OCw2ICsxNjgsOCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlv
bihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBjb3JlT2JqZWN0LCBBWAogICAgICAgICBnX3NpZ25hbF9l
bWl0X2J5X25hbWUoYXhPYmplY3QsICJzdGF0ZS1jaGFuZ2UiLCAibGF5b3V0LWNvbXBsZXRlIiwg
dHJ1ZSk7CiAgICAgZWxzZSBpZiAobm90aWZpY2F0aW9uID09IEFYSW52YWxpZFN0YXR1c0NoYW5n
ZWQpCiAgICAgICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShheE9iamVjdCwgInN0YXRlLWNoYW5n
ZSIsICJpbnZhbGlkLWVudHJ5IiwgY29yZU9iamVjdC0+aW52YWxpZFN0YXR1cygpICE9ICJmYWxz
ZSIpOworICAgIGVsc2UgaWYgKG5vdGlmaWNhdGlvbiA9PSBBWEVsZW1lbnRCdXN5Q2hhbmdlZCkK
KyAgICAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKGF4T2JqZWN0LCAic3RhdGUtY2hhbmdlIiwg
ImJ1c3kiLCB0cnVlKTsKIH0KIAogdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBs
YXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgQVhUZXh0Q2hh
bmdlIHRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQpkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDEzZjZiMDgu
LjljMmE3NTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMy0xMC0wMSAgS3J6eXN6dG9mIEN6ZWNoICA8ay5jemVj
aEBzYW1zdW5nLmNvbT4KKworICAgICAgICBbQVRLXSBFeHBvc2UgQVJJQSBCdXN5IHN0YXRlLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIyMTQ4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgbWFw
cGluZ3Mgb2YgQVhFbGVtZW50QnVzeUNoYW5nZWQgdG8gRFJUIGFuZCBXVFIuCisKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9hdGsvQWNjZXNzaWJpbGl0eUNhbGxiYWNrc0F0ay5jcHA6CisgICAg
ICAgIChheE9iamVjdEV2ZW50TGlzdGVuZXIpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyQXRrLmNw
cDoKKwogMjAxMy0wOS0zMCAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAg
IGNoZWNrLXdlYmtpdC1zdHlsZSBzaG91bGQgbm90IHdhcm4gYWJvdXQgdXNlIG9mIEMrKzExIOKA
nD4+4oCdICBpbnN0ZWFkIG9mIOKAnD4gPiIKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2F0ay9BY2Nlc3NpYmlsaXR5Q2FsbGJhY2tzQXRrLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2F0ay9BY2Nlc3NpYmlsaXR5Q2FsbGJhY2tzQXRrLmNwcAppbmRleCA3ZTg5ODJlLi4zZjkx
MWM0IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9hdGsvQWNjZXNzaWJpbGl0eUNh
bGxiYWNrc0F0ay5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYXRrL0FjY2Vzc2liaWxp
dHlDYWxsYmFja3NBdGsuY3BwCkBAIC0xMDgsNiArMTA4LDggQEAgc3RhdGljIGdib29sZWFuIGF4
T2JqZWN0RXZlbnRMaXN0ZW5lcihHU2lnbmFsSW52b2NhdGlvbkhpbnQgKnNpZ25hbEhpbnQsIGd1
aW50IG4KICAgICAgICAgICAgIG5vdGlmaWNhdGlvbk5hbWUgPSAiQVhJbnZhbGlkU3RhdHVzQ2hh
bmdlZCI7CiAgICAgICAgIGVsc2UgaWYgKCFnX3N0cmNtcDAoZ192YWx1ZV9nZXRfc3RyaW5nKCZw
YXJhbVZhbHVlc1sxXSksICJsYXlvdXQtY29tcGxldGUiKSkKICAgICAgICAgICAgIG5vdGlmaWNh
dGlvbk5hbWUgPSAiQVhMYXlvdXRDb21wbGV0ZSI7CisgICAgICAgIGVsc2UgaWYgKCFnX3N0cmNt
cDAoZ192YWx1ZV9nZXRfc3RyaW5nKCZwYXJhbVZhbHVlc1sxXSksICJidXN5IikpCisgICAgICAg
ICAgICBub3RpZmljYXRpb25OYW1lID0gIkFYRWxlbWVudEJ1c3lDaGFuZ2VkIjsKICAgICB9IGVs
c2UgaWYgKCFnX3N0cmNtcDAoc2lnbmFsUXVlcnkuc2lnbmFsX25hbWUsICJmb2N1cy1ldmVudCIp
KSB7CiAgICAgICAgIHNpZ25hbE5hbWUuc2V0KGdfc3RyZHVwKCJmb2N1cy1ldmVudCIpKTsKICAg
ICAgICAgc2lnbmFsVmFsdWUuc2V0KGdfc3RyZHVwX3ByaW50ZigiJWQiLCBnX3ZhbHVlX2dldF9i
b29sZWFuKCZwYXJhbVZhbHVlc1sxXSkpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVy
QXRrLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vz
c2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyQXRrLmNwcAppbmRleCAwODBkYTE1Li41MGUyNjg5
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0ay9B
Y2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlckF0ay5jcHAKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhh
bmRsZXJBdGsuY3BwCkBAIC05NSw2ICs5NSw4IEBAIGdib29sZWFuIGF4T2JqZWN0RXZlbnRMaXN0
ZW5lcihHU2lnbmFsSW52b2NhdGlvbkhpbnQqIHNpZ25hbEhpbnQsIHVuc2lnbmVkIG51bVBhCiAg
ICAgICAgICAgICBub3RpZmljYXRpb25OYW1lID0gIkFYSW52YWxpZFN0YXR1c0NoYW5nZWQiOwog
ICAgICAgICBlbHNlIGlmICghZ19zdHJjbXAwKGdfdmFsdWVfZ2V0X3N0cmluZygmcGFyYW1WYWx1
ZXNbMV0pLCAibGF5b3V0LWNvbXBsZXRlIikpCiAgICAgICAgICAgICBub3RpZmljYXRpb25OYW1l
ID0gIkFYTGF5b3V0Q29tcGxldGUiOworICAgICAgICBlbHNlIGlmICghZ19zdHJjbXAwKGdfdmFs
dWVfZ2V0X3N0cmluZygmcGFyYW1WYWx1ZXNbMV0pLCAiYnVzeSIpKQorICAgICAgICAgICAgbm90
aWZpY2F0aW9uTmFtZSA9ICJBWEVsZW1lbnRCdXN5Q2hhbmdlZCI7CiAgICAgfSBlbHNlIGlmICgh
Z19zdHJjbXAwKHNpZ25hbFF1ZXJ5LnNpZ25hbF9uYW1lLCAiZm9jdXMtZXZlbnQiKSkgewogICAg
ICAgICBzaWduYWxOYW1lLnNldChnX3N0cmR1cCgiZm9jdXMtZXZlbnQiKSk7CiAgICAgICAgIHNp
Z25hbFZhbHVlLnNldChnX3N0cmR1cF9wcmludGYoIiVkIiwgZ192YWx1ZV9nZXRfYm9vbGVhbigm
cGFyYW1WYWx1ZXNbMV0pKSk7Cg==
</data>
<flag name="review"
          id="235369"
          type_id="1"
          status="+"
          setter="mario"
    />
    <flag name="commit-queue"
          id="235373"
          type_id="3"
          status="-"
          setter="mario"
    />
          </attachment>
      

    </bug>

</bugzilla>