Changeset 97637 in webkit


Ignore:
Timestamp:
Oct 17, 2011 12:22:45 PM (13 years ago)
Author:
eric.carlson@apple.com
Message:

2011-10-17 Eric Carlson <eric.carlson@apple.com>

Cues should be loaded by the cached resource loader
https://bugs.webkit.org/show_bug.cgi?id=70134

Reviewed by Darin Adler.

No new tests, changes covered by existing tests.

  • CMakeLists.txt: Add CachedCues.cpp/h.
  • GNUmakefile.list.am: Ditto.
  • WebCore.gypi: Ditto.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • loader/cache/CachedCues.cpp: Added. (WebCore::CachedCues::CachedCues): (WebCore::CachedCues::~CachedCues): (WebCore::CachedCues::data): Called when new data has been loaded, pass it to all registered

clients.

  • loader/cache/CachedCues.h: Added.
  • loader/cache/CachedResource.cpp: (WebCore::defaultPriorityForResourceType): Cues have low loader priority.
  • loader/cache/CachedResource.h:
  • loader/cache/CachedResourceClient.h: (WebCore::CachedResourceClient::didReceiveData): New client interface.
  • loader/cache/CachedResourceLoader.cpp: (WebCore::createResource): Create and return a new cue loader. (WebCore::CachedResourceLoader::requestCues): (WebCore::CachedResourceLoader::checkInsecureContent): Cues aren't mentioned in the CPS spec

yet, but they only work with a media element so use the mdia policy.

(WebCore::CachedResourceLoader::canRequest): Allow cues to be loaded from any origin like media.

  • loader/cache/CachedResourceLoader.h:
  • loader/cache/CachedResourceRequest.cpp: (WebCore::cachedResourceTypeToTargetType):
  • platform/network/chromium/ResourceRequest.h:
