Chromium核心类之--WebContents

来源:互联网 发布:全国所有学校数据库 编辑:程序博客网 时间:2024/05/16 07:22

首先需要了解HTML中frame的概念。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"   "http://www.w3.org/TR/html4/frameset.dtd"><HTML><HEAD><TITLE>A simple frameset document</TITLE></HEAD><FRAMESET cols="20%, 80%">  <FRAMESET rows="100, 200">      <FRAME src="contents_of_frame1.html">      <FRAME src="contents_of_frame2.gif">  </FRAMESET>  <FRAME src="contents_of_frame3.html">  <NOFRAMES>      <P>This frameset document contains:      <UL>         <LI><A href="contents_of_frame1.html">Some neat contents</A>         <LI><IMG src="contents_of_frame2.gif" alt="A neat image">         <LI><A href="contents_of_frame3.html">Some other neat contents</A>      </UL>  </NOFRAMES></FRAMESET></HTML>

上面的代码会产生如下的网页效果:

 ---------------------------------------|         |                             ||         |                             || Frame 1 |                             ||         |                             ||         |                             ||---------|                             ||         |          Frame 3            ||         |                             ||         |                             ||         |                             || Frame 2 |                             ||         |                             ||         |                             ||         |                             ||         |                             | ---------------------------------------

上面网页中的frame(123)加上主frame会构成一个FrameTree,而FrameTreeNode正是用于描述每个frame的类。

而WebContents是content/层的核心类。因为在Browser进程中,一个网页使用一个WebContents对象描述。结合上图,一个WebContents对象又关联有一个FrameTree。其中,FrameTree的根Node描述的是主网页,子Node描述的是嵌入的子网页。

每一个WebContents有些只有一个NavigationController,而每一个NavigationController也只会属于唯一的WebContents。NavigationController负责加载URL的内容填充WebContents,并且维护一个back-forward 的列表用来管理所有和导航相关的操作。

原创粉丝点击