| Index: Source/modules/fetch/Request.cpp
|
| diff --git a/Source/modules/fetch/Request.cpp b/Source/modules/fetch/Request.cpp
|
| index 97ce6fd3deec319ced9f9a1293ae92fbadbf2881..0f982a9a5fcda771e5f743ee54a6e69c0d52f8e6 100644
|
| --- a/Source/modules/fetch/Request.cpp
|
| +++ b/Source/modules/fetch/Request.cpp
|
| @@ -42,6 +42,7 @@ FetchRequestData* createCopyOfFetchRequestDataForFetch(ScriptState* scriptState,
|
| request->setMode(original->mode());
|
| request->setCredentials(original->credentials());
|
| request->setRedirect(original->redirect());
|
| + request->setIntegrity(original->integrity());
|
| // FIXME: Set cache mode.
|
| // TODO(yhirano): Set redirect mode.
|
| return request;
|
| @@ -159,8 +160,10 @@ Request* Request::createRequestWithRequestOrString(ScriptState* scriptState, Req
|
| // TODO(horo): "22. If |init|'s redirect member is present, set |request|'s
|
| // redirect mode to it."
|
|
|
| - // TODO(jww): "23. If |init|'s integrity member is present, set |request|'s
|
| + // "If |init|'s integrity member is present, set |request|'s
|
| // integrity metadata to it."
|
| + if (!init.integrity.isNull())
|
| + request->setIntegrity(init.integrity);
|
|
|
| // "24. If |init|'s method member is present, let |method| be it and run
|
| // these substeps:"
|
| @@ -201,7 +204,13 @@ Request* Request::createRequestWithRequestOrString(ScriptState* scriptState, Req
|
| exceptionState.throwTypeError("'" + r->request()->method() + "' is unsupported in no-cors mode.");
|
| return nullptr;
|
| }
|
| - // "Set |r|'s Headers object's guard to |request-no-CORS|.
|
| + // "2. If |request|'s integrity metadata is not the empty string, throw
|
| + // a TypeError."
|
| + if (!request->integrity().isEmpty()) {
|
| + exceptionState.throwTypeError("The integrity attribute is unsupported in no-cors mode.");
|
| + return nullptr;
|
| + }
|
| + // "3. Set |r|'s Headers object's guard to |request-no-CORS|.
|
| r->headers()->setGuard(Headers::RequestNoCORSGuard);
|
| }
|
| // "30. Fill |r|'s Headers object with |headers|. Rethrow any exceptions."
|
| @@ -479,6 +488,11 @@ String Request::redirect() const
|
| return "";
|
| }
|
|
|
| +String Request::integrity() const
|
| +{
|
| + return m_request->integrity();
|
| +}
|
| +
|
| Request* Request::clone(ExceptionState& exceptionState)
|
| {
|
| if (bodyUsed()) {
|
|
|