Add-ons Manager - Scriptish Screenshot

[Scriptish only] Show screenshot on Scriptish user script page in Add-ons Manager.

Terá de instalar uma extensão como Tampermonkey, Greasemonkey ou Violentmonkey para instalar este script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

Terá de instalar uma extensão como Tampermonkey ou Violentmonkey para instalar este script.

Terá de instalar uma extensão como Tampermonkey ou Userscripts para instalar este script.

Terá de instalar uma extensão como Tampermonkey para instalar este script.

Terá de instalar uma extensão de gestão de scripts de utilizador para instalar este script.

(Já tenho um gestor de scripts de utilizador, deixe-me instalá-lo!)

Terá de instalar uma extensão como Stylus para instalar este estilo.

Terá de instalar uma extensão como Stylus para instalar este estilo.

Terá de instalar uma extensão como Stylus para instalar este estilo.

Terá de instalar uma extensão de gestão de estilos de utilizador para instalar este estilo.

Terá de instalar uma extensão de gestão de estilos de utilizador para instalar este estilo.

Terá de instalar uma extensão de gestão de estilos de utilizador para instalar este estilo.

(Já tenho um gestor de estilos de utilizador, deixe-me instalá-lo!)

/*  This Source Code Form is subject to the terms of the Mozilla Public
 *  License, v. 2.0. If a copy of the MPL was not distributed with this
 *  file, You can obtain one at http://mozilla.org/MPL/2.0/. */

// ==UserScript==
// @id              addons-manager-scriptish-screenshot@loucypher
// @name            Add-ons Manager - Scriptish Screenshot
// @namespace       https://github.com/LouCypher/userscripts
// @description     [Scriptish only] Show screenshot on Scriptish user script page in Add-ons Manager.
// @version         1.0
// @author          LouCypher
// @license         MPL 2.0
// @icon            https://addons.cdn.mozilla.net/media/img/addon-icons/default-32.png
// @icon64URL       https://addons.cdn.mozilla.net/media/img/addon-icons/default-64.png
// @contributionURL http://loucypher.github.io/userscripts/donate.html?Add-ons+Manager+-+Scriptish+Screenshot
// @homepageURL     https://greasyfork.org/scripts/183
// @supportURL      https://greasyfork.org/scripts/183/feedback
// @screenshot      https://raw.github.com/LouCypher/userscripts/master/scriptish/addons-manager-scriptish-screenshot/screenshot.png
// @resource        CHANGELOG https://raw.github.com/LouCypher/userscripts/master/scriptish/addons-manager-scriptish-screenshot/CHANGELOG.txt
// @resource        LICENSE https://raw.github.com/LouCypher/userscripts/master/licenses/MPL/LICENSE.txt
// @run-at          document-start
// @include         about:addons
// @include         chrome://mozapps/content/extensions/extensions.xul
// ==/UserScript==

function getXPCOMInterface(aClass, aInterface) {
  return Components.classes["@mozilla.org/" + aClass].
         getService(Components.interfaces[aInterface]);
}

const iOService = getXPCOMInterface("network/io-service;1", "nsIIOService");
const styleSheetService= getXPCOMInterface("content/style-sheet-service;1",
                                           "nsIStyleSheetService");

let css = "/* Add-ons Manager Scriptish Screenshot\n\
   by LouCypher */\n\n\
@namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);\
\n@-moz-document url(about:addons),\
\n               url(chrome://mozapps/content/extensions/extensions.xul){\
\n  #detail-view[type=userscript] #detail-screenshot[width=null][height=null]{\
\n    min-width: 200px;\n    min-height: 150px;\n  }\n}\n";

let uri = iOService.newURI("data:text/css," + encodeURIComponent(css), null, null);
styleSheetService.loadAndRegisterSheet(uri, styleSheetService.AGENT_SHEET);

window.addEventListener("unload", function() {
  styleSheetService.unregisterSheet(uri, styleSheetService.AGENT_SHEET);
});