Changeset 98736 in webkit
- Timestamp:
- Oct 28, 2011, 10:54:32 AM (15 years ago)
- Location:
- trunk
- Files:
-
- 6 added
- 7 edited
-
LayoutTests/ChangeLog (modified) (1 diff)
-
LayoutTests/media/track/track-load-error-readyState-expected.txt (added)
-
LayoutTests/media/track/track-load-error-readyState.html (added)
-
LayoutTests/media/track/track-load-from-element-readyState-expected.txt (added)
-
LayoutTests/media/track/track-load-from-element-readyState.html (added)
-
LayoutTests/media/track/track-load-from-src-readyState-expected.txt (added)
-
LayoutTests/media/track/track-load-from-src-readyState.html (added)
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/html/HTMLMediaElement.cpp (modified) (2 diffs)
-
Source/WebCore/html/HTMLMediaElement.h (modified) (3 diffs)
-
Source/WebCore/html/HTMLTrackElement.cpp (modified) (3 diffs)
-
Source/WebCore/html/HTMLTrackElement.h (modified) (1 diff)
-
Source/WebCore/html/LoadableTextTrack.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r98735 r98736 1 2011-10-28 Anna Cavender <annacc@chromium.org> 2 3 Implement load notification and events for <track>. 4 https://bugs.webkit.org/show_bug.cgi?id=71054 5 6 Reviewed by Eric Carlson. 7 8 * media/track/track-load-error-readyState-expected.txt: Added. 9 * media/track/track-load-error-readyState.html: Added. 10 * media/track/track-load-from-element-readyState-expected.txt: Added. 11 * media/track/track-load-from-element-readyState.html: Added. 12 * media/track/track-load-from-src-readyState-expected.txt: Added. 13 * media/track/track-load-from-src-readyState.html: Added. 14 1 15 2011-10-28 Simon Fraser <simon.fraser@apple.com> 2 16 -
trunk/Source/WebCore/ChangeLog
r98735 r98736 1 2011-10-28 Anna Cavender <annacc@chromium.org> 2 3 Implement load notification and events for <track>. 4 https://bugs.webkit.org/show_bug.cgi?id=71054 5 6 Reviewed by Eric Carlson. 7 8 Tests: media/track/track-load-error-readyState.html 9 media/track/track-load-from-element-readyState.html 10 media/track/track-load-from-src-readyState.html 11 12 * html/HTMLMediaElement.cpp: 13 (WebCore::HTMLMediaElement::loadTextTracks): 14 (WebCore::HTMLMediaElement::loadNextTextTrack): 15 (WebCore::HTMLMediaElement::trackWasAdded): 16 (WebCore::HTMLMediaElement::trackWillBeRemoved): 17 (WebCore::HTMLMediaElement::trackSourceChanged): 18 * html/HTMLMediaElement.h: 19 * html/HTMLTrackElement.cpp: 20 (WebCore::HTMLTrackElement::insertedIntoTree): 21 (WebCore::HTMLTrackElement::willRemove): 22 (WebCore::HTMLTrackElement::parseMappedAttribute): 23 (WebCore::HTMLTrackElement::attributeChanged): 24 * html/HTMLTrackElement.h: 25 * html/LoadableTextTrack.cpp: 26 (WebCore::LoadableTextTrack::cueLoadingCompleted): 27 1 28 2011-10-28 Simon Fraser <simon.fraser@apple.com> 2 29 -
trunk/Source/WebCore/html/HTMLMediaElement.cpp
r98592 r98736 840 840 841 841 for (Node* node = firstChild(); node; node = node->nextSibling()) { 842 if (node->hasTagName(trackTag)) { 843 HTMLTrackElement* track = static_cast<HTMLTrackElement*>(node); 844 track->load(ActiveDOMObject::scriptExecutionContext(), this); 845 } 846 } 842 if (node->hasTagName(trackTag)) 843 loadNextTextTrack(static_cast<HTMLTrackElement*>(node)); 844 } 845 } 846 847 void HTMLMediaElement::loadNextTextTrack(HTMLTrackElement* track) 848 { 849 // FIXME(71124): This should schedule an *asynchronous* load. 850 track->load(ActiveDOMObject::scriptExecutionContext(), this); 851 852 // FIXME(71123): Add new track to list of text tracks and set the text track mode. 847 853 } 848 854 … … 1979 1985 return TextTrack::create(this, kind, label, language); 1980 1986 } 1987 1988 void HTMLMediaElement::trackWasAdded(HTMLTrackElement* track) 1989 { 1990 #if !LOG_DISABLED 1991 if (track->hasTagName(trackTag)) { 1992 KURL url = track->getNonEmptyURLAttribute(srcAttr); 1993 LOG(Media, "HTMLMediaElement::trackWasAdded - 'src' is %s", urlForLogging(url).utf8().data()); 1994 } 1995 #endif 1996 loadNextTextTrack(track); 1997 } 1998 1999 void HTMLMediaElement::trackWillBeRemoved(HTMLTrackElement* track) 2000 { 2001 #if !LOG_DISABLED 2002 if (track->hasTagName(trackTag)) { 2003 KURL url = track->getNonEmptyURLAttribute(srcAttr); 2004 LOG(Media, "HTMLMediaElement::trackWillBeRemoved - 'src' is %s", urlForLogging(url).utf8().data()); 2005 } 2006 #endif 2007 } 2008 2009 void HTMLMediaElement::trackSourceChanged(HTMLTrackElement* track) 2010 { 2011 #if !LOG_DISABLED 2012 if (track->hasTagName(trackTag)) { 2013 KURL url = track->getNonEmptyURLAttribute(srcAttr); 2014 LOG(Media, "HTMLMediaElement::trackSourceChanged - 'src' is %s", urlForLogging(url).utf8().data()); 2015 } 2016 #endif 2017 loadNextTextTrack(track); 2018 } 1981 2019 #endif 1982 2020 -
trunk/Source/WebCore/html/HTMLMediaElement.h
r98300 r98736 58 58 class Widget; 59 59 #endif 60 #if ENABLE(VIDEO_TRACK) 61 class HTMLTrackElement; 62 #endif 60 63 61 64 // FIXME: The inheritance from MediaPlayerClient here should be private inheritance. … … 181 184 #if ENABLE(VIDEO_TRACK) 182 185 PassRefPtr<TextTrack> addTrack(const String& kind, const String& label = "", const String& language = ""); 186 virtual void trackWasAdded(HTMLTrackElement*); 187 virtual void trackWillBeRemoved(HTMLTrackElement*); 188 virtual void trackSourceChanged(HTMLTrackElement*); 183 189 #endif 184 190 … … 353 359 #if ENABLE(VIDEO_TRACK) 354 360 void loadTextTracks(); 361 void loadNextTextTrack(HTMLTrackElement*); 355 362 356 363 // TextTrackClient -
trunk/Source/WebCore/html/HTMLTrackElement.cpp
r98300 r98736 33 33 #include "HTMLNames.h" 34 34 #include "Logging.h" 35 #include "ScriptEventListener.h" 35 36 36 37 using namespace std; … … 60 61 HTMLElement::insertedIntoTree(deep); 61 62 Element* parent = parentElement(); 62 if (parent && parent->isMediaElement()) { 63 // TODO(annacc): 64 // static_cast<HTMLMediaElement*>(parentNode())->trackWasAdded(this); 65 } 63 if (parent && parent->isMediaElement()) 64 static_cast<HTMLMediaElement*>(parentNode())->trackWasAdded(this); 66 65 } 67 66 … … 69 68 { 70 69 Element* parent = parentElement(); 71 if (parent && parent->isMediaElement()) { 72 // TODO(annacc): 73 // static_cast<HTMLMediaElement*>(parentNode())->trackWillBeRemoved(this); 70 if (parent && parent->isMediaElement()) 71 static_cast<HTMLMediaElement*>(parentNode())->trackWillBeRemoved(this); 72 HTMLElement::willRemove(); 73 } 74 75 void HTMLTrackElement::parseMappedAttribute(Attribute* attribute) 76 { 77 const QualifiedName& attrName = attribute->name(); 78 79 if (attrName == onloadAttr) 80 setAttributeEventListener(eventNames().loadEvent, createAttributeEventListener(this, attribute)); 81 else if (attrName == onerrorAttr) 82 setAttributeEventListener(eventNames().errorEvent, createAttributeEventListener(this, attribute)); 83 else 84 HTMLElement::parseMappedAttribute(attribute); 85 } 86 87 void HTMLTrackElement::attributeChanged(Attribute* attr, bool preserveDecls) 88 { 89 HTMLElement::attributeChanged(attr, preserveDecls); 90 91 const QualifiedName& attrName = attr->name(); 92 if (attrName == srcAttr) { 93 if (!getAttribute(srcAttr).isEmpty() && parentNode()) 94 static_cast<HTMLMediaElement*>(parentNode())->trackSourceChanged(this); 74 95 } 75 HTMLElement::willRemove();76 96 } 77 97 -
trunk/Source/WebCore/html/HTMLTrackElement.h
r98300 r98736 61 61 virtual ~HTMLTrackElement(); 62 62 63 virtual void parseMappedAttribute(Attribute*); 64 virtual void attributeChanged(Attribute*, bool preserveDecls); 65 63 66 virtual void insertedIntoTree(bool); 64 67 virtual void willRemove(); -
trunk/Source/WebCore/html/LoadableTextTrack.cpp
r98238 r98736 64 64 } 65 65 66 void LoadableTextTrack::cueLoadingCompleted(TextTrackLoader* loader, bool )66 void LoadableTextTrack::cueLoadingCompleted(TextTrackLoader* loader, bool loadingFailed) 67 67 { 68 68 ASSERT_UNUSED(loader, m_loader == loader); 69 69 70 // FIXME(62885): Implement. 70 loadingFailed ? setReadyState(TextTrack::Error) : setReadyState(TextTrack::Loaded); 71 72 if (m_loadingClient) 73 m_loadingClient->textTrackLoadingCompleted(this, loadingFailed); 71 74 } 72 75
Note:
See TracChangeset
for help on using the changeset viewer.