<?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>66978</bug_id>
          
          <creation_ts>2011-08-25 14:01:39 -0700</creation_ts>
          <short_desc>&lt;video&gt; playlist can not advance when playing in background tab</short_desc>
          <delta_ts>2011-08-26 08:14:29 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>457118</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2011-08-25 14:01:39 -0700</bug_when>
    <thetext>https://bugs.webkit.org/show_bug.cgi?id=34981 changed HTMLMediaElement so it does not begin loading media data when page-&gt;canStartMedia() returns false (ie. when its page is in a background tab). This was done to prevent media from beginning to load and play when a page is opened in a background tab, but it also prevents a script in a background tab from change a media element&apos;s url, for example to implement a playlist.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457119</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2011-08-25 14:02:07 -0700</bug_when>
    <thetext>rdar://problem/9917259</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457166</commentid>
    <comment_count>2</comment_count>
      <attachid>105256</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2011-08-25 15:09:37 -0700</bug_when>
    <thetext>Created attachment 105256
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457223</commentid>
    <comment_count>3</comment_count>
      <attachid>105256</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-08-25 16:16:15 -0700</bug_when>
    <thetext>Comment on attachment 105256
Proposed patch

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

&gt; Source/WebCore/ChangeLog:4
&gt; +        &lt;video&gt; playlist can not advance when playing in background tab
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=66978

Change log should give the reason there is no accompanying regression test.

&gt; Source/WebCore/html/HTMLMediaElement.cpp:496
&gt; -    if (m_restrictions &amp; RequireUserGestureForLoadRestriction &amp;&amp; !ScriptController::processingUserGesture())
&gt; +    if (requireUserGestureForLoad() &amp;&amp; !ScriptController::processingUserGesture())

Seems this improvement, not needed to fix the bug, could be done in a separate patch.

&gt; Source/WebCore/html/HTMLMediaElement.cpp:595
&gt; +    // Once the page has allowed an element load media, it is free to load at will. This allows a 

Should read: &quot;an element *to* load media&quot;.

&gt; Source/WebCore/html/HTMLMediaElement.cpp:1501
&gt; -    if (m_restrictions &amp; RequireUserGestureForRateChangeRestriction &amp;&amp; !ScriptController::processingUserGesture())
&gt; +    if (requireUserGestureForRateChange() &amp;&amp; !ScriptController::processingUserGesture())

Seems this improvement, not needed to fix the bug, could be done in a separate patch.

&gt; Source/WebCore/html/HTMLMediaElement.cpp:1549
&gt; -    if (m_restrictions &amp; RequireUserGestureForRateChangeRestriction &amp;&amp; !ScriptController::processingUserGesture())
&gt; +    if (requireUserGestureForRateChange() &amp;&amp; !ScriptController::processingUserGesture())

Seems this improvement, not needed to fix the bug, could be done in a separate patch.

&gt; Source/WebCore/html/HTMLMediaElement.h:195
&gt;      bool requireUserGestureForLoad() const { return m_restrictions &amp; RequireUserGestureForLoadRestriction; }
&gt;      bool requireUserGestureForRateChange() const { return m_restrictions &amp; RequireUserGestureForRateChangeRestriction; }
&gt;      bool requireUserGestureForFullScreen() const { return m_restrictions &amp; RequireUserGestureForFullScreenRestriction; }
&gt; +    bool requirePageConsentToLoadMedia() const { return m_restrictions &amp; RequirePageConsentToLoadMedia; }

For future consideration: These function names have verbs in them and can be interpreted as calls to change behavior restrictions rather than to give the state of those restrictions. It would be best to rename them to start with the word “should” so it’s clear they are boolean getters.

Since these are used only in the class it seems they could start as private. We could make them public later if needed.

&gt; Source/WebCore/html/HTMLMediaElement.h:197
&gt; +    void removeBehaviorRestriction(BehaviorRestrictions restriction) { m_restrictions &amp;= ~restriction; }

Since this is used only in the class, we could start it as private. We could make it public later if needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457562</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2011-08-26 08:14:29 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/93878</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105256</attachid>
            <date>2011-08-25 15:09:37 -0700</date>
            <delta_ts>2011-08-25 16:16:15 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>patch_1.txt</filename>
            <type>text/plain</type>
            <size>5552</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkzODIyKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMDgtMjUgIEVyaWMgQ2Fy
bHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgPHZpZGVvPiBwbGF5bGlz
dCBjYW4gbm90IGFkdmFuY2Ugd2hlbiBwbGF5aW5nIGluIGJhY2tncm91bmQgdGFiCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02Njk3OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OkhUTUxNZWRp
YUVsZW1lbnQpOiBTZXQgUmVxdWlyZVBhZ2VDb25zZW50VG9Mb2FkTWVkaWEgcmVzdHJpY3Rpb24u
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojpsb2FkKTogRHJpdmUtYnkgY2hh
bmdlIHRvIHVzZSByZXF1aXJlVXNlckdlc3R1cmVGb3JMb2FkKCkgZnVuY3Rpb24KKyAgICAgICAg
ICAgIGluc3RlYWQgb2YgbG9va2luZyBhdCB0aGUgYml0ZmllbGQgZGlyZWN0bHkuCisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojpsb2FkSW50ZXJuYWwpOiBEb24ndCBjb25zaWRl
ciBwYWdlLT5jYW5TdGFydE1lZGlhIGlmIGl0IGhhcyBldmVyCisgICAgICAgICAgICBhbGxvd2Vk
IGEgZmlsZSB0byBsb2FkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cGxh
eSk6RHJpdmUtYnkgY2hhbmdlIHRvIHVzZSByZXF1aXJlVXNlckdlc3R1cmVGb3JSYXRlQ2hhbmdl
KCkgZnVuY3Rpb24KKyAgICAgICAgICAgIGluc3RlYWQgb2YgbG9va2luZyBhdCB0aGUgYml0Zmll
bGQgZGlyZWN0bHkuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwYXVzZSk6
IERpdHRvLgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cmVxdWlyZVBhZ2VDb25zZW50VG9Mb2FkTWVkaWEpOiBO
ZXcuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRCZWhhdmlvclJlc3Ry
aWN0aW9ucyk6IFJlbW92ZSB1bnVzZWQgZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50OjpyZW1vdmVCZWhhdmlvclJlc3RyaWN0aW9uKTogTmV3LgorCiAyMDExLTA4
LTI1ICBJZ29yIE9saXZlaXJhICA8aWdvci5vbGl2ZWlyYUBvcGVuYm9zc2Eub3JnPgogCiAgICAg
ICAgIFJvbGxvdXQgcjkzNzk5OiBDYXVzZWQgYmFkIGNsaXBwaW5nIG9uIHRoZSBib3R0b20gb2Yg
dGFsbCBnbHlwaHMgaW5zaWRlIGEgYnV0dG9uIGxhYmVsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAJKHJldmlzaW9uIDkzODAyKQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTUwLDcgKzE1
MCw3IEBAIEhUTUxNZWRpYUVsZW1lbnQ6OkhUTUxNZWRpYUVsZW1lbnQoY29uc3QKICNpZiBFTkFC
TEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKICAgICAsIG1fcHJveHlXaWRnZXQoMCkKICNlbmRp
ZgotICAgICwgbV9yZXN0cmljdGlvbnMoUmVxdWlyZVVzZXJHZXN0dXJlRm9yRnVsbFNjcmVlblJl
c3RyaWN0aW9uKQorICAgICwgbV9yZXN0cmljdGlvbnMoUmVxdWlyZVVzZXJHZXN0dXJlRm9yRnVs
bFNjcmVlblJlc3RyaWN0aW9uIHwgUmVxdWlyZVBhZ2VDb25zZW50VG9Mb2FkTWVkaWEpCiAgICAg
LCBtX3ByZWxvYWQoTWVkaWFQbGF5ZXI6OkF1dG8pCiAgICAgLCBtX2Rpc3BsYXlNb2RlKFVua25v
d24pCiAgICAgLCBtX3Byb2Nlc3NpbmdNZWRpYVBsYXllckNhbGxiYWNrKDApCkBAIC00OTMsNyAr
NDkzLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpsb2FkKEV4Y2VwdGlvbkNvZAogewogICAg
IExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OmxvYWQoKSIpOwogCi0gICAgaWYgKG1fcmVz
dHJpY3Rpb25zICYgUmVxdWlyZVVzZXJHZXN0dXJlRm9yTG9hZFJlc3RyaWN0aW9uICYmICFTY3Jp
cHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKSkKKyAgICBpZiAocmVxdWlyZVVz
ZXJHZXN0dXJlRm9yTG9hZCgpICYmICFTY3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdl
c3R1cmUoKSkKICAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKICAgICBlbHNlIHsKICAg
ICAgICAgbV9sb2FkSW5pdGlhdGVkQnlVc2VyR2VzdHVyZSA9IFNjcmlwdENvbnRyb2xsZXI6OnBy
b2Nlc3NpbmdVc2VyR2VzdHVyZSgpOwpAQCAtNTg0LDEzICs1ODQsMTggQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50Ojpsb2FkSW50ZXJuYWwoKQogewogICAgIC8vIElmIHdlIGNhbid0IHN0YXJ0IGEg
bG9hZCByaWdodCBhd2F5LCBzdGFydCBpdCBsYXRlci4KICAgICBQYWdlKiBwYWdlID0gZG9jdW1l
bnQoKS0+cGFnZSgpOwotICAgIGlmIChwYWdlICYmICFwYWdlLT5jYW5TdGFydE1lZGlhKCkpIHsK
KyAgICBpZiAocmVxdWlyZVBhZ2VDb25zZW50VG9Mb2FkTWVkaWEoKSAmJiBwYWdlICYmICFwYWdl
LT5jYW5TdGFydE1lZGlhKCkpIHsKICAgICAgICAgaWYgKG1faXNXYWl0aW5nVW50aWxNZWRpYUNh
blN0YXJ0KQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBkb2N1bWVudCgpLT5hZGRNZWRp
YUNhblN0YXJ0TGlzdGVuZXIodGhpcyk7CiAgICAgICAgIG1faXNXYWl0aW5nVW50aWxNZWRpYUNh
blN0YXJ0ID0gdHJ1ZTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyAgICAKKyAgICAvLyBPbmNl
IHRoZSBwYWdlIGhhcyBhbGxvd2VkIGFuIGVsZW1lbnQgbG9hZCBtZWRpYSwgaXQgaXMgZnJlZSB0
byBsb2FkIGF0IHdpbGwuIFRoaXMgYWxsb3dzIGEgCisgICAgLy8gcGxheWxpc3QgdGhhdCBzdGFy
dHMgaW4gYSBmb3JlZ3JvdW5kIHRhYiB0byBjb250aW51ZSBhdXRvbWF0aWNhbGx5IGlmIHRoZSB0
YWIgaXMgc3Vic2VxdWVudGx5IAorICAgIC8vIHB1dCBpbiB0aGUgdGhlIGJhY2tncm91bmQuCisg
ICAgcmVtb3ZlQmVoYXZpb3JSZXN0cmljdGlvbihSZXF1aXJlUGFnZUNvbnNlbnRUb0xvYWRNZWRp
YSk7CiAKICAgICBzZWxlY3RNZWRpYVJlc291cmNlKCk7CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNL
KQpAQCAtMTQ5Myw3ICsxNDk4LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwbGF5KCkKIHsK
ICAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50OjpwbGF5KCkiKTsKIAotICAgIGlmICht
X3Jlc3RyaWN0aW9ucyAmIFJlcXVpcmVVc2VyR2VzdHVyZUZvclJhdGVDaGFuZ2VSZXN0cmljdGlv
biAmJiAhU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpCisgICAgaWYg
KHJlcXVpcmVVc2VyR2VzdHVyZUZvclJhdGVDaGFuZ2UoKSAmJiAhU2NyaXB0Q29udHJvbGxlcjo6
cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIFNldHRpbmdz
KiBzZXR0aW5ncyA9IGRvY3VtZW50KCktPnNldHRpbmdzKCk7CkBAIC0xNTQxLDcgKzE1NDYsNyBA
QCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnBhdXNlKCkKIHsKICAgICBMT0coTWVkaWEsICJIVE1M
TWVkaWFFbGVtZW50OjpwYXVzZSgpIik7CiAKLSAgICBpZiAobV9yZXN0cmljdGlvbnMgJiBSZXF1
aXJlVXNlckdlc3R1cmVGb3JSYXRlQ2hhbmdlUmVzdHJpY3Rpb24gJiYgIVNjcmlwdENvbnRyb2xs
ZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKQorICAgIGlmIChyZXF1aXJlVXNlckdlc3R1cmVG
b3JSYXRlQ2hhbmdlKCkgJiYgIVNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVy
ZSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBwYXVzZUludGVybmFsKCk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAkocmV2aXNpb24gOTM4MDIpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTg0
LDE1ICsxODQsMTcgQEAgcHVibGljOgogICAgICAgICBOb1Jlc3RyaWN0aW9ucyA9IDAsCiAgICAg
ICAgIFJlcXVpcmVVc2VyR2VzdHVyZUZvckxvYWRSZXN0cmljdGlvbiA9IDEgPDwgMCwKICAgICAg
ICAgUmVxdWlyZVVzZXJHZXN0dXJlRm9yUmF0ZUNoYW5nZVJlc3RyaWN0aW9uID0gMSA8PCAxLAot
ICAgICAgICBSZXF1aXJlVXNlckdlc3R1cmVGb3JGdWxsU2NyZWVuUmVzdHJpY3Rpb24gPSAxIDw8
IDIKKyAgICAgICAgUmVxdWlyZVVzZXJHZXN0dXJlRm9yRnVsbFNjcmVlblJlc3RyaWN0aW9uID0g
MSA8PCAyLAorICAgICAgICBSZXF1aXJlUGFnZUNvbnNlbnRUb0xvYWRNZWRpYSA9IDEgPDwgMywK
ICAgICB9OwogICAgIHR5cGVkZWYgdW5zaWduZWQgQmVoYXZpb3JSZXN0cmljdGlvbnM7CiAgICAg
CiAgICAgYm9vbCByZXF1aXJlVXNlckdlc3R1cmVGb3JMb2FkKCkgY29uc3QgeyByZXR1cm4gbV9y
ZXN0cmljdGlvbnMgJiBSZXF1aXJlVXNlckdlc3R1cmVGb3JMb2FkUmVzdHJpY3Rpb247IH0KICAg
ICBib29sIHJlcXVpcmVVc2VyR2VzdHVyZUZvclJhdGVDaGFuZ2UoKSBjb25zdCB7IHJldHVybiBt
X3Jlc3RyaWN0aW9ucyAmIFJlcXVpcmVVc2VyR2VzdHVyZUZvclJhdGVDaGFuZ2VSZXN0cmljdGlv
bjsgfQogICAgIGJvb2wgcmVxdWlyZVVzZXJHZXN0dXJlRm9yRnVsbFNjcmVlbigpIGNvbnN0IHsg
cmV0dXJuIG1fcmVzdHJpY3Rpb25zICYgUmVxdWlyZVVzZXJHZXN0dXJlRm9yRnVsbFNjcmVlblJl
c3RyaWN0aW9uOyB9CisgICAgYm9vbCByZXF1aXJlUGFnZUNvbnNlbnRUb0xvYWRNZWRpYSgpIGNv
bnN0IHsgcmV0dXJuIG1fcmVzdHJpY3Rpb25zICYgUmVxdWlyZVBhZ2VDb25zZW50VG9Mb2FkTWVk
aWE7IH0KIAotICAgIHZvaWQgc2V0QmVoYXZpb3JSZXN0cmljdGlvbnMoQmVoYXZpb3JSZXN0cmlj
dGlvbnMgcmVzdHJpY3Rpb25zKSB7IG1fcmVzdHJpY3Rpb25zID0gcmVzdHJpY3Rpb25zOyB9Cisg
ICAgdm9pZCByZW1vdmVCZWhhdmlvclJlc3RyaWN0aW9uKEJlaGF2aW9yUmVzdHJpY3Rpb25zIHJl
c3RyaWN0aW9uKSB7IG1fcmVzdHJpY3Rpb25zICY9IH5yZXN0cmljdGlvbjsgfQogCiAgICAgLy8g
TWVkaWEgY2FjaGUgbWFuYWdlbWVudC4KICAgICBzdGF0aWMgdm9pZCBnZXRTaXRlc0luTWVkaWFD
YWNoZShWZWN0b3I8U3RyaW5nPiYpOwo=
</data>
<flag name="review"
          id="101348"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>