Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix router not working on some protocol #16650

Merged
merged 13 commits into from
Nov 3, 2020

Conversation

Cow258
Copy link
Contributor

@Cow258 Cow258 commented Aug 28, 2020

Added support for protocols other than http and https

  • ✅ Tested on iOS with Ionic Webview
  • ✅ Tested on MacOS with Electron
  • ✅ Tested on Windows with Electron

Fixes #16456
Fixes #16595

Thanks to @Janpot, @jambulud

@ijjk
Copy link
Member

ijjk commented Aug 28, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
buildDuration 12.1s 12.1s ⚠️ +11ms
nodeModulesSize 57.5 MB 57.5 MB ⚠️ +114 B
Page Load Tests Overall increase ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
/ failed reqs 0 0
/ total time (seconds) 2.192 2.213 ⚠️ +0.02
/ avg req/sec 1140.73 1129.73 ⚠️ -11
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.201 1.174 -0.03
/error-in-render avg req/sec 2082.27 2129.25 +46.98
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..f20b.js gzip 10.3 kB 10.3 kB ⚠️ +5 B
framework.HASH.js gzip 39 kB 39 kB
main-ce79c9a..12c9.js gzip 7.36 kB 7.36 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 57.3 kB 57.4 kB ⚠️ +5 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..dule.js gzip 6.13 kB 6.13 kB ⚠️ +5 B
framework.HA..dule.js gzip 39 kB 39 kB
main-9973c26..dule.js gzip 6.42 kB 6.42 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52.3 kB 52.3 kB ⚠️ +5 B
Legacy Client Bundles (polyfills)
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-28298..e0c9.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-000f151..65d4.js gzip 1.29 kB 1.29 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.69 kB 7.69 kB
Client Pages Modern
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-65c8a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-4cfda7a..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.35 kB 5.35 kB
Client Build Manifests
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 330 B 330 B
Overall change 652 B 652 B
Rendered Page Sizes Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
index.html gzip 972 B 972 B
link.html gzip 978 B 978 B
withRouter.html gzip 964 B 963 B -1 B
Overall change 2.91 kB 2.91 kB -1 B

Diffs

Diff for 677f882d2ed8..60.module.js
@@ -1650,7 +1650,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
 
         if (
           origin !== DUMMY_BASE.origin ||
-          (protocol !== "http:" && protocol !== "https:")
+          (protocol !== "http:" &&
+            protocol !== "https:" &&
+            protocol !== DUMMY_BASE.protocol)
         ) {
           throw new Error("invariant: invalid relative URL");
         }
Diff for 677f882d2ed8..886051899.js
@@ -2341,7 +2341,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
 
         if (
           origin !== DUMMY_BASE.origin ||
-          (protocol !== "http:" && protocol !== "https:")
+          (protocol !== "http:" &&
+            protocol !== "https:" &&
+            protocol !== DUMMY_BASE.protocol)
         ) {
           throw new Error("invariant: invalid relative URL");
         }
Diff for index.html
@@ -25,7 +25,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2206d208af7e83206260.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.3dd9c11d9f6443a0164f.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -118,13 +118,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.b1af6078fa6886051899.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.a20111abb797f55f2c07.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2206d208af7e83206260.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.3dd9c11d9f6443a0164f.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for link.html
@@ -25,7 +25,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2206d208af7e83206260.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.3dd9c11d9f6443a0164f.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -123,13 +123,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.b1af6078fa6886051899.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.a20111abb797f55f2c07.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2206d208af7e83206260.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.3dd9c11d9f6443a0164f.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for withRouter.html
@@ -25,7 +25,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2206d208af7e83206260.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.3dd9c11d9f6443a0164f.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -118,13 +118,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.b1af6078fa6886051899.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.a20111abb797f55f2c07.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2206d208af7e83206260.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.3dd9c11d9f6443a0164f.module.js"
       async=""
       crossorigin="anonymous"
       type="module"

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
buildDuration 13.7s 13.4s -313ms
nodeModulesSize 57.5 MB 57.5 MB ⚠️ +114 B
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..f20b.js gzip 10.3 kB N/A N/A
framework.HASH.js gzip 39 kB 39 kB
main-ce79c9a..12c9.js gzip 7.36 kB 7.36 kB
webpack-e067..f178.js gzip 751 B 751 B
677f882d2ed8..7adc.js gzip N/A 10.3 kB N/A
Overall change 57.3 kB 57.4 kB ⚠️ +5 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..dule.js gzip 6.13 kB N/A N/A
framework.HA..dule.js gzip 39 kB 39 kB
main-9973c26..dule.js gzip 6.42 kB 6.42 kB
webpack-07c5..dule.js gzip 751 B 751 B
677f882d2ed8..dule.js gzip N/A 6.13 kB N/A
Overall change 52.3 kB 52.3 kB ⚠️ +5 B
Legacy Client Bundles (polyfills)
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-28298..e0c9.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-000f151..65d4.js gzip 1.29 kB 1.29 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.69 kB 7.69 kB
Client Pages Modern
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-65c8a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-4cfda7a..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.35 kB 5.35 kB
Client Build Manifests
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 330 B 330 B
Overall change 652 B 652 B
Serverless bundles Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_error.js 1.03 MB 1.03 MB ⚠️ +36 B
404.html 4.22 kB 4.22 kB
hooks.html 3.86 kB 3.86 kB
index.js 1.03 MB 1.03 MB ⚠️ +36 B
link.js 1.07 MB 1.07 MB ⚠️ +36 B
routerDirect.js 1.07 MB 1.07 MB ⚠️ +36 B
withRouter.js 1.07 MB 1.07 MB ⚠️ +36 B
Overall change 5.28 MB 5.28 MB ⚠️ +180 B
Commit: 0bf25e4

Janpot
Janpot previously approved these changes Aug 28, 2020
@ijjk
Copy link
Member

ijjk commented Aug 28, 2020

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
buildDuration 11.1s 11.4s ⚠️ +344ms
nodeModulesSize 57.5 MB 57.5 MB ⚠️ +114 B
Page Load Tests Overall decrease ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
/ failed reqs 0 0
/ total time (seconds) 2.058 2.097 ⚠️ +0.04
/ avg req/sec 1214.71 1192.28 ⚠️ -22.43
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.158 1.167 ⚠️ +0.01
/error-in-render avg req/sec 2158.89 2141.69 ⚠️ -17.2
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..f20b.js gzip 10.3 kB 10.3 kB ⚠️ +5 B
framework.HASH.js gzip 39 kB 39 kB
main-ce79c9a..12c9.js gzip 7.36 kB 7.36 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 57.3 kB 57.4 kB ⚠️ +5 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..dule.js gzip 6.13 kB 6.13 kB ⚠️ +5 B
framework.HA..dule.js gzip 39 kB 39 kB
main-9973c26..dule.js gzip 6.42 kB 6.42 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52.3 kB 52.3 kB ⚠️ +5 B
Legacy Client Bundles (polyfills)
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-28298..e0c9.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-000f151..65d4.js gzip 1.29 kB 1.29 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.69 kB 7.69 kB
Client Pages Modern
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-65c8a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-4cfda7a..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.35 kB 5.35 kB
Client Build Manifests
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 330 B 330 B
Overall change 652 B 652 B
Rendered Page Sizes Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
index.html gzip 972 B 972 B
link.html gzip 978 B 978 B
withRouter.html gzip 964 B 963 B -1 B
Overall change 2.91 kB 2.91 kB -1 B

Diffs

Diff for 677f882d2ed8..60.module.js
@@ -1650,7 +1650,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
 
         if (
           origin !== DUMMY_BASE.origin ||
-          (protocol !== "http:" && protocol !== "https:")
+          (protocol !== "http:" &&
+            protocol !== "https:" &&
+            protocol !== DUMMY_BASE.protocol)
         ) {
           throw new Error("invariant: invalid relative URL");
         }
Diff for 677f882d2ed8..886051899.js
@@ -2341,7 +2341,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
 
         if (
           origin !== DUMMY_BASE.origin ||
-          (protocol !== "http:" && protocol !== "https:")
+          (protocol !== "http:" &&
+            protocol !== "https:" &&
+            protocol !== DUMMY_BASE.protocol)
         ) {
           throw new Error("invariant: invalid relative URL");
         }
Diff for index.html
@@ -25,7 +25,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2206d208af7e83206260.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.3dd9c11d9f6443a0164f.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -118,13 +118,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.b1af6078fa6886051899.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.a20111abb797f55f2c07.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2206d208af7e83206260.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.3dd9c11d9f6443a0164f.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for link.html
@@ -25,7 +25,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2206d208af7e83206260.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.3dd9c11d9f6443a0164f.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -123,13 +123,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.b1af6078fa6886051899.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.a20111abb797f55f2c07.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2206d208af7e83206260.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.3dd9c11d9f6443a0164f.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for withRouter.html
@@ -25,7 +25,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2206d208af7e83206260.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.3dd9c11d9f6443a0164f.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -118,13 +118,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.b1af6078fa6886051899.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.a20111abb797f55f2c07.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2206d208af7e83206260.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.3dd9c11d9f6443a0164f.module.js"
       async=""
       crossorigin="anonymous"
       type="module"

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
buildDuration 12.4s 13.2s ⚠️ +782ms
nodeModulesSize 57.5 MB 57.5 MB ⚠️ +114 B
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..f20b.js gzip 10.3 kB N/A N/A
framework.HASH.js gzip 39 kB 39 kB
main-ce79c9a..12c9.js gzip 7.36 kB 7.36 kB
webpack-e067..f178.js gzip 751 B 751 B
677f882d2ed8..7adc.js gzip N/A 10.3 kB N/A
Overall change 57.3 kB 57.4 kB ⚠️ +5 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..dule.js gzip 6.13 kB N/A N/A
framework.HA..dule.js gzip 39 kB 39 kB
main-9973c26..dule.js gzip 6.42 kB 6.42 kB
webpack-07c5..dule.js gzip 751 B 751 B
677f882d2ed8..dule.js gzip N/A 6.13 kB N/A
Overall change 52.3 kB 52.3 kB ⚠️ +5 B
Legacy Client Bundles (polyfills)
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-28298..e0c9.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-000f151..65d4.js gzip 1.29 kB 1.29 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.69 kB 7.69 kB
Client Pages Modern
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-65c8a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-4cfda7a..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.35 kB 5.35 kB
Client Build Manifests
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 330 B 330 B
Overall change 652 B 652 B
Serverless bundles Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_error.js 1.03 MB 1.03 MB ⚠️ +36 B
404.html 4.22 kB 4.22 kB
hooks.html 3.86 kB 3.86 kB
index.js 1.03 MB 1.03 MB ⚠️ +36 B
link.js 1.07 MB 1.07 MB ⚠️ +36 B
routerDirect.js 1.07 MB 1.07 MB ⚠️ +36 B
withRouter.js 1.07 MB 1.07 MB ⚠️ +36 B
Overall change 5.28 MB 5.28 MB ⚠️ +180 B
Commit: bd7af2d

@Janpot
Copy link
Contributor

Janpot commented Aug 29, 2020

@Cow258 I'm beginning to think that actually the whole (protocol !== 'http:' && protocol !== 'https:') was unnecessary in the first place. Since we already compare with DUMMY_BASE.origin, that also includes DUMMY_BASE.protocol, and these can never be different than http: or https:, (unless electron, ionic,...). Even without this check the conditional would still fail on mailto: which was its intended purpose IIRC.

Copy link
Member

@Timer Timer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR needs a test case, please!

@Cow258
Copy link
Contributor Author

Cow258 commented Aug 30, 2020

@Cow258 I'm beginning to think that actually the whole (protocol !== 'http:' && protocol !== 'https:') was unnecessary in the first place. Since we already compare with DUMMY_BASE.origin, that also includes DUMMY_BASE.protocol, and these can never be different than http: or https:, (unless electron, ionic,...). Even without this check the conditional would still fail on mailto: which was its intended purpose IIRC.

image

@Janpot
Why did you add (protocol !== 'http:' && protocol !== 'https:') into parse-relative-url.ts?
There must be some reason for you to increase this condition in the previous commit.

@Cow258
Copy link
Contributor Author

Cow258 commented Aug 30, 2020

This PR needs a test case, please!

@Timer Add to test/unit/parse-relative-url.test.js?

@ijjk
Copy link
Member

ijjk commented Aug 30, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
buildDuration 12.1s 12.2s ⚠️ +42ms
nodeModulesSize 57.4 MB 57.4 MB ⚠️ +114 B
Page Load Tests Overall increase ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
/ failed reqs 0 0
/ total time (seconds) 2.208 2.202 -0.01
/ avg req/sec 1132.04 1135.3 +3.26
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.252 1.216 -0.04
/error-in-render avg req/sec 1996.69 2056.28 +59.59
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..f20b.js gzip 10.3 kB 10.3 kB ⚠️ +5 B
framework.HASH.js gzip 39 kB 39 kB
main-49b1fd5..c64c.js gzip 7.35 kB 7.35 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 57.3 kB 57.3 kB ⚠️ +5 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..dule.js gzip 6.13 kB 6.13 kB ⚠️ +5 B
framework.HA..dule.js gzip 39 kB 39 kB
main-99715b4..dule.js gzip 6.4 kB 6.4 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52.2 kB 52.3 kB ⚠️ +5 B
Legacy Client Bundles (polyfills)
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-28298..e0c9.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-000f151..65d4.js gzip 1.29 kB 1.29 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.69 kB 7.69 kB
Client Pages Modern
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-65c8a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-4cfda7a..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.35 kB 5.35 kB
Client Build Manifests
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 330 B 330 B
Overall change 652 B 652 B
Rendered Page Sizes Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
index.html gzip 971 B 972 B ⚠️ +1 B
link.html gzip 977 B 979 B ⚠️ +2 B
withRouter.html gzip 964 B 964 B
Overall change 2.91 kB 2.92 kB ⚠️ +3 B

Diffs

Diff for 677f882d2ed8..60.module.js
@@ -1650,7 +1650,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
 
         if (
           origin !== DUMMY_BASE.origin ||
-          (protocol !== "http:" && protocol !== "https:")
+          (protocol !== "http:" &&
+            protocol !== "https:" &&
+            protocol !== DUMMY_BASE.protocol)
         ) {
           throw new Error("invariant: invalid relative URL");
         }
Diff for 677f882d2ed8..886051899.js
@@ -2341,7 +2341,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
 
         if (
           origin !== DUMMY_BASE.origin ||
-          (protocol !== "http:" && protocol !== "https:")
+          (protocol !== "http:" &&
+            protocol !== "https:" &&
+            protocol !== DUMMY_BASE.protocol)
         ) {
           throw new Error("invariant: invalid relative URL");
         }
Diff for index.html
@@ -25,7 +25,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2206d208af7e83206260.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.3dd9c11d9f6443a0164f.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -118,13 +118,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.b1af6078fa6886051899.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.a20111abb797f55f2c07.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2206d208af7e83206260.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.3dd9c11d9f6443a0164f.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for link.html
@@ -25,7 +25,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2206d208af7e83206260.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.3dd9c11d9f6443a0164f.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -123,13 +123,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.b1af6078fa6886051899.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.a20111abb797f55f2c07.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2206d208af7e83206260.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.3dd9c11d9f6443a0164f.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for withRouter.html
@@ -25,7 +25,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2206d208af7e83206260.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.3dd9c11d9f6443a0164f.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -118,13 +118,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.b1af6078fa6886051899.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.a20111abb797f55f2c07.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2206d208af7e83206260.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.3dd9c11d9f6443a0164f.module.js"
       async=""
       crossorigin="anonymous"
       type="module"

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
buildDuration 13.7s 13.8s ⚠️ +139ms
nodeModulesSize 57.4 MB 57.4 MB ⚠️ +114 B
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..f20b.js gzip 10.3 kB N/A N/A
framework.HASH.js gzip 39 kB 39 kB
main-49b1fd5..c64c.js gzip 7.35 kB 7.35 kB
webpack-e067..f178.js gzip 751 B 751 B
677f882d2ed8..7adc.js gzip N/A 10.3 kB N/A
Overall change 57.3 kB 57.3 kB ⚠️ +5 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..dule.js gzip 6.13 kB N/A N/A
framework.HA..dule.js gzip 39 kB 39 kB
main-99715b4..dule.js gzip 6.4 kB 6.4 kB
webpack-07c5..dule.js gzip 751 B 751 B
677f882d2ed8..dule.js gzip N/A 6.13 kB N/A
Overall change 52.2 kB 52.3 kB ⚠️ +5 B
Legacy Client Bundles (polyfills)
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-28298..e0c9.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-000f151..65d4.js gzip 1.29 kB 1.29 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.69 kB 7.69 kB
Client Pages Modern
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-65c8a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-4cfda7a..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.35 kB 5.35 kB
Client Build Manifests
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 330 B 330 B
Overall change 652 B 652 B
Serverless bundles Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_error.js 1.03 MB 1.03 MB ⚠️ +36 B
404.html 4.22 kB 4.22 kB
hooks.html 3.86 kB 3.86 kB
index.js 1.03 MB 1.03 MB ⚠️ +36 B
link.js 1.07 MB 1.07 MB ⚠️ +36 B
routerDirect.js 1.07 MB 1.07 MB ⚠️ +36 B
withRouter.js 1.07 MB 1.07 MB ⚠️ +36 B
Overall change 5.28 MB 5.28 MB ⚠️ +180 B
Commit: 7def9f9

@Cow258 Cow258 force-pushed the fix-parse-relative-url branch from 7def9f9 to 02beafe Compare August 30, 2020 16:04
@Cow258 Cow258 requested review from Timer and Janpot August 30, 2020 16:07
@ijjk
Copy link
Member

ijjk commented Aug 30, 2020

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
buildDuration 12.2s 12.7s ⚠️ +495ms
nodeModulesSize 57.4 MB 57.4 MB ⚠️ +440 B
Page Load Tests Overall decrease ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
/ failed reqs 0 0
/ total time (seconds) 2.328 2.524 ⚠️ +0.2
/ avg req/sec 1073.76 990.46 ⚠️ -83.3
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.409 1.634 ⚠️ +0.22
/error-in-render avg req/sec 1774.36 1529.56 ⚠️ -244.8
Client Bundles (main, webpack, commons) Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..f20b.js gzip 10.3 kB 10.3 kB -4 B
framework.HASH.js gzip 39 kB 39 kB
main-49b1fd5..c64c.js gzip 7.35 kB 7.35 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 57.3 kB 57.3 kB -4 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..dule.js gzip 6.13 kB 6.13 kB ⚠️ +3 B
framework.HA..dule.js gzip 39 kB 39 kB
main-99715b4..dule.js gzip 6.4 kB 6.4 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52.2 kB 52.2 kB ⚠️ +3 B
Legacy Client Bundles (polyfills)
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-28298..e0c9.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-000f151..65d4.js gzip 1.29 kB 1.29 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.69 kB 7.69 kB
Client Pages Modern
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-65c8a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-4cfda7a..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.35 kB 5.35 kB
Client Build Manifests
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 330 B 330 B
Overall change 652 B 652 B
Rendered Page Sizes Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
index.html gzip 971 B 972 B ⚠️ +1 B
link.html gzip 977 B 978 B ⚠️ +1 B
withRouter.html gzip 964 B 965 B ⚠️ +1 B
Overall change 2.91 kB 2.92 kB ⚠️ +3 B

Diffs

Diff for 677f882d2ed8..60.module.js
@@ -1622,6 +1622,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       "use strict";
 
       exports.__esModule = true;
+      exports.refreshDummyBase = refreshDummyBase;
       exports.parseRelativeUrl = parseRelativeUrl;
 
       var _utils = __webpack_require__("g/15");
@@ -1629,6 +1630,15 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       var DUMMY_BASE = new URL(
         false ? undefined : (0, _utils.getLocationOrigin)()
       );
