A JavaScript cross-extension messaging architecture