Title: [105434] trunk
Revision
105434
Author
[email protected]
Date
2012-01-19 12:28:55 -0800 (Thu, 19 Jan 2012)

Log Message

https://bugs.webkit.org/show_bug.cgi?id=75192

Reviewed by Darin Adler.

Notify the media element when tracks are added to and removed from a document instead of
a tree because we don't want to trigger loading unless a track element is in the document.

Test: media/track/track-delete-during-setup.html

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::trackWasRemoved): Renamed from trackWillBeRemoved because it is
    now called after removal.
* html/HTMLMediaElement.h:

* html/HTMLTrackElement.cpp:
(WebCore::HTMLTrackElement::insertedIntoDocument): Was insertedIntoTree. Use this instead
    because we care about when a track is inserted and removed from a document, not a tree.
(WebCore::HTMLTrackElement::removedFromDocument): Ditto.
* html/HTMLTrackElement.h:

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (105433 => 105434)


--- trunk/LayoutTests/ChangeLog	2012-01-19 20:27:08 UTC (rev 105433)
+++ trunk/LayoutTests/ChangeLog	2012-01-19 20:28:55 UTC (rev 105434)
@@ -1,3 +1,12 @@
+2012-01-19  Eric Carlson  <[email protected]>
+
+        https://bugs.webkit.org/show_bug.cgi?id=75192
+
+        Reviewed by Darin Adler.
+
+        * media/track/track-delete-during-setup-expected.txt: Added.
+        * media/track/track-delete-during-setup.html: Added.
+
 2012-01-18  Robert Hogan  <[email protected]>
 
         Hit ASSERTION FAILED: table()->collapseBorders() on techcrunch.com

Added: trunk/LayoutTests/media/track/track-delete-during-setup-expected.txt (0 => 105434)


--- trunk/LayoutTests/media/track/track-delete-during-setup-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/media/track/track-delete-during-setup-expected.txt	2012-01-19 20:28:55 UTC (rev 105434)
@@ -0,0 +1,7 @@
+>
+
+EXPECTED (track1.readyState == '0') OK
+EXPECTED (track1.track.mode == '0') OK
+
+END OF TEST
+

Added: trunk/LayoutTests/media/track/track-delete-during-setup.html (0 => 105434)


--- trunk/LayoutTests/media/track/track-delete-during-setup.html	                        (rev 0)
+++ trunk/LayoutTests/media/track/track-delete-during-setup.html	2012-01-19 20:28:55 UTC (rev 105434)
@@ -0,0 +1,41 @@
+        >
+
+        <script src=""
+<script></script>
+<script></script>
+<script>setTimeout("try { var v = document.querySelector('video'); v.parentNode.removeChild(v); } catch(e) {}", 61);</script>
+<meta><script src=""
+        <script>
+
+            {
+            }
+
+            function metadataTrackLoaded()
+            {
+                track2 = document.createElement('track');
+                video.appendChild(track2);
+                setTimeout("endTest()", 100);
+            }
+
+            function canplaythrough()
+            {
+                track1.track.mode = TextTrack.HIDDEN;
+                setTimeout("endTest()", 100);
+            }
+
+            function start()
+            {
+                consoleWrite("<feOffset>");
+                findMediaElement();
+
+                track1 = document.querySelectorAll('track')[0]; 
+                testExpected("track1.readyState", HTMLTrackElement.NONE);
+                testExpected("track1.track.mode", TextTrack.DISABLED);
+
+                video.src = "" "../content/test");
+                consoleWrite("");
+            }
+        </script>
+    <body _onload_="start()">
+<command><aside><kbd><video _oncanplaythrough_="canplaythrough()" > 
+            <track src="" _onload_="metadataTrackLoaded()">

Modified: trunk/Source/WebCore/ChangeLog (105433 => 105434)


--- trunk/Source/WebCore/ChangeLog	2012-01-19 20:27:08 UTC (rev 105433)
+++ trunk/Source/WebCore/ChangeLog	2012-01-19 20:28:55 UTC (rev 105434)
@@ -1,3 +1,25 @@
+2012-01-19  Eric Carlson  <[email protected]>
+
+        https://bugs.webkit.org/show_bug.cgi?id=75192
+
+        Reviewed by Darin Adler.
+
+        Notify the media element when tracks are added to and removed from a document instead of
+        a tree because we don't want to trigger loading unless a track element is in the document.
+
+        Test: media/track/track-delete-during-setup.html
+
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::trackWasRemoved): Renamed from trackWillBeRemoved because it is
+            now called after removal.
+        * html/HTMLMediaElement.h:
+
+        * html/HTMLTrackElement.cpp:
+        (WebCore::HTMLTrackElement::insertedIntoDocument): Was insertedIntoTree. Use this instead
+            because we care about when a track is inserted and removed from a document, not a tree.
+        (WebCore::HTMLTrackElement::removedFromDocument): Ditto.
+        * html/HTMLTrackElement.h:
+
 2012-01-18  Robert Hogan  <[email protected]>
 
         Hit ASSERTION FAILED: table()->collapseBorders() on techcrunch.com

Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (105433 => 105434)