+      /**
+       * Refresh DUMMY_BASE for unit test
+       */
+
+      function refreshDummyBase() {
+        DUMMY_BASE = new URL(
+          false ? undefined : (0, _utils.getLocationOrigin)()
+        );
+      }
       /**
        * Parses path-relative urls (e.g. `/hello/world?foo=bar`). If url isn't path-relative
        * (e.g. `./hello`) then at least base must be.
@@ -1638,20 +1648,12 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
 
       function parseRelativeUrl(url, base) {
         var resolvedBase = base ? new URL(base, DUMMY_BASE) : DUMMY_BASE;
-        var {
-          pathname,
-          searchParams,
-          search,
-          hash,
-          href,
-          origin,
-          protocol
-        } = new URL(url, resolvedBase);
+        var { pathname, searchParams, search, hash, href, origin } = new URL(
+          url,
+          resolvedBase
+        );
 
-        if (
-          origin !== DUMMY_BASE.origin ||
-          (protocol !== "http:" && protocol !== "https:")
-        ) {
+        if (origin !== DUMMY_BASE.origin) {
           throw new Error("invariant: invalid relative URL");
         }
Diff for 677f882d2ed8..886051899.js
@@ -2313,6 +2313,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       "use strict";
 
       exports.__esModule = true;
+      exports.refreshDummyBase = refreshDummyBase;
       exports.parseRelativeUrl = parseRelativeUrl;
 
       var _utils = __webpack_require__("g/15");
@@ -2320,6 +2321,15 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       var DUMMY_BASE = new URL(
         false ? undefined : (0, _utils.getLocationOrigin)()
       );
+      /**
+       * Refresh DUMMY_BASE for unit test
+       */
+
+      function refreshDummyBase() {
+        DUMMY_BASE = new URL(
+          false ? undefined : (0, _utils.getLocationOrigin)()
+        );
+      }
       /**
        * Parses path-relative urls (e.g. `/hello/world?foo=bar`). If url isn't path-relative
        * (e.g. `./hello`) then at least base must be.
@@ -2336,13 +2346,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
           search = _URL.search,
           hash = _URL.hash,
           href = _URL.href,
-          origin = _URL.origin,
-          protocol = _URL.protocol;
+          origin = _URL.origin;
 
-        if (
-          origin !== DUMMY_BASE.origin ||
-          (protocol !== "http:" && protocol !== "https:")
-        ) {
+        if (origin !== DUMMY_BASE.origin) {
           throw new Error("invariant: invalid relative URL");
         }
Diff for index.html
@@ -25,7 +25,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2206d208af7e83206260.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.fb94cf99ff7054a86861.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -118,13 +118,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.b1af6078fa6886051899.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.7fcd292b3685de8d11e1.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2206d208af7e83206260.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.fb94cf99ff7054a86861.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for link.html
@@ -25,7 +25,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2206d208af7e83206260.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.fb94cf99ff7054a86861.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -123,13 +123,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.b1af6078fa6886051899.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.7fcd292b3685de8d11e1.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2206d208af7e83206260.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.fb94cf99ff7054a86861.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for withRouter.html
@@ -25,7 +25,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2206d208af7e83206260.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.fb94cf99ff7054a86861.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -118,13 +118,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.b1af6078fa6886051899.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.7fcd292b3685de8d11e1.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2206d208af7e83206260.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.fb94cf99ff7054a86861.module.js"
       async=""
       crossorigin="anonymous"
       type="module"

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
buildDuration 14.2s 14.8s ⚠️ +564ms
nodeModulesSize 57.4 MB 57.4 MB ⚠️ +440 B
Client Bundles (main, webpack, commons) Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..f20b.js gzip 10.3 kB N/A N/A
framework.HASH.js gzip 39 kB 39 kB
main-49b1fd5..c64c.js gzip 7.35 kB 7.35 kB
webpack-e067..f178.js gzip 751 B 751 B
677f882d2ed8..9ec7.js gzip N/A 10.3 kB N/A
Overall change 57.3 kB 57.3 kB -4 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..dule.js gzip 6.13 kB N/A N/A
framework.HA..dule.js gzip 39 kB 39 kB
main-99715b4..dule.js gzip 6.4 kB 6.4 kB
webpack-07c5..dule.js gzip 751 B 751 B
677f882d2ed8..dule.js gzip N/A 6.13 kB N/A
Overall change 52.2 kB 52.2 kB ⚠️ +3 B
Legacy Client Bundles (polyfills)
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-28298..e0c9.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-000f151..65d4.js gzip 1.29 kB 1.29 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.69 kB 7.69 kB
Client Pages Modern
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-65c8a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-4cfda7a..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.35 kB 5.35 kB
Client Build Manifests
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 330 B 330 B
Overall change 652 B 652 B
Serverless bundles Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_error.js 1.03 MB 1.03 MB ⚠️ +111 B
404.html 4.22 kB 4.22 kB
hooks.html 3.86 kB 3.86 kB
index.js 1.03 MB 1.03 MB ⚠️ +111 B
link.js 1.07 MB 1.07 MB ⚠️ +111 B
routerDirect.js 1.07 MB 1.07 MB ⚠️ +111 B
withRouter.js 1.07 MB 1.07 MB ⚠️ +111 B
Overall change 5.28 MB 5.28 MB ⚠️ +555 B
Commit: 02beafe

@ijjk
Copy link
Member

ijjk commented Sep 3, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
buildDuration 13.2s 12.8s -421ms
nodeModulesSize 55.9 MB 55.9 MB ⚠️ +440 B
Page Load Tests Overall increase ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
/ failed reqs 0 0
/ total time (seconds) 2.474 2.327 -0.15
/ avg req/sec 1010.44 1074.53 +64.09
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.496 1.447 -0.05
/error-in-render avg req/sec 1670.67 1727.59 +56.92
Client Bundles (main, webpack, commons) Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..01b7.js gzip 10.5 kB 10.5 kB -2 B
framework.HASH.js gzip 39 kB 39 kB
main-f69b135..640b.js gzip 7.1 kB 7.1 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 57.3 kB 57.3 kB -2 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..dule.js gzip 6.39 kB 6.39 kB ⚠️ +1 B
framework.HA..dule.js gzip 39 kB 39 kB
main-ed2fed0..dule.js gzip 6.16 kB 6.16 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52.3 kB 52.3 kB ⚠️ +1 B
Legacy Client Bundles (polyfills)
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d2344ce..8b36.js gzip 1.3 kB 1.3 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.71 kB 7.71 kB
Client Pages Modern
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-f8c0daf..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.36 kB 5.36 kB
Client Build Manifests
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 651 B 651 B
Rendered Page Sizes Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
index.html gzip 972 B 969 B -3 B
link.html gzip 978 B 977 B -1 B
withRouter.html gzip 964 B 962 B -2 B
Overall change 2.91 kB 2.91 kB -6 B

Diffs

Diff for 677f882d2ed8..9f2822af2.js
@@ -2404,6 +2404,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       "use strict";
 
       exports.__esModule = true;
+      exports.refreshDummyBase = refreshDummyBase;
       exports.parseRelativeUrl = parseRelativeUrl;
 
       var _utils = __webpack_require__("g/15");
@@ -2411,6 +2412,15 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       var DUMMY_BASE = new URL(
         false ? undefined : (0, _utils.getLocationOrigin)()
       );
+      /**
+       * Refresh DUMMY_BASE for unit test
+       */
+
+      function refreshDummyBase() {
+        DUMMY_BASE = new URL(
+          false ? undefined : (0, _utils.getLocationOrigin)()
+        );
+      }
       /**
        * Parses path-relative urls (e.g. `/hello/world?foo=bar`). If url isn't path-relative
        * (e.g. `./hello`) then at least base must be.
@@ -2427,13 +2437,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
           search = _URL.search,
           hash = _URL.hash,
           href = _URL.href,
-          origin = _URL.origin,
-          protocol = _URL.protocol;
+          origin = _URL.origin;
 
-        if (
-          origin !== DUMMY_BASE.origin ||
-          (protocol !== "http:" && protocol !== "https:")
-        ) {
+        if (origin !== DUMMY_BASE.origin) {
           throw new Error("invariant: invalid relative URL");
         }
Diff for 677f882d2ed8..da.module.js
@@ -1707,6 +1707,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       "use strict";
 
       exports.__esModule = true;
+      exports.refreshDummyBase = refreshDummyBase;
       exports.parseRelativeUrl = parseRelativeUrl;
 
       var _utils = __webpack_require__("g/15");
@@ -1714,6 +1715,15 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       var DUMMY_BASE = new URL(
         false ? undefined : (0, _utils.getLocationOrigin)()
       );
+      /**
+       * Refresh DUMMY_BASE for unit test
+       */
+
+      function refreshDummyBase() {
+        DUMMY_BASE = new URL(
+          false ? undefined : (0, _utils.getLocationOrigin)()
+        );
+      }
       /**
        * Parses path-relative urls (e.g. `/hello/world?foo=bar`). If url isn't path-relative
        * (e.g. `./hello`) then at least base must be.
@@ -1723,20 +1733,12 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
 
       function parseRelativeUrl(url, base) {
         var resolvedBase = base ? new URL(base, DUMMY_BASE) : DUMMY_BASE;
-        var {
-          pathname,
-          searchParams,
-          search,
-          hash,
-          href,
-          origin,
-          protocol
-        } = new URL(url, resolvedBase);
+        var { pathname, searchParams, search, hash, href, origin } = new URL(
+          url,
+          resolvedBase
+        );
 
-        if (
-          origin !== DUMMY_BASE.origin ||
-          (protocol !== "http:" && protocol !== "https:")
-        ) {
+        if (origin !== DUMMY_BASE.origin) {
           throw new Error("invariant: invalid relative URL");
         }
Diff for index.html
@@ -25,7 +25,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.f4cf18108dce66b669da.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.59a4755b4509d050ef09.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -118,13 +118,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.5b5e017fd5e9f2822af2.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.33b7d3d9197f91270456.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.f4cf18108dce66b669da.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.59a4755b4509d050ef09.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for link.html
@@ -25,7 +25,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.f4cf18108dce66b669da.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.59a4755b4509d050ef09.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -123,13 +123,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.5b5e017fd5e9f2822af2.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.33b7d3d9197f91270456.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.f4cf18108dce66b669da.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.59a4755b4509d050ef09.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for withRouter.html
@@ -25,7 +25,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.f4cf18108dce66b669da.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.59a4755b4509d050ef09.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -118,13 +118,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.5b5e017fd5e9f2822af2.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.33b7d3d9197f91270456.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.f4cf18108dce66b669da.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.59a4755b4509d050ef09.module.js"
       async=""
       crossorigin="anonymous"
       type="module"

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
buildDuration 13.6s 14.4s ⚠️ +828ms
nodeModulesSize 55.9 MB 55.9 MB ⚠️ +440 B
Client Bundles (main, webpack, commons) Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..01b7.js gzip 10.5 kB N/A N/A
framework.HASH.js gzip 39 kB 39 kB
main-f69b135..640b.js gzip 7.1 kB 7.1 kB
webpack-e067..f178.js gzip 751 B 751 B
677f882d2ed8..cb4d.js gzip N/A 10.5 kB N/A
Overall change 57.3 kB 57.3 kB -2 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..dule.js gzip 6.39 kB N/A N/A
framework.HA..dule.js gzip 39 kB 39 kB
main-ed2fed0..dule.js gzip 6.16 kB 6.16 kB
webpack-07c5..dule.js gzip 751 B 751 B
677f882d2ed8..dule.js gzip N/A 6.39 kB N/A
Overall change 52.3 kB 52.3 kB ⚠️ +1 B
Legacy Client Bundles (polyfills)
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d2344ce..8b36.js gzip 1.3 kB 1.3 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.71 kB 7.71 kB
Client Pages Modern
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-f8c0daf..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.36 kB 5.36 kB
Client Build Manifests
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 651 B 651 B
Serverless bundles Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_error.js 1.03 MB 1.03 MB ⚠️ +111 B
404.html 4.22 kB 4.22 kB
hooks.html 3.86 kB 3.86 kB
index.js 1.03 MB 1.03 MB ⚠️ +111 B
link.js 1.08 MB 1.08 MB ⚠️ +111 B
routerDirect.js 1.07 MB 1.07 MB ⚠️ +111 B
withRouter.js 1.07 MB 1.07 MB ⚠️ +111 B
Overall change 5.29 MB 5.29 MB ⚠️ +555 B
Commit: c6df9e9

@Cow258
Copy link
Contributor Author

Cow258 commented Sep 7, 2020

This PR needs a test case, please!

@Timer Test case has been added, please check again, thanks.

Copy link
Member

@timneutkens timneutkens left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This also needs integration tests, as unit tests are just covering the "can parse" and not the "does it work now"

@Cow258
Copy link
Contributor Author

Cow258 commented Sep 10, 2020

Can anyone provide some hints and directions on how to create a integration test with Ionic and Electron?
Thanks

@timneutkens
Copy link
Member

Not exactly sure, you can boot up pretty much any command in our jest tests though. Have a look at test/integration/production for example.

@Cow258
Copy link
Contributor Author

Cow258 commented Sep 10, 2020

Even if we can run any command in Jest,
We cannot generate a controllable iOS automated test environment or controllable Electron automated test environment,
So I think we are impossible to create a automated integration test for it,
until here are something like webdriver for iOS and Electron.

@Cow258 Cow258 force-pushed the fix-parse-relative-url branch from c6df9e9 to a4d8808 Compare September 11, 2020 04:42
@Cow258 Cow258 requested a review from timneutkens September 11, 2020 04:42
@Cow258
Copy link
Contributor Author

Cow258 commented Sep 11, 2020

Added integration test for Electron

@ijjk
Copy link
Member

ijjk commented Sep 11, 2020

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
buildDuration 12.6s 12.6s
nodeModulesSize 57 MB 57 MB ⚠️ +440 B
Page Load Tests Overall decrease ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
/ failed reqs 0 0
/ total time (seconds) 2.284 2.327 ⚠️ +0.04
/ avg req/sec 1094.68 1074.41 ⚠️ -20.27
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.386 1.397 ⚠️ +0.01
/error-in-render avg req/sec 1803.77 1789.76 ⚠️ -14.01
Client Bundles (main, webpack, commons) Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..68c9.js gzip 10.9 kB 10.9 kB -4 B
framework.HASH.js gzip 39 kB 39 kB
main-7ae8495..db56.js gzip 7 kB 7 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 57.6 kB 57.6 kB -4 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..dule.js gzip 6.77 kB 6.77 kB ⚠️ +2 B
framework.HA..dule.js gzip 39 kB 39 kB
main-5a735ed..dule.js gzip 6.07 kB 6.07 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52.6 kB 52.6 kB ⚠️ +2 B
Legacy Client Bundles (polyfills)
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d2344ce..8b36.js gzip 1.3 kB 1.3 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.71 kB 7.71 kB
Client Pages Modern
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-f8c0daf..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.36 kB 5.36 kB
Client Build Manifests
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 651 B 651 B
Rendered Page Sizes Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
index.html gzip 1 kB 1 kB
link.html gzip 1.01 kB 1.01 kB
withRouter.html gzip 994 B 995 B ⚠️ +1 B
Overall change 3 kB 3.01 kB ⚠️ +1 B

Diffs

Diff for 677f882d2ed8..0f9421be3.js
@@ -2539,6 +2539,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       "use strict";
 
       exports.__esModule = true;
+      exports.refreshDummyBase = refreshDummyBase;
       exports.parseRelativeUrl = parseRelativeUrl;
 
       var _utils = __webpack_require__("g/15");
@@ -2548,6 +2549,15 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       var DUMMY_BASE = new URL(
         false ? undefined : (0, _utils.getLocationOrigin)()
       );
+      /**
+       * Refresh DUMMY_BASE for unit test
+       */
+
+      function refreshDummyBase() {
+        DUMMY_BASE = new URL(
+          false ? undefined : (0, _utils.getLocationOrigin)()
+        );
+      }
       /**
        * Parses path-relative urls (e.g. `/hello/world?foo=bar`). If url isn't path-relative
        * (e.g. `./hello`) then at least base must be.
@@ -2564,13 +2574,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
           search = _URL.search,
           hash = _URL.hash,
           href = _URL.href,
-          origin = _URL.origin,
-          protocol = _URL.protocol;
+          origin = _URL.origin;
 
-        if (
-          origin !== DUMMY_BASE.origin ||
-          (protocol !== "http:" && protocol !== "https:")
-        ) {
+        if (origin !== DUMMY_BASE.origin) {
           throw new Error("invariant: invalid relative URL");
         }
Diff for 677f882d2ed8..bc.module.js
@@ -1803,6 +1803,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       "use strict";
 
       exports.__esModule = true;
+      exports.refreshDummyBase = refreshDummyBase;
       exports.parseRelativeUrl = parseRelativeUrl;
 
       var _utils = __webpack_require__("g/15");
@@ -1812,6 +1813,15 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       var DUMMY_BASE = new URL(
         false ? undefined : (0, _utils.getLocationOrigin)()
       );
+      /**
+       * Refresh DUMMY_BASE for unit test
+       */
+
+      function refreshDummyBase() {
+        DUMMY_BASE = new URL(
+          false ? undefined : (0, _utils.getLocationOrigin)()
+        );
+      }
       /**
        * Parses path-relative urls (e.g. `/hello/world?foo=bar`). If url isn't path-relative
        * (e.g. `./hello`) then at least base must be.
@@ -1821,20 +1831,12 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
 
       function parseRelativeUrl(url, base) {
         var resolvedBase = base ? new URL(base, DUMMY_BASE) : DUMMY_BASE;
-        var {
-          pathname,
-          searchParams,
-          search,
-          hash,
-          href,
-          origin,
-          protocol
-        } = new URL(url, resolvedBase);
+        var { pathname, searchParams, search, hash, href, origin } = new URL(
+          url,
+          resolvedBase
+        );
 
-        if (
-          origin !== DUMMY_BASE.origin ||
-          (protocol !== "http:" && protocol !== "https:")
-        ) {
+        if (origin !== DUMMY_BASE.origin) {
           throw new Error("invariant: invalid relative URL");
         }
Diff for index.html
@@ -24,7 +24,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.7baf55f93a067e35adbc.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.b252cdcf0fb40e92a2df.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -121,13 +121,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.1294f190dde0f9421be3.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.6a1699deddf673330789.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.7baf55f93a067e35adbc.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.b252cdcf0fb40e92a2df.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for link.html
@@ -24,7 +24,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.7baf55f93a067e35adbc.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.b252cdcf0fb40e92a2df.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -126,13 +126,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.1294f190dde0f9421be3.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.6a1699deddf673330789.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.7baf55f93a067e35adbc.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.b252cdcf0fb40e92a2df.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for withRouter.html
@@ -24,7 +24,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.7baf55f93a067e35adbc.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.b252cdcf0fb40e92a2df.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -121,13 +121,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.1294f190dde0f9421be3.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.6a1699deddf673330789.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.7baf55f93a067e35adbc.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.b252cdcf0fb40e92a2df.module.js"
       async=""
       crossorigin="anonymous"
       type="module"

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
buildDuration 13.7s 13.8s ⚠️ +72ms
nodeModulesSize 57 MB 57 MB ⚠️ +440 B
Client Bundles (main, webpack, commons) Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..68c9.js gzip 10.9 kB N/A N/A
framework.HASH.js gzip 39 kB 39 kB
main-7ae8495..db56.js gzip 7 kB 7 kB
webpack-e067..f178.js gzip 751 B 751 B
677f882d2ed8..2998.js gzip N/A 10.9 kB N/A
Overall change 57.6 kB 57.6 kB -4 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..dule.js gzip 6.77 kB N/A N/A
framework.HA..dule.js gzip 39 kB 39 kB
main-5a735ed..dule.js gzip 6.07 kB 6.07 kB
webpack-07c5..dule.js gzip 751 B 751 B
677f882d2ed8..dule.js gzip N/A 6.77 kB N/A
Overall change 52.6 kB 52.6 kB ⚠️ +2 B
Legacy Client Bundles (polyfills)
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d2344ce..8b36.js gzip 1.3 kB 1.3 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.71 kB 7.71 kB
Client Pages Modern
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-f8c0daf..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.36 kB 5.36 kB
Client Build Manifests
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 651 B 651 B
Serverless bundles Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_error.js 1.03 MB 1.03 MB ⚠️ +111 B
404.html 4.34 kB 4.34 kB
hooks.html 3.92 kB 3.92 kB
index.js 1.04 MB 1.04 MB ⚠️ +111 B
link.js 1.08 MB 1.08 MB ⚠️ +111 B
routerDirect.js 1.07 MB 1.07 MB ⚠️ +111 B
withRouter.js 1.07 MB 1.07 MB ⚠️ +111 B
Overall change 5.31 MB 5.31 MB ⚠️ +555 B
Commit: a4d8808

@ijjk
Copy link
Member

ijjk commented Sep 11, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
buildDuration 11.7s 11.9s ⚠️ +241ms
nodeModulesSize 57 MB 57 MB ⚠️ +440 B
Page Load Tests Overall increase ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
/ failed reqs 0 0
/ total time (seconds) 2.245 2.213 -0.03
/ avg req/sec 1113.8 1129.63 +15.83
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.35 1.314 -0.04
/error-in-render avg req/sec 1851.58 1902.46 +50.88
Client Bundles (main, webpack, commons) Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..68c9.js gzip 10.9 kB 10.9 kB -4 B
framework.HASH.js gzip 39 kB 39 kB
main-7ae8495..db56.js gzip 7 kB 7 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 57.6 kB 57.6 kB -4 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..dule.js gzip 6.77 kB 6.77 kB ⚠️ +2 B
framework.HA..dule.js gzip 39 kB 39 kB
main-5a735ed..dule.js gzip 6.07 kB 6.07 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52.6 kB 52.6 kB ⚠️ +2 B
Legacy Client Bundles (polyfills)
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d2344ce..8b36.js gzip 1.3 kB 1.3 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.71 kB 7.71 kB
Client Pages Modern
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-f8c0daf..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.36 kB 5.36 kB
Client Build Manifests
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 651 B 651 B
Rendered Page Sizes Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
index.html gzip 1 kB 1 kB
link.html gzip 1.01 kB 1.01 kB
withRouter.html gzip 994 B 995 B ⚠️ +1 B
Overall change 3 kB 3.01 kB ⚠️ +1 B

Diffs

Diff for 677f882d2ed8..0f9421be3.js
@@ -2539,6 +2539,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       "use strict";
 
       exports.__esModule = true;
+      exports.refreshDummyBase = refreshDummyBase;
       exports.parseRelativeUrl = parseRelativeUrl;
 
       var _utils = __webpack_require__("g/15");
@@ -2548,6 +2549,15 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       var DUMMY_BASE = new URL(
         false ? undefined : (0, _utils.getLocationOrigin)()
       );
+      /**
+       * Refresh DUMMY_BASE for unit test
+       */
+
+      function refreshDummyBase() {
+        DUMMY_BASE = new URL(
+          false ? undefined : (0, _utils.getLocationOrigin)()
+        );
+      }
       /**
        * Parses path-relative urls (e.g. `/hello/world?foo=bar`). If url isn't path-relative
        * (e.g. `./hello`) then at least base must be.
@@ -2564,13 +2574,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
           search = _URL.search,
           hash = _URL.hash,
           href = _URL.href,
-          origin = _URL.origin,
-          protocol = _URL.protocol;
+          origin = _URL.origin;
 
-        if (
-          origin !== DUMMY_BASE.origin ||
-          (protocol !== "http:" && protocol !== "https:")
-        ) {
+        if (origin !== DUMMY_BASE.origin) {
           throw new Error("invariant: invalid relative URL");
         }
Diff for 677f882d2ed8..bc.module.js
@@ -1803,6 +1803,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       "use strict";
 
       exports.__esModule = true;
+      exports.refreshDummyBase = refreshDummyBase;
       exports.parseRelativeUrl = parseRelativeUrl;
 
       var _utils = __webpack_require__("g/15");
@@ -1812,6 +1813,15 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       var DUMMY_BASE = new URL(
         false ? undefined : (0, _utils.getLocationOrigin)()
       );
+      /**
+       * Refresh DUMMY_BASE for unit test
+       */
+
+      function refreshDummyBase() {
+        DUMMY_BASE = new URL(
+          false ? undefined : (0, _utils.getLocationOrigin)()
+        );
+      }
       /**
        * Parses path-relative urls (e.g. `/hello/world?foo=bar`). If url isn't path-relative
        * (e.g. `./hello`) then at least base must be.
@@ -1821,20 +1831,12 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
 
       function parseRelativeUrl(url, base) {
         var resolvedBase = base ? new URL(base, DUMMY_BASE) : DUMMY_BASE;
-        var {
-          pathname,
-          searchParams,
-          search,
-          hash,
-          href,
-          origin,
-          protocol
-        } = new URL(url, resolvedBase);
+        var { pathname, searchParams, search, hash, href, origin } = new URL(
+          url,
+          resolvedBase
+        );
 
-        if (
-          origin !== DUMMY_BASE.origin ||
-          (protocol !== "http:" && protocol !== "https:")
-        ) {
+        if (origin !== DUMMY_BASE.origin) {
           throw new Error("invariant: invalid relative URL");
         }
Diff for index.html
@@ -24,7 +24,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.7baf55f93a067e35adbc.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.b252cdcf0fb40e92a2df.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -121,13 +121,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.1294f190dde0f9421be3.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.6a1699deddf673330789.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.7baf55f93a067e35adbc.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.b252cdcf0fb40e92a2df.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for link.html
@@ -24,7 +24,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.7baf55f93a067e35adbc.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.b252cdcf0fb40e92a2df.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -126,13 +126,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.1294f190dde0f9421be3.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.6a1699deddf673330789.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.7baf55f93a067e35adbc.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.b252cdcf0fb40e92a2df.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for withRouter.html
@@ -24,7 +24,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.7baf55f93a067e35adbc.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.b252cdcf0fb40e92a2df.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -121,13 +121,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.1294f190dde0f9421be3.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.6a1699deddf673330789.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.7baf55f93a067e35adbc.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.b252cdcf0fb40e92a2df.module.js"
       async=""
       crossorigin="anonymous"
       type="module"

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
buildDuration 12.8s 12.8s ⚠️ +3ms
nodeModulesSize 57 MB 57 MB ⚠️ +440 B
Client Bundles (main, webpack, commons) Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..68c9.js gzip 10.9 kB N/A N/A
framework.HASH.js gzip 39 kB 39 kB
main-7ae8495..db56.js gzip 7 kB 7 kB
webpack-e067..f178.js gzip 751 B 751 B
677f882d2ed8..2998.js gzip N/A 10.9 kB N/A
Overall change 57.6 kB 57.6 kB -4 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..dule.js gzip 6.77 kB N/A N/A
framework.HA..dule.js gzip 39 kB 39 kB
main-5a735ed..dule.js gzip 6.07 kB 6.07 kB
webpack-07c5..dule.js gzip 751 B 751 B
677f882d2ed8..dule.js gzip N/A 6.77 kB N/A
Overall change 52.6 kB 52.6 kB ⚠️ +2 B
Legacy Client Bundles (polyfills)
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d2344ce..8b36.js gzip 1.3 kB 1.3 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.71 kB 7.71 kB
Client Pages Modern
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-f8c0daf..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.36 kB 5.36 kB
Client Build Manifests
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 651 B 651 B
Serverless bundles Overall increase ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_error.js 1.03 MB 1.03 MB ⚠️ +111 B
404.html 4.34 kB 4.34 kB
hooks.html 3.92 kB 3.92 kB
index.js 1.04 MB 1.04 MB ⚠️ +111 B
link.js 1.08 MB 1.08 MB ⚠️ +111 B
routerDirect.js 1.07 MB 1.07 MB ⚠️ +111 B
withRouter.js 1.07 MB 1.07 MB ⚠️ +111 B
Overall change 5.31 MB 5.31 MB ⚠️ +555 B
Commit: 02a0fd5

@ijjk
Copy link
Member

ijjk commented Oct 28, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
buildDuration 12.5s 12.8s ⚠️ +327ms
nodeModulesSize 91.3 MB 91.3 MB -249 B
Page Load Tests Overall increase ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
/ failed reqs 0 0
/ total time (seconds) 2.407 2.352 -0.06
/ avg req/sec 1038.5 1062.73 +24.23
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.277 1.259 -0.02
/error-in-render avg req/sec 1957.51 1985.7 +28.19
Client Bundles (main, webpack, commons) Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..3aa9.js gzip 11.3 kB 11.2 kB -19 B
framework.HASH.js gzip 39 kB 39 kB
main-fc2ed98..cd2b.js gzip 7.33 kB 7.33 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58.3 kB 58.3 kB -19 B
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..dule.js gzip 7.03 kB 7.01 kB -12 B
framework.HA..dule.js gzip 39 kB 39 kB
main-20f9619..dule.js gzip 6.31 kB 6.31 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 53.1 kB 53 kB -12 B
Legacy Client Bundles (polyfills) Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
polyfills-4b..e242.js gzip 31 kB 31 kB -16 B
Overall change 31 kB 31 kB -16 B
Client Pages
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-41ceea0..6b62.js gzip 1.35 kB 1.35 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.75 kB 7.75 kB
Client Pages Modern
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-2d41a89..dule.js gzip 1.31 kB 1.31 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.4 kB 5.4 kB
Client Build Manifests
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_buildManifest.js gzip 323 B 323 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 652 B 652 B
Rendered Page Sizes Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
index.html gzip 1 kB 1 kB
link.html gzip 1.01 kB 1.01 kB
withRouter.html gzip 996 B 994 B -2 B
Overall change 3.01 kB 3 kB -2 B

Diffs

Diff for 677f882d2ed8..77.module.js
@@ -1901,10 +1901,6 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       var _utils = __webpack_require__("g/15");
 
       var _querystring = __webpack_require__("3WeD");
-
-      var DUMMY_BASE = new URL(
-        false ? undefined : (0, _utils.getLocationOrigin)()
-      );
       /**
        * Parses path-relative urls (e.g. `/hello/world?foo=bar`). If url isn't path-relative
        * (e.g. `./hello`) then at least base must be.
@@ -1913,21 +1909,16 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
        */
 
       function parseRelativeUrl(url, base) {
-        var resolvedBase = base ? new URL(base, DUMMY_BASE) : DUMMY_BASE;
-        var {
-          pathname,
-          searchParams,
-          search,
-          hash,
-          href,
-          origin,
-          protocol
-        } = new URL(url, resolvedBase);
-
-        if (
-          origin !== DUMMY_BASE.origin ||
-          (protocol !== "http:" && protocol !== "https:")
-        ) {
+        var globalBase = new URL(
+          false ? undefined : (0, _utils.getLocationOrigin)()
+        );
+        var resolvedBase = base ? new URL(base, globalBase) : globalBase;
+        var { pathname, searchParams, search, hash, href, origin } = new URL(
+          url,
+          resolvedBase
+        );
+
+        if (origin !== globalBase.origin) {
           throw new Error("invariant: invalid relative URL");
         }
 
@@ -1936,7 +1927,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
           query: (0, _querystring.searchParamsToUrlQuery)(searchParams),
           search,
           hash,
-          href: href.slice(DUMMY_BASE.origin.length)
+          href: href.slice(globalBase.origin.length)
         };
       }
