Skip to content

Conversation

@mdebbar
Copy link
Contributor

@mdebbar mdebbar commented Oct 10, 2025

Introduce a self-cleaning service worker to replace the old one.

Previous attempts (#170918, #173609) had (accidentally?) disabled the loading of the service worker in flutter.js. This PR preserves the logic for loading the service worker, and it prints a deprecation warning.

Towards #156910
Closes #106225

@github-actions github-actions bot added tool Affects the "flutter" command-line tool. See also t: labels. engine flutter/engine related. See also e: labels. platform-web Web applications specifically labels Oct 10, 2025
Copy link
Contributor

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

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 introduces a self-cleaning service worker to replace the previous caching service worker, which is a significant and positive simplification. The changes are extensive, affecting the Flutter tool, flutter.js, and various test files. The new service worker's role is to unregister itself and reload clients, effectively removing the old caching behavior. The logic in flutter.js is cleverly updated to only register this new worker if an old one is detected, ensuring a smooth transition for existing applications while not affecting new ones. The test suite has been appropriately refactored with a new integration test that validates this cleanup mechanism. The implementation is solid, but I have one suggestion to improve the robustness of the test code.

@mdebbar mdebbar requested a review from jtmcdole as a code owner October 14, 2025 15:21
@github-actions github-actions bot added framework flutter/packages/flutter repository. See also f: labels. f: material design flutter/packages/flutter/material repository. f: cupertino flutter/packages/flutter/cupertino repository labels Oct 14, 2025
@github-actions github-actions bot removed framework flutter/packages/flutter repository. See also f: labels. f: material design flutter/packages/flutter/material repository. f: cupertino flutter/packages/flutter/cupertino repository labels Oct 14, 2025
@mdebbar mdebbar requested a review from ditman October 16, 2025 15:49
Copy link
Member

@ditman ditman left a comment

Choose a reason for hiding this comment

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

This is great; I only have a small comment in the code of the cleanup service worker about refreshing "too many" tabs and to follow the workbox example. But all my comments are nits, or unrelated to this specific change. LGTM!

''');

/// index_with_flutterjs_short.html
String indexHtmlFlutterJsPromisesShort = _generateFlutterJsIndexHtml('''
Copy link
Member

Choose a reason for hiding this comment

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

IIRC the promise-based initialization has been warning a "use callbacks" message for a few years now, consider removing it!

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The warning was added because the promise-based API has issues with hot restart (context: #108776).

I imagine the same issue still exists today, so the warning is still valid.

This was referenced Oct 16, 2025
@mdebbar mdebbar added the autosubmit Merge PR when tree becomes green via auto submit App label Oct 16, 2025
@auto-submit
Copy link
Contributor

auto-submit bot commented Oct 16, 2025

autosubmit label was removed for flutter/flutter/176834, because - The status or check suite Linux gradle_plugin_light_apk_test has failed. Please fix the issues identified (or deflake) before re-applying this label.

@auto-submit auto-submit bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Oct 16, 2025
@mdebbar mdebbar added the autosubmit Merge PR when tree becomes green via auto submit App label Oct 16, 2025
@auto-submit auto-submit bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Oct 16, 2025
@auto-submit
Copy link
Contributor

auto-submit bot commented Oct 16, 2025

autosubmit label was removed for flutter/flutter/176834, because - The status or check suite Linux linux_fuchsia_tests has failed. Please fix the issues identified (or deflake) before re-applying this label.

@mdebbar mdebbar added the autosubmit Merge PR when tree becomes green via auto submit App label Oct 17, 2025
@auto-submit auto-submit bot added this pull request to the merge queue Oct 17, 2025
Merged via the queue into flutter:master with commit f94a942 Oct 17, 2025
183 of 184 checks passed
@flutter-dashboard flutter-dashboard bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Oct 17, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Oct 18, 2025
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Oct 18, 2025
Roll Flutter from a873a27 to 891d7d5 (32 revisions)

flutter/flutter@a873a27...891d7d5

2025-10-18 engine-flutter-autoroll@skia.org Roll Skia from b4981b621a54 to 74df18176924 (1 revision) (flutter/flutter#177204)
2025-10-18 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from ZHuhfPyyV-LcKDLRh... to M8WT2GMY46e_0fFho... (flutter/flutter#177200)
2025-10-18 59215665+davidhicks980@users.noreply.github.com [material/dropdown_menu.dart] Refactor  _RenderDropdownMenuBody.computeDryLayout  (flutter/flutter#176503)
2025-10-18 engine-flutter-autoroll@skia.org Roll Skia from 579c72d673dd to b4981b621a54 (2 revisions) (flutter/flutter#177199)
2025-10-17 engine-flutter-autoroll@skia.org Roll Skia from 89a8bc508a7c to 579c72d673dd (15 revisions) (flutter/flutter#177194)
2025-10-17 paulberry@google.com [test_fixes] Enable `deprecated_member_use_from_same_package`. (flutter/flutter#177183)
2025-10-17 jhy03261997@gmail.com [a11y] fix table semantics cache for cells  (flutter/flutter#177073)
2025-10-17 mdebbar@google.com [web] Self-cleaning service worker (flutter/flutter#176834)
2025-10-17 engine-flutter-autoroll@skia.org Manual roll Skia from 2d9df7c70b6f to 89a8bc508a7c (24 revisions) (flutter/flutter#177182)
2025-10-17 matt.kosarek@canonical.com Fixing WindowManagerTest::DialogCanNeverBeFullscreen possibly hanging (flutter/flutter#177179)
2025-10-17 jhy03261997@gmail.com [VPAT][A11y][a11y-app] Add a text label to slider.  (flutter/flutter#177130)
2025-10-17 engine-flutter-autoroll@skia.org Manual roll Dart SDK from a4485e5ef821 to a66f334fee2a (5 revisions) (flutter/flutter#177142)
2025-10-17 jhy03261997@gmail.com [web][a11y] Fix the semantics tree reconstruction logic when a subtree is reparented to another node.  (flutter/flutter#177069)
2025-10-17 rmolivares@renzo-olivares.dev `SelectableRegion` should use flutter rendered menu on the web for Android and iOS (flutter/flutter#177122)
2025-10-17 kazbek.sultanov.doc@gmail.com Refactor: Convert Title widget to StatefulWidget (flutter/flutter#176010)
2025-10-17 jessiewong401@gmail.com Bump AGP, KGP, Gradle Templates (flutter/flutter#176858)
2025-10-17 engine-flutter-autoroll@skia.org Roll Packages from 835dccb to 3747006 (3 revisions) (flutter/flutter#177170)
2025-10-17 codefu@google.com Mark windows_unopt test as flakey (flutter/flutter#177173)
2025-10-17 rmolivares@renzo-olivares.dev Tapping outside of `SelectableRegion` should dismiss the selection (flutter/flutter#176843)
2025-10-17 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from _dd0Jv50H0oUI2Ad8... to ZHuhfPyyV-LcKDLRh... (flutter/flutter#177137)
2025-10-17 jason-simmons@users.noreply.github.com Manual roll Dart to a4485e5ef821 (3.11.0-25.0.dev) (flutter/flutter#177132)
2025-10-17 ahmedsameha1@gmail.com Make sure that a MenuAcceleratorLabel doesn't crash in 0x0 environment (flutter/flutter#176646)
2025-10-16 ahmedsameha1@gmail.com Make sure that a NavigationRail doesn't crash in 0x0 environment (flutter/flutter#177022)
2025-10-16 ahmedsameha1@gmail.com Make sure that a SubmenuButton doesn't crash in 0x0 environment (flutter/flutter#176535)
2025-10-16 mail@leuchte.net Fix typo in ButtonBar documentation (flutter/flutter#177078)
2025-10-16 ahmedsameha1@gmail.com Make sure that an InkResponse doesn't crash in 0x0 environment (flutter/flutter#175426)
2025-10-16 jessiewong401@gmail.com [Gradle 9] Resolve Gradle 9 Deprecations in flutter/flutter part 1 (flutter/flutter#176865)
2025-10-16 1063596+reidbaker@users.noreply.github.com Revert "Resolve resolve native Flutter dependencies in Android Studio (#167332)" (flutter/flutter#177053)
2025-10-16 engine-flutter-autoroll@skia.org Manual roll Dart SDK from 2d8e0359a767 to 25b6094026e4 (5 revisions) (flutter/flutter#177109)
2025-10-16 maxenceb1207@gmail.com Add textfield prop to SearchAnchor (flutter/flutter#174497)
2025-10-16 p1318k@gmail.com Fix crash when NSAttributedString is passed to insertText on macOS (flutter/flutter#176329)
2025-10-16 jmccandless@google.com Correct basque time format (flutter/flutter#177031)

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 stuartmorgan@google.com,tarrinneal@google.com 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
...
@mdebbar mdebbar deleted the self_cleaning_sw branch October 20, 2025 17:11
reidbaker pushed a commit to AbdeMohlbi/flutter that referenced this pull request Dec 10, 2025
Introduce a self-cleaning service worker to replace the old one.

Previous attempts (flutter#170918,
flutter#173609) had (accidentally?)
disabled the loading of the service worker in `flutter.js`. This PR
preserves the logic for loading the service worker, and it prints a
deprecation warning.

Towards flutter#156910
Closes flutter#106225
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

engine flutter/engine related. See also e: labels. platform-web Web applications specifically tool Affects the "flutter" command-line tool. See also t: labels.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[web] Improve dev/bots/service_worker_test

2 participants