{"version":3,"file":"utils/url.mjs","sources":["webpack://@agent-infra/browser/./src/utils/url.ts"],"sourcesContent":["/*\n * Copyright (c) 2025 Bytedance, Inc. and its affiliates.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport interface ValidateResult {\n  ignored: boolean;\n  url: string;\n  message?: string;\n}\n\nconst BlockedProtocols = ['chrome:', 'chrome-extension:', 'devtools:'];\n\nexport function validateNavigationUrl(rawUrl: string): ValidateResult {\n  const original = (rawUrl || '').trim();\n\n  if (!original) {\n    return {\n      ignored: true,\n      url: original,\n      message: `Empty URL is ignored.`,\n    };\n  }\n\n  if (\n    original.toLowerCase().startsWith('chrome://newtab') ||\n    original.toLowerCase().startsWith('chrome://new-tab-page')\n  ) {\n    return { ignored: false, url: original };\n  }\n\n  // parse and normalize URL\n  let candidate = original;\n  let protocol: string;\n  try {\n    const parsed = new URL(candidate);\n    protocol = parsed.protocol;\n  } catch (e) {\n    candidate = `https://${candidate}`; // try https as default\n    protocol = 'https:';\n  }\n\n  // BlockedProtocols check\n  if (BlockedProtocols.includes(protocol)) {\n    return {\n      ignored: true,\n      url: candidate,\n      message: `The URL \"${rawUrl}\" is ignored because it uses the \"${protocol}\" protocol which accesses internal resources and may be dangerous.`,\n    };\n  }\n\n  return { ignored: false, url: candidate };\n}\n"],"names":["BlockedProtocols","validateNavigationUrl","rawUrl","original","candidate","protocol","parsed","URL","e"],"mappings":";;;;AAWA,MAAMA,mBAAmB;IAAC;IAAW;IAAqB;CAAY;AAE/D,SAASC,sBAAsBC,MAAc;IAClD,MAAMC,WAAYD,AAAAA,CAAAA,UAAU,EAAC,EAAG,IAAI;IAEpC,IAAI,CAACC,UACH,OAAO;QACL,SAAS;QACT,KAAKA;QACL,SAAS;IACX;IAGF,IACEA,SAAS,WAAW,GAAG,UAAU,CAAC,sBAClCA,SAAS,WAAW,GAAG,UAAU,CAAC,0BAElC,OAAO;QAAE,SAAS;QAAO,KAAKA;IAAS;IAIzC,IAAIC,YAAYD;IAChB,IAAIE;IACJ,IAAI;QACF,MAAMC,SAAS,IAAIC,IAAIH;QACvBC,WAAWC,OAAO,QAAQ;IAC5B,EAAE,OAAOE,GAAG;QACVJ,YAAY,CAAC,QAAQ,EAAEA,WAAW;QAClCC,WAAW;IACb;IAGA,IAAIL,iBAAiB,QAAQ,CAACK,WAC5B,OAAO;QACL,SAAS;QACT,KAAKD;QACL,SAAS,CAAC,SAAS,EAAEF,OAAO,kCAAkC,EAAEG,SAAS,kEAAkE,CAAC;IAC9I;IAGF,OAAO;QAAE,SAAS;QAAO,KAAKD;IAAU;AAC1C"}