Diff for 677f882d2ed8..05a42e394.js
@@ -2679,10 +2679,6 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       var _utils = __webpack_require__("g/15");
 
       var _querystring = __webpack_require__("3WeD");
-
-      var DUMMY_BASE = new URL(
-        false ? undefined : (0, _utils.getLocationOrigin)()
-      );
       /**
        * Parses path-relative urls (e.g. `/hello/world?foo=bar`). If url isn't path-relative
        * (e.g. `./hello`) then at least base must be.
@@ -2691,7 +2687,10 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
        */
 
       function parseRelativeUrl(url, base) {
-        var resolvedBase = base ? new URL(base, DUMMY_BASE) : DUMMY_BASE;
+        var globalBase = new URL(
+          false ? undefined : (0, _utils.getLocationOrigin)()
+        );
+        var resolvedBase = base ? new URL(base, globalBase) : globalBase;
 
         var _URL = new URL(url, resolvedBase),
           pathname = _URL.pathname,
@@ -2699,13 +2698,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
           search = _URL.search,
           hash = _URL.hash,
           href = _URL.href,
-          origin = _URL.origin,
-          protocol = _URL.protocol;
+          origin = _URL.origin;
 
-        if (
-          origin !== DUMMY_BASE.origin ||
-          (protocol !== "http:" && protocol !== "https:")
-        ) {
+        if (origin !== globalBase.origin) {
           throw new Error("invariant: invalid relative URL");
         }
 
@@ -2714,7 +2709,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
           query: (0, _querystring.searchParamsToUrlQuery)(searchParams),
           search: search,
           hash: hash,
-          href: href.slice(DUMMY_BASE.origin.length)
+          href: href.slice(globalBase.origin.length)
         };
       }
Diff for polyfills-f7..972ef83e9.js
@@ -1096,15 +1096,14 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
             {
               of: function() {
                 for (
-                  var t = arguments,
-                    e = 0,
-                    r = arguments.length,
-                    n = new ("function" == typeof this ? this : Array)(r);
-                  r > e;
+                  var t = 0,
+                    e = arguments.length,
+                    r = new ("function" == typeof this ? this : Array)(e);
+                  e > t;
 
                 )
-                  Je(n, e, t[e++]);
-                return (n.length = r), n;
+                  Je(r, t, arguments[t++]);
+                return (r.length = e), r;
               }
             }
           );
@@ -1600,29 +1599,24 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
           };
           Pt({ target: "Map", stat: !0 }, { from: Wr });
           var Kr = function() {
-            for (
-              var t = arguments, e = arguments.length, r = new Array(e);
-              e--;
-
-            )
-              r[e] = t[e];
-            return new this(r);
+            for (var t = arguments.length, e = new Array(t); t--; )
+              e[t] = arguments[t];
+            return new this(e);
           };
           Pt({ target: "Map", stat: !0 }, { of: Kr });
           var Gr = function() {
             for (
               var t,
-                e = arguments,
-                r = O(this),
-                n = Yt(r.delete),
-                o = !0,
-                i = 0,
-                a = arguments.length;
-              i < a;
-              i++
+                e = O(this),
+                r = Yt(e.delete),
+                n = !0,
+                o = 0,
+                i = arguments.length;
+              o < i;
+              o++
             )
-              (t = n.call(r, e[i])), (o = o && t);
-            return !!o;
+              (t = r.call(e, arguments[o])), (n = n && t);
+            return !!n;
           };
           Pt(
             { target: "Map", proto: !0, real: !0, forced: !1 },
@@ -1850,12 +1844,12 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
               {
                 merge: function(t) {
                   for (
-                    var e = arguments, r = O(this), n = Yt(r.set), o = 0;
-                    o < arguments.length;
+                    var e = O(this), r = Yt(e.set), n = 0;
+                    n < arguments.length;
 
                   )
-                    Er(e[o++], n, r, !0);
-                  return r;
+                    Er(arguments[n++], r, e, !0);
+                  return e;
                 }
               }
             ),
@@ -2880,9 +2874,8 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
                   n &&
                   n.length > 1 &&
                   ni.call(n[0], r, function() {
-                    var t = arguments;
                     for (o = 1; o < arguments.length - 2; o++)
-                      void 0 === t[o] && (n[o] = void 0);
+                      void 0 === arguments[o] && (n[o] = void 0);
                   }),
                 n
               );
@@ -3311,16 +3304,12 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
             Pt({ target: "Set", stat: !0 }, { of: Kr });
           var Ui = function() {
             for (
-              var t = arguments,
-                e = O(this),
-                r = Yt(e.add),
-                n = 0,
-                o = arguments.length;
-              n < o;
-              n++
+              var t = O(this), e = Yt(t.add), r = 0, n = arguments.length;
+              r < n;
+              r++
             )
-              r.call(e, t[n]);
-            return e;
+              e.call(t, arguments[r]);
+            return t;
           };
           Pt(
             { target: "Set", proto: !0, real: !0, forced: !1 },
@@ -3639,21 +3628,20 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
                   n,
                   o,
                   i,
-                  a = arguments,
-                  u = Tt(this),
-                  s = re(u, 0),
-                  c = 0;
+                  a = Tt(this),
+                  u = re(a, 0),
+                  s = 0;
                 for (e = -1, n = arguments.length; e < n; e++)
-                  if ($i((i = -1 === e ? u : a[e]))) {
-                    if (c + (o = ut(i.length)) > 9007199254740991)
+                  if ($i((i = -1 === e ? a : arguments[e]))) {
+                    if (s + (o = ut(i.length)) > 9007199254740991)
                       throw TypeError("Maximum allowed index exceeded");
-                    for (r = 0; r < o; r++, c++) r in i && Je(s, c, i[r]);
+                    for (r = 0; r < o; r++, s++) r in i && Je(u, s, i[r]);
                   } else {
-                    if (c >= 9007199254740991)
+                    if (s >= 9007199254740991)
                       throw TypeError("Maximum allowed index exceeded");
-                    Je(s, c++, i);
+                    Je(u, s++, i);
                   }
-                return (s.length = c), s;
+                return (u.length = s), u;
               }
             }
           );
@@ -3928,12 +3916,8 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
               { target: "JSON", stat: !0, forced: Ia },
               {
                 stringify: function(t, e, r) {
-                  for (
-                    var n, o = arguments, i = [t], a = 1;
-                    arguments.length > a;
-
-                  )
-                    i.push(o[a++]);
+                  for (var n, o = [t], i = 1; arguments.length > i; )
+                    o.push(arguments[i++]);
                   if (((n = e), (g(e) || void 0 !== t) && !wa(t)))
                     return (
                       te(e) ||
@@ -3944,8 +3928,8 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
                           )
                             return e;
                         }),
-                      (i[1] = e),
-                      ua.apply(null, i)
+                      (o[1] = e),
+                      ua.apply(null, o)
                     );
                 }
               }
@@ -4073,20 +4057,16 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
             { target: "String", stat: !0, forced: !!Ha && 1 != Ha.length },
             {
               fromCodePoint: function(t) {
-                for (
-                  var e, r = arguments, n = [], o = arguments.length, i = 0;
-                  o > i;
-
-                ) {
-                  if (((e = +r[i++]), ft(e, 1114111) !== e))
+                for (var e, r = [], n = arguments.length, o = 0; n > o; ) {
+                  if (((e = +arguments[o++]), ft(e, 1114111) !== e))
                     throw RangeError(e + " is not a valid code point");
-                  n.push(
+                  r.push(
                     e < 65536
                       ? Va(e)
                       : Va(55296 + ((e -= 65536) >> 10), (e % 1024) + 56320)
                   );
                 }
-                return n.join("");
+                return r.join("");
               }
             }
           ),
@@ -4164,17 +4144,17 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
               {
                 raw: function(t) {
                   for (
-                    var e = arguments,
-                      r = v(t.raw),
-                      n = ut(r.length),
-                      o = arguments.length,
-                      i = [],
-                      a = 0;
-                    n > a;
+                    var e = v(t.raw),
+                      r = ut(e.length),
+                      n = arguments.length,
+                      o = [],
+                      i = 0;
+                    r > i;
 
                   )
-                    i.push(String(r[a++])), a < o && i.push(String(e[a]));
-                  return i.join("");
+                    o.push(String(e[i++])),
+                      i < n && o.push(String(arguments[i]));
+                  return o.join("");
                 }
               }
             ),
@@ -4294,26 +4274,25 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
               })
                 ? function(t, e) {
                     for (
-                      var r = arguments,
-                        n = Tt(t),
-                        o = arguments.length,
-                        a = 1,
-                        u = mt.f,
-                        c = s.f;
-                      o > a;
+                      var r = Tt(t),
+                        n = arguments.length,
+                        o = 1,
+                        a = mt.f,
+                        u = s.f;
+                      n > o;
 
                     )
                       for (
-                        var f,
-                          l = p(r[a++]),
-                          h = u ? Bt(l).concat(u(l)) : Bt(l),
-                          d = h.length,
-                          v = 0;
-                        d > v;
+                        var c,
+                          f = p(arguments[o++]),
+                          l = a ? Bt(f).concat(a(f)) : Bt(f),
+                          h = l.length,
+                          d = 0;
+                        h > d;
 
                       )
-                        (f = h[v++]), (i && !c.call(l, f)) || (n[f] = l[f]);
-                    return n;
+                        (c = l[d++]), (i && !u.call(f, c)) || (r[c] = f[c]);
+                    return r;
                   }
                 : gu,
             bu = /[^\0-\u007E]/,
