diff --git a/css/main.css b/css/main.css
index 22b01d6..fb35219 100644
--- a/css/main.css
+++ b/css/main.css
@@ -110,8 +110,12 @@
width: 60px !important;
bottom: 0 !important;
right: 0 !important;
- border 0 !importan;
+ border 0 !important;
background-image: url(data:image/svg+xml;charset=utf-8;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA2MCAzMicgZmlsbD0nbGlnaHRncmF5Jz48Y2lyY2xlIHRyYW5zZm9ybT0ndHJhbnNsYXRlKDEwIDApJyBjeD0nMCcgY3k9JzE2JyByPScwJz48YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSdyJyB2YWx1ZXM9JzA7IDQ7IDA7IDAnIGR1cj0nMS4ycycgcmVwZWF0Q291bnQ9J2luZGVmaW5pdGUnIGJlZ2luPScwJyBrZXl0aW1lcz0nMDswLjI7MC43OzEnIGtleVNwbGluZXM9JzAuMiAwLjIgMC40IDAuODswLjIgMC42IDAuNCAwLjg7MC4yIDAuNiAwLjQgMC44JyBjYWxjTW9kZT0nc3BsaW5lJyAvPjwvY2lyY2xlPjxjaXJjbGUgdHJhbnNmb3JtPSd0cmFuc2xhdGUoMzAgMCknIGN4PScwJyBjeT0nMTYnIHI9JzAnPjxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9J3InIHZhbHVlcz0nMDsgNDsgMDsgMCcgZHVyPScxLjJzJyByZXBlYXRDb3VudD0naW5kZWZpbml0ZScgYmVnaW49JzAuMycga2V5dGltZXM9JzA7MC4yOzAuNzsxJyBrZXlTcGxpbmVzPScwLjIgMC4yIDAuNCAwLjg7MC4yIDAuNiAwLjQgMC44OzAuMiAwLjYgMC40IDAuOCcgY2FsY01vZGU9J3NwbGluZScgLz48L2NpcmNsZT48Y2lyY2xlIHRyYW5zZm9ybT0ndHJhbnNsYXRlKDUwIDApJyBjeD0nMCcgY3k9JzE2JyByPScwJz4gPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ncicgdmFsdWVzPScwOyA0OyAwOyAwJyBkdXI9JzEuMnMnIHJlcGVhdENvdW50PSdpbmRlZmluaXRlJyBiZWdpbj0nMC42JyBrZXl0aW1lcz0nMDswLjI7MC43OzEnIGtleVNwbGluZXM9JzAuMiAwLjIgMC40IDAuODswLjIgMC42IDAuNCAwLjg7MC4yIDAuNiAwLjQgMC44JyBjYWxjTW9kZT0nc3BsaW5lJyAvPjwvY2lyY2xlPjwvc3ZnPg==) !important;
+ background-position: center !important;
+ background-repeat: no-repeat !important;
+ background-size: 100% 100%;
+
}
#autopatchwork_bar.autopager_loading img {
diff --git a/css/manager.css b/css/manager.css
index 0852d91..9c0af48 100644
--- a/css/manager.css
+++ b/css/manager.css
@@ -161,6 +161,8 @@ body,ul,ol,dl,li,dd,dt,p,div,h1,h2,h3,h4,h5,h6 {
}
.name {
+ padding: 0;
+ margin: 0;
max-width: 640px;
width: 640px;
}
@@ -188,7 +190,7 @@ body,ul,ol,dl,li,dd,dt,p,div,h1,h2,h3,h4,h5,h6 {
border: 1px solid #aaa;
cursor: pointer;
width: 100%;
- height: 100%;
+ height: 120%;
margin: 0;
text-overflow: ellipsis;
}
@@ -350,7 +352,6 @@ th[colspan="6"]+th {
border-right: 2px solid #BBB;
padding: 3px;
overflow: hidden;
- text-align: center;
line-height: 38px;
font-size: 14px;
font-weight: bold;
@@ -359,7 +360,7 @@ th[colspan="6"]+th {
}
#progress {
- position: absolute;
+ text-align: center;
-webkit-transition: all 0.3s ease;
-moz-transition: all 0.3s ease;
-ms-transition: all 0.3s ease;
@@ -385,50 +386,48 @@ th[colspan="6"]+th {
/* W3C */
overflow: hidden;
z-index: 1002;
+ position: absolute;
+ left: 3px;
}
-#done {
+#progress_percent {
text-align: center;
line-height: 38px;
font-size: 14px;
font-weight: bold;
- color: #EEE;
+ color: #777;
height: 38px;
- width: 250px;
- text-shadow: 0px -1px 0px rgba(0, 0, 0, 0.2);
- z-index: 1003;
+ width: 256px;
+ z-index: 1010;
+ position: absolute;
+ left: 3px;
}
td.index {
padding: 0px 3px;
}
-span.onoff,
-input.onoff {
+.onoff {
color: #000;
- background-color: #E6E6E6;
+ background-color: #B6B6B6;
}
-span.disable_separator,
-input.disable_separator {
+.disable_separator {
color: #000;
background-color: #A9D0F5;
}
-span.scripts_enable,
-input.scripts_enable {
+.scripts_enable {
color: #000;
background-color: #F2F5A9;
}
-span.force_iframe,
-input.force_iframe {
+.force_iframe {
color: #000;
background-color: #F5D0A9;
}
-span.address_change,
-input.address_change {
+.address_change {
color: #000;
background-color: #D0F5A9;
}
diff --git a/includes/autopatchwork.js b/includes/autopatchwork.js
index f407775..36e6b53 100644
--- a/includes/autopatchwork.js
+++ b/includes/autopatchwork.js
@@ -48,7 +48,7 @@
}
};
- var browser, checksum = new FastCRC32, debug = false, profiler = false, dump_request = false,
+ var browser_type, checksum = new FastCRC32, debug = false, profiler = false, dump_request = false,
BROWSER_CHROME = 1,
BROWSER_SAFARI = 2,
BROWSER_OPERA = 3;
@@ -101,9 +101,9 @@
id: -1
};
- if ((!!window.chrome && !!window.chrome.webstore) || (typeof InstallTrigger !== 'undefined')) browser = BROWSER_CHROME;
- else if (Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0) browser = BROWSER_SAFARI;
- else browser = BROWSER_OPERA;
+ if ((!!window.chrome && !!window.chrome.runtime) || (typeof InstallTrigger !== 'undefined')) browser_type = BROWSER_CHROME;
+ else if (Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0) browser_type = BROWSER_SAFARI;
+ else browser_type = BROWSER_OPERA;
function APWException(message) {
this.message = message;
@@ -133,7 +133,7 @@
if (!debug) return;
if (window.console) {
console.log('[AutoPatchWork] ' + Array.prototype.slice.call(arguments));
- } else if (browser === BROWSER_OPERA) {
+ } else if (browser_type === BROWSER_OPERA) {
window.opera.postError('[AutoPatchWork] ' + Array.prototype.slice.call(arguments));
}
}
@@ -248,7 +248,7 @@
//else return doc.selectSingleNode(path);
}
- if (browser === BROWSER_OPERA && !APW.loaded) {
+ if (!APW.loaded) {
var args = arguments;
document.addEventListener('DOMContentLoaded', function (e) {
APW.loaded = true;
@@ -258,7 +258,7 @@
}
var sendRequest;
- switch (browser) {
+ switch (browser_type) {
case BROWSER_CHROME:
sendRequest = function (data, callback) {
if (callback) chrome.runtime.sendMessage(data, callback);
@@ -299,7 +299,7 @@
default:
sendRequest = null;
throw new APWException('Browser not detected!');
- } // switch(browser)
+ } // switch(browser_type)
var matched_siteinfo = [],
rootNode = /BackCompat/.test(document.compatMode) ? document.body : document.documentElement;
@@ -416,8 +416,9 @@
status.css_patch = siteinfo.cssPatch || null;
status.js_patch = siteinfo.jsPatch || null;
- if (status.js_patch)
+ if (status.js_patch) {
run_script(status.js_patch);
+ }
status.next_link = siteinfo.nextLink || null;
status.next_link_selector = siteinfo.nextLinkSelector || null;
@@ -609,12 +610,12 @@
dispatch_event('AutoPatchWork.toggle');
}
- //if (browser === BROWSER_OPERA) { // test :before + background-image: url(animated SVG) in CSS for other browsers
+ if (browser_type === BROWSER_OPERA) { // :before + background-image: url(animated SVG) in CSS for other browsers
var img = document.createElement('img');
img.id = 'autopatchwork_loader';
img.src = 'data:image/svg+xml,';
bar.appendChild(img);
- //}
+ }
document.body.appendChild(bar);
bar.addEventListener('click', function (e) {
@@ -1022,8 +1023,13 @@
* */
function run_script(text) {
try {
- if (text && text.length > 1)
- window.eval(text);
+ if (text && text.length > 1) {
+ var script = document.createElement('script');
+ script.textContent = text;
+ (document.head || document.documentElement).appendChild(script);
+ script.remove();
+ //window.eval(text);
+ }
} catch (bug) {
log(bug.message);
}
diff --git a/manifest.json b/manifest.json
index ce6ac48..f0160a0 100644
--- a/manifest.json
+++ b/manifest.json
@@ -9,7 +9,7 @@
"run_at": "document_start",
"all_frames":true
} ],
- "content_security_policy": "script-src 'self' chrome-extension://cfkhagomglmfbenelkfgkglfhbhncilb; object-src 'self' chrome-extension://cfkhagomglmfbenelkfgkglfhbhncilb",
+ "content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'",
"default_locale": "en_US",
"icons": {
"16": "icons/Icon-16.png",
@@ -25,7 +25,7 @@
},
"description": "Automatically loads the next page and inserts into current one.",
"name": "AutoPatchWorkMod",
- "permissions": [ "unlimited_storage", "tabs", "management", "desktop-notification", "notifications"],
+ "permissions": [ "unlimited_storage", "tabs", "management", "notifications" ],
"optional_permissions": [ "storage" ],
"options_ui": {
"page": "options.html"
diff --git a/options.html b/options.html
index 824620a..31387b0 100644
--- a/options.html
+++ b/options.html
@@ -252,6 +252,30 @@
2013/09/01
All events targeted to document instead of window.
+ 2016/07/07
+
+ -
+ Firefox 48 and Chrome 49 support.
+
+ -
+ removeElement removes nodes in added pages by selector or XPath rule, jsPatch field allows per site JS patching and cssPatch - CSS patching.
+
+ -
+ Options in SITEINFO manager to disable separators, allow scripts, load pages via IFrames and update URL/title on scroll.
+
+ -
+ Options to make link hrefs and image srcs absolute.
+
+ -
+ SITEINFO database URLs can now be specified.
+
+ -
+ SITEINFO DB can be reloaded to apply changes made in manager without browser restart.
+
+ -
+ Various bugfixes.
+
+
diff --git a/scripts/background.js b/scripts/background.js
index 2ceb4a6..0e77885 100644
--- a/scripts/background.js
+++ b/scripts/background.js
@@ -35,14 +35,14 @@ const MICROFORMATs = [/*{
pageElement: '//*[contains(concat(" ",@class," "), " hfeed ") or contains(concat(" ",@class," "), " story ") or contains(concat(" ",@class," "), " instapaper_body ") or contains(concat(" ",@class," "), " xfolkentry ")]'
}*/];
-var browser,
+var browser_type,
BROWSER_CHROME = 1,
BROWSER_SAFARI = 2,
BROWSER_OPERA = 3;
-if((!!window.chrome && !!window.chrome.webstore) || (typeof InstallTrigger !== 'undefined')) browser = BROWSER_CHROME;
-else if(Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0) browser = BROWSER_SAFARI;
-else browser = BROWSER_OPERA;
+if((!!window.chrome && !!window.chrome.runtime) || (typeof InstallTrigger !== 'undefined')) { browser_type = BROWSER_CHROME; if (typeof browser === 'undefined') browser = chrome; }
+else if(Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0) browser_type = BROWSER_SAFARI;
+else browser_type = BROWSER_OPERA;
/**
* Logging function.
@@ -50,7 +50,7 @@ else browser = BROWSER_OPERA;
* */
function log() {
if (!debug) return;
- if (browser === BROWSER_OPERA) {
+ if (browser_type === BROWSER_OPERA) {
window.opera.postError('[AutoPatchWork] ' + Array.prototype.slice.call(arguments));
} else if (window.console) {
window.console.log('[AutoPatchWork] ' + Array.prototype.slice.call(arguments));
@@ -132,7 +132,7 @@ window.AutoPatchWorkBG = {
//// main //////
-if(browser === BROWSER_SAFARI) {
+if(browser_type === BROWSER_SAFARI) {
safari.extension.settings.addEventListener('change', function(evt) {
if(evt.key in AutoPatchWorkBG.config) {
AutoPatchWorkBG.config[evt.key] = evt.newValue;
@@ -338,8 +338,8 @@ window.onload = function() {
group: 'AutoPatchWork',
actions: [{ name: 'AutoPatchWork.toggle' }, { name: 'AutoPatchWork.request' }]
};
- //self.chrome && chrome.runtime.sendMessage(CHROME_GESTURES, action);
- //self.chrome && chrome.runtime.sendMessage(CHROME_KEYCONFIG, action);
+ //self.chrome && browser.runtime.sendMessage(CHROME_GESTURES, action);
+ //self.chrome && browser.runtime.sendMessage(CHROME_KEYCONFIG, action);
};
var toggleCode = '(' + (function() {
@@ -347,9 +347,9 @@ var toggleCode = '(' + (function() {
document.dispatchEvent(ev);
}).toString() + ')();';
-switch(browser) {
+switch(browser_type) {
case BROWSER_CHROME:
- chrome.runtime.onMessage.addListener(handleMessage);
+ browser.runtime.onMessage.addListener(handleMessage);
break;
case BROWSER_SAFARI:
safari.application.addEventListener("message", function(evt) {
@@ -508,21 +508,20 @@ function handleMessage(request, sender, sendResponse) {
}
function openOrFocusTab(uri) {
- switch (browser) {
+ switch (browser_type) {
case BROWSER_CHROME:
- chrome.windows.getAll({ populate: true},
- function(windows) {
- if(!windows.some(function(w) {
- if(w.type === 'normal') {
+ browser.windows.getAll({ populate: true}, function(windows) {
+ if (!windows.some(function(w) {
+ if (w.type === 'normal') {
return w.tabs.some(function(t) {
- if(t.url === H + uri) {
- chrome.tabs.update(t.id, { 'selected': true });
+ if (t.url === H + uri) {
+ browser.tabs.update(t.id, { 'selected': true });
return true;
}
});
}
- })) { chrome.tabs.getSelected(null, function(t) {
- chrome.tabs.create({ 'url': uri, 'selected': true, index: t.index + 1 });
+ })) { browser.tabs.query({active: true}, function(t) {
+ browser.tabs.create({ 'url': uri, index: (t[0] ? t[0].index : 0) + 1 });
});
}
});
diff --git a/scripts/manager.js b/scripts/manager.js
index 3b43cc9..5b1f58e 100644
--- a/scripts/manager.js
+++ b/scripts/manager.js
@@ -75,7 +75,7 @@ var RECORDS_PER_PAGE = 100,
return !element.dispatchEvent(evt);
}
- var browser,
+ var browser_type,
BROWSER_CHROME = 1,
BROWSER_SAFARI = 2,
BROWSER_OPERA = 3;
@@ -87,13 +87,13 @@ var RECORDS_PER_PAGE = 100,
entry_editor_running = false,
stop_pager = false;
- if((!!window.chrome && !!window.chrome.webstore) || (typeof InstallTrigger !== 'undefined')) browser = BROWSER_CHROME;
- else if(Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0) browser = BROWSER_SAFARI;
- else browser = BROWSER_OPERA;
+ if((!!window.chrome && !!window.chrome.runtime) || (typeof InstallTrigger !== 'undefined')) { browser_type = BROWSER_CHROME; if (typeof browser === 'undefined') browser = chrome; }
+ else if(Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0) browser_type = BROWSER_SAFARI;
+ else browser_type = BROWSER_OPERA;
function log() {
if (!debug) return;
- if (browser === BROWSER_OPERA) {
+ if (browser_type === BROWSER_OPERA) {
window.opera.postError('[AutoPatchWork] ' + Array.prototype.slice.call(arguments));
} else if (window.console) {
console.log('[AutoPatchWork] ' + Array.prototype.slice.call(arguments));
@@ -101,7 +101,7 @@ var RECORDS_PER_PAGE = 100,
}
// Init browser-specific messaging
- switch (browser) {
+ switch (browser_type) {
case BROWSER_SAFARI:
if (bgProcess) break;
safari.self.tab.dispatchMessage('siteinfo_init');
@@ -110,7 +110,7 @@ var RECORDS_PER_PAGE = 100,
case BROWSER_OPERA:
bgProcess = bgProcess || opera.extension.bgProcess;
case BROWSER_CHROME:
- bgProcess = bgProcess || chrome.extension.getBackgroundPage();
+ bgProcess = bgProcess || browser.extension.getBackgroundPage();
}
if (!bgProcess) {
@@ -682,7 +682,8 @@ var RECORDS_PER_PAGE = 100,
var url = JSON_SITEINFO_DB,
xhr = new XMLHttpRequest(),
progressbar = document.getElementById('progressbar'),
- progress = document.getElementById('progress');
+ progress = document.getElementById('progress'),
+ progress_percent = document.getElementById('progress_percent');
progressbar.style.display = 'block';
progress.style.width = '0%';
@@ -698,7 +699,7 @@ var RECORDS_PER_PAGE = 100,
return;
}
- progress.style.width = '100%';
+ progress_percent.textContent = 'Done!';
setTimeout(function(){ progressbar.style.display = 'none'; }, 600);
callback(d);
@@ -709,11 +710,17 @@ var RECORDS_PER_PAGE = 100,
};
xhr.onprogress = function(evt) {
+ if (!evt.lengthComputable) {
+ xhr.onprogress = null;
+ return;
+ }
var percent = Math.min(parseInt(100 * evt.loaded / evt.total, 10), 100);
+ if (isNaN(percent)) return;
+ progress_percent.textContent = percent + '%';
progress.style.width = percent + '%';
};
- xhr.open('GET', url += ((/\?/).test(url) ? "&" : "?") + (new Date()).getTime(), true);
+ xhr.open('GET', url, true); // URL can be updated to +?time in preferences in case something happens
xhr.send(null);
}
diff --git a/scripts/options.js b/scripts/options.js
index 79c668f..0c642eb 100644
--- a/scripts/options.js
+++ b/scripts/options.js
@@ -11,14 +11,14 @@ var imageCross = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf
//var imgSave =
// 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAH+SURBVBgZBcE9i11VGAbQtc/sO0OCkqhghEREAwpWAWUg8aMVf4KFaJEqQtAipTZWViKiCGOh2Ap2gmJhlSIWFsFOxUK0EsUM3pl79n4f12qHb3z3Fh7D83gC95GOJsDe0ixLk5Qq/+xv/Lw9Xd+78/HLX3Y8fXTr2nWapy4eCFKxG7Fby97SnDlYtMbxthyfzHO//nl85fNvfvnk8MbX5xa8IHx1518Vkrj54Q+qQms2vVmWZjdiu5ZR2rT01166/NCZg/2PFjwSVMU6yjoC1oq+x6Y3VbHdlXWExPd379nf7Nmejv2Os6OC2O4KLK0RNn3RNCdr2Z5GJSpU4o+/TkhaJ30mEk5HwNuvX7Hpi76wzvjvtIwqVUSkyjqmpHS0mki8+9mPWmuWxqYvGkbFGCUAOH/+QevYI9GFSqmaHr5wkUYTAlGhqiRRiaqiNes6SOkwJwnQEqBRRRJEgkRLJGVdm6R0GLMQENE0EkmkSkQSVVMqopyuIaUTs0J455VLAAAAAODW0U/GiKT0pTWziEj44PZ1AAAAcPPqkTmH3QiJrlEVDXDt0qsAAAAAapa5BqUnyaw0Am7//gUAAAB49tEXzTmtM5KkV/y2G/X4M5fPao03n/sUAAAAwIX7y5yBv9vhjW/fT/IkuSp5gJKElKRISYoUiSRIyD1tufs/IXxui20QsKIAAAAASUVORK5CYII=';
var imgLoad = 'data:image/gif;base64,R0lGODlhEAAQAPIAAP///wAAAMLCwkJCQgAAAGJiYoKCgpKSkiH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAEAAQAAADMwi63P4wyklrE2MIOggZnAdOmGYJRbExwroUmcG2LmDEwnHQLVsYOd2mBzkYDAdKa+dIAAAh+QQJCgAAACwAAAAAEAAQAAADNAi63P5OjCEgG4QMu7DmikRxQlFUYDEZIGBMRVsaqHwctXXf7WEYB4Ag1xjihkMZsiUkKhIAIfkECQoAAAAsAAAAABAAEAAAAzYIujIjK8pByJDMlFYvBoVjHA70GU7xSUJhmKtwHPAKzLO9HMaoKwJZ7Rf8AYPDDzKpZBqfvwQAIfkECQoAAAAsAAAAABAAEAAAAzMIumIlK8oyhpHsnFZfhYumCYUhDAQxRIdhHBGqRoKw0R8DYlJd8z0fMDgsGo/IpHI5TAAAIfkECQoAAAAsAAAAABAAEAAAAzIIunInK0rnZBTwGPNMgQwmdsNgXGJUlIWEuR5oWUIpz8pAEAMe6TwfwyYsGo/IpFKSAAAh+QQJCgAAACwAAAAAEAAQAAADMwi6IMKQORfjdOe82p4wGccc4CEuQradylesojEMBgsUc2G7sDX3lQGBMLAJibufbSlKAAAh+QQJCgAAACwAAAAAEAAQAAADMgi63P7wCRHZnFVdmgHu2nFwlWCI3WGc3TSWhUFGxTAUkGCbtgENBMJAEJsxgMLWzpEAACH5BAkKAAAALAAAAAAQABAAAAMyCLrc/jDKSatlQtScKdceCAjDII7HcQ4EMTCpyrCuUBjCYRgHVtqlAiB1YhiCnlsRkAAAOwAAAAAAAAAAAA==';
-var browser,
+var browser_type,
BROWSER_CHROME = 1,
BROWSER_SAFARI = 2,
BROWSER_OPERA = 3;
-if((!!window.chrome && !!window.chrome.webstore) || (typeof InstallTrigger !== 'undefined')) browser = BROWSER_CHROME;
-else if(Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0) browser = BROWSER_SAFARI;
-else browser = BROWSER_OPERA;
+if((!!window.chrome && !!window.chrome.runtime) || (typeof InstallTrigger !== 'undefined')) { browser_type = BROWSER_CHROME; if (typeof browser === 'undefined') browser = chrome; }
+else if(Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0) browser_type = BROWSER_SAFARI;
+else browser_type = BROWSER_OPERA;
// main
document.addEventListener('DOMContentLoaded',function(){
@@ -34,9 +34,9 @@ document.addEventListener('DOMContentLoaded',function(){
this.name = "[AutoPatchWork]";
}
- switch (browser) {
+ switch (browser_type) {
case BROWSER_CHROME:
- bgProcess = chrome.extension.getBackgroundPage();
+ bgProcess = browser.extension.getBackgroundPage();
AutoPatchWork = bgProcess.AutoPatchWorkBG;
break;
case BROWSER_SAFARI:
@@ -92,7 +92,7 @@ document.addEventListener('DOMContentLoaded',function(){
var WIDTH = 700;
var HEIGHT = Math.max(window.innerHeight - 100, 500);
- var i18n = browser === BROWSER_CHROME ? chrome.i18n : this.safari ? {
+ var i18n = browser_type === BROWSER_CHROME ? browser.i18n : this.safari ? {
getAcceptLanguages: function() {},
getMessage: function() {}
} : {
@@ -110,8 +110,10 @@ document.addEventListener('DOMContentLoaded',function(){
var elems = document.querySelectorAll('*[class^="MSG_"]');
Array.prototype.forEach.call(elems, function(node) {
var key = node.className.match(/MSG_(\w+)/)[1];
- var message = i18n.getMessage(key);
- if(message) node.textContent = message;
+ try {
+ var message = i18n.getMessage(key);
+ if(message) node.textContent = message;
+ } catch(bug) {}
});
}
L10N();
@@ -119,11 +121,11 @@ document.addEventListener('DOMContentLoaded',function(){
// General settings tab
var open_siteinfo_manager = document.getElementById('open_siteinfo_manager');
open_siteinfo_manager.addEventListener('click', function(e) {
- switch (browser) {
+ switch (browser_type) {
case BROWSER_CHROME:
- window.chrome.tabs.getCurrent(function(tab) {
- chrome.tabs.update(tab.id, { url: "siteinfo_manager.html" });
- });
+ browser.tabs.query({active: true}, function(t) {
+ browser.tabs.create({ 'url': 'siteinfo_manager.html', index: (t[0] ? t[0].index : 0) + 1 });
+ });
break;
case BROWSER_SAFARI:
safari.self.tab.dispatchMessage('options', { manage: true });
diff --git a/siteinfo_manager.html b/siteinfo_manager.html
index a0f1dba..bb4e2d5 100644
--- a/siteinfo_manager.html
+++ b/siteinfo_manager.html
@@ -51,10 +51,8 @@ AutoPatchWorkMod SITEINFO Manager
-
- Loading...
+
Loading...
+