<?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>242526</bug_id>
          
          <creation_ts>2022-07-08 10:46:42 -0700</creation_ts>
          <short_desc>:focus-within pseudo class doesn&apos;t get invalidated when frame loses focus</short_desc>
          <delta_ts>2022-07-09 20:41:18 -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>CSS</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mifenton</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1881706</commentid>
    <comment_count>0</comment_count>
      <attachid>460764</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2022-07-08 10:46:42 -0700</bug_when>
    <thetext>Created attachment 460764
test case

Reproduction steps:
1. Open the attached document in Safari / Mini browser
2. Focus the address bar / other parts of app

Expected result:
There will be 100px by 100px green box

Actual result:
Green box remains 50px by 50px</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1881707</commentid>
    <comment_count>1</comment_count>
      <attachid>460765</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2022-07-08 10:48:31 -0700</bug_when>
    <thetext>Created attachment 460765
WIP

This patch doesn&apos;t quite work.

Replacing
Style::PseudoClassChangeInvalidation focusStyleInvalidation(lineage, { { CSSSelector::PseudoClassFocusWithin, activeAndFocused } });
with
lineage.invalidateStyle();
makes it work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1881868</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2022-07-08 23:53:21 -0700</bug_when>
    <thetext>So :focus, :focus-within, :focus-visible all depend on FrameSelection::isFocusedAndActive() via isFrameFocused in SelectorCheckerTestFunctions.h

FrameSelection::isFocusedAndActive() in turn is defined in terms of two boolean states: FrameSelection::m_focused and FocusController::isActive().

FocusController calls FrameSelection::pageActivationChanged() whenever isActive state changes on the focused frame&apos;s FrameSelection.

In the ideal world, we have a single place where these two boolean states are updated at once, and that&apos;s where we instantiate relevant Style::PseudoClassChangeInvalidation but that&apos;s tricky because FocusController is a per-Page concept and FrameSelection is per-Frame concept.

To reconcile, I could imagine a few solutions:
1. Add a new boolean m_isPageActive to FrameSelection which gets sync&apos;ed when FrameSelection becomes newly focused (inside FrameSelection::setFocused). We then update both m_focused &amp; this new boolean whilst we have Style::PseudoClassChangeInvalidation.

2. In FrameSelection::focusedOrActiveStateChanged(), introduce a temporary override for FrameSelection::isFocusedAndActive(), which makes the function return the negative value while Style::PseudoClassChangeInvalidation are instantiated.

3. Simply use Element::invalidateStyle() on these elements for now. This will only occur when WKWebView becomes first responder or resigns first responder (i.e. view gets focused or unfocused in more Web / Windows terminology).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1881870</commentid>
    <comment_count>3</comment_count>
      <attachid>460776</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2022-07-09 00:24:54 -0700</bug_when>
    <thetext>Created attachment 460776
WIP2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1881871</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2022-07-09 00:56:39 -0700</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/2259</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1881914</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-07-09 20:40:50 -0700</bug_when>
    <thetext>Committed 252324@main (ac8282feee7f): &lt;https://commits.webkit.org/252324@main&gt;

Reviewed commits have been landed. Closing PR #2259 and removing active labels.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1881915</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-07-09 20:41:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/96786471&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>460764</attachid>
            <date>2022-07-08 10:46:42 -0700</date>
            <delta_ts>2022-07-08 10:46:57 -0700</delta_ts>
            <desc>test case</desc>
            <filename>focuswithin-invalidation.html</filename>
            <type>text/html</type>
            <size>930</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8Ym9keT4KPHN0eWxlPgojcGFyZW50IHsKICAgIHdpZHRo
