<?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>227133</bug_id>
          
          <creation_ts>2021-06-17 09:47:06 -0700</creation_ts>
          <short_desc>Trying to take empty snapshots of the view should not cause crashes</short_desc>
          <delta_ts>2021-06-17 14:23:32 -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>WebKit2</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1770692</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-17 09:47:06 -0700</bug_when>
    <thetext>Trying to take empty snapshots of the view should not cause crashes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770695</commentid>
    <comment_count>1</comment_count>
      <attachid>431685</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-17 09:50:38 -0700</bug_when>
    <thetext>Created attachment 431685
Returns a NSError</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770710</commentid>
    <comment_count>2</comment_count>
      <attachid>431685</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2021-06-17 10:12:39 -0700</bug_when>
    <thetext>Comment on attachment 431685
Returns a NSError

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

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:1178
&gt; +    if (CGRectIsEmpty(rectInViewCoordinates) || !snapshotWidth) {
&gt; +        RunLoop::main().dispatch([completionHandler = WTFMove(completionHandler)]() mutable {
&gt; +            completionHandler(nil, createNSError(WKErrorUnknown).get());
&gt; +        });
&gt; +        return;
&gt; +    }

Is returning WKErrorUnknown better than returning an empty image? NSImage appears to support an empty image constructor, with the caveat that using the image later might cause you problems:

