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

Support loading specific extension DAT versions by brave-core version #7316

Open
antonok-edm opened this issue Dec 10, 2019 · 4 comments
Open
Assignees

Comments

@antonok-edm
Copy link
Contributor

Extension DAT files are already versioned. It would be very useful if brave-core could be directed to only download available updates to DAT files if they are of compatible versions. This would allow adding new, backwards-incompatible features to e.g. the adblocking and HTTPS everywhere libraries.

Once this is supported, the CRX updater could be changed to generate new DAT file releases for each incompatible version.

@bbondy
Copy link
Member

bbondy commented Dec 17, 2019

The versioning within the crx component will not work on its own without duplicating the data within the crx file because we use the same extension across all channels.

How big is the serialized data file size?

What we'd have to do is for a single extension crx, duplicate the data for each version, so that the old versions can still use the same extension.

One way to solve it is to add in extra info about which CRX to actually serve from the brave/go-update server.

But I think an easier way would be to just decide to "deprecate" an extension in favour of a newer one with a new ID. It would involve uninstalling the old ID too. Then it would in effect lock the changes to whatever channels have the changeset.

@antonok-edm
Copy link
Contributor Author

Is there no way to have major and minor versions for a CRX, and lock versions of Brave to a particular major CRX version? If not, I think the "deprecating" solution should effectively produce the same result.

The data files are on the order of several megabytes in size; duplicating the data wouldn't be ideal.

@bbondy
Copy link
Member

bbondy commented Dec 19, 2019

The Chromium version is already sent up to go-update, but we don't have any logic in that server to serve different things depending on the chromium version yet.
I think the easiest most straight forward way will be as I said to just deprecate an old extension in favor of a new one or now.

@bbondy
Copy link
Member

bbondy commented Dec 19, 2019

Otherwise you can add the support in here:
https://github.com/brave/go-update

It'd be nice to have, just involves a bit more work and requires you to be able to set it somehow, maybe via brave-core-crx-packager since that's what writes to the db now.

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

No branches or pull requests

3 participants