Location:
trunk/Source/WebCore
Files:
2 added
12 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/CMakeLists.txt

    r97574 r97637  
    20572057        html/track/WebVTTTokenizer.cpp
    20582058        loader/CueLoader.cpp
     2059        loader/cache/CachedCues.cpp
    20592060    )
    20602061ENDIF()
  • trunk/Source/WebCore/ChangeLog

    r97635 r97637  
     12011-10-17  Eric Carlson  <eric.carlson@apple.com>
     2
     3        Cues should be loaded by the cached resource loader
     4        https://bugs.webkit.org/show_bug.cgi?id=70134
     5
     6        Reviewed by Darin Adler.
     7
     8        No new tests, changes covered by existing tests.
     9
     10        * CMakeLists.txt: Add CachedCues.cpp/h.
     11        * GNUmakefile.list.am: Ditto.
     12        * WebCore.gypi: Ditto.
     13        * WebCore.xcodeproj/project.pbxproj: Ditto.
     14
     15        * loader/cache/CachedCues.cpp: Added.
     16        (WebCore::CachedCues::CachedCues):
     17        (WebCore::CachedCues::~CachedCues):
     18        (WebCore::CachedCues::data): Called when new data has been loaded, pass it to all registered
     19            clients.
     20        * loader/cache/CachedCues.h: Added.
     21
     22        * loader/cache/CachedResource.cpp:
     23        (WebCore::defaultPriorityForResourceType): Cues have low loader priority.
     24        * loader/cache/CachedResource.h:
     25
     26        * loader/cache/CachedResourceClient.h:
     27        (WebCore::CachedResourceClient::didReceiveData): New client interface.
     28
     29        * loader/cache/CachedResourceLoader.cpp:
     30        (WebCore::createResource): Create and return a new cue loader.
     31        (WebCore::CachedResourceLoader::requestCues):
     32        (WebCore::CachedResourceLoader::checkInsecureContent): Cues aren't mentioned in the CPS spec
     33            yet, but they only work with a media element so use the mdia policy.
     34        (WebCore::CachedResourceLoader::canRequest): Allow cues to be loaded from any origin like media.
     35        * loader/cache/CachedResourceLoader.h:
     36
     37        * loader/cache/CachedResourceRequest.cpp:
     38        (WebCore::cachedResourceTypeToTargetType):
     39        * platform/network/chromium/ResourceRequest.h:
     40
    1412011-10-17  Dan Bernstein  <mitz@apple.com>
    242
  • trunk/Source/WebCore/GNUmakefile.list.am

    r97584 r97637  
    21022102        Source/WebCore/loader/cache/CachedCSSStyleSheet.cpp \
    21032103        Source/WebCore/loader/cache/CachedCSSStyleSheet.h \
     2104        Source/WebCore/loader/cache/CachedCues.cpp \
     2105        Source/WebCore/loader/cache/CachedCues.h \
    21042106        Source/WebCore/loader/cache/CachedFont.cpp \
    21052107        Source/WebCore/loader/cache/CachedFont.h \
  • trunk/Source/WebCore/WebCore.gypi

    r97584 r97637  
    28332833            'loader/cache/CachedCSSStyleSheet.cpp',
    28342834            'loader/cache/CachedCSSStyleSheet.h',
     2835            'loader/cache/CachedCues.cpp',
     2836            'loader/cache/CachedCues.h',
    28352837            'loader/cache/CachedFont.cpp',
    28362838            'loader/cache/CachedFont.h',
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r97584 r97637  
    8686                072C8B11131C518600A4FCE9 /* MediaPlayerPrivateAVFoundation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 076F0D0912B8192700C26AA4 /* MediaPlayerPrivateAVFoundation.cpp */; };
    8787                0735EE6A0F40C5E4004A2604 /* MediaPlayerProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 0735EE690F40C5E4004A2604 /* MediaPlayerProxy.h */; settings = {ATTRIBUTES = (Private, ); }; };
     88                0753860214489E9800B78452 /* CachedCues.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0753860014489E9800B78452 /* CachedCues.cpp */; };
     89                0753860314489E9800B78452 /* CachedCues.h in Headers */ = {isa = PBXBuildFile; fileRef = 0753860114489E9800B78452 /* CachedCues.h */; };
    8890                076F0D0E12B8192700C26AA4 /* MediaPlayerPrivateAVFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = 076F0D0A12B8192700C26AA4 /* MediaPlayerPrivateAVFoundation.h */; };
    8991                07B0113F1032242200FBDC33 /* AccessibilityMediaControls.h in Headers */ = {isa = PBXBuildFile; fileRef = 07B0113E1032242200FBDC33 /* AccessibilityMediaControls.h */; };
     
    70887090                0709FC4D1025DEE30059CDBA /* AccessibilitySlider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AccessibilitySlider.h; sourceTree = "<group>"; };
    70897091                070DD8F50F01868000727DEB /* mediaControls.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = mediaControls.css; sourceTree = "<group>"; };
     7092                0753860014489E9800B78452 /* CachedCues.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CachedCues.cpp; sourceTree = "<group>"; };
     7093                0753860114489E9800B78452 /* CachedCues.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CachedCues.h; sourceTree = "<group>"; };
    70907094                0735EE690F40C5E4004A2604 /* MediaPlayerProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaPlayerProxy.h; sourceTree = "<group>"; };
    70917095                076F0D0912B8192700C26AA4 /* MediaPlayerPrivateAVFoundation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MediaPlayerPrivateAVFoundation.cpp; sourceTree = "<group>"; };
     
    1842518429                        isa = PBXGroup;
    1842618430                        children = (
     18431                                0753860014489E9800B78452 /* CachedCues.cpp */,
     18432                                0753860114489E9800B78452 /* CachedCues.h */,
    1842718433                                BCB16C000979C3BD00467741 /* CachedCSSStyleSheet.cpp */,
    1842818434                                BCB16C010979C3BD00467741 /* CachedCSSStyleSheet.h */,
     
    2461824624                                49AF2D6914435D050016A784 /* DisplayRefreshMonitor.h in Headers */,
    2461924625                                71CCB49D144824AC00C676D6 /* ImageBySizeCache.h in Headers */,
     24626                                0753860314489E9800B78452 /* CachedCues.h in Headers */,
    2462024627                        );
    2462124628                        runOnlyForDeploymentPostprocessing = 0;
     
    2747027477                                49FC7A501444AF5F00A5D864 /* DisplayRefreshMonitor.cpp in Sources */,
    2747127478                                71CCB49C144824AC00C676D6 /* ImageBySizeCache.cpp in Sources */,
     27479                                0753860214489E9800B78452 /* CachedCues.cpp in Sources */,
    2747227480                        );
    2747327481                        runOnlyForDeploymentPostprocessing = 0;
  • trunk/Source/WebCore/loader/cache/CachedResource.cpp

    r97199 r97637  
    44    Copyright (C) 2002 Waldo Bastian (bastian@kde.org)
    55    Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com)
    6     Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
     6    Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
    77
    88    This library is free software; you can redistribute it and/or
     
    7171        case CachedResource::LinkSubresource:
    7272            return ResourceLoadPriorityVeryLow;
     73#endif
     74#if ENABLE(VIDEO_TRACK)
     75        case CachedResource::CueResource:
     76            return ResourceLoadPriorityLow;
    7377#endif
    7478    }
  • trunk/Source/WebCore/loader/cache/CachedResource.h

    r96961 r97637  
    33    Copyright (C) 2001 Dirk Mueller <mueller@kde.org>
    44    Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com)
    5     Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved.
     5    Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
    66
    77    This library is free software; you can redistribute it and/or
     
    7474        , LinkSubresource
    7575#endif
     76#if ENABLE(VIDEO_TRACK)
     77        , CueResource
     78#endif
    7679    };
    7780
  • trunk/Source/WebCore/loader/cache/CachedResourceClient.h

    r97208 r97637  
    22    Copyright (C) 1998 Lars Knoll (knoll@mpi-hd.mpg.de)
    33    Copyright (C) 2001 Dirk Mueller <mueller@kde.org>
    4     Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
     4    Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
    55
    66    This library is free software; you can redistribute it and/or
     
    4444    virtual ~CachedResourceClient() { }
    4545    virtual void notifyFinished(CachedResource*) { }
     46    virtual void didReceiveData(CachedResource*) { };
    4647   
    4748    static CachedResourceClientType expectedType() { return BaseResourceType; }
  • trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp

    r97388 r97637  
    33    Copyright (C) 2001 Dirk Mueller (mueller@kde.org)
    44    Copyright (C) 2002 Waldo Bastian (bastian@kde.org)
    5     Copyright (C) 2004, 2005, 2006, 2008 Apple Inc. All rights reserved.
     5    Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
    66    Copyright (C) 2009 Torch Mobile Inc. http://www.torchmobile.com/
    77
     
    5353#include <wtf/text/WTFString.h>
    5454
     55#if ENABLE(VIDEO_TRACK)
     56#include "CachedCues.h"
     57#endif
     58
    5559#define PRELOAD_DEBUG 0
    5660
     
    8286        return new CachedResource(request, CachedResource::LinkSubresource);
    8387#endif
     88#if ENABLE(VIDEO_TRACK)
     89    case CachedResource::CueResource:
     90        return new CachedCues(request);
     91#endif
    8492    }
    8593    ASSERT_NOT_REACHED();
     
    154162}
    155163
     164#if ENABLE(VIDEO_TRACK)
     165CachedCues* CachedResourceLoader::requestCues(ResourceRequest& request)
     166{
     167    return static_cast<CachedCues*>(requestResource(CachedResource::CueResource, request, String(), defaultCachedResourceOptions()));
     168}
     169#endif
     170
    156171CachedCSSStyleSheet* CachedResourceLoader::requestCSSStyleSheet(ResourceRequest& request, const String& charset, ResourceLoadPriority priority)
    157172{
     
    225240                return false;
    226241        break;
     242#if ENABLE(VIDEO_TRACK)
     243    case CachedResource::CueResource:
     244#endif
    227245    case CachedResource::ImageResource:
    228246    case CachedResource::FontResource: {
     
    270288    case CachedResource::LinkSubresource:
    271289#endif
     290#if ENABLE(VIDEO_TRACK)
     291    case CachedResource::CueResource:
     292#endif
    272293        // These types of resources can be loaded from any origin.
    273294        // FIXME: Are we sure about CachedResource::FontResource?
     
    324345#endif
    325346        break;
     347#if ENABLE(VIDEO_TRACK)
     348    case CachedResource::CueResource:
     349        // Cues aren't called out in the CPS spec yet, but they only work with a media element
     350        // so use the media policy.
     351        if (!m_document->contentSecurityPolicy()->allowMediaFromSource(url))
     352            return false;
     353        break;
     354#endif
    326355    }
    327356
  • trunk/Source/WebCore/loader/cache/CachedResourceLoader.h

    r96961 r97637  
    22    Copyright (C) 1998 Lars Knoll (knoll@mpi-hd.mpg.de)
    33    Copyright (C) 2001 Dirk Mueller <mueller@kde.org>
    4     Copyright (C) 2004, 2005, 2006 Apple Computer, Inc.
     4    Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
    55    Copyright (C) 2009 Torch Mobile Inc. http://www.torchmobile.com/
    66
     
    4040namespace WebCore {
    4141
     42class CachedCues;
    4243class CachedCSSStyleSheet;
    4344class CachedFont;
     
    7374#if ENABLE(LINK_PREFETCH)
    7475    CachedResource* requestLinkResource(CachedResource::Type, ResourceRequest&, ResourceLoadPriority = ResourceLoadPriorityUnresolved);
     76#endif
     77#if ENABLE(VIDEO_TRACK)
     78    CachedCues* requestCues(ResourceRequest&);
    7579#endif
    7680
  • trunk/Source/WebCore/loader/cache/CachedResourceRequest.cpp

    r96961 r97637  
    44    Copyright (C) 2002 Waldo Bastian (bastian@kde.org)
    55    Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com)
    6     Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
     6    Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
    77
    88    This library is free software; you can redistribute it and/or
     
    7171        return ResourceRequest::TargetIsSubresource;
    7272#endif
     73#if ENABLE(VIDEO_TRACK)
     74    case CachedResource::CueResource:
     75        return ResourceRequest::TargetIsCue;
     76#endif
    7377    }
    7478    ASSERT_NOT_REACHED();
  • trunk/Source/WebCore/platform/network/chromium/ResourceRequest.h

    r95901 r97637  
    5757            TargetIsFavicon,
    5858            TargetIsXHR,
     59            TargetIsCue,
    5960        };
    6061
Note: See TracChangeset for help on using the changeset viewer.