<div dir="ltr"><div dir="ltr"><div>Hey all!</div><div><br></div><div>I'm reviving an old project to embed sandboxed HTML/JavaScript "widgets" into wiki pages as a click-to-play media type, using modern browsers' <iframe> sandbox and Content-Security-Policy restrictions.</div><div><br></div><div><div>Intro and detail notes which I'll keep updating:<br></div><div dir="ltr"><a href="https://www.mediawiki.org/wiki/User:Brion_VIBBER/EmbedScript_2019">https://www.mediawiki.org/wiki/User:Brion_VIBBER/EmbedScript_2019<br></a></div><div><br class="gmail-Apple-interchange-newline">I hope to extend it with a headless "plugin" mode which allows less-trusted user-written code to interact safely with fully-trusted host APIs, and a dependency system to let common library modules, string localizations, image files from Commons, and data from Wikidata be bundled up and used safely, without cross-site data exposure.</div><br class="gmail-Apple-interchange-newline"></div><div>I'm hoping to solicit some more feedback while I'm in the prototyping stage, with an eye towards issues we'll need to resolve before it reaches a productizable stage we could seriously deploy.</div><div><br></div><div>Open questions include:</div><div><br></div><div>* Can we really replace some user scripts and gadgets with a split-trust model, and which ones are good ones to start experimenting with?</div><div>* What should a user-permissions UX look like for plugins? What threat models are not examined yet?</div><div>* What kind of comment / code review system is needed?</div><div>* What about patches, and forks, and copies and centralization? what's the best Commons-centric or alternate model that will prevent fragmentation of code?</div><div>* How should libraries / dependencies work?<br></div><div>* How should localization work?</div><div>* How much coupling to MediaWiki is desired/required?</div><div>* How to implement mobile app and offline support?</div><div><br></div><div>Feel free to poke me directly or on the wiki talk page with questions/comments/ideas. Love it? Hate it? Great! Let me know. :)</div><div><br></div><div>-- brion</div></div></div>