Skip to content

Conversation

@jyameo
Copy link
Contributor

@jyameo jyameo commented Jul 4, 2025

  • Make device debuggable if useDwdsWebSocketConnection is true - This change is needed to support hot reload on web-server devices over websocket-based DWDS.
  • Added simple test case to test hot reload over websocket

related to dart-lang/webdev#2605, dart-lang/webdev#2645 and dart-lang/webdev#2646

@flutter-dashboard
Copy link

It looks like this pull request may not have tests. Please make sure to add tests or get an explicit test exemption before merging.

If you are not sure if you need tests, consider this rule of thumb: the purpose of a test is to make sure someone doesn't accidentally revert the fix. Ask yourself, is there anything in your PR that you feel it is important we not accidentally revert back to how it was before your fix?

Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing.If you believe this PR qualifies for a test exemption, contact "@test-exemption-reviewer" in the #hackers channel in Discord (don't just cc them here, they won't see it!). The test exemption team is a small volunteer group, so all reviewers should feel empowered to ask for tests, without delegating that responsibility entirely to the test exemption group.

@github-actions github-actions bot added the tool Affects the "flutter" command-line tool. See also t: labels. label Jul 4, 2025
@jyameo jyameo changed the title Make device debuggable if useDwdsWebSocketConnection is true Make device debuggable if useDwdsWebSocketConnection is true and added simple test case Jul 4, 2025
Copy link
Contributor

@nshahan nshahan left a comment

Choose a reason for hiding this comment

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

LGTM with a few more comments.

Comment on lines 160 to 164
/// WebServer device is debuggable when running with --start-paused.
bool get deviceIsDebuggable => device!.device is! WebServerDevice || debuggingOptions.startPaused;
bool get deviceIsDebuggable =>
device!.device is! WebServerDevice ||
debuggingOptions.startPaused ||
_useDwdsWebSocketConnection;
Copy link
Contributor

Choose a reason for hiding this comment

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

Do we actually support debugging with the web socket connection without start paused?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

yes we do now. When we run the app from the terminal it runs without --start-paused. From vscode, it starts paused.

