| Index: extensions/browser/service_worker_manager.cc
|
| diff --git a/extensions/browser/service_worker_manager.cc b/extensions/browser/service_worker_manager.cc
|
| index 16167d4e3d9cfa31b25e5602c9fbb32d4b68f1b3..ec879faa184f61e372e2605d95b9aea5df83f3a2 100644
|
| --- a/extensions/browser/service_worker_manager.cc
|
| +++ b/extensions/browser/service_worker_manager.cc
|
| @@ -48,4 +48,20 @@ void ServiceWorkerManager::OnExtensionUninstalled(
|
| ->DeleteForOrigin(extension->url(), base::Bind(&EmptySuccessCallback));
|
| }
|
|
|
| +void ServiceWorkerManager::OnExtensionWillBeInstalled(
|
| + content::BrowserContext* browser_context,
|
| + const Extension* extension,
|
| + bool is_update,
|
| + bool from_ephemeral,
|
| + const std::string& old_name) {
|
| + if (is_update) {
|
| + // If |extension| is updated, then we need to fetch fresh ServiceWorker
|
| + // next time.
|
| + content::BrowserContext::GetStoragePartitionForSite(browser_context_,
|
| + extension->url())
|
| + ->GetServiceWorkerContext()
|
| + ->SetForceUpdateOnPageLoadForOrigin(extension->url());
|
| + }
|
| +}
|
| +
|
| } // namespace extensions
|
|
|