Confirmed users
96
edits
Todesschaf (talk | contribs) |
|||
Line 30: | Line 30: | ||
In this section, the product's architecture is described. Any individual components or actors are identified, their "knowledge" or what data they store is identified, and data flow between components and external entities is described. | In this section, the product's architecture is described. Any individual components or actors are identified, their "knowledge" or what data they store is identified, and data flow between components and external entities is described. | ||
'''The main objective of this feature/product is:''' ( | '''The main objective of this feature/product is:''' | ||
To improve page load time by performing overhead for connections (DNS lookup, TCP handshake, TLS handshake) before the connections are actually needed. | |||
'''Design Documents''': | '''Design Documents''': | ||
Link to any design or architectural documents here. | Link to any design or architectural documents here. (There are no design documents) | ||
== Components == | == Components == | ||
The major component in this is the Seer, interface defined by nsINetworkSeer. This keeps track of URLs the user has visited, along with URLs that were loaded by the loading of the initial URL. For example, when the user visits http://example.com/index.html, we keep track of that, as well as the fact that visiting that URL also caused us to load http://images.example.com/image.jpg, http://styles.example.com/style.css, and http://scripts.example.com/jquery.js because those resources were included in index.html. Then, the next time the user visits http://example.com/index.html, we can set up connections to images.example.com, styles.example.com, and scripts.example.com, reducing the overhead on the page load. | |||
=== | The seer does not record any data, nor does it take any action, when in private browsing mode. | ||
=== Seer === | |||
The tables below simply summarize the data encountered by this component. | The tables below simply summarize the data encountered by this component. | ||
Line 52: | Line 54: | ||
! Where | ! Where | ||
|- | |- | ||
| | | history (with subresources) | ||
| | | sqlite database in the profile | ||
|} | |} | ||
'''Communication with | '''Communication with Docshell''' | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 66: | Line 68: | ||
|- | |- | ||
| ''In:'' | | ''In:'' | ||
| | | Redirect detected | ||
| | | Tells the seer that url1 redirected to url2 | ||
| | | | ||
|- | |- | ||
| '' | | ''In:'' | ||
| | | Start predicting for a page load | ||
| | | Tells the seer that url1 is being loaded, and it should start trying to predict for url1 if possible | ||
| | |||
|- | |||
| ''In:'' | |||
| Start predicting for a link hover | |||
| Tells the seer that url1 has been hovered over on a page at url2, and it should start trying to predict for url1 if possible | |||
| | |||
|} | |||
'''Communication with Script, Stylesheet, Font, and Image loaders''' | |||
{| class="wikitable" | |||
|- | |||
! Direction | |||
! Message | |||
! Data | |||
! Notes | |||
|- | |||
| ''In:'' | |||
| Loaded script from page | |||
| Tells the seer that a script, stylesheet, font, or image at url2 was loaded because a page at url1 was loaded | |||
| | | | ||
|} | |} | ||
'''Communication with Firefox UI''' | |||
{| class="wikitable" | |||
|- | |||
! Direction | |||
! Message | |||
! Data | |||
! Notes | |||
|- | |||
| ''In:'' | |||
| Erase data | |||
| Tells the seer to erase all its data because of Clear Private Data or Forget About Site | |||
| | |||
|} | |||
= User Data Risk Minimization = | = User Data Risk Minimization = |