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


Reply via email to