Title: [162836] trunk/Source/WebCore
Revision
162836
Author
[email protected]
Date
2014-01-27 07:05:44 -0800 (Mon, 27 Jan 2014)

Log Message

Merge Chromium TextTrack cleanups
https://bugs.webkit.org/show_bug.cgi?id=127483

Reviewed by Darin Adler.

Merge some TextTrack cleanups:
https://chromium.googlesource.com/chromium/blink/+/b571b9fbc6e62e05aa77a402cf8f447e681b8ee3
https://chromium.googlesource.com/chromium/blink/+/6b1940151258150ea01bcf21ebfd958e2af247f4
https://chromium.googlesource.com/chromium/blink/+/397c2a2d9416f5c0d79bca22d6979f174eefcce2
https://chromium.googlesource.com/chromium/blink/+/f42ad93e25c6310b2b0327ab7ce5d82d3c4a6c1b
https://chromium.googlesource.com/chromium/blink/+/d55b52b53b7da05bba5fe378a4278250b9347430
https://chromium.googlesource.com/chromium/blink/+/cac766ecaaac477a08879f0b3157d0327cc75d96
https://chromium.googlesource.com/chromium/blink/+/6197ce278696cdd52fc2ad81893f369492468ca0

* html/HTMLTrackElement.cpp:
(WebCore::HTMLTrackElement::loadTimerFired): Remove the LoadableTextTrack* parameter, it isn't used.
(WebCore::HTMLTrackElement::didCompleteLoad): Ditto.
* html/HTMLTrackElement.h: didCompleteLoad doesn't need to be virtual.

* html/track/LoadableTextTrack.cpp:
(WebCore::LoadableTextTrack::loadTimerFired): Pass a reference, not a pointer.
(WebCore::LoadableTextTrack::cueLoadingStarted): Removed, it wasn't used.
(WebCore::LoadableTextTrack::cueLoadingCompleted): Pass a reference, not a pointer.
* html/track/LoadableTextTrack.h: Delete LoadableTextTrackClient, it is no longer used.

* loader/TextTrackLoader.cpp:
(WebCore::TextTrackLoader::TextTrackLoader): Take a TextTrackLoaderClient reference.
(WebCore::TextTrackLoader::~TextTrackLoader): Rename m_cachedCueData m_resource.
(WebCore::TextTrackLoader::cueLoadTimerFired): m_client is a reference.
(WebCore::TextTrackLoader::cancelLoad): m_cachedCueData -> m_resource.
(WebCore::TextTrackLoader::processNewCueData): Ditto.
(WebCore::TextTrackLoader::deprecatedDidReceiveCachedResource): Ditto.
(WebCore::TextTrackLoader::notifyFinished): Ditto.
(WebCore::TextTrackLoader::load): shouldLoadCues was removed from the client interface because
    the only implementation always returned true.
(WebCore::TextTrackLoader::newRegionsParsed): m_client is a reference
* loader/TextTrackLoader.h:

* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::canRequest): Remove an outdated comment.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (162835 => 162836)


--- trunk/Source/WebCore/ChangeLog	2014-01-27 13:14:49 UTC (rev 162835)
+++ trunk/Source/WebCore/ChangeLog	2014-01-27 15:05:44 UTC (rev 162836)
@@ -1,3 +1,46 @@
+2014-01-24  Eric Carlson  <[email protected]>
+
+        Merge Chromium TextTrack cleanups
+        https://bugs.webkit.org/show_bug.cgi?id=127483
+
+        Reviewed by Darin Adler.
+
+        Merge some TextTrack cleanups:
+        https://chromium.googlesource.com/chromium/blink/+/b571b9fbc6e62e05aa77a402cf8f447e681b8ee3
+        https://chromium.googlesource.com/chromium/blink/+/6b1940151258150ea01bcf21ebfd958e2af247f4
+        https://chromium.googlesource.com/chromium/blink/+/397c2a2d9416f5c0d79bca22d6979f174eefcce2
+        https://chromium.googlesource.com/chromium/blink/+/f42ad93e25c6310b2b0327ab7ce5d82d3c4a6c1b
+        https://chromium.googlesource.com/chromium/blink/+/d55b52b53b7da05bba5fe378a4278250b9347430
+        https://chromium.googlesource.com/chromium/blink/+/cac766ecaaac477a08879f0b3157d0327cc75d96
+        https://chromium.googlesource.com/chromium/blink/+/6197ce278696cdd52fc2ad81893f369492468ca0
+
+        * html/HTMLTrackElement.cpp:
+        (WebCore::HTMLTrackElement::loadTimerFired): Remove the LoadableTextTrack* parameter, it isn't used.
+        (WebCore::HTMLTrackElement::didCompleteLoad): Ditto.
+        * html/HTMLTrackElement.h: didCompleteLoad doesn't need to be virtual.
+
+        * html/track/LoadableTextTrack.cpp:
+        (WebCore::LoadableTextTrack::loadTimerFired): Pass a reference, not a pointer.
+        (WebCore::LoadableTextTrack::cueLoadingStarted): Removed, it wasn't used.
+        (WebCore::LoadableTextTrack::cueLoadingCompleted): Pass a reference, not a pointer.
+        * html/track/LoadableTextTrack.h: Delete LoadableTextTrackClient, it is no longer used.
+
+        * loader/TextTrackLoader.cpp:
+        (WebCore::TextTrackLoader::TextTrackLoader): Take a TextTrackLoaderClient reference.
+        (WebCore::TextTrackLoader::~TextTrackLoader): Rename m_cachedCueData m_resource.
+        (WebCore::TextTrackLoader::cueLoadTimerFired): m_client is a reference.
+        (WebCore::TextTrackLoader::cancelLoad): m_cachedCueData -> m_resource.
+        (WebCore::TextTrackLoader::processNewCueData): Ditto.
+        (WebCore::TextTrackLoader::deprecatedDidReceiveCachedResource): Ditto.
+        (WebCore::TextTrackLoader::notifyFinished): Ditto.
+        (WebCore::TextTrackLoader::load): shouldLoadCues was removed from the client interface because
+            the only implementation always returned true.
+        (WebCore::TextTrackLoader::newRegionsParsed): m_client is a reference
+        * loader/TextTrackLoader.h:
+
+        * loader/cache/CachedResourceLoader.cpp:
+        (WebCore::CachedResourceLoader::canRequest): Remove an outdated comment.
+
 2014-01-27  Chris Fleizach  <[email protected]>
 
         AX: Disable accessibility after every test run

Modified: trunk/Source/WebCore/html/HTMLTrackElement.cpp (162835 => 162836)


--- trunk/Source/WebCore/html/HTMLTrackElement.cpp	2014-01-27 13:14:49 UTC (rev 162835)
+++ trunk/Source/WebCore/html/HTMLTrackElement.cpp	2014-01-27 15:05:44 UTC (rev 162836)
@@ -213,15 +213,15 @@
 
     // 8. If the track element's parent is a media element then let CORS mode be the state of the parent media
     // element's crossorigin content attribute. Otherwise, let CORS mode be No CORS.
-    if (!canLoadUrl(url)) {
-        didCompleteLoad(&ensureTrack(), HTMLTrackElement::Failure);
+    if (!canLoadURL(url)) {
+        didCompleteLoad(HTMLTrackElement::Failure);
         return;
     }
 
     ensureTrack().scheduleLoad(url);
 }
 
-bool HTMLTrackElement::canLoadUrl(const URL& url)
+bool HTMLTrackElement::canLoadURL(const URL& url)
 {
     if (!RuntimeEnabledFeatures::sharedFeatures().webkitVideoTrackEnabled())
         return false;
@@ -239,14 +239,14 @@
         return false;
 
     if (!document().contentSecurityPolicy()->allowMediaFromSource(url)) {
-        LOG(Media, "HTMLTrackElement::canLoadUrl(%s) -> rejected by Content Security Policy", urlForLoggingTrack(url).utf8().data());
+        LOG(Media, "HTMLTrackElement::canLoadURL(%s) -> rejected by Content Security Policy", urlForLoggingTrack(url).utf8().data());
         return false;
     }
     
     return dispatchBeforeLoadEvent(url.string());
 }
 
