You actually don't need to use the interfaces as the JavaScript XMLHttpRequest implementation will work just fine:
There is an example here:
https://developer.mozilla.org/En/Using_XMLHttpRequest#Example.3a_Asynchronous_request
var req = new XMLHttpRequest();
req.open('GET', 'http://www.mozilla.org/', true);
req.onreadystatechange = function (aEvt) {
if (req.readyState == 4) {
if(req.status == 200)
dump(req.responseText); // your HTML is in this variable
// since the element is an HTML element, you can use HTML DOM methods
document.getElementById("container").innerHTML = req.responseText;
else
dump("Error loading page\n");
}
};
req.send(null);
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
xmlns:html="http://www.w3.org/1999/xhtml"
...
<tabbox>
<tabs>
<tab label="Mail"/>
<tab label="News"/>
</tabs>
<tabpanels>
<tabpanel id="mailtab">
<checkbox label="Automatically check for mail"/>
</tabpanel>
<tabpanel id="newstab">
<!-- HTML div container embedded in XUL -->
<html:div id="container"></html:div>
</tabpanel>
</tabpanels>
</tabbox>
Also, see this post as this is a repeated question:
Ajax In Firefox Plugin
EDIT: I made some adjustments to further target your question about embedding HTML in a tabpanel. Assume you have an HTML DIV container in your XUL, which can be accomplished using the HTML namespace bound to the window element.
You can now use HTML DOM methods to inject your HTML into the XUL tabpanel.
Inserting HTML in XUL Interfaces:
http://www.xul.fr/tutorial/html.html