I don't get the different with the native Chrome API sendRequest/OnRequest. I've created extension for Chrome and I don't see what problem it is actually solving. You don't need to get a hold of the background page from your injected script, just send messages.