Commit Graph

1207 Commits

Author SHA1 Message Date
Martin Kustermann e50a59d2f2 [gardening] Add stdout/stderr from subprocess if subprocess failed and makes test fail
Locally this test doesn't seem to fail though it did so on a nightly builder.
If the test fails again we'll have more information on what goes wrong.

TEST=Adding more information to test.

Change-Id: Id5ca71d42322c813ba3cfd56e9dfe335160e2e7b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/196497
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Tess Strickland <sstrickl@google.com>
2021-04-23 10:23:31 +00:00
Xiao Yu d968304570 Reland "Revert commits part of #40548 which still has some design debates and breaks valid local network http traffic"
This is a reland of d84f359786

Original change's description:
> Revert commits part of #40548 which still has some design debates and breaks valid local network http traffic
>
> Bug: https://github.com/flutter/flutter/issues/72723
> Change-Id: Ib5f809fccf1fad69add441fd40c463da8dc8be36
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/192953
> Auto-Submit: Xiao Yu <xster@google.com>
> Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
> Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
> Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>

Bug: https://github.com/flutter/flutter/issues/72723
Change-Id: I466d888b3f324a996f0bef0463e7ab3df3179c56
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/195485
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Commit-Queue: Xiao Yu <xster@google.com>
2021-04-16 20:25:36 +00:00
Xiao Yu f560d90059 Revert "Revert commits part of #40548 which still has some design debates and breaks valid local network http traffic"
This reverts commit d84f359786.

Reason for revert: removed some private looking but actually vm-entrypoints used by Flutter engine https://buganizer.corp.google.com/issues/185462669

Original change's description:
> Revert commits part of #40548 which still has some design debates and breaks valid local network http traffic
>
> Bug: https://github.com/flutter/flutter/issues/72723
> Change-Id: Ib5f809fccf1fad69add441fd40c463da8dc8be36
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/192953
> Auto-Submit: Xiao Yu <xster@google.com>
> Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
> Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
> Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>

TBR=lrn@google.com,vegorov@google.com,xster@google.com

Change-Id: Ie746805ab7ef214bc4ba6f3582eb1d32672360ee
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: https://github.com/flutter/flutter/issues/72723
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/195484
Reviewed-by: Xiao Yu <xster@google.com>
Commit-Queue: Xiao Yu <xster@google.com>
2021-04-15 15:29:28 +00:00
Xiao Yu d84f359786 Revert commits part of #40548 which still has some design debates and breaks valid local network http traffic
Bug: https://github.com/flutter/flutter/issues/72723
Change-Id: Ib5f809fccf1fad69add441fd40c463da8dc8be36
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/192953
Auto-Submit: Xiao Yu <xster@google.com>
Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
2021-04-15 09:25:17 +00:00
Alexander Aprelev bddded13aa [io/lookup] Ensure public type InternetAddress is used in lookup methods.
Use of private _InternetAddress class in method declarations results
in errors when user attempts to for example provide timeout handler.

Fixes https://github.com/dart-lang/sdk/issues/45542

Change-Id: Ied83479d7ce6319d0a82985c667ad29ef58cf6de
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/193720
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Alexander Aprelev <aam@google.com>
2021-03-31 19:43:42 +00:00
Ben Konyi c4bfca9b6a [ dart:io / package:vm_service ] Add HTTP request profiling service
extensions

This change adds HTTP request profiling support to the dart:io service
extensions and removes HTTP request/response body logging to the
timeline due to memory constraints.

Fixes https://github.com/dart-lang/sdk/issues/44950

TEST=pkg/vm_service/test/get_http_profile_test.dart

Change-Id: I85642296c3d6595197f3365022477c7685c452bf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/189881
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Kenzie Schmoll <kenzieschmoll@google.com>
2021-03-24 23:01:03 +00:00
Alexander Aprelev f5432d7164 [io/http] Relax http parsing constraints around CRLF.
https://tools.ietf.org/html/rfc2616\#section-19.3 advises to
allow CR*LF wherever CRLF line terminator is expected.