-void HTMLTrackElement::didCompleteLoad(LoadableTextTrack*, LoadStatus status)
+void HTMLTrackElement::didCompleteLoad(LoadStatus status)
 {
     // 4.8.10.12.3 Sourcing out-of-band text tracks (continued)
     

Modified: trunk/Source/WebCore/html/HTMLTrackElement.h (162835 => 162836)


--- trunk/Source/WebCore/html/HTMLTrackElement.h	2014-01-27 13:14:49 UTC (rev 162835)
+++ trunk/Source/WebCore/html/HTMLTrackElement.h	2014-01-27 15:05:44 UTC (rev 162836)
@@ -60,7 +60,7 @@
     void scheduleLoad();
 
     enum LoadStatus { Failure, Success };
-    virtual void didCompleteLoad(LoadableTextTrack*, LoadStatus);
+    void didCompleteLoad(LoadStatus);
 
     const AtomicString& mediaElementCrossOriginAttribute() const;
 
@@ -88,7 +88,7 @@
     virtual void textTrackRemoveCue(TextTrack*, PassRefPtr<TextTrackCue>) override;
 
     LoadableTextTrack& ensureTrack();
-    virtual bool canLoadUrl(const URL&);
+    bool canLoadURL(const URL&);
 
     RefPtr<LoadableTextTrack> m_track;
     Timer<HTMLTrackElement> m_loadTimer;

Modified: trunk/Source/WebCore/html/track/LoadableTextTrack.cpp (162835 => 162836)


--- trunk/Source/WebCore/html/track/LoadableTextTrack.cpp	2014-01-27 13:14:49 UTC (rev 162835)
+++ trunk/Source/WebCore/html/track/LoadableTextTrack.cpp	2014-01-27 15:05:44 UTC (rev 162836)
@@ -94,9 +94,9 @@
     // 4. Download: If URL is not the empty string, perform a potentially CORS-enabled fetch of URL, with the
     // mode being the state of the media element's crossorigin content attribute, the origin being the
     // origin of the media element's Document, and the default origin behaviour set to fail.
-    m_loader = TextTrackLoader::create(this, static_cast<ScriptExecutionContext*>(&m_trackElement->document()));
+    m_loader = TextTrackLoader::create(*this, static_cast<ScriptExecutionContext*>(&m_trackElement->document()));
     if (!m_loader->load(m_url, m_trackElement->mediaElementCrossOriginAttribute()))
-        m_trackElement->didCompleteLoad(this, HTMLTrackElement::Failure);
+        m_trackElement->didCompleteLoad(HTMLTrackElement::Failure);
 }
 
 void LoadableTextTrack::newCuesAvailable(TextTrackLoader* loader)
@@ -118,11 +118,6 @@
         client()->textTrackAddCues(this, m_cues.get());
 }
 
-void LoadableTextTrack::cueLoadingStarted(TextTrackLoader* loader)
-{
-    ASSERT_UNUSED(loader, m_loader == loader);
-}
-
 void LoadableTextTrack::cueLoadingCompleted(TextTrackLoader* loader, bool loadingFailed)
 {
     ASSERT_UNUSED(loader, m_loader == loader);
@@ -130,7 +125,7 @@
     if (!m_trackElement)
         return;
 
-    m_trackElement->didCompleteLoad(this, loadingFailed ? HTMLTrackElement::Failure : HTMLTrackElement::Success);
+    m_trackElement->didCompleteLoad(loadingFailed ? HTMLTrackElement::Failure : HTMLTrackElement::Success);
 }
 
 #if ENABLE(WEBVTT_REGIONS)

Modified: trunk/Source/WebCore/html/track/LoadableTextTrack.h (162835 => 162836)


--- trunk/Source/WebCore/html/track/LoadableTextTrack.h	2014-01-27 13:14:49 UTC (rev 162835)
+++ trunk/Source/WebCore/html/track/LoadableTextTrack.h	2014-01-27 15:05:44 UTC (rev 162836)
@@ -37,14 +37,6 @@
 class HTMLTrackElement;
 class LoadableTextTrack;
 
