Как упаковать расширение Firefox с нуля

Я новичок в расширениях Firefox, и я хотел бы, чтобы вы помогли мне собрать одно расширение, которое я собрал, и отправить его некоторым друзьям, чтобы протестировать его.

Мое расширение собирается "заблокировать" некоторые URL-адреса. Это означает, что если кто-то пытается присоединиться к «facebook.com», мое расширение должно перенаправить его на «www.google.com».

код ниже.

const {classes: Cc, interfaces: Ci, utils: Cu, results: Cr} = Components;
Cu.import('resource://gre/modules/Services.jsm');
var urls_block = [ 
    //If URLs contain any of these elements they will be blocked or redirected,
    //  your choice based on code in observer line 17
    'www.facebook.com',
     'www.apple.com'
];
var redir_obj = {
    'www.facebook.com': 'http://www.google.com/',
    'www.apple.com': 'http://www.samsung.com'
}
var observers = {
    'http-on-modify-request': {
        observe: function (aSubject, aTopic, aData) {
            console.info('http-on-modify-request: aSubject = ' 
                          + aSubject + ' | aTopic = ' + aTopic + ' | aData = ' + aData);
            var httpChannel = aSubject.QueryInterface(Ci.nsIHttpChannel);
            var requestUrl = httpChannel.URI.spec.toLowerCase();
            for (var i=0; i<urls_block.length; i++) {
                if (requestUrl.indexOf(urls_block[i]) > -1) {
                    //httpChannel.cancel(Cr.NS_BINDING_ABORTED); //this aborts the load
                    //Can redirect with this next line, if don't want to redirect and
                    //  just block, then comment this line and uncomment the line above:
                    httpChannel.redirectTo(Services.io.newURI(redir_obj[urls_block[i]],
                                               null, null));
                    break;
                }
            }
        },
        reg: function () {
            Services.obs.addObserver(observers['http-on-modify-request'],
                                           'http-on-modify-request', false);
        },
        unreg: function () {
            Services.obs.removeObserver(observers['http-on-modify-request'], 
                                           'http-on-modify-request');
        }
    }
};
function install() {}
function uninstall() {}
function startup() {
    for (var o in observers) {
        observers[o].reg();
    }
}

function shutdown(aData, aReason) {
    if (aReason == APP_SHUTDOWN) return;

    for (var o in observers) {
        observers[o].unreg();
    }
}

Большое спасибо @Noitidart за его огромную помощь.

Поэтому я хочу упаковать этот код для расширения Firefox. Может ли кто-нибудь показать мне, как это сделать или какой-либо пример?

Большое спасибо за ваше время, помогая мне здесь.

Ответы на вопрос(1)

Ваш ответ на вопрос