Issue https://github.com/dart-lang/sdk/issues/43916

TEST=http_client_parser_crlf_tolerant_test, http_100_continue_test

Change-Id: I8c6d263bdb950b2f3992b69921eff0ee75704c10
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/192120
Commit-Queue: Alexander Aprelev <aam@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
2021-03-20 03:11:28 +00:00
Martin Kustermann 5c78cc8e9a [vm] Update standalone/io/large_file_read_small_file_test for windows ia32
Seemingly Windows ia32 doesn't allow large file reads sometimes, so
we'll shrink the 10 MB buffer used in a test to 1 MB and use 10 times
as many buffers.

Issue b/178993708
Issue https://github.com/dart-lang/sdk/issues/44846

TEST=standalone{,_2}/io/large_file_read_small_file_test

Change-Id: Ie3b52517c6a8561c1ba4ec1039441bf1ad899569
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/183695
Reviewed-by: Tess Strickland <sstrickl@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2021-02-26 15:47:47 +00:00
Martin Kustermann e74b2391ed [gardening] Fix test to pass along VM arguments to subprocess
If the test runs in AOT mode the executable is
`dart_precompiled_runtime` and the script is the AOT snapshot.

If the AOT snapshot was compiled with `--enable-assert` then the
subprocess has to be launched with the same flag.

TEST=Fixes current test failure in dartkp-weak-asserts-mac-release-simarm64 mode.

Change-Id: I69a17f9a355f8729e9047f98c920a5c7c2480293
Fixed: 3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/187920
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2021-02-26 13:49:47 +00:00
Alexander Aprelev 86de80224d [vm/io/ssl] Add OtherResources to the https_connection_closed_during_handshake_test so it works on precomp bots.
Fixes https://github.com/dart-lang/sdk/issues/45056

Change-Id: I4e373693aa483007abbf14df419b2a3edad76282
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/185901
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Alexander Aprelev <aam@google.com>
2021-02-20 00:15:05 +00:00
Alexander Aprelev c051bdb43a [vm/io/ssl] Update test so it forces exception when server disconnect during handshake.
This is follow-up to https://dart.googlesource.com/sdk/+/c1677553d1ef529ecdbc1caba877ae2ab5e35bd4.

Fixes https://github.com/dart-lang/sdk/issues/45049

Change-Id: I9d66ae003897131ecb911fd68a8b30496f90ec24
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/185720
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Alexander Aprelev <aam@google.com>
2021-02-19 17:33:24 +00:00
Alexander Aprelev c1677553d1 [build] Update boringssl to 1607f54fed72c6589d560254626909a64124f091
Bug: https://github.com/dart-lang/sdk/issues/41061
Change-Id: I6a02cd3ba42030bf88646e89664515c04234fdb4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/185487
Reviewed-by: Zach Anderson <zra@google.com>
Commit-Queue: Alexander Aprelev <aam@google.com>
2021-02-18 23:57:20 +00:00
Lasse R.H. Nielsen 9cbed61204 Fix type bug in dart:io HTTP client code.
This would have been caught if the static type had not
been made `Future<dynamic>`.

Fixes #44895

BUG= http://dartbug.com/44895
TEST= standalone/io/regress_44895

Change-Id: I237c552fdb42943b395352a7232b34ab5488ac6b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184261
Reviewed-by: Nate Bosch <nbosch@google.com>
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
2021-02-10 18:00:11 +00:00
Martin Kustermann c3def74ffe [vm/io] Shrink buffers using realloc() if actual used data is small
Issue b/178993708

TEST=standalone{,_2}/io/large_file_read_small_file_test

Change-Id: I3c6f09f4f79f6dd1150db2918cefed3587e34012
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/182268
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2021-02-02 20:04:22 +00:00
asiva 35b31654ed [VM / Tests] Fix tests to use '-verbosity=warning'
Fix tests to use '--verbosity=warning' so they don't produce
extraneous output.

