<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>183703</bug_id>
          
          <creation_ts>2018-03-16 11:03:51 -0700</creation_ts>
          <short_desc>[Fetch API] Allow used body replacement in Request constructor</short_desc>
          <delta_ts>2019-04-02 13:54:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Harris Hancock">harris</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>ggaren</cc>
    
    <cc>koivisto</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1407050</commentid>
    <comment_count>0</comment_count>
    <who name="Harris Hancock">harris</who>
    <bug_when>2018-03-16 11:03:51 -0700</bug_when>
    <thetext>Currently, the following code snippet replaces request&apos;s body as one would expect:

  let request = new Request(url, {
    method: &quot;POST&quot;, body: &quot;foo&quot;
  })
  request = new Request(request, {
    body: &quot;bar&quot;
  })

But this snippet, in which the author tries to replace a used body, throws a TypeError:

  let request = new Request(url, {
    method: &quot;POST&quot;, body: &quot;foo&quot;
  })
  await request.text()  // disturb the body
  request = new Request(request, {
    body: &quot;bar&quot;
  })  // throws

Since the second snippet is providing a new body to the constructor, there doesn&apos;t seem to be any technical need to throw.

I have a pull request in to change this in the Fetch spec here:

https://github.com/whatwg/fetch/pull/675

Accompanying WPT PR here:

https://github.com/w3c/web-platform-tests/pull/9931</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1522490</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-03-29 10:26:43 -0700</bug_when>
    <thetext>&lt;rdar://problem/49425609&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1522644</commentid>
    <comment_count>2</comment_count>
      <attachid>366323</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-29 16:30:04 -0700</bug_when>
    <thetext>Created attachment 366323
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523377</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-04-02 11:39:02 -0700</bug_when>
    <thetext>ping review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523404</commentid>
    <comment_count>4</comment_count>
      <attachid>366323</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-04-02 12:33:30 -0700</bug_when>
    <thetext>Comment on attachment 366323
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=366323&amp;action=review

&gt; Source/WebCore/Modules/fetch/FetchRequest.cpp:241
&gt; +            return Exception {TypeError, &quot;Request input is disturbed or locked.&quot;_s };

