If parent is a param in the TimelineTask.withTaskId() constructor, we have the possibility of running into this situation:
TimelineTaskA - id 0
TimelineTaskB - id 1
TimelineTaskC - id 2 - parentId 1
TimelineTaskD - id 0 - parentId 2 (this task created with TimelineTask.withTaskId(0, parent: C))
TimelineTaskE - id 3 - parentId 0 (now who is the parent of E? D or A?)
If we do not allow the user to specify parent in the withTaskId() constructor, we remove the possibility of this clash. This clash happens because the user was able to inject an event with id 0 into an async tree defined by the parent parameter.
By removing the parent parameter from the withTaskId() constructor, we can rely on different sources of truth for the different TimelineTask constructors.
- If taskId is specified via TimelineTask.withTaskId(), then that is the source of truth for inferring the async event tree (events with the same async id are in the same async tree).
- If parent is specified via TimelineTask(parent: parent), then that is the source of truth for inferring the async event tree.
- If neither taskId nor parent are specified (e.g. TimelineTask()), we default to timestamp inference.
Change-Id: I491a20cf1d1aaea744ab92e56602269390e73fb0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/121680
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Kenzie Schmoll <kenzieschmoll@google.com>
This reverts commit e866f043cf.
Reason for revert: Breaks google3.
Original change's description:
> [dartdevc] cleaning up unused web files
>
> Dependent on these google3 changes: https://critique.corp.google.com/#review/272749649
>
> Change-Id: I9e89142cd5b2a619acfc35badb9cf3c549b3be9c
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/119587
> Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
> Commit-Queue: Mark Zhou <markzipan@google.com>
TBR=scheglov@google.com,vsm@google.com,markzipan@google.com
Change-Id: I1db094d94d699d4d18c4091f57c7cb775eb95dd5
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/120040
Reviewed-by: David Morgan <davidmorgan@google.com>
Commit-Queue: David Morgan <davidmorgan@google.com>
Specifying a parent will result in an argument being added to 'start'
events for that TimelineTask named 'parentId', which contains the task
ID of the parent. This is to be used by DevTools to show relationships
between asynchronous tasks that are not currently supported in the trace
event format used by Catapult.
Change-Id: Id0a030f018f5a6ac1e3b0ef2e89c1cd732790f02
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/119520
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Kenzie Schmoll <kenzieschmoll@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
Change-Id: I45984e866ff5403a90fbd996ea39a5bce0e5787b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/119020
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
In bytecode mode default values are part of the method body, which is
omitted for abstract methods.
In anticipation for this future change, default values of parameters of
abstract methods are no longer available through dart:mirrors.
Please also see https://github.com/dart-lang/sdk/issues/38464
Change-Id: I47742b588690ea96cb3ca636ff86e4e042bfe5a2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117299
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
Towards #33134
Functions called through allowInterop or allowInteropCaptureThis wrappers will
use the `dart.dcall` code path which checks argument counts and types. This will
make these calls stricter to match dart2js semantics.
In the long term we want to make dart2js accept _extra_ arguments, at which
point we'll also want to make DDK loose in the same way. For now we want DDC
to be strict.
Change-Id: Ibf1dabf141273229770f8328f9ca7bfb9f4fb5db
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/113754
Commit-Queue: Nate Bosch <nbosch@google.com>
Auto-Submit: Nate Bosch <nbosch@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Change-Id: Ide202ea418ccfe860bd408e489a8c81bbc62e7c1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112084
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
Use the same language when describing a change that is only breaking
for implementors of a type
Change-Id: Ice9472f0582c3b737034a63fb8a3bc3adc5ae96e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108683
Reviewed-by: Vijay Menon <vsm@google.com>
Auto-Submit: Kevin Moore <kevmoo@google.com>
This changes `File.openRead()` back to returning a `Stream<List<int>>`
and `HttpClientResponse` back to implementing `Stream<List<int>>`.
These two changes broke a significant number of call sites; backing it
out enables us to keep the changes from landing in the next dev release
until we analyze whether we can roll these changes out in a softer
manner or if they're worth making at all.
Bug: https://github.com/dart-lang/sdk/issues/36900
Change-Id: I8977abcba40c58a4ca2b4a05d857512989a1e0b4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/109102
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Commit-Queue: Todd Volkert <tvolkert@google.com>
* This change is being enforced server-side on pub.dev.
* This CHANGELOG entry is added for compliance with
`docs/process/breaking-changes.md`.
Change-Id: I9e10c4f224e084db6b6c78d637bb01a2a59565b3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108409
Reviewed-by: Sigurd Meldgaard <sigurdm@google.com>
Commit-Queue: Sigurd Meldgaard <sigurdm@google.com>
Auto-Submit: Jonas Jensen <jonasfj@google.com>
Moved the bug-id to the breaking change prefix. This also makes it easy to validate that an approved breaking change issue exists.
Closes#37409https://github.com/dart-lang/sdk/pull/37409
GitOrigin-RevId: c6704788731658e2f23e611456f22a9f0762e75d
Change-Id: I587fc70d5edbcbd80703cf78b4540b550c33eb35
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/107820
Reviewed-by: Aadil Maan <aadilmaan@google.com>
This is a breaking change. https://github.com/dart-lang/sdk/issues/37192
This change makes the name and value positional optional parameters in the
Cookie class constructor mandatory by changing the signature from
Cookie([String name, String value])
to
Cookie(String name, String value)
The parameters were already effectively mandatory as a bug introduced in
Dart 1.3.0 (2014) meant the name and value parameters could not be null, and
any such uses already threw a noSuchMethod exception because null did not
have a length getter. As such, this is not a breaking change but adopts the
current behavior as a null name and value was already of questionable use.
Breaking change: This change adds validation to the String name and String
value setters, which had not been validating the fields at all, unlike the
constructor. This also forbids the name and value from being set to null.
That meant potentially invalid cookies could be sent to servers if the
cookie was modified after construction. This change adds the validation to
follow the rule of least surprise.
The documentation has been updated accordingly and improved a bit.
Closes https://github.com/dart-lang/sdk/issues/37192
Closes https://github.com/dart-lang/sdk/issues/29463
Change-Id: Iffed3dc265ca9c68142c4372522913f9d1ff4d51
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/103840
Commit-Queue: Jonas Termansen <sortie@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
These methods all were returning Uint8List, yet they were only
declared to return List<int>. This forced callers to either defensively
wrap the return values in Uint8List, or to assume the contravariant
return value:
* Utf8Codec.encode()
* BytesBuilder.takeBytes()
* BytesBuilder.toBytes()
* File.readAsBytes()
* File.readAsBytesSync()
* RandomAccessFile.read()
* RandomAccessFile.readSync()
* Uint8List.sublist()
Since it's related, this change also updates the following sublist()
methods to declare that they return the a sublist of the same type as
the source list:
* Int8List
* Uint8ClampedList
* Int16List
* Uint16List
* Int32List
* Uint32List
* Int64List
* Uint64List
* Float32List
* Float64List
* Float32x4List
* Int32x4List
* Float64x2List
Bug: https://github.com/dart-lang/sdk/issues/36900
Bug: https://github.com/dart-lang/sdk/issues/31547
Bug: https://github.com/dart-lang/sdk/issues/27818
Bug: https://github.com/dart-lang/sdk/issues/35521
Change-Id: Ic3bc1db0d64de36fb68b1d8d98037eed1464f978
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/101742
Commit-Queue: Todd Volkert <tvolkert@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Having a section for each dev release causes a difference between the master
and dev branch. That means there's always a merge conflict when doing dev
releases, and that doing a dev release requires merging the dev CHANGELOG.md
back to master. We can avoid that churn by instead having a section for the
next stable release on the master branch.
This change means the master branch will no longer contain the history of
the dev releases leading up to the next stable release. However, we merge
all of those entries together anyway when doing a stable release, and the
changes in each dev release can be consulted by checking out the appropriate
tag.
Change-Id: If34651be4ccadb74fcce4a0004ab109bb003dd01
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106346
Reviewed-by: Alexander Thomas <athom@google.com>
This is a security improvement.
On Linux and Android, starting a process with Process.run, Process.runSync
or Process.start would first search the current directory before searching
PATH (Issue [37101][]). Operating systems other than Linux and Android
didn't have this behavior and aren't affected by this vulnerability.
Effectively this puts the current working directory in the front of PATH,
even if it wasn't in the PATH.
This change fixes that vulnerability and only searches the directories in
the PATH environment variable.
Fixes https://github.com/dart-lang/sdk/issues/37101
Change-Id: I05f3137753237f9b3ba4be4eba63ad07a75d865e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/105582
Reviewed-by: William Hesse <whesse@google.com>