Fixes https://github.com/dart-lang/sdk/issues/44738

TEST=Updating tests

Change-Id: I5a02dca2efabd392ba690a4b13aa0dc4ba25dedb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/181360
Commit-Queue: Siva Annamalai <asiva@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2021-01-27 19:06:39 +00:00
Alexander Aprelev 6b3abe0a98 [vm/concurrency] Add --experimental_enable_isolate_groups_jit flag, make --enable_isolate_groups AOT only.
Issue b/177800357.

TEST=existing test suite
Change-Id: Id6b113932ab7014b8fa6c105845c5c490b60f5e8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/181320
Commit-Queue: Alexander Aprelev <aam@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2021-01-27 17:11:29 +00:00
Alexander Aprelev eccff3bc4d [io/http] Fix http_parser_header_add_test so it doesn't depend on external web server.
This is follow-up to https://dart.googlesource.com/sdk/+/60bea3003de2ea030a1970924d5af7b4a53f3a72.

Issue: https://github.com/dart-lang/sdk/issues/44756

Change-Id: I3c76fe0d15e4aba26540a95c63ccba8480dc8315
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/180722
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Alexander Aprelev <aam@google.com>
2021-01-23 06:07:21 +00:00
Alexander Aprelev 60bea3003d Reland "[tests] rewrite and format several tests on http"
This reverts commit af4330d382, relands original e35120cfd14ed09302596e9fa20d8e845e8e2668(in patchset 1) with fixes for the tests(in subsequent patchsets).

Change-Id: I025022d242a75ad94b3616ff78aef28b7b5f372b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/180603
Commit-Queue: Alexander Aprelev <aam@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
2021-01-22 23:49:17 +00:00
Alexander Aprelev ee37fff58c [io/http] Have http parser reply with error if Content-Length and Transfer-Encoding are both specified on http request.
Issue b/150476984

Change-Id: Iafc7154c84682678e4d7e3d614b74942b0d259b1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/180485
Commit-Queue: Alexander Aprelev <aam@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
2021-01-22 18:32:43 +00:00
jonahwilliams d4d3e3698c [dart:io] ensure Process.start throws with a stack trace
Change-Id: I8b5d585b10752a873632b3a7b9447214e2d38954
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/179640
Reviewed-by: Alexander Aprelev <aam@google.com>
Reviewed-by: Zach Anderson <zra@google.com>
Commit-Queue: Jonah Williams <jonahwilliams@google.com>
2021-01-16 01:36:02 +00:00
Nate Bosch 58e7e7eb26 Prepare for breaking change in package:http
The `url` argument is changing from `Object`, accepting either `String`
or `Uri` at runtime, to `Uri` for better static help.
https://github.com/dart-lang/http/pull/507

- Switch to using `Uri` for requests. Where sensible push this type into
  the signature of the surrounding method.
- Make some updated method private where they were unnecessarily public
  which makes it harder to have confidence when looking for usages.
  Rename a method with an unnecessary `get` name.

Change-Id: Ibf075741d6b9d292349b15f1dc84004981729aca
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/179368
Auto-Submit: Nate Bosch <nbosch@google.com>
Commit-Queue: Jake Macdonald <jakemac@google.com>
Reviewed-by: Jake Macdonald <jakemac@google.com>
2021-01-15 16:35:01 +00:00
Lasse R.H. Nielsen ef8cc2c1cf Remove LateInitializationError.
As per planned breaking change to let platforms decide how they and what throw for late initiaization errors,
we no longer need a public `LateInitializationError` class. It's confusing to have one if some platforms throw
something else instead.

Removes the public abstract class. The dart:_internal implementation class `LateError` no longer implements it.
This is the only implementation of the public interface, and the class which platforms either throw directly,
or through front-end lowering of the feature.

Remove mentions in tests. All tests now just expect `Error`, some platform specific tests might test the message.

TEST=rewrote tests referring to LateInitializationError.

