Gecko:Overview: Difference between revisions

Jump to navigation Jump to search
Add nsIWebNavigation
(Slightly update the description of docshell)
(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/
61

edits

Navigation menu