Global history is now enabled for users of nsIWebBrowser. See
http://bugzilla.mozilla.org/show_bug.cgi?id=73951.
Several issues:
(1) If, in your embedding code, you were hooking up global history
yourself with something like this,
nsCOMPtr<nsIDocShellHistory> dsHistory(do_QueryInterface(docShell));
if (dsHistory)
{
NS_WITH_SERVICE(nsIGlobalHistory, history,
NS_GLOBALHISTORY_CONTRACTID, &rv);
if (history)
dsHistory->SetGlobalHistory(history);
}
remove it. It's unnescesary now.
(2) If you don't want to have global history for a particular browser,
you can disable it by doing this:
nsCOMPtr<nsIWebBrowserSetup> setup(do_QueryInterface(mWebBrowser));
if (setup)
setup->SetProperty(nsIWebBrowserSetup::SETUP_USE_GLOBAL_HISTORY,
PR_FALSE);
One reason for which you might have to disable it is lack of
profile-relative file locations. Global history requires a location for
its history DB and, without that, will cause many assertions. gtkEmbed
and viewer disable it for this reason.
(3) The components needed for global history (appcomps.dll and mork.dll)
were not added to the embedding config. For this reason, the mfcEmbed
which is smoketested will not have global history. Adding these two
things added ~750 Kbytes to the footprint which is awful. We could
either just add these to the default config and take the footprint hit,
or create a "simple" global history implementation which is not an RDF
datasource and does not use mork. I have such an impementatin in my
tree. Thoughts on this?
-Conrad