Re: [whatwg/fetch] Regression: make Request constructor account for changes to fill (#484)

How is this change supposed to be tested? Are we basically interested in making sure that creating a `Request` with a `Headers` object has the same behavior as if we use a sequence or record instead?

In other words,

```js
const headers = [
  ["X-fOo", "BAZ"],
  ["X-FOO", "bar"],
  ["SomeHeader", "quux"]
];
fetch("....", {"headers": headers})
```

will send a request with `X-fOo: BAZ, bar` and `SomeHeader: quux` among its headers, and so will

```js
let r = new Request("....");
r.headers.append("X-fOo", "BAZ");
r.headers.append("X-FOO", "bar");
r.headers.append("SomeHeader", "quux");
fetch(r)
```

which would, before this PR, actually be expected to send `someheader: quux` and `x-foo: baz, bar`, and `someheader` would always show up before `x-foo`.

If that's the case, I can get the expected behavior in Blink and WebKit (WebKitGTK+ 2.18), but Gecko (Firefox Nightly) always sends `x-foo: bar` (dropping "BAZ" altogether). WebKit and Blink always seem to do a case-insensitive sort in the headers set above before sending them though, while Gecko doesn't, but I guess that's not an issue.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/whatwg/fetch/pull/484#issuecomment-334759826

Received on Friday, 6 October 2017 13:48:23 UTC