<?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>209192</bug_id>
          
          <creation_ts>2020-03-17 12:34:57 -0700</creation_ts>
          <short_desc>Add WKUIDelegatePrivate SPI _webView:printFrame:completionHandler:</short_desc>
          <delta_ts>2020-03-17 16:33: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>New Bugs</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="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1630840</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-03-17 12:34:57 -0700</bug_when>
    <thetext>Add WKUIDelegatePrivate SPI _webView:printFrame:completionHandler:</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630842</commentid>
    <comment_count>1</comment_count>
      <attachid>393777</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-03-17 12:38:04 -0700</bug_when>
    <thetext>Created attachment 393777
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630843</commentid>
    <comment_count>2</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-03-17 12:38:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/51313336&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630845</commentid>
    <comment_count>3</comment_count>
      <attachid>393777</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-03-17 12:40:56 -0700</bug_when>
    <thetext>Comment on attachment 393777
Patch

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

r=me

&gt; Source/WebKit/UIProcess/Cocoa/UIDelegate.mm:1099
&gt; +    auto handle = API::FrameHandle::create(webFrameProxy.frameID());
&gt; +    if (m_uiDelegate.m_delegateMethods.webViewPrintFrame) {
&gt; +        [(id &lt;WKUIDelegatePrivate&gt;)delegate _webView:m_uiDelegate.m_webView printFrame:wrapper(handle)];
&gt; +        completionHandler();
&gt; +    } else if (m_uiDelegate.m_delegateMethods.webViewPrintFrameCompletionHandler) {
&gt; +        auto checker = CompletionHandlerCallChecker::create(delegate.get(), @selector(_webView:printFrame:completionHandler:));
&gt; +        [(id &lt;WKUIDelegatePrivate&gt;)delegate _webView:m_uiDelegate.m_webView printFrame:wrapper(handle) completionHandler:makeBlockPtr([checker = WTFMove(checker), completionHandler = WTFMove(completionHandler)] () mutable {
&gt; +            if (checker-&gt;completionHandlerHasBeenCalled())
&gt; +                return;
&gt; +            checker-&gt;didCallCompletionHandler();
&gt; +            completionHandler();
&gt; +        }).get()];
&gt; +    } else
&gt; +        completionHandler();

I think you want to do the delegate method check in the opposite order, so the new API wins if implemented. That way, a client can implement both if they need to support older WebKits, without doing #ifdef stuff.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630848</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-03-17 12:47:48 -0700</bug_when>
    <thetext>They could also do crazy things with their own implementation of respondsToSelector, but you&apos;re right.  I switched them.

http://trac.webkit.org/r258574</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630850</commentid>
    <comment_count>5</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-03-17 12:50:08 -0700</bug_when>
    <thetext>http://trac.webkit.org/r258575</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630938</commentid>
    <comment_count>6</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2020-03-17 15:56:17 -0700</bug_when>
    <thetext>This change caused assertion failures with multiple layout and API tests:

ASSERTION FAILED: Completion handler should always be called
!m_function
/Volumes/Data/slave/catalina-debug/build/WebKitBuild/Debug/usr/local/include/wtf/CompletionHandler.h(53) : WTF::CompletionHandler&lt;void ()&gt;::~CompletionHandler()


https://build.webkit.org/builders/Apple-Catalina-Debug-WK2-Tests/builds/2971</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630941</commentid>
    <comment_count>7</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-03-17 15:58:45 -0700</bug_when>
    <thetext>Investigating now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630951</commentid>
    <comment_count>8</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-03-17 16:33:18 -0700</bug_when>
    <thetext>http://trac.webkit.org/r258610

