<?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>147413</bug_id>
          
          <creation_ts>2015-07-29 12:02:21 -0700</creation_ts>
          <short_desc>Media Session: test Play/Pause media control events delivered to Content media sessions</short_desc>
          <delta_ts>2015-07-30 14:58:50 -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>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          
          <blocked>145411</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Matt Rajca">mrajca</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>conrad_shultz</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>mrajca</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1113132</commentid>
    <comment_count>0</comment_count>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-07-29 12:02:21 -0700</bug_when>
    <thetext>Add tests that ensure that:

- Play/Pause media control events delivered to active Content media sessions play/pause participating media elements.
- Play/Pause media control events delivered to idle Content media sessions don&apos;t affect playback in media elements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113167</commentid>
    <comment_count>1</comment_count>
      <attachid>257767</attachid>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-07-29 14:22:55 -0700</bug_when>
    <thetext>Created attachment 257767
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113168</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-07-29 14:23:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/22059292&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113355</commentid>
    <comment_count>3</comment_count>
      <attachid>257767</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2015-07-30 07:41:51 -0700</bug_when>
    <thetext>Comment on attachment 257767
Patch

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

&gt; LayoutTests/media/session/play-pause-media-events-in-content-sessions-expected.txt:18
&gt; +EVENT(canplaythrough)
&gt; +EXPECTED (internals.mediaSessionCurrentState(session) == &apos;idle&apos;) OK
&gt; +Idle Media Sessions should not respond to Play/Pause events.
&gt; +EXPECTED (video.paused == &apos;true&apos;) OK
&gt; +Sending Play/Pause media event.
&gt; +RUN(internals.sendMediaControlEvent(&quot;play-pause&quot;))
&gt; +EXPECTED (video.paused == &apos;true&apos;) OK
&gt; +Playing media.
&gt; +Media began playing.
&gt; +EXPECTED (video.paused == &apos;false&apos;) OK
&gt; +EXPECTED (internals.mediaSessionCurrentState(session) == &apos;active&apos;) OK
&gt; +Sending Play/Pause media event.
&gt; +RUN(internals.sendMediaControlEvent(&quot;play-pause&quot;))
&gt; +EXPECTED (video.paused == &apos;true&apos;) OK
&gt; +END OF TEST

Nit: I think it will be much easier to understand these results if you put a blank line between logical tests.

