<?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>146132</bug_id>
          
          <creation_ts>2015-06-18 17:09:16 -0700</creation_ts>
          <short_desc>Support releasing media sessions</short_desc>
          <delta_ts>2015-06-23 15:05:04 -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>jer.noble</cc>
    
    <cc>mrajca</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1103097</commentid>
    <comment_count>0</comment_count>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-06-18 17:09:16 -0700</bug_when>
    <thetext>Implement the release method described in section 5.1.3 of the Media Session spec, as well as its helper algorithm from section 4.6 &quot;Releasing a media session&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1103101</commentid>
    <comment_count>1</comment_count>
      <attachid>255155</attachid>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-06-18 17:16:16 -0700</bug_when>
    <thetext>Created attachment 255155
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1103316</commentid>
    <comment_count>2</comment_count>
      <attachid>255155</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-06-19 11:23:43 -0700</bug_when>
    <thetext>Comment on attachment 255155
Patch

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

&gt; Source/WebCore/Modules/mediasession/MediaSession.cpp:84
&gt; +    while (!m_activeParticipatingElements.isEmpty()) {
&gt; +        HTMLMediaElement* element = m_activeParticipatingElements.takeAny();
&gt; +        element-&gt;pause();
&gt; +    }

Could write this without the local variable:

    while (!m_activeParticipatingElements.isEmpty())
        m_activeParticipatingElements.takeAny()-&gt;pause();

&gt; Source/WebCore/Modules/mediasession/MediaSession.cpp:98
&gt; +    if (m_activeParticipatingElements.size() &gt;= 1)

I think !isEmpty() would be better. Sometimes it’s better not to take specification language too literally! One or more doesn’t have to turn into &gt;= 1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1103317</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-06-19 11:24:07 -0700</bug_when>
    <thetext>&lt;rdar://problem/21464030&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104194</commentid>
    <comment_count>4</comment_count>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-06-23 15:04:38 -0700</bug_when>
    <thetext>Committed r185885: &lt;http://trac.webkit.org/changeset/185885&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104195</commentid>
    <comment_count>5</comment_count>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-06-23 15:05:04 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 255155 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=255155&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/mediasession/MediaSession.cpp:84
&gt; &gt; +    while (!m_activeParticipatingElements.isEmpty()) {
&gt; &gt; +        HTMLMediaElement* element = m_activeParticipatingElements.takeAny();
&gt; &gt; +        element-&gt;pause();
&gt; &gt; +    }
&gt; 
&gt; Could write this without the local variable:
&gt; 
&gt;     while (!m_activeParticipatingElements.isEmpty())
&gt;         m_activeParticipatingElements.takeAny()-&gt;pause();
&gt; 
&gt; &gt; Source/WebCore/Modules/mediasession/MediaSession.cpp:98
&gt; &gt; +    if (m_activeParticipatingElements.size() &gt;= 1)
&gt; 
&gt; I think !isEmpty() would be better. Sometimes it’s better not to take
&gt; specification language too literally! One or more doesn’t have to turn into
&gt; &gt;= 1.

Thanks for the feedback. Fixed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>255155</attachid>
            <date>2015-06-18 17:16:16 -0700</date>
            <delta_ts>2015-06-19 11:23:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146132-20150618171539.patch</filename>
            <type>text/plain</type>
            <size>3676</size>
            <attacher name="Matt Rajca">mrajca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1Njc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDM5MGQ5NjA4NDlkOGUy