:(

Will be more careful in the future</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393777</attachid>
            <date>2020-03-17 12:38:04 -0700</date>
            <delta_ts>2020-03-17 12:40:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209192-20200317123801.patch</filename>
            <type>text/plain</type>
            <size>11944</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTg1NjQpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDIwLTAzLTE3ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIFdLVUlEZWxl
Z2F0ZVByaXZhdGUgU1BJIF93ZWJWaWV3OnByaW50RnJhbWU6Y29tcGxldGlvbkhhbmRsZXI6Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkxOTIKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUxMzEzMzM2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMganVzdCBsaWtlIHRoZSBleGlzdGluZyBf
d2ViVmlldzpwcmludEZyYW1lOiBidXQgeW91IHRlbGwgaXQgd2hlbiB5b3UncmUgZG9uZSBpbnN0
ZWFkIG9mIGp1c3QgcmV0dXJuaW5nLgorICAgICAgICBDb3ZlcmVkIGJ5IEFQSSB0ZXN0cy4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaDoKKyAgICAgICAgKEFQSTo6VUlD
bGllbnQ6OnByaW50RnJhbWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3Bw
OgorICAgICAgICAoV0tQYWdlU2V0UGFnZVVJQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29j
b2EvVUlEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1t
OgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpzZXREZWxlZ2F0ZSk6CisgICAgICAgIChX
ZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpwcmludEZyYW1lKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpw
cmludEZyYW1lKToKKwogMjAyMC0wMy0xNyAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxl
LmNvbT4KIAogICAgICAgICBUZXJtaW5hdGUgdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyB3aGVuIHJl
Y2VpdmluZyBpbnZhbGlkIElQQyBmcm9tIGEgV2ViSW5zcGVjdG9yIHNlc3Npb24KSW5kZXg6IFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkocmV2aXNpb24gMjU4NTY0KQor
KysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNTgxNywxMiArNTgxNywxMCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cHJpbnRGcmFtZShG
cmFtZUlkZW50CiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1l
KGZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBmcmFtZSk7CiAKLSAgICBt
X3VpQ2xpZW50LT5wcmludEZyYW1lKCp0aGlzLCAqZnJhbWUpOwotCi0gICAgZW5kUHJpbnRpbmco
KTsgLy8gU2VuZCBhIG1lc3NhZ2Ugc3luY2hyb25vdXNseSB3aGlsZSBtX2lzUGVyZm9ybWluZ0RP
TVByaW50T3BlcmF0aW9uIGlzIHN0aWxsIHRydWUuCi0gICAgbV9pc1BlcmZvcm1pbmdET01Qcmlu
dE9wZXJhdGlvbiA9IGZhbHNlOwotCi0gICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICBtX3Vp
Q2xpZW50LT5wcmludEZyYW1lKCp0aGlzLCAqZnJhbWUsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcildIHsKKyAgICAgICAgZW5kUHJpbnRpbmcoKTsgLy8gU2VuZCBhIG1lc3NhZ2Ugc3luY2hy
b25vdXNseSB3aGlsZSBtX2lzUGVyZm9ybWluZ0RPTVByaW50T3BlcmF0aW9uIGlzIHN0aWxsIHRy
dWUuCisgICAgICAgIG1faXNQZXJmb3JtaW5nRE9NUHJpbnRPcGVyYXRpb24gPSBmYWxzZTsKKyAg
ICB9KTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OnNldE1lZGlhVm9sdW1lKGZsb2F0IHZvbHVt
ZSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCShyZXZp
c2lvbiAyNTg1NjQpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtMTQ4LDcgKzE0OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IGZsb2F0IGZvb3RlckhlaWdodChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJh
bWVQcm94eSYpIHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIHZvaWQgZHJhd0hlYWRlcihXZWJL
aXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIFdlYkNvcmU6OkZsb2F0
UmVjdCYmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZHJhd0Zvb3RlcihXZWJLaXQ6OldlYlBhZ2VQ
cm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIFdlYkNvcmU6OkZsb2F0UmVjdCYmKSB7IH0K
LSAgICB2aXJ0dWFsIHZvaWQgcHJpbnRGcmFtZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktp
dDo6V2ViRnJhbWVQcm94eSYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBwcmludEZyYW1lKFdlYktp
dDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKCk7IH0K
IAogICAgIHZpcnR1YWwgYm9vbCBjYW5SdW5Nb2RhbCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgdmlydHVhbCB2b2lkIHJ1bk1vZGFsKFdlYktpdDo6V2ViUGFnZVByb3h5JikgeyB9Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAJKHJldmlzaW9uIDI1
ODU2NCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTE5NTQsMTIgKzE5NTQsMTEgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlVUlDbGll
bnQoV0tQYWdlUmVmIHBhZwogICAgICAgICAgICAgbV9jbGllbnQuZHJhd0Zvb3Rlcih0b0FQSSgm
cGFnZSksIHRvQVBJKCZmcmFtZSksIHRvQVBJKHJlY3QpLCBtX2NsaWVudC5iYXNlLmNsaWVudElu
Zm8pOwogICAgICAgICB9CiAKLSAgICAgICAgdm9pZCBwcmludEZyYW1lKFdlYlBhZ2VQcm94eSYg
cGFnZSwgV2ViRnJhbWVQcm94eSYgZnJhbWUpIGZpbmFsCisgICAgICAgIHZvaWQgcHJpbnRGcmFt
ZShXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkZyYW1lUHJveHkmIGZyYW1lLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIGlmICghbV9jbGllbnQucHJpbnRGcmFtZSkKLSAgICAgICAgICAgICAgICByZXR1cm47
Ci0KLSAgICAgICAgICAgIG1fY2xpZW50LnByaW50RnJhbWUodG9BUEkoJnBhZ2UpLCB0b0FQSSgm
ZnJhbWUpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICAgICAgaWYgKG1fY2xp
ZW50LnByaW50RnJhbWUpCisgICAgICAgICAgICAgICAgbV9jbGllbnQucHJpbnRGcmFtZSh0b0FQ
SSgmcGFnZSksIHRvQVBJKCZmcmFtZSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAg
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgICAgICB9CiAKICAgICAgICAgYm9vbCBj
YW5SdW5Nb2RhbCgpIGNvbnN0IGZpbmFsCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgJKHJldmlzaW9uIDI1
ODU2NCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQ
cml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMCw2ICsxMDAsNyBAQCBzdHJ1Y3QgVUlFZGdl
SW5zZXRzOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVXZWJB
cHBsaWNhdGlvbkNhY2hlUXVvdGFGb3JTZWN1cml0eU9yaWdpbjooV0tTZWN1cml0eU9yaWdpbiAq
KXNlY3VyaXR5T3JpZ2luIGN1cnJlbnRRdW90YToodW5zaWduZWQgbG9uZyBsb25nKWN1cnJlbnRR
dW90YSB0b3RhbEJ5dGVzTmVlZGVkOih1bnNpZ25lZCBsb25nIGxvbmcpdG90YWxCeXRlc05lZWRl
ZCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKHVuc2lnbmVkIGxvbmcgbG9uZyBuZXdRdW90YSkp
ZGVjaXNpb25IYW5kbGVyOwogCiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IHByaW50RnJhbWU6KF9XS0ZyYW1lSGFuZGxlICopZnJhbWU7CistICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IHByaW50RnJhbWU6KF9XS0ZyYW1lSGFuZGxlICopZnJhbWUgY29t
cGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC0gKHZvaWQp
X3dlYlZpZXdDbG9zZTooV0tXZWJWaWV3ICopd2ViVmlldzsKIC0gKHZvaWQpX3dlYlZpZXdGdWxs
c2NyZWVuTWF5UmV0dXJuVG9JbmxpbmU6KFdLV2ViVmlldyAqKXdlYlZpZXc7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCShyZXZpc2lvbiAyNTg1NjQp
CisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEzMyw3ICsxMzMsNyBAQCBwcml2YXRlOgogICAgICAgICB2b2lkIGRlY2lkZVBv
bGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1l
UHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmKSBmaW5hbDsKICAgICAgICAgdm9pZCBjaGVja1Vz
ZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYs
IEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgVXNlck1lZGlhUGVy
bWlzc2lvbkNoZWNrUHJveHkmKSBmaW5hbDsKICAgICAgICAgdm9pZCBtZWRpYUNhcHR1cmVTdGF0
ZURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpIGZpbmFs
OwotICAgICAgICB2b2lkIHByaW50RnJhbWUoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYp
IGZpbmFsOworICAgICAgICB2b2lkIHByaW50RnJhbWUoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQ
cm94eSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CiAjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKICNpZiBIQVZFKEFQUF9MSU5LUykKICAgICAgICAgYm9vbCBzaG91bGRJbmNs
dWRlQXBwTGlua0FjdGlvbnNGb3JFbGVtZW50KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopIGZp
bmFsOwpAQCAtMjA2LDYgKzIwNiw3IEBAIHByaXZhdGU6CiAgICAgICAgIGJvb2wgd2ViVmlld0Rl
Y2lkZURhdGFiYXNlUXVvdGFGb3JTZWN1cml0eU9yaWdpbkRhdGFiYXNlTmFtZURpc3BsYXlOYW1l
Q3VycmVudFF1b3RhQ3VycmVudE9yaWdpblVzYWdlQ3VycmVudERhdGFiYXNlVXNhZ2VFeHBlY3Rl
ZFVzYWdlRGVjaXNpb25IYW5kbGVyIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGVjaWRlV2Vi
QXBwbGljYXRpb25DYWNoZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW5DdXJyZW50UXVvdGFUb3RhbEJ5
dGVzTmVlZGVkIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3UHJpbnRGcmFtZSA6IDE7CisgICAg
ICAgIGJvb2wgd2ViVmlld1ByaW50RnJhbWVDb21wbGV0aW9uSGFuZGxlciA6IDE7CiAgICAgICAg
IGJvb2wgd2ViVmlld0RpZENsb3NlIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3Q2xvc2UgOiAx
OwogICAgICAgICBib29sIHdlYlZpZXdGdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUgOiAxOwpJ
bmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCShyZXZp
c2lvbiAyNTg1NjQpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRl
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMzksNiArMTM5LDcgQEAgdm9pZCBVSURlbGVnYXRlOjpz
ZXREZWxlZ2F0ZShpZCA8V0tVSURlbAogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNp
ZGVEYXRhYmFzZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW5EYXRhYmFzZU5hbWVEaXNwbGF5TmFtZUN1
cnJlbnRRdW90YUN1cnJlbnRPcmlnaW5Vc2FnZUN1cnJlbnREYXRhYmFzZVVzYWdlRXhwZWN0ZWRV
c2FnZURlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKF93ZWJWaWV3OmRlY2lkZURhdGFiYXNlUXVvdGFGb3JTZWN1cml0eU9yaWdpbjpkYXRhYmFz
ZU5hbWU6ZGlzcGxheU5hbWU6Y3VycmVudFF1b3RhOmN1cnJlbnRPcmlnaW5Vc2FnZTpjdXJyZW50
RGF0YWJhc2VVc2FnZTpleHBlY3RlZFVzYWdlOmRlY2lzaW9uSGFuZGxlcjopXTsKICAgICBtX2Rl
bGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlV2ViQXBwbGljYXRpb25DYWNoZVF1b3RhRm9yU2Vj
dXJpdHlPcmlnaW5DdXJyZW50UXVvdGFUb3RhbEJ5dGVzTmVlZGVkID0gW2RlbGVnYXRlIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGVjaWRlV2ViQXBwbGljYXRpb25DYWNo
ZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW46Y3VycmVudFF1b3RhOnRvdGFsQnl0ZXNOZWVkZWQ6ZGVj
aXNpb25IYW5kbGVyOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdQcmludEZyYW1l
ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cHJpbnRG
cmFtZTopXTsKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UHJpbnRGcmFtZUNvbXBsZXRp
b25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZp
ZXc6cHJpbnRGcmFtZTpjb21wbGV0aW9uSGFuZGxlcjopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9k
cy53ZWJWaWV3RGlkQ2xvc2UgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rv
cih3ZWJWaWV3RGlkQ2xvc2U6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0Nsb3Nl
ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXdDbG9zZTop
XTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RnVsbHNjcmVlbk1heVJldHVyblRvSW5s
aW5lID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXdGdWxs
c2NyZWVuTWF5UmV0dXJuVG9JbmxpbmU6KV07CkBAIC0xMDc2LDE2ICsxMDc3LDI2IEBAIHZvaWQg
VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnJlYWNoZWRBcHBsaWMKICAgICB9KS5nZXQoKV07CiB9CiAK
LXZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnByaW50RnJhbWUoV2ViUGFnZVByb3h5JiwgV2Vi
RnJhbWVQcm94eSYgd2ViRnJhbWVQcm94eSkKK3ZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnBy
aW50RnJhbWUoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYgd2ViRnJhbWVQcm94eSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGlmICgh
bV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdQcmludEZyYW1lKQotICAgICAg
ICByZXR1cm47Ci0KICAgICBhdXRvIGRlbGVnYXRlID0gbV91aURlbGVnYXRlLm1fZGVsZWdhdGUu
Z2V0KCk7CiAgICAgaWYgKCFkZWxlZ2F0ZSkKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1
cm4gY29tcGxldGlvbkhhbmRsZXIoKTsKIAotICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+
KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcgcHJpbnRGcmFtZTp3cmFw
cGVyKEFQSTo6RnJhbWVIYW5kbGU6OmNyZWF0ZSh3ZWJGcmFtZVByb3h5LmZyYW1lSUQoKSkpXTsK
KyAgICBhdXRvIGhhbmRsZSA9IEFQSTo6RnJhbWVIYW5kbGU6OmNyZWF0ZSh3ZWJGcmFtZVByb3h5
LmZyYW1lSUQoKSk7CisgICAgaWYgKG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJW
aWV3UHJpbnRGcmFtZSkgeworICAgICAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxl
Z2F0ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUubV93ZWJWaWV3IHByaW50RnJhbWU6d3JhcHBlciho
YW5kbGUpXTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICB9IGVsc2UgaWYgKG1f
dWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UHJpbnRGcmFtZUNvbXBsZXRpb25I
YW5kbGVyKSB7CisgICAgICAgIGF1dG8gY2hlY2tlciA9IENvbXBsZXRpb25IYW5kbGVyQ2FsbENo
ZWNrZXI6OmNyZWF0ZShkZWxlZ2F0ZS5nZXQoKSwgQHNlbGVjdG9yKF93ZWJWaWV3OnByaW50RnJh
bWU6Y29tcGxldGlvbkhhbmRsZXI6KSk7CisgICAgICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZh
dGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcgcHJpbnRGcmFtZTp3
cmFwcGVyKGhhbmRsZSkgY29tcGxldGlvbkhhbmRsZXI6bWFrZUJsb2NrUHRyKFtjaGVja2VyID0g
V1RGTW92ZShjaGVja2VyKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKV0gKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBpZiAoY2hlY2tlci0+Y29tcGxldGlv
bkhhbmRsZXJIYXNCZWVuQ2FsbGVkKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAgY2hlY2tlci0+ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcigpOworICAgICAgICB9KS5nZXQoKV07CisgICAgfSBlbHNlCisgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6
OmNsb3NlKFdlYlBhZ2VQcm94eSopCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTg1NzEpCisrKyBUb29scy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0wMy0xNyAgQWxleCBDaHJpc3Rl
bnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBXS1VJRGVsZWdh
dGVQcml2YXRlIFNQSSBfd2ViVmlldzpwcmludEZyYW1lOmNvbXBsZXRpb25IYW5kbGVyOgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MTkyCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS81MTMxMzMzNj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
VUlEZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bUHJpbnREZWxlZ2F0ZVdpdGhDb21wbGV0aW9uSGFu
ZGxlciBfd2ViVmlldzpwcmludEZyYW1lOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAo
LVtQcmludERlbGVnYXRlV2l0aENvbXBsZXRpb25IYW5kbGVyIHdhaXRGb3JQcmludEZyYW1lQ2Fs
bF0pOgorICAgICAgICAoVEVTVCk6CisKIDIwMjAtMDMtMTcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgbGVzcyBzeW5jIElQQyBmb3IgSVRQIHRlc3RSdW5u
ZXIgbWV0aG9kcwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9V
SURlbGVnYXRlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvVUlEZWxlZ2F0ZS5tbQkocmV2aXNpb24gMjU4NTY0KQorKysgVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9VSURlbGVnYXRlLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC00NDEsNiArNDQxLDM3IEBAIFRFU1QoV2ViS2l0LCBQcmludFByZXZpZXcpCiAgICAgW3ByZXZp
ZXdWaWV3IGRyYXdSZWN0OkNHUmVjdE1ha2UoMCwgMCwgMTAsIDEwKV07CiB9CiAKK0BpbnRlcmZh
Y2UgUHJpbnREZWxlZ2F0ZVdpdGhDb21wbGV0aW9uSGFuZGxlciA6IE5TT2JqZWN0IDxXS1VJRGVs
ZWdhdGVQcml2YXRlPgorLSAodm9pZCl3YWl0Rm9yUHJpbnRGcmFtZUNhbGw7CitAZW5kCisKK0Bp
bXBsZW1lbnRhdGlvbiBQcmludERlbGVnYXRlV2l0aENvbXBsZXRpb25IYW5kbGVyIHsKKyAgICBi
b29sIF9kb25lOworfQorCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHBy
aW50RnJhbWU6KF9XS0ZyYW1lSGFuZGxlICopZnJhbWUgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQg
KF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAgY29tcGxldGlvbkhhbmRsZXIoKTsK
KyAgICBfZG9uZSA9IHRydWU7Cit9CisKKy0gKHZvaWQpd2FpdEZvclByaW50RnJhbWVDYWxsCit7
CisgICAgd2hpbGUgKCFfZG9uZSkKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6c3BpblJ1
bkxvb3AoKTsKK30KKworQGVuZAorCitURVNUKFdlYktpdCwgUHJpbnRXaXRoQ29tcGxldGlvbkhh
bmRsZXIpCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbV0tXZWJWaWV3IG5ld10pOwor
ICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtQcmludERlbGVnYXRlV2l0aENvbXBsZXRpb25I
YW5kbGVyIG5ld10pOworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCld
OworICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOkAiPGhlYWQ+PHRpdGxlPnRlc3RfdGl0bGU8
L3RpdGxlPjwvaGVhZD48Ym9keSBvbmxvYWQ9J3ByaW50KCknPmhlbGxvIHdvcmxkITwvYm9keT4i
IGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwOi8vZXhhbXBsZS5jb20vIl1dOwor
ICAgIFtkZWxlZ2F0ZSB3YWl0Rm9yUHJpbnRGcmFtZUNhbGxdOworfQorCiBAaW50ZXJmYWNlIE5v
dGlmaWNhdGlvbkRlbGVnYXRlIDogTlNPYmplY3QgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+IHsKICAg
ICBib29sIF9hbGxvd05vdGlmaWNhdGlvbnM7CiB9Cg==
</data>
<flag name="review"
          id="409167"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>