diff --git a/dev/bots/service_worker_test.dart b/dev/bots/service_worker_test.dart index 0b4612df8c3..95d898b9151 100644 --- a/dev/bots/service_worker_test.dart +++ b/dev/bots/service_worker_test.dart @@ -382,9 +382,8 @@ Future runWebServiceWorkerTest({ 'index.html': 2, if (shouldExpectFlutterJs) 'flutter.js': 1, - // We still download some resources multiple times if the server is non-caching. - 'main.dart.js': 2, - 'assets/FontManifest.json': 2, + 'main.dart.js': 1, + 'assets/FontManifest.json': 1, 'flutter_service_worker.js': 1, 'assets/AssetManifest.json': 1, 'assets/fonts/MaterialIcons-Regular.otf': 1, @@ -413,7 +412,6 @@ Future runWebServiceWorkerTest({ if (shouldExpectFlutterJs) 'flutter.js': 1, 'flutter_service_worker.js': 1, - 'assets/fonts/MaterialIcons-Regular.otf': 1, 'CLOSE': 1, if (!headless) 'manifest.json': 1, @@ -439,10 +437,9 @@ Future runWebServiceWorkerTest({ if (shouldExpectFlutterJs) 'flutter.js': 1, 'flutter_service_worker.js': 2, - 'main.dart.js': 2, + 'main.dart.js': 1, 'assets/AssetManifest.json': 1, - 'assets/FontManifest.json': 2, - 'assets/fonts/MaterialIcons-Regular.otf': 1, + 'assets/FontManifest.json': 1, 'CLOSE': 1, if (!headless) ...{ diff --git a/packages/flutter_tools/lib/src/web/file_generators/flutter_service_worker_js.dart b/packages/flutter_tools/lib/src/web/file_generators/flutter_service_worker_js.dart index 38ce0a89f40..3a371f04d7a 100644 --- a/packages/flutter_tools/lib/src/web/file_generators/flutter_service_worker_js.dart +++ b/packages/flutter_tools/lib/src/web/file_generators/flutter_service_worker_js.dart @@ -70,6 +70,8 @@ self.addEventListener("activate", function(event) { await caches.delete(TEMP); // Save the manifest to make future upgrades efficient. await manifestCache.put('manifest', new Response(JSON.stringify(RESOURCES))); + // Claim client to enable caching on first launch + self.clients.claim(); return; } var oldManifest = await manifest.json(); @@ -95,6 +97,8 @@ self.addEventListener("activate", function(event) { await caches.delete(TEMP); // Save the manifest to make future upgrades efficient. await manifestCache.put('manifest', new Response(JSON.stringify(RESOURCES))); + // Claim client to enable caching on first launch + self.clients.claim(); return; } catch (err) { // On an unhandled exception the state of the cache cannot be guaranteed.