<?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>179849</bug_id>
          
          <creation_ts>2017-11-17 16:34:03 -0800</creation_ts>
          <short_desc>downcast to WebKit::FullscreenClient can sometimes fail.</short_desc>
          <delta_ts>2018-05-23 06:43:20 -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="Jeremy Jones">jeremyj-wk</reporter>
          <assigned_to name="Jeremy Jones">jeremyj-wk</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>fred.wang</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1373402</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2017-11-17 16:34:03 -0800</bug_when>
    <thetext>downcast to WebKit::FullscreenClient can sometimes fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373411</commentid>
    <comment_count>1</comment_count>
      <attachid>327273</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2017-11-17 16:38:56 -0800</bug_when>
    <thetext>Created attachment 327273
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1374044</commentid>
    <comment_count>2</comment_count>
      <attachid>327273</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-11-21 09:06:17 -0800</bug_when>
    <thetext>Comment on attachment 327273
Patch

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

I worry that the issue is deeper than just a bd cast. If _setFullscreenDelegate: does nothing because we are on a different fullscreen client, then the old fullscreen client might be left with the delegate still set. That could be a dangling pointer.

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:4778
&gt;      return nullptr;

I think this should be return nil.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1375108</commentid>
    <comment_count>3</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2017-11-27 13:55:41 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #2)
&gt; Comment on attachment 327273 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=327273&amp;action=review
&gt; 
&gt; I worry that the issue is deeper than just a bd cast. If
&gt; _setFullscreenDelegate: does nothing because we are on a different
&gt; fullscreen client, then the old fullscreen client might be left with the
&gt; delegate still set. That could be a dangling pointer.

The various client objects are owned by the page. When the page clears those clients, those objects and references are destroyed.

Looking over WKWebView, I see the same unsafe pattern that caused this crash also affects the find delegate:

https://bugs.webkit.org/show_bug.cgi?id=180054

&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:4778
&gt; &gt;      return nullptr;
&gt; 
&gt; I think this should be return nil.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1375110</commentid>
    <comment_count>4</comment_count>
      <attachid>327674</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2017-11-27 13:57:10 -0800</bug_when>
    <thetext>Created attachment 327674
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1375133</commentid>
    <comment_count>5</comment_count>
      <attachid>327674</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-27 14:29:36 -0800</bug_when>
    <thetext>Comment on attachment 327674
Patch for landing.

Clearing flags on attachment: 327674

Committed r225195: &lt;https://trac.webkit.org/changeset/225195&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426555</commentid>
    <comment_count>6</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2018-05-23 06:42:50 -0700</bug_when>
    <thetext>Closing now since patch landed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426556</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-05-23 06:43:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/40484031&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327273</attachid>
            <date>2017-11-17 16:38:56 -0800</date>
            <delta_ts>2017-11-21 09:06:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179849-20171117163855.patch</filename>
            <type>text/plain</type>
            <size>2207</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0OTk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGRmZTVjZWNmMTY5ZDNhZjJl
