<?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>156648</bug_id>
          
          <creation_ts>2016-04-15 16:57:41 -0700</creation_ts>
          <short_desc>REGRESSION( r199603): Pandora crashes WebKit in WebPlaybackSessionManager::removeClientForContext</short_desc>
          <delta_ts>2016-04-18 09:04:02 -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="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>bdakin</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1184270</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-04-15 16:57:41 -0700</bug_when>
    <thetext>REGRESSION( r199603): Pandora crashes WebKit in WebPlaybackSessionManager::removeClientForContext</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184271</commentid>
    <comment_count>1</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-04-15 16:58:14 -0700</bug_when>
    <thetext>rdar://problem/25758117</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184272</commentid>
    <comment_count>2</comment_count>
      <attachid>276526</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-04-15 16:59:30 -0700</bug_when>
    <thetext>Created attachment 276526
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184273</commentid>
    <comment_count>3</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-04-15 17:01:52 -0700</bug_when>
    <thetext>Committed r199615: &lt;http://trac.webkit.org/changeset/199615&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184333</commentid>
    <comment_count>4</comment_count>
      <attachid>276526</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-04-15 22:41:14 -0700</bug_when>
    <thetext>Comment on attachment 276526
Patch

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

&gt; Source/WebKit2/WebProcess/cocoa/WebPlaybackSessionManager.mm:262
&gt; +    if (!m_mediaElements.contains(&amp;mediaElement))
&gt;          return;
&gt;  
&gt;      uint64_t contextId = m_mediaElements.get(&amp;mediaElement);

This is an inefficient coding pattern. It’s a double hash table lookup. Preferred style is to take advantage of the empty value, and so know that a contextId of 0 means that mediaElement is not in m_mediaElement, or to use find and thus be able to do both the contains (iterator != m_mediaElement.end()) and get (iterator-&gt;value) operations and share that single hash table lookup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184679</commentid>
    <comment_count>5</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-04-18 08:33:06 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184680</commentid>
    <comment_count>6</comment_count>
      <attachid>276641</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-04-18 08:33:14 -0700</bug_when>
    <thetext>Created attachment 276641
Follow up patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184688</commentid>
    <comment_count>7</comment_count>
      <attachid>276641</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-04-18 08:52:40 -0700</bug_when>
    <thetext>Comment on attachment 276641
Follow up patch

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

&gt; Source/WebKit2/WebProcess/cocoa/WebPlaybackSessionManager.mm:236
&gt; +    auto foundIter = m_mediaElements.find(&amp;mediaElement);

Normally best not to abbreviate &quot;iterator&quot; as &quot;iter&quot;. I would probably have named this just &quot;iterator&quot;, but &quot;foundIterator&quot; is OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184691</commentid>
    <comment_count>8</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-04-18 09:04:02 -0700</bug_when>
    <thetext>Committed r199671: &lt;http://trac.webkit.org/changeset/199671&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276526</attachid>
            <date>2016-04-15 16:59:30 -0700</date>
            <delta_ts>2016-04-15 17:00:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156648-20160415165944.patch</filename>
            <type>text/plain</type>
            <size>1661</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5NjEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjQzNWE5M2YwMDA5MDcw