@@ -5600,11 +5579,11 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
             };
           (xc && Ac) ||
             ((xc = function(t) {
-              for (var e = arguments, r = [], n = 1; arguments.length > n; )
-                r.push(e[n++]);
+              for (var e = [], r = 1; arguments.length > r; )
+                e.push(arguments[r++]);
               return (
                 (Pc[++Ic] = function() {
-                  ("function" == typeof t ? t : Function(t)).apply(void 0, r);
+                  ("function" == typeof t ? t : Function(t)).apply(void 0, e);
                 }),
                 yc(Ic),
                 Ic
Diff for index.html
@@ -24,7 +24,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.4c5c4f34cb1aaaa3c077.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.a8dacb6b19043e43c645.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -82,7 +82,7 @@
     <script
       crossorigin="anonymous"
       nomodule=""
-      src="/_next/static/chunks/polyfills-f73ba3fc145972ef83e9.js"
+      src="/_next/static/chunks/polyfills-769ffb30946627a111d3.js"
     ></script>
     <script
       src="/_next/static/chunks/main-372f6f630491ac138fc9.js"
@@ -121,13 +121,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.5ddaca5d46f05a42e394.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.41ca0b35d343a690de5e.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.4c5c4f34cb1aaaa3c077.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.a8dacb6b19043e43c645.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for link.html
@@ -24,7 +24,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.4c5c4f34cb1aaaa3c077.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.a8dacb6b19043e43c645.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -87,7 +87,7 @@
     <script
       crossorigin="anonymous"
       nomodule=""
-      src="/_next/static/chunks/polyfills-f73ba3fc145972ef83e9.js"
+      src="/_next/static/chunks/polyfills-769ffb30946627a111d3.js"
     ></script>
     <script
       src="/_next/static/chunks/main-372f6f630491ac138fc9.js"
@@ -126,13 +126,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.5ddaca5d46f05a42e394.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.41ca0b35d343a690de5e.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.4c5c4f34cb1aaaa3c077.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.a8dacb6b19043e43c645.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for withRouter.html
@@ -24,7 +24,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.4c5c4f34cb1aaaa3c077.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.a8dacb6b19043e43c645.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -82,7 +82,7 @@
     <script
       crossorigin="anonymous"
       nomodule=""
-      src="/_next/static/chunks/polyfills-f73ba3fc145972ef83e9.js"
+      src="/_next/static/chunks/polyfills-769ffb30946627a111d3.js"
     ></script>
     <script
       src="/_next/static/chunks/main-372f6f630491ac138fc9.js"
@@ -121,13 +121,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.5ddaca5d46f05a42e394.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.41ca0b35d343a690de5e.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.4c5c4f34cb1aaaa3c077.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.a8dacb6b19043e43c645.module.js"
       async=""
       crossorigin="anonymous"
       type="module"

Serverless Mode (Decrease detected ✓)
General Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
buildDuration 14.4s 14.6s ⚠️ +153ms
nodeModulesSize 91.3 MB 91.3 MB -249 B
Client Bundles (main, webpack, commons) Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..3aa9.js gzip 11.3 kB N/A N/A
framework.HASH.js gzip 39 kB 39 kB
main-fc2ed98..cd2b.js gzip 7.33 kB 7.33 kB
webpack-e067..f178.js gzip 751 B 751 B
677f882d2ed8..043b.js gzip N/A 11.2 kB N/A
Overall change 58.3 kB 58.3 kB -19 B
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..dule.js gzip 7.03 kB N/A N/A
framework.HA..dule.js gzip 39 kB 39 kB
main-20f9619..dule.js gzip 6.31 kB 6.31 kB
webpack-07c5..dule.js gzip 751 B 751 B
677f882d2ed8..dule.js gzip N/A 7.01 kB N/A
Overall change 53.1 kB 53 kB -12 B
Legacy Client Bundles (polyfills) Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
polyfills-4b..e242.js gzip 31 kB N/A N/A
polyfills-b5..1119.js gzip N/A 31 kB N/A
Overall change 31 kB 31 kB -16 B
Client Pages
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-41ceea0..6b62.js gzip 1.35 kB 1.35 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.75 kB 7.75 kB
Client Pages Modern
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-2d41a89..dule.js gzip 1.31 kB 1.31 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.4 kB 5.4 kB
Client Build Manifests
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_buildManifest.js gzip 323 B 323 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 652 B 652 B
Serverless bundles Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_error.js 1.06 MB 1.06 MB -61 B
404.html 4.73 kB 4.73 kB
hooks.html 3.92 kB 3.92 kB
index.js 1.06 MB 1.06 MB -61 B
link.js 1.11 MB 1.11 MB -61 B
routerDirect.js 1.1 MB 1.1 MB -61 B
withRouter.js 1.1 MB 1.1 MB -61 B
Overall change 5.43 MB 5.43 MB -305 B
Commit: b1c7bcd

@Cow258 Cow258 requested a review from Janpot October 29, 2020 11:21
@ijjk
Copy link
Member

ijjk commented Oct 29, 2020

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
buildDuration 13s 12.7s -312ms
nodeModulesSize 91.3 MB 91.3 MB -249 B
Page Load Tests Overall decrease ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
/ failed reqs 0 0
/ total time (seconds) 2.385 2.43 ⚠️ +0.05
/ avg req/sec 1048.28 1028.9 ⚠️ -19.38
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.249 1.309 ⚠️ +0.06
/error-in-render avg req/sec 2001.35 1909.57 ⚠️ -91.78
Client Bundles (main, webpack, commons) Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..3aa9.js gzip 11.3 kB 11.2 kB -19 B
framework.HASH.js gzip 39 kB 39 kB
main-fc2ed98..cd2b.js gzip 7.33 kB 7.33 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58.3 kB 58.3 kB -19 B
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..dule.js gzip 7.03 kB 7.01 kB -12 B
framework.HA..dule.js gzip 39 kB 39 kB
main-20f9619..dule.js gzip 6.31 kB 6.31 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 53.1 kB 53 kB -12 B
Legacy Client Bundles (polyfills) Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
polyfills-4b..e242.js gzip 31 kB 31 kB -16 B
Overall change 31 kB 31 kB -16 B
Client Pages
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-41ceea0..6b62.js gzip 1.35 kB 1.35 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.75 kB 7.75 kB
Client Pages Modern
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-2d41a89..dule.js gzip 1.31 kB 1.31 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.4 kB 5.4 kB
Client Build Manifests
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_buildManifest.js gzip 323 B 323 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 652 B 652 B
Rendered Page Sizes Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
index.html gzip 1 kB 1 kB
link.html gzip 1.01 kB 1.01 kB
withRouter.html gzip 996 B 994 B -2 B
Overall change 3.01 kB 3 kB -2 B

Diffs

Diff for 677f882d2ed8..77.module.js
@@ -1901,10 +1901,6 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       var _utils = __webpack_require__("g/15");
 
       var _querystring = __webpack_require__("3WeD");
-
-      var DUMMY_BASE = new URL(
-        false ? undefined : (0, _utils.getLocationOrigin)()
-      );
       /**
        * Parses path-relative urls (e.g. `/hello/world?foo=bar`). If url isn't path-relative
        * (e.g. `./hello`) then at least base must be.
@@ -1913,21 +1909,16 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
        */
 
       function parseRelativeUrl(url, base) {
-        var resolvedBase = base ? new URL(base, DUMMY_BASE) : DUMMY_BASE;
-        var {
-          pathname,
-          searchParams,
-          search,
-          hash,
-          href,
-          origin,
-          protocol
-        } = new URL(url, resolvedBase);
-
-        if (
-          origin !== DUMMY_BASE.origin ||
-          (protocol !== "http:" && protocol !== "https:")
-        ) {
+        var globalBase = new URL(
+          false ? undefined : (0, _utils.getLocationOrigin)()
+        );
+        var resolvedBase = base ? new URL(base, globalBase) : globalBase;
+        var { pathname, searchParams, search, hash, href, origin } = new URL(
+          url,
+          resolvedBase
+        );
+
+        if (origin !== globalBase.origin) {
           throw new Error("invariant: invalid relative URL");
         }
 
@@ -1936,7 +1927,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
           query: (0, _querystring.searchParamsToUrlQuery)(searchParams),
           search,
           hash,
-          href: href.slice(DUMMY_BASE.origin.length)
+          href: href.slice(globalBase.origin.length)
         };
       }
Diff for 677f882d2ed8..05a42e394.js
@@ -2679,10 +2679,6 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       var _utils = __webpack_require__("g/15");
 
       var _querystring = __webpack_require__("3WeD");
-
-      var DUMMY_BASE = new URL(
-        false ? undefined : (0, _utils.getLocationOrigin)()
-      );
       /**
        * Parses path-relative urls (e.g. `/hello/world?foo=bar`). If url isn't path-relative
        * (e.g. `./hello`) then at least base must be.
@@ -2691,7 +2687,10 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
        */
 
       function parseRelativeUrl(url, base) {
-        var resolvedBase = base ? new URL(base, DUMMY_BASE) : DUMMY_BASE;
+        var globalBase = new URL(
+          false ? undefined : (0, _utils.getLocationOrigin)()
+        );
+        var resolvedBase = base ? new URL(base, globalBase) : globalBase;
 
         var _URL = new URL(url, resolvedBase),
           pathname = _URL.pathname,
@@ -2699,13 +2698,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
           search = _URL.search,
           hash = _URL.hash,
           href = _URL.href,
-          origin = _URL.origin,
-          protocol = _URL.protocol;
+          origin = _URL.origin;
 
-        if (
-          origin !== DUMMY_BASE.origin ||
-          (protocol !== "http:" && protocol !== "https:")
-        ) {
+        if (origin !== globalBase.origin) {
           throw new Error("invariant: invalid relative URL");
         }
 
@@ -2714,7 +2709,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
           query: (0, _querystring.searchParamsToUrlQuery)(searchParams),
           search: search,
           hash: hash,
-          href: href.slice(DUMMY_BASE.origin.length)
+          href: href.slice(globalBase.origin.length)
         };
       }
Diff for polyfills-f7..972ef83e9.js
@@ -1096,15 +1096,14 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
             {
               of: function() {
                 for (
-                  var t = arguments,
-                    e = 0,
-                    r = arguments.length,
-                    n = new ("function" == typeof this ? this : Array)(r);
-                  r > e;
+                  var t = 0,
+                    e = arguments.length,
+                    r = new ("function" == typeof this ? this : Array)(e);
+                  e > t;
 
                 )
-                  Je(n, e, t[e++]);
-                return (n.length = r), n;
+                  Je(r, t, arguments[t++]);
+                return (r.length = e), r;
               }
             }
           );
@@ -1600,29 +1599,24 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
           };
           Pt({ target: "Map", stat: !0 }, { from: Wr });
           var Kr = function() {
-            for (
-              var t = arguments, e = arguments.length, r = new Array(e);
-              e--;
-
-            )
-              r[e] = t[e];
-            return new this(r);
+            for (var t = arguments.length, e = new Array(t); t--; )
+              e[t] = arguments[t];
+            return new this(e);
           };
           Pt({ target: "Map", stat: !0 }, { of: Kr });
           var Gr = function() {
             for (
               var t,
-                e = arguments,
-                r = O(this),
-                n = Yt(r.delete),
-                o = !0,
-                i = 0,
-                a = arguments.length;
-              i < a;
-              i++
+                e = O(this),
+                r = Yt(e.delete),
+                n = !0,
+                o = 0,
+                i = arguments.length;
+              o < i;
+              o++
             )
-              (t = n.call(r, e[i])), (o = o && t);
-            return !!o;
+              (t = r.call(e, arguments[o])), (n = n && t);
+            return !!n;
           };
           Pt(
             { target: "Map", proto: !0, real: !0, forced: !1 },
@@ -1850,12 +1844,12 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
               {
                 merge: function(t) {
                   for (
-                    var e = arguments, r = O(this), n = Yt(r.set), o = 0;
-                    o < arguments.length;
+                    var e = O(this), r = Yt(e.set), n = 0;
+                    n < arguments.length;
 
                   )
-                    Er(e[o++], n, r, !0);
-                  return r;
+                    Er(arguments[n++], r, e, !0);
+                  return e;
                 }
               }
             ),
@@ -2880,9 +2874,8 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
                   n &&
                   n.length > 1 &&
                   ni.call(n[0], r, function() {
-                    var t = arguments;
                     for (o = 1; o < arguments.length - 2; o++)
-                      void 0 === t[o] && (n[o] = void 0);
+                      void 0 === arguments[o] && (n[o] = void 0);
                   }),
                 n
               );
@@ -3311,16 +3304,12 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
             Pt({ target: "Set", stat: !0 }, { of: Kr });
           var Ui = function() {
             for (
-              var t = arguments,
-                e = O(this),
-                r = Yt(e.add),
-                n = 0,
-                o = arguments.length;
-              n < o;
-              n++
+              var t = O(this), e = Yt(t.add), r = 0, n = arguments.length;
+              r < n;
+              r++
             )
-              r.call(e, t[n]);
-            return e;
+              e.call(t, arguments[r]);
+            return t;
           };
           Pt(
             { target: "Set", proto: !0, real: !0, forced: !1 },
@@ -3639,21 +3628,20 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
                   n,
                   o,
                   i,
-                  a = arguments,
-                  u = Tt(this),
-                  s = re(u, 0),
-                  c = 0;
+                  a = Tt(this),
+                  u = re(a, 0),
+                  s = 0;
                 for (e = -1, n = arguments.length; e < n; e++)
-                  if ($i((i = -1 === e ? u : a[e]))) {
-                    if (c + (o = ut(i.length)) > 9007199254740991)
+                  if ($i((i = -1 === e ? a : arguments[e]))) {
+                    if (s + (o = ut(i.length)) > 9007199254740991)
                       throw TypeError("Maximum allowed index exceeded");
-                    for (r = 0; r < o; r++, c++) r in i && Je(s, c, i[r]);
+                    for (r = 0; r < o; r++, s++) r in i && Je(u, s, i[r]);
                   } else {
-                    if (c >= 9007199254740991)
+                    if (s >= 9007199254740991)
                       throw TypeError("Maximum allowed index exceeded");
-                    Je(s, c++, i);
+                    Je(u, s++, i);
                   }
-                return (s.length = c), s;
+                return (u.length = s), u;
               }
             }
           );
@@ -3928,12 +3916,8 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
               { target: "JSON", stat: !0, forced: Ia },
               {
                 stringify: function(t, e, r) {
-                  for (
-                    var n, o = arguments, i = [t], a = 1;
-                    arguments.length > a;
-
-                  )
-                    i.push(o[a++]);
+                  for (var n, o = [t], i = 1; arguments.length > i; )
+                    o.push(arguments[i++]);
                   if (((n = e), (g(e) || void 0 !== t) && !wa(t)))
                     return (
                       te(e) ||
@@ -3944,8 +3928,8 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
                           )
                             return e;
                         }),
-                      (i[1] = e),
-                      ua.apply(null, i)
+                      (o[1] = e),
+                      ua.apply(null, o)
                     );
                 }
               }
@@ -4073,20 +4057,16 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
             { target: "String", stat: !0, forced: !!Ha && 1 != Ha.length },
             {
               fromCodePoint: function(t) {
-                for (
-                  var e, r = arguments, n = [], o = arguments.length, i = 0;
-                  o > i;
-
-                ) {
-                  if (((e = +r[i++]), ft(e, 1114111) !== e))
+                for (var e, r = [], n = arguments.length, o = 0; n > o; ) {
+                  if (((e = +arguments[o++]), ft(e, 1114111) !== e))
                     throw RangeError(e + " is not a valid code point");
-                  n.push(
+                  r.push(
                     e < 65536
                       ? Va(e)
                       : Va(55296 + ((e -= 65536) >> 10), (e % 1024) + 56320)
                   );
                 }
-                return n.join("");
+                return r.join("");
               }
             }
           ),
@@ -4164,17 +4144,17 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
               {
                 raw: function(t) {
                   for (
-                    var e = arguments,
-                      r = v(t.raw),
-                      n = ut(r.length),
-                      o = arguments.length,
-                      i = [],
-                      a = 0;
-                    n > a;
+                    var e = v(t.raw),
+                      r = ut(e.length),
+                      n = arguments.length,
+                      o = [],
+                      i = 0;
+                    r > i;
 
                   )
-                    i.push(String(r[a++])), a < o && i.push(String(e[a]));
-                  return i.join("");
+                    o.push(String(e[i++])),
+                      i < n && o.push(String(arguments[i]));
+                  return o.join("");
                 }
               }
             ),
@@ -4294,26 +4274,25 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
               })
                 ? function(t, e) {
                     for (
-                      var r = arguments,
-                        n = Tt(t),
-                        o = arguments.length,
-                        a = 1,
-                        u = mt.f,
-                        c = s.f;
-                      o > a;
+                      var r = Tt(t),
+                        n = arguments.length,
+                        o = 1,
+                        a = mt.f,
+                        u = s.f;
+                      n > o;
 
                     )
                       for (
-                        var f,
-                          l = p(r[a++]),
-                          h = u ? Bt(l).concat(u(l)) : Bt(l),
-                          d = h.length,
-                          v = 0;
-                        d > v;
+                        var c,
+                          f = p(arguments[o++]),
+                          l = a ? Bt(f).concat(a(f)) : Bt(f),
+                          h = l.length,
+                          d = 0;
+                        h > d;
 
                       )
-                        (f = h[v++]), (i && !c.call(l, f)) || (n[f] = l[f]);
-                    return n;
+                        (c = l[d++]), (i && !u.call(f, c)) || (r[c] = f[c]);
+                    return r;
                   }
                 : gu,
             bu = /[^\0-\u007E]/,
