Skip to content

Commit 4231155

Browse files
committed
Update various uses of api::Headers
1 parent abab93d commit 4231155

File tree

5 files changed

+31
-35
lines changed

5 files changed

+31
-35
lines changed

src/workerd/api/cache.c++

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -255,9 +255,9 @@ jsg::Promise<void> Cache::put(jsg::Lock& js,
255255
"Cannot cache response to a range request (206 Partial Content).");
256256

257257
auto responseHeadersRef = jsResponse->getHeaders(js);
258-
auto cacheControl = responseHeadersRef->getNoChecks(js, "cache-control"_kj);
258+
auto cacheControl = responseHeadersRef->getCommon(js, capnp::CommonHeaderName::CACHE_CONTROL);
259259

260-
KJ_IF_SOME(vary, responseHeadersRef->getNoChecks(js, "vary"_kj)) {
260+
KJ_IF_SOME(vary, responseHeadersRef->getCommon(js, capnp::CommonHeaderName::VARY)) {
261261
JSG_REQUIRE(vary.findFirst('*') == kj::none, TypeError,
262262
"Cannot cache response with 'Vary: *' header.");
263263
}

src/workerd/api/eventsource.c++

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -365,7 +365,7 @@ void EventSource::start(jsg::Lock& js) {
365365
// TODO(cleanup): Using jsg::ByteString here is really annoying. It would be nice to have
366366
// an internal alternative that doesn't require an allocation.
367367
KJ_IF_SOME(contentType,
368-
response->getHeaders(js)->get(js, jsg::ByteString(kj::str("content-type")))) {
368+
response->getHeaders(js)->getCommon(js, capnp::CommonHeaderName::CONTENT_TYPE)) {
369369
bool invalid = false;
370370
KJ_IF_SOME(parsed, MimeType::tryParse(contentType)) {
371371
invalid = parsed != MimeType::EVENT_STREAM;
@@ -421,12 +421,10 @@ void EventSource::start(jsg::Lock& js) {
421421
});
422422

423423
auto headers = js.alloc<Headers>();
424-
headers->set(
425-
js, jsg::ByteString(kj::str("accept")), jsg::ByteString(MimeType::EVENT_STREAM.essence()));
426-
headers->set(js, jsg::ByteString(kj::str("cache-control")), jsg::ByteString(kj::str("no-cache")));
424+
headers->setCommon(capnp::CommonHeaderName::ACCEPT, MimeType::EVENT_STREAM.essence());
425+
headers->setCommon(capnp::CommonHeaderName::CACHE_CONTROL, kj::str("no-cache"));
427426
if (lastEventId != ""_kjc) {
428-
headers->set(
429-
js, jsg::ByteString(kj::str("last-event-id")), jsg::ByteString(kj::str(lastEventId)));
427+
headers->setUnguarded(js, kj::str("last-event-id"), kj::str(lastEventId));
430428
}
431429

432430
fetchImpl(js, kj::mv(fetcher), kj::str(i.url),

src/workerd/api/html-rewriter.c++

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1245,7 +1245,8 @@ jsg::Ref<Response> HTMLRewriter::transform(jsg::Lock& js, jsg::Ref<Response> res
12451245

12461246
kj::String ownContentType;
12471247
kj::String encoding = kj::str("utf-8");
1248-
KJ_IF_SOME(contentType, response->getHeaders(js)->getNoChecks(js, "content-type"_kj)) {
1248+
KJ_IF_SOME(contentType,
1249+
response->getHeaders(js)->getCommon(js, capnp::CommonHeaderName::CONTENT_TYPE)) {
12491250
// TODO(cleanup): readContentTypeParameter can be replaced with using
12501251
// workerd/util/mimetype.h directly.
12511252
KJ_IF_SOME(charset, readContentTypeParameter(contentType, "charset")) {

src/workerd/api/http.c++

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -210,13 +210,12 @@ Body::ExtractedBody Body::extractBody(jsg::Lock& js, Initializer init) {
210210
}
211211

212212
Body::Body(jsg::Lock& js, kj::Maybe<ExtractedBody> init, Headers& headers)
213-
: impl(kj::mv(init).map([&headers, &js](auto i) -> Impl {
213+
: impl(kj::mv(init).map([&headers](auto i) -> Impl {
214214
KJ_IF_SOME(ct, i.contentType) {
215215
if (!headers.hasCommon(capnp::CommonHeaderName::CONTENT_TYPE)) {
216216
// The spec allows the user to override the Content-Type, if they wish, so we only set
217217
// the Content-Type if it doesn't already exist.
218-
headers.setCommon(
219-
js, capnp::CommonHeaderName::CONTENT_TYPE, jsg::ByteString(kj::mv(ct)));
218+
headers.setCommon(capnp::CommonHeaderName::CONTENT_TYPE, jsg::ByteString(kj::mv(ct)));
220219
} else if (MimeType::FORM_DATA == ct) {
221220
// Custom content-type request/responses with FormData are broken since they require a
222221
// boundary parameter only the FormData serializer can provide. Let's warn if a dev does this.
@@ -366,7 +365,7 @@ jsg::Promise<jsg::Value> Body::json(jsg::Lock& js) {
366365
jsg::Promise<jsg::Ref<Blob>> Body::blob(jsg::Lock& js) {
367366
return arrayBuffer(js).then(js, [this](jsg::Lock& js, jsg::BufferSource buffer) {
368367
kj::String contentType = headersRef.getCommon(js, capnp::CommonHeaderName::CONTENT_TYPE)
369-
.map([](jsg::ByteString&& b) -> kj::String {
368+
.map([](auto&& b) -> kj::String {
370369
return kj::mv(b);
371370
}).orDefault(nullptr);
372371

@@ -1044,8 +1043,7 @@ jsg::Ref<Response> Response::json_(
10441043

10451044
const auto maybeSetContentType = [](jsg::Lock& js, auto headers) {
10461045
if (!headers->hasCommon(capnp::CommonHeaderName::CONTENT_TYPE)) {
1047-
headers->setCommon(js, capnp::CommonHeaderName::CONTENT_TYPE,
1048-
jsg::ByteString(MimeType::JSON.toString()));
1046+
headers->setCommon(capnp::CommonHeaderName::CONTENT_TYPE, MimeType::JSON.toString());
10491047
}
10501048
return kj::mv(headers);
10511049
};
@@ -1701,7 +1699,7 @@ jsg::Promise<jsg::Ref<Response>> handleHttpRedirectResponse(jsg::Lock& js,
17011699
// <https://fetch.spec.whatwg.org/#http-redirect-fetch>
17021700
// (NB: "CORS non-wildcard request-header name" consists solely of "Authorization")
17031701

1704-
jsRequest->getHeaders(js)->delete_(jsg::ByteString(kj::str("authorization")));
1702+
jsRequest->getHeaders(js)->deleteCommon(capnp::CommonHeaderName::AUTHORIZATION);
17051703
}
17061704
}
17071705

@@ -1851,8 +1849,7 @@ jsg::Promise<jsg::Ref<Response>> fetchImplNoOutputLock(jsg::Lock& js,
18511849
}
18521850

18531851
auto headers = js.alloc<Headers>();
1854-
headers->setCommon(js, capnp::CommonHeaderName::CONTENT_TYPE,
1855-
jsg::ByteString(dataUrl.getMimeType().toString()));
1852+
headers->setCommon(capnp::CommonHeaderName::CONTENT_TYPE, dataUrl.getMimeType().toString());
18561853
return js.resolvedPromise(Response::constructor(js, kj::mv(maybeResponseBody),
18571854
Response::InitializerDict{
18581855
.status = 200,

src/workerd/api/r2-bucket.c++

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -425,7 +425,7 @@ void initGetOptions(TraceContext& traceContext, jsg::Lock& js, Builder& builder,
425425
}
426426

427427
KJ_CASE_ONEOF(h, jsg::Ref<Headers>) {
428-
KJ_IF_SOME(e, h->getNoChecks(js, "range"_kj)) {
428+
KJ_IF_SOME(e, h->getCommon(js, capnp::CommonHeaderName::RANGE)) {
429429
builder.setRangeHeader(kj::str(e));
430430
traceContext.userSpan.setTag("cloudflare.r2.request.range"_kjc, kj::str(e));
431431
}
@@ -1336,27 +1336,27 @@ kj::Array<R2Bucket::Etag> buildSingleEtagArray(kj::StringPtr etagValue) {
13361336

13371337
R2Bucket::UnwrappedConditional::UnwrappedConditional(jsg::Lock& js, Headers& h)
13381338
: secondsGranularity(true) {
1339-
KJ_IF_SOME(e, h.getNoChecks(js, "if-match"_kj)) {
1339+
KJ_IF_SOME(e, h.getCommon(js, capnp::CommonHeaderName::IF_MATCH)) {
13401340
etagMatches = parseConditionalEtagHeader(kj::str(e));
13411341
KJ_IF_SOME(arr, etagMatches) {
13421342
if (arr.size() == 0) {
13431343
JSG_FAIL_REQUIRE(Error, "Invalid ETag in if-match header");
13441344
}
13451345
}
13461346
}
1347-
KJ_IF_SOME(e, h.getNoChecks(js, "if-none-match"_kj)) {
1347+
KJ_IF_SOME(e, h.getCommon(js, capnp::CommonHeaderName::IF_NONE_MATCH)) {
13481348
etagDoesNotMatch = parseConditionalEtagHeader(kj::str(e));
13491349
KJ_IF_SOME(arr, etagDoesNotMatch) {
13501350
if (arr.size() == 0) {
13511351
JSG_FAIL_REQUIRE(Error, "Invalid ETag in if-none-match header");
13521352
}
13531353
}
13541354
}
1355-
KJ_IF_SOME(d, h.getNoChecks(js, "if-modified-since"_kj)) {
1355+
KJ_IF_SOME(d, h.getCommon(js, capnp::CommonHeaderName::IF_MODIFIED_SINCE)) {
13561356
auto date = parseDate(js, d);
13571357
uploadedAfter = date;
13581358
}
1359-
KJ_IF_SOME(d, h.getNoChecks(js, "if-unmodified-since"_kj)) {
1359+
KJ_IF_SOME(d, h.getCommon(js, capnp::CommonHeaderName::IF_UNMODIFIED_SINCE)) {
13601360
auto date = parseDate(js, d);
13611361
uploadedBefore = date;
13621362
}
@@ -1384,22 +1384,22 @@ R2Bucket::UnwrappedConditional::UnwrappedConditional(const Conditional& c)
13841384

13851385
R2Bucket::HttpMetadata R2Bucket::HttpMetadata::fromRequestHeaders(jsg::Lock& js, Headers& h) {
13861386
HttpMetadata result;
1387-
KJ_IF_SOME(ct, h.getNoChecks(js, "content-type")) {
1387+
KJ_IF_SOME(ct, h.getCommon(js, capnp::CommonHeaderName::CONTENT_TYPE)) {
13881388
result.contentType = kj::mv(ct);
13891389
}
1390-
KJ_IF_SOME(ce, h.getNoChecks(js, "content-encoding"_kj)) {
1390+
KJ_IF_SOME(ce, h.getCommon(js, capnp::CommonHeaderName::CONTENT_ENCODING)) {
13911391
result.contentEncoding = kj::mv(ce);
13921392
}
1393-
KJ_IF_SOME(cd, h.getNoChecks(js, "content-disposition"_kj)) {
1393+
KJ_IF_SOME(cd, h.getCommon(js, capnp::CommonHeaderName::CONTENT_DISPOSITION)) {
13941394
result.contentDisposition = kj::mv(cd);
13951395
}
1396-
KJ_IF_SOME(cl, h.getNoChecks(js, "content-language"_kj)) {
1396+
KJ_IF_SOME(cl, h.getCommon(js, capnp::CommonHeaderName::CONTENT_LANGUAGE)) {
13971397
result.contentLanguage = kj::mv(cl);
13981398
}
1399-
KJ_IF_SOME(cc, h.getNoChecks(js, "cache-control"_kj)) {
1399+
KJ_IF_SOME(cc, h.getCommon(js, capnp::CommonHeaderName::CACHE_CONTROL)) {
14001400
result.cacheControl = kj::mv(cc);
14011401
}
1402-
KJ_IF_SOME(ceStr, h.getNoChecks(js, "expires"_kj)) {
1402+
KJ_IF_SOME(ceStr, h.getCommon(js, capnp::CommonHeaderName::EXPIRES)) {
14031403
result.cacheExpiry = parseDate(js, ceStr);
14041404
}
14051405

@@ -1424,22 +1424,22 @@ void R2Bucket::HeadResult::writeHttpMetadata(jsg::Lock& js, Headers& headers) {
14241424
const auto& m = KJ_REQUIRE_NONNULL(httpMetadata);
14251425

14261426
KJ_IF_SOME(ct, m.contentType) {
1427-
headers.set(js, jsg::ByteString(kj::str("content-type")), jsg::ByteString(kj::str(ct)));
1427+
headers.setCommon(capnp::CommonHeaderName::CONTENT_TYPE, kj::str(ct));
14281428
}
14291429
KJ_IF_SOME(cl, m.contentLanguage) {
1430-
headers.set(js, jsg::ByteString(kj::str("content-language")), jsg::ByteString(kj::str(cl)));
1430+
headers.setCommon(capnp::CommonHeaderName::CONTENT_LANGUAGE, kj::str(cl));
14311431
}
14321432
KJ_IF_SOME(cd, m.contentDisposition) {
1433-
headers.set(js, jsg::ByteString(kj::str("content-disposition")), jsg::ByteString(kj::str(cd)));
1433+
headers.setCommon(capnp::CommonHeaderName::CONTENT_DISPOSITION, kj::str(cd));
14341434
}
14351435
KJ_IF_SOME(ce, m.contentEncoding) {
1436-
headers.set(js, jsg::ByteString(kj::str("content-encoding")), jsg::ByteString(kj::str(ce)));
1436+
headers.setCommon(capnp::CommonHeaderName::CONTENT_ENCODING, kj::str(ce));
14371437
}
14381438
KJ_IF_SOME(cc, m.cacheControl) {
1439-
headers.set(js, jsg::ByteString(kj::str("cache-control")), jsg::ByteString(kj::str(cc)));
1439+
headers.setCommon(capnp::CommonHeaderName::CACHE_CONTROL, kj::str(cc));
14401440
}
14411441
KJ_IF_SOME(ce, m.cacheExpiry) {
1442-
headers.set(js, jsg::ByteString(kj::str("expires")), toUTCString(js, ce));
1442+
headers.setCommon(capnp::CommonHeaderName::EXPIRES, toUTCString(js, ce));
14431443
}
14441444
}
14451445

0 commit comments

Comments
 (0)