diff --git a/src/HtmlUtils.tsx b/src/HtmlUtils.tsx
index 5e83fdc2a0..a37b7f0ac9 100644
--- a/src/HtmlUtils.tsx
+++ b/src/HtmlUtils.tsx
@@ -25,7 +25,6 @@ import _linkifyElement from 'linkifyjs/element';
import _linkifyString from 'linkifyjs/string';
import classNames from 'classnames';
import EMOJIBASE_REGEX from 'emojibase-regex';
-import url from 'url';
import katex from 'katex';
import { AllHtmlEntities } from 'html-entities';
import { IContent } from 'matrix-js-sdk/src/models/event';
@@ -153,10 +152,8 @@ export function getHtmlText(insaneHtml: string): string {
*/
export function isUrlPermitted(inputUrl: string): boolean {
try {
- const parsed = url.parse(inputUrl);
- if (!parsed.protocol) return false;
// URL parser protocol includes the trailing colon
- return PERMITTED_URL_SCHEMES.includes(parsed.protocol.slice(0, -1));
+ return PERMITTED_URL_SCHEMES.includes(new URL(inputUrl).protocol.slice(0, -1));
} catch (e) {
return false;
}
diff --git a/src/utils/HostingLink.js b/src/utils/HostingLink.js
index 7595bdd482..134e045ca2 100644
--- a/src/utils/HostingLink.js
+++ b/src/utils/HostingLink.js
@@ -14,11 +14,8 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
-import url from 'url';
-
import SdkConfig from '../SdkConfig';
import { MatrixClientPeg } from '../MatrixClientPeg';
-import { urlSearchParamsToObject } from "./UrlUtils";
export function getHostingLink(campaign) {
const hostingLink = SdkConfig.get().hosting_signup_link;
@@ -28,11 +25,8 @@ export function getHostingLink(campaign) {
if (MatrixClientPeg.get().getDomain() !== 'matrix.org') return null;
try {
- const hostingUrl = url.parse(hostingLink);
- const params = urlSearchParamsToObject(new URLSearchParams(hostingUrl.query));
- params.utm_campaign = campaign;
- hostingUrl.search = undefined;
- hostingUrl.query = params;
+ const hostingUrl = new URL(hostingLink);
+ hostingUrl.searchParams.set("utm_campaign", campaign);
return hostingUrl.format();
} catch (e) {
return hostingLink;
diff --git a/src/utils/UrlUtils.ts b/src/utils/UrlUtils.ts
index 392b44c5e9..ba43340ff5 100644
--- a/src/utils/UrlUtils.ts
+++ b/src/utils/UrlUtils.ts
@@ -16,10 +16,6 @@ limitations under the License.
import * as url from "url";
-export function urlSearchParamsToObject(params: URLSearchParams) {
- return Object.fromEntries([...params.entries()]);
-}
-
/**
* If a url has no path component, etc. abbreviate it to just the hostname
*