@@ -5600,11 +5579,11 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
             };
           (xc && Ac) ||
             ((xc = function(t) {
-              for (var e = arguments, r = [], n = 1; arguments.length > n; )
-                r.push(e[n++]);
+              for (var e = [], r = 1; arguments.length > r; )
+                e.push(arguments[r++]);
               return (
                 (Pc[++Ic] = function() {
-                  ("function" == typeof t ? t : Function(t)).apply(void 0, r);
+                  ("function" == typeof t ? t : Function(t)).apply(void 0, e);
                 }),
                 yc(Ic),
                 Ic
Diff for index.html
@@ -24,7 +24,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.4c5c4f34cb1aaaa3c077.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.a8dacb6b19043e43c645.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -82,7 +82,7 @@
     <script
       crossorigin="anonymous"
       nomodule=""
-      src="/_next/static/chunks/polyfills-f73ba3fc145972ef83e9.js"
+      src="/_next/static/chunks/polyfills-769ffb30946627a111d3.js"
     ></script>
     <script
       src="/_next/static/chunks/main-372f6f630491ac138fc9.js"
@@ -121,13 +121,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.5ddaca5d46f05a42e394.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.41ca0b35d343a690de5e.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.4c5c4f34cb1aaaa3c077.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.a8dacb6b19043e43c645.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for link.html
@@ -24,7 +24,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.4c5c4f34cb1aaaa3c077.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.a8dacb6b19043e43c645.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -87,7 +87,7 @@
     <script
       crossorigin="anonymous"
       nomodule=""
-      src="/_next/static/chunks/polyfills-f73ba3fc145972ef83e9.js"
+      src="/_next/static/chunks/polyfills-769ffb30946627a111d3.js"
     ></script>
     <script
       src="/_next/static/chunks/main-372f6f630491ac138fc9.js"
@@ -126,13 +126,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.5ddaca5d46f05a42e394.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.41ca0b35d343a690de5e.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.4c5c4f34cb1aaaa3c077.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.a8dacb6b19043e43c645.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for withRouter.html
@@ -24,7 +24,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.4c5c4f34cb1aaaa3c077.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.a8dacb6b19043e43c645.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -82,7 +82,7 @@
     <script
       crossorigin="anonymous"
       nomodule=""
-      src="/_next/static/chunks/polyfills-f73ba3fc145972ef83e9.js"
+      src="/_next/static/chunks/polyfills-769ffb30946627a111d3.js"
     ></script>
     <script
       src="/_next/static/chunks/main-372f6f630491ac138fc9.js"
@@ -121,13 +121,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.5ddaca5d46f05a42e394.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.41ca0b35d343a690de5e.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.4c5c4f34cb1aaaa3c077.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.a8dacb6b19043e43c645.module.js"
       async=""
       crossorigin="anonymous"
       type="module"

Serverless Mode (Decrease detected ✓)
General Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
buildDuration 14.6s 14.9s ⚠️ +229ms
nodeModulesSize 91.3 MB 91.3 MB -249 B
Client Bundles (main, webpack, commons) Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..3aa9.js gzip 11.3 kB N/A N/A
framework.HASH.js gzip 39 kB 39 kB
main-fc2ed98..cd2b.js gzip 7.33 kB 7.33 kB
webpack-e067..f178.js gzip 751 B 751 B
677f882d2ed8..043b.js gzip N/A 11.2 kB N/A
Overall change 58.3 kB 58.3 kB -19 B
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..dule.js gzip 7.03 kB N/A N/A
framework.HA..dule.js gzip 39 kB 39 kB
main-20f9619..dule.js gzip 6.31 kB 6.31 kB
webpack-07c5..dule.js gzip 751 B 751 B
677f882d2ed8..dule.js gzip N/A 7.01 kB N/A
Overall change 53.1 kB 53 kB -12 B
Legacy Client Bundles (polyfills) Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
polyfills-4b..e242.js gzip 31 kB N/A N/A
polyfills-b5..1119.js gzip N/A 31 kB N/A
Overall change 31 kB 31 kB -16 B
Client Pages
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-41ceea0..6b62.js gzip 1.35 kB 1.35 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.75 kB 7.75 kB
Client Pages Modern
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-2d41a89..dule.js gzip 1.31 kB 1.31 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.4 kB 5.4 kB
Client Build Manifests
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_buildManifest.js gzip 323 B 323 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 652 B 652 B
Serverless bundles Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_error.js 1.06 MB 1.06 MB -61 B
404.html 4.73 kB 4.73 kB
hooks.html 3.92 kB 3.92 kB
index.js 1.06 MB 1.06 MB -61 B
link.js 1.11 MB 1.11 MB -61 B
routerDirect.js 1.1 MB 1.1 MB -61 B
withRouter.js 1.1 MB 1.1 MB -61 B
Overall change 5.43 MB 5.43 MB -305 B
Commit: 409bf27

@Cow258
Copy link
Contributor Author

Cow258 commented Oct 30, 2020

Will this be merged? I really need this to be fixed before being able to update next, currently stuck on version 9.3.0 :/

You can using 9.5.1 without any protocol issue.
I'm also waiting for this PR merge.

@ijjk
Copy link
Member

ijjk commented Nov 3, 2020

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
buildDuration 11.6s 11.8s ⚠️ +169ms
nodeModulesSize 90.1 MB 90.1 MB -249 B
Page Load Tests Overall decrease ⚠️
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
/ failed reqs 0 0
/ total time (seconds) 2.203 2.21 ⚠️ +0.01
/ avg req/sec 1134.88 1131.34 ⚠️ -3.54
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.204 1.218 ⚠️ +0.01
/error-in-render avg req/sec 2076.3 2052.84 ⚠️ -23.46
Client Bundles (main, webpack, commons) Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..981d.js gzip 11.3 kB 11.2 kB -19 B
framework.HASH.js gzip 39 kB 39 kB
main-d23595f..3966.js gzip 7.35 kB 7.35 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58.3 kB 58.3 kB -19 B
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..dule.js gzip 7.03 kB 7.02 kB -12 B
framework.HA..dule.js gzip 39 kB 39 kB
main-65e68ba..dule.js gzip 6.35 kB 6.35 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 53.1 kB 53.1 kB -12 B
Legacy Client Bundles (polyfills) Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
polyfills-4b..e242.js gzip 31 kB 31 kB -16 B
Overall change 31 kB 31 kB -16 B
Client Pages
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-a674d88..ccde.js gzip 1.35 kB 1.35 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.75 kB 7.75 kB
Client Pages Modern
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-a4469f3..dule.js gzip 1.32 kB 1.32 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.41 kB 5.41 kB
Client Build Manifests
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 330 B 330 B
Overall change 652 B 652 B
Rendered Page Sizes Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
index.html gzip 1 kB 1 kB -3 B
link.html gzip 1.01 kB 1.01 kB -1 B
withRouter.html gzip 995 B 994 B -1 B
Overall change 3.01 kB 3 kB -5 B

Diffs

Diff for 677f882d2ed8..aa41086c2.js
@@ -2691,10 +2691,6 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       var _utils = __webpack_require__("g/15");
 
       var _querystring = __webpack_require__("3WeD");
-
-      var DUMMY_BASE = new URL(
-        false ? undefined : (0, _utils.getLocationOrigin)()
-      );
       /**
        * Parses path-relative urls (e.g. `/hello/world?foo=bar`). If url isn't path-relative
        * (e.g. `./hello`) then at least base must be.
@@ -2703,7 +2699,10 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
        */
 
       function parseRelativeUrl(url, base) {
-        var resolvedBase = base ? new URL(base, DUMMY_BASE) : DUMMY_BASE;
+        var globalBase = new URL(
+          false ? undefined : (0, _utils.getLocationOrigin)()
+        );
+        var resolvedBase = base ? new URL(base, globalBase) : globalBase;
 
         var _URL = new URL(url, resolvedBase),
           pathname = _URL.pathname,
@@ -2711,13 +2710,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
           search = _URL.search,
           hash = _URL.hash,
           href = _URL.href,
-          origin = _URL.origin,
-          protocol = _URL.protocol;
+          origin = _URL.origin;
 
-        if (
-          origin !== DUMMY_BASE.origin ||
-          (protocol !== "http:" && protocol !== "https:")
-        ) {
+        if (origin !== globalBase.origin) {
           throw new Error("invariant: invalid relative URL");
         }
 
@@ -2726,7 +2721,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
           query: (0, _querystring.searchParamsToUrlQuery)(searchParams),
           search: search,
           hash: hash,
-          href: href.slice(DUMMY_BASE.origin.length)
+          href: href.slice(globalBase.origin.length)
         };
       }
Diff for 677f882d2ed8..c8.module.js
@@ -1911,10 +1911,6 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       var _utils = __webpack_require__("g/15");
 
       var _querystring = __webpack_require__("3WeD");
-
-      var DUMMY_BASE = new URL(
-        false ? undefined : (0, _utils.getLocationOrigin)()
-      );
       /**
        * Parses path-relative urls (e.g. `/hello/world?foo=bar`). If url isn't path-relative
        * (e.g. `./hello`) then at least base must be.
@@ -1923,21 +1919,16 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
        */
 
       function parseRelativeUrl(url, base) {
-        var resolvedBase = base ? new URL(base, DUMMY_BASE) : DUMMY_BASE;
-        var {
-          pathname,
-          searchParams,
-          search,
-          hash,
-          href,
-          origin,
-          protocol
-        } = new URL(url, resolvedBase);
-
-        if (
-          origin !== DUMMY_BASE.origin ||
-          (protocol !== "http:" && protocol !== "https:")
-        ) {
+        var globalBase = new URL(
+          false ? undefined : (0, _utils.getLocationOrigin)()
+        );
+        var resolvedBase = base ? new URL(base, globalBase) : globalBase;
+        var { pathname, searchParams, search, hash, href, origin } = new URL(
+          url,
+          resolvedBase
+        );
+
+        if (origin !== globalBase.origin) {
           throw new Error("invariant: invalid relative URL");
         }
 
@@ -1946,7 +1937,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
           query: (0, _querystring.searchParamsToUrlQuery)(searchParams),
           search,
           hash,
-          href: href.slice(DUMMY_BASE.origin.length)
+          href: href.slice(globalBase.origin.length)
         };
       }
Diff for polyfills-f7..972ef83e9.js
@@ -1096,15 +1096,14 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
             {
               of: function() {
                 for (
-                  var t = arguments,
-                    e = 0,
-                    r = arguments.length,
-                    n = new ("function" == typeof this ? this : Array)(r);
-                  r > e;
+                  var t = 0,
+                    e = arguments.length,
+                    r = new ("function" == typeof this ? this : Array)(e);
+                  e > t;
 
                 )
-                  Je(n, e, t[e++]);
-                return (n.length = r), n;
+                  Je(r, t, arguments[t++]);
+                return (r.length = e), r;
               }
             }
           );
@@ -1600,29 +1599,24 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
           };
           Pt({ target: "Map", stat: !0 }, { from: Wr });
           var Kr = function() {
-            for (
-              var t = arguments, e = arguments.length, r = new Array(e);
-              e--;
-
-            )
-              r[e] = t[e];
-            return new this(r);
+            for (var t = arguments.length, e = new Array(t); t--; )
+              e[t] = arguments[t];
+            return new this(e);
           };
           Pt({ target: "Map", stat: !0 }, { of: Kr });
           var Gr = function() {
             for (
               var t,
-                e = arguments,
-                r = O(this),
-                n = Yt(r.delete),
-                o = !0,
-                i = 0,
-                a = arguments.length;
-              i < a;
-              i++
+                e = O(this),
+                r = Yt(e.delete),
+                n = !0,
+                o = 0,
+                i = arguments.length;
+              o < i;
+              o++
             )
-              (t = n.call(r, e[i])), (o = o && t);
-            return !!o;
+              (t = r.call(e, arguments[o])), (n = n && t);
+            return !!n;
           };
           Pt(
             { target: "Map", proto: !0, real: !0, forced: !1 },
@@ -1850,12 +1844,12 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
               {
                 merge: function(t) {
                   for (
-                    var e = arguments, r = O(this), n = Yt(r.set), o = 0;
-                    o < arguments.length;
+                    var e = O(this), r = Yt(e.set), n = 0;
+                    n < arguments.length;
 
                   )
-                    Er(e[o++], n, r, !0);
-                  return r;
+                    Er(arguments[n++], r, e, !0);
+                  return e;
                 }
               }
             ),
@@ -2880,9 +2874,8 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
                   n &&
                   n.length > 1 &&
                   ni.call(n[0], r, function() {
-                    var t = arguments;
                     for (o = 1; o < arguments.length - 2; o++)
-                      void 0 === t[o] && (n[o] = void 0);
+                      void 0 === arguments[o] && (n[o] = void 0);
                   }),
                 n
               );
@@ -3311,16 +3304,12 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
             Pt({ target: "Set", stat: !0 }, { of: Kr });
           var Ui = function() {
             for (
-              var t = arguments,
-                e = O(this),
-                r = Yt(e.add),
-                n = 0,
-                o = arguments.length;
-              n < o;
-              n++
+              var t = O(this), e = Yt(t.add), r = 0, n = arguments.length;
+              r < n;
+              r++
             )
-              r.call(e, t[n]);
-            return e;
+              e.call(t, arguments[r]);
+            return t;
           };
           Pt(
             { target: "Set", proto: !0, real: !0, forced: !1 },
@@ -3639,21 +3628,20 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
                   n,
                   o,
                   i,
-                  a = arguments,
-                  u = Tt(this),
-                  s = re(u, 0),
-                  c = 0;
+                  a = Tt(this),
+                  u = re(a, 0),
+                  s = 0;
                 for (e = -1, n = arguments.length; e < n; e++)
-                  if ($i((i = -1 === e ? u : a[e]))) {
-                    if (c + (o = ut(i.length)) > 9007199254740991)
+                  if ($i((i = -1 === e ? a : arguments[e]))) {
+                    if (s + (o = ut(i.length)) > 9007199254740991)
                       throw TypeError("Maximum allowed index exceeded");
-                    for (r = 0; r < o; r++, c++) r in i && Je(s, c, i[r]);
+                    for (r = 0; r < o; r++, s++) r in i && Je(u, s, i[r]);
                   } else {
-                    if (c >= 9007199254740991)
+                    if (s >= 9007199254740991)
                       throw TypeError("Maximum allowed index exceeded");
-                    Je(s, c++, i);
+                    Je(u, s++, i);
                   }
-                return (s.length = c), s;
+                return (u.length = s), u;
               }
             }
           );
@@ -3928,12 +3916,8 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
               { target: "JSON", stat: !0, forced: Ia },
               {
                 stringify: function(t, e, r) {
-                  for (
-                    var n, o = arguments, i = [t], a = 1;
-                    arguments.length > a;
-
-                  )
-                    i.push(o[a++]);
+                  for (var n, o = [t], i = 1; arguments.length > i; )
+                    o.push(arguments[i++]);
                   if (((n = e), (g(e) || void 0 !== t) && !wa(t)))
                     return (
                       te(e) ||
@@ -3944,8 +3928,8 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
                           )
                             return e;
                         }),
-                      (i[1] = e),
-                      ua.apply(null, i)
+                      (o[1] = e),
+                      ua.apply(null, o)
                     );
                 }
               }
@@ -4073,20 +4057,16 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
             { target: "String", stat: !0, forced: !!Ha && 1 != Ha.length },
             {
               fromCodePoint: function(t) {
-                for (
-                  var e, r = arguments, n = [], o = arguments.length, i = 0;
-                  o > i;
-
-                ) {
-                  if (((e = +r[i++]), ft(e, 1114111) !== e))
+                for (var e, r = [], n = arguments.length, o = 0; n > o; ) {
+                  if (((e = +arguments[o++]), ft(e, 1114111) !== e))
                     throw RangeError(e + " is not a valid code point");
-                  n.push(
+                  r.push(
                     e < 65536
                       ? Va(e)
                       : Va(55296 + ((e -= 65536) >> 10), (e % 1024) + 56320)
                   );
                 }
-                return n.join("");
+                return r.join("");
               }
             }
           ),
@@ -4164,17 +4144,17 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
               {
                 raw: function(t) {
                   for (
-                    var e = arguments,
-                      r = v(t.raw),
-                      n = ut(r.length),
-                      o = arguments.length,
-                      i = [],
-                      a = 0;
-                    n > a;
+                    var e = v(t.raw),
+                      r = ut(e.length),
+                      n = arguments.length,
+                      o = [],
+                      i = 0;
+                    r > i;
 
                   )
-                    i.push(String(r[a++])), a < o && i.push(String(e[a]));
-                  return i.join("");
+                    o.push(String(e[i++])),
+                      i < n && o.push(String(arguments[i]));
+                  return o.join("");
                 }
               }
             ),
@@ -4294,26 +4274,25 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
               })
                 ? function(t, e) {
                     for (
-                      var r = arguments,
-                        n = Tt(t),
-                        o = arguments.length,
-                        a = 1,
-                        u = mt.f,
-                        c = s.f;
-                      o > a;
+                      var r = Tt(t),
+                        n = arguments.length,
+                        o = 1,
+                        a = mt.f,
+                        u = s.f;
+                      n > o;
 
                     )
                       for (
-                        var f,
-                          l = p(r[a++]),
-                          h = u ? Bt(l).concat(u(l)) : Bt(l),
-                          d = h.length,
-                          v = 0;
-                        d > v;
+                        var c,
+                          f = p(arguments[o++]),
+                          l = a ? Bt(f).concat(a(f)) : Bt(f),
+                          h = l.length,
+                          d = 0;
+                        h > d;
 
                       )
-                        (f = h[v++]), (i && !c.call(l, f)) || (n[f] = l[f]);
-                    return n;
+                        (c = l[d++]), (i && !u.call(f, c)) || (r[c] = f[c]);
+                    return r;
                   }
                 : gu,
             bu = /[^\0-\u007E]/,
@@ -5600,11 +5579,11 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
             };
           (xc && Ac) ||
             ((xc = function(t) {
-              for (var e = arguments, r = [], n = 1; arguments.length > n; )
-                r.push(e[n++]);
+              for (var e = [], r = 1; arguments.length > r; )
+                e.push(arguments[r++]);
               return (
                 (Pc[++Ic] = function() {
-                  ("function" == typeof t ? t : Function(t)).apply(void 0, r);
+                  ("function" == typeof t ? t : Function(t)).apply(void 0, e);
                 }),
                 yc(Ic),
                 Ic
Diff for index.html
@@ -24,7 +24,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.ce5ac41887b55102c5c8.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.749b41e2d1d29f80d792.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -82,7 +82,7 @@
     <script
       crossorigin="anonymous"
       nomodule=""
-      src="/_next/static/chunks/polyfills-f73ba3fc145972ef83e9.js"
+      src="/_next/static/chunks/polyfills-769ffb30946627a111d3.js"
     ></script>
     <script
       src="/_next/static/chunks/main-86d81158ab3d4bd6189a.js"
@@ -121,13 +121,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2f570708014aa41086c2.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.95c437bfeae0184795b7.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.ce5ac41887b55102c5c8.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.749b41e2d1d29f80d792.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for link.html
@@ -24,7 +24,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.ce5ac41887b55102c5c8.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.749b41e2d1d29f80d792.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -87,7 +87,7 @@
     <script
       crossorigin="anonymous"
       nomodule=""
-      src="/_next/static/chunks/polyfills-f73ba3fc145972ef83e9.js"
+      src="/_next/static/chunks/polyfills-769ffb30946627a111d3.js"
     ></script>
     <script
       src="/_next/static/chunks/main-86d81158ab3d4bd6189a.js"
@@ -126,13 +126,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2f570708014aa41086c2.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.95c437bfeae0184795b7.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.ce5ac41887b55102c5c8.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.749b41e2d1d29f80d792.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for withRouter.html
@@ -24,7 +24,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.ce5ac41887b55102c5c8.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.749b41e2d1d29f80d792.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -82,7 +82,7 @@
     <script
       crossorigin="anonymous"
       nomodule=""
-      src="/_next/static/chunks/polyfills-f73ba3fc145972ef83e9.js"
+      src="/_next/static/chunks/polyfills-769ffb30946627a111d3.js"
     ></script>
     <script
       src="/_next/static/chunks/main-86d81158ab3d4bd6189a.js"
@@ -121,13 +121,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2f570708014aa41086c2.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.95c437bfeae0184795b7.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.ce5ac41887b55102c5c8.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.749b41e2d1d29f80d792.module.js"
       async=""
       crossorigin="anonymous"
       type="module"

Serverless Mode (Decrease detected ✓)
General Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
buildDuration 13.1s 13.6s ⚠️ +508ms
nodeModulesSize 90.1 MB 90.1 MB -249 B
Client Bundles (main, webpack, commons) Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..981d.js gzip 11.3 kB N/A N/A
framework.HASH.js gzip 39 kB 39 kB
main-d23595f..3966.js gzip 7.35 kB 7.35 kB
webpack-e067..f178.js gzip 751 B 751 B
677f882d2ed8..1f3c.js gzip N/A 11.2 kB N/A
Overall change 58.3 kB 58.3 kB -19 B
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..dule.js gzip 7.03 kB N/A N/A
framework.HA..dule.js gzip 39 kB 39 kB
main-65e68ba..dule.js gzip 6.35 kB 6.35 kB
webpack-07c5..dule.js gzip 751 B 751 B
677f882d2ed8..dule.js gzip N/A 7.02 kB N/A
Overall change 53.1 kB 53.1 kB -12 B
Legacy Client Bundles (polyfills) Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
polyfills-4b..e242.js gzip 31 kB N/A N/A
polyfills-b5..1119.js gzip N/A 31 kB N/A
Overall change 31 kB 31 kB -16 B
Client Pages
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-a674d88..ccde.js gzip 1.35 kB 1.35 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.75 kB 7.75 kB
Client Pages Modern
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-a4469f3..dule.js gzip 1.32 kB 1.32 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.41 kB 5.41 kB
Client Build Manifests
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 330 B 330 B
Overall change 652 B 652 B
Serverless bundles Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_error.js 1.07 MB 1.07 MB -61 B
404.html 4.73 kB 4.73 kB
hooks.html 3.92 kB 3.92 kB
index.js 1.07 MB 1.07 MB -61 B
link.js 1.12 MB 1.12 MB -61 B
routerDirect.js 1.11 MB 1.11 MB -61 B
withRouter.js 1.11 MB 1.11 MB -61 B
Overall change 5.48 MB 5.48 MB -305 B
Commit: e560767

@ijjk
Copy link
Member

ijjk commented Nov 3, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
buildDuration 13.9s 13.3s -545ms
nodeModulesSize 90.1 MB 90 MB -249 B
Page Load Tests Overall increase ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
/ failed reqs 0 0
/ total time (seconds) 2.564 2.504 -0.06
/ avg req/sec 974.91 998.33 +23.42
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.334 1.294 -0.04
/error-in-render avg req/sec 1874.58 1932.4 +57.82
Client Bundles (main, webpack, commons) Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..981d.js gzip 11.3 kB 11.2 kB -19 B
framework.HASH.js gzip 39 kB 39 kB
main-7072174..bcc3.js gzip 7.34 kB 7.34 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58.3 kB 58.3 kB -19 B
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..dule.js gzip 7.03 kB 7.02 kB -12 B
framework.HA..dule.js gzip 39 kB 39 kB
main-d0ac908..dule.js gzip 6.33 kB 6.33 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 53.1 kB 53.1 kB -12 B
Legacy Client Bundles (polyfills) Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
polyfills-4b..e242.js gzip 31 kB 31 kB -16 B
Overall change 31 kB 31 kB -16 B
Client Pages
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-a674d88..ccde.js gzip 1.35 kB 1.35 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.75 kB 7.75 kB
Client Pages Modern
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-a4469f3..dule.js gzip 1.32 kB 1.32 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.41 kB 5.41 kB
Client Build Manifests
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 330 B 330 B
Overall change 652 B 652 B
Rendered Page Sizes Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
index.html gzip 1 kB 1 kB -1 B
link.html gzip 1.01 kB 1.01 kB -1 B
withRouter.html gzip 996 B 994 B -2 B
Overall change 3.01 kB 3 kB -4 B

Diffs

Diff for 677f882d2ed8..aa41086c2.js
@@ -2691,10 +2691,6 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       var _utils = __webpack_require__("g/15");
 
       var _querystring = __webpack_require__("3WeD");
-
-      var DUMMY_BASE = new URL(
-        false ? undefined : (0, _utils.getLocationOrigin)()
-      );
       /**
        * Parses path-relative urls (e.g. `/hello/world?foo=bar`). If url isn't path-relative
        * (e.g. `./hello`) then at least base must be.
@@ -2703,7 +2699,10 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
        */
 
       function parseRelativeUrl(url, base) {
-        var resolvedBase = base ? new URL(base, DUMMY_BASE) : DUMMY_BASE;
+        var globalBase = new URL(
+          false ? undefined : (0, _utils.getLocationOrigin)()
+        );
+        var resolvedBase = base ? new URL(base, globalBase) : globalBase;
 
         var _URL = new URL(url, resolvedBase),
           pathname = _URL.pathname,
@@ -2711,13 +2710,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
           search = _URL.search,
           hash = _URL.hash,
           href = _URL.href,
-          origin = _URL.origin,
-          protocol = _URL.protocol;
+          origin = _URL.origin;
 
-        if (
-          origin !== DUMMY_BASE.origin ||
-          (protocol !== "http:" && protocol !== "https:")
-        ) {
+        if (origin !== globalBase.origin) {
           throw new Error("invariant: invalid relative URL");
         }
 
@@ -2726,7 +2721,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
           query: (0, _querystring.searchParamsToUrlQuery)(searchParams),
           search: search,
           hash: hash,
-          href: href.slice(DUMMY_BASE.origin.length)
+          href: href.slice(globalBase.origin.length)
         };
       }
Diff for 677f882d2ed8..c8.module.js
@@ -1911,10 +1911,6 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       var _utils = __webpack_require__("g/15");
 
       var _querystring = __webpack_require__("3WeD");
-
-      var DUMMY_BASE = new URL(
-        false ? undefined : (0, _utils.getLocationOrigin)()
-      );
       /**
        * Parses path-relative urls (e.g. `/hello/world?foo=bar`). If url isn't path-relative
        * (e.g. `./hello`) then at least base must be.
@@ -1923,21 +1919,16 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
        */
 
       function parseRelativeUrl(url, base) {
-        var resolvedBase = base ? new URL(base, DUMMY_BASE) : DUMMY_BASE;
-        var {
-          pathname,
-          searchParams,
-          search,
-          hash,
-          href,
-          origin,
-          protocol
-        } = new URL(url, resolvedBase);
-
-        if (
-          origin !== DUMMY_BASE.origin ||
-          (protocol !== "http:" && protocol !== "https:")
-        ) {
+        var globalBase = new URL(
+          false ? undefined : (0, _utils.getLocationOrigin)()
+        );
+        var resolvedBase = base ? new URL(base, globalBase) : globalBase;
+        var { pathname, searchParams, search, hash, href, origin } = new URL(
+          url,
+          resolvedBase
+        );
+
+        if (origin !== globalBase.origin) {
           throw new Error("invariant: invalid relative URL");
         }
 
@@ -1946,7 +1937,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
           query: (0, _querystring.searchParamsToUrlQuery)(searchParams),
           search,
           hash,
-          href: href.slice(DUMMY_BASE.origin.length)
+          href: href.slice(globalBase.origin.length)
         };
       }
Diff for polyfills-f7..972ef83e9.js
@@ -1096,15 +1096,14 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
             {
               of: function() {
                 for (
-                  var t = arguments,
-                    e = 0,
-                    r = arguments.length,
-                    n = new ("function" == typeof this ? this : Array)(r);
-                  r > e;
+                  var t = 0,
+                    e = arguments.length,
+                    r = new ("function" == typeof this ? this : Array)(e);
+                  e > t;
 
                 )
-                  Je(n, e, t[e++]);
-                return (n.length = r), n;
+                  Je(r, t, arguments[t++]);
+                return (r.length = e), r;
               }
             }
           );
@@ -1600,29 +1599,24 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
           };
           Pt({ target: "Map", stat: !0 }, { from: Wr });
           var Kr = function() {
-            for (
-              var t = arguments, e = arguments.length, r = new Array(e);
-              e--;
-
-            )
-              r[e] = t[e];
-            return new this(r);
+            for (var t = arguments.length, e = new Array(t); t--; )
+              e[t] = arguments[t];
+            return new this(e);
           };
           Pt({ target: "Map", stat: !0 }, { of: Kr });
           var Gr = function() {
             for (
               var t,
-                e = arguments,
-                r = O(this),
-                n = Yt(r.delete),
-                o = !0,
-                i = 0,
-                a = arguments.length;
-              i < a;
-              i++
+                e = O(this),
+                r = Yt(e.delete),
+                n = !0,
+                o = 0,
+                i = arguments.length;
+              o < i;
+              o++
             )
-              (t = n.call(r, e[i])), (o = o && t);
-            return !!o;
+              (t = r.call(e, arguments[o])), (n = n && t);
+            return !!n;
           };
           Pt(
             { target: "Map", proto: !0, real: !0, forced: !1 },
@@ -1850,12 +1844,12 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
               {
                 merge: function(t) {
                   for (
-                    var e = arguments, r = O(this), n = Yt(r.set), o = 0;
-                    o < arguments.length;
+                    var e = O(this), r = Yt(e.set), n = 0;
+                    n < arguments.length;
 
                   )
-                    Er(e[o++], n, r, !0);
-                  return r;
+                    Er(arguments[n++], r, e, !0);
+                  return e;
                 }
               }
             ),
@@ -2880,9 +2874,8 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
                   n &&
                   n.length > 1 &&
                   ni.call(n[0], r, function() {
-                    var t = arguments;
                     for (o = 1; o < arguments.length - 2; o++)
-                      void 0 === t[o] && (n[o] = void 0);
+                      void 0 === arguments[o] && (n[o] = void 0);
                   }),
                 n
               );
@@ -3311,16 +3304,12 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
             Pt({ target: "Set", stat: !0 }, { of: Kr });
           var Ui = function() {
             for (
-              var t = arguments,
-                e = O(this),
-                r = Yt(e.add),
-                n = 0,
-                o = arguments.length;
-              n < o;
-              n++
+              var t = O(this), e = Yt(t.add), r = 0, n = arguments.length;
+              r < n;
+              r++
             )
-              r.call(e, t[n]);
-            return e;
+              e.call(t, arguments[r]);
+            return t;
           };
           Pt(
             { target: "Set", proto: !0, real: !0, forced: !1 },
@@ -3639,21 +3628,20 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
                   n,
                   o,
                   i,
-                  a = arguments,
-                  u = Tt(this),
-                  s = re(u, 0),
-                  c = 0;
+                  a = Tt(this),
+                  u = re(a, 0),
+                  s = 0;
                 for (e = -1, n = arguments.length; e < n; e++)
-                  if ($i((i = -1 === e ? u : a[e]))) {
-                    if (c + (o = ut(i.length)) > 9007199254740991)
+                  if ($i((i = -1 === e ? a : arguments[e]))) {
+                    if (s + (o = ut(i.length)) > 9007199254740991)
                       throw TypeError("Maximum allowed index exceeded");
-                    for (r = 0; r < o; r++, c++) r in i && Je(s, c, i[r]);
+                    for (r = 0; r < o; r++, s++) r in i && Je(u, s, i[r]);
                   } else {
-                    if (c >= 9007199254740991)
+                    if (s >= 9007199254740991)
                       throw TypeError("Maximum allowed index exceeded");
-                    Je(s, c++, i);
+                    Je(u, s++, i);
                   }
-                return (s.length = c), s;
+                return (u.length = s), u;
               }
             }
           );