-class LoadableTextTrackClient : public TextTrackClient {
-public:
-    virtual ~LoadableTextTrackClient() { }
-    
-    virtual bool canLoadUrl(LoadableTextTrack*, const URL&) { return false; }
-    virtual void loadingCompleted(LoadableTextTrack*, bool /* loadingFailed */) { }
-};
-
 class LoadableTextTrack : public TextTrack, private TextTrackLoaderClient {
 public:
     static PassRefPtr<LoadableTextTrack> create(HTMLTrackElement* track, const String& kind, const String& label, const String& language)
@@ -69,9 +61,7 @@
 
 private:
     // TextTrackLoaderClient
-    virtual bool shouldLoadCues(TextTrackLoader*) override { return true; }
     virtual void newCuesAvailable(TextTrackLoader*) override;
-    virtual void cueLoadingStarted(TextTrackLoader*) override;
     virtual void cueLoadingCompleted(TextTrackLoader*, bool loadingFailed) override;
 #if ENABLE(WEBVTT_REGIONS)
     virtual void newRegionsAvailable(TextTrackLoader*);

Modified: trunk/Source/WebCore/loader/TextTrackLoader.cpp (162835 => 162836)


--- trunk/Source/WebCore/loader/TextTrackLoader.cpp	2014-01-27 13:14:49 UTC (rev 162835)
+++ trunk/Source/WebCore/loader/TextTrackLoader.cpp	2014-01-27 15:05:44 UTC (rev 162836)
@@ -43,7 +43,7 @@
 
 namespace WebCore {
     
-TextTrackLoader::TextTrackLoader(TextTrackLoaderClient* client, ScriptExecutionContext* context)
+TextTrackLoader::TextTrackLoader(TextTrackLoaderClient& client, ScriptExecutionContext* context)
     : m_client(client)
     , m_scriptExecutionContext(context)
     , m_cueLoadTimer(this, &TextTrackLoader::cueLoadTimerFired)
@@ -55,8 +55,8 @@
 
 TextTrackLoader::~TextTrackLoader()
 {
-    if (m_cachedCueData)
-        m_cachedCueData->removeClient(this);
+    if (m_resource)
+        m_resource->removeClient(this);
 }
 
 void TextTrackLoader::cueLoadTimerFired(Timer<TextTrackLoader>* timer)
@@ -65,24 +65,24 @@
     
     if (m_newCuesAvailable) {
         m_newCuesAvailable = false;
-        m_client->newCuesAvailable(this); 
+        m_client.newCuesAvailable(this);
     }
     
     if (m_state >= Finished)
-        m_client->cueLoadingCompleted(this, m_state == Failed);
+        m_client.cueLoadingCompleted(this, m_state == Failed);
 }
 
 void TextTrackLoader::cancelLoad()
 {
-    if (m_cachedCueData) {
-        m_cachedCueData->removeClient(this);
-        m_cachedCueData = 0;
+    if (m_resource) {
+        m_resource->removeClient(this);
+        m_resource = nullptr;
     }
 }
 
 void TextTrackLoader::processNewCueData(CachedResource* resource)
 {
-    ASSERT(m_cachedCueData == resource);
+    ASSERT(m_resource == resource);
     
     if (m_state == Failed || !resource->resourceBuffer())
         return;
@@ -106,7 +106,7 @@
 // FIXME: This is a very unusual pattern, no other CachedResourceClient does this. Refactor to use notifyFinished() instead.
 void TextTrackLoader::deprecatedDidReceiveCachedResource(CachedResource* resource)
 {
-    ASSERT(m_cachedCueData == resource);
+    ASSERT(m_resource == resource);
     
     if (!resource->resourceBuffer())
         return;
@@ -124,7 +124,7 @@
 
 void TextTrackLoader::notifyFinished(CachedResource* resource)
 {
-    ASSERT(m_cachedCueData == resource);
+    ASSERT(m_resource == resource);
 
     Document* document = toDocument(m_scriptExecutionContext);
     if (!m_crossOriginMode.isNull()
@@ -152,9 +152,6 @@
 {
     cancelLoad();
 
-    if (!m_client->shouldLoadCues(this))
-        return false;
-
     ASSERT(m_scriptExecutionContext->isDocument());
     Document* document = toDocument(m_scriptExecutionContext);
     CachedResourceRequest cueRequest(ResourceRequest(document->completeURL(url)));
@@ -172,12 +169,12 @@
     }
 
     CachedResourceLoader* cachedResourceLoader = document->cachedResourceLoader();
-    m_cachedCueData = cachedResourceLoader->requestTextTrack(cueRequest);
-    if (m_cachedCueData)
-        m_cachedCueData->addClient(this);
+    m_resource = cachedResourceLoader->requestTextTrack(cueRequest);
+    if (!m_resource)
+        return false;
+
+    m_resource->addClient(this);
     
-    m_client->cueLoadingStarted(this);
-    
     return true;
 }
 
@@ -193,7 +190,7 @@
 #if ENABLE(WEBVTT_REGIONS)
 void TextTrackLoader::newRegionsParsed()
 {
-    m_client->newRegionsAvailable(this); 
+    m_client.newRegionsAvailable(this);
 }
 #endif
 

Modified: trunk/Source/WebCore/loader/TextTrackLoader.h (162835 => 162836)


--- trunk/Source/WebCore/loader/TextTrackLoader.h	2014-01-27 13:14:49 UTC (rev 162835)
+++ trunk/Source/WebCore/loader/TextTrackLoader.h	2014-01-27 15:05:44 UTC (rev 162836)
@@ -45,9 +45,7 @@
 public:
     virtual ~TextTrackLoaderClient() { }
     
-    virtual bool shouldLoadCues(TextTrackLoader*) = 0;
     virtual void newCuesAvailable(TextTrackLoader*) = 0;
-    virtual void cueLoadingStarted(TextTrackLoader*) = 0;
     virtual void cueLoadingCompleted(TextTrackLoader*, bool loadingFailed) = 0;
 #if ENABLE(WEBVTT_REGIONS)
     virtual void newRegionsAvailable(TextTrackLoader*) = 0;
@@ -58,7 +56,7 @@
     WTF_MAKE_NONCOPYABLE(TextTrackLoader); 
     WTF_MAKE_FAST_ALLOCATED;
 public:
-    static PassOwnPtr<TextTrackLoader> create(TextTrackLoaderClient* client, ScriptExecutionContext* context)
+    static PassOwnPtr<TextTrackLoader> create(TextTrackLoaderClient& client, ScriptExecutionContext* context)
     {
         return adoptPtr(new TextTrackLoader(client, context));
     }
@@ -83,7 +81,7 @@
 #endif
     virtual void fileFailedToParse();
     
-    TextTrackLoader(TextTrackLoaderClient*, ScriptExecutionContext*);
+    TextTrackLoader(TextTrackLoaderClient&, ScriptExecutionContext*);
     
     void processNewCueData(CachedResource*);
     void cueLoadTimerFired(Timer<TextTrackLoader>*);
@@ -91,9 +89,9 @@
 
     enum State { Idle, Loading, Finished, Failed };
     
-    TextTrackLoaderClient* m_client;
+    TextTrackLoaderClient& m_client;
     OwnPtr<WebVTTParser> m_cueParser;
-    CachedResourceHandle<CachedTextTrack> m_cachedCueData;
+    CachedResourceHandle<CachedTextTrack> m_resource;
     ScriptExecutionContext* m_scriptExecutionContext;
     Timer<TextTrackLoader> m_cueLoadTimer;
     String m_crossOriginMode;

Modified: trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp (162835 => 162836)


--- trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp	2014-01-27 13:14:49 UTC (rev 162835)
+++ trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp	2014-01-27 15:05:44 UTC (rev 162836)
@@ -374,8 +374,6 @@
         break;
 #if ENABLE(VIDEO_TRACK)
     case CachedResource::TextTrackResource:
-        // Cues aren't called out in the CPS spec yet, but they only work with a media element
-        // so use the media policy.
         if (!shouldBypassMainWorldContentSecurityPolicy && !m_document->contentSecurityPolicy()->allowMediaFromSource(url))
             return false;
         break;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to