// Just set preference with selected value
navigator.preference("extensions.prefbar.buttons.refererspoof", value);
// Referer Spoof Menulist for PrefBar
// Copyright (C) Manuel Reimer (Manuel _dot_ Reimer _at_ gmx _dot_ de)
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation
// Get sure that "goPrefBar.buttons" exists.
// Buttons are only allowed to place component code there!
if (!("buttons" in goPrefBar))
goPrefBar.buttons = new Object();
// If our observer isn't already initialized, then do so, now
if (!("refererspoofobserver" in goPrefBar.buttons)) {
goPrefBar.buttons.refererspoofobserver = {
observe: function(subject, topic, data)
{
if (topic == "http-on-modify-request") {
var httpChannel = subject.QueryInterface(Components.interfaces.nsIHttpChannel);
var val = navigator.preference("extensions.prefbar.buttons.refererspoof");
if (val == undefined || val == "DEFAULT") return;
httpChannel.setRequestHeader("Referer", val, false);
}
}
};
var observerService = Components.classes["@mozilla.org/observer-service;1"]
.getService(Components.interfaces.nsIObserverService);
observerService.addObserver(goPrefBar.buttons.refererspoofobserver, "http-on-modify-request", false);
}
// Finally tell PrefBar to display the value in our preference
value = navigator.preference("extensions.prefbar.buttons.refererspoof");