⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 236964 in webkit


Ignore:
Timestamp:
Oct 9, 2018, 9:54:32 AM (8 years ago)
Author:
jer.noble@apple.com
Message:

ISOTrackEncryptionBox returns incorrect defaultKeyID
https://bugs.webkit.org/show_bug.cgi?id=190368

Reviewed by Eric Carlson.

Source/WebCore:

Test: TestWebKitAPI.ISOBox.ISOProtectionSchemeInfoBox

ISOTrackEncryptionBox::parse() increments the data offset by an incorrect amount.

Drive-by fix: add EXPORT macros to all the ISO box classes so that tests can be written in TestWebKitAPI.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/iso/ISOBox.h:
  • platform/graphics/iso/ISOOriginalFormatBox.h:
  • platform/graphics/iso/ISOProtectionSchemeInfoBox.h:
  • platform/graphics/iso/ISOProtectionSystemSpecificHeaderBox.h:
  • platform/graphics/iso/ISOSchemeInformationBox.h:
  • platform/graphics/iso/ISOSchemeTypeBox.h:
  • platform/graphics/iso/ISOTrackEncryptionBox.cpp:

(WebCore::ISOTrackEncryptionBox::parse):

  • platform/graphics/iso/ISOTrackEncryptionBox.h:

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/ISOBox.cpp: Added.

(TestWebKitAPI::TEST):

