소스 검색

feat: allow open non-HTTP URL in new tab block (#1219, #1240)

Ahmad Kholid 1 년 전
부모
커밋
9cf3c00c02
1개의 변경된 파일11개의 추가작업 그리고 3개의 파일을 삭제
  1. 11 3
      src/workflowEngine/blocksHandler/handlerNewTab.js

+ 11 - 3
src/workflowEngine/blocksHandler/handlerNewTab.js

@@ -7,6 +7,16 @@ import {
   injectPreloadScript,
 } from '../helper';
 
+function isValidURL(url) {
+  try {
+    // eslint-disable-next-line
+    new URL(url);
+    return true;
+  } catch (error) {
+    return false;
+  }
+}
+
 async function newTab({ id, data }) {
   if (this.windowId) {
     try {
@@ -16,9 +26,7 @@ async function newTab({ id, data }) {
     }
   }
 
-  const isInvalidUrl = !/^https?/.test(data.url);
-
-  if (isInvalidUrl) {
+  if (!isValidURL(data.url)) {
     const error = new Error(
       isWhitespace(data.url) ? 'url-empty' : 'invalid-active-tab'
     );