OiAxMDBweDsKICAgIGhlaWdodDogMTAwcHg7CiAgICBiYWNrZ3JvdW5kOiBncmVlbjsKfQojcGFy
ZW50OmZvY3VzLXdpdGhpbiB7CiAgICB3aWR0aDogNTBweDsKICAgIGhlaWdodDogNTBweDsKfQoj
dGFyZ2V0IHsKICAgIHdpZHRoOiA1MHB4OwogICAgaGVpZ2h0OiA1MHB4OwogICAgb3V0bGluZTog
bm9uZTsKfQo8L3N0eWxlPgo8ZGl2IGlkPSJwYXJlbnQiPjxkaXYgaWQ9InRhcmdldCIgdGFiaW5k
ZXg9IjAiPjwvZGl2PjwvZGl2Pgo8ZGl2PjwvZGl2Pgo8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQ+Cgp0YXJnZXQuZm9jdXMoKTsKCm9u
bG9hZCA9IHJ1blRlc3Q7Cgphc3luYyBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgaWYgKCF3aW5k
b3cudGVzdFJ1bm5lcikKICAgICAgICByZXR1cm47CgogICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CgogICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oaG9zdC5vZmZzZXRMZWZ0ICsgNSwg
aG9zdC5vZmZzZXRUb3AgKyA1KTsKICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwogICAgZXZl
bnRTZW5kZXIubW91c2VVcCgpOwoKICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBy
ZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gc2V0VGltZW91dChyZXNvbHZlLCAwKSkpOwoKICAg
IGF3YWl0IFVJSGVscGVyLnJlc2lnbkZpcnN0UmVzcG9uZGVyKCk7CgogICAgYXdhaXQgbmV3IFBy
b21pc2UoKHJlc29sdmUpID0+IHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiBzZXRUaW1lb3V0
KHJlc29sdmUsIDApKSk7CgogICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cn0KCjwvc2NyaXB0
Pgo8L2JvZHk+CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>460765</attachid>
            <date>2022-07-08 10:48:31 -0700</date>
            <delta_ts>2022-07-09 00:24:54 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>wip242526.patch</filename>
            <type>text/plain</type>
            <size>2460</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKaW5kZXggZDhiMjk4OTczMDZkLi5k
