浏览代码

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'
     );