Change-Id: I54344a67f89ce101ed770412db134e12354cdcc4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174928
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Nate Bosch <nbosch@google.com>
2021-01-12 20:21:33 +00:00
Alexander Aprelev a173599f4c [io/lookup] On iOS run both ipv6- and ipv4-lookup concurrently.
On iOS name resolution can take unexpectedly long because it waits for both ipv4 and ipv6 results and in some cases ipv6 lookup can take long. This CL runs explicit ipv4 and ipv6 concurrently and picks up first successfully resolved name it can connect to.

Fixes https://github.com/dart-lang/sdk/issues/41451

TEST=standalone/io/http_force_concurrent_ipv6_lookup_test

Change-Id: Ie9b7ca0493d945e2eeb8de1dec7bbacdeb902785
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/177560
Commit-Queue: Alexander Aprelev <aam@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
2021-01-11 17:07:26 +00:00
Lasse R.H. Nielsen b62ad8247f Switch order of socket tests to avoid timing issue.
Also fix one more place where ??= was appropriate.

Bug: https://github.com/dart-lang/sdk/issues/44414
Change-Id: I323bd0b82a1070a7e1341bee3a917564af45cafa
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175360
Reviewed-by: Aske Simon Christensen <askesc@google.com>
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
2020-12-09 16:19:00 +00:00
Alexander Aprelev e2e1c63fcd [io/ssl/mac] Move boringssl ssl data structures manipulation out of certificate evaluator.
Boringssl data structures are not neccessary thread-safe, so should not be handled on certificate evaluator that runs asynchronously. That leaves only (potentially long-running) SecTrust call to be done by certificate evaluator.

Fixes https://github.com/flutter/flutter/issues/70800.

TEST=io/https_connection_closed_during_handshake_test.dart

Change-Id: I6f77f1efc9ec83c50e6bcc551c0f63d6465c763e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174340
Commit-Queue: Alexander Aprelev <aam@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
2020-12-02 02:29:57 +00:00
Martin Kustermann 4084271488 [vm] Fix tests/standalone_2/io/shared_socket_test - avoid relying on tcp port 1234 always to be free
The tests/standalone_2/io/shared_socket_test test was assuming it can
always bind to port 1234. This is generally not the case. Due to using
two different `// VMOptions=` this test is made into two tests which run
close to each other, often making one of them fail.

Change-Id: I047396bc3f53626c429c1e5464bd071ae6a01a30
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174621
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2020-12-01 19:54:18 +00:00
Martin Kustermann 22f1b7b88e [gardening] Add two more needed resources for standalone/io/test_extension_fail_test.dart
Also fix another test that was missing // OtherResources= annotations

When reproducing the failures, one has to remember to `rm -rf out/Release/generated_*`

Closes https://github.com/dart-lang/sdk/issues/44204

Change-Id: If838a5fcdf56bcb094ba2ca211163c3b5007a3c3
Fixed: 24
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/171943
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Liam Appelbe <liama@google.com>
2020-11-14 10:30:27 +00:00
Martin Kustermann 838fe41428 [gardening] Add missing helper files to make test pass in appjit mode
In app-jit mode the Platform.script is in a different place. The test
needs files next to it in order to run.

Change-Id: Icc05287c6cba37fcdc9f8cd54edefb3657a0084c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/171887
Reviewed-by: Aske Simon Christensen <askesc@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2020-11-13 12:04:29 +00:00
Alexander Markov fc317794dd [test] Fix standalone/io/windows_environment_test for NNBD
This test launches Dart sub-process and should pass VM options like
--enable-experiment=non-nullable and --sound-null-safety, otherwise
sub-process will try to run migrated Dart code without appropriate
flags.

Also, fix NNBD compile-time error in
tests/standalone/io/windows_environment_script.dart

Change-Id: I5bc0bf4ba32a3933c236c1a2f04cea3d7a1fa31a
Fixed: 1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/167722
Reviewed-by: Régis Crelier <regis@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2020-10-15 18:32:40 +00:00
Alexander Aprelev 340f78eab3 [vm/io] Add a test for nonblocking ssl certification evaluation.
This is follow-up to a6dafabb88.

