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

+
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

\ No newline at end of file