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

Changeset 266611 in webkit


Ignore:
Timestamp:
Sep 4, 2020, 9:11:10 AM (6 years ago)
Author:
youenn@apple.com
Message:

MediaRecorder timeslice parameter causing internal error on longer videos
https://bugs.webkit.org/show_bug.cgi?id=216076
<rdar://problem/68209422>

Reviewed by Eric Carlson.

Source/WebCore:

Test: http/wpt/fetch/blob-range.html

  • platform/network/BlobResourceHandle.cpp:

(WebCore::BlobResourceHandle::readDataAsync):

Source/WebKit:

Test: http/wpt/fetch/blob-range.html

  • NetworkProcess/NetworkDataTaskBlob.cpp:

(WebKit::NetworkDataTaskBlob::readData):
readData can be re-entrant so we need to reset m_currentItemReadSize before consuming data.

LayoutTests:

  • http/wpt/fetch/blob-range-expected.txt: Added.
  • http/wpt/fetch/blob-range.html: Added.
Location:
trunk
Files:
2 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r266610 r266611  
     12020-09-04  Youenn Fablet  <youenn@apple.com>
     2
     3        MediaRecorder timeslice parameter causing internal error on longer videos
     4        https://bugs.webkit.org/show_bug.cgi?id=216076
     5        <rdar://problem/68209422>
     6
     7        Reviewed by Eric Carlson.
     8
     9        * http/wpt/fetch/blob-range-expected.txt: Added.
     10        * http/wpt/fetch/blob-range.html: Added.
     11
    1122020-09-04  Aditya Keerthi  <akeerthi@apple.com>
    213
  • trunk/Source/WebCore/ChangeLog

    r266609 r266611  
     12020-09-04  Youenn Fablet  <youenn@apple.com>
     2
     3        MediaRecorder timeslice parameter causing internal error on longer videos
     4        https://bugs.webkit.org/show_bug.cgi?id=216076
     5        <rdar://problem/68209422>
     6
     7        Reviewed by Eric Carlson.
     8
     9        Test: http/wpt/fetch/blob-range.html
     10
     11        * platform/network/BlobResourceHandle.cpp:
     12        (WebCore::BlobResourceHandle::readDataAsync):
     13
    1142020-09-04  Youenn Fablet  <youenn@apple.com>
    215
  • trunk/Source/WebCore/platform/network/BlobResourceHandle.cpp

    r248846 r266611  
    457457
    458458    long long bytesToRead = item.length() - m_currentItemReadSize;
     459    ASSERT(bytesToRead >= 0);
    459460    if (bytesToRead > m_totalRemainingSize)
    460461        bytesToRead = m_totalRemainingSize;
    461     consumeData(reinterpret_cast<const char*>(item.data().data()->data()) + item.offset() + m_currentItemReadSize, static_cast<int>(bytesToRead));
     462
     463    auto* data = reinterpret_cast<const char*>(item.data().data()->data()) + item.offset() + m_currentItemReadSize;
    462464    m_currentItemReadSize = 0;
     465
     466    consumeData(data, static_cast<int>(bytesToRead));
    463467}
    464468
  • trunk/Source/WebKit/ChangeLog

    r266610 r266611  
     12020-09-04  Youenn Fablet  <youenn@apple.com>
     2
     3        MediaRecorder timeslice parameter causing internal error on longer videos
     4        https://bugs.webkit.org/show_bug.cgi?id=216076
     5        <rdar://problem/68209422>
     6
     7        Reviewed by Eric Carlson.
     8
     9        Test: http/wpt/fetch/blob-range.html
     10
     11        * NetworkProcess/NetworkDataTaskBlob.cpp:
     12        (WebKit::NetworkDataTaskBlob::readData):
     13        readData can be re-entrant so we need to reset m_currentItemReadSize before consuming data.
     14
    1152020-09-04  Aditya Keerthi  <akeerthi@apple.com>
    216
  • trunk/Source/WebKit/NetworkProcess/NetworkDataTaskBlob.cpp

    r263407 r266611  
    341341
    342342    long long bytesToRead = item.length() - m_currentItemReadSize;
     343    ASSERT(bytesToRead >= 0);
    343344    if (bytesToRead > m_totalRemainingSize)
    344345        bytesToRead = m_totalRemainingSize;
    345     consumeData(reinterpret_cast<const char*>(item.data().data()->data()) + item.offset() + m_currentItemReadSize, static_cast<int>(bytesToRead));
     346
     347    auto* data = reinterpret_cast<const char*>(item.data().data()->data()) + item.offset() + m_currentItemReadSize;
    346348    m_currentItemReadSize = 0;
     349
     350    consumeData(data, static_cast<int>(bytesToRead));
    347351}
    348352
Note: See TracChangeset for help on using the changeset viewer.