Fixes https://github.com/dart-lang/sdk/issues/43674

Change-Id: I4da732ab08235a1f549d45c7fa5fb87db672e2aa
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/166701
Commit-Queue: Alexander Aprelev <aam@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
2020-10-12 15:06:52 +00:00
Alexander Aprelev 48e5cba6b9 Reland "Enable long path on Windows"
This reverts commit f8fbefd951 in patchset 1 with fixes to the way how temporary strings are allocated and the way how prefixed string is returned in successive patchsets.

Fixes https://github.com/dart-lang/sdk/issues/42416

Change-Id: Idb801cb117fc2d84fad4c533f5239d8499afc943
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/164741
Commit-Queue: Alexander Aprelev <aam@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
2020-10-02 00:54:46 +00:00
Filip Hracek 7e7c01e804 Follow HTTP 308 redirects
Fixes https://github.com/dart-lang/sdk/issues/43548.

Bug: 43548
Change-Id: Ifd07941f4ae3ef9c9874c1be4254a2fe3c15ae2c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/165404
Reviewed-by: Ben Konyi <bkonyi@google.com>
2020-10-01 14:02:40 +00:00
Ben Konyi 2b1105d2fe [ dart:io ] Fix socket_connect_consume_write_close_test
The socket connection was being closed prematurely as the SocketServer
was not holding onto a reference to the connected socket. This was
previously fine since the network profiling implementation held on to a
reference within dart:io.

Fixes https://github.com/dart-lang/sdk/issues/43515

Change-Id: If85e0d63beb8299a9fbe86986c3d33a9c1bbb222
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/163901
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2020-09-22 16:36:43 +00:00
Ben Konyi 621aed6a49 [ VM ] Fix raw_datagram_socket_test
The removal of old socket profiling code caused a socket to be GCed when
it wasn't before, causing a no-rebind test to fail.

Fixes https://github.com/dart-lang/sdk/issues/43507

Change-Id: Id613789948fc6f80d05bcfedb7e08112690495d4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/163701
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2020-09-21 17:52:39 +00:00
Mehmet Fidanboylu ae0fbde71c [dart:io] Enable insecure connection ban for HttpClient.
We are reverting socket level checks at https://dart-review.googlesource.com/c/sdk/+/161581.

Instead, we are moving the checks to upper protocols
such as http and grpc.

Change-Id: Ice1a6bf818810f59937c19b48f5a68bb512c018d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/161801
Commit-Queue: Mehmet Fidanboylu <mehmetf@google.com>
Reviewed-by: Jonas Termansen <sortie@google.com>
2020-09-10 17:42:29 +00:00
Zichang Guo f8fbefd951 Revert "Enable long path on Windows"
This reverts commit 08662f0575.

Reason for revert: failure on pkg-win-release, https://dart-ci.appspot.com/log/pkg-win-release/unittest-asserts-release-win/12878/pkg/dartdev/test/commands/test_test

Original change's description:
> Enable long path on Windows
> 
> File APIs on Windows can now handle files and directories identified by
> long paths (greater than 260 characters). For directory, the limit is
> 248.
> 
> Some restrictions from Windows:
> 1. The size limit for long path is 32,767 characters.
> 2. Each component separated by backslashes should not be more than 255
> characters.
> 
> Reference: https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file#maximum-path-length-limitation.
> 
> Note that `Directory.current` does not work with long path.
> 
> Bug: https://github.com/dart-lang/sdk/issues/42416
> Change-Id: Ia1b4608d393fb36f1d843858c6f076f3c825dc83
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/152736
> Reviewed-by: Alexander Aprelev <aam@google.com>
> Commit-Queue: Zichang Guo <zichangguo@google.com>

TBR=aam@google.com,zra@google.com,zichangguo@google.com

