Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The plan with custom extensions #633

Closed
22 of 24 tasks
GarboMuffin opened this issue Oct 20, 2022 · 8 comments
Closed
22 of 24 tasks

The plan with custom extensions #633

GarboMuffin opened this issue Oct 20, 2022 · 8 comments

Comments

@GarboMuffin
Copy link
Member

GarboMuffin commented Oct 20, 2022

Checkboxes mean "the code has been written", not necessarily "you can use it now"

  • Store custom extension URLs in the project
  • Add confirmation for loading non-extensions.turbowarp.org extensions
  • Automatically load extensions (with user consent)
  • In the packager, parse customExtensions and inform the user ahead of time
  • Implement an unsandboxed extension mode
  • Figure out the local development and debugging situation
  • Remove the temporary development support hack (localhost:8000)
  • make global.Scratch actually unique per extension
  • Use unsandboxed extensions in the packager because the Worker sandbox sucks and the iframe sandbox doesn't work Load custom extension locally in the packager packager#550
  • Add APIs like Scratch.vm
  • Convert extensions on extensions.turbowarp.org to IIFE
  • Allow extensions from extensions.turbowarp.org to run unsandboxed
  • Add Box2D to extensions.turbowarp.org (like I am porting the well known Box2D extension to turbowarp #632)
  • Add Utilities to extensions.turbowarp.org
  • Add gamepad extension to extensions.turbowarp.org
  • Add file reading extension to extensions.turbowarp.org New extension: File read and download extensions#19
  • Add pointer lock extension to extensions.turbowarp.org New extension: Pointerlock extensions#18
  • Figure out the deal with non-edge-activated hats: isEdgeActivated: false
  • Open submissions to extensions.turbowarp.org with some guidelines
  • Advertise extensions.turbowarp.org in the editor
  • Make extensions.turbowarp.org a bit less ugly
  • Figure out how to make this work offline with the desktop app
  • Document the correct way to do casting
  • ScratchX
@David-Orangemoon
Copy link

Awesome. Glad to see unsandboxed extensions getting full support! Plan to add any community ones to the extension list?

@GarboMuffin
Copy link
Member Author

GarboMuffin commented Oct 22, 2022

The plan is to restrict unsandboxed extensions to extensions.turbowarp.org (no change for current sandboxed extensions), but allow community contributions to that website as long as they follow guidelines like "don't break compatibility with old extension versions" and "don't introduce security bugs"

@GarboMuffin
Copy link
Member Author

https://twitter.com/GarboMuffin/status/1584025942376448001

The hope is that users will be able to start using this in ~1wk

GarboMuffin added a commit that referenced this issue Oct 30, 2022
See: #633

Custom extensions from extensions.turbowarp.org will be loaded
automatically and without sandbox.

For other extensions, a prompt has been added to ask the user for
permission to load the extension.
@GarboMuffin
Copy link
Member Author

GarboMuffin commented Oct 30, 2022

Prototypes can be tested now:

Extension URLs will be stored in the project. Extensions from https://extensions.turbowarp.org/ will be loaded automatically and unsandboxed. For extensions from other places, a prompt will be displayed and they will be loaded with the sandbox. The prompt is rather ugly and needs some more work.

It's not clear what the final solution will be for locally testing unsandboxed extensions. For now, I've made it so extensions with a URL beginning with http://localhost:8000/ exactly will be loaded as unsandboxed. This is temporary for testing purposes.

extensions.turbowarp.org can probably start accepting contributions over here: https://github.com/TurboWarp/extensions. The acceptance criteria is basically something like "nothing malicious, no security bugs, don't break compatibility".

@GarboMuffin
Copy link
Member Author

Also, there is some draft documentation here: https://docs.turbowarp.org/development/unsandboxed-extensions

@joshpinto6
Copy link

I might be able to work on the https://extensions.turbowarp.org site CSS/layouts or make some improvements in order to increase consistency with other Turbowarp tools. 👍

Also, could the item "Advertise extensions.turbowarp.org in the editor" be solved by adding an option under the Edit > menu in the Turbowarp editor called "Unsandboxed Extensions" that opens the https://extensions.turbowarp.org site?

@GarboMuffin
Copy link
Member Author

GarboMuffin commented Nov 10, 2022

Feel free to take a shot at redesigning extensions.turbowarp.org. You can't do worse than the current design.

As for advertising these in the editor, I was intending to add an item alongside the custom extension button that says something about visiting that website to find some more extensions. Something like that.

GarboMuffin added a commit that referenced this issue Nov 22, 2022
See: #633

Custom extensions from extensions.turbowarp.org will be loaded
automatically and without the sandbox.

For other extensions, a prompt has been added to ask the user for
permission to load the extension.
@GarboMuffin
Copy link
Member Author

Unsandboxed extensions are now usable on the normal turbowarp.org without any experiment branches

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants