<?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>223125</bug_id>
          
          <creation_ts>2021-03-12 09:25:33 -0800</creation_ts>
          <short_desc>document pictureInPictureElement is null if you Enter Picture in Picture from contextual menu</short_desc>
          <delta_ts>2021-03-16 21:23:16 -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>Media</component>
          <version>Safari 14</version>
          <rep_platform>Mac (Apple Silicon)</rep_platform>
          <op_sys>macOS 11</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="Jeff Johnson">opendarwin</reporter>
          <assigned_to name="Peng Liu">peng.liu6</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mitz</cc>
    
    <cc>pdr</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1738925</commentid>
    <comment_count>0</comment_count>
    <who name="Jeff Johnson">opendarwin</who>
    <bug_when>2021-03-12 09:25:33 -0800</bug_when>
    <thetext>Overview: If you enter PiP using the contextual menu item &quot;Enter Picture in Picture&quot;, then document.pictureInPictureElement is null. Whereas document.pictureInPictureElement returns the &lt;video&gt; element if you enter PiP using the widget at the top left corner of the video.

Steps to Reproduce:
1) Open https://developer.apple.com/videos/play/wwdc2020/102/
2) Start playing the video
3) Open contextual menu on the video and select &quot;Enter Picture in Picture&quot;
4) Show JavaScript Console
5) document.pictureInPictureElement

Expected Results: &lt;video id=&quot;video&quot;...

Actual Results: null

Additional Builds and Platforms:
This also happens in Safari 14.0.3 on macOS 10.14.6. And it happens with the latest Safari Technology Preview 122 on macOS 11.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738946</commentid>
    <comment_count>1</comment_count>
    <who name="Jeff Johnson">opendarwin</who>
    <bug_when>2021-03-12 10:37:51 -0800</bug_when>
    <thetext>I also just discovered that the video enterpictureinpicture event doesn&apos;t get posted when you using the contextual menu. The enterpictureinpicture does get posted when you use the PiP widget.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739227</commentid>
    <comment_count>2</comment_count>
    <who name="Jeff Johnson">opendarwin</who>
    <bug_when>2021-03-14 07:37:16 -0700</bug_when>
    <thetext>I debugged with the WebKit source code and discovered the problem.

In the case of clicking the PiP widget it follows this code path:
HTMLVideoElementPictureInPicture::requestPictureInPicture
HTMLVideoElement::setPresentationMode
HTMLMediaElement::enterFullscreen

In the case of the contextual menu it follows this code path:
HitTestResult::toggleEnhancedFullscreenForVideo
HTMLMediaElement::enterFullscreen

In both cases, eventually this code gets called at https://github.com/WebKit/WebKit/blob/main/Source/WebCore/html/HTMLVideoElement.cpp#L504

