[scriptable, uuid(7ca0fd71-437c-48ad-985d-11ce9e2429b4)]
interface nsISHistoryInternal : nsISupports


 Get handle to the history listener
readonly attribute nsISHistoryListener listener
 The toplevel docshell object to which this SHistory object belongs to.
attribute nsIDocShell rootDocShell
 Get the root transaction
readonly attribute nsISHTransaction rootTransaction


 Add a new Entry to the History List
 @param aEntry - The entry to add
 @param aPersist - If true this specifies that the entry should persist
 in the list.  If false, this means that when new entries are added
 this element will not appear in the session history list.
void addEntry(in nsISHEntry aEntry, in boolean aPersist)
 Evict all the content viewers in this session history
void evictAllContentViewers()
 Evict content viewers until the number of content viewers per tab
 is no more than gHistoryMaxViewers.  Also, count
 total number of content viewers globally and evict one if we are over
 our total max.  This is always called in Show(), after we destroy
 the previous viewer.
void evictContentViewers(in long previousIndex, in long index)
 Evict the content viewer associated with a session history entry
 that has timed out.
void evictExpiredContentViewerForEntry(in nsISHEntry aEntry)
 Replace the nsISHEntry at a particular index
 @param aIndex - The index at which the entry shoud be replaced
 @param aReplaceEntry - The replacement entry for the index.
void replaceEntry(in long aIndex, in nsISHEntry aReplaceEntry)
 Update the index maintained by sessionHistory
void updateIndex()