61
edits
Freesamael (talk | contribs) (Slightly update the description of docshell) |
Freesamael (talk | contribs) (Add nsIWebNavigation) |
||
Line 45: | Line 45: | ||
document (see DOM) and the pres(entation) shell and pres(entation) | document (see DOM) and the pres(entation) shell and pres(entation) | ||
context (see layout). | context (see layout). | ||
[[File:WebNavigation.png|thumb|400px|<xul:browser> and docshell in non-e10s configuration]] | |||
Docshells are organized into a tree. If a docshell has a non-null parent, then it corresponds to a subframe in whatever page is currently loaded in the parent docshell, and the corresponding subframe element (for example, an iframe) is called a '''browsing context container'''. In order to keep the session history of subframes after the root document has been unloaded, only the root docshell of a docshell tree manages the session history (this does not match the conceptual model in the HTML5 spec and may be subject to change). | Docshells are organized into a tree. If a docshell has a non-null parent, then it corresponds to a subframe in whatever page is currently loaded in the parent docshell, and the corresponding subframe element (for example, an iframe) is called a '''browsing context container'''. In order to keep the session history of subframes after the root document has been unloaded, only the root docshell of a docshell tree manages the session history (this does not match the conceptual model in the HTML5 spec and may be subject to change). | ||
One of the most interfaces docshell implemented is <code>[https://dxr.mozilla.org/mozilla-central/source/docshell/base/nsIWebNavigation.idl nsIWebNavigation]</code>. It defines major functions of a browsing context, such as <code>loadURI</code> / <code>goBack</code> / <code>goForward</code> and <code>reload</code>. In a non-e10s configuration of desktop Firefox, <code><xul:browser></code> (which represents a tab) operates on docshell through <code>nsIWebNavigation</code>, as shown in the right figure. | |||
* code: mozilla/docshell/ | * code: mozilla/docshell/ |
edits