Removing Object.prototype functions
Improve compatibility across browsers + not a best practicepull/512/head^2
parent
1d68c9d1a8
commit
a66f3c91a8
|
@ -150,15 +150,6 @@ function redirectToBreezeWiki(storage, tabId, url) {
|
||||||
}
|
}
|
||||||
|
|
||||||
async function main(url, tabId) {
|
async function main(url, tabId) {
|
||||||
// Create object prototypes for getting and setting attributes
|
|
||||||
Object.prototype.get = function (prop) {
|
|
||||||
this[prop] = this[prop] || {};
|
|
||||||
return this[prop];
|
|
||||||
};
|
|
||||||
Object.prototype.set = function (prop, value) {
|
|
||||||
this[prop] = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
chrome.storage.local.get((localStorage) => {
|
chrome.storage.local.get((localStorage) => {
|
||||||
chrome.storage.sync.get(async (syncStorage) => {
|
chrome.storage.sync.get(async (syncStorage) => {
|
||||||
const storage = { ...syncStorage, ...localStorage };
|
const storage = { ...syncStorage, ...localStorage };
|
||||||
|
|
|
@ -1,14 +1,5 @@
|
||||||
var sites = [];
|
var sites = [];
|
||||||
|
|
||||||
// Create object prototypes for getting and setting attributes:
|
|
||||||
Object.prototype.get = function (prop) {
|
|
||||||
this[prop] = this[prop] || {};
|
|
||||||
return this[prop];
|
|
||||||
};
|
|
||||||
Object.prototype.set = function (prop, value) {
|
|
||||||
this[prop] = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Clear wiki toggles
|
// Clear wiki toggles
|
||||||
// Used when switching languages
|
// Used when switching languages
|
||||||
function resetOptions() {
|
function resetOptions() {
|
||||||
|
@ -192,7 +183,7 @@ async function loadOptions(lang, textFilter = '') {
|
||||||
chrome.storage.sync.get({ 'wikiSettings': {} }, async (response) => {
|
chrome.storage.sync.get({ 'wikiSettings': {} }, async (response) => {
|
||||||
let wikiSettings = await commonFunctionDecompressJSON(response.wikiSettings);
|
let wikiSettings = await commonFunctionDecompressJSON(response.wikiSettings);
|
||||||
var key = input.target.getAttribute('data-wiki-key');
|
var key = input.target.getAttribute('data-wiki-key');
|
||||||
wikiSettings.set(key, 'disabled');
|
wikiSettings[key] = 'disabled';
|
||||||
chrome.storage.sync.set({ 'wikiSettings': await commonFunctionCompressJSON(wikiSettings) });
|
chrome.storage.sync.set({ 'wikiSettings': await commonFunctionCompressJSON(wikiSettings) });
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -200,7 +191,7 @@ async function loadOptions(lang, textFilter = '') {
|
||||||
chrome.storage.sync.get({ 'wikiSettings': {} }, async (response) => {
|
chrome.storage.sync.get({ 'wikiSettings': {} }, async (response) => {
|
||||||
let wikiSettings = await commonFunctionDecompressJSON(response.wikiSettings);
|
let wikiSettings = await commonFunctionDecompressJSON(response.wikiSettings);
|
||||||
var key = input.target.getAttribute('data-wiki-key');
|
var key = input.target.getAttribute('data-wiki-key');
|
||||||
wikiSettings.set(key, 'alert');
|
wikiSettings[key] = 'alert';
|
||||||
chrome.storage.sync.set({ 'wikiSettings': await commonFunctionCompressJSON(wikiSettings) });
|
chrome.storage.sync.set({ 'wikiSettings': await commonFunctionCompressJSON(wikiSettings) });
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -208,7 +199,7 @@ async function loadOptions(lang, textFilter = '') {
|
||||||
chrome.storage.sync.get({ 'wikiSettings': {} }, async (response) => {
|
chrome.storage.sync.get({ 'wikiSettings': {} }, async (response) => {
|
||||||
let wikiSettings = await commonFunctionDecompressJSON(response.wikiSettings);
|
let wikiSettings = await commonFunctionDecompressJSON(response.wikiSettings);
|
||||||
var key = input.target.getAttribute('data-wiki-key');
|
var key = input.target.getAttribute('data-wiki-key');
|
||||||
wikiSettings.set(key, 'redirect');
|
wikiSettings[key] = 'redirect';
|
||||||
chrome.storage.sync.set({ 'wikiSettings': await commonFunctionCompressJSON(wikiSettings) });
|
chrome.storage.sync.set({ 'wikiSettings': await commonFunctionCompressJSON(wikiSettings) });
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -216,7 +207,7 @@ async function loadOptions(lang, textFilter = '') {
|
||||||
chrome.storage.sync.get({ 'searchEngineSettings': {} }, async (response) => {
|
chrome.storage.sync.get({ 'searchEngineSettings': {} }, async (response) => {
|
||||||
let searchEngineSettings = await commonFunctionDecompressJSON(response.searchEngineSettings);
|
let searchEngineSettings = await commonFunctionDecompressJSON(response.searchEngineSettings);
|
||||||
var key = input.target.getAttribute('data-wiki-key');
|
var key = input.target.getAttribute('data-wiki-key');
|
||||||
searchEngineSettings.set(key, 'disabled');
|
searchEngineSettings[key] = 'disabled';
|
||||||
chrome.storage.sync.set({ 'searchEngineSettings': await commonFunctionCompressJSON(searchEngineSettings) });
|
chrome.storage.sync.set({ 'searchEngineSettings': await commonFunctionCompressJSON(searchEngineSettings) });
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -224,7 +215,7 @@ async function loadOptions(lang, textFilter = '') {
|
||||||
chrome.storage.sync.get({ 'searchEngineSettings': {} }, async (response) => {
|
chrome.storage.sync.get({ 'searchEngineSettings': {} }, async (response) => {
|
||||||
let searchEngineSettings = await commonFunctionDecompressJSON(response.searchEngineSettings);
|
let searchEngineSettings = await commonFunctionDecompressJSON(response.searchEngineSettings);
|
||||||
var key = input.target.getAttribute('data-wiki-key');
|
var key = input.target.getAttribute('data-wiki-key');
|
||||||
searchEngineSettings.set(key, 'replace');
|
searchEngineSettings[key] = 'replace';
|
||||||
chrome.storage.sync.set({ 'searchEngineSettings': await commonFunctionCompressJSON(searchEngineSettings) });
|
chrome.storage.sync.set({ 'searchEngineSettings': await commonFunctionCompressJSON(searchEngineSettings) });
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -232,7 +223,7 @@ async function loadOptions(lang, textFilter = '') {
|
||||||
chrome.storage.sync.get({ 'searchEngineSettings': {} }, async (response) => {
|
chrome.storage.sync.get({ 'searchEngineSettings': {} }, async (response) => {
|
||||||
let searchEngineSettings = await commonFunctionDecompressJSON(response.searchEngineSettings);
|
let searchEngineSettings = await commonFunctionDecompressJSON(response.searchEngineSettings);
|
||||||
var key = input.target.getAttribute('data-wiki-key');
|
var key = input.target.getAttribute('data-wiki-key');
|
||||||
searchEngineSettings.set(key, 'hide');
|
searchEngineSettings[key] = 'hide';
|
||||||
chrome.storage.sync.set({ 'searchEngineSettings': await commonFunctionCompressJSON(searchEngineSettings) });
|
chrome.storage.sync.set({ 'searchEngineSettings': await commonFunctionCompressJSON(searchEngineSettings) });
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -325,7 +316,7 @@ async function loadOptions(lang, textFilter = '') {
|
||||||
const toggles = document.querySelectorAll('#toggles input.toggleRedirect');
|
const toggles = document.querySelectorAll('#toggles input.toggleRedirect');
|
||||||
for (var i = 0; i < toggles.length; i++) {
|
for (var i = 0; i < toggles.length; i++) {
|
||||||
toggles[i].checked = true;
|
toggles[i].checked = true;
|
||||||
wikiSettings.set(toggles[i].getAttribute('data-wiki-key'), 'redirect');
|
wikiSettings[toggles[i].getAttribute('data-wiki-key')] = 'redirect';
|
||||||
}
|
}
|
||||||
chrome.storage.sync.set({ 'wikiSettings': await commonFunctionCompressJSON(wikiSettings) });
|
chrome.storage.sync.set({ 'wikiSettings': await commonFunctionCompressJSON(wikiSettings) });
|
||||||
});
|
});
|
||||||
|
@ -335,7 +326,7 @@ async function loadOptions(lang, textFilter = '') {
|
||||||
const toggles = document.querySelectorAll('#toggles input.toggleAlert');
|
const toggles = document.querySelectorAll('#toggles input.toggleAlert');
|
||||||
for (var i = 0; i < toggles.length; i++) {
|
for (var i = 0; i < toggles.length; i++) {
|
||||||
toggles[i].checked = true;
|
toggles[i].checked = true;
|
||||||
wikiSettings.set(toggles[i].getAttribute('data-wiki-key'), 'alert');
|
wikiSettings[toggles[i].getAttribute('data-wiki-key')] = 'alert';
|
||||||
}
|
}
|
||||||
chrome.storage.sync.set({ 'wikiSettings': await commonFunctionCompressJSON(wikiSettings) });
|
chrome.storage.sync.set({ 'wikiSettings': await commonFunctionCompressJSON(wikiSettings) });
|
||||||
});
|
});
|
||||||
|
@ -345,7 +336,7 @@ async function loadOptions(lang, textFilter = '') {
|
||||||
const toggles = document.querySelectorAll('#toggles input.toggleDisable');
|
const toggles = document.querySelectorAll('#toggles input.toggleDisable');
|
||||||
for (var i = 0; i < toggles.length; i++) {
|
for (var i = 0; i < toggles.length; i++) {
|
||||||
toggles[i].checked = true;
|
toggles[i].checked = true;
|
||||||
wikiSettings.set(toggles[i].getAttribute('data-wiki-key'), 'disabled');
|
wikiSettings[toggles[i].getAttribute('data-wiki-key')] = 'disabled';
|
||||||
}
|
}
|
||||||
chrome.storage.sync.set({ 'wikiSettings': await commonFunctionCompressJSON(wikiSettings) });
|
chrome.storage.sync.set({ 'wikiSettings': await commonFunctionCompressJSON(wikiSettings) });
|
||||||
});
|
});
|
||||||
|
@ -355,7 +346,7 @@ async function loadOptions(lang, textFilter = '') {
|
||||||
const toggles = document.querySelectorAll('#toggles input.toggleSearchEngineDisabled');
|
const toggles = document.querySelectorAll('#toggles input.toggleSearchEngineDisabled');
|
||||||
for (var i = 0; i < toggles.length; i++) {
|
for (var i = 0; i < toggles.length; i++) {
|
||||||
toggles[i].checked = true;
|
toggles[i].checked = true;
|
||||||
searchEngineSettings.set(toggles[i].getAttribute('data-wiki-key'), 'disabled');
|
searchEngineSettings[toggles[i].getAttribute('data-wiki-key')] = 'disabled';
|
||||||
}
|
}
|
||||||
chrome.storage.sync.set({ 'searchEngineSettings': await commonFunctionCompressJSON(searchEngineSettings) });
|
chrome.storage.sync.set({ 'searchEngineSettings': await commonFunctionCompressJSON(searchEngineSettings) });
|
||||||
});
|
});
|
||||||
|
@ -365,7 +356,7 @@ async function loadOptions(lang, textFilter = '') {
|
||||||
const toggles = document.querySelectorAll('#toggles input.toggleSearchEngineHide');
|
const toggles = document.querySelectorAll('#toggles input.toggleSearchEngineHide');
|
||||||
for (var i = 0; i < toggles.length; i++) {
|
for (var i = 0; i < toggles.length; i++) {
|
||||||
toggles[i].checked = true;
|
toggles[i].checked = true;
|
||||||
searchEngineSettings.set(toggles[i].getAttribute('data-wiki-key'), 'hide');
|
searchEngineSettings[toggles[i].getAttribute('data-wiki-key')] = 'hide';
|
||||||
}
|
}
|
||||||
chrome.storage.sync.set({ 'searchEngineSettings': await commonFunctionCompressJSON(searchEngineSettings) });
|
chrome.storage.sync.set({ 'searchEngineSettings': await commonFunctionCompressJSON(searchEngineSettings) });
|
||||||
});
|
});
|
||||||
|
@ -375,7 +366,7 @@ async function loadOptions(lang, textFilter = '') {
|
||||||
const toggles = document.querySelectorAll('#toggles input.toggleSearchEngineReplace');
|
const toggles = document.querySelectorAll('#toggles input.toggleSearchEngineReplace');
|
||||||
for (var i = 0; i < toggles.length; i++) {
|
for (var i = 0; i < toggles.length; i++) {
|
||||||
toggles[i].checked = true;
|
toggles[i].checked = true;
|
||||||
searchEngineSettings.set(toggles[i].getAttribute('data-wiki-key'), 'replace');
|
searchEngineSettings[toggles[i].getAttribute('data-wiki-key')] = 'replace';
|
||||||
}
|
}
|
||||||
chrome.storage.sync.set({ 'searchEngineSettings': await commonFunctionCompressJSON(searchEngineSettings) });
|
chrome.storage.sync.set({ 'searchEngineSettings': await commonFunctionCompressJSON(searchEngineSettings) });
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,15 +1,6 @@
|
||||||
const breezewikiRegex = /breezewiki\.com$|antifandom\.com$|bw\.artemislena\.eu$|breezewiki\.catsarch\.com$|breezewiki\.esmailelbob\.xyz$|breezewiki\.frontendfriendly\.xyz$|bw\.hamstro\.dev$|breeze\.hostux\.net$|breezewiki\.hyperreal\.coffee$|breeze\.mint\.lgbt$|breezewiki\.nadeko\.net$|nerd\.whatever\.social$|breeze\.nohost\.network$|z\.opnxng\.com$|bw\.projectsegfau\.lt$|breezewiki\.pussthecat\.org$|bw\.vern\.cc$|breeze\.whateveritworks\.org$|breezewiki\.woodland\.cafe$/;
|
const breezewikiRegex = /breezewiki\.com$|antifandom\.com$|bw\.artemislena\.eu$|breezewiki\.catsarch\.com$|breezewiki\.esmailelbob\.xyz$|breezewiki\.frontendfriendly\.xyz$|bw\.hamstro\.dev$|breeze\.hostux\.net$|breezewiki\.hyperreal\.coffee$|breeze\.mint\.lgbt$|breezewiki\.nadeko\.net$|nerd\.whatever\.social$|breeze\.nohost\.network$|z\.opnxng\.com$|bw\.projectsegfau\.lt$|breezewiki\.pussthecat\.org$|bw\.vern\.cc$|breeze\.whateveritworks\.org$|breezewiki\.woodland\.cafe$/;
|
||||||
const currentURL = new URL(document.location);
|
const currentURL = new URL(document.location);
|
||||||
|
|
||||||
// Create object prototypes for getting and setting attributes:
|
|
||||||
Object.prototype.get = function (prop) {
|
|
||||||
this[prop] = this[prop] || {};
|
|
||||||
return this[prop];
|
|
||||||
};
|
|
||||||
Object.prototype.set = function (prop, value) {
|
|
||||||
this[prop] = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
function outputCSS() {
|
function outputCSS() {
|
||||||
if (!document.getElementById('iwb-banner-styles')) {
|
if (!document.getElementById('iwb-banner-styles')) {
|
||||||
styleString = `
|
styleString = `
|
||||||
|
@ -209,7 +200,7 @@ function displayRedirectBanner(newUrl, id, destinationName, destinationLanguage,
|
||||||
bannerRestoreLink.onclick = function (e) {
|
bannerRestoreLink.onclick = function (e) {
|
||||||
chrome.storage.sync.get({ 'wikiSettings': {} }, async (response) => {
|
chrome.storage.sync.get({ 'wikiSettings': {} }, async (response) => {
|
||||||
let wikiSettings = await commonFunctionDecompressJSON(response.wikiSettings);
|
let wikiSettings = await commonFunctionDecompressJSON(response.wikiSettings);
|
||||||
wikiSettings.set(id, 'alert');
|
wikiSettings[id] = 'alert';
|
||||||
chrome.storage.sync.set({ 'wikiSettings': await commonFunctionCompressJSON(wikiSettings) });
|
chrome.storage.sync.set({ 'wikiSettings': await commonFunctionCompressJSON(wikiSettings) });
|
||||||
e.target.textContent = '✓ Banner restored';
|
e.target.textContent = '✓ Banner restored';
|
||||||
e.target.classList.add('indie-wiki-banner-disabled');
|
e.target.classList.add('indie-wiki-banner-disabled');
|
||||||
|
@ -231,7 +222,7 @@ function displayRedirectBanner(newUrl, id, destinationName, destinationLanguage,
|
||||||
bannerDisableLink.onclick = function (e) {
|
bannerDisableLink.onclick = function (e) {
|
||||||
chrome.storage.sync.get({ 'wikiSettings': {} }, async (response) => {
|
chrome.storage.sync.get({ 'wikiSettings': {} }, async (response) => {
|
||||||
let wikiSettings = await commonFunctionDecompressJSON(response.wikiSettings);
|
let wikiSettings = await commonFunctionDecompressJSON(response.wikiSettings);
|
||||||
wikiSettings.set(id, 'disabled');
|
wikiSettings[id] = 'disabled';
|
||||||
chrome.storage.sync.set({ 'wikiSettings': await commonFunctionCompressJSON(wikiSettings) });
|
chrome.storage.sync.set({ 'wikiSettings': await commonFunctionCompressJSON(wikiSettings) });
|
||||||
e.target.textContent = '✓ Banner disabled';
|
e.target.textContent = '✓ Banner disabled';
|
||||||
e.target.classList.add('indie-wiki-banner-disabled');
|
e.target.classList.add('indie-wiki-banner-disabled');
|
||||||
|
@ -251,7 +242,7 @@ function displayRedirectBanner(newUrl, id, destinationName, destinationLanguage,
|
||||||
bannerRedirectLink.onclick = function (e) {
|
bannerRedirectLink.onclick = function (e) {
|
||||||
chrome.storage.sync.get({ 'wikiSettings': {} }, async (response) => {
|
chrome.storage.sync.get({ 'wikiSettings': {} }, async (response) => {
|
||||||
let wikiSettings = await commonFunctionDecompressJSON(response.wikiSettings);
|
let wikiSettings = await commonFunctionDecompressJSON(response.wikiSettings);
|
||||||
wikiSettings.set(id, 'redirect');
|
wikiSettings[id] = 'redirect';
|
||||||
chrome.storage.sync.set({ 'wikiSettings': await commonFunctionCompressJSON(wikiSettings) });
|
chrome.storage.sync.set({ 'wikiSettings': await commonFunctionCompressJSON(wikiSettings) });
|
||||||
e.target.textContent = '✓ Redirect enabled';
|
e.target.textContent = '✓ Redirect enabled';
|
||||||
e.target.classList.add('indie-wiki-banner-disabled');
|
e.target.classList.add('indie-wiki-banner-disabled');
|
||||||
|
|
|
@ -1,15 +1,6 @@
|
||||||
const currentURL = new URL(document.location);
|
const currentURL = new URL(document.location);
|
||||||
let hiddenWikisRevealed = {};
|
let hiddenWikisRevealed = {};
|
||||||
|
|
||||||
// Create object prototypes for getting and setting attributes:
|
|
||||||
Object.prototype.get = function (prop) {
|
|
||||||
this[prop] = this[prop] || {};
|
|
||||||
return this[prop];
|
|
||||||
};
|
|
||||||
Object.prototype.set = function (prop, value) {
|
|
||||||
this[prop] = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
function base64Decode(text) {
|
function base64Decode(text) {
|
||||||
text = text.replace(/\s+/g, '').replace(/\-/g, '+').replace(/\_/g, '/');
|
text = text.replace(/\s+/g, '').replace(/\-/g, '+').replace(/\_/g, '/');
|
||||||
return decodeURIComponent(Array.prototype.map.call(atob(text), function (c) { return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2); }).join(''));
|
return decodeURIComponent(Array.prototype.map.call(atob(text), function (c) { return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2); }).join(''));
|
||||||
|
|
Loading…
Reference in New Issue