Location:
trunk
Files:
1 added
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r236963 r236964  
     12018-10-09  Jer Noble  <jer.noble@apple.com>
     2
     3        ISOTrackEncryptionBox returns incorrect defaultKeyID
     4        https://bugs.webkit.org/show_bug.cgi?id=190368
     5
     6        Reviewed by Eric Carlson.
     7
     8        Test: TestWebKitAPI.ISOBox.ISOProtectionSchemeInfoBox
     9
     10        ISOTrackEncryptionBox::parse() increments the data offset by an incorrect amount.
     11
     12        Drive-by fix: add EXPORT macros to all the ISO box classes so that tests can be written in TestWebKitAPI.
     13
     14        * WebCore.xcodeproj/project.pbxproj:
     15        * platform/graphics/iso/ISOBox.h:
     16        * platform/graphics/iso/ISOOriginalFormatBox.h:
     17        * platform/graphics/iso/ISOProtectionSchemeInfoBox.h:
     18        * platform/graphics/iso/ISOProtectionSystemSpecificHeaderBox.h:
     19        * platform/graphics/iso/ISOSchemeInformationBox.h:
     20        * platform/graphics/iso/ISOSchemeTypeBox.h:
     21        * platform/graphics/iso/ISOTrackEncryptionBox.cpp:
     22        (WebCore::ISOTrackEncryptionBox::parse):
     23        * platform/graphics/iso/ISOTrackEncryptionBox.h:
     24
    1252018-10-09  Youenn Fablet  <youenn@apple.com>
    226
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r236959 r236964  
    40124012                CD5D27781E8318E000D80A3D /* WebCoreDecompressionSession.h in Headers */ = {isa = PBXBuildFile; fileRef = CD5D27761E8318E000D80A3D /* WebCoreDecompressionSession.h */; };
    40134013                CD5E5B5F1A15CE54000C609E /* PageConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = CD5E5B5E1A15CE54000C609E /* PageConfiguration.h */; settings = {ATTRIBUTES = (Private, ); }; };
     4014                CD5FF4972162E2B7004BD86F /* ISOTrackEncryptionBox.h in Headers */ = {isa = PBXBuildFile; fileRef = CD871C661FB52B6800F0B965 /* ISOTrackEncryptionBox.h */; settings = {ATTRIBUTES = (Private, ); }; };
     4015                CD5FF4992162E2BE004BD86F /* ISOBox.h in Headers */ = {isa = PBXBuildFile; fileRef = CD871C621FB52B6500F0B965 /* ISOBox.h */; settings = {ATTRIBUTES = (Private, ); }; };
     4016                CD5FF49A2162E4A6004BD86F /* ISOSchemeInformationBox.h in Headers */ = {isa = PBXBuildFile; fileRef = CD871C641FB52B6700F0B965 /* ISOSchemeInformationBox.h */; settings = {ATTRIBUTES = (Private, ); }; };
     4017                CD5FF49B2162E4B7004BD86F /* ISOSchemeTypeBox.h in Headers */ = {isa = PBXBuildFile; fileRef = CD871C5C1FB52B6300F0B965 /* ISOSchemeTypeBox.h */; settings = {ATTRIBUTES = (Private, ); }; };
     4018                CD5FF49C2162E4CF004BD86F /* ISOProtectionSystemSpecificHeaderBox.h in Headers */ = {isa = PBXBuildFile; fileRef = 12F75A9A86EA03DAF24B7971 /* ISOProtectionSystemSpecificHeaderBox.h */; settings = {ATTRIBUTES = (Private, ); }; };
     4019                CD5FF49D2162E4DB004BD86F /* ISOProtectionSchemeInfoBox.h in Headers */ = {isa = PBXBuildFile; fileRef = CD871C601FB52B6500F0B965 /* ISOProtectionSchemeInfoBox.h */; settings = {ATTRIBUTES = (Private, ); }; };
     4020                CD5FF49E2162E4E8004BD86F /* ISOOriginalFormatBox.h in Headers */ = {isa = PBXBuildFile; fileRef = CD871C671FB52B6800F0B965 /* ISOOriginalFormatBox.h */; settings = {ATTRIBUTES = (Private, ); }; };
    40144021                CD61FE681794AADB004101EB /* MediaSourceRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = B1A942E215B5CE2200D525D1 /* MediaSourceRegistry.h */; };
    40154022                CD62FB961AF018E70012ED7D /* GenericTaskQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = CD62FB941AF018E70012ED7D /* GenericTaskQueue.h */; settings = {ATTRIBUTES = (Private, ); }; };
     
    2872528732                                2D0B4AAB18DA1CCD00434DE1 /* IOSurface.h in Headers */,
    2872628733                                1C21E57D183ED1FF001C289D /* IOSurfacePool.h in Headers */,
     28734                                CD5FF4992162E2BE004BD86F /* ISOBox.h in Headers */,
     28735                                CD5FF49E2162E4E8004BD86F /* ISOOriginalFormatBox.h in Headers */,
     28736                                CD5FF49D2162E4DB004BD86F /* ISOProtectionSchemeInfoBox.h in Headers */,
     28737                                CD5FF49C2162E4CF004BD86F /* ISOProtectionSystemSpecificHeaderBox.h in Headers */,
     28738                                CD5FF49A2162E4A6004BD86F /* ISOSchemeInformationBox.h in Headers */,
     28739                                CD5FF49B2162E4B7004BD86F /* ISOSchemeTypeBox.h in Headers */,
     28740                                CD5FF4972162E2B7004BD86F /* ISOTrackEncryptionBox.h in Headers */,
    2872728741                                71247E381FEA5F86008C08CE /* IterationCompositeOperation.h in Headers */,
    2872828742                                7C30D9841F815AEC00268356 /* JSAbortController.h in Headers */,
  • trunk/Source/WebCore/platform/graphics/iso/ISOBox.h

    r236943 r236964  
    3636namespace WebCore {
    3737
    38 class ISOBox {
     38class WEBCORE_EXPORT ISOBox {
    3939public:
    4040    virtual ~ISOBox() = default;
     
    7676};
    7777
    78 class ISOFullBox : public ISOBox {
     78class WEBCORE_EXPORT ISOFullBox : public ISOBox {
    7979public:
    8080    uint8_t version() const { return m_version; }
  • trunk/Source/WebCore/platform/graphics/iso/ISOOriginalFormatBox.h

    r236943 r236964  
    3030namespace WebCore {
    3131
    32 class ISOOriginalFormatBox : public ISOBox {
     32class WEBCORE_EXPORT ISOOriginalFormatBox : public ISOBox {
    3333public:
    3434    static FourCC boxTypeName() { return "frma"; }
  • trunk/Source/WebCore/platform/graphics/iso/ISOProtectionSchemeInfoBox.cpp

    r228218 r236964  
    3838{
    3939    unsigned localOffset = offset;
    40     if (!ISOFullBox::parse(view, localOffset))
     40    if (!ISOBox::parse(view, localOffset))
    4141        return false;
    4242
    43     if (m_originalFormatBox.read(view, localOffset))
     43    if (!m_originalFormatBox.read(view, localOffset))
    4444        return false;
    4545
  • trunk/Source/WebCore/platform/graphics/iso/ISOProtectionSchemeInfoBox.h

    r236943 r236964  
    3333class ISOSchemeInformationBox;
    3434
    35 class ISOProtectionSchemeInfoBox : public ISOFullBox {
     35class WEBCORE_EXPORT ISOProtectionSchemeInfoBox : public ISOBox {
    3636public:
    3737    static FourCC boxTypeName() { return "sinf"; }
    3838
     39    const ISOOriginalFormatBox& originalFormatBox() const { return m_originalFormatBox; }
    3940    const ISOSchemeTypeBox* schemeTypeBox() const { return m_schemeTypeBox.get(); }
    4041    const ISOSchemeInformationBox* schemeInformationBox() const { return m_schemeInformationBox.get(); }
  • trunk/Source/WebCore/platform/graphics/iso/ISOProtectionSystemSpecificHeaderBox.h

    r236943 r236964  
    3232namespace WebCore {
    3333
    34 class ISOProtectionSystemSpecificHeaderBox : public ISOFullBox {
     34class WEBCORE_EXPORT ISOProtectionSystemSpecificHeaderBox : public ISOFullBox {
    3535public:
    3636    using KeyID = Vector<uint8_t>;
  • trunk/Source/WebCore/platform/graphics/iso/ISOSchemeInformationBox.h

    r236943 r236964  
    3030namespace WebCore {
    3131
    32 class ISOSchemeInformationBox : public ISOBox {
     32class WEBCORE_EXPORT ISOSchemeInformationBox : public ISOBox {
    3333public:
    3434    static FourCC boxTypeName() { return "schi"; }
  • trunk/Source/WebCore/platform/graphics/iso/ISOSchemeTypeBox.h

    r236943 r236964  
    3030namespace WebCore {
    3131
    32 class ISOSchemeTypeBox : public ISOFullBox {
     32class WEBCORE_EXPORT ISOSchemeTypeBox : public ISOFullBox {
    3333public:
    3434    static FourCC boxTypeName() { return "schm"; }
  • trunk/Source/WebCore/platform/graphics/iso/ISOTrackEncryptionBox.cpp

    r236943 r236964  
    4040
    4141    // unsigned int(8) reserved = 0;
    42     offset += 2;
     42    offset += 1;
    4343
    4444    if (!m_version) {
    4545        // unsigned int(8) reserved = 0;
    46         offset += 2;
     46        offset += 1;
    4747    } else {
    4848        int8_t cryptAndSkip = 0;
  • trunk/Source/WebCore/platform/graphics/iso/ISOTrackEncryptionBox.h

    r236943 r236964  
    3030namespace WebCore {
    3131
    32 class ISOTrackEncryptionBox : public ISOFullBox {
     32class WEBCORE_EXPORT ISOTrackEncryptionBox : public ISOFullBox {
    3333public:
    3434    static FourCC boxTypeName() { return "tenc"; }
  • trunk/Tools/ChangeLog

    r236960 r236964  
     12018-10-09  Jer Noble  <jer.noble@apple.com>
     2
     3        ISOTrackEncryptionBox returns incorrect defaultKeyID
     4        https://bugs.webkit.org/show_bug.cgi?id=190368
     5
     6        Reviewed by Eric Carlson.
     7
     8        * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
     9        * TestWebKitAPI/Tests/WebCore/ISOBox.cpp: Added.
     10        (TestWebKitAPI::TEST):
     11
    1122018-10-09  Philippe Normand  <pnormand@igalia.com>
    213
  • trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj

    r236955 r236964  
    730730                CD59F53419E9110D00CF1835 /* file-with-mse.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = CD59F53219E910AA00CF1835 /* file-with-mse.html */; };
    731731                CD59F53519E9110D00CF1835 /* test-mse.mp4 in Copy Resources */ = {isa = PBXBuildFile; fileRef = CD59F53319E910BC00CF1835 /* test-mse.mp4 */; };
     732                CD5FF49F2162E943004BD86F /* ISOBox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CD5FF4962162E27E004BD86F /* ISOBox.cpp */; };
    732733                CD758A6F20572EA00071834A /* video-with-paused-audio-and-playing-muted.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = CD758A6E20572D540071834A /* video-with-paused-audio-and-playing-muted.html */; };
    733734                CD78E11D1DB7EA660014A2DE /* FullscreenDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = CD78E11A1DB7EA360014A2DE /* FullscreenDelegate.mm */; };
     
    19631964                CD59F53219E910AA00CF1835 /* file-with-mse.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "file-with-mse.html"; sourceTree = "<group>"; };
    19641965                CD59F53319E910BC00CF1835 /* test-mse.mp4 */ = {isa = PBXFileReference; lastKnownFileType = file; path = "test-mse.mp4"; sourceTree = "<group>"; };
     1966                CD5FF4962162E27E004BD86F /* ISOBox.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ISOBox.cpp; sourceTree = "<group>"; };
    19651967                CD758A6E20572D540071834A /* video-with-paused-audio-and-playing-muted.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "video-with-paused-audio-and-playing-muted.html"; sourceTree = "<group>"; };
    19661968                CD773F711C5057DB0002257C /* FeatureDefines.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = FeatureDefines.xcconfig; sourceTree = "<group>"; };
     
    25402542                                7A909A741D877475007E10F8 /* IntRect.cpp */,
    25412543                                7A909A751D877475007E10F8 /* IntSize.cpp */,
     2544                                CD5FF4962162E27E004BD86F /* ISOBox.cpp */,
    25422545                                14464012167A8305000BD218 /* LayoutUnit.cpp */,
    25432546                                076E507E1F45031E006E9F5A /* Logging.cpp */,
     
    38683871                                7A909A831D877480007E10F8 /* IntSize.cpp in Sources */,
    38693872                                5C0BF8931DD599BD00B00328 /* IsNavigationActionTrusted.mm in Sources */,
     3873                                CD5FF49F2162E943004BD86F /* ISOBox.cpp in Sources */,
    38703874                                5C69BDD51F82A7EF000F4F4B /* JavaScriptDuringNavigation.mm in Sources */,
    38713875                                7CCE7EAD1A411A3400447C4C /* JavaScriptTest.cpp in Sources */,
Note: See TracChangeset for help on using the changeset viewer.