MGVmMDJkYzQ2N2Q4Y2EyN2VhM2Q5ZjU5MC4uMTBmZTk0ZjE3YmMxNTQ0ZjE4NGVhZTE0ZjhjOWRk
NjdlYmU3YzUzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE1LTA2LTE4ICBNYXR0
IFJhamNhICA8bXJhamNhQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IHJlbGVhc2luZyBt
ZWRpYSBzZXNzaW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQ2MTMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwOiBJbXBsZW1lbnRl
ZCBhcyBkZXNjcmliZWQgaW4gdGhlIE1lZGlhIFNlc3Npb24gc3BlYy4KKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhU2Vzc2lvbjo6cmVsZWFzZVNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTZXNzaW9uOjpyZWxlYXNlSW50ZXJuYWwpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNz
aW9uL01lZGlhU2Vzc2lvbi5oOgorCiAyMDE1LTA2LTE2ICBNYXR0IFJhamNhICA8bXJhamNhQGFw
cGxlLmNvbT4KIAogICAgICAgICBNZWRpYVNlc3Npb246IGhhbmRsZSBNZWRpYUV2ZW50VHJhY2tO
ZXh0IGFuZCBNZWRpYUV2ZW50VHJhY2tQcmV2aW91cyBldmVudHMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwCmluZGV4IGEyYTdl
MzliZDA4ZDY0ZTYwOWFmNjdjOTNmOGY5NmE5NmIyZTE4NGQuLjk5YTJjNDc4NDU4YjcwYzc4Mzcz
NDQ3YTM3OTYzMWFkNjg1MmM3NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcApAQCAtNzQsNiArNzQsMzkgQEAgdm9pZCBN
ZWRpYVNlc3Npb246OmFkZEFjdGl2ZU1lZGlhRWxlbWVudChIVE1MTWVkaWFFbGVtZW50JiBlbGVt
ZW50KQogCiB2b2lkIE1lZGlhU2Vzc2lvbjo6cmVsZWFzZVNlc3Npb24oKQogeworICAgIC8vIDUu
MS4zCisgICAgLy8gMS4gTGV0IG1lZGlhIHNlc3Npb24gYmUgdGhlIGN1cnJlbnQgbWVkaWEgc2Vz
c2lvbi4KKyAgICAvLyAyLiBJbmRlZmluaXRlbHkgcGF1c2UgYWxsIG9mIG1lZGlhIHNlc3Npb24n
cyBhY3RpdmUgcGFydGljaXBhdGluZyBtZWRpYSBlbGVtZW50cy4KKyAgICAvLyAzLiBSZXNldCBt
ZWRpYSBzZXNzaW9uJ3MgYWN0aXZlIHBhcnRpY2lwYXRpbmcgbWVkaWEgZWxlbWVudHMgdG8gYW4g
ZW1wdHkgbGlzdC4KKyAgICB3aGlsZSAoIW1fYWN0aXZlUGFydGljaXBhdGluZ0VsZW1lbnRzLmlz
RW1wdHkoKSkgeworICAgICAgICBIVE1MTWVkaWFFbGVtZW50KiBlbGVtZW50ID0gbV9hY3RpdmVQ
YXJ0aWNpcGF0aW5nRWxlbWVudHMudGFrZUFueSgpOworICAgICAgICBlbGVtZW50LT5wYXVzZSgp
OworICAgIH0KKworICAgIC8vIDQuIFJ1biB0aGUgbWVkaWEgc2Vzc2lvbiByZWxlYXNlIGFsZ29y
aXRobSBmb3IgbWVkaWEgc2Vzc2lvbi4KKyAgICByZWxlYXNlSW50ZXJuYWwoKTsKK30KKwordm9p
ZCBNZWRpYVNlc3Npb246OnJlbGVhc2VJbnRlcm5hbCgpCit7CisgICAgLy8gNi41LiBSZWxlYXNp
bmcgYSBtZWRpYSBzZXNzaW9uCisgICAgLy8gMS4gSWYgY3VycmVudCBtZWRpYSBzZXNzaW9uJ3Mg
Y3VycmVudCBzdGF0ZSBpcyBpZGxlLCB0aGVuIHRlcm1pbmF0ZSB0aGVzZSBzdGVwcy4KKyAgICBp
ZiAobV9jdXJyZW50U3RhdGUgPT0gU3RhdGU6OklkbGUpCisgICAgICAgIHJldHVybjsKKworICAg
IC8vIDIuIElmIGN1cnJlbnQgbWVkaWEgc2Vzc2lvbiBzdGlsbCBoYXMgb25lIG9yIG1vcmUgYWN0
aXZlIHBhcnRpY2lwYXRpbmcgbWVkaWEgZWxlbWVudHMsIHRoZW4gdGVybWluYXRlIHRoZXNlIHN0
ZXBzLgorICAgIGlmIChtX2FjdGl2ZVBhcnRpY2lwYXRpbmdFbGVtZW50cy5zaXplKCkgPj0gMSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgLy8gMy4gT3B0aW9uYWxseSwgYmFzZWQgb24gcGxhdGZv
cm0gY29udmVudGlvbnMsIHRoZSB1c2VyIGFnZW50IG11c3QgcmVsZWFzZSBhbnkgY3VycmVudGx5
IGhlbGQgcGxhdGZvcm0gbWVkaWEgZm9jdXMKKyAgICAvLyAgICBmb3IgY3VycmVudCBtZWRpYSBz
ZXNzaW9uLgorICAgIC8vIDQuIE9wdGlvbmFsbHksIGJhc2VkIG9uIHBsYXRmb3JtIGNvbnZlbnRp
b25zLCB0aGUgdXNlciBhZ2VudCBtdXN0IHJlbW92ZSBhbnkgcHJldmlvdXNseSBlc3RhYmxpc2hl
ZCBvbmdvaW5nIG1lZGlhCisgICAgLy8gICAgaW50ZXJmYWNlIGluIHRoZSB1bmRlcmx5aW5nIHBs
YXRmb3Jt4oCZcyBub3RpZmljYXRpb25zIGFyZWEgYW5kIGFueSBvbmdvaW5nIG1lZGlhIGludGVy
ZmFjZSBpbiB0aGUgdW5kZXJseWluZworICAgIC8vICAgIHBsYXRmb3JtJ3MgbG9jayBzY3JlZW4g
YXJlYSBmb3IgY3VycmVudCBtZWRpYSBzZXNzaW9uLCBpZiBhbnkuCisgICAgLy8gNS4gT3B0aW9u
YWxseSwgYmFzZWQgb24gcGxhdGZvcm0gY29udmVudGlvbnMsIHRoZSB1c2VyIGFnZW50IG11c3Qg
cHJldmVudCBhbnkgaGFyZHdhcmUgYW5kL29yIHNvZnR3YXJlIG1lZGlhIGtleXMKKyAgICAvLyAg
ICBmcm9tIGNvbnRyb2xsaW5nIHBsYXliYWNrIG9mIGN1cnJlbnQgbWVkaWEgc2Vzc2lvbidzIGFj
dGl2ZSBwYXJ0aWNpcGF0aW5nIG1lZGlhIGVsZW1lbnRzLgorICAgIC8vIDYuIFNldCBjdXJyZW50
IG1lZGlhIHNlc3Npb24ncyBjdXJyZW50IHN0YXRlIHRvIGlkbGUuCisgICAgbV9jdXJyZW50U3Rh
dGUgPSBTdGF0ZTo6SWRsZTsKIH0KIAogYm9vbCBNZWRpYVNlc3Npb246Omludm9rZSgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24u
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oCmlu
ZGV4IGU4ZjY0ZWRhNTdmZDk2MjBiNmUyOGVjYjc1NmFmYzNhOGNkZGU2M2UuLjJkNmMyMmZkZDU3
ODIzMWJlMzJmZTJmZTc5N2E3NGJhZGZjZmI5ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oCkBAIC03Miw2ICs3Miw4IEBAIHBy
aXZhdGU6CiAKICAgICB2b2lkIGFkZEFjdGl2ZU1lZGlhRWxlbWVudChIVE1MTWVkaWFFbGVtZW50
Jik7CiAKKyAgICB2b2lkIHJlbGVhc2VJbnRlcm5hbCgpOworCiAgICAgU3RhdGUgbV9jdXJyZW50
U3RhdGUgeyBTdGF0ZTo6SWRsZSB9OwogICAgIFZlY3RvcjxIVE1MTWVkaWFFbGVtZW50Kj4gbV9w
YXJ0aWNpcGF0aW5nRWxlbWVudHM7CiAgICAgSGFzaFNldDxIVE1MTWVkaWFFbGVtZW50Kj4gbV9h
Y3RpdmVQYXJ0aWNpcGF0aW5nRWxlbWVudHM7Cg==
</data>
<flag name="review"
          id="280203"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>