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

Proposal: exclusion of account/signin/gaia code #520

Closed
csagan5 opened this issue Sep 24, 2018 · 5 comments
Closed

Proposal: exclusion of account/signin/gaia code #520

csagan5 opened this issue Sep 24, 2018 · 5 comments

Comments

@csagan5
Copy link
Contributor

csagan5 commented Sep 24, 2018

In light of recent directions of upstream (1, 2) I would like to completely rip out the relative code, more as a statement than anything else (the relevant functions have been always dormant in Bromite, and I think it is not a supported feature of ungoogled-chromium as well?).

This should cause some more maintenance work (as this area I bet is one of the most active upstream), but on the other hand work as a sort of "preservation project" to let us understand how Chromium without cloud works/worked, and be capable of keeping it in this state for longer by learning more about the internals.

My idea would be to change chrome/browser/BUILD.gn this way:

--- chrome/browser/BUILD.gn	2018-09-23 17:16:40.264000000 +0200
+++ chrome/browser/BUILD.gn.new	2018-09-24 23:25:36.239894176 +0200
@@ -1366,50 +1366,10 @@
     "shell_integration_mac.mm",
     "shell_integration_win.cc",
     "shell_integration_win.h",
-    "signin/about_signin_internals_factory.cc",
-    "signin/about_signin_internals_factory.h",
-    "signin/account_consistency_mode_manager.cc",
-    "signin/account_consistency_mode_manager.h",
-    "signin/account_fetcher_service_factory.cc",
-    "signin/account_fetcher_service_factory.h",
-    "signin/account_investigator_factory.cc",
-    "signin/account_investigator_factory.h",
-    "signin/account_reconcilor_factory.cc",
-    "signin/account_reconcilor_factory.h",
-    "signin/account_tracker_service_factory.cc",
-    "signin/account_tracker_service_factory.h",
-    "signin/chrome_signin_client.cc",
-    "signin/chrome_signin_client.h",
-    "signin/chrome_signin_client_factory.cc",
-    "signin/chrome_signin_client_factory.h",
-    "signin/chrome_signin_helper.cc",
-    "signin/chrome_signin_helper.h",
-    "signin/gaia_cookie_manager_service_factory.cc",
-    "signin/gaia_cookie_manager_service_factory.h",
-    "signin/identity_manager_factory.cc",
-    "signin/identity_manager_factory.h",
     "signin/investigator_dependency_provider.cc",
     "signin/investigator_dependency_provider.h",
     "signin/local_auth.cc",
     "signin/local_auth.h",
-    "signin/profile_oauth2_token_service_factory.cc",
-    "signin/profile_oauth2_token_service_factory.h",
-    "signin/signin_error_controller_factory.cc",
-    "signin/signin_error_controller_factory.h",
-    "signin/signin_manager_factory.cc",
-    "signin/signin_manager_factory.h",
-    "signin/signin_promo_util.cc",
-    "signin/signin_promo_util.h",
-    "signin/signin_status_metrics_provider_chromeos.cc",
-    "signin/signin_status_metrics_provider_chromeos.h",
-    "signin/signin_tracker_factory.cc",
-    "signin/signin_tracker_factory.h",
-    "signin/signin_updater.cc",
-    "signin/signin_updater.h",
-    "signin/signin_updater_factory.cc",
-    "signin/signin_updater_factory.h",
-    "signin/signin_util.cc",
-    "signin/signin_util.h",
     "signin/unified_consent_helper.cc",
     "signin/unified_consent_helper.h",
     "site_details.cc",

And perhaps more, and then fix the breakage. For some similar work done by @thermatk see the patches at bottom here: https://github.com/bromite/bromite/tree/master/patches (with "kill" in the name).

I think upstream enabled the "account consistency mode" (which in hindsight sounds a lot like "this is not automatic signin", but it is) in this commit:

I think we make a service to the users by removing each and every bit of these dependencies, for the present and future/planned use of them.

@Eloston
Copy link
Member

Eloston commented Sep 24, 2018

I like this idea. I've thought about this further by stripping out the directories dedicated to Google integration (it'll increase certainty that no communication is happening with Google beyond URLRequests, and also reduce dead code), but never had time to resolve all of the code that broke as a result. For now, just removing signin files should be good enough.

If you go through with it, feel free to submit a PR. 👍

@csagan5
Copy link
Contributor Author

csagan5 commented Oct 17, 2018

I will have time to start working on this next week; I will report back my findings. My hope is that the impact in code changes is manageable.

@csagan5
Copy link
Contributor Author

csagan5 commented Oct 27, 2019

The most sane approach seems to be to use the "fake" gaia which is normally used for tests; perhaps a similar approach could be used for the account/signin part.

@csagan5
Copy link
Contributor Author

csagan5 commented Oct 3, 2020

In recent news: https://sector035.nl/articles/getting-a-grasp-on-google-ids

@csagan5
Copy link
Contributor Author

csagan5 commented Jul 22, 2021

I have tried removing the signin component and have had to give up. The dependencies are deep; in particular, IdentityManager is used in a lot of places and right after removing it you will have to remove Payments, ShoppingPersistedTabData/Commerce, EndpointFetcher, DocumentSuggestions, safety_check, page_annotations, Autofill. I stopped right there.

One thing is confirmed: the signin component is wired to everything we don't want/need in a free browser.

@csagan5 csagan5 closed this as completed Jul 22, 2021
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

2 participants