From d5e7e37135d87106a7d6f61fd58b62c83b6c986c Mon Sep 17 00:00:00 2001 From: "Hai, Trinh Duy" Date: Mon, 12 Nov 2018 15:56:49 +0700 Subject: [PATCH 1/2] Fix issue regarding to always run when running on current version --- lib/misc/sw-template.js | 2 +- src/misc/sw-template.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/misc/sw-template.js b/lib/misc/sw-template.js index 37d7d1c1..315be51b 100644 --- a/lib/misc/sw-template.js +++ b/lib/misc/sw-template.js @@ -124,7 +124,7 @@ function WebpackServiceWorker(params, helpers) { var lastMap = lastData.hashmap; var lastVersion = lastData.version; - if (!lastData.hashmap || lastVersion === params.version) { + if (!lastData.hashmap || lastVersion !== params.version) { return cacheAssets(section); } diff --git a/src/misc/sw-template.js b/src/misc/sw-template.js index 8dfe6afe..5ee51af7 100644 --- a/src/misc/sw-template.js +++ b/src/misc/sw-template.js @@ -125,7 +125,7 @@ function WebpackServiceWorker(params, helpers) { const lastMap = lastData.hashmap; const lastVersion = lastData.version; - if (!lastData.hashmap || lastVersion === params.version) { + if (!lastData.hashmap || lastVersion !== params.version) { return cacheAssets(section); } From fbe72510ecc755674818275d7737864d09eec81d Mon Sep 17 00:00:00 2001 From: "Hai, Trinh Duy" Date: Tue, 13 Nov 2018 16:56:30 +0700 Subject: [PATCH 2/2] Fix issue regarding to always run cacheAssets when running on the same current version --- package.json | 2 ++ .../fixtures/appshell-absolute-path/__expected/webpack4/sw.js | 2 +- .../legacy/fixtures/appshell-basic/__expected/webpack4/sw.js | 2 +- .../fixtures/basic-wIth-sw-out/__expected/webpack4/sw.js | 2 +- .../basic-with-sw-custom-entry/__expected/webpack4/sw.js | 2 +- .../legacy/fixtures/cachemaps-basic/__expected/webpack4/sw.js | 2 +- .../__expected/webpack4/appcache/manifest.appcache | 2 +- .../__expected/webpack4/sw.js | 4 ++-- .../legacy/fixtures/sw-minify-auto/__expected/webpack4/sw.js | 2 +- .../legacy/fixtures/sw-minify-false/__expected/webpack4/sw.js | 2 +- .../fixtures/sw-minify-minimize/__expected/webpack4/sw.js | 2 +- .../legacy/fixtures/sw-minify-true/__expected/webpack4/sw.js | 2 +- 12 files changed, 14 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index d43cc51a..2551345d 100644 --- a/package.json +++ b/package.json @@ -44,10 +44,12 @@ "author": "Arthur Stolyar ", "license": "MIT", "dependencies": { + "babel": "^5.8.23", "deep-extend": "^0.5.1", "ejs": "^2.3.4", "loader-utils": "0.2.x", "minimatch": "^3.0.3", + "puppeteer": "^1.1.1", "slash": "^1.0.0" }, "bugs": { diff --git a/tests/legacy/fixtures/appshell-absolute-path/__expected/webpack4/sw.js b/tests/legacy/fixtures/appshell-absolute-path/__expected/webpack4/sw.js index 64ac5c5a..b755da25 100644 --- a/tests/legacy/fixtures/appshell-absolute-path/__expected/webpack4/sw.js +++ b/tests/legacy/fixtures/appshell-absolute-path/__expected/webpack4/sw.js @@ -276,7 +276,7 @@ function WebpackServiceWorker(params, helpers) { var lastMap = lastData.hashmap; var lastVersion = lastData.version; - if (!lastData.hashmap || lastVersion === params.version) { + if (!lastData.hashmap || lastVersion !== params.version) { return cacheAssets(section); } diff --git a/tests/legacy/fixtures/appshell-basic/__expected/webpack4/sw.js b/tests/legacy/fixtures/appshell-basic/__expected/webpack4/sw.js index 797a8035..28bc065e 100644 --- a/tests/legacy/fixtures/appshell-basic/__expected/webpack4/sw.js +++ b/tests/legacy/fixtures/appshell-basic/__expected/webpack4/sw.js @@ -276,7 +276,7 @@ function WebpackServiceWorker(params, helpers) { var lastMap = lastData.hashmap; var lastVersion = lastData.version; - if (!lastData.hashmap || lastVersion === params.version) { + if (!lastData.hashmap || lastVersion !== params.version) { return cacheAssets(section); } diff --git a/tests/legacy/fixtures/basic-wIth-sw-out/__expected/webpack4/sw.js b/tests/legacy/fixtures/basic-wIth-sw-out/__expected/webpack4/sw.js index 42393adb..ec65cc00 100644 --- a/tests/legacy/fixtures/basic-wIth-sw-out/__expected/webpack4/sw.js +++ b/tests/legacy/fixtures/basic-wIth-sw-out/__expected/webpack4/sw.js @@ -276,7 +276,7 @@ function WebpackServiceWorker(params, helpers) { var lastMap = lastData.hashmap; var lastVersion = lastData.version; - if (!lastData.hashmap || lastVersion === params.version) { + if (!lastData.hashmap || lastVersion !== params.version) { return cacheAssets(section); } diff --git a/tests/legacy/fixtures/basic-with-sw-custom-entry/__expected/webpack4/sw.js b/tests/legacy/fixtures/basic-with-sw-custom-entry/__expected/webpack4/sw.js index 685f26c6..03343e0a 100644 --- a/tests/legacy/fixtures/basic-with-sw-custom-entry/__expected/webpack4/sw.js +++ b/tests/legacy/fixtures/basic-with-sw-custom-entry/__expected/webpack4/sw.js @@ -276,7 +276,7 @@ function WebpackServiceWorker(params, helpers) { var lastMap = lastData.hashmap; var lastVersion = lastData.version; - if (!lastData.hashmap || lastVersion === params.version) { + if (!lastData.hashmap || lastVersion !== params.version) { return cacheAssets(section); } diff --git a/tests/legacy/fixtures/cachemaps-basic/__expected/webpack4/sw.js b/tests/legacy/fixtures/cachemaps-basic/__expected/webpack4/sw.js index d26b799d..50d3209a 100644 --- a/tests/legacy/fixtures/cachemaps-basic/__expected/webpack4/sw.js +++ b/tests/legacy/fixtures/cachemaps-basic/__expected/webpack4/sw.js @@ -272,7 +272,7 @@ function WebpackServiceWorker(params, helpers) { var lastMap = lastData.hashmap; var lastVersion = lastData.version; - if (!lastData.hashmap || lastVersion === params.version) { + if (!lastData.hashmap || lastVersion !== params.version) { return cacheAssets(section); } diff --git a/tests/legacy/fixtures/paths-explicit-absolute-tools-override-outside/__expected/webpack4/appcache/manifest.appcache b/tests/legacy/fixtures/paths-explicit-absolute-tools-override-outside/__expected/webpack4/appcache/manifest.appcache index bc6cc6bf..3454f90b 100644 --- a/tests/legacy/fixtures/paths-explicit-absolute-tools-override-outside/__expected/webpack4/appcache/manifest.appcache +++ b/tests/legacy/fixtures/paths-explicit-absolute-tools-override-outside/__expected/webpack4/appcache/manifest.appcache @@ -1,5 +1,5 @@ CACHE MANIFEST -#ver:1123c8d59bc4f7b76256ee45664ecffdb06ffe92 +#ver:4adc139f2cddd2a44418a4832f57a66ef829d686 CACHE: /dist/main.js diff --git a/tests/legacy/fixtures/paths-explicit-absolute-tools-override-outside/__expected/webpack4/sw.js b/tests/legacy/fixtures/paths-explicit-absolute-tools-override-outside/__expected/webpack4/sw.js index 2733d5b2..649d99c5 100644 --- a/tests/legacy/fixtures/paths-explicit-absolute-tools-override-outside/__expected/webpack4/sw.js +++ b/tests/legacy/fixtures/paths-explicit-absolute-tools-override-outside/__expected/webpack4/sw.js @@ -15,11 +15,11 @@ var __wpo = { "/images/logo_grey.svg" ], "hashesMap": { - "e624017a102224fd7ed19f56813547cfa5fdf570": "/dist/main.js" + "b2e0d791f55cc3663324673d5d92ac61f6152a6a": "/dist/main.js" }, "strategy": "changed", "responseStrategy": "cache-first", - "version": "1123c8d59bc4f7b76256ee45664ecffdb06ffe92", + "version": "4adc139f2cddd2a44418a4832f57a66ef829d686", "name": "webpack-offline", "relativePaths": false }; \ No newline at end of file diff --git a/tests/legacy/fixtures/sw-minify-auto/__expected/webpack4/sw.js b/tests/legacy/fixtures/sw-minify-auto/__expected/webpack4/sw.js index 6462eb11..43f4155e 100644 --- a/tests/legacy/fixtures/sw-minify-auto/__expected/webpack4/sw.js +++ b/tests/legacy/fixtures/sw-minify-auto/__expected/webpack4/sw.js @@ -1,3 +1,3 @@ var __wpo = {"assets":{"main":["./external.js"],"additional":[],"optional":[]},"externals":["./external.js"],"hashesMap":{},"strategy":"changed","responseStrategy":"cache-first","version":"da39a3ee5e6b4b0d3255bfef95601890afd80709","name":"webpack-offline","relativePaths":true}; -!function(e){var n={};function t(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,t),i.l=!0,i.exports}t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:r})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var i in e)t.d(r,i,function(n){return e[n]}.bind(null,i));return r},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="",t(t.s=0)}([function(e,n,t){"use strict";var r,i,o;if(r=ExtendableEvent.prototype.waitUntil,i=FetchEvent.prototype.respondWith,o=new WeakMap,ExtendableEvent.prototype.waitUntil=function(e){var n=this,t=o.get(n);if(!t)return t=[Promise.resolve(e)],o.set(n,t),r.call(n,Promise.resolve().then(function e(){var r=t.length;return Promise.all(t.map(function(e){return e.catch(function(){})})).then(function(){return t.length!=r?e():(o.delete(n),Promise.all(t))})}));t.push(Promise.resolve(e))},FetchEvent.prototype.respondWith=function(e){return this.waitUntil(e),i.call(this,e)},void 0===a)var a=!1;function u(e,n){return caches.match(e,{cacheName:n}).then(function(t){return c(t)?t:s(t).then(function(t){return caches.open(n).then(function(n){return n.put(e,t)}).then(function(){return t})})}).catch(function(){})}function c(e){return!e||!e.redirected||!e.ok||"opaqueredirect"===e.type}function s(e){return c(e)?Promise.resolve(e):("body"in e?Promise.resolve(e.body):e.blob()).then(function(n){return new Response(n,{headers:e.headers,status:e.status})})}function f(e,n){n.forEach(function(e){})}!function(e,n){var t=n.cacheMaps,r=n.navigationPreload,i=e.strategy,o=e.responseStrategy,a=e.assets,c=e.hashesMap,l=e.externals,h=e.prefetchRequest||{credentials:"same-origin",mode:"cors"},d=e.name,p=e.version,v=d+":"+p,m=d+"$preload",g="__offline_webpack__data";Object.keys(a).forEach(function(e){a[e]=a[e].map(function(e){var n=new URL(e,location);return n.hash="",-1===l.indexOf(e)&&(n.search=""),n.toString()})}),c=Object.keys(c).reduce(function(e,n){var t=new URL(c[n],location);return t.search="",t.hash="",e[n]=t.toString(),e},{}),l=l.map(function(e){var n=new URL(e,location);return n.hash="",n.toString()});var y=[].concat(a.main,a.additional,a.optional);function w(n){var t=a[n];return caches.open(v).then(function(r){return q(r,t,{bust:e.version,request:h,failAll:"main"===n})}).then(function(){f(0,t)}).catch(function(e){throw e})}function P(n){return caches.keys().then(function(e){for(var n=e.length,t=void 0;n--&&0!==(t=e[n]).indexOf(d););if(t){var r=void 0;return caches.open(t).then(function(e){return r=e,e.match(new URL(g,location).toString())}).then(function(e){if(e)return Promise.all([r,r.keys(),e.json()])})}}).then(function(t){if(!t)return w(n);var r=t[0],i=t[1],o=t[2],u=o.hashmap,s=o.version;if(!o.hashmap||s===e.version)return w(n);var l=Object.keys(u).map(function(e){return u[e]}),d=i.map(function(e){var n=new URL(e.url);return n.search="",n.hash="",n.toString()}),p=a[n],m=[],g=p.filter(function(e){return-1===d.indexOf(e)||-1===l.indexOf(e)});Object.keys(c).forEach(function(e){var n=c[e];if(-1!==p.indexOf(n)&&-1===g.indexOf(n)&&-1===m.indexOf(n)){var t=u[e];t&&-1!==d.indexOf(t)?m.push([t,n]):g.push(n)}}),f(0,g),f(0,m);var y=Promise.all(m.map(function(e){return r.match(e[0]).then(function(n){return[e[1],n]})}));return caches.open(v).then(function(t){var r=y.then(function(e){return Promise.all(e.map(function(e){return t.put(e[0],e[1])}))});return Promise.all([r,q(t,g,{bust:e.version,request:h,failAll:"main"===n,deleteFirst:"main"!==n})])})})}function b(){return caches.keys().then(function(e){var n=e.map(function(e){if(0===e.indexOf(d)&&0!==e.indexOf(v))return caches.delete(e)});return Promise.all(n)})}function O(){return caches.open(v).then(function(n){var t=new Response(JSON.stringify({version:e.version,hashmap:c}));return n.put(new URL(g,location).toString(),t)})}self.addEventListener("install",function(e){var n=void 0;n="changed"===i?P("main"):w("main"),e.waitUntil(n)}),self.addEventListener("activate",function(e){var n=function(){if(!a.additional.length)return Promise.resolve();return("changed"===i?P("additional"):w("additional")).catch(function(e){})}();n=(n=(n=n.then(O)).then(b)).then(function(){if(self.clients&&self.clients.claim)return self.clients.claim()}),r&&self.registration.navigationPreload&&(n=Promise.all([n,self.registration.navigationPreload.enable()])),e.waitUntil(n)}),self.addEventListener("fetch",function(e){if("GET"===e.request.method&&("only-if-cached"!==e.request.cache||"same-origin"===e.request.mode)){var n=new URL(e.request.url);n.hash="";var i=n.toString();-1===l.indexOf(i)&&(n.search="",i=n.toString());var a=-1!==y.indexOf(i),c=i;if(!a){var s=function(e){var n=e.url,r=new URL(n),i=void 0;i=function(e){return"navigate"===e.mode||e.headers.get("Upgrade-Insecure-Requests")||-1!==(e.headers.get("Accept")||"").indexOf("text/html")}(e)?"navigate":r.origin===location.origin?"same-origin":"cross-origin";for(var o=0;o