--- trunk/Source/WebCore/html/HTMLMediaElement.cpp	2012-01-19 20:27:08 UTC (rev 105433)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp	2012-01-19 20:28:55 UTC (rev 105434)
@@ -2300,7 +2300,7 @@
         scheduleLoad(TextTrackResource);
 }
 
-void HTMLMediaElement::trackWillBeRemoved(HTMLTrackElement* trackElement)
+void HTMLMediaElement::trackWasRemoved(HTMLTrackElement* trackElement)
 {
     ASSERT(trackElement->hasTagName(trackTag));
 
@@ -2310,7 +2310,7 @@
 #if !LOG_DISABLED
     if (trackElement->hasTagName(trackTag)) {
         KURL url = ""
-        LOG(Media, "HTMLMediaElement::trackWillBeRemoved - 'src' is %s", urlForLogging(url).utf8().data());
+        LOG(Media, "HTMLMediaElement::trackWasRemoved - 'src' is %s", urlForLogging(url).utf8().data());
     }
 #endif
 

Modified: trunk/Source/WebCore/html/HTMLMediaElement.h (105433 => 105434)


--- trunk/Source/WebCore/html/HTMLMediaElement.h	2012-01-19 20:27:08 UTC (rev 105433)
+++ trunk/Source/WebCore/html/HTMLMediaElement.h	2012-01-19 20:28:55 UTC (rev 105434)
@@ -204,7 +204,7 @@
     CueList currentlyActiveCues() const { return m_currentlyActiveCues; }
 
     virtual void trackWasAdded(HTMLTrackElement*);
-    virtual void trackWillBeRemoved(HTMLTrackElement*);
+    virtual void trackWasRemoved(HTMLTrackElement*);
     
     void configureTextTrack(HTMLTrackElement*);
     void configureTextTracks();

Modified: trunk/Source/WebCore/html/HTMLTrackElement.cpp (105433 => 105434)


--- trunk/Source/WebCore/html/HTMLTrackElement.cpp	2012-01-19 20:27:08 UTC (rev 105433)
+++ trunk/Source/WebCore/html/HTMLTrackElement.cpp	2012-01-19 20:28:55 UTC (rev 105434)
@@ -72,20 +72,20 @@
     return adoptRef(new HTMLTrackElement(tagName, document));
 }
 
-void HTMLTrackElement::insertedIntoTree(bool deep)
+void HTMLTrackElement::insertedIntoDocument()
 {
-    HTMLElement::insertedIntoTree(deep);
+    HTMLElement::insertedIntoDocument();
 
     if (HTMLMediaElement* parent = mediaElement())
         parent->trackWasAdded(this);
 }
 
-void HTMLTrackElement::willRemove()
+void HTMLTrackElement::removedFromDocument()
 {
     if (HTMLMediaElement* parent = mediaElement())
-        parent->trackWillBeRemoved(this);
+        parent->trackWasRemoved(this);
 
-    HTMLElement::willRemove();
+    HTMLElement::removedFromDocument();
 }
 
 void HTMLTrackElement::parseMappedAttribute(Attribute* attribute)

Modified: trunk/Source/WebCore/html/HTMLTrackElement.h (105433 => 105434)


--- trunk/Source/WebCore/html/HTMLTrackElement.h	2012-01-19 20:27:08 UTC (rev 105433)
+++ trunk/Source/WebCore/html/HTMLTrackElement.h	2012-01-19 20:28:55 UTC (rev 105434)
@@ -78,8 +78,8 @@
     virtual void parseMappedAttribute(Attribute*);
     virtual void attributeChanged(Attribute*, bool preserveDecls);
 
-    virtual void insertedIntoTree(bool);
-    virtual void willRemove();
+    virtual void insertedIntoDocument() OVERRIDE;
+    virtual void removedFromDocument() OVERRIDE;
     virtual bool isURLAttribute(Attribute*) const;
 
 #if ENABLE(MICRODATA)
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to