| The sandbox policy |
| ------------------ |
| |
| The sandbox policy determines a set of capabilities a document will have. |
| It is defined in two types of objects: |
| - The frame. |
| - The document. |
| |
| The frame policy is parsed from the <iframe>’s sandbox attribute. |
| Example: <iframe sandbox="allow-script allow-origin"> |
| |
| The document policy is parsed from the HTTP Content-Security-Policy header. |
| Example: Content-Security-Policy: sandbox allow-script allow-origin |
| |
| On top of that, the sandbox policy is inherited from: |
| - The frame to its document. |
| - The document to its children frames. |
| - The document to its opened windows’s main frame. |
| |
| The distinction between a frame and a document is important. The document is |
| replaced after navigations, but the frame stays. |
| |
| The sandbox policy is bit field. The sandbox flags are defined by: |
| /services/network/public/mojom/web_sandbox_flags.mojom |
| Multiple sandbox policy are combined using a bitwise AND in the bitfield. This |
| way, the policy can only be further restricted. |
| |
| Specification: |
| - http://www.whatwg.org/specs/web-apps/current-work/#attr-iframe-sandbox |