Project Fission/DocShell Tree Replace: Difference between revisions

Jump to navigation Jump to search
Format updates.
(Updates.)
(Format updates.)
Line 56: Line 56:
Fixing these uses depends on the kind of information being accessed.  There are a few ways to break down the kinds of information accessed:
Fixing these uses depends on the kind of information being accessed.  There are a few ways to break down the kinds of information accessed:


1. Existing state information that is not security sensitive
==== 1. Existing state information that is not security sensitive ====


These are fields, or flags held in Document, Window, DocShell, or other process-segregated structures, accessed via nsIDocShellTreeItem, which are not sensitive.
These are fields, or flags held in Document, Window, DocShell, or other process-segregated structures, accessed via nsIDocShellTreeItem, which are not sensitive.
Line 64: Line 64:
If this state is updated too frequently for it to be cross-process synchronized effectively, other options such as IPC must be considered.
If this state is updated too frequently for it to be cross-process synchronized effectively, other options such as IPC must be considered.


2. Synthesized state information that is not security sensitive
==== 2. Synthesized state information that is not security sensitive ====


This is similar to the first case, except that the information being accessed is not a specific existing field, but instead a characteristic that is synthesized from a number of different pieces of data within the internal structures.
This is similar to the first case, except that the information being accessed is not a specific existing field, but instead a characteristic that is synthesized from a number of different pieces of data within the internal structures.
Line 73: Line 73:
In these cases, a reasonable approach is to create a field in BrowsingContext or another context structure, which dynamically caches the synthesized information.  Once again, an understanding of how often that particular synthesized state would need to be updated is relevant for this determination.
In these cases, a reasonable approach is to create a field in BrowsingContext or another context structure, which dynamically caches the synthesized information.  Once again, an understanding of how often that particular synthesized state would need to be updated is relevant for this determination.


3. Access to security-sensitive information or complex information
==== 3. Access to security-sensitive information or complex information ====


This class of uses relates to information which cannot easily be moved into BrowsingContext, TabContext or WindowContext.  Sometimes this is because the information is security sensitive, and other time its because the query over DocShell/Document/Window is too complex to be represented as a simple synthesized state.
This class of uses relates to information which cannot easily be moved into BrowsingContext, TabContext or WindowContext.  Sometimes this is because the information is security sensitive, and other time its because the query over DocShell/Document/Window is too complex to be represented as a simple synthesized state.


These bugs tend to be difficult.  Fortunately, many of these bugs relate to ongoing deep component work - including SessionHistory work, DOM Core work, etc.
These bugs tend to be difficult.  Fortunately, many of these bugs relate to ongoing deep component work - including SessionHistory work, DOM Core work, etc.
32

edits

Navigation menu