YjI0ZGMzZTI2NDQ4Y2YwMTNiZGMxNGQuLjNlMGYyMmMyMGNkNjQ1ZWVjODI3MWU2NzY2NGNiODg4
YzgyMTM5YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTctMTEtMTcgIEplcmVteSBK
b25lcyAgPGplcmVteWpAYXBwbGUuY29tPgorCisgICAgICAgIGRvd25jYXN0IHRvIFdlYktpdDo6
RnVsbHNjcmVlbkNsaWVudCBjYW4gc29tZXRpbWVzIGZhaWwuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzk4NDkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGVyZSBhcmUgY2FzZXMgZHVyaW5nIHRlYXJk
b3duIHdoZXJlIGZ1bGxzY3JlZW5DbGllbnQoKSBoYXMgYmVlbiBjbGVhcmVkIGJhY2sgdG8gYW4g
QVBJOjpGdWxsc2NyZWVuQ2xpZW50LgorICAgICAgICBCZWNhdXNlIHRob3NlIGNhc2VzLCBXS1dl
YlZpZXcgc2hvdWxkIHRlc3QgYmVmb3JlIGRvd25jYXN0aW5nIHRvIFdlYktpdDo6RnVsbHNjcmVl
bkNsaWVudC4KKworICAgICAgICBUaGlzIGlzIGNhdXNpbmcgYSBjcmFzaCB3aGVuIGZ1bGxzY3Jl
ZW4gZGVsZWdhdGUgaXMgY2xlYXJlZCBhZnRlciBhIHBhZ2UgaXMgY2xvc2VkLgorCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmll
dyBfc2V0RnVsbHNjcmVlbkRlbGVnYXRlOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2Z1bGxz
Y3JlZW5EZWxlZ2F0ZV0pOgorCiAyMDE3LTExLTE2ICBZb3VzdWtlIEtpbW90byAgPHlvdXN1a2Uu
a2ltb3RvQHNvbnkuY29tPgogCiAgICAgICAgIFtXaW5DYWlyb10gQWRkIG5ldHdvcmsgKGN1cmwp
IGZpbGVzIGZvciB3aW5jYWlybyB3ZWJraXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDcyYzdjNTRmYjVmZGQ5ZDM0MWM1Y2YwOTVlZmZm
NmY1NGIxOGEzZjYuLmM0ZWRjYjgwZGY5ZWZiNmZhNjE3YTIxNGMxOWY1ZmFiY2JmOWU1NWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAt
NDc2NCwxNyArNDc2NCwxOCBAQCAtIChCT09MKV93ZWJQcm9jZXNzSXNSZXNwb25zaXZlCiAtICh2
b2lkKV9zZXRGdWxsc2NyZWVuRGVsZWdhdGU6KGlkPF9XS0Z1bGxzY3JlZW5EZWxlZ2F0ZT4pZGVs
ZWdhdGUKIHsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0gICAgZG93bmNhc3Q8V2ViS2l0
OjpGdWxsc2NyZWVuQ2xpZW50PihfcGFnZS0+ZnVsbHNjcmVlbkNsaWVudCgpKS5zZXREZWxlZ2F0
ZShkZWxlZ2F0ZSk7CisgICAgaWYgKGlzPFdlYktpdDo6RnVsbHNjcmVlbkNsaWVudD4oX3BhZ2Ut
PmZ1bGxzY3JlZW5DbGllbnQoKSkpCisgICAgICAgIGRvd25jYXN0PFdlYktpdDo6RnVsbHNjcmVl
bkNsaWVudD4oX3BhZ2UtPmZ1bGxzY3JlZW5DbGllbnQoKSkuc2V0RGVsZWdhdGUoZGVsZWdhdGUp
OwogI2VuZGlmCiB9CiAKIC0gKGlkPF9XS0Z1bGxzY3JlZW5EZWxlZ2F0ZT4pX2Z1bGxzY3JlZW5E
ZWxlZ2F0ZQogewogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKLSAgICByZXR1cm4gZG93bmNh
c3Q8V2ViS2l0OjpGdWxsc2NyZWVuQ2xpZW50PihfcGFnZS0+ZnVsbHNjcmVlbkNsaWVudCgpKS5k
ZWxlZ2F0ZSgpLmF1dG9yZWxlYXNlKCk7Ci0jZWxzZQorICAgIGlmIChpczxXZWJLaXQ6OkZ1bGxz
Y3JlZW5DbGllbnQ+KF9wYWdlLT5mdWxsc2NyZWVuQ2xpZW50KCkpKQorICAgICAgICByZXR1cm4g
ZG93bmNhc3Q8V2ViS2l0OjpGdWxsc2NyZWVuQ2xpZW50PihfcGFnZS0+ZnVsbHNjcmVlbkNsaWVu
dCgpKS5kZWxlZ2F0ZSgpLmF1dG9yZWxlYXNlKCk7CisjZW5kaWYKICAgICByZXR1cm4gbnVsbHB0
cjsKLSNlbmRpZgogfQogCiAtIChCT09MKV9pc0luRnVsbHNjcmVlbgo=
</data>
<flag name="review"
          id="346506"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327674</attachid>
            <date>2017-11-27 13:57:10 -0800</date>
            <delta_ts>2017-11-27 14:29:36 -0800</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>bug-179849-20171127135709.patch</filename>
            <type>text/plain</type>
            <size>2213</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0OTk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGRmZTVjZWNmMTY5ZDNhZjJl
