fix(service-worker): registration failed on Safari (#31140)
Since Angular v8, and commit b3dda0e
, `parseUrl()` can be called without
`relativeTo`, thus `new URL()` can be called with `relativeTo = undefined`.
Safari does not like it and the service worker registration fails:
```js
new URL('https://angular.io/') // OK
new URL('https://angular.io/', undefined) // TypeError
```
Closes #31061
PR Close #31140
This commit is contained in:
@ -53,7 +53,9 @@ export class Adapter {
|
||||
* Extract the pathname of a URL.
|
||||
*/
|
||||
parseUrl(url: string, relativeTo?: string): {origin: string, path: string, search: string} {
|
||||
const parsed = new URL(url, relativeTo);
|
||||
// Workaround a Safari bug, see
|
||||
// https://github.com/angular/angular/issues/31061#issuecomment-503637978
|
||||
const parsed = !relativeTo ? new URL(url) : new URL(url, relativeTo);
|
||||
return {origin: parsed.origin, path: parsed.pathname, search: parsed.search};
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user