canmove, Confirmed users
4,854
edits
No edit summary |
No edit summary |
||
| Line 11: | Line 11: | ||
</bugzilla> | </bugzilla> | ||
}} | }} | ||
{{SecReview}} | {{SecReview | ||
|SecReview feature goal=To provide the API for the JavaScript extension to create the preview of a plug-in for specific mime type. Typical use case is to allow creation of the firefox extensions to provide the secure and interactive preview for or fully replace the native plugins. | |||
This is a key component of the Shumway implementation of a web-native SWF runtime, specifically the browser integration with Firefox | |||
=== Notes === | |||
Shumway will call registerPlayPreviewMimeType | |||
When there's an embed, a check for whether there's a preview for the type (if not, it calls up plugin) if there is, it loads shumway (other preview) instead. | |||
How does the extension distinguish between multiple frames with the same source? - shumway has access the DOM tree and can extract the information from the original element. | |||
What is the origin of the document in the iframe - originally the data: uri, then changed by the streamconverter - (for shumway, looks like resource:) | |||
use of a resource URL is likely to cause problems - either use a null principal or use the origin of the original resource. | |||
This isn't enabling anything addons can't already do; rather, exposing a cleaner way for them to do something. | |||
(pilot shumway extension https://github.com/mozilla/shumway/tree/master/extension/firefox) | |||
(iframe box testing http://pastebin.mozilla.org/1735309 ) | |||
|SecReview alt solutions=Alternative solution: to provide an API to the extension that will fully intercept a flash object instantiation we need: | |||
1. add entries to the window.navigator.plugins (with the same | |||
name, descript, version and mime type as flash); | |||
2. intercept/forward all <object | |||
classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"> | |||
instantiations; | |||
3. and, suppress the plugins priority for the document loader | |||
factory. | |||
|SecReview solution chosen=Less intervention into existing plugin loading base (nsObjectLoadingContent) | |||
|SecReview threat brainstorming=* iframe created for preview loads data: URI - inherits principal of resource:// URI which has some level of privilege - could try and use a null principal or iframe sandbox when it lands ? | |||
* preview iframe might be able to somehow interact with page/DOM after the user has decided to load the actual plugin if it's not cleaned up | |||
}} | |||
{{SecReviewActionStatus | {{SecReviewActionStatus | ||
|SecReview action item status=In Progress | |SecReview action item status=In Progress | ||
| Line 27: | Line 51: | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td>Jethro</td> | |||
<td></td> | |||
<td>Arrange secreview for shumway</td> | |||
<td>Coincide with / follow shortly "rough alpha" ( suggest making secreview bug now, updating with time as appropriate)</td> | |||
<td></td> | <td></td> | ||
</tr> | </tr> | ||
<tr> | |||
<td>Yury</td> | |||
<td></td> | |||
<td>Remove preview iFrame (cleanup)</td> | |||
<td></td> | |||
<td></td> | |||
</tr> | |||
<tr> | |||
<td>Dan / Ian / Mark / David</td> | |||
<td></td> | |||
<td>Investigate alternatives for null principal for resolving iFrame security issues</td> | |||
<td>13th - 18th August</td> | |||
<td></td> | |||
</tr> | |||
</table> | </table> | ||