Skip to content

fix: join multiple Cookie header values with '; ' instead of ',' (#521) - #536

Merged
brianquinlan merged 1 commit into
dart-lang:masterfrom
Yusufihsangorgel:fix/cookie-header-join
Jul 20, 2026
Merged

fix: join multiple Cookie header values with '; ' instead of ',' (#521)#536
brianquinlan merged 1 commit into
dart-lang:masterfrom
Yusufihsangorgel:fix/cookie-header-join

Conversation

@Yusufihsangorgel

@Yusufihsangorgel Yusufihsangorgel commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Fixes #521.

When a message carries multiple Cookie header values, the single-value
headers map joins them with a comma:

final request = Request('GET', Uri.parse('http://localhost/'), headers: {
  'Cookie': ['session=123', 'theme=dark'],
});
print(request.headers['cookie']); // session=123,theme=dark

The cookie-string grammar of RFC 6265 separates cookie-pairs with ; and
does not allow commas, so the joined value is unparseable by servers and
middleware that read request.headers['cookie']. This also happens on the
real server path: dart:io delivers repeated Cookie lines as separate
list entries, which shelf_io passes through to headersAll, and the
headers view then comma-joins them.

The joining happens in joinHeaderValues in lib/src/util.dart, which
uses , unconditionally. Comma is correct for every header except
Cookie; RFC 9113 section 8.2.3 specifies that split cookie fields must
be recombined with the two-octet delimiter ; .

This change gives joinHeaderValues an optional name parameter and uses
; when the name is cookie (case-insensitive). Headers.singleValues
and findHeader pass the header name through. The two remaining call
sites in message.dart join content-type and transfer-encoding and
are unchanged. headersAll is unaffected.

After the change the example above prints session=123; theme=dark, and
the same is true end to end for a request sent over a socket with two
Cookie lines.

Added a test in message_test.dart next to the existing multi-value
header test; it fails with session=123,theme=dark before the fix. The
existing "headers with multiple values" test guards that non-cookie
headers still join with a comma. The full pkgs/shelf suite passes
(231 tests), and dart analyze and dart format are clean.

@google-cla

google-cla Bot commented Jul 14, 2026

Copy link
Copy Markdown

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the header joining logic to join multiple 'Cookie' request-header values with '; ' instead of ',' in the single-value headers map, adhering to RFC 6265 section 5.4. This is implemented by passing the header name to joinHeaderValues and conditionally using '; ' as the separator when the header name is 'cookie'. A unit test has been added to verify this behavior. There are no review comments, so I have no feedback to provide.

@kevmoo
kevmoo requested a review from brianquinlan July 14, 2026 17:09
@kevmoo

kevmoo commented Jul 14, 2026

Copy link
Copy Markdown
Member

I see tests! I see changelog entries! Amazing! Thank you! Will wait for a "real engineer" to review - @brianquinlan

@Yusufihsangorgel

Copy link
Copy Markdown
Contributor Author

Thanks, Kevin — appreciate it. Happy to address anything that comes up in Brian's review.

});
});

