-
Notifications
You must be signed in to change notification settings - Fork 892
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
Fix failing component auto-updates #7164
Conversation
33d7834
to
6c7be95
Compare
@jumde the implementation is complete from my side. Can you review, or can you suggest someone else to review? (It's only my second PR to brave-core.) |
patches/components-component_updater-component_updater_service.cc.patch
Outdated
Show resolved
Hide resolved
c309d11
to
18555cd
Compare
540bb4a
to
c4dd298
Compare
@jumde just so it's visible here too, instead of hidden in the review conversation: the PR is ready to merge from my side (excl. squash, rebase and potentially removing log statements). I'd kindly ask that you review please and let me know what you think. |
50e468d
to
1533918
Compare
@mkarolin @bridiver can I also request your review on this? (@jumde suggested I ask you.) The short summary is: When you open (edit: I accidentally tagged @pes10k as reviewer at first) |
@mherrmann - This fix also installs components (during auto-update) that shouldn't be shipped with Brave like |
@jumde do you have an idea why those components are being installed? |
@mherrmann - I need to dig into the chromium code to see why this might be happening. |
Okay, thank you. As a workaround, could we make go-update return "no update" responses for those components we do not wish to be installed? |
I think it would be easy to fix this on brave-core. If we do it on go-update, this will require updating go-update every time a component is added to the chromium code and it adds a testing burden as well. |
Ah, I see. That makes sense. Thank you. I'm very curious what you'll find about those additionally installed components. |
@jumde I develop on Linux. I just started Brave Nightly v1.19.36 on a Windows VM I haven't touched in a month. I have the components you mentioned also on this Windows VM: You wrote that my PR here installs these unwanted components. Do I presume correctly that you actually meant that my PR updates these components, possibly from a non-existent skeleton implementation? I'll dig a little further how these components get there in the first place. |
After some further digging, I have a better understanding how components are installed. Chromium installs its components in What I don't understand is that apparently there is a wish to exclude certain Google components from being shipped with Brave. But besides some extra Brave components, my components in Chrome and Brave are basically the same. The closest thing I could find to an implementation is |
1533918
to
ac3e1f6
Compare
@jumde kindly pointed me to https://github.com/brave/brave-browser/wiki/Brave-Components, which lists the components officially supported by Brave, and those officially unsupported. What surprises me is that my local Brave installation has many of the components that are supposed to be unsupported. For example, "Certificate Error Assistant" and "Crowd Deny". @jumde also pointed out that components can be excluded from Brave by overriding their Coming back to this PR: It doesn't seem to me like it installs any components that shouldn't be there. But yes, it does update all components, including the unwanted ones. If updating unwanted components is a problem, then this PR shouldn't be merged yet and we have to prevent the components from being there in the first place. Otherwise, I would tackle removing these unwanted components in the separate existing issue brave/brave-browser#8709. @jumde do you see an issue with merging this PR and tackling brave/brave-browser#8709 separately? |
After reading brave/brave-browser#10607 (comment), I think I can answer my question myself. It probably would be a problem to merge this PR. The reason is that while Brave does not prevent Chromium from registering unwanted components, it does not install them. My suspicion is that Chromium installs components by registering them with version So yes, I do think that we should tackle brave/brave-browser#8709 before merging this PR. |
e74d017
to
9661d35
Compare
Tested the latest CI build for this PR on Linux (brave-browser-nightly_1.20.47_amd64.deb). Works as expected for me. After 60 seconds on Note how there are no update errors. The only question mark is the new "Hyphenation" component. It seems this was introduced in a recent Chromium version. If Brave does not want to include it, then we should block it as in #7331. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tested on macOS and works as expected. CI passed on all.
Kindly ping to @brave/patch-reviewers :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
ec48aed
to
76e4eeb
Compare
I rebased onto |
The post-init check fails because of what I believe is a bug in
The person who recently committed the |
76e4eeb
to
acd15a0
Compare
Merging as the last change was minor. |
Resolves brave/brave-browser#10464
Also resolves brave/brave-browser#10280
Submitter Checklist:
QA/Yes
orQA/No
;release-notes/include
orrelease-notes/exclude
;OS/...
) to the associated issuenpm run test -- brave_browser_tests
,npm run test -- brave_unit_tests
,npm run lint
,npm run gn_check
,npm run tslint
git rebase master
(if needed).Reviewer Checklist:
gn
After-merge Checklist:
changes has landed on.
Test Plan: