Changeset 207331 in webkit


Ignore:
Timestamp:
Oct 14, 2016 2:04:24 AM (8 years ago)
Author:
commit-queue@webkit.org
Message:

MediaResourceLoader should use CachedResource::ressourceError to do CORS checks
https://bugs.webkit.org/show_bug.cgi?id=163279

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-14
Reviewed by Darin Adler.

Covered by existing tests.

  • loader/MediaResourceLoader.cpp:

(WebCore::MediaResource::responseReceived): Making use of CachedResource::ressourceError to detect CORS failures.

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::shouldUpdateCachedResourceWithCurrentRequest): Activating loader options checks
before reusing the resource.
(WebCore::isResourceSuitableForDirectReuse): Disabling direct reuse of MediaResource since reuse of raw
resources does not work yet for media resources.

Location:
trunk/Source/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r207330 r207331  
     12016-10-14  Youenn Fablet  <youenn@apple.com>
     2
     3        MediaResourceLoader should use CachedResource::ressourceError to do CORS checks
     4        https://bugs.webkit.org/show_bug.cgi?id=163279
     5
     6        Reviewed by Darin Adler.
     7
     8        Covered by existing tests.
     9
     10        * loader/MediaResourceLoader.cpp:
     11        (WebCore::MediaResource::responseReceived): Making use of CachedResource::ressourceError to detect CORS failures.
     12        * loader/cache/CachedResourceLoader.cpp:
     13        (WebCore::CachedResourceLoader::shouldUpdateCachedResourceWithCurrentRequest): Activating loader options checks
     14        before reusing the resource.
     15        (WebCore::isResourceSuitableForDirectReuse): Disabling direct reuse of MediaResource since reuse of raw
     16        resources does not work yet for media resources.
     17
    1182016-10-14  Youenn Fablet  <youenn@apple.com>
    219
  • trunk/Source/WebCore/loader/MediaResourceLoader.cpp

    r207281 r207331  
    135135
    136136    RefPtr<MediaResource> protectedThis(this);
    137     if (!m_loader->crossOriginMode().isNull() && !m_resource->passesSameOriginPolicyCheck(*m_loader->document()->securityOrigin())) {
     137    if (m_resource->resourceError().isAccessControl()) {
    138138        static NeverDestroyed<const String> consoleMessage("Cross-origin media resource load denied by Cross-Origin Resource Sharing policy.");
    139139        m_loader->document()->addConsoleMessage(MessageSource::Security, MessageLevel::Error, consoleMessage.get());
     
    145145    }
    146146
    147     m_didPassAccessControlCheck = !m_loader->crossOriginMode().isNull();
     147    m_didPassAccessControlCheck = m_resource->options().mode == FetchOptions::Mode::Cors;
    148148    if (m_client)
    149149        m_client->responseReceived(*this, response);
  • trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp

    r207330 r207331  
    562562    case CachedResource::SVGDocumentResource:
    563563        return false;
    564     case CachedResource::MediaResource:
    565         return false;
    566564    case CachedResource::MainResource:
    567565        return false;
     
    603601
    604602    // FIXME: Implement reuse of cached raw resources.
    605     if (resource.type() == CachedResource::Type::RawResource)
     603    if (resource.type() == CachedResource::Type::RawResource || resource.type() == CachedResource::Type::MediaResource)
    606604        return false;
    607605
Note: See TracChangeset for help on using the changeset viewer.