@@ -3928,12 +3916,8 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
               { target: "JSON", stat: !0, forced: Ia },
               {
                 stringify: function(t, e, r) {
-                  for (
-                    var n, o = arguments, i = [t], a = 1;
-                    arguments.length > a;
-
-                  )
-                    i.push(o[a++]);
+                  for (var n, o = [t], i = 1; arguments.length > i; )
+                    o.push(arguments[i++]);
                   if (((n = e), (g(e) || void 0 !== t) && !wa(t)))
                     return (
                       te(e) ||
@@ -3944,8 +3928,8 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
                           )
                             return e;
                         }),
-                      (i[1] = e),
-                      ua.apply(null, i)
+                      (o[1] = e),
+                      ua.apply(null, o)
                     );
                 }
               }
@@ -4073,20 +4057,16 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
             { target: "String", stat: !0, forced: !!Ha && 1 != Ha.length },
             {
               fromCodePoint: function(t) {
-                for (
-                  var e, r = arguments, n = [], o = arguments.length, i = 0;
-                  o > i;
-
-                ) {
-                  if (((e = +r[i++]), ft(e, 1114111) !== e))
+                for (var e, r = [], n = arguments.length, o = 0; n > o; ) {
+                  if (((e = +arguments[o++]), ft(e, 1114111) !== e))
                     throw RangeError(e + " is not a valid code point");
-                  n.push(
+                  r.push(
                     e < 65536
                       ? Va(e)
                       : Va(55296 + ((e -= 65536) >> 10), (e % 1024) + 56320)
                   );
                 }
-                return n.join("");
+                return r.join("");
               }
             }
           ),
@@ -4164,17 +4144,17 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
               {
                 raw: function(t) {
                   for (
-                    var e = arguments,
-                      r = v(t.raw),
-                      n = ut(r.length),
-                      o = arguments.length,
-                      i = [],
-                      a = 0;
-                    n > a;
+                    var e = v(t.raw),
+                      r = ut(e.length),
+                      n = arguments.length,
+                      o = [],
+                      i = 0;
+                    r > i;
 
                   )
-                    i.push(String(r[a++])), a < o && i.push(String(e[a]));
-                  return i.join("");
+                    o.push(String(e[i++])),
+                      i < n && o.push(String(arguments[i]));
+                  return o.join("");
                 }
               }
             ),
@@ -4294,26 +4274,25 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
               })
                 ? function(t, e) {
                     for (
-                      var r = arguments,
-                        n = Tt(t),
-                        o = arguments.length,
-                        a = 1,
-                        u = mt.f,
-                        c = s.f;
-                      o > a;
+                      var r = Tt(t),
+                        n = arguments.length,
+                        o = 1,
+                        a = mt.f,
+                        u = s.f;
+                      n > o;
 
                     )
                       for (
-                        var f,
-                          l = p(r[a++]),
-                          h = u ? Bt(l).concat(u(l)) : Bt(l),
-                          d = h.length,
-                          v = 0;
-                        d > v;
+                        var c,
+                          f = p(arguments[o++]),
+                          l = a ? Bt(f).concat(a(f)) : Bt(f),
+                          h = l.length,
+                          d = 0;
+                        h > d;
 
                       )
-                        (f = h[v++]), (i && !c.call(l, f)) || (n[f] = l[f]);
-                    return n;
+                        (c = l[d++]), (i && !u.call(f, c)) || (r[c] = f[c]);
+                    return r;
                   }
                 : gu,
             bu = /[^\0-\u007E]/,
@@ -5600,11 +5579,11 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
             };
           (xc && Ac) ||
             ((xc = function(t) {
-              for (var e = arguments, r = [], n = 1; arguments.length > n; )
-                r.push(e[n++]);
+              for (var e = [], r = 1; arguments.length > r; )
+                e.push(arguments[r++]);
               return (
                 (Pc[++Ic] = function() {
-                  ("function" == typeof t ? t : Function(t)).apply(void 0, r);
+                  ("function" == typeof t ? t : Function(t)).apply(void 0, e);
                 }),
                 yc(Ic),
                 Ic
Diff for index.html
@@ -24,7 +24,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.ce5ac41887b55102c5c8.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.749b41e2d1d29f80d792.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -82,7 +82,7 @@
     <script
       crossorigin="anonymous"
       nomodule=""
-      src="/_next/static/chunks/polyfills-f73ba3fc145972ef83e9.js"
+      src="/_next/static/chunks/polyfills-769ffb30946627a111d3.js"
     ></script>
     <script
       src="/_next/static/chunks/main-a3cb2ad6a4df2469bc30.js"
@@ -121,13 +121,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2f570708014aa41086c2.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.95c437bfeae0184795b7.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.ce5ac41887b55102c5c8.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.749b41e2d1d29f80d792.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for link.html
@@ -24,7 +24,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.ce5ac41887b55102c5c8.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.749b41e2d1d29f80d792.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -87,7 +87,7 @@
     <script
       crossorigin="anonymous"
       nomodule=""
-      src="/_next/static/chunks/polyfills-f73ba3fc145972ef83e9.js"
+      src="/_next/static/chunks/polyfills-769ffb30946627a111d3.js"
     ></script>
     <script
       src="/_next/static/chunks/main-a3cb2ad6a4df2469bc30.js"
@@ -126,13 +126,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2f570708014aa41086c2.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.95c437bfeae0184795b7.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.ce5ac41887b55102c5c8.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.749b41e2d1d29f80d792.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for withRouter.html
@@ -24,7 +24,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.ce5ac41887b55102c5c8.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.749b41e2d1d29f80d792.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -82,7 +82,7 @@
     <script
       crossorigin="anonymous"
       nomodule=""
-      src="/_next/static/chunks/polyfills-f73ba3fc145972ef83e9.js"
+      src="/_next/static/chunks/polyfills-769ffb30946627a111d3.js"
     ></script>
     <script
       src="/_next/static/chunks/main-a3cb2ad6a4df2469bc30.js"
@@ -121,13 +121,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2f570708014aa41086c2.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.95c437bfeae0184795b7.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.ce5ac41887b55102c5c8.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.749b41e2d1d29f80d792.module.js"
       async=""
       crossorigin="anonymous"
       type="module"

Serverless Mode (Decrease detected ✓)
General Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
buildDuration 15.3s 15s -278ms
nodeModulesSize 90.1 MB 90 MB -249 B
Client Bundles (main, webpack, commons) Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..981d.js gzip 11.3 kB N/A N/A
framework.HASH.js gzip 39 kB 39 kB
main-7072174..bcc3.js gzip 7.34 kB 7.34 kB
webpack-e067..f178.js gzip 751 B 751 B
677f882d2ed8..1f3c.js gzip N/A 11.2 kB N/A
Overall change 58.3 kB 58.3 kB -19 B
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..dule.js gzip 7.03 kB N/A N/A
framework.HA..dule.js gzip 39 kB 39 kB
main-d0ac908..dule.js gzip 6.33 kB 6.33 kB
webpack-07c5..dule.js gzip 751 B 751 B
677f882d2ed8..dule.js gzip N/A 7.02 kB N/A
Overall change 53.1 kB 53.1 kB -12 B
Legacy Client Bundles (polyfills) Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
polyfills-4b..e242.js gzip 31 kB N/A N/A
polyfills-b5..1119.js gzip N/A 31 kB N/A
Overall change 31 kB 31 kB -16 B
Client Pages
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-a674d88..ccde.js gzip 1.35 kB 1.35 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.75 kB 7.75 kB
Client Pages Modern
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-a4469f3..dule.js gzip 1.32 kB 1.32 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.41 kB 5.41 kB
Client Build Manifests
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 330 B 330 B
Overall change 652 B 652 B
Serverless bundles Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_error.js 1.07 MB 1.07 MB -61 B
404.html 4.73 kB 4.73 kB
hooks.html 3.92 kB 3.92 kB
index.js 1.07 MB 1.07 MB -61 B
link.js 1.12 MB 1.12 MB -61 B
routerDirect.js 1.11 MB 1.11 MB -61 B
withRouter.js 1.11 MB 1.11 MB -61 B
Overall change 5.48 MB 5.48 MB -305 B
Commit: d9d1119

@ijjk
Copy link
Member

ijjk commented Nov 3, 2020

Failing test suites

Commit: d9d1119

test/integration/font-optimization/test/index.test.js

  • Font optimization for SSR apps > should minify the css
  • Font optimization for emulated serverless apps > should minify the css
  • Font optimization for serverless apps > should minify the css
Expand output

● Font optimization for SSR apps › should minify the css

expect(received).toStrictEqual(expected) // deep equality

- Expected  - 1
+ Received  + 1

  Object {
    "https://fonts.googleapis.com/css2?family=Modak": "@font-face{font-family:'Modak';font-style:normal;font-weight:400;src:local('Modak'),url(https://fonts.gstatic.com/s/modak/v5/EJRYQgs1XtIEsnME.woff) format('woff')}@font-face{font-family:'Modak';font-style:normal;font-weight:400;src:local('Modak'),url(https://fonts.gstatic.com/s/modak/v5/EJRYQgs1XtIEskMB-hR77LKVTy8.woff2) format('woff2');unicode-range:U+0900-097F,U+1CD0-1CF6,U+1CF8-1CF9,U+200C-200D,U+20A8,U+20B9,U+25CC,U+A830-A839,U+A8E0-A8FB}@font-face{font-family:'Modak';font-style:normal;font-weight:400;src:local('Modak'),url(https://fonts.gstatic.com/s/modak/v5/EJRYQgs1XtIEskMO-hR77LKVTy8.woff2) format('woff2');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Modak';font-style:normal;font-weight:400;src:local('Modak'),url(https://fonts.gstatic.com/s/modak/v5/EJRYQgs1XtIEskMA-hR77LKV.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}",
    "https://fonts.googleapis.com/css2?family=Roboto:wght@700": "@font-face{font-family:'Roboto';font-style:normal;font-weight:700;src:local('Roboto Bold'),local('Roboto-Bold'),url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlvAA.woff) format('woff')}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;src:local('Roboto Bold'),local('Roboto-Bold'),url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfCRc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;src:local('Roboto Bold'),local('Roboto-Bold'),url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfABc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;src:local('Roboto Bold'),local('Roboto-Bold'),url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfCBc4AMP6lbBP.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;src:local('Roboto Bold'),local('Roboto-Bold'),url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfBxc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0370-03FF}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;src:local('Roboto Bold'),local('Roboto-Bold'),url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfCxc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;src:local('Roboto Bold'),local('Roboto-Bold'),url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfChc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;src:local('Roboto Bold'),local('Roboto-Bold'),url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfBBc4AMP6lQ.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}",
-   "https://fonts.googleapis.com/css?family=Voces": "@font-face{font-family:'Voces';font-style:normal;font-weight:400;src:local('Voces Regular'),local('Voces-Regular'),url(https://fonts.gstatic.com/s/voces/v10/-F6_fjJyLyU8d7PGDmk.woff) format('woff')}@font-face{font-family:'Voces';font-style:normal;font-weight:400;src:local('Voces Regular'),local('Voces-Regular'),url(https://fonts.gstatic.com/s/voces/v10/-F6_fjJyLyU8d7PIDm_6pClI_ik.woff2) format('woff2');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Voces';font-style:normal;font-weight:400;src:local('Voces Regular'),local('Voces-Regular'),url(https://fonts.gstatic.com/s/voces/v10/-F6_fjJyLyU8d7PGDm_6pClI.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}",
+   "https://fonts.googleapis.com/css?family=Voces": "@font-face{font-family:'Voces';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/voces/v10/-F6_fjJyLyU8d7PGDmk.woff?ce=43710007) format('woff')}@font-face{font-family:'Voces';font-style:normal;font-weight:400;src:local('Voces Regular'),local('Voces-Regular'),url(https://fonts.gstatic.com/s/voces/v10/-F6_fjJyLyU8d7PIDm_6pClI_ik.woff2) format('woff2');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Voces';font-style:normal;font-weight:400;src:local('Voces Regular'),local('Voces-Regular'),url(https://fonts.gstatic.com/s/voces/v10/-F6_fjJyLyU8d7PGDm_6pClI.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}",
  }

  101 |     })
  102 | 
> 103 |     expect(testCss).toStrictEqual(snapshotCss)
      |                     ^
  104 |   })
  105 | }
  106 | 

  at Object.<anonymous> (integration/font-optimization/test/index.test.js:103:21)

● Font optimization for serverless apps › should minify the css

expect(received).toStrictEqual(expected) // deep equality

- Expected  - 1
+ Received  + 1

  Object {
    "https://fonts.googleapis.com/css2?family=Modak": "@font-face{font-family:'Modak';font-style:normal;font-weight:400;src:local('Modak'),url(https://fonts.gstatic.com/s/modak/v5/EJRYQgs1XtIEsnME.woff) format('woff')}@font-face{font-family:'Modak';font-style:normal;font-weight:400;src:local('Modak'),url(https://fonts.gstatic.com/s/modak/v5/EJRYQgs1XtIEskMB-hR77LKVTy8.woff2) format('woff2');unicode-range:U+0900-097F,U+1CD0-1CF6,U+1CF8-1CF9,U+200C-200D,U+20A8,U+20B9,U+25CC,U+A830-A839,U+A8E0-A8FB}@font-face{font-family:'Modak';font-style:normal;font-weight:400;src:local('Modak'),url(https://fonts.gstatic.com/s/modak/v5/EJRYQgs1XtIEskMO-hR77LKVTy8.woff2) format('woff2');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Modak';font-style:normal;font-weight:400;src:local('Modak'),url(https://fonts.gstatic.com/s/modak/v5/EJRYQgs1XtIEskMA-hR77LKV.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}",
    "https://fonts.googleapis.com/css2?family=Roboto:wght@700": "@font-face{font-family:'Roboto';font-style:normal;font-weight:700;src:local('Roboto Bold'),local('Roboto-Bold'),url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlvAA.woff) format('woff')}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;src:local('Roboto Bold'),local('Roboto-Bold'),url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfCRc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;src:local('Roboto Bold'),local('Roboto-Bold'),url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfABc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;src:local('Roboto Bold'),local('Roboto-Bold'),url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfCBc4AMP6lbBP.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;src:local('Roboto Bold'),local('Roboto-Bold'),url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfBxc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0370-03FF}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;src:local('Roboto Bold'),local('Roboto-Bold'),url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfCxc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;src:local('Roboto Bold'),local('Roboto-Bold'),url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfChc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;src:local('Roboto Bold'),local('Roboto-Bold'),url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfBBc4AMP6lQ.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}",
-   "https://fonts.googleapis.com/css?family=Voces": "@font-face{font-family:'Voces';font-style:normal;font-weight:400;src:local('Voces Regular'),local('Voces-Regular'),url(https://fonts.gstatic.com/s/voces/v10/-F6_fjJyLyU8d7PGDmk.woff) format('woff')}@font-face{font-family:'Voces';font-style:normal;font-weight:400;src:local('Voces Regular'),local('Voces-Regular'),url(https://fonts.gstatic.com/s/voces/v10/-F6_fjJyLyU8d7PIDm_6pClI_ik.woff2) format('woff2');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Voces';font-style:normal;font-weight:400;src:local('Voces Regular'),local('Voces-Regular'),url(https://fonts.gstatic.com/s/voces/v10/-F6_fjJyLyU8d7PGDm_6pClI.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}",
+   "https://fonts.googleapis.com/css?family=Voces": "@font-face{font-family:'Voces';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/voces/v10/-F6_fjJyLyU8d7PGDmk.woff?ce=43710007) format('woff')}@font-face{font-family:'Voces';font-style:normal;font-weight:400;src:local('Voces Regular'),local('Voces-Regular'),url(https://fonts.gstatic.com/s/voces/v10/-F6_fjJyLyU8d7PIDm_6pClI_ik.woff2) format('woff2');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Voces';font-style:normal;font-weight:400;src:local('Voces Regular'),local('Voces-Regular'),url(https://fonts.gstatic.com/s/voces/v10/-F6_fjJyLyU8d7PGDm_6pClI.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}",
  }

  101 |     })
  102 | 
