alyssaxuu / screenity

The free and privacy-friendly screen recorder with no limits 🎥
https://screenity.io
GNU General Public License v3.0
12.65k stars 981 forks source link

Converting to Manifest V3 #166

Closed EkremPolat closed 10 months ago

EkremPolat commented 2 years ago

Hello Alyssa! Do you consider converting the chrome extension to Manifest V3? If you do, when are you planning to do that? Thank you so much for your effort!

aswinkp commented 2 years ago

There is already an open issue #152. @alyssaxuu mentioned that she will be porting in the coming months (possibly before the end of 2022) 🤞

alyssaxuu commented 2 years ago

Sorry it's taking so long, I've been struggling to figure out a direction for the product itself. I think if I convert to MV3 I would like to add new features and functionality, instead of having it be the exact same thing.

aslyheer commented 1 year ago

@alyssaxuu Hi, any update?

alyssaxuu commented 1 year ago

@alyssaxuu Hi, any update?

I started working on the new version last month, it's been rough. I'm pretty sure no other screen recorder has ported to MV3 yet (you can check, Loom, Screencastify, Vidyard, and many others are still on MV2) because of all the limitations and changes in MV3, which makes it practically impossible to have a screen recorder working as an extension.

The main blocker has been the fact that the background becomes a service worker in MV3, which has no access to the DOM, so I can't start a MediaRecorder instance from there. If you start it from the tab, then as soon as that tab is closed, the recording ends (which is not ideal). Other options involve using a separate window, or having a tab open automatically to record (again, it cannot be closed). There's also the chrome.offscreen API which I also tried out as an option (to access the DOM from the background), but also hit a wall, regardless I'd have to wait for the API to be available in the new version of Chrome, it's only in Canary at the moment. I did actually manage to do something a bit hacky and make it work in a way that the user cannot accidentally stop the recording, and it doesn't require external windows, although I'd like to develop the project further along before sharing anything.

Either way, it will take a while to develop. I am building everything from the ground up, and I am hoping to add a lot of new features, including cloud storage (as an additional paid option, I still will keep a 100% free and open source version of the app), sharing, captions, and more.

ABitShift commented 1 year ago

Hi @alyssaxuu, First of all, thank you for sharing to the community this awesome extension, freely and open sourced :heart: We are looking to inject content as you did, but using V3 new scripting API, if you succeed interacting with main world, would you please mind sharing the current branch you're working on?

ABitShift commented 1 year ago

Hi @alyssaxuu, First of all, thank you for sharing to the community this awesome extension, freely and open sourced heart We are looking to inject content as you did, but using V3 new scripting API, if you succeed interacting with main world, would you please mind sharing the current branch you're working on?

For anyone looking for this technique, @alyssaxuu did it in another project: https://github.com/alyssaxuu/omni/tree/master/src

shunMB commented 1 year ago

Hi @alyssaxuu, any update?

alyssaxuu commented 1 year ago

I'm working on it, my plan is to do a bit of a modular release, trying to ship a first MV3 version with feature parity to the current extension, and add new features from there. Although it's still going to take some time as it's a bit of an overhaul.

Shared a sneak peek on Twitter if curious: https://twitter.com/alyssaxuu/status/1646897599536873474

I'm also writing about the process on my newsletter, with more specific plans.

alyssaxuu commented 1 year ago

Good news, the extension is finally ready, and I will be releasing it to the public in a week or so.

Here's the extension in use: https://twitter.com/alyssaxuu/status/1720459565324542401

If anyone is interested in getting private access to the extension (for helping with testing / feedback), please do reach out!

aswinkp commented 10 months ago

@alyssaxuu I'm eagerly awaiting this release 🤞 Once it's released, I'm looking forward to contributing in any way I can.

alyssaxuu commented 10 months ago

I've finally released the new MV3 version of Screenity in the Chrome Store, and also updated the codebase here. If you'd like to know more about the changes, you can check out this article I wrote. Hope you like it!