Change-Id: If6701c887e616cd62f20faac43f601cfb53ed349
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: https://github.com/dart-lang/sdk/issues/42416
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/162104
Reviewed-by: Zichang Guo <zichangguo@google.com>
Commit-Queue: Zichang Guo <zichangguo@google.com>
2020-09-08 22:34:50 +00:00
Zichang Guo 08662f0575 Enable long path on Windows
File APIs on Windows can now handle files and directories identified by
long paths (greater than 260 characters). For directory, the limit is
248.

Some restrictions from Windows:
1. The size limit for long path is 32,767 characters.
2. Each component separated by backslashes should not be more than 255
characters.

Reference: https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file#maximum-path-length-limitation.

Note that `Directory.current` does not work with long path.

Bug: https://github.com/dart-lang/sdk/issues/42416
Change-Id: Ia1b4608d393fb36f1d843858c6f076f3c825dc83
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/152736
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Zichang Guo <zichangguo@google.com>
2020-09-08 20:12:05 +00:00
Michal Terepeta 4237fda6a5 Check for IN_MODIFY in file_system_watcher_linux.cc
This allows to detect changes to a file due to `write` or `truncate`
syscalls.

Change-Id: I095d842367a56121cd87c2176dde0a4feb5e3d7f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/161177
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Alexander Aprelev <aam@google.com>
Auto-Submit: Michal Terepeta <michalt@google.com>
2020-09-08 17:57:45 +00:00
Mehmet Fidanboylu 909a05cf8a [dart:io] Remove obsolete http embedder config.
This is no longer being used.

Change-Id: I316a28193698cc2ceb62e6d89c87adf0d05f7be7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/161800
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Mehmet Fidanboylu <mehmetf@google.com>
2020-09-04 16:50:10 +00:00
Mehmet Fidanboylu 5c4bf35a2b [dart:io] Remove socket level checks for domain policy.
This partially reverts https://dart-review.googlesource.com/c/sdk/+/154180.
The main mechanism for setting domain policy is still useful as we will
use this to avoid insecure connections for higher level protocols (such
as HTTP and gRPC).

We already knew Android does not enforce network policy at socket level
but it turns out iOS does not as well:

> ATS doesn’t apply to calls your app makes to lower-level networking
> interfaces like the Network framework or CFNetwork. In these cases,
> you take responsibility for ensuring the security of the connection.

This also resolves the need to fix
https://github.com/dart-lang/sdk/issues/43223 as we are no longer
enforcing the policy at socket level.

Change-Id: I3913da8ea39dac2c5a70fdabe442775b18cfd0c5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/161581
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Mehmet Fidanboylu <mehmetf@google.com>
2020-09-04 15:01:40 +00:00
Zichang Guo 0c5f2a3532 [vm/file] Ensure that appropriate type is reported for links to files vs directories
Bug: https://github.com/dart-lang/sdk/issues/30410
Change-Id: I96c9ca8a5aff4a4337022047ea0b844335efdfcf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/161260
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Zichang Guo <zichangguo@google.com>
2020-09-03 01:17:52 +00:00
Zichang Guo a3322ad622 [dart:io] Use empty path on Windows leads to error
Bug: https://github.com/dart-lang/sdk/issues/42938
Change-Id: Id988420fd14caf6ac985aa4de0b974f344809e51
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/157942
Commit-Queue: Zichang Guo <zichangguo@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
2020-09-02 20:49:37 +00:00
Zichang Guo d27556656f Fix Directory.list from aborting on Linux
Directory.list will throw fatal error if a symbolic link points to an
unexpected file type with follow_link being set. This cl will make
list() issuing the link itself regardless of whether follow_link is set.

Closes: https://github.com/dart-lang/sdk/issues/43176
Change-Id: I16f0e9a0ec68c9d48e60f1fbe58820ebe4b066eb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/160705
Commit-Queue: Zichang Guo <zichangguo@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
2020-09-01 22:44:01 +00:00
Zichang Guo a6db069971 [dart:io] Loosen the HTTP header size limit
The `HttpClient` and `HttpServer` clasess now have a 1 MiB limit for the
total size of the HTTP headers when parsing a request or response,
instead of the former 8 KiB limit for each header name and value. This
limit cannot be configured at this time.