YjI0ZGMzZTI2NDQ4Y2YwMTNiZGMxNGQuLmY3MjE5Nzg0Y2QyNGZjOWRkOTIyZGEwNDUwY2EwOGRj
ZjE3ZWY1MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTctMTEtMTcgIEplcmVteSBK
b25lcyAgPGplcmVteWpAYXBwbGUuY29tPgorCisgICAgICAgIGRvd25jYXN0IHRvIFdlYktpdDo6
RnVsbHNjcmVlbkNsaWVudCBjYW4gc29tZXRpbWVzIGZhaWwuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzk4NDkKKworICAgICAgICBSZXZpZXdlZCBi
eSBEYXJpbiBBZGxlci4KKworICAgICAgICBUaGVyZSBhcmUgY2FzZXMgZHVyaW5nIHRlYXJkb3du
IHdoZXJlIGZ1bGxzY3JlZW5DbGllbnQoKSBoYXMgYmVlbiBjbGVhcmVkIGJhY2sgdG8gYW4gQVBJ
OjpGdWxsc2NyZWVuQ2xpZW50LgorICAgICAgICBCZWNhdXNlIHRob3NlIGNhc2VzLCBXS1dlYlZp
ZXcgc2hvdWxkIHRlc3QgYmVmb3JlIGRvd25jYXN0aW5nIHRvIFdlYktpdDo6RnVsbHNjcmVlbkNs
aWVudC4KKworICAgICAgICBUaGlzIGlzIGNhdXNpbmcgYSBjcmFzaCB3aGVuIGZ1bGxzY3JlZW4g
ZGVsZWdhdGUgaXMgY2xlYXJlZCBhZnRlciBhIHBhZ2UgaXMgY2xvc2VkLgorCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBf
c2V0RnVsbHNjcmVlbkRlbGVnYXRlOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2Z1bGxzY3Jl
ZW5EZWxlZ2F0ZV0pOgorCiAyMDE3LTExLTE2ICBZb3VzdWtlIEtpbW90byAgPHlvdXN1a2Uua2lt
b3RvQHNvbnkuY29tPgogCiAgICAgICAgIFtXaW5DYWlyb10gQWRkIG5ldHdvcmsgKGN1cmwpIGZp
bGVzIGZvciB3aW5jYWlybyB3ZWJraXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDcyYzdjNTRmYjVmZGQ5ZDM0MWM1Y2YwOTVlZmZmNmY1
NGIxOGEzZjYuLmJkNzEzYmE4ZGE1NTZiMjNjN2QzZmQ5YzlkODUwZjM1ZjJiMGQ0N2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtNDc2
NCwxNyArNDc2NCwxOCBAQCAtIChCT09MKV93ZWJQcm9jZXNzSXNSZXNwb25zaXZlCiAtICh2b2lk
KV9zZXRGdWxsc2NyZWVuRGVsZWdhdGU6KGlkPF9XS0Z1bGxzY3JlZW5EZWxlZ2F0ZT4pZGVsZWdh
dGUKIHsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0gICAgZG93bmNhc3Q8V2ViS2l0OjpG
dWxsc2NyZWVuQ2xpZW50PihfcGFnZS0+ZnVsbHNjcmVlbkNsaWVudCgpKS5zZXREZWxlZ2F0ZShk
ZWxlZ2F0ZSk7CisgICAgaWYgKGlzPFdlYktpdDo6RnVsbHNjcmVlbkNsaWVudD4oX3BhZ2UtPmZ1
bGxzY3JlZW5DbGllbnQoKSkpCisgICAgICAgIGRvd25jYXN0PFdlYktpdDo6RnVsbHNjcmVlbkNs
aWVudD4oX3BhZ2UtPmZ1bGxzY3JlZW5DbGllbnQoKSkuc2V0RGVsZWdhdGUoZGVsZWdhdGUpOwog
I2VuZGlmCiB9CiAKIC0gKGlkPF9XS0Z1bGxzY3JlZW5EZWxlZ2F0ZT4pX2Z1bGxzY3JlZW5EZWxl
Z2F0ZQogewogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKLSAgICByZXR1cm4gZG93bmNhc3Q8
V2ViS2l0OjpGdWxsc2NyZWVuQ2xpZW50PihfcGFnZS0+ZnVsbHNjcmVlbkNsaWVudCgpKS5kZWxl
Z2F0ZSgpLmF1dG9yZWxlYXNlKCk7Ci0jZWxzZQotICAgIHJldHVybiBudWxscHRyOworICAgIGlm
IChpczxXZWJLaXQ6OkZ1bGxzY3JlZW5DbGllbnQ+KF9wYWdlLT5mdWxsc2NyZWVuQ2xpZW50KCkp
KQorICAgICAgICByZXR1cm4gZG93bmNhc3Q8V2ViS2l0OjpGdWxsc2NyZWVuQ2xpZW50PihfcGFn
ZS0+ZnVsbHNjcmVlbkNsaWVudCgpKS5kZWxlZ2F0ZSgpLmF1dG9yZWxlYXNlKCk7CiAjZW5kaWYK
KyAgICByZXR1cm4gbmlsOwogfQogCiAtIChCT09MKV9pc0luRnVsbHNjcmVlbgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>