&gt; LayoutTests/media/session/play-pause-media-events-in-content-sessions.html:44
&gt; +        function beganPlaying(event)
&gt; +        {
&gt; +            video.onplaying = null;
&gt; +
&gt; +            consoleWrite(&quot;Media began playing.&quot;);
&gt; +            testExpected(&apos;video.paused&apos;, false);

Ditto my comments in previous patches about manually adding logging if you use &quot;video.on&lt;event type&gt;&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113502</commentid>
    <comment_count>4</comment_count>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-07-30 14:50:53 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 257767 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=257767&amp;action=review
&gt; 
&gt; &gt; LayoutTests/media/session/play-pause-media-events-in-content-sessions-expected.txt:18
&gt; &gt; +EVENT(canplaythrough)
&gt; &gt; +EXPECTED (internals.mediaSessionCurrentState(session) == &apos;idle&apos;) OK
&gt; &gt; +Idle Media Sessions should not respond to Play/Pause events.
&gt; &gt; +EXPECTED (video.paused == &apos;true&apos;) OK
&gt; &gt; +Sending Play/Pause media event.
&gt; &gt; +RUN(internals.sendMediaControlEvent(&quot;play-pause&quot;))
&gt; &gt; +EXPECTED (video.paused == &apos;true&apos;) OK
&gt; &gt; +Playing media.
&gt; &gt; +Media began playing.
&gt; &gt; +EXPECTED (video.paused == &apos;false&apos;) OK
&gt; &gt; +EXPECTED (internals.mediaSessionCurrentState(session) == &apos;active&apos;) OK
&gt; &gt; +Sending Play/Pause media event.
&gt; &gt; +RUN(internals.sendMediaControlEvent(&quot;play-pause&quot;))
&gt; &gt; +EXPECTED (video.paused == &apos;true&apos;) OK
&gt; &gt; +END OF TEST
&gt; 
&gt; Nit: I think it will be much easier to understand these results if you put a
&gt; blank line between logical tests.

Fixed.

&gt; 
&gt; &gt; LayoutTests/media/session/play-pause-media-events-in-content-sessions.html:44
&gt; &gt; +        function beganPlaying(event)
&gt; &gt; +        {
&gt; &gt; +            video.onplaying = null;
&gt; &gt; +
&gt; &gt; +            consoleWrite(&quot;Media began playing.&quot;);
&gt; &gt; +            testExpected(&apos;video.paused&apos;, false);
&gt; 
&gt; Ditto my comments in previous patches about manually adding logging if you
&gt; use &quot;video.on&lt;event type&gt;&quot;.

I switched to `waitForEvent`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113505</commentid>
    <comment_count>5</comment_count>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-07-30 14:58:50 -0700</bug_when>
    <thetext>Committed r187611: &lt;http://trac.webkit.org/changeset/187611&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257767</attachid>
            <date>2015-07-29 14:22:55 -0700</date>
            <delta_ts>2015-07-30 07:41:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147413-20150729142132.patch</filename>
            <type>text/plain</type>
            <size>4981</size>
            <attacher name="Matt Rajca">mrajca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NTUyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjA4NGQ1ODlkNTBkNWNkZGNlYWQw
NGZiZWJjOTJjNzJhMzc0MjkzNS4uZjBkNzUxZDlmYzA4MDlhNzFkODBjNWIzYmYyOTA2YjFmNzRi
ZDQ4MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE1LTA3LTI5ICBNYXR0IFJhamNhICA8bXJh
amNhQGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYSBTZXNzaW9uOiB0ZXN0IFBsYXkvUGF1c2Ug
bWVkaWEgY29udHJvbCBldmVudHMgZGVsaXZlcmVkIHRvIENvbnRlbnQgbWVkaWEgc2Vzc2lvbnMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzQxMwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbWVkaWEv
c2Vzc2lvbi9wbGF5LXBhdXNlLW1lZGlhLWV2ZW50cy1pbi1jb250ZW50LXNlc3Npb25zLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbWVkaWEvc2Vzc2lvbi9wbGF5LXBhdXNlLW1lZGlh
LWV2ZW50cy1pbi1jb250ZW50LXNlc3Npb25zLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRm
b3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOiBNZWRpYSBTZXNzaW9uIHN1cHBvcnQgaXMgZGlzYWJs
ZWQgYnkgZGVmYXVsdC4KKwogMjAxNS0wNy0xOSAgTWF0dCBSYWpjYSAgPG1yYWpjYUBhcHBsZS5j
b20+CiAKICAgICAgICAgTWVkaWEgU2Vzc2lvbjogdGVzdCAnVHJhbnNpZW50IFNvbG8nIGludGVy
cnVwdGlvbnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3Nlc3Npb24vcGxheS1wYXVz
ZS1tZWRpYS1ldmVudHMtaW4tY29udGVudC1zZXNzaW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9tZWRpYS9zZXNzaW9uL3BsYXktcGF1c2UtbWVkaWEtZXZlbnRzLWluLWNvbnRlbnQtc2Vz
c2lvbnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdiNzU5MjY3YTQxY2M4MGJmOGY2M2ZmNzA3
MWQ1N2M3YWY2ZDJlYTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9zZXNz
aW9uL3BsYXktcGF1c2UtbWVkaWEtZXZlbnRzLWluLWNvbnRlbnQtc2Vzc2lvbnMtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTkgQEAKKydDb250ZW50JyBzZXNzaW9ucyB0aGF0IGFyZSBhY3RpdmUg
c2hvdWxkIHJlc3BvbmQgdG8gUGxheS9QYXVzZSBtZWRpYSBjb250cm9sIGV2ZW50cy4KKworCitF
VkVOVChjYW5wbGF5dGhyb3VnaCkKK0VYUEVDVEVEIChpbnRlcm5hbHMubWVkaWFTZXNzaW9uQ3Vy
cmVudFN0YXRlKHNlc3Npb24pID09ICdpZGxlJykgT0sKK0lkbGUgTWVkaWEgU2Vzc2lvbnMgc2hv
dWxkIG5vdCByZXNwb25kIHRvIFBsYXkvUGF1c2UgZXZlbnRzLgorRVhQRUNURUQgKHZpZGVvLnBh
dXNlZCA9PSAndHJ1ZScpIE9LCitTZW5kaW5nIFBsYXkvUGF1c2UgbWVkaWEgZXZlbnQuCitSVU4o
aW50ZXJuYWxzLnNlbmRNZWRpYUNvbnRyb2xFdmVudCgicGxheS1wYXVzZSIpKQorRVhQRUNURUQg
KHZpZGVvLnBhdXNlZCA9PSAndHJ1ZScpIE9LCitQbGF5aW5nIG1lZGlhLgorTWVkaWEgYmVnYW4g
cGxheWluZy4KK0VYUEVDVEVEICh2aWRlby5wYXVzZWQgPT0gJ2ZhbHNlJykgT0sKK0VYUEVDVEVE
IChpbnRlcm5hbHMubWVkaWFTZXNzaW9uQ3VycmVudFN0YXRlKHNlc3Npb24pID09ICdhY3RpdmUn
KSBPSworU2VuZGluZyBQbGF5L1BhdXNlIG1lZGlhIGV2ZW50LgorUlVOKGludGVybmFscy5zZW5k
TWVkaWFDb250cm9sRXZlbnQoInBsYXktcGF1c2UiKSkKK0VYUEVDVEVEICh2aWRlby5wYXVzZWQg
PT0gJ3RydWUnKSBPSworRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVk
aWEvc2Vzc2lvbi9wbGF5LXBhdXNlLW1lZGlhLWV2ZW50cy1pbi1jb250ZW50LXNlc3Npb25zLmh0
bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9zZXNzaW9uL3BsYXktcGF1c2UtbWVkaWEtZXZlbnRzLWlu
LWNvbnRlbnQtc2Vzc2lvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ODFiNGMyZTAxOTIzYzI0NjBlZmMz
NWVlNjZkMTE5ZTU1NDkxNjk4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEv
c2Vzc2lvbi9wbGF5LXBhdXNlLW1lZGlhLWV2ZW50cy1pbi1jb250ZW50LXNlc3Npb25zLmh0bWwK
QEAgLTAsMCArMSw2MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxz
Y3JpcHQgc3JjPSIuLi92aWRlby10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0i
Li4vbWVkaWEtZmlsZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiPgorICAgICAgICB2YXIgc2Vzc2lvbjsKKworICAgICAgICBmdW5jdGlvbiBydW5UZXN0
KCkgCisgICAgICAgIHsKKyAgICAgICAgICAgIHNlc3Npb24gPSBuZXcgTWVkaWFTZXNzaW9uKCJj
b250ZW50Iik7CisKKyAgICAgICAgICAgIGZpbmRNZWRpYUVsZW1lbnQoKTsKKyAgICAgICAgICAg
IHdhaXRGb3JFdmVudCgnY2FucGxheXRocm91Z2gnLCBiZWdpblBsYXlpbmcpOworICAgICAgICAg
ICAgdmlkZW8uc3JjID0gZmluZE1lZGlhRmlsZSgidmlkZW8iLCAiLi4vY29udGVudC9jb3VudGlu
ZyIpOworICAgICAgICAgICAgdmlkZW8uc2Vzc2lvbiA9IHNlc3Npb247CisgICAgICAgICAgICB2
aWRlby5vbnBsYXlpbmcgPSBiZWdhblBsYXlpbmc7CisgICAgICAgIH0KKworICAgICAgICBmdW5j
dGlvbiBiZWdpblBsYXlpbmcoZXZlbnQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh3aW5k
b3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgnaW50ZXJuYWxzLm1l
ZGlhU2Vzc2lvbkN1cnJlbnRTdGF0ZShzZXNzaW9uKScsICJpZGxlIik7CisgICAgICAgICAgICAK
KyAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiSWRsZSBNZWRpYSBTZXNzaW9ucyBzaG91bGQgbm90
IHJlc3BvbmQgdG8gUGxheS9QYXVzZSBldmVudHMuIik7CisKKyAgICAgICAgICAgIHRlc3RFeHBl
Y3RlZCgndmlkZW8ucGF1c2VkJywgdHJ1ZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCJTZW5k
aW5nIFBsYXkvUGF1c2UgbWVkaWEgZXZlbnQuIik7CisgICAgICAgICAgICAgICAgcnVuKCdpbnRl
cm5hbHMuc2VuZE1lZGlhQ29udHJvbEV2ZW50KCJwbGF5LXBhdXNlIiknKTsKKyAgICAgICAgICAg
ICAgICB0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLnBhdXNlZCcsIHRydWUpOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBjb25zb2xlV3JpdGUoIlBsYXlpbmcgbWVkaWEuIik7CisgICAgICAgICAg
ICB2aWRlby5wbGF5KCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBiZWdhblBsYXlp
bmcoZXZlbnQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHZpZGVvLm9ucGxheWluZyA9IG51bGw7
CisKKyAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiTWVkaWEgYmVnYW4gcGxheWluZy4iKTsKKyAg
ICAgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8ucGF1c2VkJywgZmFsc2UpOworCisgICAgICAg
ICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3Rl
ZCgnaW50ZXJuYWxzLm1lZGlhU2Vzc2lvbkN1cnJlbnRTdGF0ZShzZXNzaW9uKScsICJhY3RpdmUi
KTsKKworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiU2VuZGluZyBQbGF5L1BhdXNlIG1l
ZGlhIGV2ZW50LiIpOworICAgICAgICAgICAgICAgIHJ1bignaW50ZXJuYWxzLnNlbmRNZWRpYUNv
bnRyb2xFdmVudCgicGxheS1wYXVzZSIpJyk7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVk
KCd2aWRlby5wYXVzZWQnLCB0cnVlKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZW5k
VGVzdCgpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9
InJ1blRlc3QoKSI+CisgICAgPHA+J0NvbnRlbnQnIHNlc3Npb25zIHRoYXQgYXJlIGFjdGl2ZSBz
aG91bGQgcmVzcG9uZCB0byBQbGF5L1BhdXNlIG1lZGlhIGNvbnRyb2wgZXZlbnRzLjwvcD4KKyAg
ICA8dmlkZW8gaWQ9InZpZGVvIiAvPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA2ZTI4ZGM3NGQxNzI4MDJkOTg0OWM4OWY3
ZmUxYzgxMDRiNzBjMzdiLi40YTZlMDU2YTliOTM2OTkwNjRiMTk2OGJjN2YyOWNiMmM5YmJmODM3
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtOTk3LDYg
Kzk5Nyw3IEBAIHdlYmtpdC5vcmcvYi8xNDA2MzkgaHR0cC90ZXN0cy9tZWRpYS92aWRlby1wbGF5
LXdhaXRpbmcuaHRtbCBbIFBhc3MgVGltZW91dCBdCiBtZWRpYS9zZXNzaW9uL2NvbnRlbnQtaW50
ZXJydXB0aW9ucy5odG1sCiBtZWRpYS9zZXNzaW9uL2NvbnRyb2xzLWV4aXN0ZW5jZS5odG1sCiBt
ZWRpYS9zZXNzaW9uL2RlZmF1bHQtc2Vzc2lvbi5odG1sCittZWRpYS9zZXNzaW9uL3BsYXktcGF1
c2UtbWVkaWEtZXZlbnRzLWluLWNvbnRlbnQtc2Vzc2lvbnMuaHRtbAogbWVkaWEvc2Vzc2lvbi90
cmFuc2llbnQtaW50ZXJydXB0aW9ucy5odG1sCiBtZWRpYS9zZXNzaW9uL3RyYW5zaWVudC1zb2xv
LWludGVycnVwdGlvbnMuaHRtbAogCg==
</data>
<flag name="review"
          id="282941"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
      

    </bug>

</bugzilla>