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

[Headsup] deprecation of manifest v2, enforcement of manifest v3 and separately the deprecation of websql #1351

Open
garfield69 opened this issue May 3, 2022 · 28 comments
Labels

Comments

@garfield69
Copy link
Collaborator

garfield69 commented May 3, 2022

When chromium switch off support for manifest v2 (Mv2) in June 2023 and enforce manifest v3 (Mv3) then DuckieTV will need significant updates if it is to continue to run in any of the chromium browsers.
Support for Mv3 began on Chromuim 88, and the Web Store stopped allowing new extensions with Mv2, but that does not impact Dtv since we lost access to the Web Store years ago when they changes their security policy which Dtv cannot comply with due to the nature of its purpose.

(1) In theory the standalone build could continue to run as is, we would just stop upgrading NWJS and remain on the last chromium version that supports Mv2.
This is likely the option I will take, as I am not prepared to invest time to research, convert/replace/rewrite code.

A taste of what will become necessary:
To migrate to Mv3 will require some significant changes.
https://developer.chrome.com/docs/extensions/mv3/intro/mv3-migration/

Additionally, background scripts become service workers, which will need to change in a whole bunch of ways, as timers need to move to alarms, among other requirements.
https://developer.chrome.com/docs/extensions/mv2/background_pages/

Also in the pipeline: Developers should expect that WebSQL itself will be deprecated and removed when usage is low enough. Chromium 101 already Remove WebSQL in Third-Party Contexts but this does not appear to impact Dtv.

I definitely will not be converting/migrating the websql code to Indexed Database ahead of websql being switched off,
and will action option (1).

Unless, of course, some bright volunteer takes over and starts bringing Dtv up to date.

@garfield69 garfield69 pinned this issue May 3, 2022
@CummingCowGirl
Copy link

Think since no one seems to b e willing to bring DTV up to date it's time to finally die, cause if it's not a security risk now it will be. I'm heading over to Tweak4All and ask Han's if he's interested or knows someone interested in breathing life into DTV. I for one would love to see it survive as a proper alternative to Sonarr. Without a lot of the CRAP the Sonarr devs think are important.

@garfield69
Copy link
Collaborator Author

Its happened. Chromium 119 has removed Web SQL
https://developer.chrome.com/blog/deprecating-web-sql/

So Dtv will not longer work on chrome browser.

That leaves only Dtv Standalone where we can lock in the last chromium to 118 for as long as that keeps running.

@Js41637
Copy link
Collaborator

Js41637 commented Nov 1, 2023

You can get WebSQL back by enabling a chrome flag, i am unsure when and if they will be removing it though.
chrome://flags/#web-sql-access

@garfield69
Copy link
Collaborator Author

With Chromium 124 the WEB SQL support has been removed.

@Js41637
Copy link
Collaborator

Js41637 commented Apr 19, 2024

I don't know how but I somehow managed to get manifest V3 working and replaced using WebSQL with SQLite though i have not really tested it much yet but it loads and i can add a show.
angular...feat/manifest-v3-insanity

WebSQL is basically identical to Sqlite so there really isn't any changes needed except for a couple edge cases. The only real problem is using sqlite as it requires web assembly and Chrome has made it really painful to use without having to jump through a heap of hoops 😒

@dewerl
Copy link

dewerl commented May 9, 2024

So, any plans on switching to SQLite instead of WebSQL för the browser extension? Been using DuckieTV for several years and I'm now on the "last" Chrome version where you still can activate WebSQL. Tried the standalone version, but it just hangs and won't start most of the time (Macbook Pro, M1). Tried Sonarr briefly but I didn't like it as much as I do with DuckieTV which, as I said, has been a steady companion for years... so, any thought on migrating to SQLite?

@Js41637
Copy link
Collaborator

Js41637 commented May 10, 2024

Well there is the branch which you could try I guess. It seems to work but I suspect the performance is not going to be as good as there is more hoops to jump through when using sqlite compared to websql. It would also require importing a backup as there is no way to migrate existing data.

I was looking into if we can build a proper ARM build of the standalone version to see if it would work better for macs but the build tool is basically impossible to test and we have little control over it....

@garfield69

This comment was marked as outdated.

@garfield69

This comment was marked as resolved.

@Js41637
Copy link
Collaborator

Js41637 commented May 10, 2024

I think it is possible to add arm support to the build script but I cannot test it, it depends on programs and tools that I don't have and I cannot find. I managed to test the building and making the binary but the package binary part I cannot run. It's possible it just works but I am not sure. I pushed it to a branch DuckieTV/duckietv-builder@9880d5d

