FAQ
How to start Embedding
You can find a examples, FAQs, and the API from mozilla itself.
You can get more detailed information on what interfaces are required and which are optional to impelement here. Scroll down to "Initalization and Teardown.
How to customize document retrieval
One method is to implement your own protocol method. You can find more information on adding new protocols here
How to embedding mozilla inside of Java
There hasn't been any good code examples found. However, there is a stripped down, uncommented code with eclipse libraries in this thread. Here is the codeĀ :
import org.eclipse.swt.SWT; import org.eclipse.swt.browser.MozillaBrowser; import org.eclipse.swt.browser.ProgressEvent; import org.eclipse.swt.browser.ProgressListener; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.mozilla.xpcom.nsIDOMDocument; public class Test { public static void main(String args[]) { Display display = new Display(); Shell shell = new Shell(display); final MozillaBrowser browser = new MozillaBrowser(shell,WT.BORDER); browser.setUrl("https://www.google.com"); browser.addProgressListener(new ProgressListener() { public void changed(ProgressEvent event) { } public void completed(ProgressEvent event) { nsIDOMDocument doc = browser.getDocument(); System.out.println(doc); } }); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } }
How to map a Javascript function to a C++ function
Define an XPCOM class defining the function you'll be doing in javascript. Then pass the object to your XPCOM coded object and call it from C++. You can find a better quality answer repeated and with an example in this newsgroup thread.