ZGIzYTk2ODg5YjJkYjcwYjliZDlmMDhhNi4uMDEzOTZkZWM2ZTNjOWZiNGRmNDBmNGZkOTk2ZGU0
OTBlNjk5ZjkxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE2LTA0LTE1ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04oIHIxOTk2
MDMpOiBQYW5kb3JhIGNyYXNoZXMgV2ViS2l0IGluIFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXI6
OnJlbW92ZUNsaWVudEZvckNvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE1NjY0OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjU3NTgxMTc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWlzdGFr
ZW5seSBjaGVja2VkIGluIGEgcmV2ZXJzZWQgY29uZGl0aW9uIGNoZWNrLCB3aGljaCBjYXVzZXMg
YSBzdWJzZXF1ZW50IGFzc2VydCBhbmQgY3Jhc2guCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL2Nv
Y29hL1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBs
YXliYWNrU2Vzc2lvbk1hbmFnZXI6OmNsZWFyUGxheWJhY2tDb250cm9sc01hbmFnZXIpOgorCiAy
MDE2LTA0LTE1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTWFy
ayBOZXR3b3JrTG9hZCBhcyBGYXN0QWxsb2NhdGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIubW0KaW5k
ZXggZTM4NGIyMjMyMzYxNjg5ZGE5ZDI0MGJmOWNlY2YxZGZlYzk0Mjg2MC4uNmUxYjVkNzMwYjNj
Y2FjYzMwMmE5NDkzNDE5OTdhYzE1ZWZkNzhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlci5tbQpA
QCAtMjU2LDcgKzI1Niw3IEBAIHZvaWQgV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlcjo6c2V0VXBQ
bGF5YmFja0NvbnRyb2xzTWFuYWdlcihXZWJDb3JlOjpIVE1MTWVkaWFFCiB2b2lkIFdlYlBsYXli
YWNrU2Vzc2lvbk1hbmFnZXI6OmNsZWFyUGxheWJhY2tDb250cm9sc01hbmFnZXIoV2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudCYgbWVkaWFFbGVtZW50KQogewogI2lmIFBMQVRGT1JNKE1BQykKLSAg
ICBpZiAobV9tZWRpYUVsZW1lbnRzLmNvbnRhaW5zKCZtZWRpYUVsZW1lbnQpKQorICAgIGlmICgh
bV9tZWRpYUVsZW1lbnRzLmNvbnRhaW5zKCZtZWRpYUVsZW1lbnQpKQogICAgICAgICByZXR1cm47
CiAKICAgICB1aW50NjRfdCBjb250ZXh0SWQgPSBtX21lZGlhRWxlbWVudHMuZ2V0KCZtZWRpYUVs
ZW1lbnQpOwo=
</data>
<flag name="review"
          id="300811"
          type_id="1"
          status="+"
          setter="bdakin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276641</attachid>
            <date>2016-04-18 08:33:14 -0700</date>
            <delta_ts>2016-04-18 08:52:40 -0700</delta_ts>
            <desc>Follow up patch</desc>
            <filename>bug-156648-20160418083332.patch</filename>
            <type>text/plain</type>
            <size>2605</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5NjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjMwYTYwMjYyZTIzMWZh
