Skip to content

Commit

Permalink
safari support
Browse files Browse the repository at this point in the history
  • Loading branch information
niu541412 committed Jun 19, 2024
1 parent 16246ed commit cf3e7ef
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 25 deletions.
30 changes: 14 additions & 16 deletions js/bg.js
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ var Sites = Class(ObjectClass, {
getUserSites: function () {
return new Promise((resolve, reject) => {
var arr, ret = [];
chrome.storage.sync.get([this.usersiteskey], item => {
browserStorage.get([this.usersiteskey], item => {
if (item[this.usersiteskey]) {
arr = JSON.parse(item[this.usersiteskey]);
arr.forEach((one) => {
Expand All @@ -142,10 +142,10 @@ var Sites = Class(ObjectClass, {
return false;
}
}
chrome.storage.sync.get(this.usersiteskey, item => {
browserStorage.get(this.usersiteskey, item => {
var arr = JSON.parse(item[this.usersiteskey] || '[]');
arr.push(ps);
chrome.storage.sync.set({ [this.usersiteskey]: JSON.stringify(arr) });
browserStorage.set({ [this.usersiteskey]: JSON.stringify(arr) });
this.sites.push(new SearchSite(ps));
})
return true;
Expand All @@ -159,14 +159,14 @@ var Sites = Class(ObjectClass, {
sites.splice(i, 1);
}
}
chrome.storage.sync.get(this.usersiteskey, item => {
browserStorage.get(this.usersiteskey, item => {
var arr = JSON.parse(item[this.usersiteskey] || '[]');
for (i = arr.length - 1; i >= 0; i--) {
if (arr[i].name == name) {
arr.splice(i, 1);
}
}
chrome.storage.sync.set({ [this.usersiteskey]: JSON.stringify(arr) });
browserStorage.set({ [this.usersiteskey]: JSON.stringify(arr) });
})
}
}, {
Expand Down Expand Up @@ -204,14 +204,14 @@ var Way = Class(ObjectClass, {
var Ways = Class(ObjectClass, {
savekey: 'ways',
init: function () {
chrome.storage.sync.get(this.savekey, (item) => {
browserStorage.get(this.savekey, (item) => {
if (item[this.savekey]) {
this.loadWays();
return;
}
this.ways = [];
// actually part2 does not take effect now.
chrome.storage.sync.get('part2', item => {
browserStorage.get('part2', item => {
switch (item.part2) {
case 'part_binggoogle':
this.addDualWay(Bing, Google);
Expand Down Expand Up @@ -241,15 +241,15 @@ var Ways = Class(ObjectClass, {
})
},
saveWays: function (waysArray) {
chrome.storage.sync.set({ [this.savekey]: JSON.stringify(waysArray) }, () => {
browserStorage.set({ [this.savekey]: JSON.stringify(waysArray) }, () => {
this.loadWays();
});
},
loadWays: function () {
this.ways = [];
var sites = Sites.getInstance();
var the = this;
chrome.storage.sync.get([this.savekey], (item) => {
browserStorage.get([this.savekey], (item) => {
var warr = JSON.parse(item[this.savekey]);
warr.forEach(function (one) {
if (one.from && one.to) {
Expand Down Expand Up @@ -324,16 +324,16 @@ var OneClick = Class(ObjectClass, {
},
getShortcut: function () {
return new Promise((resolve, reject) => {
chrome.storage.sync.get('shortcut', item => {
browserStorage.get('shortcut', item => {
resolve(item.shortcut || 'alt+s')
})
})
},
setShortcut: function (s) {
chrome.storage.sync.set({ 'shortcut': s });
browserStorage.set({ 'shortcut': s });
},
setIogo: function (tab, path) {
chrome.storage.sync.get('buttonicon', (item) => {
browserStorage.get('buttonicon', (item) => {
if (item.buttonicon) {
// 图标按钮的样式,可以避免和其他扩展图标相同而分不清。
// console.log("setting logo...");
Expand Down Expand Up @@ -424,7 +424,7 @@ var OneClick = Class(ObjectClass, {
// chrome.action.show(tab.id);
// shortcut support
try {
chrome.storage.sync.get('useshortcut', (item) => {
browserStorage.get('useshortcut', (item) => {
if (item.useshortcut !== '0') {
chrome.scripting.executeScript({
target: { tabId: tab.id },
Expand Down Expand Up @@ -468,7 +468,7 @@ var OneClick = Class(ObjectClass, {
}
var from = way.getFrom();
getKeyword(function (keyword) {
chrome.storage.sync.get('newtab', (item) => {
browserStorage.get('newtab', (item) => {
if (item.newtab == '1') {
chrome.tabs.create({
openerTabId: tab.id,
Expand Down Expand Up @@ -545,8 +545,6 @@ function getI18n(m) {
return chrome.i18n.getMessage(m);
}

const isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;

function faviconURL(u, s) {
const url = new URL(chrome.runtime.getURL('/_favicon/'));
url.searchParams.set('pageUrl', u);
Expand Down
9 changes: 8 additions & 1 deletion js/easyswitch.js
Original file line number Diff line number Diff line change
@@ -1 +1,8 @@
importScripts("syncloc.js", "oop.js", "url.js", "kw.js", "bg.js", "builtin.js");
const userAgent = navigator.userAgent.toLowerCase();
const isFirefox = userAgent.indexOf('firefox') > -1;
const isSafari = /^((?!chrome|android).)*safari/i.test(userAgent);
const browserStorage = isSafari ? chrome.storage.local : chrome.storage.sync;

if (!isSafari)
importScripts("syncloc.js");
importScripts("oop.js", "url.js", "kw.js", "bg.js", "builtin.js");
21 changes: 13 additions & 8 deletions js/options.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ function localizeHtmlPage() {
}
function revierwShortcut() {
return new Promise((resolve, reject) => {
chrome.storage.sync.get('shortcut', item => {
browserStorage.get('shortcut', item => {
var ret = item.shortcut || 'alt+s';
if (!/[a-z]/.test(ret.charAt(ret.length - 1))) {
ret = ret.replace(/\+.*$/, '+s');
Expand All @@ -70,15 +70,15 @@ function saveButtonIcon() {
var radios = document.getElementsByName('button');
for (var i = 0, length = radios.length; i < length; i++) {
if (radios[i].checked) {
chrome.storage.sync.set({ 'buttonicon': radios[i].value });
browserStorage.set({ 'buttonicon': radios[i].value });
break;
}
}
return;
}

function saveShortcut() {
chrome.storage.sync.set({ 'useshortcut': (byId('useshortcut').checked ? '1' : '0') });
browserStorage.set({ 'useshortcut': (byId('useshortcut').checked ? '1' : '0') });
if (!ctrl.checked && !alt.checked && !shift.checked) {
alert(getI18n("warningShortcut") + "(ctrl/alt/shift)");
return false;
Expand All @@ -88,12 +88,12 @@ function saveShortcut() {
if (alt.checked) s += "alt+";
if (shift.checked) s += "shift+";
s += key.value;
chrome.storage.sync.set({ 'shortcut': s });
browserStorage.set({ 'shortcut': s });
return true;
}

function saveNewTab() {
chrome.storage.sync.set({ 'newtab': (byId("newtab").checked ? '1' : '0') });
browserStorage.set({ 'newtab': (byId("newtab").checked ? '1' : '0') });
return;
}

Expand Down Expand Up @@ -180,7 +180,7 @@ function initButtonIcon() {
}
img2.src = 'icon/google.png';

chrome.storage.sync.get("buttonicon", (item) => {
browserStorage.get("buttonicon", (item) => {
let idx = Math.min(item.buttonicon | 0, document.getElementsByName('button').length);
document.getElementsByName('button')[idx].checked = true;
});
Expand All @@ -198,12 +198,12 @@ function init() {
initShortCut();

// init shortcut switch
chrome.storage.sync.get("useshortcut", (item) => {
browserStorage.get("useshortcut", (item) => {
byId('useshortcut').checked = item.useshortcut !== '0';
});

// init newtab switch
chrome.storage.sync.get("newtab", (item) => {
browserStorage.get("newtab", (item) => {
byId('newtab').checked = item.newtab == '1';
});

Expand Down Expand Up @@ -438,4 +438,9 @@ function initWays() {
});
}

const userAgent = navigator.userAgent.toLowerCase();
const isFirefox = userAgent.indexOf('firefox') > -1;
const isSafari = /^((?!chrome|android).)*safari/i.test(userAgent);
const browserStorage = isSafari ? chrome.storage.local : chrome.storage.sync;

document.addEventListener("DOMContentLoaded", init, false);

0 comments on commit cf3e7ef

Please sign in to comment.