Posts

Post not yet marked as solved
3 Replies
1.4k Views
I am trying to write a safari web extension that redirects users to Y URL if they type X URL without ever loading the X URL. The piece of code that I have attached below works smoothly on chrome, but not on safari. background.js function onBeforeNavigate(event) { const redirectURL = "https://google.com/" chrome.tabs.update(event.tabId, { url: redirectURL }) } chrome.webNavigation.onBeforeNavigate.addListener(onBeforeNavigate,{ url: [ {urlMatches: "https://girlcodeit.com/*"}, {urlMatches: "http://girlcodeit.com/*"} ] }) manifest.json "manifest_version": 2, "name": "", "description": "", "version": "1.0", "background": { "scripts": [ "background.js" ] }, "permissions": [ "webNavigation", "tabs" ] } I have tried writing browser.tabs.update and just tabs.update in place of chrome.tabs.update in safari version, no change. I want to achieve the redirection anyhow through a safari web extension, please suggest changes in this one or share any other approaches. webRequestBlocking is not supported by Safari, so that doesn't work either.
Posted
by mt2107.
Last updated
.
Post not yet marked as solved
0 Replies
1k Views
I am trying to make a safari extension that will redirect some specific URLs to some other URLs. background.js function redirect(event) { console.log("called ") const redirectURL = "https://apple.com/" chrome.tabs.update(event.tabId, { url: redirectURL }) } // This works and redirects everything to apple.com chrome.webNavigation.onBeforeNavigate.addListener(redirect) /* tabs.update doesn't work as soon as URL filter is added, but the same piece of code works in a chrome extension but not in safari OnBeforeNavigate is called on accessing girlcodeit.com as the console statement is printed on accessing girlcodeit.com but tab is not updated. */ chrome.webNavigation.onBeforeNavigate.addListener(redirect, { url: [ { urlMatches: "https://girlcodeit.com/*" }, { urlMatches: "http://girlcodeit.com/*" } ] }) manifest.json "manifest_version": 2, "name": "", "description": "", "version": "1.0", "background": { "scripts": [ "background.js" ] }, "permissions": [ "webNavigation", "tabs" ] } How do I redirect only specific URLs and not all URLs or is there something wrong with the above piece of code, but because it works on chrome, it could be a bug in safari?
Posted
by mt2107.
Last updated
.
Post not yet marked as solved
1 Replies
1.6k Views
I am trying to write a URL-redirection safari web extension. manifest.json "declarative_net_request": { "rule_resources": [ { "id": "ruleset", "enabled": true, "path": "rules.json" } ] }, "permissions": [ "declarativeNetRequest", "webNavigation" ] } Rules.json [ { "id": 1, "priority": 1, "action": { "type": "redirect", "redirect": { "regexSubstitution": "https://example.com/" } }, "condition": { "regexFilter": "http://*/", "resourceTypes": [ "main_frame" ] } } ] Expectation - any search should redirect to example.com Getting this error Non-fatal issue: Rule with id 1 is invalid. redirect is not a supported action type. The same code works fine in chrome as a chrome extension, giving error in safari browser only. Is redirect not supported by safari? If no, what other options do i have to achieve it?
Posted
by mt2107.
Last updated
.