&quot;It is permissible to initialize the image object by passing a size of (0.0, 0.0); however, you must set the size to a non-zero value before using it or an exception will be raised.&quot; [ https://developer.apple.com/documentation/appkit/nsimage/1520033-initwithsize?language=objc ]

Perhaps those problems will be clearer than WKErrorUnknown.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770715</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-17 10:18:41 -0700</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #2)
&gt; Comment on attachment 431685 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=431685&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:1178
&gt; &gt; +    if (CGRectIsEmpty(rectInViewCoordinates) || !snapshotWidth) {
&gt; &gt; +        RunLoop::main().dispatch([completionHandler = WTFMove(completionHandler)]() mutable {
&gt; &gt; +            completionHandler(nil, createNSError(WKErrorUnknown).get());
&gt; &gt; +        });
&gt; &gt; +        return;
&gt; &gt; +    }
&gt; 
&gt; Is returning WKErrorUnknown better than returning an empty image? NSImage
&gt; appears to support an empty image constructor, with the caveat that using
&gt; the image later might cause you problems:
&gt; 
&gt; &quot;It is permissible to initialize the image object by passing a size of (0.0,
&gt; 0.0); however, you must set the size to a non-zero value before using it or
&gt; an exception will be raised.&quot; [
&gt; https://developer.apple.com/documentation/appkit/nsimage/1520033-
&gt; initwithsize?language=objc ]
&gt; 
&gt; Perhaps those problems will be clearer than WKErrorUnknown.

If you prefer, I can certainly do that. I tried to maintain pre-existing behavior in release builds (we would hit the assertion in debug).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770716</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-17 10:25:05 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #3)
&gt; (In reply to Geoffrey Garen from comment #2)
&gt; &gt; Comment on attachment 431685 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=431685&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:1178
&gt; &gt; &gt; +    if (CGRectIsEmpty(rectInViewCoordinates) || !snapshotWidth) {
&gt; &gt; &gt; +        RunLoop::main().dispatch([completionHandler = WTFMove(completionHandler)]() mutable {
&gt; &gt; &gt; +            completionHandler(nil, createNSError(WKErrorUnknown).get());
&gt; &gt; &gt; +        });
&gt; &gt; &gt; +        return;
&gt; &gt; &gt; +    }
&gt; &gt; 
&gt; &gt; Is returning WKErrorUnknown better than returning an empty image? NSImage
&gt; &gt; appears to support an empty image constructor, with the caveat that using
&gt; &gt; the image later might cause you problems:
&gt; &gt; 
&gt; &gt; &quot;It is permissible to initialize the image object by passing a size of (0.0,
&gt; &gt; 0.0); however, you must set the size to a non-zero value before using it or
&gt; &gt; an exception will be raised.&quot; [
&gt; &gt; https://developer.apple.com/documentation/appkit/nsimage/1520033-
&gt; &gt; initwithsize?language=objc ]
&gt; &gt; 
&gt; &gt; Perhaps those problems will be clearer than WKErrorUnknown.
&gt; 
&gt; If you prefer, I can certainly do that. I tried to maintain pre-existing
&gt; behavior in release builds (we would hit the assertion in debug).

I am also unsure how to create an empty UIImage. I don&apos;t see a similar API as for NSImage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770717</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-17 10:28:14 -0700</bug_when>
    <thetext>Found in the context of rdar://79424132.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770725</commentid>
    <comment_count>6</comment_count>
      <attachid>431692</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-17 11:03:17 -0700</bug_when>
    <thetext>Created attachment 431692
Returns an empty image</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770729</commentid>
    <comment_count>7</comment_count>
      <attachid>431692</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-06-17 11:26:16 -0700</bug_when>
    <thetext>Comment on attachment 431692
Returns an empty image

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

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:1180
&gt; +            completionHandler(image.get(), nil);

I&apos;m a little confused. The image param is nullable, shouldn&apos;t we just do that? (as a consumer of many cocoa APIs, that seems less surprising to me than this)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770732</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-17 11:31:08 -0700</bug_when>
    <thetext>(In reply to Tim Horton from comment #7)
&gt; Comment on attachment 431692 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=431692&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:1180
&gt; &gt; +            completionHandler(image.get(), nil);
&gt; 
&gt; I&apos;m a little confused. The image param is nullable, shouldn&apos;t we just do
&gt; that? (as a consumer of many cocoa APIs, that seems less surprising to me
&gt; than this)

So your preference would be a nil image AND a nil NSError?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770735</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-17 11:34:46 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #8)
&gt; (In reply to Tim Horton from comment #7)
&gt; &gt; Comment on attachment 431692 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=431692&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:1180
&gt; &gt; &gt; +            completionHandler(image.get(), nil);
&gt; &gt; 
&gt; &gt; I&apos;m a little confused. The image param is nullable, shouldn&apos;t we just do
&gt; &gt; that? (as a consumer of many cocoa APIs, that seems less surprising to me
&gt; &gt; than this)
&gt; 
&gt; So your preference would be a nil image AND a nil NSError?

Our documentation says &quot;The completionHandler is passed the image of the viewport contents or an error.&quot;

My first patch was passing an error, my second one is passing an empty image. I think either would be fine but we need to agree on something and fix the crashes on the bots :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770739</commentid>
    <comment_count>10</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-06-17 11:38:04 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #9)
&gt; (In reply to Chris Dumez from comment #8)
&gt; &gt; (In reply to Tim Horton from comment #7)
&gt; &gt; &gt; Comment on attachment 431692 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=431692&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:1180
&gt; &gt; &gt; &gt; +            completionHandler(image.get(), nil);
&gt; &gt; &gt; 
&gt; &gt; &gt; I&apos;m a little confused. The image param is nullable, shouldn&apos;t we just do
&gt; &gt; &gt; that? (as a consumer of many cocoa APIs, that seems less surprising to me
&gt; &gt; &gt; than this)
&gt; &gt; 
&gt; &gt; So your preference would be a nil image AND a nil NSError?
&gt; 
&gt; Our documentation says &quot;The completionHandler is passed the image of the
&gt; viewport contents or an error.&quot;
&gt; 
&gt; My first patch was passing an error, my second one is passing an empty
&gt; image. I think either would be fine but we need to agree on something and
&gt; fix the crashes on the bots :)

Ahaa, fair :) I think either is definitely fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770742</commentid>
    <comment_count>11</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-06-17 11:39:05 -0700</bug_when>
    <thetext>I guess.. you did ask for an empty image, and you got an empty image, so I will r+ that one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770804</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-17 13:48:52 -0700</bug_when>
    <thetext>Committed r279006 (238931@main): &lt;https://commits.webkit.org/238931@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 431692.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770806</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-17 13:49:29 -0700</bug_when>
    <thetext>&lt;rdar://problem/79468888&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770817</commentid>
    <comment_count>14</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2021-06-17 14:23:32 -0700</bug_when>
    <thetext>&gt; I guess.. you did ask for an empty image, and you got an empty image

FWIW, that was my thinking too.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431685</attachid>
            <date>2021-06-17 09:50:38 -0700</date>
            <delta_ts>2021-06-17 11:39:29 -0700</delta_ts>
            <desc>Returns a NSError</desc>
            <filename>bug-227133-20210617095037.patch</filename>
            <type>text/plain</type>
            <size>7220</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4OTg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDk5NjY3Yjg0MTlmYTMyNTIz
NWM3NWMwOThjNDNiNjIyMDk0NzUwMmYuLjdmNWQ1OWYyZTE0NTM5ZDAyNzIyMGU4OTU1ZDI0NjA4
MDZhZWUwYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDYtMTcgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBUcnlpbmcgdG8gdGFrZSBlbXB0eSBz
bmFwc2hvdHMgb2YgdGhlIHZpZXcgc2hvdWxkIG5vdCBjYXVzZSBjcmFzaGVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjcxMzMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUcnlpbmcgdG8gdGFrZSBlbXB0
eSBzbmFwc2hvdHMgb2YgdGhlIHZpZXcgc2hvdWxkIG5vdCBjYXVzZSBjcmFzaGVzLiBXZSB3b3Vs
ZCBwcmV2aW91c2x5CisgICAgICAgIHNlZSBjcmFzaGVzIGJlY2F1c2U6CisgICAgICAgIDEuIFdl
IHdvdWxkIGVuZCB1cCBkb2luZyBkaXZpc2lvbnMgYnkgemVybworICAgICAgICAyLiBXZSB3b3Vs
ZCBoaXQgdGhlIEFTU0VSVChzaXplKSBpbiBTaGFyZWRNZW1vcnk6OmFsbG9jYXRlKCkuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tX
ZWJWaWV3IHRha2VTbmFwc2hvdFdpdGhDb25maWd1cmF0aW9uOmNvbXBsZXRpb25IYW5kbGVyOl0p
OgorCiAyMDIxLTA2LTE3ICBQZXIgQXJuZSAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAg
IFttYWNPU10gQ2xvc2Ugb3BlbiBjb25uZWN0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggZjdkMzVhZDBiOGJlYzZhZTRlY2FiMDM2
ZDc2NGFkZjAxZmQzZTc5MC4uMWRkMDM1Y2YzZDM4ZWFhOGM0MTcyNWQ0ZWY2OGRmM2VkMjA1N2U5
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
CkBAIC0xMTcwLDYgKzExNzAsMTMgQEAgLSAodm9pZCl0YWtlU25hcHNob3RXaXRoQ29uZmlndXJh
dGlvbjooV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24gKilzbmFwc2hvdENvbmZpZ3UKIAogICAgIGF1
dG8gaGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcik7CiAKKyAgICBpZiAo
Q0dSZWN0SXNFbXB0eShyZWN0SW5WaWV3Q29vcmRpbmF0ZXMpIHx8ICFzbmFwc2hvdFdpZHRoKSB7
CisgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKG5pbCwgY3JlYXRlTlNFcnJvcihXS0Vycm9yVW5rbm93bikuZ2V0KCkpOwor
ICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogI2lmIFVTRShBUFBLSVQpCiAg
ICAgQ0dGbG9hdCBpbWFnZVNjYWxlID0gc25hcHNob3RXaWR0aCAvIHJlY3RJblZpZXdDb29yZGlu
YXRlcy5zaXplLndpZHRoOwogICAgIENHRmxvYXQgaW1hZ2VIZWlnaHQgPSBpbWFnZVNjYWxlICog
cmVjdEluVmlld0Nvb3JkaW5hdGVzLnNpemUuaGVpZ2h0OwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGFmYjMxNjRhN2IwZmRlNTNhYmNjY2FmNzgx
MDFkYzc3ZDMyZGFlOTMuLmEzZjI4ZjNjZDA2ZTU5ZTAyYzE4YTg0MDkzMjdlNTQ0ZjBiZTUxNTMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAyMS0wNi0xNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFRyeWluZyB0byB0YWtlIGVtcHR5IHNuYXBzaG90cyBvZiB0aGUgdmlldyBzaG91
bGQgbm90IGNhdXNlIGNyYXNoZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNzEzMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBBUEkgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3U25hcHNob3QubW06CisgICAgICAgIChU
RVNUKToKKwogMjAyMS0wNi0xNyAgT3Jpb2wgQnJ1ZmF1ICA8b2JydWZhdUBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtjc3MtbG9naWNhbF0gSW1wbGVtZW50IGxvZ2ljYWwgcHJvcGVydHkgZ3JvdXBz
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2Vi
Vmlld1NuYXBzaG90Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9X
S1dlYlZpZXdTbmFwc2hvdC5tbQppbmRleCA2YjMwNTBiZDBjNWY4Njc0MjE4NjY5M2Q5N2FjMjVi
M2IxYWUzN2ZjLi4wYTQ4MWVmNmFmZDQ1NDI1OGI3NGMzODhlODlkOTBkOTJjODFhOTYyIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld1Nu
YXBzaG90Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tX
ZWJWaWV3U25hcHNob3QubW0KQEAgLTgyLDYgKzgyLDEwOSBAQCBURVNUKFdLV2ViVmlldywgU25h
cHNob3RJbWFnZUVycm9yKQogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsK
IH0KIAorVEVTVChXS1dlYlZpZXcsIFNuYXBzaG90SW1hZ2VFbXB0eVJlY3RFcnJvcikKK3sKKyAg
ICBDR0Zsb2F0IHZpZXdXaWR0aCA9IDgwMDsKKyAgICBDR0Zsb2F0IHZpZXdIZWlnaHQgPSA2MDA7
CisgICAgUmV0YWluUHRyPFdLV2ViVmlldz4gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCB2aWV3V2lkdGgsIHZpZXdIZWln
aHQpXSk7CisKKyAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpAIjxib2R5IHN0eWxlPSdiYWNr
Z3JvdW5kLWNvbG9yOiByZWQ7Jz48L2JvZHk+IiBiYXNlVVJMOm5pbF07CisgICAgW3dlYlZpZXcg
X3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25dOworCisgICAgYXV0byBwaWQgPSBbd2Vi
VmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOworCisgICAgUmV0YWluUHRyPFdLU25hcHNob3RD
b25maWd1cmF0aW9uPiBzbmFwc2hvdENvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tTbmFwc2hv
dENvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBbc25hcHNob3RDb25maWd1cmF0aW9u
IHNldFJlY3Q6TlNNYWtlUmVjdCgwLCAwLCAwLCAwKV07CisgICAgW3NuYXBzaG90Q29uZmlndXJh
dGlvbiBzZXRTbmFwc2hvdFdpZHRoOkAodmlld1dpZHRoKV07CisKKyAgICBpc0RvbmUgPSBmYWxz
ZTsKKyAgICBbd2ViVmlldyB0YWtlU25hcHNob3RXaXRoQ29uZmlndXJhdGlvbjpzbmFwc2hvdENv
bmZpZ3VyYXRpb24uZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6XihQbGF0Zm9ybUltYWdlIHNuYXBz
aG90SW1hZ2UsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKHNuYXBzaG90
SW1hZ2UpOworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJXS0Vycm9yRG9tYWluIiwgZXJyb3Iu
ZG9tYWluKTsKKworICAgICAgICBpc0RvbmUgPSB0cnVlOworICAgIH1dOworCisgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIEVYUEVDVF9FUShwaWQsIFt3ZWJWaWV3
IF93ZWJQcm9jZXNzSWRlbnRpZmllcl0pOyAvLyBNYWtlIHN1cmUgdGhlIFdlYlByb2Nlc3MgZGlk
IG5vdCBjcmFzaC4KK30KKworVEVTVChXS1dlYlZpZXcsIFNuYXBzaG90SW1hZ2VaZXJvV2lkdGgp
Cit7CisgICAgQ0dGbG9hdCB2aWV3V2lkdGggPSA4MDA7CisgICAgQ0dGbG9hdCB2aWV3SGVpZ2h0
ID0gNjAwOworICAgIFJldGFpblB0cjxXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tX
ZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgdmlld1dpZHRoLCB2
aWV3SGVpZ2h0KV0pOworCisgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6QCI8Ym9keSBzdHls
ZT0nYmFja2dyb3VuZC1jb2xvcjogcmVkOyc+PC9ib2R5PiIgYmFzZVVSTDpuaWxdOworICAgIFt3
ZWJWaWV3IF90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uXTsKKworICAgIGF1dG8gcGlk
ID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKworICAgIFJldGFpblB0cjxXS1Nu
YXBzaG90Q29uZmlndXJhdGlvbj4gc25hcHNob3RDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dL
U25hcHNob3RDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgW3NuYXBzaG90Q29uZmln
dXJhdGlvbiBzZXRSZWN0Ok5TTWFrZVJlY3QoMCwgMCwgdmlld1dpZHRoLCB2aWV3SGVpZ2h0KV07
CisgICAgW3NuYXBzaG90Q29uZmlndXJhdGlvbiBzZXRTbmFwc2hvdFdpZHRoOkAoMC4wKV07IC8v
IFdpbGwgZmFsbCBiYWNrIHRvIHRoZSB2aWV3IHdpZHRoLgorCisgICAgaXNEb25lID0gZmFsc2U7
CisgICAgW3dlYlZpZXcgdGFrZVNuYXBzaG90V2l0aENvbmZpZ3VyYXRpb246c25hcHNob3RDb25m
aWd1cmF0aW9uLmdldCgpIGNvbXBsZXRpb25IYW5kbGVyOl4oUGxhdGZvcm1JbWFnZSBzbmFwc2hv
dEltYWdlLCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7Cisg
ICAgICAgIEVYUEVDVF9FUSh2aWV3V2lkdGgsIHNuYXBzaG90SW1hZ2Uuc2l6ZS53aWR0aCk7Cisg
ICAgICAgIGlzRG9uZSA9IHRydWU7CisgICAgfV07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmlzRG9uZSk7CisgICAgRVhQRUNUX0VRKHBpZCwgW3dlYlZpZXcgX3dlYlByb2Nlc3NJ
ZGVudGlmaWVyXSk7IC8vIE1ha2Ugc3VyZSB0aGUgV2ViUHJvY2VzcyBkaWQgbm90IGNyYXNoLgor
fQorCitURVNUKFdLV2ViVmlldywgU25hcHNob3RJbWFnZVplcm9TaXplVmlld0Vycm9yKQorewor
ICAgIENHRmxvYXQgdmlld1dpZHRoID0gMDsKKyAgICBDR0Zsb2F0IHZpZXdIZWlnaHQgPSAwOwor
ICAgIFJldGFpblB0cjxXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgdmlld1dpZHRoLCB2aWV3SGVpZ2h0
KV0pOworCisgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6QCI8Ym9keSBzdHlsZT0nYmFja2dy
b3VuZC1jb2xvcjogcmVkOyc+PC9ib2R5PiIgYmFzZVVSTDpuaWxdOworICAgIFt3ZWJWaWV3IF90
ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uXTsKKworICAgIGF1dG8gcGlkID0gW3dlYlZp
ZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKworICAgIFJldGFpblB0cjxXS1NuYXBzaG90Q29u
ZmlndXJhdGlvbj4gc25hcHNob3RDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLU25hcHNob3RD
b25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgW3NuYXBzaG90Q29uZmlndXJhdGlvbiBz
ZXRSZWN0Ok5TTWFrZVJlY3QoMCwgMCwgdmlld1dpZHRoLCB2aWV3SGVpZ2h0KV07CisgICAgW3Nu
YXBzaG90Q29uZmlndXJhdGlvbiBzZXRTbmFwc2hvdFdpZHRoOkAoMTAwKV07CisKKyAgICBpc0Rv
bmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyB0YWtlU25hcHNob3RXaXRoQ29uZmlndXJhdGlvbjpz
bmFwc2hvdENvbmZpZ3VyYXRpb24uZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6XihQbGF0Zm9ybUlt
YWdlIHNuYXBzaG90SW1hZ2UsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxM
KHNuYXBzaG90SW1hZ2UpOworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJXS0Vycm9yRG9tYWlu
IiwgZXJyb3IuZG9tYWluKTsKKworICAgICAgICBpc0RvbmUgPSB0cnVlOworICAgIH1dOworCisg
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIEVYUEVDVF9FUShwaWQs
IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl0pOyAvLyBNYWtlIHN1cmUgdGhlIFdlYlBy
b2Nlc3MgZGlkIG5vdCBjcmFzaC4KK30KKworVEVTVChXS1dlYlZpZXcsIFNuYXBzaG90SW1hZ2Va
ZXJvU2l6ZVZpZXdOb0NvbmZpZ3VyYXRpb25FcnJvcikKK3sKKyAgICBDR0Zsb2F0IHZpZXdXaWR0
aCA9IDA7CisgICAgQ0dGbG9hdCB2aWV3SGVpZ2h0ID0gMDsKKyAgICBSZXRhaW5QdHI8V0tXZWJW
aWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpO
U01ha2VSZWN0KDAsIDAsIHZpZXdXaWR0aCwgdmlld0hlaWdodCldKTsKKworICAgIFt3ZWJWaWV3
IGxvYWRIVE1MU3RyaW5nOkAiPGJvZHkgc3R5bGU9J2JhY2tncm91bmQtY29sb3I6IHJlZDsnPjwv
Ym9keT4iIGJhc2VVUkw6bmlsXTsKKyAgICBbd2ViVmlldyBfdGVzdF93YWl0Rm9yRGlkRmluaXNo
TmF2aWdhdGlvbl07CisKKyAgICBhdXRvIHBpZCA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRp
Zmllcl07CisKKyAgICBpc0RvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyB0YWtlU25hcHNob3RX
aXRoQ29uZmlndXJhdGlvbjpuaWwgY29tcGxldGlvbkhhbmRsZXI6XihQbGF0Zm9ybUltYWdlIHNu
YXBzaG90SW1hZ2UsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKHNuYXBz
aG90SW1hZ2UpOworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJXS0Vycm9yRG9tYWluIiwgZXJy
b3IuZG9tYWluKTsKKworICAgICAgICBpc0RvbmUgPSB0cnVlOworICAgIH1dOworCisgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIEVYUEVDVF9FUShwaWQsIFt3ZWJW
aWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl0pOyAvLyBNYWtlIHN1cmUgdGhlIFdlYlByb2Nlc3Mg
ZGlkIG5vdCBjcmFzaC4KK30KKwogVEVTVChXS1dlYlZpZXcsIFNuYXBzaG90SW1hZ2VCYXNlQ2Fz
ZSkKIHsKICAgICBOU0ludGVnZXIgdmlld1dpZHRoID0gODAwOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431692</attachid>
            <date>2021-06-17 11:03:17 -0700</date>
            <delta_ts>2021-06-17 13:48:53 -0700</delta_ts>
            <desc>Returns an empty image</desc>
            <filename>bug-227133-20210617110316.patch</filename>
            <type>text/plain</type>
            <size>7455</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4OTg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDk5NjY3Yjg0MTlmYTMyNTIz
NWM3NWMwOThjNDNiNjIyMDk0NzUwMmYuLjdmNWQ1OWYyZTE0NTM5ZDAyNzIyMGU4OTU1ZDI0NjA4
MDZhZWUwYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDYtMTcgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBUcnlpbmcgdG8gdGFrZSBlbXB0eSBz
bmFwc2hvdHMgb2YgdGhlIHZpZXcgc2hvdWxkIG5vdCBjYXVzZSBjcmFzaGVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjcxMzMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUcnlpbmcgdG8gdGFrZSBlbXB0
eSBzbmFwc2hvdHMgb2YgdGhlIHZpZXcgc2hvdWxkIG5vdCBjYXVzZSBjcmFzaGVzLiBXZSB3b3Vs
ZCBwcmV2aW91c2x5CisgICAgICAgIHNlZSBjcmFzaGVzIGJlY2F1c2U6CisgICAgICAgIDEuIFdl
IHdvdWxkIGVuZCB1cCBkb2luZyBkaXZpc2lvbnMgYnkgemVybworICAgICAgICAyLiBXZSB3b3Vs
ZCBoaXQgdGhlIEFTU0VSVChzaXplKSBpbiBTaGFyZWRNZW1vcnk6OmFsbG9jYXRlKCkuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tX
ZWJWaWV3IHRha2VTbmFwc2hvdFdpdGhDb25maWd1cmF0aW9uOmNvbXBsZXRpb25IYW5kbGVyOl0p
OgorCiAyMDIxLTA2LTE3ICBQZXIgQXJuZSAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAg
IFttYWNPU10gQ2xvc2Ugb3BlbiBjb25uZWN0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggZjdkMzVhZDBiOGJlYzZhZTRlY2FiMDM2
ZDc2NGFkZjAxZmQzZTc5MC4uZWEwNGUzMWY4ZjI2ZjEyYjEwY2MxMWVlMjM3MmE0NWE4YzBkNzBj
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
CkBAIC0xMTcwLDYgKzExNzAsMTggQEAgLSAodm9pZCl0YWtlU25hcHNob3RXaXRoQ29uZmlndXJh
dGlvbjooV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24gKilzbmFwc2hvdENvbmZpZ3UKIAogICAgIGF1
dG8gaGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcik7CiAKKyAgICBpZiAo
Q0dSZWN0SXNFbXB0eShyZWN0SW5WaWV3Q29vcmRpbmF0ZXMpIHx8ICFzbmFwc2hvdFdpZHRoKSB7
CisgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKKyNpZiBVU0UoQVBQS0lUKQor
ICAgICAgICAgICAgYXV0byBpbWFnZSA9IGFkb3B0TlMoW1tOU0ltYWdlIGFsbG9jXSBpbml0V2l0
aFNpemU6TlNNYWtlU2l6ZSgwLCAwKV0pOworI2Vsc2UKKyAgICAgICAgICAgIGF1dG8gaW1hZ2Ug
PSBhZG9wdE5TKFtbVUlJbWFnZSBhbGxvY10gaW5pdF0pOworI2VuZGlmCisgICAgICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihpbWFnZS5nZXQoKSwgbmlsKTsKKyAgICAgICAgfSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKICNpZiBVU0UoQVBQS0lUKQogICAgIENHRmxvYXQgaW1hZ2VTY2Fs
ZSA9IHNuYXBzaG90V2lkdGggLyByZWN0SW5WaWV3Q29vcmRpbmF0ZXMuc2l6ZS53aWR0aDsKICAg
ICBDR0Zsb2F0IGltYWdlSGVpZ2h0ID0gaW1hZ2VTY2FsZSAqIHJlY3RJblZpZXdDb29yZGluYXRl
cy5zaXplLmhlaWdodDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCBhZmIzMTY0YTdiMGZkZTUzYWJjY2NhZjc4MTAxZGM3N2QzMmRhZTkzLi5hM2Yy
OGYzY2QwNmU1OWUwMmMxOGE4NDA5MzI3ZTU0NGYwYmU1MTUzIDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDYt
MTcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBUcnlpbmcgdG8g
dGFrZSBlbXB0eSBzbmFwc2hvdHMgb2YgdGhlIHZpZXcgc2hvdWxkIG5vdCBjYXVzZSBjcmFzaGVz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjcxMzMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgQVBJ
IHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1dLV2ViVmlld1NuYXBzaG90Lm1tOgorICAgICAgICAoVEVTVCk6CisKIDIwMjEtMDYtMTcg
IE9yaW9sIEJydWZhdSAgPG9icnVmYXVAaWdhbGlhLmNvbT4KIAogICAgICAgICBbY3NzLWxvZ2lj
YWxdIEltcGxlbWVudCBsb2dpY2FsIHByb3BlcnR5IGdyb3VwcwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdTbmFwc2hvdC5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3U25hcHNob3QubW0K
aW5kZXggNmIzMDUwYmQwYzVmODY3NDIxODY2OTNkOTdhYzI1YjNiMWFlMzdmYy4uMzEwNjEyMDI3
ZjgyMDE0ZjJmZWViMjhmM2YzMzFiZWFmMWZjZjFlZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdTbmFwc2hvdC5tbQorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld1NuYXBzaG90Lm1tCkBA
IC04Miw2ICs4MiwxMTIgQEAgVEVTVChXS1dlYlZpZXcsIFNuYXBzaG90SW1hZ2VFcnJvcikKICAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CiB9CiAKK1RFU1QoV0tXZWJWaWV3
LCBTbmFwc2hvdEltYWdlRW1wdHlSZWN0KQoreworICAgIENHRmxvYXQgdmlld1dpZHRoID0gODAw
OworICAgIENHRmxvYXQgdmlld0hlaWdodCA9IDYwMDsKKyAgICBSZXRhaW5QdHI8V0tXZWJWaWV3
PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01h
a2VSZWN0KDAsIDAsIHZpZXdXaWR0aCwgdmlld0hlaWdodCldKTsKKworICAgIFt3ZWJWaWV3IGxv
YWRIVE1MU3RyaW5nOkAiPGJvZHkgc3R5bGU9J2JhY2tncm91bmQtY29sb3I6IHJlZDsnPjwvYm9k
eT4iIGJhc2VVUkw6bmlsXTsKKyAgICBbd2ViVmlldyBfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2
aWdhdGlvbl07CisKKyAgICBhdXRvIHBpZCA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmll
cl07CisKKyAgICBSZXRhaW5QdHI8V0tTbmFwc2hvdENvbmZpZ3VyYXRpb24+IHNuYXBzaG90Q29u
ZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1NuYXBzaG90Q29uZmlndXJhdGlvbiBhbGxvY10gaW5p
dF0pOworICAgIFtzbmFwc2hvdENvbmZpZ3VyYXRpb24gc2V0UmVjdDpOU01ha2VSZWN0KDAsIDAs
IDAsIDApXTsKKyAgICBbc25hcHNob3RDb25maWd1cmF0aW9uIHNldFNuYXBzaG90V2lkdGg6QCh2
aWV3V2lkdGgpXTsKKworICAgIGlzRG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IHRha2VTbmFw
c2hvdFdpdGhDb25maWd1cmF0aW9uOnNuYXBzaG90Q29uZmlndXJhdGlvbi5nZXQoKSBjb21wbGV0
aW9uSGFuZGxlcjpeKFBsYXRmb3JtSW1hZ2Ugc25hcHNob3RJbWFnZSwgTlNFcnJvciAqZXJyb3Ip
IHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgICAgICBFWFBFQ1RfRVEoMCwgc25h
cHNob3RJbWFnZS5zaXplLndpZHRoKTsKKyAgICAgICAgRVhQRUNUX0VRKDAsIHNuYXBzaG90SW1h
Z2Uuc2l6ZS5oZWlnaHQpOworCisgICAgICAgIGlzRG9uZSA9IHRydWU7CisgICAgfV07CisKKyAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgRVhQRUNUX0VRKHBpZCwg
W3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXSk7IC8vIE1ha2Ugc3VyZSB0aGUgV2ViUHJv
Y2VzcyBkaWQgbm90IGNyYXNoLgorfQorCitURVNUKFdLV2ViVmlldywgU25hcHNob3RJbWFnZVpl
cm9XaWR0aCkKK3sKKyAgICBDR0Zsb2F0IHZpZXdXaWR0aCA9IDgwMDsKKyAgICBDR0Zsb2F0IHZp
ZXdIZWlnaHQgPSA2MDA7CisgICAgUmV0YWluUHRyPFdLV2ViVmlldz4gd2ViVmlldyA9IGFkb3B0
TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCB2aWV3
V2lkdGgsIHZpZXdIZWlnaHQpXSk7CisKKyAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpAIjxi
b2R5IHN0eWxlPSdiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7Jz48L2JvZHk+IiBiYXNlVVJMOm5pbF07
CisgICAgW3dlYlZpZXcgX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25dOworCisgICAg
YXV0byBwaWQgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOworCisgICAgUmV0YWlu
UHRyPFdLU25hcHNob3RDb25maWd1cmF0aW9uPiBzbmFwc2hvdENvbmZpZ3VyYXRpb24gPSBhZG9w
dE5TKFtbV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBbc25hcHNo
b3RDb25maWd1cmF0aW9uIHNldFJlY3Q6TlNNYWtlUmVjdCgwLCAwLCB2aWV3V2lkdGgsIHZpZXdI
ZWlnaHQpXTsKKyAgICBbc25hcHNob3RDb25maWd1cmF0aW9uIHNldFNuYXBzaG90V2lkdGg6QCgw
LjApXTsgLy8gV2lsbCBmYWxsIGJhY2sgdG8gdGhlIHZpZXcgd2lkdGguCisKKyAgICBpc0RvbmUg
PSBmYWxzZTsKKyAgICBbd2ViVmlldyB0YWtlU25hcHNob3RXaXRoQ29uZmlndXJhdGlvbjpzbmFw
c2hvdENvbmZpZ3VyYXRpb24uZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6XihQbGF0Zm9ybUltYWdl
IHNuYXBzaG90SW1hZ2UsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVy
cm9yKTsKKyAgICAgICAgRVhQRUNUX0VRKHZpZXdXaWR0aCwgc25hcHNob3RJbWFnZS5zaXplLndp
ZHRoKTsKKyAgICAgICAgaXNEb25lID0gdHJ1ZTsKKyAgICB9XTsKKworICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBFWFBFQ1RfRVEocGlkLCBbd2ViVmlldyBfd2Vi
UHJvY2Vzc0lkZW50aWZpZXJdKTsgLy8gTWFrZSBzdXJlIHRoZSBXZWJQcm9jZXNzIGRpZCBub3Qg
Y3Jhc2guCit9CisKK1RFU1QoV0tXZWJWaWV3LCBTbmFwc2hvdEltYWdlWmVyb1NpemVWaWV3KQor
eworICAgIENHRmxvYXQgdmlld1dpZHRoID0gMDsKKyAgICBDR0Zsb2F0IHZpZXdIZWlnaHQgPSAw
OworICAgIFJldGFpblB0cjxXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgdmlld1dpZHRoLCB2aWV3SGVp
Z2h0KV0pOworCisgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6QCI8Ym9keSBzdHlsZT0nYmFj
a2dyb3VuZC1jb2xvcjogcmVkOyc+PC9ib2R5PiIgYmFzZVVSTDpuaWxdOworICAgIFt3ZWJWaWV3
IF90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uXTsKKworICAgIGF1dG8gcGlkID0gW3dl
YlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKworICAgIFJldGFpblB0cjxXS1NuYXBzaG90
Q29uZmlndXJhdGlvbj4gc25hcHNob3RDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLU25hcHNo
b3RDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgW3NuYXBzaG90Q29uZmlndXJhdGlv
biBzZXRSZWN0Ok5TTWFrZVJlY3QoMCwgMCwgdmlld1dpZHRoLCB2aWV3SGVpZ2h0KV07CisgICAg
W3NuYXBzaG90Q29uZmlndXJhdGlvbiBzZXRTbmFwc2hvdFdpZHRoOkAoMTAwKV07CisKKyAgICBp
c0RvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyB0YWtlU25hcHNob3RXaXRoQ29uZmlndXJhdGlv
bjpzbmFwc2hvdENvbmZpZ3VyYXRpb24uZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6XihQbGF0Zm9y
bUltYWdlIHNuYXBzaG90SW1hZ2UsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9O
VUxMKGVycm9yKTsKKyAgICAgICAgRVhQRUNUX0VRKDAsIHNuYXBzaG90SW1hZ2Uuc2l6ZS53aWR0
aCk7CisgICAgICAgIEVYUEVDVF9FUSgwLCBzbmFwc2hvdEltYWdlLnNpemUuaGVpZ2h0KTsKKwor
ICAgICAgICBpc0RvbmUgPSB0cnVlOworICAgIH1dOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZpc0RvbmUpOworICAgIEVYUEVDVF9FUShwaWQsIFt3ZWJWaWV3IF93ZWJQcm9jZXNz
SWRlbnRpZmllcl0pOyAvLyBNYWtlIHN1cmUgdGhlIFdlYlByb2Nlc3MgZGlkIG5vdCBjcmFzaC4K
K30KKworVEVTVChXS1dlYlZpZXcsIFNuYXBzaG90SW1hZ2VaZXJvU2l6ZVZpZXdOb0NvbmZpZ3Vy
YXRpb24pCit7CisgICAgQ0dGbG9hdCB2aWV3V2lkdGggPSAwOworICAgIENHRmxvYXQgdmlld0hl
aWdodCA9IDA7CisgICAgUmV0YWluUHRyPFdLV2ViVmlldz4gd2ViVmlldyA9IGFkb3B0TlMoW1tX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCB2aWV3V2lkdGgs
IHZpZXdIZWlnaHQpXSk7CisKKyAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpAIjxib2R5IHN0
eWxlPSdiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7Jz48L2JvZHk+IiBiYXNlVVJMOm5pbF07CisgICAg
W3dlYlZpZXcgX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25dOworCisgICAgYXV0byBw
aWQgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOworCisgICAgaXNEb25lID0gZmFs
c2U7CisgICAgW3dlYlZpZXcgdGFrZVNuYXBzaG90V2l0aENvbmZpZ3VyYXRpb246bmlsIGNvbXBs
ZXRpb25IYW5kbGVyOl4oUGxhdGZvcm1JbWFnZSBzbmFwc2hvdEltYWdlLCBOU0Vycm9yICplcnJv
cikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisgICAgICAgIEVYUEVDVF9FUSgwLCBz
bmFwc2hvdEltYWdlLnNpemUud2lkdGgpOworICAgICAgICBFWFBFQ1RfRVEoMCwgc25hcHNob3RJ
bWFnZS5zaXplLmhlaWdodCk7CisKKyAgICAgICAgaXNEb25lID0gdHJ1ZTsKKyAgICB9XTsKKwor
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBFWFBFQ1RfRVEocGlk
LCBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdKTsgLy8gTWFrZSBzdXJlIHRoZSBXZWJQ
cm9jZXNzIGRpZCBub3QgY3Jhc2guCit9CisKIFRFU1QoV0tXZWJWaWV3LCBTbmFwc2hvdEltYWdl
QmFzZUNhc2UpCiB7CiAgICAgTlNJbnRlZ2VyIHZpZXdXaWR0aCA9IDgwMDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>