Skip to content

Conversation

@david-landeros
Copy link
Contributor

As a performance improvement, this PR ensure service worker starts caching assets since the very first load by calling self.clients.claim(),

Fixes: #115336

This is how the service worker behaves now:

  • Load page for the first time, and service worker gets installed
  • Request asset cat.jpg and service worker caches it right away
  • Load the page for the 2nd time and it must be taken from the cache.
cat-fixed.mp4

Pre-launch Checklist

  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
  • I read the Tree Hygiene wiki page, which explains my responsibilities.
  • I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
  • I signed the CLA.
  • I listed at least one issue that this PR fixes in the description above.
  • I updated/added relevant documentation (doc comments with ///).
  • I updated existing tests to check the change I am making, or this PR is test-exempt.
  • All existing and new tests are passing.

@flutter-dashboard flutter-dashboard bot added c: contributor-productivity Team-specific productivity, code health, technical debt. tool Affects the "flutter" command-line tool. See also t: labels. labels Dec 10, 2022
@david-landeros
Copy link
Contributor Author

david-landeros commented Dec 10, 2022

@christopherfujino @ditman @yjbanov I closed the PR #115374 which was already approved because the Google testing got stuck and I screwed by rebasing my branch and pushing again in an attempt to wake it up.

@kevmoo
Copy link
Contributor

kevmoo commented Dec 10, 2022

👍

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.

LGTM, @yjbanov do we want to add any metrics or something to evaluate the impact of this change?

@flutter-dashboard
Copy link

This pull request executed golden file tests, but it has not been updated in a while (20+ days). Test results from Gold expire after as many days, so this pull request will need to be updated with a fresh commit in order to get results from Gold.

For more guidance, visit Writing a golden file test for package:flutter.

Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing.

@XilaiZhang
Copy link
Contributor

I code sniped on why "google testing" is pending for this pr for a while but haven't made great progress, my tech lead @CaseyHillers might have better insights

@christopherfujino
Copy link
Contributor

@davidlanderos-digital I think "Google testing" is stuck because of infra issues, would you mind re-basing this branch upstream?

@XilaiZhang
Copy link
Contributor

right like christopher said i am working on cl/501100017

@david-landeros david-landeros force-pushed the fix-service-worker-not-caching-since-first-launch branch from 7718d0d to 60ffb1b Compare January 18, 2023 23:44
@david-landeros
Copy link
Contributor Author

I've rebased and pushed my branch👍🏼

Copy link
Contributor

@christopherfujino christopherfujino left a comment

Choose a reason for hiding this comment

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

LGTM

@christopherfujino christopherfujino added the autosubmit Merge PR when tree becomes green via auto submit App label Jan 19, 2023
@auto-submit auto-submit bot merged commit c5ceff1 into flutter:master Jan 19, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jan 20, 2023
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Jan 20, 2023
* da5f8cf Roll Flutter Engine from a512cebdcd30 to 7dc5e7efa66a (2 revisions) (flutter/flutter#118505)

* baefecc 35479aa1c Roll Fuchsia Mac SDK from 21nYb648VWbpxc36t... to w0hr1ZMvYGJnWInwK... (flutter/engine#38880) (flutter/flutter#118509)

* ca300ce 25cb82272 Add include to make g3 happy (flutter/engine#38850) (flutter/flutter#118510)

* 1220245 f79030440 Roll Skia from c72c7bf7e45b to c64a10d525d1 (7 revisions) (flutter/engine#38858) (flutter/flutter#118511)

* 7188c3e Update documentation about accent color (flutter/flutter#116778)

* 8c2fdb8 M3 Button padding adjustments (flutter/flutter#118449)

* f22280a Revert "M3 Button padding adjustments (#118449)" (flutter/flutter#118598)

* cc7845e Post a ToolEvent when selecting widget for inspection (flutter/flutter#118098)

* a3629a2 Roll Plugins from 92a5367d58df to 4e5cf2d2da27 (8 revisions) (flutter/flutter#118624)

* ae7b99e Rename `_*Marker` classes to be `_*Scope`, for consistency (flutter/flutter#118070)

* 6fafbc3 Updated tokens to v0.152 (flutter/flutter#118594)

* 4b3cf9b Add reference to HardwareKeyboard in RawKeyboard documentation (flutter/flutter#118607)

* 0449030 Disable Xcode cache cleanup (flutter/flutter#118641)

* f989d55 Devicelab android emulator (flutter/flutter#113472)

* 0eaa83a Fix some Focus related documentation typos (flutter/flutter#118576)

* 780563c Add const constructor to TextInputFormatter (flutter/flutter#116654)

* 973cff4 [Re-land] Button padding m3 (flutter/flutter#118640)

* 3348987 Add new macos target configured for flavors (flutter/flutter#117352)

* 6277520 Roll Plugins from 4e5cf2d2da27 to 11361d01099d (4 revisions) (flutter/flutter#118682)

* 997d436 Fix applyBoxFit's handling of fitWidth and fitHeight. (flutter/flutter#117185)

* 8a58ec5 Roll Flutter Engine from f79030440948 to c52b290813bd (29 revisions) (flutter/flutter#118720)

* 374f09e [flutter_tools] No more implicit --no-sound-null-safety (flutter/flutter#118491)

* ae1cc18 remove single-view assumption from `paintImage` (flutter/flutter#118721)

* bb8b96a Fix path for require.js (flutter/flutter#118722)

* c83a698 update uikit view documentation (flutter/flutter#118715)

* 2b3ca0d Bump github/codeql-action from 2.1.38 to 2.1.39 (flutter/flutter#118735)

* 666dccc [macOS] bringup new e2e_summary devicelab test (flutter/flutter#118717)

* d07b88e Docs fix an=>a (flutter/flutter#118652)

* 11d21e0 Add @pragma('vm:entry-point') to RestorableRouteBuilder arguments (flutter/flutter#118738)

* 7d9eaab Appbar iconTheme override fix (flutter/flutter#118681)

* 6f70830 Roll Flutter Engine from c52b290813bd to 290636c1cb6b (2 revisions) (flutter/flutter#118743)

* b3059d2 Bump activesupport from 6.1.5 to 6.1.7.1 in /dev/ci/mac (flutter/flutter#118745)

* ffcf63a Add verbose flag to plugin_dependencies_test to debug flake (flutter/flutter#118755)

* 2609212 2a11023c7 [ios_platform_view] more precision when determine if a clip rrect is necessary (flutter/engine#38965) (flutter/flutter#118751)

* 21fb443 8ed6790b5 Bump chrome_and_driver version to 110. (flutter/engine#38986) (flutter/flutter#118758)

* e5c9d06 Forgot to remove emulator flag. (flutter/flutter#118762)

* 6a9b2db 95b0c151f Roll Dart SDK from 645fd748e79e to ddf70a598f27 (14 revisions) (flutter/engine#38990) (flutter/flutter#118763)

* 0bbb5ec 40f7f0f09 Roll Fuchsia Mac SDK from P5QcCJU8I71xVXuMT... to tlYMsnCv86Fjt5LfF... (flutter/engine#38994) (flutter/flutter#118771)

* d53cc4a [macOS] New e2e_summary benchmark fails without Cocoapods. (flutter/flutter#118754)

* 3e71e0c Updated `ListTile` documentation, add Material 3 example and other `ListTile` examples fixes. (flutter/flutter#118705)

* 213b3cb Check whether slider is mounted before interaction, no-op if unmounted (flutter/flutter#113556)

* 06909cc Update packages + fix tests for javascript mime change (flutter/flutter#118617)

* 46c7fd1 88e61d8bd Remove references to Observatory (flutter/engine#38919) (flutter/flutter#118793)

* b9ab640 Remove incorrect statement in documentation (flutter/flutter#118636)

* ea36b3a Add focus detector to CupertinoSwitch (flutter/flutter#118345)

* 9b5ea30 Switching over from iOS-15 to iOS-16 in .ci.yaml. (flutter/flutter#118807)

* 67ffaef 29a0582a1 Roll Fuchsia Mac SDK from tlYMsnCv86Fjt5LfF... to 6oiZwMyNsjucSxTHJ... (flutter/engine#39004) (flutter/flutter#118817)

* 5cd2d4c Support iOS wireless debugging (flutter/flutter#118104)

* cbf2e16 Revert "Support iOS wireless debugging (#118104)" (flutter/flutter#118826)

* 2258590 Do not run Mac_arm64_ios run_debug_test_macos in presubmit during iPhone 11 migration (flutter/flutter#118828)

* 1dd7f45 Add `build macos --config-only` option. (flutter/flutter#118649)

* 22520f5 [macOS] Add timeline summary benchmarks (flutter/flutter#118748)

* 99e4ca5 Roll Flutter Engine from 29a0582a1d5f to 78bbea005d27 (2 revisions) (flutter/flutter#118829)

* c5ceff1 [flutter_tools] Ensure service worker starts caching assets since first load  (flutter/flutter#116833)

* 818bb4e Roll Flutter Engine from 78bbea005d27 to 26b6609c603b (3 revisions) (flutter/flutter#118839)

* 09bd0f6 Support logging 'flutter run' communication to DAP clients (flutter/flutter#118674)

* 73096fd [macos] add flavor options to commands in the `flutter_tool` (flutter/flutter#118421)
@XilaiZhang
Copy link
Contributor

oh wow the fix actually worked and google testing passed?

engine-flutter-autoroll added a commit to engine-flutter-autoroll/plugins that referenced this pull request Jan 20, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/plugins that referenced this pull request Jan 20, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/plugins that referenced this pull request Jan 20, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/plugins that referenced this pull request Jan 20, 2023
auto-submit bot pushed a commit to flutter/plugins that referenced this pull request Jan 20, 2023
* 3348987 Add new macos target configured for flavors (flutter/flutter#117352)

* 6277520 Roll Plugins from 4e5cf2d to 11361d0 (4 revisions) (flutter/flutter#118682)

* 997d436 Fix applyBoxFit's handling of fitWidth and fitHeight. (flutter/flutter#117185)

* 8a58ec5 Roll Flutter Engine from f79030440948 to c52b290813bd (29 revisions) (flutter/flutter#118720)

* 374f09e [flutter_tools] No more implicit --no-sound-null-safety (flutter/flutter#118491)

* ae1cc18 remove single-view assumption from `paintImage` (flutter/flutter#118721)

* bb8b96a Fix path for require.js (flutter/flutter#118722)

* c83a698 update uikit view documentation (flutter/flutter#118715)

* 2b3ca0d Bump github/codeql-action from 2.1.38 to 2.1.39 (flutter/flutter#118735)

* 666dccc [macOS] bringup new e2e_summary devicelab test (flutter/flutter#118717)

* d07b88e Docs fix an=>a (flutter/flutter#118652)

* 11d21e0 Add @pragma('vm:entry-point') to RestorableRouteBuilder arguments (flutter/flutter#118738)

* 7d9eaab Appbar iconTheme override fix (flutter/flutter#118681)

* 6f70830 Roll Flutter Engine from c52b290813bd to 290636c1cb6b (2 revisions) (flutter/flutter#118743)

* b3059d2 Bump activesupport from 6.1.5 to 6.1.7.1 in /dev/ci/mac (flutter/flutter#118745)

* ffcf63a Add verbose flag to plugin_dependencies_test to debug flake (flutter/flutter#118755)

* 2609212 2a11023c7 [ios_platform_view] more precision when determine if a clip rrect is necessary (flutter/engine#38965) (flutter/flutter#118751)

* 21fb443 8ed6790b5 Bump chrome_and_driver version to 110. (flutter/engine#38986) (flutter/flutter#118758)

* e5c9d06 Forgot to remove emulator flag. (flutter/flutter#118762)

* 6a9b2db 95b0c151f Roll Dart SDK from 645fd748e79e to ddf70a598f27 (14 revisions) (flutter/engine#38990) (flutter/flutter#118763)

* 0bbb5ec 40f7f0f09 Roll Fuchsia Mac SDK from P5QcCJU8I71xVXuMT... to tlYMsnCv86Fjt5LfF... (flutter/engine#38994) (flutter/flutter#118771)

* d53cc4a [macOS] New e2e_summary benchmark fails without Cocoapods. (flutter/flutter#118754)

* 3e71e0c Updated `ListTile` documentation, add Material 3 example and other `ListTile` examples fixes. (flutter/flutter#118705)

* 213b3cb Check whether slider is mounted before interaction, no-op if unmounted (flutter/flutter#113556)

* 06909cc Update packages + fix tests for javascript mime change (flutter/flutter#118617)

* 46c7fd1 88e61d8bd Remove references to Observatory (flutter/engine#38919) (flutter/flutter#118793)

* b9ab640 Remove incorrect statement in documentation (flutter/flutter#118636)

* ea36b3a Add focus detector to CupertinoSwitch (flutter/flutter#118345)

* 9b5ea30 Switching over from iOS-15 to iOS-16 in .ci.yaml. (flutter/flutter#118807)

* 67ffaef 29a0582a1 Roll Fuchsia Mac SDK from tlYMsnCv86Fjt5LfF... to 6oiZwMyNsjucSxTHJ... (flutter/engine#39004) (flutter/flutter#118817)

* 5cd2d4c Support iOS wireless debugging (flutter/flutter#118104)

* cbf2e16 Revert "Support iOS wireless debugging (#118104)" (flutter/flutter#118826)

* 2258590 Do not run Mac_arm64_ios run_debug_test_macos in presubmit during iPhone 11 migration (flutter/flutter#118828)

* 1dd7f45 Add `build macos --config-only` option. (flutter/flutter#118649)

* 22520f5 [macOS] Add timeline summary benchmarks (flutter/flutter#118748)

* 99e4ca5 Roll Flutter Engine from 29a0582a1d5f to 78bbea005d27 (2 revisions) (flutter/flutter#118829)

* c5ceff1 [flutter_tools] Ensure service worker starts caching assets since first load  (flutter/flutter#116833)

* 818bb4e Roll Flutter Engine from 78bbea005d27 to 26b6609c603b (3 revisions) (flutter/flutter#118839)

* 09bd0f6 Support logging 'flutter run' communication to DAP clients (flutter/flutter#118674)

* 73096fd [macos] add flavor options to commands in the `flutter_tool` (flutter/flutter#118421)

* 030288d Revert "[macos] add flavor options to commands in the `flutter_tool` (#118421)" (flutter/flutter#118858)

* 9acf34d Roll Flutter Engine from 26b6609c603b to 7d40e77d0035 (2 revisions) (flutter/flutter#118852)

* ec51d32 Remove unnecessary null checks in ‘dev/conductor’ (flutter/flutter#118843)

* 54217bd Remove unnecessary null checks in `dev/benchmarks` (flutter/flutter#118840)

* 98c18ca Remove unnecessary null checks in examples/ (flutter/flutter#118848)

* 99b5262 Remove unnecessary null checks in dev/tools (flutter/flutter#118845)

* 52d1205 Roll Flutter Engine from 7d40e77d0035 to 730e88fb6787 (3 revisions) (flutter/flutter#118869)

* ee9c9b6 3876320cb Roll Skia from aedfc8695954 to 1b3aa8b6e1cc (43 revisions) (flutter/engine#39024) (flutter/flutter#118871)

* 589f2eb d2436a536 Extract WideToUTF16String/UTF16StringToWide to FML (flutter/engine#39020) (flutter/flutter#118873)

* 74645b4 Fix `NavigationBar` indicator ripple doesn't account for label height (flutter/flutter#117473)

* f78b1f3 dfe67f4c7 Roll Skia from 1b3aa8b6e1cc to f6a5c806294d (11 revisions) (flutter/engine#39027) (flutter/flutter#118874)

* 572f0a1 66e177a3d Roll Dart SDK from ddf70a598f27 to fbbfc122dba6 (9 revisions) (flutter/engine#39029) (flutter/flutter#118878)

* 26472b5 ccccee513 [macos] Synthesize modifier keys events on pointer events (flutter/engine#37870) (flutter/flutter#118880)

* 095b1ab Checkbox borderSide lerp bug fix (flutter/flutter#118728)

* ec6ff90 Roll Flutter Engine from ccccee513fb2 to d84b3dc74c9f (2 revisions) (flutter/flutter#118893)

* 492d572 Cleanup obsolete --compact-async compiler option (flutter/flutter#118894)

* f291eb3 Remove unnecessary null checks in integration_test (flutter/flutter#118861)

* ab3c822 Remove unnecessary null checks in dev/devicelab (flutter/flutter#118842)

* bf72f5e 58eb1061e Revert "Remove references to Observatory (#38919)" (flutter/engine#39035) (flutter/flutter#118899)

* a07e8a6 [reland] Support wireless debugging (flutter/flutter#118895)
mauricioluz pushed a commit to mauricioluz/plugins that referenced this pull request Jan 26, 2023
* 3348987 Add new macos target configured for flavors (flutter/flutter#117352)

* 6277520 Roll Plugins from 4e5cf2d to 11361d0 (4 revisions) (flutter/flutter#118682)

* 997d436 Fix applyBoxFit's handling of fitWidth and fitHeight. (flutter/flutter#117185)

* 8a58ec5 Roll Flutter Engine from f79030440948 to c52b290813bd (29 revisions) (flutter/flutter#118720)

* 374f09e [flutter_tools] No more implicit --no-sound-null-safety (flutter/flutter#118491)

* ae1cc18 remove single-view assumption from `paintImage` (flutter/flutter#118721)

* bb8b96a Fix path for require.js (flutter/flutter#118722)

* c83a698 update uikit view documentation (flutter/flutter#118715)

* 2b3ca0d Bump github/codeql-action from 2.1.38 to 2.1.39 (flutter/flutter#118735)

* 666dccc [macOS] bringup new e2e_summary devicelab test (flutter/flutter#118717)

* d07b88e Docs fix an=>a (flutter/flutter#118652)

* 11d21e0 Add @pragma('vm:entry-point') to RestorableRouteBuilder arguments (flutter/flutter#118738)

* 7d9eaab Appbar iconTheme override fix (flutter/flutter#118681)

* 6f70830 Roll Flutter Engine from c52b290813bd to 290636c1cb6b (2 revisions) (flutter/flutter#118743)

* b3059d2 Bump activesupport from 6.1.5 to 6.1.7.1 in /dev/ci/mac (flutter/flutter#118745)

* ffcf63a Add verbose flag to plugin_dependencies_test to debug flake (flutter/flutter#118755)

* 2609212 2a11023c7 [ios_platform_view] more precision when determine if a clip rrect is necessary (flutter/engine#38965) (flutter/flutter#118751)

* 21fb443 8ed6790b5 Bump chrome_and_driver version to 110. (flutter/engine#38986) (flutter/flutter#118758)

* e5c9d06 Forgot to remove emulator flag. (flutter/flutter#118762)

* 6a9b2db 95b0c151f Roll Dart SDK from 645fd748e79e to ddf70a598f27 (14 revisions) (flutter/engine#38990) (flutter/flutter#118763)

* 0bbb5ec 40f7f0f09 Roll Fuchsia Mac SDK from P5QcCJU8I71xVXuMT... to tlYMsnCv86Fjt5LfF... (flutter/engine#38994) (flutter/flutter#118771)

* d53cc4a [macOS] New e2e_summary benchmark fails without Cocoapods. (flutter/flutter#118754)

* 3e71e0c Updated `ListTile` documentation, add Material 3 example and other `ListTile` examples fixes. (flutter/flutter#118705)

* 213b3cb Check whether slider is mounted before interaction, no-op if unmounted (flutter/flutter#113556)

* 06909cc Update packages + fix tests for javascript mime change (flutter/flutter#118617)

* 46c7fd1 88e61d8bd Remove references to Observatory (flutter/engine#38919) (flutter/flutter#118793)

* b9ab640 Remove incorrect statement in documentation (flutter/flutter#118636)

* ea36b3a Add focus detector to CupertinoSwitch (flutter/flutter#118345)

* 9b5ea30 Switching over from iOS-15 to iOS-16 in .ci.yaml. (flutter/flutter#118807)

* 67ffaef 29a0582a1 Roll Fuchsia Mac SDK from tlYMsnCv86Fjt5LfF... to 6oiZwMyNsjucSxTHJ... (flutter/engine#39004) (flutter/flutter#118817)

* 5cd2d4c Support iOS wireless debugging (flutter/flutter#118104)

* cbf2e16 Revert "Support iOS wireless debugging (#118104)" (flutter/flutter#118826)

* 2258590 Do not run Mac_arm64_ios run_debug_test_macos in presubmit during iPhone 11 migration (flutter/flutter#118828)

* 1dd7f45 Add `build macos --config-only` option. (flutter/flutter#118649)

* 22520f5 [macOS] Add timeline summary benchmarks (flutter/flutter#118748)

* 99e4ca5 Roll Flutter Engine from 29a0582a1d5f to 78bbea005d27 (2 revisions) (flutter/flutter#118829)

* c5ceff1 [flutter_tools] Ensure service worker starts caching assets since first load  (flutter/flutter#116833)

* 818bb4e Roll Flutter Engine from 78bbea005d27 to 26b6609c603b (3 revisions) (flutter/flutter#118839)

* 09bd0f6 Support logging 'flutter run' communication to DAP clients (flutter/flutter#118674)

* 73096fd [macos] add flavor options to commands in the `flutter_tool` (flutter/flutter#118421)

* 030288d Revert "[macos] add flavor options to commands in the `flutter_tool` (#118421)" (flutter/flutter#118858)

* 9acf34d Roll Flutter Engine from 26b6609c603b to 7d40e77d0035 (2 revisions) (flutter/flutter#118852)

* ec51d32 Remove unnecessary null checks in ‘dev/conductor’ (flutter/flutter#118843)

* 54217bd Remove unnecessary null checks in `dev/benchmarks` (flutter/flutter#118840)

* 98c18ca Remove unnecessary null checks in examples/ (flutter/flutter#118848)

* 99b5262 Remove unnecessary null checks in dev/tools (flutter/flutter#118845)

* 52d1205 Roll Flutter Engine from 7d40e77d0035 to 730e88fb6787 (3 revisions) (flutter/flutter#118869)

* ee9c9b6 3876320cb Roll Skia from aedfc8695954 to 1b3aa8b6e1cc (43 revisions) (flutter/engine#39024) (flutter/flutter#118871)

* 589f2eb d2436a536 Extract WideToUTF16String/UTF16StringToWide to FML (flutter/engine#39020) (flutter/flutter#118873)

* 74645b4 Fix `NavigationBar` indicator ripple doesn't account for label height (flutter/flutter#117473)

* f78b1f3 dfe67f4c7 Roll Skia from 1b3aa8b6e1cc to f6a5c806294d (11 revisions) (flutter/engine#39027) (flutter/flutter#118874)

* 572f0a1 66e177a3d Roll Dart SDK from ddf70a598f27 to fbbfc122dba6 (9 revisions) (flutter/engine#39029) (flutter/flutter#118878)

* 26472b5 ccccee513 [macos] Synthesize modifier keys events on pointer events (flutter/engine#37870) (flutter/flutter#118880)

* 095b1ab Checkbox borderSide lerp bug fix (flutter/flutter#118728)

* ec6ff90 Roll Flutter Engine from ccccee513fb2 to d84b3dc74c9f (2 revisions) (flutter/flutter#118893)

* 492d572 Cleanup obsolete --compact-async compiler option (flutter/flutter#118894)

* f291eb3 Remove unnecessary null checks in integration_test (flutter/flutter#118861)

* ab3c822 Remove unnecessary null checks in dev/devicelab (flutter/flutter#118842)

* bf72f5e 58eb1061e Revert "Remove references to Observatory (#38919)" (flutter/engine#39035) (flutter/flutter#118899)

* a07e8a6 [reland] Support wireless debugging (flutter/flutter#118895)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

autosubmit Merge PR when tree becomes green via auto submit App c: contributor-productivity Team-specific productivity, code health, technical debt. tool Affects the "flutter" command-line tool. See also t: labels.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Flutter web] Assets are downloaded again in the 2nd visit despite service worker

5 participants