OTJhMmI2NzI4N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNr
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCkBAIC05
OTEsNyArOTkxLDcgQEAgYm9vbCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lKENoZWNraW5nQ29u
dGV4dCYgY2hlY2tpbmdDb250ZXh0LCBjb25zdCBMb2NhbENvbnQKICAgICAgICAgY2FzZSBDU1NT
ZWxlY3Rvcjo6UHNldWRvQ2xhc3NGb2N1c1Zpc2libGU6CiAgICAgICAgICAgICByZXR1cm4gbWF0
Y2hlc0ZvY3VzVmlzaWJsZVBzZXVkb0NsYXNzKGVsZW1lbnQpOwogICAgICAgICBjYXNlIENTU1Nl
bGVjdG9yOjpQc2V1ZG9DbGFzc0ZvY3VzV2l0aGluOgotICAgICAgICAgICAgcmV0dXJuIGVsZW1l
bnQuaGFzRm9jdXNXaXRoaW4oKTsKKyAgICAgICAgICAgIHJldHVybiBtYXRjaGVzRm9jdXNXaXRo
aW5Qc2V1ZG9DbGFzcyhlbGVtZW50KTsKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRv
Q2xhc3NIb3ZlcjoKICAgICAgICAgICAgIGlmIChtX3N0cmljdFBhcnNpbmcgfHwgZWxlbWVudC5p
c0xpbmsoKSB8fCBjYW5NYXRjaEhvdmVyT3JBY3RpdmVJblF1aXJrc01vZGUoY29udGV4dCkpIHsK
ICAgICAgICAgICAgICAgICAvLyBTZWUgdGhlIGNvbW1lbnQgaW4gZ2VuZXJhdGVFbGVtZW50SXNI
b3ZlcmVkKCkgaW4gU2VsZWN0b3JDb21waWxlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFt
ZVNlbGVjdGlvbi5jcHAKaW5kZXggODdkYjdlYmJlZDQxLi4wNmVmNGNiYTVmZDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC0zNSw2ICszNSw3IEBACiAj
aW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCiAjaW5jbHVkZSAi
RWxlbWVudC5oIgorI2luY2x1ZGUgIkVsZW1lbnRBbmNlc3Rvckl0ZXJhdG9yLmgiCiAjaW5jbHVk
ZSAiRWxlbWVudEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVu
dE5hbWVzLmgiCkBAIC01Nyw2ICs1OCw3IEBACiAjaW5jbHVkZSAiTGVnYWN5SW5saW5lVGV4dEJv
eC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAi
UHNldWRvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24uaCIKICNpbmNsdWRlICJSYW5nZS5oIgogI2lu
Y2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJl
YS5oIgpAQCAtMjE0Nyw3ICsyMTQ5LDkgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6Zm9jdXNlZE9y
QWN0aXZlU3RhdGVDaGFuZ2VkKCkKICAgICAvLyBSZW5kZXJUaGVtZTo6aXNGb2N1c2VkKCkgY2hl
Y2sgaWYgdGhlIGZyYW1lIGlzIGFjdGl2ZSwgd2UgaGF2ZSB0bwogICAgIC8vIHVwZGF0ZSBzdHls
ZSBhbmQgdGhlbWUgc3RhdGUgdGhhdCBkZXBlbmRlZCBvbiB0aG9zZS4KICAgICBmb3IgKFJlZlB0
ciBlbGVtZW50ID0gbV9kb2N1bWVudC0+Zm9jdXNlZEVsZW1lbnQoKTsgZWxlbWVudDsgZWxlbWVu
dCA9IGVsZW1lbnQtPnNoYWRvd0hvc3QoKSkgewotICAgICAgICBlbGVtZW50LT5pbnZhbGlkYXRl
U3R5bGVGb3JTdWJ0cmVlKCk7CisgICAgICAgIFN0eWxlOjpQc2V1ZG9DbGFzc0NoYW5nZUludmFs
aWRhdGlvbiBmb2N1c1N0eWxlSW52YWxpZGF0aW9uKCplbGVtZW50LCB7IHsgQ1NTU2VsZWN0b3I6
OlBzZXVkb0NsYXNzRm9jdXMsIGFjdGl2ZUFuZEZvY3VzZWQgfSwgeyBDU1NTZWxlY3Rvcjo6UHNl
dWRvQ2xhc3NGb2N1c1Zpc2libGUsIGFjdGl2ZUFuZEZvY3VzZWQgfSB9KTsKKyAgICAgICAgZm9y
IChhdXRvJiBsaW5lYWdlIDogbGluZWFnZU9mVHlwZTxFbGVtZW50PigqZWxlbWVudCkpCisgICAg
ICAgICAgICBTdHlsZTo6UHNldWRvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24gZm9jdXNTdHlsZUlu
dmFsaWRhdGlvbihsaW5lYWdlLCB7IHsgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzRm9jdXNXaXRo
aW4sIGFjdGl2ZUFuZEZvY3VzZWQgfSB9KTsKICAgICAgICAgaWYgKFJlbmRlck9iamVjdCogcmVu
ZGVyZXIgPSBlbGVtZW50LT5yZW5kZXJlcigpOyByZW5kZXJlciAmJiByZW5kZXJlci0+c3R5bGUo
KS5oYXNFZmZlY3RpdmVBcHBlYXJhbmNlKCkpCiAgICAgICAgICAgICByZW5kZXJlci0+dGhlbWUo
KS5zdGF0ZUNoYW5nZWQoKnJlbmRlcmVyLCBDb250cm9sU3RhdGVzOjpTdGF0ZXM6OkZvY3VzZWQp
OwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>460776</attachid>
            <date>2022-07-09 00:24:54 -0700</date>
            <delta_ts>2022-07-09 01:40:32 -0700</delta_ts>
            <desc>WIP2</desc>
            <filename>wip242526b.patch</filename>
            <type>text/plain</type>
            <size>5012</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKaW5kZXggZDhiMjk4OTczMDZkLi5k
OTJhMmI2NzI4N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNr
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCkBAIC05
OTEsNyArOTkxLDcgQEAgYm9vbCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lKENoZWNraW5nQ29u
dGV4dCYgY2hlY2tpbmdDb250ZXh0LCBjb25zdCBMb2NhbENvbnQKICAgICAgICAgY2FzZSBDU1NT
ZWxlY3Rvcjo6UHNldWRvQ2xhc3NGb2N1c1Zpc2libGU6CiAgICAgICAgICAgICByZXR1cm4gbWF0
Y2hlc0ZvY3VzVmlzaWJsZVBzZXVkb0NsYXNzKGVsZW1lbnQpOwogICAgICAgICBjYXNlIENTU1Nl
bGVjdG9yOjpQc2V1ZG9DbGFzc0ZvY3VzV2l0aGluOgotICAgICAgICAgICAgcmV0dXJuIGVsZW1l
bnQuaGFzRm9jdXNXaXRoaW4oKTsKKyAgICAgICAgICAgIHJldHVybiBtYXRjaGVzRm9jdXNXaXRo
aW5Qc2V1ZG9DbGFzcyhlbGVtZW50KTsKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRv
Q2xhc3NIb3ZlcjoKICAgICAgICAgICAgIGlmIChtX3N0cmljdFBhcnNpbmcgfHwgZWxlbWVudC5p
c0xpbmsoKSB8fCBjYW5NYXRjaEhvdmVyT3JBY3RpdmVJblF1aXJrc01vZGUoY29udGV4dCkpIHsK
ICAgICAgICAgICAgICAgICAvLyBTZWUgdGhlIGNvbW1lbnQgaW4gZ2VuZXJhdGVFbGVtZW50SXNI
b3ZlcmVkKCkgaW4gU2VsZWN0b3JDb21waWxlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFt
ZVNlbGVjdGlvbi5jcHAKaW5kZXggODdkYjdlYmJlZDQxLi5lMTIzOTg0MjIxYTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC01Nyw2ICs1Nyw3IEBACiAj
aW5jbHVkZSAiTGVnYWN5SW5saW5lVGV4dEJveC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNp
bmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUHNldWRvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24u
aCIKICNpbmNsdWRlICJSYW5nZS5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5oIgpAQCAtMTY2LDYgKzE2Nyw3IEBAIEZyYW1l
U2VsZWN0aW9uOjpGcmFtZVNlbGVjdGlvbihEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgLCBtX2Nh
cmV0UGFpbnQodHJ1ZSkKICAgICAsIG1faXNDYXJldEJsaW5raW5nU3VzcGVuZGVkKGZhbHNlKQog
ICAgICwgbV9mb2N1c2VkKGRvY3VtZW50ICYmIGRvY3VtZW50LT5mcmFtZSgpICYmIGRvY3VtZW50
LT5wYWdlKCkgJiYgZG9jdW1lbnQtPnBhZ2UoKS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZEZy
YW1lKCkgPT0gZG9jdW1lbnQtPmZyYW1lKCkpCisgICAgLCBtX2lzQWN0aXZlKG1fZG9jdW1lbnQt
PnBhZ2UoKSAmJiBtX2RvY3VtZW50LT5wYWdlKCktPmZvY3VzQ29udHJvbGxlcigpLmlzQWN0aXZl
KCkpCiAgICAgLCBtX3Nob3VsZFNob3dCbG9ja0N1cnNvcihmYWxzZSkKICAgICAsIG1fcGVuZGlu
Z1NlbGVjdGlvblVwZGF0ZShmYWxzZSkKICAgICAsIG1fYWx3YXlzQWxpZ25DdXJzb3JPblNjcm9s
bFdoZW5SZXZlYWxpbmdTZWxlY3Rpb24oZmFsc2UpCkBAIC0yMTQyLDM1ICsyMTQ0LDUxIEBAIHZv
aWQgRnJhbWVTZWxlY3Rpb246OmZvY3VzZWRPckFjdGl2ZVN0YXRlQ2hhbmdlZCgpCiAgICAgaWYg
KGFjdGl2ZUFuZEZvY3VzZWQpCiAgICAgICAgIHNldFNlbGVjdGlvbkZyb21Ob25lKCk7CiAgICAg
c2V0Q2FyZXRWaXNpYmlsaXR5KGFjdGl2ZUFuZEZvY3VzZWQgPyBWaXNpYmxlIDogSGlkZGVuLCBT
aG91bGRVcGRhdGVBcHBlYXJhbmNlOjpZZXMpOworI2VuZGlmCit9CiAKLSAgICAvLyBCZWNhdXNl
IFN0eWxlOjpSZXNvbHZlcjo6Y2hlY2tPbmVTZWxlY3RvcigpIGFuZAotICAgIC8vIFJlbmRlclRo
ZW1lOjppc0ZvY3VzZWQoKSBjaGVjayBpZiB0aGUgZnJhbWUgaXMgYWN0aXZlLCB3ZSBoYXZlIHRv
Ci0gICAgLy8gdXBkYXRlIHN0eWxlIGFuZCB0aGVtZSBzdGF0ZSB0aGF0IGRlcGVuZGVkIG9uIHRo
b3NlLgotICAgIGZvciAoUmVmUHRyIGVsZW1lbnQgPSBtX2RvY3VtZW50LT5mb2N1c2VkRWxlbWVu
dCgpOyBlbGVtZW50OyBlbGVtZW50ID0gZWxlbWVudC0+c2hhZG93SG9zdCgpKSB7Ci0gICAgICAg
IGVsZW1lbnQtPmludmFsaWRhdGVTdHlsZUZvclN1YnRyZWUoKTsKK3N0YXRpYyBWZWN0b3I8U3R5
bGU6OlBzZXVkb0NsYXNzQ2hhbmdlSW52YWxpZGF0aW9uPiBpbnZhbGlkYXRlRm9jdXNlZEVsZW1l
bnRBbmRTaGFkb3dJbmNsdWRpbmdBbmNlc3RvcnMoRWxlbWVudCYgZm9jdXNlZEVsZW1lbnQsIGJv
b2wgYWN0aXZlQW5kRm9jdXNlZCkKK3sKKyAgICBWZWN0b3I8U3R5bGU6OlBzZXVkb0NsYXNzQ2hh
bmdlSW52YWxpZGF0aW9uPiBpbnZhbGlkYXRpb25zOworICAgIGZvciAoUmVmUHRyIGVsZW1lbnQg
PSAmZm9jdXNlZEVsZW1lbnQ7IGVsZW1lbnQ7IGVsZW1lbnQgPSBlbGVtZW50LT5zaGFkb3dIb3N0
KCkpIHsKKyAgICAgICAgaW52YWxpZGF0aW9ucy5hcHBlbmQoeyAqZWxlbWVudCwgeyB7IENTU1Nl
bGVjdG9yOjpQc2V1ZG9DbGFzc0ZvY3VzLCBhY3RpdmVBbmRGb2N1c2VkIH0sIHsgQ1NTU2VsZWN0
b3I6OlBzZXVkb0NsYXNzRm9jdXNWaXNpYmxlLCBhY3RpdmVBbmRGb2N1c2VkIH0gfSB9KTsKKyAg
ICAgICAgZm9yIChhdXRvJiBsaW5lYWdlIDogbGluZWFnZU9mVHlwZTxFbGVtZW50PigqZWxlbWVu
dCkpCisgICAgICAgICAgICBpbnZhbGlkYXRpb25zLmFwcGVuZCh7bGluZWFnZSwgQ1NTU2VsZWN0
b3I6OlBzZXVkb0NsYXNzRm9jdXNXaXRoaW4sIGFjdGl2ZUFuZEZvY3VzZWR9KTsKICAgICAgICAg
aWYgKFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBlbGVtZW50LT5yZW5kZXJlcigpOyByZW5kZXJl
ciAmJiByZW5kZXJlci0+c3R5bGUoKS5oYXNFZmZlY3RpdmVBcHBlYXJhbmNlKCkpCiAgICAgICAg
ICAgICByZW5kZXJlci0+dGhlbWUoKS5zdGF0ZUNoYW5nZWQoKnJlbmRlcmVyLCBDb250cm9sU3Rh
dGVzOjpTdGF0ZXM6OkZvY3VzZWQpOwogICAgIH0KLSNlbmRpZgorICAgIHJldHVybiBpbnZhbGlk
YXRpb25zOwogfQogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjpwYWdlQWN0aXZhdGlvbkNoYW5nZWQo
KQogeworICAgIGlmIChSZWZQdHIgZm9jdXNlZEVsZW1lbnQgPSBtX2RvY3VtZW50LT5mb2N1c2Vk
RWxlbWVudCgpKSB7CisgICAgICAgIGJvb2wgaXNBY3RpdmUgPSBtX2RvY3VtZW50LT5wYWdlKCkg
JiYgbV9kb2N1bWVudC0+cGFnZSgpLT5mb2N1c0NvbnRyb2xsZXIoKS5pc0FjdGl2ZSgpOworICAg
ICAgICBhdXRvIGludmFsaWRhdGlvbnMgPSBpbnZhbGlkYXRlRm9jdXNlZEVsZW1lbnRBbmRTaGFk
b3dJbmNsdWRpbmdBbmNlc3RvcnMoKmZvY3VzZWRFbGVtZW50LCBtX2ZvY3VzZWQgJiYgaXNBY3Rp
dmUpOworICAgICAgICBtX2lzQWN0aXZlID0gaXNBY3RpdmU7CisgICAgfQorCiAgICAgZm9jdXNl
ZE9yQWN0aXZlU3RhdGVDaGFuZ2VkKCk7CiB9CiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246OnNldEZv
Y3VzZWQoYm9vbCBmbGFnKQordm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0Rm9jdXNlZChib29sIGlz
Rm9jdXNlZCkKIHsKLSAgICBpZiAobV9mb2N1c2VkID09IGZsYWcpCisgICAgaWYgKG1fZm9jdXNl
ZCA9PSBpc0ZvY3VzZWQpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2ZvY3VzZWQgPSBmbGFnOwor
CisgICAgaWYgKFJlZlB0ciBmb2N1c2VkRWxlbWVudCA9IG1fZG9jdW1lbnQtPmZvY3VzZWRFbGVt
ZW50KCkpIHsKKyAgICAgICAgYm9vbCBpc0FjdGl2ZSA9IG1fZG9jdW1lbnQtPnBhZ2UoKSAmJiBt
X2RvY3VtZW50LT5wYWdlKCktPmZvY3VzQ29udHJvbGxlcigpLmlzQWN0aXZlKCk7CisgICAgICAg
IGF1dG8gaW52YWxpZGF0aW9ucyA9IGludmFsaWRhdGVGb2N1c2VkRWxlbWVudEFuZFNoYWRvd0lu
Y2x1ZGluZ0FuY2VzdG9ycygqZm9jdXNlZEVsZW1lbnQsIGlzRm9jdXNlZCAmJiBpc0FjdGl2ZSk7
CisgICAgICAgIG1fZm9jdXNlZCA9IGlzRm9jdXNlZDsKKyAgICAgICAgbV9pc0FjdGl2ZSA9IGlz
QWN0aXZlOworICAgIH0KIAogICAgIGZvY3VzZWRPckFjdGl2ZVN0YXRlQ2hhbmdlZCgpOwogfQog
CiBib29sIEZyYW1lU2VsZWN0aW9uOjppc0ZvY3VzZWRBbmRBY3RpdmUoKSBjb25zdAogewotICAg
IHJldHVybiBtX2ZvY3VzZWQgJiYgbV9kb2N1bWVudC0+cGFnZSgpICYmIG1fZG9jdW1lbnQtPnBh
Z2UoKS0+Zm9jdXNDb250cm9sbGVyKCkuaXNBY3RpdmUoKTsKKyAgICByZXR1cm4gbV9mb2N1c2Vk
ICYmIG1faXNBY3RpdmU7CiB9CiAKICNpZiBFTkFCTEUoVEVYVF9DQVJFVCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAppbmRleCBmYTA0YjI4M2U3MzkuLjg1ZjI5ZWJiMjM0
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaApAQCAtMzQ5LDYgKzM0
OSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2NhcmV0UGFpbnQgOiAxOwogICAgIGJvb2wgbV9p
c0NhcmV0QmxpbmtpbmdTdXNwZW5kZWQgOiAxOwogICAgIGJvb2wgbV9mb2N1c2VkIDogMTsKKyAg
ICBib29sIG1faXNBY3RpdmUgOiAxOwogICAgIGJvb2wgbV9zaG91bGRTaG93QmxvY2tDdXJzb3Ig
OiAxOwogICAgIGJvb2wgbV9wZW5kaW5nU2VsZWN0aW9uVXBkYXRlIDogMTsKICAgICBib29sIG1f
YWx3YXlzQWxpZ25DdXJzb3JPblNjcm9sbFdoZW5SZXZlYWxpbmdTZWxlY3Rpb24gOiAxOwo=
</data>
<flag name="commit-queue"
          id="489781"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>