From c3cb5d94e891b821e7ec07c1e82e8784267abbf8 Mon Sep 17 00:00:00 2001 From: Kevin Payravi Date: Fri, 29 Mar 2024 03:49:29 -0500 Subject: [PATCH] Adding logic for handling search engine toggles --- pages/common-page-functions.js | 27 +++++++++++------------- pages/search-engine-permissions.js | 29 ++++++++++++++++++++++++- pages/settings/index.html | 34 +++++++++++++++++++++++++----- 3 files changed, 69 insertions(+), 21 deletions(-) diff --git a/pages/common-page-functions.js b/pages/common-page-functions.js index 977c3b4..23f156f 100644 --- a/pages/common-page-functions.js +++ b/pages/common-page-functions.js @@ -42,21 +42,18 @@ document.getElementById('powerCheckbox').addEventListener('change', () => { }); }); -// Add event listeners for search engine toggles -document.getElementById('googleCheckbox').addEventListener('change', (event) => { - if(event.target.checked) { - commonFunctionRequestSearchEngineAccess('google') - } else { - commonFunctionRemoveSearchEngineAccess('google') - } -}); -// Add event listeners for search engine toggles -document.getElementById('yandexCheckbox').addEventListener('change', (event) => { - if(event.target.checked) { - commonFunctionRequestSearchEngineAccess('yandex') - } else { - commonFunctionRemoveSearchEngineAccess('yandex') - } +const searchEngineToggles = document.querySelectorAll('.searchEngineToggles label'); +console.log(searchEngineToggles); +searchEngineToggles.forEach((engine) => { + let engineInput = engine.querySelector('input'); + let engineName = engineInput.getAttribute('data-search-engine'); + engine.addEventListener('change', () => { + if (engineInput.checked) { + commonFunctionRequestSearchEngineAccess(engineName); + } else { + commonFunctionRemoveSearchEngineAccess(engineName); + } + }); }); // Set notifications setting diff --git a/pages/search-engine-permissions.js b/pages/search-engine-permissions.js index b45682c..e1fc597 100644 --- a/pages/search-engine-permissions.js +++ b/pages/search-engine-permissions.js @@ -1,4 +1,19 @@ const searchEngineOrigins = { + bing: [ + "https://*.bing.com/search*" + ], + brave: [ + "https://search.brave.com/search*" + ], + duckduckgo: [ + "https://*.duckduckgo.com/*" + ], + ecosia: [ + "https://*.ecosia.org/*", + ], + kagi: [ + "https://kagi.com/search*", + ], google: [ "https://www.google.com/search*", "https://www.google.ad/search*", @@ -191,6 +206,15 @@ const searchEngineOrigins = { "https://www.google.co.zw/search*", "https://www.google.cat/search*" ], + qwant: [ + "https://*.qwant.com/*" + ], + startpage: [ + "https://*.startpage.com/*" + ], + yahoo: [ + "https://*.search.yahoo.com/*" + ], yandex: [ "https://*.ya.ru/*", "https://*.yandex.az/*", @@ -219,7 +243,10 @@ function commonFunctionRequestSearchEngineAccess(searchEngine) { origins: searchEngineOrigins[searchEngine] }, (granted) => { // Callback is true if the user granted the permissions. - if (!granted) return; + if (!granted) { + document.querySelector(`[data-search-engine="${searchEngine}"`).checked = false; + return false; + } chrome.scripting.registerContentScripts([{ id: `content-search-filtering-${searchEngine}`, diff --git a/pages/settings/index.html b/pages/settings/index.html index d61cf95..f58b7ba 100644 --- a/pages/settings/index.html +++ b/pages/settings/index.html @@ -128,21 +128,45 @@
Search engine settings -
+
+ + + + + +