void HTMLVideoElement::didEnterFullscreenOrPictureInPicture(const FloatSize&amp; size)
{
    if (m_enteringPictureInPicture) {

However, m_enteringPictureInPicture is false with the contextual menu. With the PiP widget m_enteringPictureInPicture is true, because it gets set to true in HTMLVideoElement::setPresentationMode at https://github.com/WebKit/WebKit/blob/main/Source/WebCore/html/HTMLVideoElement.cpp#L490</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739837</commentid>
    <comment_count>3</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-03-15 22:20:51 -0700</bug_when>
    <thetext>Thanks for the investigation!
I will upload a patch to fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739840</commentid>
    <comment_count>4</comment_count>
      <attachid>423299</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-03-15 22:30:52 -0700</bug_when>
    <thetext>Created attachment 423299
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740373</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-16 21:22:10 -0700</bug_when>
    <thetext>Committed r274551: &lt;https://commits.webkit.org/r274551&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 423299.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740374</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-16 21:23:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/75510164&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423299</attachid>
            <date>2021-03-15 22:30:52 -0700</date>
            <delta_ts>2021-03-16 21:22:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223125-20210315223051.patch</filename>
            <type>text/plain</type>
            <size>3265</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWEyNTBmM2QwYmQ4Mzgx
ZjRmZjc2ZDkwNjEzOTBkMDg3NTU5ZDBlNC4uZGE0MzJjMzJmZDVlYWIwM2UxMTEwOWRhODI2OTMz
MmQ4YTc5MGJkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTAzLTE1ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgZG9jdW1lbnQgcGljdHVyZUlu
UGljdHVyZUVsZW1lbnQgaXMgbnVsbCBpZiB5b3UgRW50ZXIgUGljdHVyZSBpbiBQaWN0dXJlIGZy
b20gY29udGV4dHVhbCBtZW51CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjMxMjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBVc2UgSFRNTFZpZGVvRWxlbWVudCdzIGZ1bmN0aW9ucyB0byBjaGFuZ2Ugdmlk
ZW8gcHJlc2VudGF0aW9uIG1vZGUgdG8gZW5zdXJlIHRoYXQKKyAgICAgICAgZG9jdW1lbnQucGlj
dHVyZUluUGljdHVyZUVsZW1lbnQgaXMgdXBkYXRlZCBwcm9wZXJseSBhbmQgY29ycmVjdCBldmVu
dHMgYXJlIGZpcmVkLgorCisgICAgICAgIENvdmVyZWQgYnkgbWFudWFsIHRlc3RzLgorCisgICAg
ICAgICogaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvSGl0
VGVzdFJlc3VsdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0OjplbnRlckZ1
bGxzY3JlZW5Gb3JWaWRlbyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0
Ojp0b2dnbGVFbmhhbmNlZEZ1bGxzY3JlZW5Gb3JWaWRlbyBjb25zdCk6CisKIDIwMjEtMDMtMTUg
IFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXQtYm9yZGVyLXRv
LWxpbmUgbWF5IGNoYW5nZSB0aGUgbGF5b3V0IGNvbnN0cmFpbnRzIGJldHdlZW4gMiBwYWdpbmF0
ZWQgbGluZSBsYXlvdXRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRl
b0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcApp
bmRleCBhZWJkY2Y4NjU0MjMyODhiNjkyOTllOGUwMTg4MTMyMWI5NzFiMDg5Li45YzNmZDVhNjNk
MzllYjVjYjVlN2NkMzYxOWJlYWQyYWIzOTBlMzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFZpZGVvRWxlbWVudC5jcHAKQEAgLTIwMyw3ICsyMDMsNiBAQCBib29sIEhUTUxWaWRlb0VsZW1l
bnQ6OnN1cHBvcnRzRnVsbHNjcmVlbihIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNj
cmVlbgogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCiB9CiAKLQogI2lmIEVOQUJMRShG
VUxMU0NSRUVOX0FQSSkgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIHZvaWQgSFRNTFZpZGVvRWxl
bWVudDo6d2Via2l0UmVxdWVzdEZ1bGxzY3JlZW4oKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0hpdFRlc3RSZXN1bHQuY3BwCmluZGV4IDQ5M2I4NTliODYzYWRlYjQyYjU5YjEzNjc4Mjdh
ZDYwMDU2NDA2NjYuLmYxNDBkZmEwMjViMjAyMDYxYWQyZjZkYzBiMWExNzc1NzM5OGM0Y2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAKQEAgLTQ3Myw3ICs0
NzMsNyBAQCB2b2lkIEhpdFRlc3RSZXN1bHQ6OmVudGVyRnVsbHNjcmVlbkZvclZpZGVvKCkgY29u
c3QKICAgICAgICAgSFRNTFZpZGVvRWxlbWVudCYgdmlkZW9FbGVtZW50ID0gZG93bmNhc3Q8SFRN
TFZpZGVvRWxlbWVudD4oKm1lZGlhRWxlbWVudCk7CiAgICAgICAgIGlmICghdmlkZW9FbGVtZW50
LmlzRnVsbHNjcmVlbigpICYmIG1lZGlhRWxlbWVudC0+c3VwcG9ydHNGdWxsc2NyZWVuKEhUTUxN
ZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkKSkgewogICAgICAg
ICAgICAgVXNlckdlc3R1cmVJbmRpY2F0b3IgaW5kaWNhdG9yKFByb2Nlc3NpbmdVc2VyR2VzdHVy
ZSwgJm1lZGlhRWxlbWVudC0+ZG9jdW1lbnQoKSk7Ci0gICAgICAgICAgICB2aWRlb0VsZW1lbnQu
ZW50ZXJGdWxsc2NyZWVuKCk7CisgICAgICAgICAgICB2aWRlb0VsZW1lbnQud2Via2l0RW50ZXJG
dWxsc2NyZWVuKCk7CiAgICAgICAgIH0KICAgICB9CiAjZW5kaWYKQEAgLTc4MywxMCArNzgzLDEw
IEBAIHZvaWQgSGl0VGVzdFJlc3VsdDo6dG9nZ2xlRW5oYW5jZWRGdWxsc2NyZWVuRm9yVmlkZW8o
KSBjb25zdAogCiAgICAgSFRNTFZpZGVvRWxlbWVudCYgdmlkZW9FbGVtZW50ID0gZG93bmNhc3Q8
SFRNTFZpZGVvRWxlbWVudD4oKm1lZGlhRWxlbWVudCk7CiAgICAgVXNlckdlc3R1cmVJbmRpY2F0
b3IgaW5kaWNhdG9yKFByb2Nlc3NpbmdVc2VyR2VzdHVyZSwgJm1lZGlhRWxlbWVudC0+ZG9jdW1l
bnQoKSk7Ci0gICAgaWYgKHZpZGVvRWxlbWVudC5mdWxsc2NyZWVuTW9kZSgpID09IEhUTUxNZWRp
YUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZVBpY3R1cmVJblBpY3R1cmUpCi0gICAg
ICAgIHZpZGVvRWxlbWVudC5leGl0RnVsbHNjcmVlbigpOworICAgIGlmICh2aWRlb0VsZW1lbnQu
d2Via2l0UHJlc2VudGF0aW9uTW9kZSgpID09IEhUTUxWaWRlb0VsZW1lbnQ6OlZpZGVvUHJlc2Vu
dGF0aW9uTW9kZTo6UGljdHVyZUluUGljdHVyZSkKKyAgICAgICAgdmlkZW9FbGVtZW50LndlYmtp
dFNldFByZXNlbnRhdGlvbk1vZGUoSFRNTFZpZGVvRWxlbWVudDo6VmlkZW9QcmVzZW50YXRpb25N
b2RlOjpJbmxpbmUpOwogICAgIGVsc2UKLSAgICAgICAgdmlkZW9FbGVtZW50LmVudGVyRnVsbHNj
cmVlbihIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0dXJlSW5Q
aWN0dXJlKTsKKyAgICAgICAgdmlkZW9FbGVtZW50LndlYmtpdFNldFByZXNlbnRhdGlvbk1vZGUo
SFRNTFZpZGVvRWxlbWVudDo6VmlkZW9QcmVzZW50YXRpb25Nb2RlOjpQaWN0dXJlSW5QaWN0dXJl
KTsKICNlbmRpZgogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>