<commit_before><?php 
    $title="Major Objects in WebCore";
    include("../header.inc"); 
?>

<style type="text/css">
    .asciiart {
        background-color: #eee;
        padding: 1em;
        margin-left: 2em;
        margin-right: 2em;
        overflow-x: auto;
    }
</style>

<h1>Major Objects in WebCore</h1>
<div><NAME></div>
<div>first draft, 2009-08-11</div>

<p>WebCore uses a number of objects to represent a web page in memory.  This
document describes the major objects and the relation between them.  In some
cases, the connection between these objects can be broken, resulting in null
pointers.  When traversing these pointers, code must be careful to consider
the "detached" case and gracefully handle null pointers.</p>

<pre class="asciiart">
  +---------+
  | Chrome  |
  +----+----+
       |
   +---+---+     +----------+
   | Page  +---->| Settings |
   +---+---+     +----------+
       |
       +-------------------------- ... other Frame objects
       |
   +---+---+   +-------------+                 +-------------------+
   | Frame +---+ FrameLoader +                 | JSDOMWindowShell  |
   +---+---+   +-------------+                 +---------+---------+
       |                                                 |
       |        /\  Re-used after navigation   /\        |
.......|.................................................|...........
       |        \/  Replaced after navigation  \/        |
       |                                                 |
       | <-- Null after navigation                       |
       |                                                 |
 +-----+-----+         +-------------+                   |
 | DOMWindow |<--impl--+ JSDOMWindow |<------window------+
 +-----+-----+         +-------------+
       |
       | <-- Can be null for Documents created by XMLHttpRequest
       |
 +-----+-----+         +-------------+
 | Document  |<--impl--+ JSDocument  |
 +-----+-----+         +-------------+
       |
       | <-- Can be null for DocumentType objects
       |
   +---+---+           +--------+
   | Node  |<---impl---| JSNode |
   +-------+           +--------+
</pre>

<p>If you have any comments on the above or other ideas about improving the clarity,
scope, or presentation, please send mail to the <a href="/contact.html">WebKit mailing list</a>.</p>

<?php
    include("../footer.inc");
?><commit_msg>Hopefully the last tweak to major-objects.html<commit_after><?php 
    $title="Major Objects in WebCore";
    include("../header.inc"); 
?>

<style type="text/css">
    .asciiart {
        background-color: #eee;
        padding: 1em;
        margin-left: 2em;
        margin-right: 2em;
        overflow-x: auto;
    }
</style>

<h1>Major Objects in WebCore</h1>
<div><NAME></div>
<div>first draft, 2009-08-11</div>

<p>WebCore uses a number of objects to represent a web page in memory.  This
document describes the major objects and the relation between them.  In some
cases, the connection between these objects can be broken, resulting in null
pointers.  When traversing these pointers, code must be careful to consider
the "detached" case and gracefully handle null pointers.</p>

<pre class="asciiart">
 +---------+
 | Chrome  |
 +----+----+
      |
  +---+---+     +----------+
  | Page  +---->| Settings |
  +---+---+     +----------+
      |
      +-------------------------- ... other Frame objects
      |
  +---+---+   +-------------+                 +-------------------+
  | Frame +---+ FrameLoader +                 | JSDOMWindowShell  |
  +---+---+   +-------------+                 +---------+---------+
      |                                                 |
      |        /\  Re-used after navigation   /\        |
......|.................................................|..........
      |        \/  Replaced after navigation  \/        |
      |                                                 |
      | <-- Null after navigation                       |
      |                                                 |
+-----+-----+         +-------------+                   |
| DOMWindow |<--impl--+ JSDOMWindow |<------window------+
+-----+-----+         +-------------+
      |
      | <-- Can be null for Documents created by XMLHttpRequest
      |
+-----+-----+         +-------------+
| Document  |<--impl--+ JSDocument  |
+-----+-----+         +-------------+
      |
      | <-- Can be null for DocumentType objects
      |
  +---+---+           +--------+
  | Node  |<---impl---| JSNode |
  +-------+           +--------+
</pre>

<p>If you have any comments on the above or other ideas about improving the clarity,
scope, or presentation, please send mail to the <a href="/contact.html">WebKit mailing list</a>.</p>

<?php
    include("../footer.inc");
?>
{'fraction_non_alphanumeric': 0.26336758230236945, 'fraction_numerical': 0.00545187670371147, 'mean_word_length': 0.9941471571906354, 'pattern_counts': {'":': 0, '<': 55, '<?xml version=': 0, '>': 43, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 12, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4422940', 'n_tokens_mistral': 1316, 'n_tokens_neox': 1232, 'n_words': 323}