-
Notifications
You must be signed in to change notification settings - Fork 24.8k
Closed
Labels
BugContributorA React Native contributor.A React Native contributor.JavaScriptResolution: BacklogAn issue that should be solved at some point, but it's not in the immediate roadmap.An issue that should be solved at some point, but it's not in the immediate roadmap.StaleThere has been a lack of activity on this issue and it may be closed soon.There has been a lack of activity on this issue and it may be closed soon.🌐NetworkingRelated to a networking API.Related to a networking API.
Description
React Native version:
System:
OS: macOS 10.14.5
CPU: (12) x64 Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz
Memory: 1002.17 MB / 32.00 GB
Shell: 5.3 - /bin/zsh
Binaries:
Node: 10.15.3 - ~/.nvm/versions/node/v10.15.3/bin/node
Yarn: 1.16.0 - /usr/local/bin/yarn
npm: 6.4.1 - ~/.nvm/versions/node/v10.15.3/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
SDKs:
iOS SDK:
Platforms: iOS 12.2, macOS 10.14, tvOS 12.2, watchOS 5.2
Android SDK:
API Levels: 23, 25, 26, 27, 28
Build Tools: 27.0.3, 28.0.2, 28.0.3, 29.0.0
System Images: android-28 | Google APIs Intel x86 Atom, android-28 | Google Play Intel x86 Atom, android-29 | Google Play Intel x86 Atom
Android NDK: 17.2.4988734
IDEs:
Android Studio: 3.4 AI-183.6156.11.34.5522156
Xcode: 10.2.1/10E1001 - /usr/bin/xcodebuild
npmPackages:
react: 16.8.6 => 16.8.6
react-native: 0.60.3 => 0.60.3
The current custom implementation of URL Standard incorrectly handles conjunctions between URL and base.
react-native/Libraries/Blob/URL.js
Lines 131 to 155 in 45a4bec
constructor(url: string, base: string) { | |
let baseUrl = null; | |
if (base) { | |
if (typeof base === 'string') { | |
baseUrl = base; | |
if (!validateBaseUrl(baseUrl)) { | |
throw new TypeError(`Invalid base URL: ${baseUrl}`); | |
} | |
} else if (typeof base === 'object') { | |
baseUrl = base.toString(); | |
} | |
if (baseUrl.endsWith('/') && url.startsWith('/')) { | |
baseUrl = baseUrl.slice(0, baseUrl.length - 1); | |
} | |
if (baseUrl.endsWith(url)) { | |
url = ''; | |
} | |
this._url = `${baseUrl}${url}`; | |
} else { | |
this._url = url; | |
if (!this._url.endsWith('/')) { | |
this._url += '/'; | |
} | |
} | |
} |
Steps To Reproduce
const url = new URL('about', 'https://www.mozilla.org');
console.log(url.href);
Expected Behavior
https://www.mozilla.org/about
Actual Behavior
https://www.mozilla.orgabout
Metadata
Metadata
Assignees
Labels
BugContributorA React Native contributor.A React Native contributor.JavaScriptResolution: BacklogAn issue that should be solved at some point, but it's not in the immediate roadmap.An issue that should be solved at some point, but it's not in the immediate roadmap.StaleThere has been a lack of activity on this issue and it may be closed soon.There has been a lack of activity on this issue and it may be closed soon.🌐NetworkingRelated to a networking API.Related to a networking API.