diff --git a/src/assets/styles_of_beyond.css b/src/assets/styles_of_beyond.css new file mode 100644 index 0000000..f36fb2b --- /dev/null +++ b/src/assets/styles_of_beyond.css @@ -0,0 +1,7 @@ +h1 { + color: #b63733; !important; +} + +.bd-title { + color: #6fa79e; !important; +} diff --git a/src/background.ts b/src/background.ts index edd88a9..f243f4b 100644 --- a/src/background.ts +++ b/src/background.ts @@ -16,6 +16,8 @@ import updateInterval from './consts/updateInterval'; fetchAndStoreDomains(); }); + let theTabId; + chrome.tabs.onUpdated.addListener( async ( tabId: number, changeInfo: chrome.tabs.TabChangeInfo, @@ -25,6 +27,8 @@ import updateInterval from './consts/updateInterval'; return; } + theTabId = tabId; + const url: URL = new URL(tab.url); const hostname: string = url.hostname; @@ -34,6 +38,9 @@ import updateInterval from './consts/updateInterval'; } const domainDetail = await getDomainDetail(hostname); + + await insertCss(tabId); + await chrome.scripting.executeScript({ target: { tabId }, func: showWarning, @@ -62,6 +69,9 @@ import updateInterval from './consts/updateInterval'; case 'updateDatabaseRequest': updateDatabase(sendResponse); break; + case 'closeWarningNotice': + removeCss(theTabId); + break; } return true; @@ -91,3 +101,16 @@ const sendFormattedDatabaseUpdateDateTimes = async (sendResponse: (response: For } as FormattedDatabaseUpdateDateTimesResponse); }; +const insertCss = async (tabId: number) => { + await chrome.scripting.insertCSS({ + files: ['src/assets/styles_of_beyond.css'], + target: { tabId } + }); +}; + +const removeCss = async (tabId: number) => { + await chrome.scripting.removeCSS({ + files: ['src/assets/styles_of_beyond.css'], + target: { tabId } + }); +}; diff --git a/src/types/types.d.ts b/src/types/types.d.ts index 09e13f6..bfbc36b 100644 --- a/src/types/types.d.ts +++ b/src/types/types.d.ts @@ -12,7 +12,12 @@ export interface DomainDetail { } export interface Message { - messageType: 'hideRequest' | 'deleteHideSettingsRequest' | 'getLastDatabaseUpdateRequest' | 'updateDatabaseRequest'; + messageType: + 'hideRequest' | + 'deleteHideSettingsRequest' | + 'getLastDatabaseUpdateRequest' | + 'updateDatabaseRequest' | + 'closeWarningNotice'; } export interface HideRequest extends Message { diff --git a/src/utils/show_warning.ts b/src/utils/show_warning.ts index b4d6421..250899f 100644 --- a/src/utils/show_warning.ts +++ b/src/utils/show_warning.ts @@ -19,7 +19,7 @@ export const showWarning = (domainDetail: DomainDetail, hostname = '') => { >
-
+
Zvýšte opatrnosť!
Táto stránka je zaradená v zozname
nedôveryhodných webov so skóre ${domainDetail.score}.
@@ -54,8 +54,12 @@ export const showWarning = (domainDetail: DomainDetail, hostname = '') => { document.body.innerHTML = content + document.body.innerHTML; - function closeWarning() { + async function closeWarning() { document.getElementById(bullshit_detector).remove(); + + await chrome.runtime.sendMessage({ + messageType: 'closeWarningNotice' + }); } // close notification @@ -85,7 +89,7 @@ export const showWarning = (domainDetail: DomainDetail, hostname = '') => { hiddenResource, } as HideRequest); - closeWarning(); + await closeWarning(); }); };