> 103 |     expect(testCss).toStrictEqual(snapshotCss)
      |                     ^
  104 |   })
  105 | }
  106 | 

  at Object.<anonymous> (integration/font-optimization/test/index.test.js:103:21)

● Font optimization for emulated serverless apps › should minify the css

expect(received).toStrictEqual(expected) // deep equality

- Expected  - 1
+ Received  + 1

  Object {
    "https://fonts.googleapis.com/css2?family=Modak": "@font-face{font-family:'Modak';font-style:normal;font-weight:400;src:local('Modak'),url(https://fonts.gstatic.com/s/modak/v5/EJRYQgs1XtIEsnME.woff) format('woff')}@font-face{font-family:'Modak';font-style:normal;font-weight:400;src:local('Modak'),url(https://fonts.gstatic.com/s/modak/v5/EJRYQgs1XtIEskMB-hR77LKVTy8.woff2) format('woff2');unicode-range:U+0900-097F,U+1CD0-1CF6,U+1CF8-1CF9,U+200C-200D,U+20A8,U+20B9,U+25CC,U+A830-A839,U+A8E0-A8FB}@font-face{font-family:'Modak';font-style:normal;font-weight:400;src:local('Modak'),url(https://fonts.gstatic.com/s/modak/v5/EJRYQgs1XtIEskMO-hR77LKVTy8.woff2) format('woff2');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Modak';font-style:normal;font-weight:400;src:local('Modak'),url(https://fonts.gstatic.com/s/modak/v5/EJRYQgs1XtIEskMA-hR77LKV.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}",
    "https://fonts.googleapis.com/css2?family=Roboto:wght@700": "@font-face{font-family:'Roboto';font-style:normal;font-weight:700;src:local('Roboto Bold'),local('Roboto-Bold'),url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlvAA.woff) format('woff')}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;src:local('Roboto Bold'),local('Roboto-Bold'),url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfCRc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;src:local('Roboto Bold'),local('Roboto-Bold'),url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfABc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;src:local('Roboto Bold'),local('Roboto-Bold'),url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfCBc4AMP6lbBP.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;src:local('Roboto Bold'),local('Roboto-Bold'),url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfBxc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0370-03FF}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;src:local('Roboto Bold'),local('Roboto-Bold'),url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfCxc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;src:local('Roboto Bold'),local('Roboto-Bold'),url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfChc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;src:local('Roboto Bold'),local('Roboto-Bold'),url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfBBc4AMP6lQ.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}",
-   "https://fonts.googleapis.com/css?family=Voces": "@font-face{font-family:'Voces';font-style:normal;font-weight:400;src:local('Voces Regular'),local('Voces-Regular'),url(https://fonts.gstatic.com/s/voces/v10/-F6_fjJyLyU8d7PGDmk.woff) format('woff')}@font-face{font-family:'Voces';font-style:normal;font-weight:400;src:local('Voces Regular'),local('Voces-Regular'),url(https://fonts.gstatic.com/s/voces/v10/-F6_fjJyLyU8d7PIDm_6pClI_ik.woff2) format('woff2');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Voces';font-style:normal;font-weight:400;src:local('Voces Regular'),local('Voces-Regular'),url(https://fonts.gstatic.com/s/voces/v10/-F6_fjJyLyU8d7PGDm_6pClI.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}",
+   "https://fonts.googleapis.com/css?family=Voces": "@font-face{font-family:'Voces';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/voces/v10/-F6_fjJyLyU8d7PGDmk.woff?ce=43710007) format('woff')}@font-face{font-family:'Voces';font-style:normal;font-weight:400;src:local('Voces Regular'),local('Voces-Regular'),url(https://fonts.gstatic.com/s/voces/v10/-F6_fjJyLyU8d7PIDm_6pClI_ik.woff2) format('woff2');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Voces';font-style:normal;font-weight:400;src:local('Voces Regular'),local('Voces-Regular'),url(https://fonts.gstatic.com/s/voces/v10/-F6_fjJyLyU8d7PGDm_6pClI.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}",
  }

  101 |     })
  102 | 
> 103 |     expect(testCss).toStrictEqual(snapshotCss)
      |                     ^
  104 |   })
  105 | }
  106 | 

  at Object.<anonymous> (integration/font-optimization/test/index.test.js:103:21)

@ijjk
Copy link
Member

ijjk commented Nov 3, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
buildDuration 13.2s 13.2s -28ms
nodeModulesSize 90.1 MB 90 MB -249 B
Page Load Tests Overall increase ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
/ failed reqs 0 0
/ total time (seconds) 2.457 2.342 -0.11
/ avg req/sec 1017.44 1067.35 +49.91
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.36 1.302 -0.06
/error-in-render avg req/sec 1837.67 1920.03 +82.36
Client Bundles (main, webpack, commons) Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..981d.js gzip 11.3 kB 11.2 kB -19 B
framework.HASH.js gzip 39 kB 39 kB
main-7072174..bcc3.js gzip 7.34 kB 7.34 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58.3 kB 58.3 kB -19 B
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..dule.js gzip 7.03 kB 7.02 kB -12 B
framework.HA..dule.js gzip 39 kB 39 kB
main-d0ac908..dule.js gzip 6.33 kB 6.33 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 53.1 kB 53.1 kB -12 B
Legacy Client Bundles (polyfills) Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
polyfills-4b..e242.js gzip 31 kB 31 kB -16 B
Overall change 31 kB 31 kB -16 B
Client Pages
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-a674d88..ccde.js gzip 1.35 kB 1.35 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.75 kB 7.75 kB
Client Pages Modern
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-a4469f3..dule.js gzip 1.32 kB 1.32 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.41 kB 5.41 kB
Client Build Manifests
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 330 B 330 B
Overall change 652 B 652 B
Rendered Page Sizes Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
index.html gzip 1 kB 1 kB -1 B
link.html gzip 1.01 kB 1.01 kB -1 B
withRouter.html gzip 996 B 994 B -2 B
Overall change 3.01 kB 3 kB -4 B

Diffs

Diff for 677f882d2ed8..aa41086c2.js
@@ -2691,10 +2691,6 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       var _utils = __webpack_require__("g/15");
 
       var _querystring = __webpack_require__("3WeD");
-
-      var DUMMY_BASE = new URL(
-        false ? undefined : (0, _utils.getLocationOrigin)()
-      );
       /**
        * Parses path-relative urls (e.g. `/hello/world?foo=bar`). If url isn't path-relative
        * (e.g. `./hello`) then at least base must be.
@@ -2703,7 +2699,10 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
        */
 
       function parseRelativeUrl(url, base) {
-        var resolvedBase = base ? new URL(base, DUMMY_BASE) : DUMMY_BASE;
+        var globalBase = new URL(
+          false ? undefined : (0, _utils.getLocationOrigin)()
+        );
+        var resolvedBase = base ? new URL(base, globalBase) : globalBase;
 
         var _URL = new URL(url, resolvedBase),
           pathname = _URL.pathname,
@@ -2711,13 +2710,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
           search = _URL.search,
           hash = _URL.hash,
           href = _URL.href,
-          origin = _URL.origin,
-          protocol = _URL.protocol;
+          origin = _URL.origin;
 
-        if (
-          origin !== DUMMY_BASE.origin ||
-          (protocol !== "http:" && protocol !== "https:")
-        ) {
+        if (origin !== globalBase.origin) {
           throw new Error("invariant: invalid relative URL");
         }
 
@@ -2726,7 +2721,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
           query: (0, _querystring.searchParamsToUrlQuery)(searchParams),
           search: search,
           hash: hash,
-          href: href.slice(DUMMY_BASE.origin.length)
+          href: href.slice(globalBase.origin.length)
         };
       }
Diff for 677f882d2ed8..c8.module.js
@@ -1911,10 +1911,6 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       var _utils = __webpack_require__("g/15");
 
       var _querystring = __webpack_require__("3WeD");
-
-      var DUMMY_BASE = new URL(
-        false ? undefined : (0, _utils.getLocationOrigin)()
-      );
       /**
        * Parses path-relative urls (e.g. `/hello/world?foo=bar`). If url isn't path-relative
        * (e.g. `./hello`) then at least base must be.
@@ -1923,21 +1919,16 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
        */
 
       function parseRelativeUrl(url, base) {
-        var resolvedBase = base ? new URL(base, DUMMY_BASE) : DUMMY_BASE;
-        var {
-          pathname,
-          searchParams,
-          search,
-          hash,
-          href,
-          origin,
-          protocol
-        } = new URL(url, resolvedBase);
-
-        if (
-          origin !== DUMMY_BASE.origin ||
-          (protocol !== "http:" && protocol !== "https:")
-        ) {
+        var globalBase = new URL(
+          false ? undefined : (0, _utils.getLocationOrigin)()
+        );
+        var resolvedBase = base ? new URL(base, globalBase) : globalBase;
+        var { pathname, searchParams, search, hash, href, origin } = new URL(
+          url,
+          resolvedBase
+        );
+
+        if (origin !== globalBase.origin) {
           throw new Error("invariant: invalid relative URL");
         }
 
@@ -1946,7 +1937,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
           query: (0, _querystring.searchParamsToUrlQuery)(searchParams),
           search,
           hash,
-          href: href.slice(DUMMY_BASE.origin.length)
+          href: href.slice(globalBase.origin.length)
         };
       }
Diff for polyfills-f7..972ef83e9.js
@@ -1096,15 +1096,14 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
             {
               of: function() {
                 for (
-                  var t = arguments,
-                    e = 0,
-                    r = arguments.length,
-                    n = new ("function" == typeof this ? this : Array)(r);
-                  r > e;
+                  var t = 0,
+                    e = arguments.length,
+                    r = new ("function" == typeof this ? this : Array)(e);
+                  e > t;
 
                 )
-                  Je(n, e, t[e++]);
-                return (n.length = r), n;
+                  Je(r, t, arguments[t++]);
+                return (r.length = e), r;
               }
             }
           );
@@ -1600,29 +1599,24 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
           };
           Pt({ target: "Map", stat: !0 }, { from: Wr });
           var Kr = function() {
-            for (
-              var t = arguments, e = arguments.length, r = new Array(e);
-              e--;
-
-            )
-              r[e] = t[e];
-            return new this(r);
+            for (var t = arguments.length, e = new Array(t); t--; )
+              e[t] = arguments[t];
+            return new this(e);
           };
           Pt({ target: "Map", stat: !0 }, { of: Kr });
           var Gr = function() {
             for (
               var t,
-                e = arguments,
-                r = O(this),
-                n = Yt(r.delete),
-                o = !0,
-                i = 0,
-                a = arguments.length;
-              i < a;
-              i++
+                e = O(this),
+                r = Yt(e.delete),
+                n = !0,
+                o = 0,
+                i = arguments.length;
+              o < i;
+              o++
             )
-              (t = n.call(r, e[i])), (o = o && t);
-            return !!o;
+              (t = r.call(e, arguments[o])), (n = n && t);
+            return !!n;
           };
           Pt(
             { target: "Map", proto: !0, real: !0, forced: !1 },
@@ -1850,12 +1844,12 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
               {
                 merge: function(t) {
                   for (
-                    var e = arguments, r = O(this), n = Yt(r.set), o = 0;
-                    o < arguments.length;
+                    var e = O(this), r = Yt(e.set), n = 0;
+                    n < arguments.length;
 
                   )
-                    Er(e[o++], n, r, !0);
-                  return r;
+                    Er(arguments[n++], r, e, !0);
+                  return e;
                 }
               }
             ),
@@ -2880,9 +2874,8 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
                   n &&
                   n.length > 1 &&
                   ni.call(n[0], r, function() {
-                    var t = arguments;
                     for (o = 1; o < arguments.length - 2; o++)
-                      void 0 === t[o] && (n[o] = void 0);
+                      void 0 === arguments[o] && (n[o] = void 0);
                   }),
                 n
               );
@@ -3311,16 +3304,12 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
             Pt({ target: "Set", stat: !0 }, { of: Kr });
           var Ui = function() {
             for (
-              var t = arguments,
-                e = O(this),
-                r = Yt(e.add),
-                n = 0,
-                o = arguments.length;
-              n < o;
-              n++
+              var t = O(this), e = Yt(t.add), r = 0, n = arguments.length;
+              r < n;
+              r++
             )
-              r.call(e, t[n]);
-            return e;
+              e.call(t, arguments[r]);
+            return t;
           };
           Pt(
             { target: "Set", proto: !0, real: !0, forced: !1 },
@@ -3639,21 +3628,20 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
                   n,
                   o,
                   i,
-                  a = arguments,
-                  u = Tt(this),
-                  s = re(u, 0),
-                  c = 0;
+                  a = Tt(this),
+                  u = re(a, 0),
+                  s = 0;
                 for (e = -1, n = arguments.length; e < n; e++)
-                  if ($i((i = -1 === e ? u : a[e]))) {
-                    if (c + (o = ut(i.length)) > 9007199254740991)
+                  if ($i((i = -1 === e ? a : arguments[e]))) {
+                    if (s + (o = ut(i.length)) > 9007199254740991)
                       throw TypeError("Maximum allowed index exceeded");
-                    for (r = 0; r < o; r++, c++) r in i && Je(s, c, i[r]);
+                    for (r = 0; r < o; r++, s++) r in i && Je(u, s, i[r]);
                   } else {
-                    if (c >= 9007199254740991)
+                    if (s >= 9007199254740991)
                       throw TypeError("Maximum allowed index exceeded");
-                    Je(s, c++, i);
+                    Je(u, s++, i);
                   }
-                return (s.length = c), s;
+                return (u.length = s), u;
               }
             }
           );
@@ -3928,12 +3916,8 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
               { target: "JSON", stat: !0, forced: Ia },
               {
                 stringify: function(t, e, r) {
-                  for (
-                    var n, o = arguments, i = [t], a = 1;
-                    arguments.length > a;
-
-                  )
-                    i.push(o[a++]);
+                  for (var n, o = [t], i = 1; arguments.length > i; )
+                    o.push(arguments[i++]);
                   if (((n = e), (g(e) || void 0 !== t) && !wa(t)))
                     return (
                       te(e) ||
@@ -3944,8 +3928,8 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
                           )
                             return e;
                         }),
-                      (i[1] = e),
-                      ua.apply(null, i)
+                      (o[1] = e),
+                      ua.apply(null, o)
                     );
                 }
               }
@@ -4073,20 +4057,16 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
             { target: "String", stat: !0, forced: !!Ha && 1 != Ha.length },
             {
               fromCodePoint: function(t) {
-                for (
-                  var e, r = arguments, n = [], o = arguments.length, i = 0;
-                  o > i;
-
-                ) {
-                  if (((e = +r[i++]), ft(e, 1114111) !== e))
+                for (var e, r = [], n = arguments.length, o = 0; n > o; ) {
+                  if (((e = +arguments[o++]), ft(e, 1114111) !== e))
                     throw RangeError(e + " is not a valid code point");
-                  n.push(
+                  r.push(
                     e < 65536
                       ? Va(e)
                       : Va(55296 + ((e -= 65536) >> 10), (e % 1024) + 56320)
                   );
                 }
-                return n.join("");
+                return r.join("");
               }
             }
           ),
@@ -4164,17 +4144,17 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
               {
                 raw: function(t) {
                   for (
-                    var e = arguments,
-                      r = v(t.raw),
-                      n = ut(r.length),
-                      o = arguments.length,
-                      i = [],
-                      a = 0;
-                    n > a;
+                    var e = v(t.raw),
+                      r = ut(e.length),
+                      n = arguments.length,
+                      o = [],
+                      i = 0;
+                    r > i;
 
                   )
-                    i.push(String(r[a++])), a < o && i.push(String(e[a]));
-                  return i.join("");
+                    o.push(String(e[i++])),
+                      i < n && o.push(String(arguments[i]));
+                  return o.join("");
                 }
               }
             ),
@@ -4294,26 +4274,25 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
               })
                 ? function(t, e) {
                     for (
-                      var r = arguments,
-                        n = Tt(t),
-                        o = arguments.length,
-                        a = 1,
-                        u = mt.f,
-                        c = s.f;
-                      o > a;
+                      var r = Tt(t),
+                        n = arguments.length,
+                        o = 1,
+                        a = mt.f,
+                        u = s.f;
+                      n > o;
 
                     )
                       for (
-                        var f,
-                          l = p(r[a++]),
-                          h = u ? Bt(l).concat(u(l)) : Bt(l),
-                          d = h.length,
-                          v = 0;
-                        d > v;
+                        var c,
+                          f = p(arguments[o++]),
+                          l = a ? Bt(f).concat(a(f)) : Bt(f),
+                          h = l.length,
+                          d = 0;
+                        h > d;
 
                       )
-                        (f = h[v++]), (i && !c.call(l, f)) || (n[f] = l[f]);
-                    return n;
+                        (c = l[d++]), (i && !u.call(f, c)) || (r[c] = f[c]);
+                    return r;
                   }
                 : gu,
             bu = /[^\0-\u007E]/,
