bool TextTrackLoader::load(const KURL& url, const String& crossOriginMode) { cancelLoad(); if (!m_client->shouldLoadCues(this)) return false; ASSERT(m_scriptExecutionContext->isDocument()); Document* document = static_cast<Document*>(m_scriptExecutionContext); ResourceRequest cueRequest(document->completeURL(url)); if (!crossOriginMode.isNull()) { m_crossOriginMode = crossOriginMode; StoredCredentials allowCredentials = equalIgnoringCase(crossOriginMode, "use-credentials") ? AllowStoredCredentials : DoNotAllowStoredCredentials; updateRequestForAccessControl(cueRequest, document->securityOrigin(), allowCredentials); } else { // Cross-origin resources that are not suitably CORS-enabled may not load. if (!document->securityOrigin()->canRequest(url)) { corsPolicyPreventedLoad(); return false; } } CachedResourceLoader* cachedResourceLoader = document->cachedResourceLoader(); m_cachedCueData = cachedResourceLoader->requestTextTrack(cueRequest); if (m_cachedCueData) m_cachedCueData->addClient(this); m_client->cueLoadingStarted(this); return true; }
bool TextTrackLoader::load(const KURL& url) { if (!m_client->shouldLoadCues(this)) return false; cancelLoad(); ASSERT(m_scriptExecutionContext->isDocument()); Document* document = static_cast<Document*>(m_scriptExecutionContext); ResourceRequest cueRequest(document->completeURL(url)); CachedResourceLoader* cachedResourceLoader = document->cachedResourceLoader(); m_cachedCueData = static_cast<CachedTextTrack*>(cachedResourceLoader->requestTextTrack(cueRequest)); if (m_cachedCueData) m_cachedCueData->addClient(this); m_client->cueLoadingStarted(this); return true; }