Commit Graph

305 Commits

Author SHA1 Message Date
Derek Xu 8ccece520f [DDS] Prepare to publish package:dds 2.8.1
Fixes: https://github.com/dart-lang/sdk/issues/52270
Change-Id: I08ef372653adfd04eab9d45da225a5bfda74531c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/302000
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Derek Xu <derekx@google.com>
2023-05-08 15:14:44 +00:00
Derek Xu 33ab02b064 [DDS] Add getPerfettoVMTimelineWithCpuSamples RPC
Change-Id: I3d8e5c48f5482e787ab9d561692d416c50f37a8a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/301541
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Derek Xu <derekx@google.com>
2023-05-04 20:23:09 +00:00
Danny Tuppeny 7a6352a9b1 [dds/dap] Ensure DAP always responds to initialize() before sending initializedEvent
Changes to support DAP in DDS introduced a subtle bug where we could send the `InitializedEvent` before the response to the `Initialize` request because `sendResponse` used a `Completer` and would delay adding the response to the stream until the next iteration of the task queue.

Although there were comments stating this order must be preserved, there were no tests that verified this and it breaks VS Code (https://github.com/dart-lang/sdk/issues/52222).

I've added tests for this, and changed how this works slightly so instead of using a `Completer` we pass in a "responseWriter" function that must write the response to the stream synchronously.

Since the DDS path isn't using events yet and it would require a little more refactoring, I've used a Completer there and added a TODO.

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

Change-Id: I1832126f5015b466c721dbda192da4b8a5d83b62
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/300601
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2023-05-02 18:35:26 +00:00
Danny Tuppeny 14ab84ebb3 [dds/dap] Don't throw if isolates exit while trying to resume them
There are two cases where we might be trying to resume an exited isolate:

1. Another debugger resumed the isolate and it exited before we got here
2. We were starting to resume an isolate but then the app was shut down so the isolate exited

Because of async code, we can never guarantee the isolate hasn't exited before we send this event, so the exception we throw should only ever be because the ID was invalid.

Fixes https://github.com/Dart-Code/Dart-Code/issues/4515.

Change-Id: If3500d5d1adf3ba9179e6a571130256783b23c2d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/299640
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2023-05-01 14:43:51 +00:00
Helin Shiah 5ef021b116 Add debug adapter to DAP
Change-Id: I5bacd460175a5b2e86326f7501d7f250bbe3ab0c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/292060
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Helin Shiah <helinx@google.com>
2023-04-27 01:19:57 +00:00
Danny Tuppeny facfcf0f92 [dds/dap] Handle some additional error causes when resuming isolates
Fixes https://github.com/flutter/flutter/issues/125064.

Change-Id: I521fe29d0f269694dc6c2b993d1e400c495b0605
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/296560
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2023-04-20 14:55:23 +00:00
Danny Tuppeny 363a61d72b [dds/dap] Ignore SentinelExceptions while configuring isolates
I'm unable to reproduce this, but there are probably many reasons an isolate could go away while we're doing this async work (such as the app shutting down or a restart). If it does, we should never throw because the results of configuring an isolate are not important if the isolate has gone.

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

Change-Id: Idb8972a5e77109783799fed70dd8b64e3f702bf5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/296201
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2023-04-19 14:10:57 +00:00
Danny Tuppeny 6176f17f0d [dds/dap] Fix flaky DAP test
There were two issues here:

1. During shutdown, when trying to unpause and resume all threads we could get "Service has Disappeared" responses if the app was already shutting down. These need ignoring. This is fixed with `_withErrorHandling` in preventBreakingAndResume.

2. The test teardown would always try to send a terminate request even if the test had already sent it, which could result in a second terminate request not being responded to (because the app shutdown before it could respond, because it had already had a terminate request). This is fixed by the teardown code only sending terminate() if it hadn't already been sent.

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

Change-Id: I1baa857eb4bb7e5616fccdb193fe9213cd9452f1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/294020
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2023-04-11 16:37:57 +00:00
Danny Tuppeny c723515931 [dds/dap] Print any stderr events when the app being tested terminates to help catch VM crashes
See https://github.com/dart-lang/sdk/issues/51928.

Change-Id: I32edbae5433d003ca0295d95fc834b8cd3b8fa5e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/292784
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2023-04-05 16:13:38 +00:00
Danny Tuppeny 57ba99c2d3 [dds/dap] Handle sentinel values in Scopes and Variables requests
Fixes https://github.com/dart-lang/sdk/issues/51916.

Change-Id: I72f02c640084059af5e2b761554ee6ec706f5f6a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/292540
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2023-04-03 14:50:12 +00:00
Danny Tuppeny b984c308be [dds/dap] Don't sent breakpoint changed events until after the response to setBreakpoints.
In the response to setBreakpoints we provide IDs for each breakpoint and it's important the client gets these before we sent any "breakpoint resolved" events.

Change-Id: I776304b67b12d8e090480ea2a25a849ad4c1ac5e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/291763
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2023-03-29 18:20:17 +00:00
Danny Tuppeny 11129423b9 [dds/dap] Don't call setLibraryDebuggable unnecessarily
Fixes https://github.com/Dart-Code/Dart-Code/issues/4464.

TEST=DAP tests included, VM changes are only a comment
Change-Id: I5ee44fda5b954d371bd00345815c24515eb14f61
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/291282
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2023-03-29 15:54:02 +00:00
Danny Tuppeny f927a2544e [dds/dap] Update test expectations for test_api/matcher change
The `expect` function was moved from test_api to matcher in https://github.com/dart-lang/test/commit/cc0598b2c3bf3a7439f10f9542a8d01ff50b69e9.

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

Change-Id: I6fdc51ffd92880aba0cfc0a68105beac02a74d91
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/290962
Commit-Queue: Derek Xu <derekx@google.com>
Reviewed-by: Derek Xu <derekx@google.com>
2023-03-23 22:39:46 +00:00
Danny Tuppeny 53319cf221 [dds/dap] Remove breakpoints and resume when trying to terminate test runs
Fixes https://github.com/Dart-Code/Dart-Code/issues/4447.

Change-Id: I9c18fccde101596135d3ea7324bbbd24fb5330c1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289825
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2023-03-20 18:21:50 +00:00
Devon Carew baff2375c3 [dds] updates to the dart devtools app size cli flags
Change-Id: I049a98452ec5f8e4e322e2cb9687aaa702819937
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289449
Reviewed-by: Ben Konyi <bkonyi@google.com>
Reviewed-by: Kenzie Davisson <kenzieschmoll@google.com>
Commit-Queue: Devon Carew <devoncarew@google.com>
2023-03-20 17:33:46 +00:00
Elliott Brooks 4ac70a3696 Add 'cache-control: no-store' header to DevTools server
Bug: https://github.com/flutter/devtools/issues/3896
Change-Id: I5cfc2e92716517a044a848339426feb827bb64cb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/286100
Commit-Queue: Elliott Brooks <elliottbrooks@google.com>
Reviewed-by: Nate Bosch <nbosch@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2023-03-01 01:13:40 +00:00
Danny Tuppeny 2d1373bc56 Add missing changelog entry for breakpoint changes
Change-Id: I6fd6683c728226c8885256ba0e2511858931adc4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/285910
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2023-02-28 17:16:49 +00:00
Danny Tuppeny 6bce1b1e7c [dds/dap] Add global variables to scopes/variables requests
Fixes https://github.com/Dart-Code/Dart-Code/issues/4408.

Change-Id: I8a6f7e15f1db247424db23518e53c821d519f1e3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/285904
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2023-02-28 17:16:49 +00:00
Danny Tuppeny 55cb3ce24b [dds/dap] Add support for breakpoint resolution
Previously we just always sent verified:true for all breakpoints and never handled resolution. This meant breakpoints always appeared verified in VS Code, and did not update to their correct locations when resolved.

This change sends verified:false initially, and then uses the BreakpointAdded/BreakpointResolved events to send verified:true and an updated location as the events arrive.

Fixes https://github.com/Dart-Code/Dart-Code/issues/764.

Change-Id: I5b008bef802bb1c31219175a03498f5015ec4a04
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/285909
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2023-02-28 15:52:31 +00:00
Derek Xu c0c523122b Reland "[VM/Service] Start indexing positional record fields at 1"
This is a reland of commit 1be893c507

Patchset 2 fixes the failure that was in
pkg/dds/test/dap/integration/debug_variables_test.

TEST=CI

Original change's description:
> [VM/Service] Start indexing positional record fields at 1
>
> TEST=CI
>
> Fixes: https://github.com/dart-lang/sdk/issues/51451
> Change-Id: I0e00e0ffb35aeb40affbbd5544542723bafc747c
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/284722
> Reviewed-by: Ben Konyi <bkonyi@google.com>
> Commit-Queue: Derek Xu <derekx@google.com>

Change-Id: I4cdee610646b3389d7d02ee6d905a66ae6e0329d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/284862
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Derek Xu <derekx@google.com>
2023-02-23 17:04:10 +00:00
Danny Tuppeny 3d39175f5d [dds/dap] Improve display of errors calling toString() in debug views
Fixes https://github.com/Dart-Code/Dart-Code/issues/4400.

Change-Id: I46b36bcacdd0f8a33f296569fbc2e4ebece9d0f4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/284701
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2023-02-22 17:11:12 +00:00
Devon Carew 2d15cad9e5 [pkg/dds] use package:lints/recommended.yaml
Change-Id: I05eb1af5dd985ee9f752b8ea409cabc785740472
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/283964
Commit-Queue: Devon Carew <devoncarew@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2023-02-21 18:30:23 +00:00
Danny Tuppeny 43e26f18cc [dds/dap] Add support for showing inspect() variables in the debug console
This adds functionality that exists in the legacy VS Code DAP but was not reproduced here.

Calling `inspect(var)` (from `dart:developer`) would print the inspected variable to the Debug Console where the user can expand and review it (similar to using the Watch window).

Fixes https://github.com/Dart-Code/Dart-Code/issues/4330.

Change-Id: Ic63e6b6eb9f149dc8d80c4efdf622fb1c05bd580
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/284183
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2023-02-21 15:57:28 +00:00
Danny Tuppeny 9356df41a0 [dds/dap] Ensure variable evaluateNames are stored for all lists/fields/getters
"evaluateNames" are returned to the client along with any variables, so the client can provide the user an expression that evaluates to that variable (used by "copy expression" or "add to watch".

DAP doesn't round-trip these as you expand variables, so we have to track them ourselves, but we were only doing so for map values. This fixes that to handle lists, getters, fields correctly too.

Fixes https://github.com/Dart-Code/Dart-Code/issues/4352.

Change-Id: Id57e46a1cecf8bd22473911340b649ac05da65fc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/284223
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2023-02-21 15:56:58 +00:00
Dan Chevalier 7599222465 Update to vm_service:11.0.0 in dds
Changing the vm_service version to allow 11.0.0.

Change-Id: I78c5cdc474228e2d280e62ff408a12ea05df1ae3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/282460
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Dan Chevalier <danchevalier@google.com>
2023-02-13 15:12:55 +00:00
Ben Konyi c14cc6d75b [ package:dds ] Fix TypeError when attempting to debug DevTools requests
TEST=Manual

Change-Id: I043d52fe8863e2ea159300990db48dd05b7bc199
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/280051
Reviewed-by: Dan Chevalier <danchevalier@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2023-02-01 16:01:29 +00:00
Danny Tuppeny 72cb7dd238 [dds/dap] Map fileUri/uri fields in ToolEvents before sending to client
This handles cases where the running app/VM was unable to provide a file:/// URI (such as google3) by calling the VM Service to translate the URIs before providing them to the client (which likely only understands file URIs).

Change-Id: Ib0b5d554a21e14e04fac6c05e489f5cc03b8301c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/280107
Reviewed-by: Helin Shiah <helinx@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2023-02-01 15:04:19 +00:00
Josh Soref 77978889eb Spelling
Closes https://github.com/dart-lang/sdk/pull/51143

GitOrigin-RevId: 9e21c99a222d588e4fc95980725a2f8c9784965c
Change-Id: If0870e8936c7649935dce7e23cd783d62aa5610c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/279916
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Alexander Thomas <athom@google.com>
2023-01-30 18:29:59 +00:00
Ahmed Ashour 63180b95ed Remove superfluous words.
Fixes #51095

TEST=ci

CoreLibraryReviewExempt: There are no API changes, just removal of superfluous words in the comments.
Change-Id: Ib1020c62fe6baed5ca68f0074323f025cc90e9f8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/279500
Reviewed-by: Lasse Nielsen <lrn@google.com>
Commit-Queue: Lasse Nielsen <lrn@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
2023-01-30 15:58:38 +00:00
Danny Tuppeny 16ede0e1d3 [dds] Bump version and update changelog to reflect published 2.7.3
Change-Id: I4a0f75fdf6ebf5cb3a2ba88996127096af0b9d56
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/280090
Reviewed-by: Ben Konyi <bkonyi@google.com>
2023-01-30 14:42:44 +00:00
Danny Tuppeny b1c44bf87d [dds/dap] Support format.hex in DAP evaluateRequest + variablesRequest
This adds support for hex formatting that is part of the DAP protocol.

VS Code does not support this natively, so it will require some custom client work. Part of that requires the ability to invalidate the variables view when formatting options change, but this can only be done by the server over DAP, so this also includes a small custom ("private") request "_invalidateAreas" that lets the client bounce this request through the server when it knows the formatting config has changed.

Change-Id: Ic005e9cdf13069b848047cf0a7ac1b8bb39da48f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/279963
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2023-01-26 18:33:57 +00:00
Danny Tuppeny 1ff357f0f7 [dds/dap] Tidy up variables formatting and allow "format specifiers" in evaluation expressions
This adds some new classes to support different formatting of values in expression evaluation/watch/variables panes.

Some existing code that passed a flag around to suppress quotes has been converted to this use, and in addition, we support some C#-inspired "format specifiers" that allow you to influence the formatting of returned values by adding a suffix to a watch/evaluation expression:

https://learn.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2010/e514eeby(v=vs.100)?redirectedfrom=MSDN

So if you add "foo" and "foo,nq" to your watch window, the latter will format the string without quotes. If you add "a" and "a,h" then the latter will format a in hex.

Format specifiers are carried down, so you can add ",h" to a class or list variable, and each value down the tree will be formatted that way.

Partly fixes https://github.com/Dart-Code/Dart-Code/issues/3940.

Change-Id: I78001bd046ee2586bd828752f9ea08da01e7180c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/279961
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2023-01-26 17:16:36 +00:00
Sam Rawlins bb78e4f288 [dds] Replace @alwaysThrows with Never
Bug: https://github.com/dart-lang/sdk/issues/49583
Change-Id: I247e8c81c010e37a85b938f9b8dfc6a1765bbf85
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/279741
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Tess Strickland <sstrickl@google.com>
2023-01-25 11:13:49 +00:00
Danny Tuppeny 589876ba6a [dds/dap] Don't try to send invalid URIs to VM Service _lookupResolvedPackageUris
Fixes https://github.com/Dart-Code/Dart-Code/issues/4358.

Change-Id: I70330d8d5dd3bdcb2aa9753212cd56ff46bf4344
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/279513
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2023-01-24 21:46:33 +00:00
Alexander Thomas b9b6511ca6 Spelling sdk
Closes https://github.com/dart-lang/sdk/pull/50918

Co-authored-by: Josh Soref <jsoref@gmail.com>
GitOrigin-RevId: 1fd275051c561b63d374fb47e76a22424c4a12a9
Change-Id: I97790d9c79ff659f2c1fa2d2d46d041fe67957cb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/278530
Reviewed-by: William Hesse <whesse@google.com>
Commit-Queue: Alexander Thomas <athom@google.com>
Reviewed-by: Tess Strickland <sstrickl@google.com>
2023-01-20 12:37:49 +00:00
Danny Tuppeny 0f065ef477 [dds/dap] Support showing Record fields in debugger views
Change-Id: I799d30995dc1d1f8cd0c0bad79bf7305e5dbc1ad
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/279353
Reviewed-by: Derek Xu <derekx@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2023-01-19 16:38:47 +00:00
Josh Soref 9e4dc755cb Spelling pkg
Closes https://github.com/dart-lang/sdk/pull/50921

GitOrigin-RevId: 6b1ca502b6722b0a987f33ace66f65cbd2c24e23
Change-Id: I74e4ff3c8e759c576036d6b791bd7734ebd215d8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/278536
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Alexander Thomas <athom@google.com>
2023-01-19 10:06:29 +00:00
Danny Tuppeny 4fdbe1b47d [dds] Pass existing DDS URI in existingDdsInstance exception
Work towards a better fix for https://github.com/flutter/flutter/issues/118609.

Change-Id: I7db8bd74cc272a2bb1df3a04e6f1d7b82b877ddb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/279175
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2023-01-18 20:36:07 +00:00
Danny Tuppeny 7734f11b3b [dds/dap] Switch SILENT_OBSERVATORY to SILENT_VM_SERVICE
+ remove some other Observatory references.

Change-Id: I06d1085b2e0cc82f756bf45178b824382283762a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/279085
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2023-01-16 18:37:25 +00:00
Ben Konyi 0a0c90e37a [DDS] Prepare for 2.7.2 release
Change-Id: Ifb4cac218b2723e52b76936a6b8275fed6a3a3d3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/279121
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Derek Xu <derekx@google.com>
2023-01-16 16:31:28 +00:00
Ben Konyi 3a77ebda65 [ DDS ] Ignore method no found responses for streamCpuSamplesWithUserTag
DWDS does not implement streamCpuSamplesWithUserTag and DDS can invoke
it without being prompted to by a client. This change gracefully handles
the absence of this RPC.

Related DWDS change: https://github.com/dart-lang/webdev/pull/1889

Change-Id: Ic821f39caefd25044c2c4a8b34a8271879c7bd5f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/279020
Reviewed-by: Elliott Brooks <elliottbrooks@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2023-01-13 17:55:01 +00:00
Danny Tuppeny 3949fe9aec [dds/dap] Forward toolEvents on to the DAP client
Progress towards https://github.com/Dart-Code/Dart-Code/issues/4193.

Also related:
- https://github.com/flutter/flutter/pull/118098
- https://github.com/dart-lang/sdk/commit/4981cbffe2f66db3a0cc8eced18085e03fbbb8ba

Change-Id: I7b1394a5d5003c24b90733f1898fe368c0485937
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/278515
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2023-01-13 17:49:12 +00:00
Derek Xu ac23909288 [pkg:dds] Update pkg:vm_service dependency to >=9.0.0 <11.0.0
Change-Id: I6525b63c854dff454700425e142dc69a850169ad
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/278946
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Derek Xu <derekx@google.com>
2023-01-13 15:56:23 +00:00
Ben Konyi ab5b7d7ad1 [ DDS / VM Service ] Simplify DevTools URI construction
DevTools no longer expects a fragment (i.e., '#') in its path, which was
causing issues when attempting to redirect to an external DevTools
instance.

Also removes unnecessary query parameter encoding.

TEST=Existing tests

Change-Id: Ifbeba62c173141a754951527f44ab337318a21d0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/278669
Reviewed-by: Kenzie Davisson <kenzieschmoll@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2023-01-11 21:22:50 +00:00
Derek Xu 9a7d8857ec [pkg:dds, pkg:dds_service_extensions] Update pkg:vm_service dependency to ^10.0.0
Change-Id: I93d0690edf2bc9b21ac39707ed5dceb2488901b1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/278940
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Derek Xu <derekx@google.com>
2023-01-11 18:01:43 +00:00
Ben Konyi 52f62eaea8 [ package:dds ] Add support for registering external DevTools servers with DDS
External DevTools instances can be registered with DDS at runtime, allowing for DDS
to redirect DevTools requests to the external DevTools server.

TEST=pkg/dds/test/external_devtools_instance_test.dart

Change-Id: I0bed34029b6ea7d935f77a031ff99b73b986b068
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/278663
Reviewed-by: Kenzie Davisson <kenzieschmoll@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2023-01-10 16:03:41 +00:00
Danny Tuppeny 5b50a61918 [dds/dap] Fix handling of errors when fetching full strings
Fixes https://github.com/dart-lang/sdk/issues/50802.

Change-Id: Ia2bda968708f34aa48c6b92b2f19c24c603fb85c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/278349
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2023-01-06 16:54:03 +00:00
Ben Konyi 112e1213dc [ package:dds ] Prep for 2.6.0 release
Change-Id: I7ffcd1c9cdf23906324ef77521216bb293259c08
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/276620
Reviewed-by: Dan Chevalier <danchevalier@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2023-01-06 15:26:34 +00:00
Danny Tuppeny ec8918c20c [dds/dap] Handle errors parsing/casting launch/attach arguments and provide useful errors
Fixes https://github.com/dart-lang/sdk/issues/50709.

Change-Id: I35a7593ced462ab81d52069db831e5f95a9a4ba7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275623
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2022-12-14 17:19:05 +00:00
Dan Chevalier fd6fa010ec [ VM Service / DDS ] Add custom service stream support (Revised)
NOTES:
Original CL: https://dart-review.googlesource.com/c/sdk/+/274061
Revert CL: https://dart-review.googlesource.com/c/sdk/+/274802

Regression tests that failed after merging Original CL:
- https://ci.chromium.org/ui/p/dart/builders/ci.sandbox/pkg-mac-release/24046/overview
- https://ci.chromium.org/ui/p/dart/builders/ci.sandbox/pkg-mac-release-arm64/5999/overview

----------
DESCRIPTION:
Setting the `stream` parameter on `developer.postEvent` will now forward those events to a custom stream inside DDS.


The first use of this will be for widget inspection. A navigation event will be posted to a custom stream. Our IDE DAP can listen for the Event and react to it by navigating to the desired location in the code.

TEST=Made sure that regression from original PR could be reproduced, and then resolved by applying this change. Updated observatory tests. Created new developer test to check assertions. Added DDS tests for new custom stream behaviour. Manually tested the postEvent and StreamListen with multiple clients

https://github.com/flutter/devtools/issues/4533

Change-Id: I2b04a84b4daf11dd9d72f899928b5e1f62a5ae02
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275121
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2022-12-13 16:31:37 +00:00