
Untitled
By: a guest on
May 7th, 2012 | syntax:
None | size: 1.50 KB | hits: 14 | expires: Never
// ==UserScript==
// @name View Add-on Compatibility Reports
// @namespace http://userscripts.org/scripts/show/61398
// @version 0.1
// @description Adds a link to add-on compatibility reports to addons.mozilla.org.
// @include https://addons.mozilla.org/*
// @include https://preview.addons.mozilla.org/*
// @author http://userscripts.org/users/fcp
// @license This program is in the public domain.
// ==/UserScript==
void function(){
function encodeAsFormValue(s)
{
return s.replace(/[\x00-\x1F!\"#\$%&\'\(\)\*\+,\/\:;<=>\?@\[\\\]\^`\{\|\}]/g, function(str){
var code = str.charCodeAt(0);
if (code <= 0x0F)
return '%0' + code.toString(16).toUpperCase();
else
return '%' + code.toString(16).toUpperCase();
}).replace(/ /g, '+');
}
var found = location.href.match(/^https:\/\/[^\/]+\/([^\/?#]+)\/([^\/?#]+)\/addon\/.*\/?$/);
if (!found)
return;
var lang = found[1];
var application = found[2];
let button = document.querySelector("#addon-summary .install-button a");
if (!button) return;
var addonid = button.href.match(/\d+/).toString();
var parent = button.parentNode.parentNode.parentNode
var div = parent.appendChild(document.createElement("div"));
var a = div.appendChild(document.createElement('a'));
a.href = '/' + lang + '/' + application + '/compatibility/reporter?guid=' + encodeAsFormValue(addonid);
a.className = "button";
a.appendChild(document.createTextNode('View compatibility reports'));
}();