Merge branch 'feat/inda-383-daily-stat' into 'main'
[ProtonMail-WebClient.git] / applications / preview-sandbox / README.md
blob61323b984d4dc098920d78395aa4d67cd73ec952
1 # preview-sandbox
3 This project encapsulates the previewer found in the Drive app, based on a [sandboxed iframe](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe#attr-sandbox).
5 ## How it works
7 This project builds into a single-page HTML file. This file is loaded by the client through a blob URL, to ensure a separate origin. It communicates with `postMessage` to receive the data.
9 ## Building
11 `yarn build` will build the project, and copy it to the apps that use it.
13 You can refer to [`bin/build.js`](./bin/build.js) to see what exactly is happening.
15 Make sure to copy the built file every time you change something here, until we can find a better way to handle the build.
17 We may also deploy to a dedicated subdomain in the future, depending on future constraints.
19 ## `postMessage` interface
21 ### Client to sandbox
23 ```javascript
24 const message = {
25     type: 'data',
26     mimeType: 'application/x-mimetype',
27     data: UInt8Array,
29 ```
31 ### Sandbox to client
33 ```javascript
34 const message = {
35     type: 'error',
36     error: Error,
38 ```