Changeset 249805 in webkit


Ignore:
Timestamp:
Sep 12, 2019 3:59:09 AM (5 years ago)
Author:
Joseph Pecoraro
Message:

Web Inspector: Crashes when intercept response continues with original content
https://bugs.webkit.org/show_bug.cgi?id=201707
<rdar://problem/55261857>

Reviewed by David Kilzer.

  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::didReceiveData):
Copy the data for the callback since the deferral may run it much later.

Location:
trunk/Source/WebKit
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r249803 r249805  
     12019-09-12  Joseph Pecoraro  <pecoraro@apple.com>
     2
     3        Web Inspector: Crashes when intercept response continues with original content
     4        https://bugs.webkit.org/show_bug.cgi?id=201707
     5        <rdar://problem/55261857>
     6
     7        Reviewed by David Kilzer.
     8
     9        * WebProcess/Network/WebResourceLoader.cpp:
     10        (WebKit::WebResourceLoader::didReceiveData):
     11        Copy the data for the callback since the deferral may run it much later.
     12
    1132019-09-12  Youenn Fablet  <youenn@apple.com>
    214
  • trunk/Source/WebKit/WebProcess/Network/WebResourceLoader.cpp

    r249567 r249805  
    185185
    186186    if (UNLIKELY(m_interceptController.isIntercepting(m_coreLoader->identifier()))) {
    187         m_interceptController.defer(m_coreLoader->identifier(), [this, protectedThis = makeRef(*this), data, encodedDataLength]() mutable {
     187        auto buffer = WebCore::SharedBuffer::create(data.data(), data.size());
     188        m_interceptController.defer(m_coreLoader->identifier(), [this, protectedThis = makeRef(*this), buffer = WTFMove(buffer), encodedDataLength]() mutable {
     189            IPC::DataReference data(reinterpret_cast<const uint8_t*>(buffer->data()), buffer->size());
    188190            if (m_coreLoader)
    189191                didReceiveData(data, encodedDataLength);
Note: See TracChangeset for help on using the changeset viewer.