As for the sqlite thing. Another thing is it uses some special chrome storage thing. I don't really understand how it works or how persistent the storage is. Another downside is it's impossible to access the database file externally. Chrome stores it in some special way that is only accessable to Chrome.

@garfield69

This comment was marked as resolved.

@garfield69

This comment was marked as resolved.

@Js41637
Copy link
Collaborator

Js41637 commented May 10, 2024

The ARM version seems to work great. I haven't noticed any freezing that happened with the x64 version yet.

I have no idea what that error means though. The code that line is on seems unchanged from the original, that folder should exist it's not related to the build? And makes no sense it would work for one and not the next unless it's getting deleted somehow?

@garfield69

This comment was marked as resolved.

@garfield69
Copy link
Collaborator Author

garfield69 commented May 10, 2024

@dewerl Please try out the arm64 package at https://github.com/DuckieTV/Nightlies/releases/latest and let us know how it goes.
[edit] updated the link

@Js41637

This comment was marked as resolved.

@garfield69

This comment was marked as resolved.

@garfield69

This comment was marked as resolved.

@dewerl
Copy link

dewerl commented May 11, 2024

Hi, thanks for the effort guys! Tested both the insanity-branch browser extension and the arm64 package.

The browser extension works pretty good! It's a bit slow importing a backup (~175 shows). I read your heads up about that but other than that I think it performs rather well (the things I've tried, automatic downloading, searching etc. - no issue here). One drawback for me it that's it only the new tab (for now?) as I've been using the browser action extension for years. I have other things set up for my new tab that I need and constantly working with in my work so a browser action extension would be much preferred of course.

The arm64 package works much much better than the Intel package on my Macbook Pro M1 Pro. Loads great, no hangs, importing a backup from browser action extension - no problem, downloading, searching all ok. One thing I've noticed is that it seems that it's not saving the window position or if the window is maximized. When quiting and starting it again the window position is back to default (centered and not maximized etc.).

I very much appreciate you fixing this as DuckieTV is very much one extension I just can't live without 😊.

Thanks again!

@dewerl
Copy link

dewerl commented May 14, 2024

@Js41637 Any plans or thoughts on doing the same change you did with WebSQL -> SQLite for the browser action extension?

@dewerl
Copy link

dewerl commented May 25, 2024

@Js41637 Any plans or thoughts on doing the same change you did with WebSQL -> SQLite for the browser action extension?

Any plans on fixing the browser action extension? Thanks.

@dewerl
Copy link

dewerl commented Jun 9, 2024

Hi, saw that there was a new version released. No updates for the browser action extension and the WebSQL "issue" right (couldn't see anything about it in the release notes anyway)? Don't want to upgrade my browser and find out that the browser action extension stops working. Thanks.

@garfield69
Copy link
Collaborator Author

only changed the mirror resolver for the search engine TPB

@dewerl
Copy link

dewerl commented Jun 9, 2024

Thanks for the info! Any plans on implementing the WebSQL -> SQLite "fix" for the browser action extension? Seems to work when I tested it anyway?

@garfield69
Copy link
Collaborator Author

Any plans on implementing the WebSQL -> SQLite "fix" for the browser action extension?

I'm the wrong person to ask.
I took a look. the code that enables the browser button to launch dtv action mode is what needs to be updated, everything else is the same code as for the dtv tab mode.
However I cannot figure out how to convert the background launch script to service worker script. Not my cup of tea.

@dewerl
Copy link

dewerl commented Jun 9, 2024

Thanks, appreciate it! I understand. I'm just curious if it's something you consider to fix eventually?
So, it doesn't sound that it's that much work then to "switch" to the SQLite route? Is it something that @Js41637 is more familiar with and can sort out perhaps?

@garfield69
Copy link
Collaborator Author

It will not go mainline until NWJS supports v3 manifests so that standalone builds work.
At the moment NWJS works on v2 manifests and appears to patch chromium 125 with WEBSQL support so there is no urgency to switch to sqlite+v3 manifest.
I will not try to support two different streams of Dtv, one for standalone and the other for browsers. I don't have time to support both flavours and I prefer to give standalone priority.

@dewerl
Copy link

dewerl commented Jun 9, 2024

Ok, got it. Thanks for your answer. Then I know a bit more on your thoughts going forward ✌🏻

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

No branches or pull requests

4 participants