luisgo
luisgo

Reputation: 2465

Setting HTTP headers from a Firefox extension

How can I set HTTP headers in my Firefox extension?

I'll make it so these are only sent while hitting my site so I can detect if the plugin is installed or not and not promote the plugin if it is.

Upvotes: 7

Views: 11506

Answers (2)

delfuego
delfuego

Reputation: 14265

There are a few existing Firefox extensions that modify HTTP headers en route to the server, and at least one of them, modifyheaders, has open source code.

Or, of course, there's the relevant page in the Mozilla Developer Center, Setting HTTP request headers.

Upvotes: 5

luisgo
luisgo

Reputation: 2465

Here's the most compact way I found to make this work:

Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService ).addObserver({
    observe : function(subject, topic, data) {
            var channel = subject.QueryInterface( Components.interfaces.nsIHttpChannel );
            if ( /mysite/.test( channel.originalURI.host ) ) {
                channel.setRequestHeader("x-mysite-extended", "true", false);
            }
    }
},"http-on-modify-request",false);

Upvotes: 7

Related Questions