title: Service Worker not getting updated automatically in Progressive Web Application
body: <p>When I change some code in service worker,I expect to update previous service worker in the browsers.I have read that any changes in service-worker.js automatically refreshes it in the browser
   This is my service worker code:</p>
  
  <pre><code>var dataCacheName = 'demo-v5';
  
  var filesToCache = [
    '/',
    '/Home/Index',
    '/Home/AboutUs'  
  ];
  self.addEventListener('install', function (e) {
      console.log('[Service Worker] Install');
      e.waitUntil(
        caches.open(dataCacheName).then(function (cache) {
            console.log('[Service Worker] Caching app shell');
            return cache.addAll(filesToCache);
        })
      );
  });
  self.addEventListener('activate', function(e) {
      console.log('[ServiceWorker] Activated');
      caches.keys()
      e.waitUntil(
  
          // Get all the cache keys (cacheName)
          caches.keys().then(function(cacheNames) {
              return Promise.all(cacheNames.map(function(thisCacheName) {
  
                  // If a cached item is saved under a previous cacheName
                  if (thisCacheName !== dataCacheName) {
  
                      // Delete that cached file
                      console.log('[ServiceWorker] Removing Cached Files from Cache - ', thisCacheName);
                      return caches.delete(thisCacheName);
                  }
                  else
                  {
                      console.log('Else- ', thisCacheName);
                  }
              }));
          })
      ); // end e.waitUntil
  
    //  return self.clients.claim();
  });
  
  self.addEventListener('fetch', function (e) {
      console.log('[Service Worker] Fetch', e.request.url);
      var dataUrl = 'https://query.yahooapis.com/v1/public/yql';
      if (e.request.url.indexOf(dataUrl) &gt; -1) {
        e.respondWith(
            caches.open(dataCacheName).then(function (cache) {
                return fetch(e.request).then(function (response) {
                    cache.put(e.request.url, response.clone());
                    return response;
                });
            })
          );
      } else {
  
          e.respondWith(
            caches.match(e.request).then(function (response) {
                return response || fetch(e.request);
            })
          );
      }
  });
  </code></pre>