Security:Strawman Model: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 7: | Line 7: | ||
Stack = array [Principal] // array of Principal | Stack = array [Principal] // array of Principal | ||
Object = record {parent:Object} // record with parent field | Object = record {parent:Object} // record with parent field | ||
Window = record { | URL = record {string:String, | ||
origin:String} | |||
Window = record {location:URL, | |||
principal:Principal, | principal:Principal, | ||
opener:Window, | opener:Window, | ||
Line 32: | Line 34: | ||
For all p in P, (p ^ null) == null. | For all p in P, (p ^ null) == null. | ||
Let | Let origin(s) = (s matches 'scheme://hostpart') || 'unknown origin'. | ||
Let | Let principal(x) = (x is Window) ? x.principal : principal(x.parent). |
Revision as of 00:39, 2 August 2006
Types:
Principal = (System, Origin, Null) // disjoint type union System = {system} // system principal singleton Origin = {origin1, ... originN} // set of N origin principals Null = {null} // null principal singleton Stack = array [Principal] // array of Principal Object = record {parent:Object} // record with parent field URL = record {string:String, origin:String} Window = record {location:URL, principal:Principal, opener:Window, document:Object}
Definitions:
Let P be the set of all principals.
Let <= be a binary relation by which P is partially ordered.
For all p in P, p <= system.
For all Origin principals p and q in P, !(p <= q) && !(q <= p).
For all p in P, unknown <= p.
For all principals p and q, there exists in P the greatest lower bound (p ^ q), the meet of p and q, defined by <=. (P, <=) is a meet semi-lattice.
For all p in P, (p ^ system) == p.
For all p in P, (p ^ null) == null.
Let origin(s) = (s matches 'scheme://hostpart') || 'unknown origin'.
Let principal(x) = (x is Window) ? x.principal : principal(x.parent).