Bug: https://github.com/flutter/flutter/issues/56580
Change-Id: I5f094df32a93ec3e6645a0d69d8cf8263082775a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/150500
Commit-Queue: Zichang Guo <zichangguo@google.com>
Reviewed-by: Jonas Termansen <sortie@google.com>
2020-09-01 22:34:21 +00:00
Zichang Guo 18cfc0a17f [dart:io] Fix HttpClient close() calling itself.
Call close() on HttpClient will close all connections. Whenever a
connection is closed, it will notify HttpClient to close() again, which
is unnecessary. When there are a large amount of servers need to be
closed, it is likely overflow the stack.

Bug: https://github.com/dart-lang/sdk/issues/41247
Change-Id: I62afb1a60d3e4581aa102628e76f717c28031c2f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/141844
Commit-Queue: Zichang Guo <zichangguo@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
2020-08-28 21:58:08 +00:00
Zichang Guo c9b4f1b5d5 [dart:io] validate path component of class Cookie
Bug: https://github.com/dart-lang/sdk/issues/42823
Change-Id: Icb9e0fa84404acfe5c6f3c98014dae4cd16edf2c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/155843
Commit-Queue: Zichang Guo <zichangguo@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
2020-08-22 00:30:01 +00:00
Mehmet Fidanboylu d39cb30cbb [dart:io] Re-enable socket policy enforcement with additional testing.
Change-Id: I1a42e31b0bc50a758f78ba87566aff57718fdcd9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/157540
Commit-Queue: Mehmet Fidanboylu <mehmetf@google.com>
Reviewed-by: Jonas Termansen <sortie@google.com>
2020-08-17 16:42:49 +00:00
Zichang Guo efe7676067 [dart:io] Fix failure on Interent_address_test on macOS
Fixes the failure caused by https://dart-review.googlesource.com/c/sdk/+/155840

log: https://logs.chromium.org/logs/dart/buildbucket/cr-buildbucket.appspot.com/8872034801609634816/+/steps/test_results/0/logs/new_test_failures__logs_/0

Change-Id: I80f6ed4092f1a2528b463b1310ae9e857a2df553
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/158485
Reviewed-by: Zichang Guo <zichangguo@google.com>
Commit-Queue: Zichang Guo <zichangguo@google.com>
2020-08-14 04:00:53 +00:00
Zichang Guo 56d40bad75 Reland "[dart:io] Add Abort() on HttpClientRequest"
The test was poorly written. The response from Socket can arrive
separately. So the check for content-length header will fail.

This is a reland of 4b96f20a79

Original change's description:
> [dart:io] Add Abort() on HttpClientRequest
>
> The breaking change request for this cl: https://github.com/dart-lang/sdk/issues/41904
>
> Bug: https://github.com/dart-lang/sdk/issues/22265
> Change-Id: I36db64b4db307b78cd188a2f1701ec733f2e73db
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/147339
> Commit-Queue: Zichang Guo <zichangguo@google.com>
> Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>

Bug: https://github.com/dart-lang/sdk/issues/22265
Change-Id: Ibfe9565a3f9d5ef84274fba33a68fb57dbbe28c9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/155581
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Zichang Guo <zichangguo@google.com>
2020-08-14 01:01:13 +00:00
Zichang Guo 813d25bd8e [dart:io] Clean up on parsing scoped IPv6 InternetAddress
A follow up of https://dart-review.googlesource.com/c/sdk/+/147060
Fixes https://github.com/dart-lang/sdk/issues/42908

Change-Id: I7e1456457552993e21e52f211bdbab42233ced1e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/155840
Commit-Queue: Zichang Guo <zichangguo@google.com>
Reviewed-by: Jonas Termansen <sortie@google.com>
2020-08-14 00:34:33 +00:00