Issue metadata
Sign in to add a comment
|
Prototype uploading special sandboxed iframes' rendering results to WebGL textures |
||||||||||||||||||||||||
Issue descriptionThe excellent out-of-process iframe work that's been done in: http://www.chromium.org/developers/design-documents/oop-iframes is a great basis for prototyping uploading HTML rendering results to WebGL textures, a longstanding feature request. As discussed in the WebGL working group, the general direction for this feature that all browser vendors supported was: 1. Adding a new tag understood by the iframe "sandbox" attribute which would mean: 1a. Only allow resource fetches from the same origin as the top-level document. This restriction would prevent cross-origin resources from becoming accessible to untrusted WebGL code, which is not allowed. (The "crossOrigin" attribute on HTMLMediaElement provides a targeted solution for just those elements; a more general solution needs to be devised here, but this severe restriction should make it safe.) 1b. Treat the iframe as incognito mode. This should prevent personally identifiable information from showing up in the rendering results. 2. Adding APIs, which only work in this iframe mode, which would allow dispatching of synthetic mouse and keyboard events into the iframe. These are needed because only the embedding WebGL application knows where clicks should occur. These security restrictions might limit the utility of the API, but they should make it safe. From a safe beginning, the API can then be relaxed. An initial prototype (not to be shipped) could try using the out-of-process iframe rendering framework described here: http://www.chromium.org/developers/design-documents/oop-iframes/oop-iframes-rendering to see how difficult it is to get it into a WebGL texture. If the security properties above could then be enforced, the prototype could be placed behind a flag.
,
Jan 20 2017
Happy to chat about this if you'd like. And yes, kenrb@ as a good resource for the OOPIF rendering architecture. One note: 1b mentions treating iframes as incognito, which may be challenging to support. Incognito mode is implemented using a different Profile / BrowserContext, and there's lots of assumptions in the code that all frames of a page belong to the same Profile. Maybe there's some other way to approach it, though.
,
Jan 23 2017
Thanks creis@ for the input. As a first prototype we can ignore the requirement of incognito mode, though to ship this I think it would need to be added. We'd be eager to work with your team to understand whether the code can be generalized in this way and, if so, to implement it.
,
Mar 30 2017
|
|||||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||||
Comment 1 by msramek@chromium.org
, Jan 20 2017