// 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");