test('multiple cookie header values are joined with "; "', () {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Per https://datatracker.ietf.org/doc/html/rfc6265#section-4.1.1 must literal semicolons in cookie-value be replaced with %3B

Is that escaping done at another level?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes — that escaping (when it happens at all) is done by whoever writes the cookie, not at this layer. RFC 6265 doesn't actually mandate %3B or any specific escape: the cookie-octet grammar in §4.1.1 excludes ; entirely, and its guidance for servers that want to store such data is that they "SHOULD encode that data, for example, using Base64" at Set-Cookie time. The user agent sends the encoded form back untouched, so in a conforming request ; only ever appears between cookie-pairs (cookie-string = cookie-pair *( ";" SP cookie-pair ), section 4.2.1), which is what keeps the RFC 9113 section 8.2.3 recombination this PR performs unambiguous. shelf keeps treating the values as opaque strings and adds or removes no encoding, same as before this change. A raw ; inside a value would already be indistinguishable from a pair boundary within a single Cookie line, so the join doesn't create a new case.

@brianquinlan brianquinlan left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you very much for the PR!

@brianquinlan
brianquinlan merged commit e9c742d into dart-lang:master Jul 20, 2026
25 checks passed
@Yusufihsangorgel

Copy link
Copy Markdown
Contributor Author

Thanks for the review and the merge, Brian.

copybara-service Bot pushed a commit to dart-lang/sdk that referenced this pull request Jul 29, 2026
Hold back `dart-lang/http` which has deprecations that break CI.

Revisions updated by `dart tools/rev_sdk_deps.dart`.

core (https://github.com/dart-lang/core/compare/25926e8..fe516ee):
  fe516ee1  Mon Jul 27 20:19:16 2026 +0200  Moritz  Consolidate no-response workflow into no_response.yml (dart-lang/core#982)
  2deeeade  Mon Jul 27 18:05:47 2026 +0530  Abhishak Kumar Malviya  fix: async cache storing exception fixed (dart-lang/core#548)
  bed8f40e  Fri Jul 24 11:29:13 2026 -0700  Nate Bosch  Add `value` getter to `Result` (dart-lang/core#969)

dartdoc (https://github.com/dart-lang/dartdoc/compare/1d56f26..c771ad2):
  c771ad2a  Tue Jul 7 12:36:55 2026 +0200  Sarah Zakarias  bump to 9.0.8 (dart-lang/dartdoc#4270)
  38d079a2  Tue Jul 7 12:09:52 2026 +0200  Sigurd Meldgaard  Fix RangeError when stripping doc-imports from files with CRLF line endings (dart-lang/dartdoc#4268)
  794a1d38  Mon Jul 6 13:48:14 2026 +0200  Sarah Zakarias  bump to 9.0.7 (dart-lang/dartdoc#4269)
  b9c94739  Mon Jul 6 13:29:28 2026 +0200  Sarah Zakarias  Add interactive copy-to-clipboard button to code snippets (dart-lang/dartdoc#4267)
  9831db9b  Fri Jul 3 11:44:06 2026 +0200  Sarah Zakarias  Add support and styling for custom <callout-box> HTML tags (dart-lang/dartdoc#4264)
  f52f910f  Wed Jul 1 18:55:26 2026 +0000  dependabot[bot]  Bump the github-actions group with 3 updates (dart-lang/dartdoc#4265)
  36b1aebc  Wed Jul 1 12:14:01 2026 +0200  Sarah Zakarias  Bump to 9.0.6 (dart-lang/dartdoc#4263)

ecosystem (https://github.com/dart-lang/ecosystem/compare/848b3bf..edfdb3b):
  edfdb3b  Thu Jul 23 17:27:43 2026 +0200  Moritz  Add want-lgtm reusable workflow (dart-lang/ecosystem#432)
  a6c8ef0  Thu Jul 23 14:29:53 2026 +0200  Moritz  Validate target PR number and comment ownership in post_summaries workflow (dart-lang/ecosystem#434)
  80a9928  Thu Jul 23 13:49:48 2026 +0200  Moritz  Fix canary workflow (dart-lang/ecosystem#433)
  910d668  Wed Jul 15 18:04:05 2026 +0200  Moritz  Pass GITHUB_TOKEN to firehose:comment steps in workflows (dart-lang/ecosystem#431)
  980c6df  Sat Jul 11 00:20:55 2026 +0200  Moritz  Fix `-WIP` ending detection (dart-lang/ecosystem#430)
  60c0f67  Wed Jul 8 20:38:35 2026 +0200  Moritz  Run `pub get` before `dart format` in groundskeeper (dart-lang/ecosystem#429)
  bcef699  Tue Jul 7 10:17:24 2026 +0200  Moritz  Fix `groundskeeper` workflow (dart-lang/ecosystem#428)
  77def11  Fri Jul 3 11:43:12 2026 +0200  Moritz  Simplify groundskeeper (dart-lang/ecosystem#426)
  3dd606a  Wed Jul 1 18:19:25 2026 +0000  dependabot[bot]  Bump the github-actions group with 3 updates (dart-lang/ecosystem#427)
  d6ec975  Wed Jul 1 14:41:23 2026 +0200  Moritz  Add changelog updater (dart-lang/ecosystem#424)
  f8a4fbb  Wed Jul 1 10:00:59 2026 +0200  Moritz  Add `Groundskeeper` workflow (dart-lang/ecosystem#425)

i18n (https://github.com/dart-lang/i18n/compare/d0683bd..e1b5a79):
  e1b5a798  Tue Jul 14 13:10:29 2026 +0200  Moritz  Add weekday API (dart-lang/i18n#1071)
  04b78e38  Thu Jul 9 14:16:22 2026 +0200  Moritz  Add stale workflow (dart-lang/i18n#1069)
  01e20101  Thu Jul 9 13:42:08 2026 +0200  Moritz  Add stale workflow
  03efda51  Thu Jul 9 13:19:31 2026 +0200  Moritz  Update ICU4X (dart-lang/i18n#1068)
  4d8a1b39  Tue Jul 7 11:23:06 2026 +0200  Moritz  feat(intl4x): add locale.dart entrypoint exposing only Locale (dart-lang/i18n#1067)
  b2b7ce08  Mon Jul 6 03:23:28 2026 -0700  Copybara-Service  Merge pull request `#1038` from donny-dont:patch-1
  cca1dc44  Mon Jul 6 03:10:59 2026 -0700  Copybara-Service  Merge pull request `#1040` from suxoikorm:main
  28352851  Mon Jul 6 02:40:25 2026 -0700  Copybara-Service  Merge pull request `#1062` from AbdeMohlbi:issue_116
  9f8e7998  Mon Jul 6 02:16:05 2026 -0700  Copybara-Service  Merge pull request `#1050` from LaijieJi:patch-1
  be8e2c0d  Fri Jul 3 14:50:28 2026 +0200  Moritz  Merge branch 'main' into issue_116
  8b119830  Fri Jul 3 14:33:33 2026 +0200  Moritz  Merge branch 'main' into patch-1
  96aab97a  Fri Jul 3 14:30:55 2026 +0200  Moritz  Merge branch 'main' into main
  9e700b2a  Thu Jul 2 09:37:45 2026 +0200  Moritz  Merge branch 'main' into patch-1
  a6f174b8  Wed Jul 1 08:32:07 2026 -0700  Googler  No public description
  fb1feb18  Wed Jul 1 08:32:33 2026 -0700  Copybara-Service  Merge pull request `#1058` from dart-lang:upgrade_analyzer
  77926a26  Thu May 7 20:52:55 2026 +0100  abdessalem  gemini has a point
  c2f96cba  Thu May 7 20:45:40 2026 +0100  abdessalem  revert the formating changes
  ebb0a441  Thu May 7 20:41:40 2026 +0100  abdessalem  update select documentation to clarify other fallback behavior and when `ArgumentError` is thrown
  b13c2d48  Mon Mar 9 10:35:50 2026 +0100  Moritz  Merge branch 'main' into patch-1
  6581675f  Mon Feb 9 09:13:25 2026 +0100  Laijie  Fix typo in number_format.dart documentation
  69d1e6a6  Thu Jan 29 15:25:06 2026 +0400  Luka Katsadze  Merge branch 'main' into main
  55a61fa6  Fri Dec 19 15:51:58 2025 -0800  Don Olmstead  Escape text direction code points
  a140f2ef  Mon Dec 29 21:42:09 2025 +0400  Luka Katsadze  fix: correct formatting of Georgian Lari symbol entry in changelog
  76a370c5  Mon Dec 29 21:34:35 2025 +0400  Luka Katsadze  chore: update changelog
  9df0c191  Mon Dec 29 21:31:39 2025 +0400  Luka Katsadze  feat: add georgian lari symbol support

shelf (https://github.com/dart-lang/shelf/compare/71248e7..6918a76):
  6918a76  Mon Jul 20 18:45:56 2026 -0700  Kevin Moore  feat(compliance): add GitHub Actions Job Summary to test runs (dart-lang/shelf#527)
  e9c742d  Mon Jul 20 20:28:03 2026 +0300  Yusuf İhsan Görgel  fix: join multiple Cookie header values with '; ' instead of ',' (`#521`) (dart-lang/shelf#536)
  833433e  Mon Jul 6 16:59:42 2026 -0700  Kevin Moore  chore: standardize min SDK to ^3.9.0 and unify lints
  7af986e  Wed Jul 1 12:27:06 2026 +0000  dependabot[bot]  Bump the github-actions group with 2 updates (dart-lang/shelf#535)

test (https://github.com/dart-lang/test/compare/bd92e63..5fcd6f4):
  5fcd6f40  Thu Jul 23 16:01:06 2026 -0700  Nate Bosch  Remove unnecessary remote debugging flag (dart-lang/test#2705)
  72d6dfcc  Thu Jul 23 14:02:30 2026 -0700  Nate Bosch  Launch browsers with redirecting files (dart-lang/test#2703)
  8ab38846  Thu Jul 23 13:50:10 2026 -0700  Nate Bosch  Disable more backgrounding features on chromium (dart-lang/test#2680)
  d835f706  Wed Jul 22 16:30:46 2026 -0700  Nate Bosch  Only print debug URL when debugging (dart-lang/test#2702)
  9abe202a  Tue Jul 21 11:56:41 2026 -0700  Nate Bosch  Ignore dart2js output for successful compiles (dart-lang/test#2701)
  ce557ba1  Mon Jul 20 16:25:56 2026 -0700  Nate Bosch  Group messages with passing tests (dart-lang/test#2699)
  d79747cd  Fri Jul 17 13:10:12 2026 -0700  Jacob MacDonald  Make workflow files more secure (dart-lang/test#2698)
  91ca13f0  Wed Jul 8 14:17:45 2026 -0700  Nate Bosch  Support DART_TEST_REPORTER environment variable (dart-lang/test#2692)
  dcb06ac7  Wed Jul 1 03:50:42 2026 +0000  dependabot[bot]  Bump the github-actions group with 3 updates (dart-lang/test#2689)

tools (https://github.com/dart-lang/tools/compare/3f850c4..01f45d8):
  01f45d85  Thu Jul 23 16:49:10 2026 -0700  Nate Bosch  [glob] Limit expansion during option flattening (dart-lang/tools#2477)
  acc91d65  Thu Jul 23 16:00:59 2026 -0700  Kevin Moore  Add tests for PoolResource and close, and fix allowRelease leak (dart-lang/tools#2368)
  0e54bd66  Thu Jul 23 15:25:22 2026 -0700  Nate Bosch  Parse hosted URLs as URLs (dart-lang/tools#2476)
  7e124963  Wed Jul 22 15:01:34 2026 -0700  Sam Rawlins  Markdown: optimize email regex (dart-lang/tools#2474)
  906d9d4e  Wed Jul 22 13:25:24 2026 -0700  Sam Rawlins  Markdown: More tag filter tests (dart-lang/tools#2473)
  588fbad4  Wed Jul 22 10:54:42 2026 -0700  Sam Rawlins  Expand HTML filter regexp to include more characters that would denote an HTML tag (dart-lang/tools#2472)
  e4f20cc7  Wed Jul 22 09:33:59 2026 -0700  Sam Rawlins  Respect enableTagfilter when inlineOnly is passed (dart-lang/tools#2471)
  c4082344  Wed Jul 22 07:41:06 2026 -0700  Jacob MacDonald  add legend to multiselect dialogs (dart-lang/tools#2470)
  a2ecf08f  Thu Jul 16 09:30:49 2026 -0700  Jacob MacDonald  add an event type for events coming from package:skills (dart-lang/tools#2468)
  6a85977a  Mon Jul 13 10:12:17 2026 -0700  Kevin Moore  [api_summary] Support latest analyzer version (dart-lang/tools#2460)
  58b0fd0a  Mon Jul 13 11:01:18 2026 +0200  Moritz  Add no-response workflow (dart-lang/tools#2459)
  dc9ef3a9  Wed Jul 8 17:03:20 2026 -0700  Kevin Moore  chore(html): use MIT license header instead of BSD (dart-lang/tools#2458)

web (https://github.com/dart-lang/web/compare/eb8c3fc..12a9ca2):
  12a9ca2  Sun Jul 19 19:27:25 2026 -0700  Kevin Moore  test(js_interop_gen): reformat integration test goldens for dart_style 3.1.12 (dart-lang/web#565)
  6b5e93a  Wed Jul 1 06:55:34 2026 +0000  dependabot[bot]  Bump actions/checkout from 6.0.2 to 7.0.0 in the github-actions group (dart-lang/web#563)
  b8f47ab  Tue Jun 30 16:50:11 2026 -0700  Kevin Moore  [chore] Improve notice about updating the js_type_supertypes.dart (dart-lang/web#562)

Change-Id: I18fe6d51ce221bb7985b57711089e6b9651b2637
Tested:Package roll
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/523862
Auto-Submit: Nate Bosch <nbosch@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
Reviewed-by: Daco Harkes <dacoharkes@google.com>
Commit-Queue: Nate Bosch <nbosch@google.com>
copybara-service Bot pushed a commit to dart-lang/sdk that referenced this pull request Jul 30, 2026
…, web"

This reverts commit 2610f35.

Reason for revert: Failures during Dart -> Flutter rolls

```
+0 -1: test smoke test -- this test SHOULD FAIL [E]

  Expected: true
    Actual: <false>


  package:matcher/src/expect/expect.dart 187:31          fail
  package:matcher/src/expect/expect.dart 182:3           _expect
  package:matcher/src/expect/expect.dart 65:3            expect
  flutter/testing/smoke_test_failure/fail_test.dart 9:5  main.<fn>
  package:test_api/src/backend/declarer.dart 253:25      Declarer.test.<fn>.<fn>
  ===== asynchronous gap ===========================
  package:test_api/src/backend/declarer.dart 250:11      Declarer.test.<fn>
  ===== asynchronous gap ===========================
  package:test_api/src/backend/invoker.dart 318:9        Invoker._waitForOutstandingCallbacks.<fn>
```

Failure Link: https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8674893380073937889/+/u/test:_Host_Tests_for_host_debug__2_/stdout

Also, wide-spread timeouts on Dart CI: #63923

Original change's description:
> [deps] rev core, dartdoc, ecosystem, i18n, shelf, test, tools, web
>
> Hold back `dart-lang/http` which has deprecations that break CI.
>
> Revisions updated by `dart tools/rev_sdk_deps.dart`.
>
> core (https://github.com/dart-lang/core/compare/25926e8..fe516ee):
>   fe516ee1  Mon Jul 27 20:19:16 2026 +0200  Moritz  Consolidate no-response workflow into no_response.yml (dart-lang/core#982)
>   2deeeade  Mon Jul 27 18:05:47 2026 +0530  Abhishak Kumar Malviya  fix: async cache storing exception fixed (dart-lang/core#548)
>   bed8f40e  Fri Jul 24 11:29:13 2026 -0700  Nate Bosch  Add `value` getter to `Result` (dart-lang/core#969)
>
> dartdoc (https://github.com/dart-lang/dartdoc/compare/1d56f26..c771ad2):
>   c771ad2a  Tue Jul 7 12:36:55 2026 +0200  Sarah Zakarias  bump to 9.0.8 (dart-lang/dartdoc#4270)
>   38d079a2  Tue Jul 7 12:09:52 2026 +0200  Sigurd Meldgaard  Fix RangeError when stripping doc-imports from files with CRLF line endings (dart-lang/dartdoc#4268)
>   794a1d38  Mon Jul 6 13:48:14 2026 +0200  Sarah Zakarias  bump to 9.0.7 (dart-lang/dartdoc#4269)
>   b9c94739  Mon Jul 6 13:29:28 2026 +0200  Sarah Zakarias  Add interactive copy-to-clipboard button to code snippets (dart-lang/dartdoc#4267)
>   9831db9b  Fri Jul 3 11:44:06 2026 +0200  Sarah Zakarias  Add support and styling for custom <callout-box> HTML tags (dart-lang/dartdoc#4264)
>   f52f910f  Wed Jul 1 18:55:26 2026 +0000  dependabot[bot]  Bump the github-actions group with 3 updates (dart-lang/dartdoc#4265)
>   36b1aebc  Wed Jul 1 12:14:01 2026 +0200  Sarah Zakarias  Bump to 9.0.6 (dart-lang/dartdoc#4263)
>
> ecosystem (https://github.com/dart-lang/ecosystem/compare/848b3bf..edfdb3b):
>   edfdb3b  Thu Jul 23 17:27:43 2026 +0200  Moritz  Add want-lgtm reusable workflow (dart-lang/ecosystem#432)
>   a6c8ef0  Thu Jul 23 14:29:53 2026 +0200  Moritz  Validate target PR number and comment ownership in post_summaries workflow (dart-lang/ecosystem#434)
>   80a9928  Thu Jul 23 13:49:48 2026 +0200  Moritz  Fix canary workflow (dart-lang/ecosystem#433)
>   910d668  Wed Jul 15 18:04:05 2026 +0200  Moritz  Pass GITHUB_TOKEN to firehose:comment steps in workflows (dart-lang/ecosystem#431)
>   980c6df  Sat Jul 11 00:20:55 2026 +0200  Moritz  Fix `-WIP` ending detection (dart-lang/ecosystem#430)
>   60c0f67  Wed Jul 8 20:38:35 2026 +0200  Moritz  Run `pub get` before `dart format` in groundskeeper (dart-lang/ecosystem#429)
>   bcef699  Tue Jul 7 10:17:24 2026 +0200  Moritz  Fix `groundskeeper` workflow (dart-lang/ecosystem#428)
>   77def11  Fri Jul 3 11:43:12 2026 +0200  Moritz  Simplify groundskeeper (dart-lang/ecosystem#426)
>   3dd606a  Wed Jul 1 18:19:25 2026 +0000  dependabot[bot]  Bump the github-actions group with 3 updates (dart-lang/ecosystem#427)
>   d6ec975  Wed Jul 1 14:41:23 2026 +0200  Moritz  Add changelog updater (dart-lang/ecosystem#424)
>   f8a4fbb  Wed Jul 1 10:00:59 2026 +0200  Moritz  Add `Groundskeeper` workflow (dart-lang/ecosystem#425)
>
> i18n (https://github.com/dart-lang/i18n/compare/d0683bd..e1b5a79):
>   e1b5a798  Tue Jul 14 13:10:29 2026 +0200  Moritz  Add weekday API (dart-lang/i18n#1071)
>   04b78e38  Thu Jul 9 14:16:22 2026 +0200  Moritz  Add stale workflow (dart-lang/i18n#1069)
>   01e20101  Thu Jul 9 13:42:08 2026 +0200  Moritz  Add stale workflow
>   03efda51  Thu Jul 9 13:19:31 2026 +0200  Moritz  Update ICU4X (dart-lang/i18n#1068)
>   4d8a1b39  Tue Jul 7 11:23:06 2026 +0200  Moritz  feat(intl4x): add locale.dart entrypoint exposing only Locale (dart-lang/i18n#1067)
>   b2b7ce08  Mon Jul 6 03:23:28 2026 -0700  Copybara-Service  Merge pull request `#1038` from donny-dont:patch-1
>   cca1dc44  Mon Jul 6 03:10:59 2026 -0700  Copybara-Service  Merge pull request `#1040` from suxoikorm:main
>   28352851  Mon Jul 6 02:40:25 2026 -0700  Copybara-Service  Merge pull request `#1062` from AbdeMohlbi:issue_116
>   9f8e7998  Mon Jul 6 02:16:05 2026 -0700  Copybara-Service  Merge pull request `#1050` from LaijieJi:patch-1
>   be8e2c0d  Fri Jul 3 14:50:28 2026 +0200  Moritz  Merge branch 'main' into issue_116
>   8b119830  Fri Jul 3 14:33:33 2026 +0200  Moritz  Merge branch 'main' into patch-1
>   96aab97a  Fri Jul 3 14:30:55 2026 +0200  Moritz  Merge branch 'main' into main
>   9e700b2a  Thu Jul 2 09:37:45 2026 +0200  Moritz  Merge branch 'main' into patch-1
>   a6f174b8  Wed Jul 1 08:32:07 2026 -0700  Googler  No public description
>   fb1feb18  Wed Jul 1 08:32:33 2026 -0700  Copybara-Service  Merge pull request `#1058` from dart-lang:upgrade_analyzer
>   77926a26  Thu May 7 20:52:55 2026 +0100  abdessalem  gemini has a point
>   c2f96cba  Thu May 7 20:45:40 2026 +0100  abdessalem  revert the formating changes
>   ebb0a441  Thu May 7 20:41:40 2026 +0100  abdessalem  update select documentation to clarify other fallback behavior and when `ArgumentError` is thrown
>   b13c2d48  Mon Mar 9 10:35:50 2026 +0100  Moritz  Merge branch 'main' into patch-1
>   6581675f  Mon Feb 9 09:13:25 2026 +0100  Laijie  Fix typo in number_format.dart documentation
>   69d1e6a6  Thu Jan 29 15:25:06 2026 +0400  Luka Katsadze  Merge branch 'main' into main
>   55a61fa6  Fri Dec 19 15:51:58 2025 -0800  Don Olmstead  Escape text direction code points
>   a140f2ef  Mon Dec 29 21:42:09 2025 +0400  Luka Katsadze  fix: correct formatting of Georgian Lari symbol entry in changelog
>   76a370c5  Mon Dec 29 21:34:35 2025 +0400  Luka Katsadze  chore: update changelog
>   9df0c191  Mon Dec 29 21:31:39 2025 +0400  Luka Katsadze  feat: add georgian lari symbol support
>
> shelf (https://github.com/dart-lang/shelf/compare/71248e7..6918a76):
>   6918a76  Mon Jul 20 18:45:56 2026 -0700  Kevin Moore  feat(compliance): add GitHub Actions Job Summary to test runs (dart-lang/shelf#527)
>   e9c742d  Mon Jul 20 20:28:03 2026 +0300  Yusuf İhsan Görgel  fix: join multiple Cookie header values with '; ' instead of ',' (`#521`) (dart-lang/shelf#536)
>   833433e  Mon Jul 6 16:59:42 2026 -0700  Kevin Moore  chore: standardize min SDK to ^3.9.0 and unify lints
>   7af986e  Wed Jul 1 12:27:06 2026 +0000  dependabot[bot]  Bump the github-actions group with 2 updates (dart-lang/shelf#535)
>
> test (https://github.com/dart-lang/test/compare/bd92e63..5fcd6f4):
>   5fcd6f40  Thu Jul 23 16:01:06 2026 -0700  Nate Bosch  Remove unnecessary remote debugging flag (dart-lang/test#2705)
>   72d6dfcc  Thu Jul 23 14:02:30 2026 -0700  Nate Bosch  Launch browsers with redirecting files (dart-lang/test#2703)
>   8ab38846  Thu Jul 23 13:50:10 2026 -0700  Nate Bosch  Disable more backgrounding features on chromium (dart-lang/test#2680)
>   d835f706  Wed Jul 22 16:30:46 2026 -0700  Nate Bosch  Only print debug URL when debugging (dart-lang/test#2702)
>   9abe202a  Tue Jul 21 11:56:41 2026 -0700  Nate Bosch  Ignore dart2js output for successful compiles (dart-lang/test#2701)
>   ce557ba1  Mon Jul 20 16:25:56 2026 -0700  Nate Bosch  Group messages with passing tests (dart-lang/test#2699)
>   d79747cd  Fri Jul 17 13:10:12 2026 -0700  Jacob MacDonald  Make workflow files more secure (dart-lang/test#2698)
>   91ca13f0  Wed Jul 8 14:17:45 2026 -0700  Nate Bosch  Support DART_TEST_REPORTER environment variable (dart-lang/test#2692)
>   dcb06ac7  Wed Jul 1 03:50:42 2026 +0000  dependabot[bot]  Bump the github-actions group with 3 updates (dart-lang/test#2689)
>
> tools (https://github.com/dart-lang/tools/compare/3f850c4..01f45d8):
>   01f45d85  Thu Jul 23 16:49:10 2026 -0700  Nate Bosch  [glob] Limit expansion during option flattening (dart-lang/tools#2477)
>   acc91d65  Thu Jul 23 16:00:59 2026 -0700  Kevin Moore  Add tests for PoolResource and close, and fix allowRelease leak (dart-lang/tools#2368)
>   0e54bd66  Thu Jul 23 15:25:22 2026 -0700  Nate Bosch  Parse hosted URLs as URLs (dart-lang/tools#2476)
>   7e124963  Wed Jul 22 15:01:34 2026 -0700  Sam Rawlins  Markdown: optimize email regex (dart-lang/tools#2474)
>   906d9d4e  Wed Jul 22 13:25:24 2026 -0700  Sam Rawlins  Markdown: More tag filter tests (dart-lang/tools#2473)
>   588fbad4  Wed Jul 22 10:54:42 2026 -0700  Sam Rawlins  Expand HTML filter regexp to include more characters that would denote an HTML tag (dart-lang/tools#2472)
>   e4f20cc7  Wed Jul 22 09:33:59 2026 -0700  Sam Rawlins  Respect enableTagfilter when inlineOnly is passed (dart-lang/tools#2471)
>   c4082344  Wed Jul 22 07:41:06 2026 -0700  Jacob MacDonald  add legend to multiselect dialogs (dart-lang/tools#2470)
>   a2ecf08f  Thu Jul 16 09:30:49 2026 -0700  Jacob MacDonald  add an event type for events coming from package:skills (dart-lang/tools#2468)
>   6a85977a  Mon Jul 13 10:12:17 2026 -0700  Kevin Moore  [api_summary] Support latest analyzer version (dart-lang/tools#2460)
>   58b0fd0a  Mon Jul 13 11:01:18 2026 +0200  Moritz  Add no-response workflow (dart-lang/tools#2459)
>   dc9ef3a9  Wed Jul 8 17:03:20 2026 -0700  Kevin Moore  chore(html): use MIT license header instead of BSD (dart-lang/tools#2458)
>
> web (https://github.com/dart-lang/web/compare/eb8c3fc..12a9ca2):
>   12a9ca2  Sun Jul 19 19:27:25 2026 -0700  Kevin Moore  test(js_interop_gen): reformat integration test goldens for dart_style 3.1.12 (dart-lang/web#565)
>   6b5e93a  Wed Jul 1 06:55:34 2026 +0000  dependabot[bot]  Bump actions/checkout from 6.0.2 to 7.0.0 in the github-actions group (dart-lang/web#563)
>   b8f47ab  Tue Jun 30 16:50:11 2026 -0700  Kevin Moore  [chore] Improve notice about updating the js_type_supertypes.dart (dart-lang/web#562)
>
> Change-Id: I18fe6d51ce221bb7985b57711089e6b9651b2637
> Tested:Package roll
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/523862
> Auto-Submit: Nate Bosch <nbosch@google.com>
> Reviewed-by: Ben Konyi <bkonyi@google.com>
> Reviewed-by: Daco Harkes <dacoharkes@google.com>
> Commit-Queue: Nate Bosch <nbosch@google.com>

TEST=ci
Change-Id: I0b07e7fe893a6bf78832c5d3d114f33080ab66e8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/529340
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Daco Harkes <dacoharkes@google.com>
copybara-service Bot pushed a commit to dart-lang/sdk that referenced this pull request Jul 30, 2026
Revisions updated by `dart tools/rev_sdk_deps.dart`.

Rolls a subset of the packages which were rolled and reverted in
https://dart-review.googlesource.com/c/sdk/+/529340

`test` is held back due to triggering a VM issue with some flutter
engine tests.

`dartdoc` is being rolled in
https://dart-review.googlesource.com/c/sdk/+/529460

As was the case with the reverted CL, `http` is being rolled in
https://dart-review.googlesource.com/c/sdk/+/524264

core (https://github.com/dart-lang/core/compare/25926e8..fe516ee):
  fe516ee1  Mon Jul 27 20:19:16 2026 +0200  Moritz  Consolidate no-response workflow into no_response.yml (dart-lang/core#982)
  2deeeade  Mon Jul 27 18:05:47 2026 +0530  Abhishak Kumar Malviya  fix: async cache storing exception fixed (dart-lang/core#548)
  bed8f40e  Fri Jul 24 11:29:13 2026 -0700  Nate Bosch  Add `value` getter to `Result` (dart-lang/core#969)

ecosystem (https://github.com/dart-lang/ecosystem/compare/848b3bf..edfdb3b):
  edfdb3b  Thu Jul 23 17:27:43 2026 +0200  Moritz  Add want-lgtm reusable workflow (dart-lang/ecosystem#432)
  a6c8ef0  Thu Jul 23 14:29:53 2026 +0200  Moritz  Validate target PR number and comment ownership in post_summaries workflow (dart-lang/ecosystem#434)
  80a9928  Thu Jul 23 13:49:48 2026 +0200  Moritz  Fix canary workflow (dart-lang/ecosystem#433)
  910d668  Wed Jul 15 18:04:05 2026 +0200  Moritz  Pass GITHUB_TOKEN to firehose:comment steps in workflows (dart-lang/ecosystem#431)
  980c6df  Sat Jul 11 00:20:55 2026 +0200  Moritz  Fix `-WIP` ending detection (dart-lang/ecosystem#430)
  60c0f67  Wed Jul 8 20:38:35 2026 +0200  Moritz  Run `pub get` before `dart format` in groundskeeper (dart-lang/ecosystem#429)
  bcef699  Tue Jul 7 10:17:24 2026 +0200  Moritz  Fix `groundskeeper` workflow (dart-lang/ecosystem#428)
  77def11  Fri Jul 3 11:43:12 2026 +0200  Moritz  Simplify groundskeeper (dart-lang/ecosystem#426)
  3dd606a  Wed Jul 1 18:19:25 2026 +0000  dependabot[bot]  Bump the github-actions group with 3 updates (dart-lang/ecosystem#427)
  d6ec975  Wed Jul 1 14:41:23 2026 +0200  Moritz  Add changelog updater (dart-lang/ecosystem#424)
  f8a4fbb  Wed Jul 1 10:00:59 2026 +0200  Moritz  Add `Groundskeeper` workflow (dart-lang/ecosystem#425)

i18n (https://github.com/dart-lang/i18n/compare/d0683bd..e1b5a79):
  e1b5a798  Tue Jul 14 13:10:29 2026 +0200  Moritz  Add weekday API (dart-lang/i18n#1071)
  04b78e38  Thu Jul 9 14:16:22 2026 +0200  Moritz  Add stale workflow (dart-lang/i18n#1069)
  01e20101  Thu Jul 9 13:42:08 2026 +0200  Moritz  Add stale workflow
  03efda51  Thu Jul 9 13:19:31 2026 +0200  Moritz  Update ICU4X (dart-lang/i18n#1068)
  4d8a1b39  Tue Jul 7 11:23:06 2026 +0200  Moritz  feat(intl4x): add locale.dart entrypoint exposing only Locale (dart-lang/i18n#1067)
  b2b7ce08  Mon Jul 6 03:23:28 2026 -0700  Copybara-Service  Merge pull request `#1038` from donny-dont:patch-1
  cca1dc44  Mon Jul 6 03:10:59 2026 -0700  Copybara-Service  Merge pull request `#1040` from suxoikorm:main
  28352851  Mon Jul 6 02:40:25 2026 -0700  Copybara-Service  Merge pull request `#1062` from AbdeMohlbi:issue_116
  9f8e7998  Mon Jul 6 02:16:05 2026 -0700  Copybara-Service  Merge pull request `#1050` from LaijieJi:patch-1
  be8e2c0d  Fri Jul 3 14:50:28 2026 +0200  Moritz  Merge branch 'main' into issue_116
  8b119830  Fri Jul 3 14:33:33 2026 +0200  Moritz  Merge branch 'main' into patch-1
  96aab97a  Fri Jul 3 14:30:55 2026 +0200  Moritz  Merge branch 'main' into main
  9e700b2a  Thu Jul 2 09:37:45 2026 +0200  Moritz  Merge branch 'main' into patch-1
  a6f174b8  Wed Jul 1 08:32:07 2026 -0700  Googler  No public description
  fb1feb18  Wed Jul 1 08:32:33 2026 -0700  Copybara-Service  Merge pull request `#1058` from dart-lang:upgrade_analyzer
  77926a26  Thu May 7 20:52:55 2026 +0100  abdessalem  gemini has a point
  c2f96cba  Thu May 7 20:45:40 2026 +0100  abdessalem  revert the formating changes
  ebb0a441  Thu May 7 20:41:40 2026 +0100  abdessalem  update select documentation to clarify other fallback behavior and when `ArgumentError` is thrown
  b13c2d48  Mon Mar 9 10:35:50 2026 +0100  Moritz  Merge branch 'main' into patch-1
  6581675f  Mon Feb 9 09:13:25 2026 +0100  Laijie  Fix typo in number_format.dart documentation
  69d1e6a6  Thu Jan 29 15:25:06 2026 +0400  Luka Katsadze  Merge branch 'main' into main
  55a61fa6  Fri Dec 19 15:51:58 2025 -0800  Don Olmstead  Escape text direction code points
  a140f2ef  Mon Dec 29 21:42:09 2025 +0400  Luka Katsadze  fix: correct formatting of Georgian Lari symbol entry in changelog
  76a370c5  Mon Dec 29 21:34:35 2025 +0400  Luka Katsadze  chore: update changelog
  9df0c191  Mon Dec 29 21:31:39 2025 +0400  Luka Katsadze  feat: add georgian lari symbol support

shelf (https://github.com/dart-lang/shelf/compare/71248e7..6918a76):
  6918a76  Mon Jul 20 18:45:56 2026 -0700  Kevin Moore  feat(compliance): add GitHub Actions Job Summary to test runs (dart-lang/shelf#527)
  e9c742d  Mon Jul 20 20:28:03 2026 +0300  Yusuf İhsan Görgel  fix: join multiple Cookie header values with '; ' instead of ',' (`#521`) (dart-lang/shelf#536)
  833433e  Mon Jul 6 16:59:42 2026 -0700  Kevin Moore  chore: standardize min SDK to ^3.9.0 and unify lints
  7af986e  Wed Jul 1 12:27:06 2026 +0000  dependabot[bot]  Bump the github-actions group with 2 updates (dart-lang/shelf#535)

tools (https://github.com/dart-lang/tools/compare/3f850c4..b827a6e):
  b827a6e3  Wed Jul 29 10:18:52 2026 -0700  Nate Bosch  Use -- to separate chrome URLs (dart-lang/tools#2475)
  0fc3b0e7  Wed Jul 29 10:02:32 2026 -0700  Sam Rawlins  markdown: escape alt text in images (dart-lang/tools#2478)
  01f45d85  Thu Jul 23 16:49:10 2026 -0700  Nate Bosch  [glob] Limit expansion during option flattening (dart-lang/tools#2477)
  acc91d65  Thu Jul 23 16:00:59 2026 -0700  Kevin Moore  Add tests for PoolResource and close, and fix allowRelease leak (dart-lang/tools#2368)
  0e54bd66  Thu Jul 23 15:25:22 2026 -0700  Nate Bosch  Parse hosted URLs as URLs (dart-lang/tools#2476)
  7e124963  Wed Jul 22 15:01:34 2026 -0700  Sam Rawlins  Markdown: optimize email regex (dart-lang/tools#2474)
  906d9d4e  Wed Jul 22 13:25:24 2026 -0700  Sam Rawlins  Markdown: More tag filter tests (dart-lang/tools#2473)
  588fbad4  Wed Jul 22 10:54:42 2026 -0700  Sam Rawlins  Expand HTML filter regexp to include more characters that would denote an HTML tag (dart-lang/tools#2472)
  e4f20cc7  Wed Jul 22 09:33:59 2026 -0700  Sam Rawlins  Respect enableTagfilter when inlineOnly is passed (dart-lang/tools#2471)
  c4082344  Wed Jul 22 07:41:06 2026 -0700  Jacob MacDonald  add legend to multiselect dialogs (dart-lang/tools#2470)
  a2ecf08f  Thu Jul 16 09:30:49 2026 -0700  Jacob MacDonald  add an event type for events coming from package:skills (dart-lang/tools#2468)
  6a85977a  Mon Jul 13 10:12:17 2026 -0700  Kevin Moore  [api_summary] Support latest analyzer version (dart-lang/tools#2460)
  58b0fd0a  Mon Jul 13 11:01:18 2026 +0200  Moritz  Add no-response workflow (dart-lang/tools#2459)
  dc9ef3a9  Wed Jul 8 17:03:20 2026 -0700  Kevin Moore  chore(html): use MIT license header instead of BSD (dart-lang/tools#2458)

web (https://github.com/dart-lang/web/compare/eb8c3fc..12a9ca2):
  12a9ca2  Sun Jul 19 19:27:25 2026 -0700  Kevin Moore  test(js_interop_gen): reformat integration test goldens for dart_style 3.1.12 (dart-lang/web#565)
  6b5e93a  Wed Jul 1 06:55:34 2026 +0000  dependabot[bot]  Bump actions/checkout from 6.0.2 to 7.0.0 in the github-actions group (dart-lang/web#563)
  b8f47ab  Tue Jun 30 16:50:11 2026 -0700  Kevin Moore  [chore] Improve notice about updating the js_type_supertypes.dart (dart-lang/web#562)

R=alexmarkov@google.com

Change-Id: I410cb87fd72a63e4deacaad61206fbbdf6937f5f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/529520
Commit-Queue: Nate Bosch <nbosch@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Request.headers incorrectly joins multiple Cookie headers with a comma instead of a semicolon

3 participants