@jyameo jyameo requested a review from biggs0125 July 28, 2025 19:17
@jyameo jyameo requested a review from a team as a code owner July 29, 2025 14:49
@github-actions github-actions bot added the team-ios Owned by iOS platform team label Jul 29, 2025
@github-actions github-actions bot removed the team-ios Owned by iOS platform team label Jul 29, 2025
assert(connectDebug != null);
_connectionResult = await connectDebug;
unawaited(_connectionResult!.debugConnection!.onDone.whenComplete(_cleanupAndExit));
unawaited(
Copy link
Contributor

Choose a reason for hiding this comment

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

The diff is making it tricky to see but is this the key difference that is breaking the deadlock we were discussing?

Copy link
Contributor

@bkonyi bkonyi Aug 9, 2025

Choose a reason for hiding this comment

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

That's correct. The app.started event needs to go out for the tool to start the test driver process, and the VM service doesn't need to be configured before that's sent out since there's a separate app.debugPort event used to indicate that the service is available.

Attaching a listener to connectDebug instead of blocking on its completion and not requiring the service to be available before application startup lets us break the deadlock safely.

@bkonyi bkonyi added the autosubmit Merge PR when tree becomes green via auto submit App label Aug 9, 2025
@auto-submit auto-submit bot added this pull request to the merge queue Aug 9, 2025
Merged via the queue into flutter:master with commit 1590543 Aug 9, 2025
143 checks passed
@flutter-dashboard flutter-dashboard bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Aug 9, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Aug 9, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Aug 9, 2025
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Aug 9, 2025
flutter/flutter@3821790...1590543

2025-08-09 [email protected] Make device debuggable if useDwdsWebSocketConnection is true and added simple test case (flutter/flutter#171648)
2025-08-09 [email protected] Roll Dart SDK from 91cbf6d7563a to 6a7ae1ffd1c9 (1 revision) (flutter/flutter#173487)
2025-08-09 [email protected] add `--variance host_debug_unopt_arm64` for apple chip simulator (flutter/flutter#173475)
2025-08-08 [email protected] [WebParagraph] Fix a property name on newer Chrome versions (flutter/flutter#173477)
2025-08-08 [email protected] Make sure that a Checkbox doesn't crash in 0x0 environment (flutter/flutter#173178)
2025-08-08 [email protected] Make sure that a RawChip doesn't crash in 0x0 environment (flutter/flutter#173265)
2025-08-08 [email protected] Fix tooltip crash when route has secondary animation (flutter/flutter#172678)
2025-08-08 [email protected] Roll Skia from 86824ed582be to 44bb9d908ee4 (3 revisions) (flutter/flutter#173476)
2025-08-08 [email protected] Fix null value reference in `flutter logs` path (flutter/flutter#173437)
2025-08-08 [email protected] Remove jetifier usages from framework and engine (flutter/flutter#173459)
2025-08-08 [email protected] [a11y] Textfield has flag `isFocusable` set to true  (flutter/flutter#173235)
2025-08-08 [email protected] Roll Dart SDK from 4b7b565eb468 to 91cbf6d7563a (1 revision) (flutter/flutter#173469)
2025-08-08 [email protected] Roll Packages from 6efb759 to 34948d1 (4 revisions) (flutter/flutter#173470)
2025-08-08 [email protected] Roll Skia from a6ccfeafbfba to 86824ed582be (20 revisions) (flutter/flutter#173468)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC [email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
@jtmcdole
Copy link
Member

Reason for revert: Multiple breaking tree tests
image

@jtmcdole jtmcdole added the revert Autorevert PR (with "Reason for revert:" comment) label Aug 11, 2025
@auto-submit
Copy link
Contributor

auto-submit bot commented Aug 11, 2025

Time to revert pull request flutter/flutter/171648 has elapsed.
You need to open the revert manually and process as a regular pull request.

@auto-submit auto-submit bot removed the revert Autorevert PR (with "Reason for revert:" comment) label Aug 11, 2025
jtmcdole added a commit to jtmcdole/flutter that referenced this pull request Aug 11, 2025
github-merge-queue bot pushed a commit that referenced this pull request Aug 11, 2025
SydneyBao pushed a commit to SydneyBao/flutter that referenced this pull request Aug 11, 2025
…d simple test case (flutter#171648)

- Make device debuggable if useDwdsWebSocketConnection is true - This
change is needed to support hot reload on web-server devices over
websocket-based DWDS.
- Added simple test case to test hot reload over websocket

related to dart-lang/webdev#2605,
dart-lang/webdev#2645 and
dart-lang/webdev#2646

---------

Co-authored-by: Ben Konyi <[email protected]>
SydneyBao pushed a commit to SydneyBao/flutter that referenced this pull request Aug 11, 2025
ksokolovskyi pushed a commit to ksokolovskyi/flutter that referenced this pull request Aug 19, 2025
…d simple test case (flutter#171648)

- Make device debuggable if useDwdsWebSocketConnection is true - This
change is needed to support hot reload on web-server devices over
websocket-based DWDS.
- Added simple test case to test hot reload over websocket

related to dart-lang/webdev#2605,
dart-lang/webdev#2645 and
dart-lang/webdev#2646

---------

Co-authored-by: Ben Konyi <[email protected]>
ksokolovskyi pushed a commit to ksokolovskyi/flutter that referenced this pull request Aug 19, 2025
mboetger pushed a commit to mboetger/flutter that referenced this pull request Sep 18, 2025
…d simple test case (flutter#171648)

- Make device debuggable if useDwdsWebSocketConnection is true - This
change is needed to support hot reload on web-server devices over
websocket-based DWDS.
- Added simple test case to test hot reload over websocket

related to dart-lang/webdev#2605,
dart-lang/webdev#2645 and
dart-lang/webdev#2646

---------

Co-authored-by: Ben Konyi <[email protected]>
mboetger pushed a commit to mboetger/flutter that referenced this pull request Sep 18, 2025
korca0220 pushed a commit to korca0220/flutter that referenced this pull request Sep 22, 2025
…d simple test case (flutter#171648)

- Make device debuggable if useDwdsWebSocketConnection is true - This
change is needed to support hot reload on web-server devices over
websocket-based DWDS.
- Added simple test case to test hot reload over websocket

related to dart-lang/webdev#2605,
dart-lang/webdev#2645 and
dart-lang/webdev#2646

---------

Co-authored-by: Ben Konyi <[email protected]>
korca0220 pushed a commit to korca0220/flutter that referenced this pull request Sep 22, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

tool Affects the "flutter" command-line tool. See also t: labels.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants