<?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>73466</bug_id>
          
          <creation_ts>2011-11-30 10:37:31 -0800</creation_ts>
          <short_desc>HTMLTrackElement.readyState should return TextTrack &quot;readiness state&quot;.</short_desc>
          <delta_ts>2011-12-01 08:48:14 -0800</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>
          <cc>annacc</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>511872</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2011-11-30 10:37:31 -0800</bug_when>
    <thetext>r101213 (72553) moved the text track &apos;readyState&apos; attribute from TextTrack to HTMLTrackElement. The attribute and constants do belong on the element, but all types of text tracks - in-band, out of band, and those created with addTextTrack() - must maintain a &quot;text track readiness state&quot; as well. Additionally, HTMLTrackElement.readyState is supposed to return the readiness state of the track element&apos;s TextTrack:

  The readyState attribute must return the numeric value corresponding to the text track 
  readiness state of the track element&apos;s text track [1]

[1] http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#dom-track-readystate</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511873</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2011-11-30 10:38:06 -0800</bug_when>
    <thetext>&lt;rdar://problem/10504834&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511899</commentid>
    <comment_count>2</comment_count>
      <attachid>117225</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2011-11-30 11:01:01 -0800</bug_when>
    <thetext>Created attachment 117225
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512278</commentid>
    <comment_count>3</comment_count>
      <attachid>117225</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-11-30 17:23:55 -0800</bug_when>
    <thetext>Comment on attachment 117225
Proposed patch

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

This code is OK but I am not happy about having two enums that have to always match. Can we fix that?

&gt; Source/WebCore/html/HTMLTrackElement.cpp:223
&gt; +    ensureTrack()-&gt;setReadinessState(static_cast&lt;TextTrack::ReadinessState&gt;(state));

This cast isn’t safe if we ever change one of the two enums without the other. There’s not even a comment to guarantee we keep them in sync.

&gt; Source/WebCore/html/HTMLTrackElement.cpp:230
&gt; +    return static_cast&lt;HTMLTrackElement::ReadyState&gt;(ensureTrack()-&gt;readinessState());

No need here for HTMLTrackElement:: prefix.

This cast isn’t safe if we ever change one of the two enums without the other. There’s not even a comment to guarantee we keep them in sync.

&gt; Source/WebCore/html/TextTrack.h:113
&gt; +    TextTrack::ReadinessState m_readinessState;

There is no need for TextTrack:: prefix here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512797</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2011-12-01 08:47:55 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 117225 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=117225&amp;action=review
&gt; 
&gt; This code is OK but I am not happy about having two enums that have to always match. Can we fix that?
&gt; 
&gt; &gt; Source/WebCore/html/HTMLTrackElement.cpp:223
&gt; &gt; +    ensureTrack()-&gt;setReadinessState(static_cast&lt;TextTrack::ReadinessState&gt;(state));
&gt; 
&gt; This cast isn’t safe if we ever change one of the two enums without the other. There’s not even a comment to guarantee we keep them in sync.
&gt; 
I couldn&apos;t come up with a clean way to have just one enum because the enum in HTMLTrackElement.h is visible to JavaScript, and HTMLTrackElement.h has to include TextTrack.h, but I added COMPILE_ASSERTs for all values so HTMLTrackElement.cpp will fail to compile if the two enums ever get out of sync.

&gt; &gt; Source/WebCore/html/HTMLTrackElement.cpp:230
&gt; &gt; +    return static_cast&lt;HTMLTrackElement::ReadyState&gt;(ensureTrack()-&gt;readinessState());
&gt; 
&gt; No need here for HTMLTrackElement:: prefix.
&gt; 
Fixed.

&gt; &gt; Source/WebCore/html/TextTrack.h:113
&gt; &gt; +    TextTrack::ReadinessState m_readinessState;
&gt; 
&gt; There is no need for TextTrack:: prefix here.
&gt;
Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512798</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2011-12-01 08:48:14 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/101673</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117225</attachid>
            <date>2011-11-30 11:01:01 -0800</date>
            <delta_ts>2011-11-30 17:23:55 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>patch_ready_state_1.txt</filename>
            <type>text/plain</type>
            <size>4904</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMTUyOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDExLTExLTMwICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIEhUTUxUcmFja0VsZW1l
bnQucmVhZHlTdGF0ZSBzaG91bGQgcmV0dXJuIFRleHRUcmFjayAicmVhZGluZXNzIHN0YXRlIi4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczNDY2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodG1sL0hU
TUxUcmFja0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyYWNrRWxlbWVudDo6
SFRNTFRyYWNrRWxlbWVudCk6IERvbid0IGluaXRpYWxpemUgbV9yZWFkeVN0YXRlLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTFRyYWNrRWxlbWVudDo6c2V0UmVhZHlTdGF0ZSk6IFJldHVybiB0aGUg
VGV4dFRyYWNrIHN0YXRlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyYWNrRWxlbWVudDo6cmVh
ZHlTdGF0ZSk6IFNldCB0aGUgVGV4dFRyYWNrIHN0YXRlLgorICAgICAgICAqIGh0bWwvSFRNTFRy
YWNrRWxlbWVudC5oOiBSZW1vdmUgbV9yZWFkeVN0YXRlLgorCisgICAgICAgICogaHRtbC9UZXh0
VHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjpUZXh0VHJhY2spOiBJbml0
aWFsaXplIG1fcmVhZGluZXNzU3RhdGUuCisgICAgICAgICogaHRtbC9UZXh0VHJhY2suaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6cmVhZGluZXNzU3RhdGUpOiBOZXcuCisgICAgICAg
IChXZWJDb3JlOjpUZXh0VHJhY2s6OnNldFJlYWRpbmVzc1N0YXRlKTogTmV3LgorCiAyMDExLTEx
LTMwICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXVzZSBj
YWNoZWQgc3R5bGUgZnVsbHkgaWYgdGhlIHBhcmVudCBpbmhlcml0ZWQgc3R5bGVzIGFyZSBlcXVh
bCAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcAkocmV2aXNp
b24gMTAxMjYzKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDMsNyArNDMsNiBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVz
OwogCiBpbmxpbmUgSFRNTFRyYWNrRWxlbWVudDo6SFRNTFRyYWNrRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgOiBIVE1MRWxlbWVu
dCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1fcmVhZHlTdGF0ZShIVE1MVHJhY2tFbGVtZW50
OjpOT05FKQogewogICAgIExPRyhNZWRpYSwgIkhUTUxUcmFja0VsZW1lbnQ6OkhUTUxUcmFja0Vs
ZW1lbnQgLSAlcCIsIHRoaXMpOwogICAgIEFTU0VSVChoYXNUYWdOYW1lKHRyYWNrVGFnKSk7CkBA
IC0yMjEsMTAgKzIyMCwxNSBAQCB2b2lkIEhUTUxUcmFja0VsZW1lbnQ6OmRpZENvbXBsZXRlTG9h
ZChMCiAKIHZvaWQgSFRNTFRyYWNrRWxlbWVudDo6c2V0UmVhZHlTdGF0ZShSZWFkeVN0YXRlIHN0
YXRlKQogewotICAgIG1fcmVhZHlTdGF0ZSA9IHN0YXRlOworICAgIGVuc3VyZVRyYWNrKCktPnNl
dFJlYWRpbmVzc1N0YXRlKHN0YXRpY19jYXN0PFRleHRUcmFjazo6UmVhZGluZXNzU3RhdGU+KHN0
YXRlKSk7CiAgICAgaWYgKEhUTUxNZWRpYUVsZW1lbnQqIHBhcmVudCA9IG1lZGlhRWxlbWVudCgp
KQogICAgICAgICByZXR1cm4gcGFyZW50LT50ZXh0VHJhY2tSZWFkeVN0YXRlQ2hhbmdlZChtX3Ry
YWNrLmdldCgpKTsKIH0KKworSFRNTFRyYWNrRWxlbWVudDo6UmVhZHlTdGF0ZSBIVE1MVHJhY2tF
bGVtZW50OjpyZWFkeVN0YXRlKCkgCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxUcmFj
a0VsZW1lbnQ6OlJlYWR5U3RhdGU+KGVuc3VyZVRyYWNrKCktPnJlYWRpbmVzc1N0YXRlKCkpOwor
fQogICAgIAogdm9pZCBIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJhY2tLaW5kQ2hhbmdlZChUZXh0
VHJhY2sqIHRyYWNrKQogewpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVt
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50
LmgJKHJldmlzaW9uIDEwMTI2MykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxl
bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJIVE1M
RWxlbWVudC5oIgogI2luY2x1ZGUgIkxvYWRhYmxlVGV4dFRyYWNrLmgiCisjaW5jbHVkZSAiVGV4
dFRyYWNrLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTMsOSArNTQsMTAgQEAgcHVi
bGljOgogCiAgICAgYm9vbCBpc0RlZmF1bHQoKSBjb25zdDsKICAgICB2b2lkIHNldElzRGVmYXVs
dChib29sKTsKLSAgICAKKwogICAgIGVudW0gUmVhZHlTdGF0ZSB7IE5PTkUgPSAwLCBMT0FESU5H
ID0gMSwgTE9BREVEID0gMiwgVFJBQ0tfRVJST1IgPSAzIH07Ci0gICAgUmVhZHlTdGF0ZSByZWFk
eVN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9yZWFkeVN0YXRlOyB9CisgICAgUmVhZHlTdGF0ZSBy
ZWFkeVN0YXRlKCk7CisgICAgdm9pZCBzZXRSZWFkeVN0YXRlKFJlYWR5U3RhdGUpOwogCiAgICAg
VGV4dFRyYWNrKiB0cmFjaygpOwogICAgIApAQCAtNjMsOCArNjUsNiBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIGNhbkxvYWRVcmwoTG9hZGFibGVUZXh0VHJhY2sqLCBjb25zdCBLVVJMJik7
CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbXBsZXRlTG9hZChMb2FkYWJsZVRleHRUcmFjayosIGJv
b2wgLyogbG9hZGluZ0ZhaWxlZCAqLyk7CiAgICAgCi0gICAgdm9pZCBzZXRSZWFkeVN0YXRlKFJl
YWR5U3RhdGUpOwotCiBwcml2YXRlOgogICAgIEhUTUxUcmFja0VsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgdmlydHVhbCB+SFRNTFRyYWNrRWxlbWVudCgpOwpA
QCAtOTMsNyArOTMsNiBAQCBwcml2YXRlOgogCiAgICAgTG9hZGFibGVUZXh0VHJhY2sqIGVuc3Vy
ZVRyYWNrKCk7CiAKLSAgICBIVE1MVHJhY2tFbGVtZW50OjpSZWFkeVN0YXRlIG1fcmVhZHlTdGF0
ZTsKICAgICBSZWZQdHI8TG9hZGFibGVUZXh0VHJhY2s+IG1fdHJhY2s7CiB9OwogCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL1RleHRUcmFjay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9UZXh0VHJhY2suY3BwCShyZXZpc2lvbiAxMDEyNjMpCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL1RleHRUcmFjay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc4LDYgKzc4LDcgQEAg
VGV4dFRyYWNrOjpUZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udAogICAgICwgbV9tb2RlKFRl
eHRUcmFjazo6SElEREVOKQogICAgICwgbV9jbGllbnQoY2xpZW50KQogICAgICwgbV90cmFja1R5
cGUodHlwZSkKKyAgICAsIG1fcmVhZGluZXNzU3RhdGUoTm90TG9hZGVkKQogewogICAgIHNldEtp
bmQoa2luZCk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL1RleHRUcmFjay5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNrLmgJKHJldmlzaW9uIDEwMTI2
MykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNrLmgJKHdvcmtpbmcgY29weSkKQEAg
LTc5LDEyICs3OSwxMyBAQCBwdWJsaWM6CiAgICAgTW9kZSBtb2RlKCkgY29uc3QgeyByZXR1cm4g
bV9tb2RlOyB9CiAgICAgdm9pZCBzZXRNb2RlKHVuc2lnbmVkIHNob3J0LCBFeGNlcHRpb25Db2Rl
Jik7CiAKKyAgICBlbnVtIFJlYWRpbmVzc1N0YXRlIHsgTm90TG9hZGVkID0gMCwgTG9hZGluZyA9
IDEsIExvYWRlZCA9IDIsIEZhaWxlZFRvTG9hZCA9IDMgfTsKKyAgICBSZWFkaW5lc3NTdGF0ZSBy
ZWFkaW5lc3NTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVhZGluZXNzU3RhdGU7IH0KKyAgICB2
b2lkIHNldFJlYWRpbmVzc1N0YXRlKFJlYWRpbmVzc1N0YXRlIHN0YXRlKSB7IG1fcmVhZGluZXNz
U3RhdGUgPSBzdGF0ZTsgfQorCiAgICAgVGV4dFRyYWNrQ3VlTGlzdCogY3VlcygpOwogICAgIFRl
eHRUcmFja0N1ZUxpc3QqIGFjdGl2ZUN1ZXMoKSBjb25zdDsKIAotICAgIHZvaWQgcmVhZHlTdGF0
ZUNoYW5nZWQoKTsKLSAgICB2b2lkIG1vZGVDaGFuZ2VkKCk7Ci0KICAgICB2aXJ0dWFsIHZvaWQg
Y2xlYXJDbGllbnQoKSB7IG1fY2xpZW50ID0gMDsgfQogICAgIFRleHRUcmFja0NsaWVudCogY2xp
ZW50KCkgeyByZXR1cm4gbV9jbGllbnQ7IH0KIApAQCAtMTA5LDYgKzExMCw3IEBAIHByaXZhdGU6
CiAgICAgVGV4dFRyYWNrOjpNb2RlIG1fbW9kZTsKICAgICBUZXh0VHJhY2tDbGllbnQqIG1fY2xp
ZW50OwogICAgIFRleHRUcmFja1R5cGUgbV90cmFja1R5cGU7CisgICAgVGV4dFRyYWNrOjpSZWFk
aW5lc3NTdGF0ZSBtX3JlYWRpbmVzc1N0YXRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQo=
</data>
<flag name="review"
          id="116598"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>