@@ -5600,11 +5579,11 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
             };
           (xc && Ac) ||
             ((xc = function(t) {
-              for (var e = arguments, r = [], n = 1; arguments.length > n; )
-                r.push(e[n++]);
+              for (var e = [], r = 1; arguments.length > r; )
+                e.push(arguments[r++]);
               return (
                 (Pc[++Ic] = function() {
-                  ("function" == typeof t ? t : Function(t)).apply(void 0, r);
+                  ("function" == typeof t ? t : Function(t)).apply(void 0, e);
                 }),
                 yc(Ic),
                 Ic
Diff for index.html
@@ -24,7 +24,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.ce5ac41887b55102c5c8.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.749b41e2d1d29f80d792.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -82,7 +82,7 @@
     <script
       crossorigin="anonymous"
       nomodule=""
-      src="/_next/static/chunks/polyfills-f73ba3fc145972ef83e9.js"
+      src="/_next/static/chunks/polyfills-769ffb30946627a111d3.js"
     ></script>
     <script
       src="/_next/static/chunks/main-a3cb2ad6a4df2469bc30.js"
@@ -121,13 +121,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2f570708014aa41086c2.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.95c437bfeae0184795b7.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.ce5ac41887b55102c5c8.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.749b41e2d1d29f80d792.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for link.html
@@ -24,7 +24,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.ce5ac41887b55102c5c8.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.749b41e2d1d29f80d792.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -87,7 +87,7 @@
     <script
       crossorigin="anonymous"
       nomodule=""
-      src="/_next/static/chunks/polyfills-f73ba3fc145972ef83e9.js"
+      src="/_next/static/chunks/polyfills-769ffb30946627a111d3.js"
     ></script>
     <script
       src="/_next/static/chunks/main-a3cb2ad6a4df2469bc30.js"
@@ -126,13 +126,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2f570708014aa41086c2.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.95c437bfeae0184795b7.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.ce5ac41887b55102c5c8.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.749b41e2d1d29f80d792.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for withRouter.html
@@ -24,7 +24,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.ce5ac41887b55102c5c8.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.749b41e2d1d29f80d792.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -82,7 +82,7 @@
     <script
       crossorigin="anonymous"
       nomodule=""
-      src="/_next/static/chunks/polyfills-f73ba3fc145972ef83e9.js"
+      src="/_next/static/chunks/polyfills-769ffb30946627a111d3.js"
     ></script>
     <script
       src="/_next/static/chunks/main-a3cb2ad6a4df2469bc30.js"
@@ -121,13 +121,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2f570708014aa41086c2.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.95c437bfeae0184795b7.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.ce5ac41887b55102c5c8.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.749b41e2d1d29f80d792.module.js"
       async=""
       crossorigin="anonymous"
       type="module"

Serverless Mode (Decrease detected ✓)
General Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
buildDuration 14.3s 14.7s ⚠️ +316ms
nodeModulesSize 90.1 MB 90 MB -249 B
Client Bundles (main, webpack, commons) Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..981d.js gzip 11.3 kB N/A N/A
framework.HASH.js gzip 39 kB 39 kB
main-7072174..bcc3.js gzip 7.34 kB 7.34 kB
webpack-e067..f178.js gzip 751 B 751 B
677f882d2ed8..1f3c.js gzip N/A 11.2 kB N/A
Overall change 58.3 kB 58.3 kB -19 B
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..dule.js gzip 7.03 kB N/A N/A
framework.HA..dule.js gzip 39 kB 39 kB
main-d0ac908..dule.js gzip 6.33 kB 6.33 kB
webpack-07c5..dule.js gzip 751 B 751 B
677f882d2ed8..dule.js gzip N/A 7.02 kB N/A
Overall change 53.1 kB 53.1 kB -12 B
Legacy Client Bundles (polyfills) Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
polyfills-4b..e242.js gzip 31 kB N/A N/A
polyfills-b5..1119.js gzip N/A 31 kB N/A
Overall change 31 kB 31 kB -16 B
Client Pages
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-a674d88..ccde.js gzip 1.35 kB 1.35 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.75 kB 7.75 kB
Client Pages Modern
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-a4469f3..dule.js gzip 1.32 kB 1.32 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.41 kB 5.41 kB
Client Build Manifests
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 330 B 330 B
Overall change 652 B 652 B
Serverless bundles Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_error.js 1.07 MB 1.07 MB -61 B
404.html 4.73 kB 4.73 kB
hooks.html 3.92 kB 3.92 kB
index.js 1.07 MB 1.07 MB -61 B
link.js 1.12 MB 1.12 MB -61 B
routerDirect.js 1.11 MB 1.11 MB -61 B
withRouter.js 1.11 MB 1.11 MB -61 B
Overall change 5.48 MB 5.48 MB -305 B
Commit: 651aee2

@ijjk
Copy link
Member

ijjk commented Nov 3, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
buildDuration 13s 13.5s ⚠️ +573ms
nodeModulesSize 90.1 MB 90 MB -249 B
Page Load Tests Overall increase ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
/ failed reqs 0 0
/ total time (seconds) 2.548 2.494 -0.05
/ avg req/sec 981.32 1002.22 +20.9
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.415 1.371 -0.04
/error-in-render avg req/sec 1766.84 1824.09 +57.25
Client Bundles (main, webpack, commons) Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..981d.js gzip 11.3 kB 11.2 kB -19 B
framework.HASH.js gzip 39 kB 39 kB
main-7072174..bcc3.js gzip 7.34 kB 7.34 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58.3 kB 58.3 kB -19 B
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..dule.js gzip 7.03 kB 7.02 kB -12 B
framework.HA..dule.js gzip 39 kB 39 kB
main-d0ac908..dule.js gzip 6.33 kB 6.33 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 53.1 kB 53.1 kB -12 B
Legacy Client Bundles (polyfills) Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
polyfills-4b..e242.js gzip 31 kB 31 kB -16 B
Overall change 31 kB 31 kB -16 B
Client Pages
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-a674d88..ccde.js gzip 1.35 kB 1.35 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.75 kB 7.75 kB
Client Pages Modern
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-a4469f3..dule.js gzip 1.32 kB 1.32 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.41 kB 5.41 kB
Client Build Manifests
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 330 B 330 B
Overall change 652 B 652 B
Rendered Page Sizes Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
index.html gzip 1 kB 1 kB -1 B
link.html gzip 1.01 kB 1.01 kB -1 B
withRouter.html gzip 996 B 994 B -2 B
Overall change 3.01 kB 3 kB -4 B

Diffs

Diff for 677f882d2ed8..aa41086c2.js
@@ -2691,10 +2691,6 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       var _utils = __webpack_require__("g/15");
 
       var _querystring = __webpack_require__("3WeD");
-
-      var DUMMY_BASE = new URL(
-        false ? undefined : (0, _utils.getLocationOrigin)()
-      );
       /**
        * Parses path-relative urls (e.g. `/hello/world?foo=bar`). If url isn't path-relative
        * (e.g. `./hello`) then at least base must be.
@@ -2703,7 +2699,10 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
        */
 
       function parseRelativeUrl(url, base) {
-        var resolvedBase = base ? new URL(base, DUMMY_BASE) : DUMMY_BASE;
+        var globalBase = new URL(
+          false ? undefined : (0, _utils.getLocationOrigin)()
+        );
+        var resolvedBase = base ? new URL(base, globalBase) : globalBase;
 
         var _URL = new URL(url, resolvedBase),
           pathname = _URL.pathname,
@@ -2711,13 +2710,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
           search = _URL.search,
           hash = _URL.hash,
           href = _URL.href,
-          origin = _URL.origin,
-          protocol = _URL.protocol;
+          origin = _URL.origin;
 
-        if (
-          origin !== DUMMY_BASE.origin ||
-          (protocol !== "http:" && protocol !== "https:")
-        ) {
+        if (origin !== globalBase.origin) {
           throw new Error("invariant: invalid relative URL");
         }
 
@@ -2726,7 +2721,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
           query: (0, _querystring.searchParamsToUrlQuery)(searchParams),
           search: search,
           hash: hash,
-          href: href.slice(DUMMY_BASE.origin.length)
+          href: href.slice(globalBase.origin.length)
         };
       }
Diff for 677f882d2ed8..c8.module.js
@@ -1911,10 +1911,6 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       var _utils = __webpack_require__("g/15");
 
       var _querystring = __webpack_require__("3WeD");
-
-      var DUMMY_BASE = new URL(
-        false ? undefined : (0, _utils.getLocationOrigin)()
-      );
       /**
        * Parses path-relative urls (e.g. `/hello/world?foo=bar`). If url isn't path-relative
        * (e.g. `./hello`) then at least base must be.
@@ -1923,21 +1919,16 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
        */
 
       function parseRelativeUrl(url, base) {
-        var resolvedBase = base ? new URL(base, DUMMY_BASE) : DUMMY_BASE;
-        var {
-          pathname,
-          searchParams,
-          search,
-          hash,
-          href,
-          origin,
-          protocol
-        } = new URL(url, resolvedBase);
-
-        if (
-          origin !== DUMMY_BASE.origin ||
-          (protocol !== "http:" && protocol !== "https:")
-        ) {
+        var globalBase = new URL(
+          false ? undefined : (0, _utils.getLocationOrigin)()
+        );
+        var resolvedBase = base ? new URL(base, globalBase) : globalBase;
+        var { pathname, searchParams, search, hash, href, origin } = new URL(
+          url,
+          resolvedBase
+        );
+
+        if (origin !== globalBase.origin) {
           throw new Error("invariant: invalid relative URL");
         }
 
@@ -1946,7 +1937,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
           query: (0, _querystring.searchParamsToUrlQuery)(searchParams),
           search,
           hash,
-          href: href.slice(DUMMY_BASE.origin.length)
+          href: href.slice(globalBase.origin.length)
         };
       }
Diff for polyfills-f7..972ef83e9.js
@@ -1096,15 +1096,14 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
             {
               of: function() {
                 for (
-                  var t = arguments,
-                    e = 0,
-                    r = arguments.length,
-                    n = new ("function" == typeof this ? this : Array)(r);
-                  r > e;
+                  var t = 0,
+                    e = arguments.length,
+                    r = new ("function" == typeof this ? this : Array)(e);
+                  e > t;
 
                 )
-                  Je(n, e, t[e++]);
-                return (n.length = r), n;
+                  Je(r, t, arguments[t++]);
+                return (r.length = e), r;
               }
             }
           );
@@ -1600,29 +1599,24 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
           };
           Pt({ target: "Map", stat: !0 }, { from: Wr });
           var Kr = function() {
-            for (
-              var t = arguments, e = arguments.length, r = new Array(e);
-              e--;
-
-            )
-              r[e] = t[e];
-            return new this(r);
+            for (var t = arguments.length, e = new Array(t); t--; )
+              e[t] = arguments[t];
+            return new this(e);
           };
           Pt({ target: "Map", stat: !0 }, { of: Kr });
           var Gr = function() {
             for (
               var t,
-                e = arguments,
-                r = O(this),
-                n = Yt(r.delete),
-                o = !0,
-                i = 0,
-                a = arguments.length;
-              i < a;
-              i++
+                e = O(this),
+                r = Yt(e.delete),
+                n = !0,
+                o = 0,
+                i = arguments.length;
+              o < i;
+              o++
             )
-              (t = n.call(r, e[i])), (o = o && t);
-            return !!o;
+              (t = r.call(e, arguments[o])), (n = n && t);
+            return !!n;
           };
           Pt(
             { target: "Map", proto: !0, real: !0, forced: !1 },
@@ -1850,12 +1844,12 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
               {
                 merge: function(t) {
                   for (
-                    var e = arguments, r = O(this), n = Yt(r.set), o = 0;
-                    o < arguments.length;
+                    var e = O(this), r = Yt(e.set), n = 0;
+                    n < arguments.length;
 
                   )
-                    Er(e[o++], n, r, !0);
-                  return r;
+                    Er(arguments[n++], r, e, !0);
+                  return e;
                 }
               }
             ),
@@ -2880,9 +2874,8 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
                   n &&
                   n.length > 1 &&
                   ni.call(n[0], r, function() {
-                    var t = arguments;
                     for (o = 1; o < arguments.length - 2; o++)
-                      void 0 === t[o] && (n[o] = void 0);
+                      void 0 === arguments[o] && (n[o] = void 0);
                   }),
                 n
               );
@@ -3311,16 +3304,12 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
             Pt({ target: "Set", stat: !0 }, { of: Kr });
           var Ui = function() {
             for (
-              var t = arguments,
-                e = O(this),
-                r = Yt(e.add),
-                n = 0,
-                o = arguments.length;
-              n < o;
-              n++
+              var t = O(this), e = Yt(t.add), r = 0, n = arguments.length;
+              r < n;
+              r++
             )
-              r.call(e, t[n]);
-            return e;
+              e.call(t, arguments[r]);
+            return t;
           };
           Pt(
             { target: "Set", proto: !0, real: !0, forced: !1 },
@@ -3639,21 +3628,20 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
                   n,
                   o,
                   i,
-                  a = arguments,
-                  u = Tt(this),
-                  s = re(u, 0),
-                  c = 0;
+                  a = Tt(this),
+                  u = re(a, 0),
+                  s = 0;
                 for (e = -1, n = arguments.length; e < n; e++)
-                  if ($i((i = -1 === e ? u : a[e]))) {
-                    if (c + (o = ut(i.length)) > 9007199254740991)
+                  if ($i((i = -1 === e ? a : arguments[e]))) {
+                    if (s + (o = ut(i.length)) > 9007199254740991)
                       throw TypeError("Maximum allowed index exceeded");
-                    for (r = 0; r < o; r++, c++) r in i && Je(s, c, i[r]);
+                    for (r = 0; r < o; r++, s++) r in i && Je(u, s, i[r]);
                   } else {
-                    if (c >= 9007199254740991)
+                    if (s >= 9007199254740991)
                       throw TypeError("Maximum allowed index exceeded");
-                    Je(s, c++, i);
+                    Je(u, s++, i);
                   }
-                return (s.length = c), s;
+                return (u.length = s), u;
               }
             }
           );
@@ -3928,12 +3916,8 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
               { target: "JSON", stat: !0, forced: Ia },
               {
                 stringify: function(t, e, r) {
-                  for (
-                    var n, o = arguments, i = [t], a = 1;
-                    arguments.length > a;
-
-                  )
-                    i.push(o[a++]);
+                  for (var n, o = [t], i = 1; arguments.length > i; )
+                    o.push(arguments[i++]);
                   if (((n = e), (g(e) || void 0 !== t) && !wa(t)))
                     return (
                       te(e) ||
@@ -3944,8 +3928,8 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
                           )
                             return e;
                         }),
-                      (i[1] = e),
-                      ua.apply(null, i)
+                      (o[1] = e),
+                      ua.apply(null, o)
                     );
                 }
               }
@@ -4073,20 +4057,16 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
             { target: "String", stat: !0, forced: !!Ha && 1 != Ha.length },
             {
               fromCodePoint: function(t) {
-                for (
-                  var e, r = arguments, n = [], o = arguments.length, i = 0;
-                  o > i;
-
-                ) {
-                  if (((e = +r[i++]), ft(e, 1114111) !== e))
+                for (var e, r = [], n = arguments.length, o = 0; n > o; ) {
+                  if (((e = +arguments[o++]), ft(e, 1114111) !== e))
                     throw RangeError(e + " is not a valid code point");
-                  n.push(
+                  r.push(
                     e < 65536
                       ? Va(e)
                       : Va(55296 + ((e -= 65536) >> 10), (e % 1024) + 56320)
                   );
                 }
-                return n.join("");
+                return r.join("");
               }
             }
           ),
@@ -4164,17 +4144,17 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
               {
                 raw: function(t) {
                   for (
-                    var e = arguments,
-                      r = v(t.raw),
-                      n = ut(r.length),
-                      o = arguments.length,
-                      i = [],
-                      a = 0;
-                    n > a;
+                    var e = v(t.raw),
+                      r = ut(e.length),
+                      n = arguments.length,
+                      o = [],
+                      i = 0;
+                    r > i;
 
                   )
-                    i.push(String(r[a++])), a < o && i.push(String(e[a]));
-                  return i.join("");
+                    o.push(String(e[i++])),
+                      i < n && o.push(String(arguments[i]));
+                  return o.join("");
                 }
               }
             ),
@@ -4294,26 +4274,25 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
               })
                 ? function(t, e) {
                     for (
-                      var r = arguments,
-                        n = Tt(t),
-                        o = arguments.length,
-                        a = 1,
-                        u = mt.f,
-                        c = s.f;
-                      o > a;
+                      var r = Tt(t),
+                        n = arguments.length,
+                        o = 1,
+                        a = mt.f,
+                        u = s.f;
+                      n > o;
 
                     )
                       for (
-                        var f,
-                          l = p(r[a++]),
-                          h = u ? Bt(l).concat(u(l)) : Bt(l),
-                          d = h.length,
-                          v = 0;
-                        d > v;
+                        var c,
+                          f = p(arguments[o++]),
+                          l = a ? Bt(f).concat(a(f)) : Bt(f),
+                          h = l.length,
+                          d = 0;
+                        h > d;
 
                       )
-                        (f = h[v++]), (i && !c.call(l, f)) || (n[f] = l[f]);
-                    return n;
+                        (c = l[d++]), (i && !u.call(f, c)) || (r[c] = f[c]);
+                    return r;
                   }
                 : gu,
             bu = /[^\0-\u007E]/,
@@ -5600,11 +5579,11 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
             };
           (xc && Ac) ||
             ((xc = function(t) {
-              for (var e = arguments, r = [], n = 1; arguments.length > n; )
-                r.push(e[n++]);
+              for (var e = [], r = 1; arguments.length > r; )
+                e.push(arguments[r++]);
               return (
                 (Pc[++Ic] = function() {
-                  ("function" == typeof t ? t : Function(t)).apply(void 0, r);
+                  ("function" == typeof t ? t : Function(t)).apply(void 0, e);
                 }),
                 yc(Ic),
                 Ic
Diff for index.html
@@ -24,7 +24,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.ce5ac41887b55102c5c8.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.749b41e2d1d29f80d792.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -82,7 +82,7 @@
     <script
       crossorigin="anonymous"
       nomodule=""
-      src="/_next/static/chunks/polyfills-f73ba3fc145972ef83e9.js"
+      src="/_next/static/chunks/polyfills-769ffb30946627a111d3.js"
     ></script>
     <script
       src="/_next/static/chunks/main-a3cb2ad6a4df2469bc30.js"
@@ -121,13 +121,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2f570708014aa41086c2.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.95c437bfeae0184795b7.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.ce5ac41887b55102c5c8.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.749b41e2d1d29f80d792.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for link.html
@@ -24,7 +24,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.ce5ac41887b55102c5c8.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.749b41e2d1d29f80d792.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -87,7 +87,7 @@
     <script
       crossorigin="anonymous"
       nomodule=""
-      src="/_next/static/chunks/polyfills-f73ba3fc145972ef83e9.js"
+      src="/_next/static/chunks/polyfills-769ffb30946627a111d3.js"
     ></script>
     <script
       src="/_next/static/chunks/main-a3cb2ad6a4df2469bc30.js"
@@ -126,13 +126,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2f570708014aa41086c2.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.95c437bfeae0184795b7.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.ce5ac41887b55102c5c8.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.749b41e2d1d29f80d792.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for withRouter.html
@@ -24,7 +24,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.ce5ac41887b55102c5c8.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.749b41e2d1d29f80d792.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -82,7 +82,7 @@
     <script
       crossorigin="anonymous"
       nomodule=""
-      src="/_next/static/chunks/polyfills-f73ba3fc145972ef83e9.js"
+      src="/_next/static/chunks/polyfills-769ffb30946627a111d3.js"
     ></script>
     <script
       src="/_next/static/chunks/main-a3cb2ad6a4df2469bc30.js"
@@ -121,13 +121,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2f570708014aa41086c2.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.95c437bfeae0184795b7.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.ce5ac41887b55102c5c8.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.749b41e2d1d29f80d792.module.js"
       async=""
       crossorigin="anonymous"
       type="module"

Serverless Mode (Decrease detected ✓)
General Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
buildDuration 15.3s 15.4s ⚠️ +69ms
nodeModulesSize 90.1 MB 90 MB -249 B
Client Bundles (main, webpack, commons) Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..981d.js gzip 11.3 kB N/A N/A
framework.HASH.js gzip 39 kB 39 kB
main-7072174..bcc3.js gzip 7.34 kB 7.34 kB
webpack-e067..f178.js gzip 751 B 751 B
677f882d2ed8..1f3c.js gzip N/A 11.2 kB N/A
Overall change 58.3 kB 58.3 kB -19 B
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
677f882d2ed8..dule.js gzip 7.03 kB N/A N/A
framework.HA..dule.js gzip 39 kB 39 kB
main-d0ac908..dule.js gzip 6.33 kB 6.33 kB
webpack-07c5..dule.js gzip 751 B 751 B
677f882d2ed8..dule.js gzip N/A 7.02 kB N/A
Overall change 53.1 kB 53.1 kB -12 B
Legacy Client Bundles (polyfills) Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
polyfills-4b..e242.js gzip 31 kB N/A N/A
polyfills-b5..1119.js gzip N/A 31 kB N/A
Overall change 31 kB 31 kB -16 B
Client Pages
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-a674d88..ccde.js gzip 1.35 kB 1.35 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.75 kB 7.75 kB
Client Pages Modern
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-a4469f3..dule.js gzip 1.32 kB 1.32 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.41 kB 5.41 kB
Client Build Manifests
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 330 B 330 B
Overall change 652 B 652 B
Serverless bundles Overall decrease ✓
vercel/next.js canary Cow258/next.js fix-parse-relative-url Change
_error.js 1.07 MB 1.07 MB -61 B
404.html 4.73 kB 4.73 kB
hooks.html 3.92 kB 3.92 kB
index.js 1.07 MB 1.07 MB -61 B
link.js 1.12 MB 1.12 MB -61 B
routerDirect.js 1.11 MB 1.11 MB -61 B
withRouter.js 1.11 MB 1.11 MB -61 B
Overall change 5.48 MB 5.48 MB -305 B
Commit: ddbdd02

@vercel
Copy link

vercel bot commented Nov 3, 2020

This pull request is being automatically deployed with Vercel (learn more).
To see the status of your deployment, click below or on the icon next to each commit.

🔍 Inspect: https://vercel.com/vercel/nextjs-examples-image-component/g7lajxsca
✅ Preview: https://nextjs-examples-image-component-git-fix-parse-relative-url.vercel.vercel.app

@vercel vercel bot temporarily deployed to Preview November 3, 2020 21:01 Inactive
@Timer Timer merged commit 28e1287 into vercel:canary Nov 3, 2020
jamesgeorge007 pushed a commit to jamesgeorge007/next.js that referenced this pull request Nov 5, 2020
Co-authored-by: Tim Neutkens <timneutkens@me.com>
Co-authored-by: Joe Haddad <joe.haddad@zeit.co>
Co-authored-by: JJ Kasper <jj@jjsweb.site>
@vercel vercel locked as resolved and limited conversation to collaborators Jan 29, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Navigation not working on electron.js + next.js next 9.5.2 Router not working on ionic webview