mirror of
https://github.com/skidoodle/hostinfo
synced 2026-04-28 09:37:37 +02:00
replace system protocol with http/https
This commit is contained in:
@@ -3,11 +3,6 @@ import { GeoService } from '@/services/geo';
|
|||||||
import { IconService } from '@/services/icon';
|
import { IconService } from '@/services/icon';
|
||||||
import { DnsService } from '@/services/dns';
|
import { DnsService } from '@/services/dns';
|
||||||
|
|
||||||
const SYSTEM_PROTOCOLS = [
|
|
||||||
'chrome:', 'about:', 'edge:', 'moz-extension:',
|
|
||||||
'chrome-extension:', 'file:', 'view-source:', 'data:', 'devtools:'
|
|
||||||
];
|
|
||||||
|
|
||||||
const tabStates = new Map<number, TabState>();
|
const tabStates = new Map<number, TabState>();
|
||||||
|
|
||||||
function getDomain(url: string) {
|
function getDomain(url: string) {
|
||||||
@@ -19,8 +14,8 @@ function getDomain(url: string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function applyIconForState(tabId: number, state: TabState) {
|
function applyIconForState(tabId: number, state: TabState) {
|
||||||
const isSystem = SYSTEM_PROTOCOLS.some(p => state.url.startsWith(p));
|
const isWebProtocol = state.url.startsWith('http://') || state.url.startsWith('https://');
|
||||||
if (isSystem) {
|
if (!isWebProtocol) {
|
||||||
IconService.updateIcon(tabId, null, true);
|
IconService.updateIcon(tabId, null, true);
|
||||||
} else if (state.status === 'success' && state.data) {
|
} else if (state.status === 'success' && state.data) {
|
||||||
let code = state.data.countryCode;
|
let code = state.data.countryCode;
|
||||||
@@ -33,7 +28,7 @@ function applyIconForState(tabId: number, state: TabState) {
|
|||||||
|
|
||||||
async function initTab(tabId: number, url: string, resolveDns = false) {
|
async function initTab(tabId: number, url: string, resolveDns = false) {
|
||||||
if (!url) return;
|
if (!url) return;
|
||||||
const isSystem = SYSTEM_PROTOCOLS.some(p => url.startsWith(p));
|
const isWebProtocol = url.startsWith('http://') || url.startsWith('https://');
|
||||||
const domain = getDomain(url);
|
const domain = getDomain(url);
|
||||||
|
|
||||||
let currentState = tabStates.get(tabId);
|
let currentState = tabStates.get(tabId);
|
||||||
@@ -63,7 +58,7 @@ async function initTab(tabId: number, url: string, resolveDns = false) {
|
|||||||
const newState: TabState = {
|
const newState: TabState = {
|
||||||
url,
|
url,
|
||||||
domain,
|
domain,
|
||||||
status: isSystem || hasExistingData ? 'success' : 'loading',
|
status: !isWebProtocol || hasExistingData ? 'success' : 'loading',
|
||||||
data: hasExistingData ? currentState!.data : null,
|
data: hasExistingData ? currentState!.data : null,
|
||||||
errorMessage: null,
|
errorMessage: null,
|
||||||
lastUpdated: Date.now()
|
lastUpdated: Date.now()
|
||||||
@@ -74,7 +69,7 @@ async function initTab(tabId: number, url: string, resolveDns = false) {
|
|||||||
|
|
||||||
applyIconForState(tabId, newState);
|
applyIconForState(tabId, newState);
|
||||||
|
|
||||||
if (!isSystem && !hasExistingData) {
|
if (!isWebProtocol && !hasExistingData) {
|
||||||
const performDnsFallback = async () => {
|
const performDnsFallback = async () => {
|
||||||
const state = tabStates.get(tabId);
|
const state = tabStates.get(tabId);
|
||||||
if (state?.status !== 'loading' || state.url !== url) return;
|
if (state?.status !== 'loading' || state.url !== url) return;
|
||||||
|
|||||||
Reference in New Issue
Block a user