- 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;