summaryrefslogtreecommitdiff
path: root/data/extensions/SubmitMe@0xbeef.coffee
diff options
context:
space:
mode:
Diffstat (limited to 'data/extensions/SubmitMe@0xbeef.coffee')
-rw-r--r--data/extensions/SubmitMe@0xbeef.coffee/META-INF/manifest.mf32
-rw-r--r--data/extensions/SubmitMe@0xbeef.coffee/META-INF/mozilla.rsabin4179 -> 4179 bytes
-rw-r--r--data/extensions/SubmitMe@0xbeef.coffee/META-INF/mozilla.sf4
-rw-r--r--data/extensions/SubmitMe@0xbeef.coffee/background.js37
-rw-r--r--data/extensions/SubmitMe@0xbeef.coffee/improve_css.js81
-rw-r--r--data/extensions/SubmitMe@0xbeef.coffee/main.js90
-rw-r--r--data/extensions/SubmitMe@0xbeef.coffee/manifest.json17
-rw-r--r--data/extensions/SubmitMe@0xbeef.coffee/manual.js3
-rw-r--r--data/extensions/SubmitMe@0xbeef.coffee/passive_improve_css.js (renamed from data/extensions/SubmitMe@0xbeef.coffee/passive_read_css.js)44
-rw-r--r--data/extensions/SubmitMe@0xbeef.coffee/unhide_css.js34
10 files changed, 178 insertions, 164 deletions
diff --git a/data/extensions/SubmitMe@0xbeef.coffee/META-INF/manifest.mf b/data/extensions/SubmitMe@0xbeef.coffee/META-INF/manifest.mf
index 1ccb4fa..3589f61 100644
--- a/data/extensions/SubmitMe@0xbeef.coffee/META-INF/manifest.mf
+++ b/data/extensions/SubmitMe@0xbeef.coffee/META-INF/manifest.mf
@@ -2,38 +2,38 @@ Manifest-Version: 1.0
Name: background.js
Digest-Algorithms: MD5 SHA1
-MD5-Digest: yOmX7/EYGE2ebtW7aUDNew==
-SHA1-Digest: FvWWJT+WhZhSelwxj2zC5eFucrU=
+MD5-Digest: YzgZsc8pIzxKQl3hOSbXbA==
+SHA1-Digest: vRFNa8dD6SIYJLe76PyyxBAhjwM=
Name: improve_css.js
Digest-Algorithms: MD5 SHA1
-MD5-Digest: PS8vNsUriICqQ1WeOCUhyA==
-SHA1-Digest: NEWrN1owkMMsfRpgLN5BqEps0Do=
+MD5-Digest: r9yCr5Gq9KKGCBAqchqckg==
+SHA1-Digest: DFhj5jTJVXhfEE7HVUz6h7JHd1E=
Name: License
Digest-Algorithms: MD5 SHA1
MD5-Digest: Gm39a/qnCG3uf9EcuPBVMw==
SHA1-Digest: RuxC7X//13rkWB4UkyLaA8pFg+0=
-Name: manifest.json
+Name: main.js
Digest-Algorithms: MD5 SHA1
-MD5-Digest: 3Lqk7XeEqp3xKeiutlxEfw==
-SHA1-Digest: ZGi6NqcobGpS1RvvyvRjw0UIsNc=
+MD5-Digest: X8CEMRmGQ5jvunlVTVnsZg==
+SHA1-Digest: hK5Y/HSqA/pK/eLQEmuejONMQxU=
-Name: manual.js
+Name: manifest.json
Digest-Algorithms: MD5 SHA1
-MD5-Digest: F4FUSlFT+SzwwhVIs2cITg==
-SHA1-Digest: Ni3IUAVvHRFU6fm9oSkajGDeNW8=
+MD5-Digest: yhzzahp5eeg93Blz91q/iQ==
+SHA1-Digest: KC5MD4gPIS5Unps8mu4jJXjLxm0=
-Name: passive_read_css.js
+Name: manual.js
Digest-Algorithms: MD5 SHA1
-MD5-Digest: EazQ7CozhixAv9FFyTn7nw==
-SHA1-Digest: giclPy4jXtWSxDt7qUg32WvxESI=
+MD5-Digest: M7TpHu8tKcYU2fl+boykHQ==
+SHA1-Digest: e+zLK1abhJu6+FZWIkIT7x5C9Rg=
-Name: unhide_css.js
+Name: passive_improve_css.js
Digest-Algorithms: MD5 SHA1
-MD5-Digest: r9yCr5Gq9KKGCBAqchqckg==
-SHA1-Digest: DFhj5jTJVXhfEE7HVUz6h7JHd1E=
+MD5-Digest: TxFaHuoWzq38nMMN6imFxA==
+SHA1-Digest: 1L1plvtA+xaZuEcXOQE7+bnpDSs=
Name: icons/16x16.png
Digest-Algorithms: MD5 SHA1
diff --git a/data/extensions/SubmitMe@0xbeef.coffee/META-INF/mozilla.rsa b/data/extensions/SubmitMe@0xbeef.coffee/META-INF/mozilla.rsa
index e336502..d183fb3 100644
--- a/data/extensions/SubmitMe@0xbeef.coffee/META-INF/mozilla.rsa
+++ b/data/extensions/SubmitMe@0xbeef.coffee/META-INF/mozilla.rsa
Binary files differ
diff --git a/data/extensions/SubmitMe@0xbeef.coffee/META-INF/mozilla.sf b/data/extensions/SubmitMe@0xbeef.coffee/META-INF/mozilla.sf
index 4128f11..02f1f99 100644
--- a/data/extensions/SubmitMe@0xbeef.coffee/META-INF/mozilla.sf
+++ b/data/extensions/SubmitMe@0xbeef.coffee/META-INF/mozilla.sf
@@ -1,4 +1,4 @@
Signature-Version: 1.0
-MD5-Digest-Manifest: CvxK+uwwFskwpo9Ijs5/Fw==
-SHA1-Digest-Manifest: kHWL8c6NlQeffAU7mUUCnAnGUmM=
+MD5-Digest-Manifest: HYCCiuYf1Buzo/U4eILZoA==
+SHA1-Digest-Manifest: ewIhLeejMTMu3zA1aDjOdwk8WlM=
diff --git a/data/extensions/SubmitMe@0xbeef.coffee/background.js b/data/extensions/SubmitMe@0xbeef.coffee/background.js
index 31688d5..e6403ef 100644
--- a/data/extensions/SubmitMe@0xbeef.coffee/background.js
+++ b/data/extensions/SubmitMe@0xbeef.coffee/background.js
@@ -10,7 +10,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
console.log("background.js");
var not_executing = true;
-
+//passive_fix_css();
var notify_id = "submit-me";
function display_multiple_forms(){
@@ -30,16 +30,21 @@ function display_single_form(){
"message": "The website uses a submit button outside of a form.<br> Please select which form you would like to attempt to submit."
});
};
-/*
+
browser.contextMenus.create({
id: "submit-me",
title: "Force submit a form",
contexts: ["all"]
});
-*/
browser.contextMenus.create({
- id: "reveal-css",
- title: "Remove all page's CSS",
+ id: "submit-me-manual",
+ title: "Manually choose a form to submit",
+ contexts: ["all"]
+});
+
+browser.contextMenus.create({
+ id: "submit-me-css",
+ title: "Remove all CSS (Try this if the website is scrambled)",
contexts: ["all"]
});
@@ -60,17 +65,19 @@ function display_manual_dialog(){
executing.then(onExecuted, onError);
}
-function passive_read_css(){
+function passive_fix_css(){
function onExecuted(result) {
- console.log("passive_read_css.js executed.");
+ console.log("passive_improve_css.js executed.");
+ //not_executing = true;
}
function onError(error) {
- console.log("Error in passive_read_css.js");
+ //not_executing = true;
+ console.log("Error in passive_improve_css.js");
console.log(error);
}
var executing = browser.tabs.executeScript({
- file: "/passive_read_css.js",
+ file: "/passive_improve_css.js",
allFrames: true
});
//not_executing = false;
@@ -79,17 +86,17 @@ function passive_read_css(){
function fix_css(){
function onExecuted(result) {
- console.log("unhide_css.js executed.");
+ console.log("improve_css.js executed.");
not_executing = true;
}
function onError(error) {
- console.log("Error in unhide_css.js");
+ console.log("Error in improve_css.js");
console.log(error);
not_executing = true;
}
var executing = browser.tabs.executeScript({
- file: "/unhide_css.js",
+ file: "/improve_css.js",
allFrames: true
});
not_executing = false;
@@ -124,13 +131,12 @@ browser.pageAction.onClicked.addListener(function(info, tab) {
browser.contextMenus.onClicked.addListener(function(info, tab) {
console.log(info);
- /*
if(info.menuItemId == "submit-me-manual" && not_executing){
not_executing = false;
display_manual_dialog();
}
- */
- if(info.menuItemId == "reveal-css" && not_executing){
+
+ if(info.menuItemId == "submit-me-css" && not_executing){
not_executing = false;
fix_css();
}
@@ -154,6 +160,5 @@ browser.contextMenus.onClicked.addListener(function(info, tab) {
}
});
-passive_read_css();
// https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/contextMenus/create
diff --git a/data/extensions/SubmitMe@0xbeef.coffee/improve_css.js b/data/extensions/SubmitMe@0xbeef.coffee/improve_css.js
index 5e973e3..d7467b6 100644
--- a/data/extensions/SubmitMe@0xbeef.coffee/improve_css.js
+++ b/data/extensions/SubmitMe@0xbeef.coffee/improve_css.js
@@ -9,71 +9,26 @@ The above copyright notice and this permission notice shall be included in all c
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL NATHAN NICHOLS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-
-
-function unescapeHTML (unsafe_str) {
- return unsafe_str
- .replace(/&amp;/g, '&')
- .replace(/&lt;/g, '<')
- .replace(/&gt;/g, '>')
- .replace(/&quot;/g, '\"')
- .replace(/\&#39;/g, '\'')
- .replace(/&#x2F/g, '\/')
+console.log("improve_css.js");
+var a = document.getElementsByTagName("link");
+
+for(var i = 0; i < a.length; i++){
+ try{
+ if(a[i].href.indexOf(".css") != -1){
+ a[i].remove();
+ }
+ } catch(e){
+ console.log(e);// really don't care too much
+ }
}
+var b = document.getElementsByTagName("style");
-function escapeHTML (unsafe_str) {
- return unsafe_str
- .replace(/&/g, '&amp;')
- .replace(/</g, '&lt;')
- .replace(/>/g, '&gt;')
- .replace(/\"/g, '&quot;')
- .replace(/\'/g, '&#39;')
- .replace(/\//g, '&#x2F;')
-}
-
-console.log("passive_improve_css.js");
-var content;
-function replace_regex(){
- content = content.replace(/type\s*\=\s*("|')\s*hidden\s*\1\s*;/g,""); // type=hidden (HTML inputs can have this);
- content = content.replace(/display\s*:\s*none/g,""); // display:none ()
- content = content.replace(/visibility\s*:\s*hidden/g,""); // visibility: hidden
- document.documentElement.innerHTML = "<html>"+content+"</html>";
+for(var i = 0; i < b.length; i++){
+ try{
+ b[i].remove();
+ } catch(e){
+ console.log(e);// really don't care too much
+ }
}
-function reveal_css(){
-// content = escapeHTML(document.documentElement.innerHTML);
- content = document.documentElement.innerHTML;
- var a = content.match(/type\s*\=\s*("|')\s*hidden\s*\1\s*;/g); // type=hidden (HTML inputs can have this);
- var b = content.match(/display\s*:\s*none/g); // display:none
- var c = content.match(/visibility\s*:\s*hidden/g); // visibility: hidden
-
- if(a === null){a = 0;}else{a = a.length;}
- if(b === null){b = 0;}else{b = b.length;}
- if(c === null){c = 0;}else{c = c.length;}
- var to_insert = '<div style="opacity: 0.5; font-size: small; z-index: 2147483647; position: fixed; right: 1%; top: 4%;" id="abc123_main_div"><input id="abc123_reveal_button" value="Click to reveal hidden elements"type="button"></input><br><input id="abc123_rm_buttons" value="remove buttons" type="button"></input></div>';
- document.body.insertAdjacentHTML('afterbegin', to_insert);
- document.getElementById("abc123_reveal_button").addEventListener("click",function(){
- replace_regex();
- document.getElementById("abc123_reveal_button").remove();
- });
- document.getElementById("abc123_rm_buttons").addEventListener("click",function(){
- document.getElementById("abc123_rm_buttons").remove();
- document.getElementById("abc123_reveal_button").remove();
- document.getElementById("abc123_main_div").remove();
- });
- //if(a+b+c >= 1 && window.confirm("Hidden HTML detected, would you like to reveal it?")){
-
- return 0;
-}
-
-reveal_css();
-
-
-/*
-var a = document.getElementsByTagName("style")[2];
-var btn = document.createElement("style"); // Create a <button> element
-var t = document.createTextNode("body{display:inline !important;}"); // Create a text node
-btn.appendChild(t); // Append the text to <button>
-a.insertAdjacentElement("beforeBegin",btn);
-*/
diff --git a/data/extensions/SubmitMe@0xbeef.coffee/main.js b/data/extensions/SubmitMe@0xbeef.coffee/main.js
new file mode 100644
index 0000000..ecbcbf4
--- /dev/null
+++ b/data/extensions/SubmitMe@0xbeef.coffee/main.js
@@ -0,0 +1,90 @@
+/*
+Copyright (C) 2017 Nathan Nichols
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL NATHAN NICHOLS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
+
+/*
+Explanation:
+
+This add-on was made to combat a reoccuring issue regarding LibreJS forms.
+
+LibreJS tends to flag the onSubmit Javascript of HTML forms. This is because
+this is a logical place to put Ajax requests, which LibreJS considers non-trivial.
+
+*/
+
+browser.runtime.sendMessage({"msg":"add-on-invoked"});
+console.log("main.js");
+
+function tree(forms){
+ var kids;
+ var out_str;
+ for(var i = 0; i < forms.length; i++){
+ kids = [];
+ for(var j = 0; j < forms[i].children.length; j++){
+ if(forms[i].children[j].tagName == "INPUT"){
+ kids.push(forms[i].children[j]);
+ }
+ }
+ out_str += "\nForm number " + (i + 1) + ":";
+ for(var j = 0; j < kids.length; j++){
+ out_str += "\n Item #"+(j+1)+":";
+ out_str += "\n Text:'"+kids[j].innerHTML+"'";
+ out_str += "\n Name:'"+kids[j].name+"'";
+ out_str += "\n Value:'"+kids[j].value+"'";
+ }
+
+ }
+ return out_str;
+}
+
+function get_parent_form(a){
+ console.log(a);
+ if(a === null || a === undefined){
+ return null;
+ }
+ if(a.tagName.toLowerCase() == "form"){
+ return a;
+ }
+ return get_parent_form(a.parentElement);
+};
+
+function force_submit(){
+ console.log("form submitted");
+ return true;
+};
+
+
+var buttons = document.getElementsByTagName("input");
+console.log(buttons);
+
+
+function submit_clicked(){
+ var parent = get_parent_form(this);
+ if(parent === null){
+ console.log("Submit button parent not found: input element outside of form?");
+ var forms = document.getElementsByTagName("form");
+ console.log(forms);
+ if(forms.length == 1){
+ console.log("Only one possible form. Submitting it.")
+ forms[0].submit();
+ } else {
+ browser.runtime.sendMessage({"msg":"multiple-forms"});
+ }
+ } else{
+ console.log("Got parent form of button without error.")
+ console.log(parent);
+ parent.submit();
+ }
+}
+
+for(var i = 0; i < buttons.length; i++){
+ if(buttons[i].type == "submit"){
+ buttons[i].addEventListener("click",submit_clicked);
+ }
+}
diff --git a/data/extensions/SubmitMe@0xbeef.coffee/manifest.json b/data/extensions/SubmitMe@0xbeef.coffee/manifest.json
index 6a75fe7..ac4b604 100644
--- a/data/extensions/SubmitMe@0xbeef.coffee/manifest.json
+++ b/data/extensions/SubmitMe@0xbeef.coffee/manifest.json
@@ -1,9 +1,9 @@
{
"manifest_version": 2,
- "name": "Reveal hidden HTML elements",
- "version": "1.8",
+ "name": "Reveal hidden HTML",
+ "version": "1.6",
"author": "Nathan Nichols",
- "description": "Allows you to force all hidden text on a page to show, and alerts you if it detects a significant amount of hidden text on a page.",
+ "description": "Unhides hidden HTML. Also, has a tool that fixes some websites with broken form validation Javascript by forcing an HTTP post.",
"applications": {
"gecko": {
"id": "SubmitMe@0xbeef.coffee",
@@ -18,13 +18,12 @@
"contextMenus",
"webRequest",
"activeTab",
- "notifications",
- "<all_urls>"
+ "notifications"
],
"content_scripts": [
{
"matches": ["<all_urls>"],
- "js": ["improve_css.js"]
+ "js": ["passive_improve_css.js"]
}],
"page_action": {
"browser_style": true,
@@ -35,10 +34,10 @@
"default_title": "Submit Me",
"default_popup": "popup/popup.html"
},
-
-
"background": {
- "scripts": ["background.js"]
+ "scripts": ["background.js"
+
+ ]
}
}
diff --git a/data/extensions/SubmitMe@0xbeef.coffee/manual.js b/data/extensions/SubmitMe@0xbeef.coffee/manual.js
index 7d4a8cb..2a8a195 100644
--- a/data/extensions/SubmitMe@0xbeef.coffee/manual.js
+++ b/data/extensions/SubmitMe@0xbeef.coffee/manual.js
@@ -1,5 +1,3 @@
-// This file isn't used, I found that it doesn't work very well
-
/*
Copyright (C) 2017 Nathan Nichols
@@ -10,7 +8,6 @@ The above copyright notice and this permission notice shall be included in all c
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL NATHAN NICHOLS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
console.log("manual.js");
-
function tree(forms){
var kids = [];
var out_str = "";
diff --git a/data/extensions/SubmitMe@0xbeef.coffee/passive_read_css.js b/data/extensions/SubmitMe@0xbeef.coffee/passive_improve_css.js
index 09989d2..7692990 100644
--- a/data/extensions/SubmitMe@0xbeef.coffee/passive_read_css.js
+++ b/data/extensions/SubmitMe@0xbeef.coffee/passive_improve_css.js
@@ -21,29 +21,31 @@ function escapeHTML (unsafe_str) {
}
console.log("passive_improve_css.js");
-var content;
-function replace_regex(){
- content = content.replace(/type\s*\=\s*("|')\s*hidden\s*\1\s*;/g,""); // type=hidden (HTML inputs can have this);
- content = content.replace(/display\s*:\s*none/g,""); // display:none ()
- content = content.replace(/visibility\s*:\s*hidden/g,""); // visibility: hidden
- document.documentElement.innerHTML = content;
-}
-
function reveal_css(){
- content = escapeHTML(document.documentElement.innerHTML);
- var a = content.match(/type\s*\=\s*("|')\s*hidden\s*\1\s*;/g); // type=hidden (HTML inputs can have this);
- var b = content.match(/display\s*:\s*none/g); // display:none
- var c = content.match(/visibility\s*:\s*hidden/g); // visibility: hidden
-
- if(a === null){a = 0;}else{a = a.length;}
- if(b === null){b = 0;}else{b = b.length;}
- if(c === null){c = 0;}else{c = c.length;}
-
- if(a+b+c >= 1 && window.confirm("Hidden HTML detected, would you like to reveal it?")){
- replace_regex()
+ var bad = [];
+
+ var elements = document.getElementsByTagName("style");
+ for(var i = 0; i < elements.length; i++){
+ var rules = escapeHTML(elements[i].innerText).replace(/\s/g,'');
+ var j = rules.indexOf("display");
+ if(j != -1){
+ //console.log("j:"+j);
+ var part = rules.substr(j,j+10);
+ //console.log("part:"+part);
+ //console.log("index:"+part.indexOf("none"));
+ if(part.indexOf("none") <= 10 && part.indexOf("none") > 0){
+ //elements[i].remove();
+ bad.push(elements[i]);
+ //console.log("^^^^BAD^^^^")
+ }
+
+ }
+ }
+ if(bad.length > 0 && window.confirm("Hidden HTML detected, would you like to reveal it?")){
+ for(var i = 0; i < bad.length; i++){
+ bad[i].remove();
+ }
}
-
- return 0;
}
reveal_css();
diff --git a/data/extensions/SubmitMe@0xbeef.coffee/unhide_css.js b/data/extensions/SubmitMe@0xbeef.coffee/unhide_css.js
deleted file mode 100644
index d7467b6..0000000
--- a/data/extensions/SubmitMe@0xbeef.coffee/unhide_css.js
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
-
-Copyright (C) 2017 Nathan Nichols
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL NATHAN NICHOLS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-console.log("improve_css.js");
-var a = document.getElementsByTagName("link");
-
-for(var i = 0; i < a.length; i++){
- try{
- if(a[i].href.indexOf(".css") != -1){
- a[i].remove();
- }
- } catch(e){
- console.log(e);// really don't care too much
- }
-}
-
-var b = document.getElementsByTagName("style");
-
-for(var i = 0; i < b.length; i++){
- try{
- b[i].remove();
- } catch(e){
- console.log(e);// really don't care too much
- }
-}
-