s/{T/{ T/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523443</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-04-02 13:48:26 -0700</bug_when>
    <thetext>Committed r243757: &lt;https://trac.webkit.org/changeset/243757&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>366323</attachid>
            <date>2019-03-29 16:30:04 -0700</date>
            <delta_ts>2019-04-02 13:54:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183703-20190329163003.patch</filename>
            <type>text/plain</type>
            <size>4153</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzNjY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGM4MmUxYTJiZWYxYWUw
YzkyMDk4OGI1MmY3NDQ4YTU1YWE4Y2UwOC4uOTg4NzI5NWQ1ZGYyNmU0ZGY5ZWMyNTkyMjJkMTA2
MmJhZjU0M2NkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE5LTAzLTI5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW0ZldGNoIEFQSV0gQWxsb3cg
dXNlZCBib2R5IHJlcGxhY2VtZW50IGluIFJlcXVlc3QgY29uc3RydWN0b3IKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzcwMworICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNDk0MjU2MDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWxsb3cgdXNlZCBib2R5IHJlcGxhY2VtZW50IGluIFJlcXVlc3QgY29u
c3RydWN0b3IgYXMgcGVyOgorICAgICAgICAtIGh0dHBzOi8vZ2l0aHViLmNvbS93aGF0d2cvZmV0
Y2gvcHVsbC82NzUKKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlYmFzZWxpbmUgZXhpc3Rpbmcg
dGVzdC4KKworICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZldGNoUmVxdWVzdDo6aW5pdGlhbGl6ZVdpdGgpOgorCiAyMDE5LTAzLTI5
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgU3VwcG9ydCAibm9y
ZWZlcnJlciIgZm9yIHdpbmRvdy5vcGVuKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0
Y2gvRmV0Y2hSZXF1ZXN0LmNwcAppbmRleCA5ZjJlYjM2ZWVkNzllNWU4ZjhhMDYwMmI5OGMwOTA4
MDUzMzQzNGUzLi4zMGUwZDRkZmM5OTE3MjA3NGVjZmQ5MGVjMTI5NDdhZTEyN2E5M2M1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuY3BwCkBAIC0yMDMs
OSArMjAzLDYgQEAgRXhjZXB0aW9uT3I8dm9pZD4gRmV0Y2hSZXF1ZXN0Ojppbml0aWFsaXplV2l0
aChjb25zdCBTdHJpbmcmIHVybCwgSW5pdCYmIGluaXQpCiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IEZl
dGNoUmVxdWVzdDo6aW5pdGlhbGl6ZVdpdGgoRmV0Y2hSZXF1ZXN0JiBpbnB1dCwgSW5pdCYmIGlu
aXQpCiB7Ci0gICAgaWYgKGlucHV0LmlzRGlzdHVyYmVkT3JMb2NrZWQoKSkKLSAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7VHlwZUVycm9yLCAiUmVxdWVzdCBpbnB1dCBpcyBkaXN0dXJiZWQgb3Ig
bG9ja2VkLiJfcyB9OwotCiAgICAgbV9yZXF1ZXN0ID0gaW5wdXQubV9yZXF1ZXN0OwogICAgIG1f
b3B0aW9ucyA9IGlucHV0Lm1fb3B0aW9uczsKICAgICBtX3JlZmVycmVyID0gaW5wdXQubV9yZWZl
cnJlcjsKQEAgLTI0MCw2ICsyMzcsOSBAQCBFeGNlcHRpb25Pcjx2b2lkPiBGZXRjaFJlcXVlc3Q6
OmluaXRpYWxpemVXaXRoKEZldGNoUmVxdWVzdCYgaW5wdXQsIEluaXQmJiBpbml0KQogICAgICAg
ICBpZiAoc2V0Qm9keVJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBz
ZXRCb2R5UmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICB9IGVsc2UgeworICAgICAgICBp
ZiAoaW5wdXQuaXNEaXN0dXJiZWRPckxvY2tlZCgpKQorICAgICAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7VHlwZUVycm9yLCAiUmVxdWVzdCBpbnB1dCBpcyBkaXN0dXJiZWQgb3IgbG9ja2VkLiJf
cyB9OworCiAgICAgICAgIGF1dG8gc2V0Qm9keVJlc3VsdCA9IHNldEJvZHkoaW5wdXQpOwogICAg
ICAgICBpZiAoc2V0Qm9keVJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVy
biBzZXRCb2R5UmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nCmluZGV4IGNlYWFhMDQ1YTlhNDBhYWFlMjhhNzMwNTExZjk2ZDI1NjQ1ZTU5ZWYuLmI3
MDBlNWE5OTkwYWRmZDM0ZTRmODY1Y2FiODdiZmNiZWM1YWMwZjMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTAzLTI5ICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW0ZldGNoIEFQSV0gQWxsb3cgdXNlZCBib2R5
IHJlcGxhY2VtZW50IGluIFJlcXVlc3QgY29uc3RydWN0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzcwMworICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNDk0MjU2MDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmViYXNlbGluZSBXUFQgdGVzdCBub3cgdGhhdCBvbmUgbW9yZSBjaGVjayBpcyBwYXNz
aW5nLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3Jl
cXVlc3QtZGlzdHVyYmVkLWV4cGVjdGVkLnR4dDoKKwogMjAxOS0wMy0yOSAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFN1cHBvcnQgIm5vcmVmZXJyZXIiIGZvciB3
aW5kb3cub3BlbigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtZGlzdHVyYmVkLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3JlcXVlc3QvcmVxdWVzdC1kaXN0dXJiZWQtZXhwZWN0ZWQudHh0CmluZGV4IDViNTdkMGEy
Nzk0MTdkOThkZTRkN2MyMjhkMTRlMzlmODI1YWUzNjUuLmUzMmRjYjVlZDhkM2ZjMWUwNTQyZmVk
ZDk3N2E1NTY5MjkwZTNjNmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1kaXN0dXJiZWQtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1kaXN0dXJiZWQtZXhwZWN0ZWQudHh0CkBAIC0z
LDcgKzMsNyBAQCBQQVNTIFJlcXVlc3QncyBib2R5OiBpbml0aWFsIHN0YXRlCiBQQVNTIFJlcXVl
c3Qgd2l0aG91dCBib2R5IGNhbm5vdCBiZSBkaXN0dXJiZWQgCiBQQVNTIENoZWNrIGNsb25pbmcg
YSBkaXN0dXJiZWQgcmVxdWVzdCAKIFBBU1MgQ2hlY2sgY3JlYXRpbmcgYSBuZXcgcmVxdWVzdCBm
cm9tIGEgZGlzdHVyYmVkIHJlcXVlc3QgCi1GQUlMIENoZWNrIGNyZWF0aW5nIGEgbmV3IHJlcXVl
c3Qgd2l0aCBhIG5ldyBib2R5IGZyb20gYSBkaXN0dXJiZWQgcmVxdWVzdCBSZXF1ZXN0IGlucHV0
IGlzIGRpc3R1cmJlZCBvciBsb2NrZWQuCitQQVNTIENoZWNrIGNyZWF0aW5nIGEgbmV3IHJlcXVl
c3Qgd2l0aCBhIG5ldyBib2R5IGZyb20gYSBkaXN0dXJiZWQgcmVxdWVzdCAKIEZBSUwgSW5wdXQg
cmVxdWVzdCB1c2VkIGZvciBjcmVhdGluZyBuZXcgcmVxdWVzdCBiZWNhbWUgZGlzdHVyYmVkIGFz
c2VydF9lcXVhbHM6IGJvZHkgc2hvdWxkIG5vdCBjaGFuZ2UgZXhwZWN0ZWQgb2JqZWN0ICJbb2Jq
ZWN0IFJlYWRhYmxlU3RyZWFtXSIgYnV0IGdvdCBvYmplY3QgIltvYmplY3QgUmVhZGFibGVTdHJl
YW1dIgogRkFJTCBJbnB1dCByZXF1ZXN0IHVzZWQgZm9yIGNyZWF0aW5nIG5ldyByZXF1ZXN0IGJl
Y2FtZSBkaXN0dXJiZWQgZXZlbiBpZiBib2R5IGlzIG5vdCB1c2VkIGFzc2VydF90cnVlOiBib2R5
VXNlZCBpcyB0cnVlIHdoZW4gcmVxdWVzdCBpcyBkaXN0dXJiZWQgZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKIFBBU1MgQ2hlY2sgY29uc3VtaW5nIGEgZGlzdHVyYmVkIHJlcXVlc3QgCg==
</data>
<flag name="review"
          id="382705"
          type_id="1"
          status="+"
          setter="youennf"
    />
          </attachment>
      

    </bug>

</bugzilla>