Bug 1614359 - Remove explicit initialization from Headers in Headers constructor. r=Ehsan

The Web IDL type for HeadersInit didn't match the definition in http://fetch.spec.whatwg.org/#headers-class.
The headers-basic tests makes it clear that this difference is observable.

Differential Revision: https://phabricator.services.mozilla.com/D62489

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Tom Schuster 2020-02-11 22:25:58 +00:00
Родитель bcdb4a30ed
Коммит 9121200eb8
4 изменённых файлов: 12 добавлений и 25 удалений

Просмотреть файл

@ -25,8 +25,8 @@ NS_INTERFACE_MAP_END
// static
already_AddRefed<Headers> Headers::Constructor(
const GlobalObject& aGlobal,
const Optional<
HeadersOrByteStringSequenceSequenceOrByteStringByteStringRecord>& aInit,
const Optional<ByteStringSequenceSequenceOrByteStringByteStringRecord>&
aInit,
ErrorResult& aRv) {
RefPtr<InternalHeaders> ih = new InternalHeaders();
RefPtr<Headers> headers = new Headers(aGlobal.GetAsSupports(), ih);
@ -35,9 +35,7 @@ already_AddRefed<Headers> Headers::Constructor(
return headers.forget();
}
if (aInit.Value().IsHeaders()) {
ih->Fill(*aInit.Value().GetAsHeaders().mInternalHeaders, aRv);
} else if (aInit.Value().IsByteStringSequenceSequence()) {
if (aInit.Value().IsByteStringSequenceSequence()) {
ih->Fill(aInit.Value().GetAsByteStringSequenceSequence(), aRv);
} else if (aInit.Value().IsByteStringByteStringRecord()) {
ih->Fill(aInit.Value().GetAsByteStringByteStringRecord(), aRv);
@ -53,8 +51,7 @@ already_AddRefed<Headers> Headers::Constructor(
// static
already_AddRefed<Headers> Headers::Constructor(
const GlobalObject& aGlobal,
const OwningHeadersOrByteStringSequenceSequenceOrByteStringByteStringRecord&
aInit,
const OwningByteStringSequenceSequenceOrByteStringByteStringRecord& aInit,
ErrorResult& aRv) {
nsCOMPtr<nsIGlobalObject> global = do_QueryInterface(aGlobal.GetAsSupports());
return Create(global, aInit, aRv);
@ -63,15 +60,12 @@ already_AddRefed<Headers> Headers::Constructor(
/* static */
already_AddRefed<Headers> Headers::Create(
nsIGlobalObject* aGlobal,
const OwningHeadersOrByteStringSequenceSequenceOrByteStringByteStringRecord&
aInit,
const OwningByteStringSequenceSequenceOrByteStringByteStringRecord& aInit,
ErrorResult& aRv) {
RefPtr<InternalHeaders> ih = new InternalHeaders();
RefPtr<Headers> headers = new Headers(aGlobal, ih);
if (aInit.IsHeaders()) {
ih->Fill(*(aInit.GetAsHeaders().get()->mInternalHeaders), aRv);
} else if (aInit.IsByteStringSequenceSequence()) {
if (aInit.IsByteStringSequenceSequence()) {
ih->Fill(aInit.GetAsByteStringSequenceSequence(), aRv);
} else if (aInit.IsByteStringByteStringRecord()) {
ih->Fill(aInit.GetAsByteStringByteStringRecord(), aRv);

Просмотреть файл

@ -22,8 +22,8 @@ namespace dom {
template <typename K, typename V>
class Record;
class HeadersOrByteStringSequenceSequenceOrByteStringByteStringRecord;
class OwningHeadersOrByteStringSequenceSequenceOrByteStringByteStringRecord;
class ByteStringSequenceSequenceOrByteStringByteStringRecord;
class OwningByteStringSequenceSequenceOrByteStringByteStringRecord;
/**
* This Headers class is only used to represent the content facing Headers
@ -53,21 +53,18 @@ class Headers final : public nsISupports, public nsWrapperCache {
static already_AddRefed<Headers> Constructor(
const GlobalObject& aGlobal,
const Optional<
HeadersOrByteStringSequenceSequenceOrByteStringByteStringRecord>&
const Optional<ByteStringSequenceSequenceOrByteStringByteStringRecord>&
aInit,
ErrorResult& aRv);
static already_AddRefed<Headers> Constructor(
const GlobalObject& aGlobal,
const OwningHeadersOrByteStringSequenceSequenceOrByteStringByteStringRecord&
aInit,
const OwningByteStringSequenceSequenceOrByteStringByteStringRecord& aInit,
ErrorResult& aRv);
static already_AddRefed<Headers> Create(
nsIGlobalObject* aGlobalObject,
const OwningHeadersOrByteStringSequenceSequenceOrByteStringByteStringRecord&
aInit,
const OwningByteStringSequenceSequenceOrByteStringByteStringRecord& aInit,
ErrorResult& aRv);
void Append(const nsACString& aName, const nsACString& aValue,

Просмотреть файл

@ -8,7 +8,7 @@
* http://fetch.spec.whatwg.org/#headers-class
*/
typedef (Headers or sequence<sequence<ByteString>> or record<ByteString, ByteString>) HeadersInit;
typedef (sequence<sequence<ByteString>> or record<ByteString, ByteString>) HeadersInit;
enum HeadersGuardEnum {
"none",

Просмотреть файл

@ -1,4 +0,0 @@
[headers-basic.html]
[Create headers with existing headers with custom iterator]
expected: FAIL