Title: [267672] branches/safari-610-branch
Revision
267672
Author
[email protected]
Date
2020-09-27 13:00:09 -0700 (Sun, 27 Sep 2020)

Log Message

Cherry-pick r266611. rdar://problem/69594191

    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.

    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266611 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Modified Paths

Added Paths

Diff

Modified: branches/safari-610-branch/LayoutTests/ChangeLog (267671 => 267672)


--- branches/safari-610-branch/LayoutTests/ChangeLog	2020-09-27 20:00:05 UTC (rev 267671)
+++ branches/safari-610-branch/LayoutTests/ChangeLog	2020-09-27 20:00:09 UTC (rev 267672)
@@ -1,3 +1,47 @@
+2020-09-27  Alan Coon  <[email protected]>
+
+        Cherry-pick r266611. rdar://problem/69594191
+
+    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.
+    
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266611 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    2020-09-04  Youenn Fablet  <[email protected]>
+
+            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.
+
+            * http/wpt/fetch/blob-range-expected.txt: Added.
+            * http/wpt/fetch/blob-range.html: Added.
+
 2020-09-25  Alan Coon  <[email protected]>
 
         Cherry-pick r267067. rdar://problem/69586680

Added: branches/safari-610-branch/LayoutTests/http/wpt/fetch/blob-range-expected.txt (0 => 267672)


--- branches/safari-610-branch/LayoutTests/http/wpt/fetch/blob-range-expected.txt	                        (rev 0)
+++ branches/safari-610-branch/LayoutTests/http/wpt/fetch/blob-range-expected.txt	2020-09-27 20:00:09 UTC (rev 267672)
@@ -0,0 +1,3 @@
+
+PASS Do blob range requests 
+

Added: branches/safari-610-branch/LayoutTests/http/wpt/fetch/blob-range.html (0 => 267672)


--- branches/safari-610-branch/LayoutTests/http/wpt/fetch/blob-range.html	                        (rev 0)
+++ branches/safari-610-branch/LayoutTests/http/wpt/fetch/blob-range.html	2020-09-27 20:00:09 UTC (rev 267672)
@@ -0,0 +1,32 @@
+<!doctype html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <title>Blob and range request</title>
+    <meta name="help" href=""
+    <script src=""
+    <script src=""
+  </head>
+  <body>
+    <script>
+
+promise_test(async () => {
+    const blobSize = [990043, 804394, 1488722, 940287, 796558, 1934954, 951421, 1694735, 416322, 466642];
+    const blobs = blobSize.map(size => new Blob([new ArrayBuffer(size)]));
+    const blob = new Blob(blobs, { type: 'video/mp4' });
+    const url = ""
+
+    let request = new Request(url, { headers : { "Range" : "bytes=0-1" } });
+    await fetch(request);
+
+    request = new Request(url, { headers : { "Range" : "bytes=0-62470047" } });
+    await fetch(request);
+
+    request = new Request(url, { headers : { "Range" : "bytes=3257139-7195852" } });
+    const response = await fetch(request);
+    assert_equals(response.status, 206);
+    await response.arrayBuffer();
+}, "Do blob range requests");
+    </script>
+  </body>
+</html>

Modified: branches/safari-610-branch/Source/WebCore/ChangeLog (267671 => 267672)


--- branches/safari-610-branch/Source/WebCore/ChangeLog	2020-09-27 20:00:05 UTC (rev 267671)
+++ branches/safari-610-branch/Source/WebCore/ChangeLog	2020-09-27 20:00:09 UTC (rev 267672)
@@ -1,5 +1,51 @@
 2020-09-27  Alan Coon  <[email protected]>
 
+        Cherry-pick r266611. rdar://problem/69594191
+
+    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.
+    
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266611 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    2020-09-04  Youenn Fablet  <[email protected]>
+
+            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.
+
+            Test: http/wpt/fetch/blob-range.html
+
+            * platform/network/BlobResourceHandle.cpp:
+            (WebCore::BlobResourceHandle::readDataAsync):
+
+2020-09-27  Alan Coon  <[email protected]>
+
         Cherry-pick r266312. rdar://problem/69594218
 
     [macOS] AirPlay device name is wrong when playing to multiple devices

Modified: branches/safari-610-branch/Source/WebCore/platform/network/BlobResourceHandle.cpp (267671 => 267672)


--- branches/safari-610-branch/Source/WebCore/platform/network/BlobResourceHandle.cpp	2020-09-27 20:00:05 UTC (rev 267671)
+++ branches/safari-610-branch/Source/WebCore/platform/network/BlobResourceHandle.cpp	2020-09-27 20:00:09 UTC (rev 267672)
@@ -456,10 +456,14 @@
     Ref<BlobResourceHandle> protectedThis(*this);
 
     long long bytesToRead = item.length() - m_currentItemReadSize;
+    ASSERT(bytesToRead >= 0);
     if (bytesToRead > m_totalRemainingSize)
         bytesToRead = m_totalRemainingSize;
-    consumeData(reinterpret_cast<const char*>(item.data().data()->data()) + item.offset() + m_currentItemReadSize, static_cast<int>(bytesToRead));
+
+    auto* data = "" char*>(item.data().data()->data()) + item.offset() + m_currentItemReadSize;
     m_currentItemReadSize = 0;
+
+    consumeData(data, static_cast<int>(bytesToRead));
 }
 
 void BlobResourceHandle::readFileAsync(const BlobDataItem& item)

Modified: branches/safari-610-branch/Source/WebKit/ChangeLog (267671 => 267672)


--- branches/safari-610-branch/Source/WebKit/ChangeLog	2020-09-27 20:00:05 UTC (rev 267671)
+++ branches/safari-610-branch/Source/WebKit/ChangeLog	2020-09-27 20:00:09 UTC (rev 267672)
@@ -1,5 +1,52 @@
 2020-09-27  Alan Coon  <[email protected]>
 
+        Cherry-pick r266611. rdar://problem/69594191
+
+    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.
+    
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266611 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    2020-09-04  Youenn Fablet  <[email protected]>
+
+            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.
+
+            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.
+
+2020-09-27  Alan Coon  <[email protected]>
+
         Cherry-pick r265977. rdar://problem/69594018
 
     Could not find module 'WebKit' for target 'armv7-apple-ios'

Modified: branches/safari-610-branch/Source/WebKit/NetworkProcess/NetworkDataTaskBlob.cpp (267671 => 267672)


--- branches/safari-610-branch/Source/WebKit/NetworkProcess/NetworkDataTaskBlob.cpp	2020-09-27 20:00:05 UTC (rev 267671)
+++ branches/safari-610-branch/Source/WebKit/NetworkProcess/NetworkDataTaskBlob.cpp	2020-09-27 20:00:09 UTC (rev 267672)
@@ -340,10 +340,14 @@
     ASSERT(item.data().data());
 
     long long bytesToRead = item.length() - m_currentItemReadSize;
+    ASSERT(bytesToRead >= 0);
     if (bytesToRead > m_totalRemainingSize)
         bytesToRead = m_totalRemainingSize;
-    consumeData(reinterpret_cast<const char*>(item.data().data()->data()) + item.offset() + m_currentItemReadSize, static_cast<int>(bytesToRead));
+
+    auto* data = "" char*>(item.data().data()->data()) + item.offset() + m_currentItemReadSize;
     m_currentItemReadSize = 0;
+
+    consumeData(data, static_cast<int>(bytesToRead));
 }
 
 void NetworkDataTaskBlob::readFile(const BlobDataItem& item)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to