OTdiZWIzZTNiYzQ0ZjE3ODQ5NGNkZDViNy4uMTIzOTk1NjIzYzk3YzY3MmZhNjQzNWJiNGVmNjVm
M2FiZjMwNjE3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE2LTA0LTE4ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04oIHIxOTk2
MDMpOiBQYW5kb3JhIGNyYXNoZXMgV2ViS2l0IGluIFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXI6
OnJlbW92ZUNsaWVudEZvckNvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE1NjY0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEZvbGxvdyB1cCBwYXRjaCB0byByMTk5NjE1OyBhdm9pZCBhIGRvdWJs
ZSBoYXNoIGxvb2t1cCBieSB1c2luZyBhIC5maW5kKCkgcGF0dGVybiBpbnN0ZWFkIG9mCisgICAg
ICAgIC5jb250YWlucygpICYgLmdldCgpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9X
ZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF5YmFj
a1Nlc3Npb25NYW5hZ2VyOjpzZXRVcFBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlcjo6Y2xlYXJQbGF5YmFja0NvbnRyb2xz
TWFuYWdlcik6CisKIDIwMTYtMDQtMTUgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CiAKICAgICAgICAgUkVHUkVTU0lPTiggcjE5OTYwMyk6IFBhbmRvcmEgY3Jhc2hlcyBXZWJLaXQg
aW4gV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlcjo6cmVtb3ZlQ2xpZW50Rm9yQ29udGV4dApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQbGF5YmFja1Nlc3Np
b25NYW5hZ2VyLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQbGF5YmFj
a1Nlc3Npb25NYW5hZ2VyLm1tCmluZGV4IDZlMWI1ZDczMGIzY2NhY2MzMDJhOTQ5MzQxOTk3YWMx
NWVmZDc4ZDAuLmFlYjdlNzgzNGU1OTUyYjdmOTJjMjRlMjIzYzlkMjkxYzkxZmYwOTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvV2ViUGxheWJhY2tTZXNzaW9u
TWFuYWdlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlBsYXli
YWNrU2Vzc2lvbk1hbmFnZXIubW0KQEAgLTIzMyw4ICsyMzMsOSBAQCB2b2lkIFdlYlBsYXliYWNr
U2Vzc2lvbk1hbmFnZXI6OnJlbW92ZUNsaWVudEZvckNvbnRleHQodWludDY0X3QgY29udGV4dElk
KQogdm9pZCBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjpzZXRVcFBsYXliYWNrQ29udHJvbHNN
YW5hZ2VyKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQmIG1lZGlhRWxlbWVudCkKIHsKICNpZiBQ
TEFURk9STShNQUMpCi0gICAgaWYgKG1fbWVkaWFFbGVtZW50cy5jb250YWlucygmbWVkaWFFbGVt
ZW50KSkgewotICAgICAgICB1aW50NjRfdCBjb250ZXh0SWQgPSBtX21lZGlhRWxlbWVudHMuZ2V0
KCZtZWRpYUVsZW1lbnQpOworICAgIGF1dG8gZm91bmRJdGVyID0gbV9tZWRpYUVsZW1lbnRzLmZp
bmQoJm1lZGlhRWxlbWVudCk7CisgICAgaWYgKGZvdW5kSXRlciAhPSBtX21lZGlhRWxlbWVudHMu
ZW5kKCkpIHsKKyAgICAgICAgdWludDY0X3QgY29udGV4dElkID0gZm91bmRJdGVyLT52YWx1ZTsK
ICAgICAgICAgaWYgKG1fY29udHJvbHNNYW5hZ2VyQ29udGV4dElkID09IGNvbnRleHRJZCkKICAg
ICAgICAgICAgIHJldHVybjsKIApAQCAtMjU2LDExICsyNTcsMTEgQEAgdm9pZCBXZWJQbGF5YmFj
a1Nlc3Npb25NYW5hZ2VyOjpzZXRVcFBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKFdlYkNvcmU6OkhU
TUxNZWRpYUUKIHZvaWQgV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlcjo6Y2xlYXJQbGF5YmFja0Nv
bnRyb2xzTWFuYWdlcihXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50JiBtZWRpYUVsZW1lbnQpCiB7
CiAjaWYgUExBVEZPUk0oTUFDKQotICAgIGlmICghbV9tZWRpYUVsZW1lbnRzLmNvbnRhaW5zKCZt
ZWRpYUVsZW1lbnQpKQorICAgIGF1dG8gZm91bmRJdGVyID0gbV9tZWRpYUVsZW1lbnRzLmZpbmQo
Jm1lZGlhRWxlbWVudCk7CisgICAgaWYgKGZvdW5kSXRlciA9PSBtX21lZGlhRWxlbWVudHMuZW5k
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHVpbnQ2NF90IGNvbnRleHRJZCA9IG1fbWVkaWFF
bGVtZW50cy5nZXQoJm1lZGlhRWxlbWVudCk7Ci0gICAgaWYgKG1fY29udHJvbHNNYW5hZ2VyQ29u
dGV4dElkICE9IGNvbnRleHRJZCkKKyAgICBpZiAobV9jb250cm9sc01hbmFnZXJDb250ZXh0SWQg
IT0gZm91bmRJdGVyLT52YWx1ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgcmVtb3ZlQ2xpZW50
Rm9yQ29udGV4dChtX2NvbnRyb2xzTWFuYWdlckNvbnRleHRJZCk7Cg==
</data>
<flag name="review"
          id="300911"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>