Skip to content

Commit c5ceff1

Browse files
[flutter_tools] Ensure service worker starts caching assets since first load (#116833)
* [Flutter_tools] Ensure service worker starts caching assets since the first launch * [flutter_tools] add comment to give some context on self.clients.claim() * [flutter_tools] add comment to give some context on self.clients.claim()
1 parent 99e4ca5 commit c5ceff1

File tree

2 files changed

+8
-7
lines changed

2 files changed

+8
-7
lines changed

dev/bots/service_worker_test.dart

+4-7
Original file line numberDiff line numberDiff line change
@@ -382,9 +382,8 @@ Future<void> runWebServiceWorkerTest({
382382
'index.html': 2,
383383
if (shouldExpectFlutterJs)
384384
'flutter.js': 1,
385-
// We still download some resources multiple times if the server is non-caching.
386-
'main.dart.js': 2,
387-
'assets/FontManifest.json': 2,
385+
'main.dart.js': 1,
386+
'assets/FontManifest.json': 1,
388387
'flutter_service_worker.js': 1,
389388
'assets/AssetManifest.json': 1,
390389
'assets/fonts/MaterialIcons-Regular.otf': 1,
@@ -413,7 +412,6 @@ Future<void> runWebServiceWorkerTest({
413412
if (shouldExpectFlutterJs)
414413
'flutter.js': 1,
415414
'flutter_service_worker.js': 1,
416-
'assets/fonts/MaterialIcons-Regular.otf': 1,
417415
'CLOSE': 1,
418416
if (!headless)
419417
'manifest.json': 1,
@@ -439,10 +437,9 @@ Future<void> runWebServiceWorkerTest({
439437
if (shouldExpectFlutterJs)
440438
'flutter.js': 1,
441439
'flutter_service_worker.js': 2,
442-
'main.dart.js': 2,
440+
'main.dart.js': 1,
443441
'assets/AssetManifest.json': 1,
444-
'assets/FontManifest.json': 2,
445-
'assets/fonts/MaterialIcons-Regular.otf': 1,
442+
'assets/FontManifest.json': 1,
446443
'CLOSE': 1,
447444
if (!headless)
448445
...<String, int>{

packages/flutter_tools/lib/src/web/file_generators/flutter_service_worker_js.dart

+4
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,8 @@ self.addEventListener("activate", function(event) {
7070
await caches.delete(TEMP);
7171
// Save the manifest to make future upgrades efficient.
7272
await manifestCache.put('manifest', new Response(JSON.stringify(RESOURCES)));
73+
// Claim client to enable caching on first launch
74+
self.clients.claim();
7375
return;
7476
}
7577
var oldManifest = await manifest.json();
@@ -95,6 +97,8 @@ self.addEventListener("activate", function(event) {
9597
await caches.delete(TEMP);
9698
// Save the manifest to make future upgrades efficient.
9799
await manifestCache.put('manifest', new Response(JSON.stringify(RESOURCES)));
100+
// Claim client to enable caching on first launch
101+
self.clients.claim();
98102
return;
99103
} catch (err) {
100104
// On an unhandled exception the state of the cache cannot be guaranteed.

0 commit comments

Comments
 (0)