Remove-signin-and-data-saver-integrations.patch 49 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957
  1. From: csagan5 <32685696+csagan5@users.noreply.github.com>
  2. Date: Tue, 12 Jun 2018 14:23:07 +0200
  3. Subject: Remove signin and data saver integrations
  4. Prevents authorization prompt for Play services on reboot
  5. Remove recent tabs signin
  6. Disable data saver
  7. Never show the data saver promo snackbar
  8. Disable unused permissions from manifest
  9. Disable sync adaptive and invalidation services from manifest
  10. More permissions removal from manifest
  11. Fix building with debug symbols:
  12. ld.lld: error: undefined symbol: notifier::NotifierOptions::NotifierOptions()
  13. >>> referenced by invalidation_service_util.cc:17 (../../components/invalidation/impl/invalidation_service_util.cc:17)
  14. >>> impl/invalidation_service_util.o:(invalidation::ParseNotifierOptions(base::CommandLine const&)) in archive obj/components/invalidation/impl/libimpl.a
  15. ---
  16. chrome/android/BUILD.gn | 3 +-
  17. chrome/android/java/AndroidManifest.xml | 18 ---
  18. .../android/java/res/xml/main_preferences.xml | 9 --
  19. .../chrome/browser/app/ChromeActivity.java | 34 ------
  20. .../DataReductionPreferenceFragment.java | 24 +---
  21. .../privacy/settings/PrivacySettings.java | 13 +--
  22. .../chrome/browser/settings/MainSettings.java | 108 +-----------------
  23. .../chrome/browser/signin/SigninManager.java | 62 ++--------
  24. .../browser/sync/AndroidSyncSettings.java | 24 +---
  25. .../settings/SyncAndServicesSettings.java | 8 --
  26. .../android/signin/signin_manager_android.cc | 1 -
  27. .../strings/android_chrome_strings.grd | 12 --
  28. .../signin/SystemAccountManagerDelegate.java | 38 +-----
  29. .../net/HttpNegotiateAuthenticator.java | 88 +-------------
  30. .../chromoting/base/OAuthTokenFetcher.java | 2 -
  31. 15 files changed, 28 insertions(+), 416 deletions(-)
  32. diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
  33. --- a/chrome/android/BUILD.gn
  34. +++ b/chrome/android/BUILD.gn
  35. @@ -1428,8 +1428,7 @@ jinja_template_resources("chrome_public_apk_template_resources") {
  36. resources = [
  37. "java/res_template/xml/file_paths.xml",
  38. "java/res_template/xml/launchershortcuts.xml",
  39. - "java/res_template/xml/searchable.xml",
  40. - "java/res_template/xml/syncadapter.xml",
  41. + "java/res_template/xml/searchable.xml"
  42. ]
  43. res_dir = "java/res_template"
  44. variables = [ "manifest_package=$chrome_public_manifest_package" ]
  45. diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
  46. --- a/chrome/android/java/AndroidManifest.xml
  47. +++ b/chrome/android/java/AndroidManifest.xml
  48. @@ -44,23 +44,17 @@ by a child template that "extends" this file.
  49. {% if target_sdk_version|int > 27 or target_sdk_version == "Q" %}
  50. <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
  51. {% endif %}
  52. - <uses-permission android:name="android.permission.GET_ACCOUNTS"/>
  53. <uses-permission android:name="android.permission.INTERNET"/>
  54. - <uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>
  55. <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
  56. <uses-permission android:name="android.permission.NFC"/>
  57. <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
  58. - <uses-permission android:name="android.permission.READ_SYNC_SETTINGS"/>
  59. - <uses-permission android:name="android.permission.READ_SYNC_STATS"/>
  60. <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
  61. <uses-permission android:name="android.permission.RECORD_AUDIO"/>
  62. - <uses-permission android:name="android.permission.USE_CREDENTIALS"/>
  63. <uses-permission-sdk-23 android:name="android.permission.USE_BIOMETRIC"/>
  64. <uses-permission-sdk-23 android:name="android.permission.USE_FINGERPRINT"/>
  65. <uses-permission android:name="android.permission.VIBRATE"/>
  66. <uses-permission android:name="android.permission.WAKE_LOCK"/>
  67. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  68. - <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS"/>
  69. {% set enable_vr = enable_vr|default(0) %}
  70. {% if enable_vr == "true" %}
  71. <!-- Indicates use of Android's VR-mode, available only on Android N+. -->
  72. @@ -101,8 +95,6 @@ by a child template that "extends" this file.
  73. <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
  74. <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
  75. - <uses-permission android:name="com.google.android.apps.now.CURRENT_ACCOUNT_ACCESS" />
  76. -
  77. {% block extra_uses_permissions %}
  78. {% endblock %}
  79. @@ -881,16 +873,6 @@ by a child template that "extends" this file.
  80. android:resource="@xml/file_paths" />
  81. </provider>
  82. - <!-- Sync adapter for browser invalidation. -->
  83. - <service android:name="org.chromium.chrome.browser.invalidation.ChromeBrowserSyncAdapterService"
  84. - android:exported="false">
  85. - <intent-filter>
  86. - <action android:name="android.content.SyncAdapter" />
  87. - </intent-filter>
  88. - <meta-data android:name="android.content.SyncAdapter"
  89. - android:resource="@xml/syncadapter" />
  90. - </service>
  91. -
  92. <!-- Broadcast receiver that will be notified of account changes -->
  93. <receiver android:name="org.chromium.chrome.browser.services.AccountsChangedReceiver">
  94. <intent-filter>
  95. diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
  96. --- a/chrome/android/java/res/xml/main_preferences.xml
  97. +++ b/chrome/android/java/res/xml/main_preferences.xml
  98. @@ -20,10 +20,6 @@
  99. android:order="2"
  100. android:title="@string/prefs_section_account_and_google_services"
  101. app:isPreferenceVisible="false"/>
  102. - <org.chromium.chrome.browser.sync.settings.SignInPreference
  103. - android:key="sign_in"
  104. - android:order="3"
  105. - android:title="@string/sign_in_to_chrome"/>
  106. <org.chromium.components.browser_ui.settings.ChromeBasePreference
  107. android:key="manage_sync"
  108. android:order="5"
  109. @@ -108,11 +104,6 @@
  110. android:key="languages"
  111. android:order="21"
  112. android:title="@string/language_settings"/>
  113. - <org.chromium.components.browser_ui.settings.ChromeBasePreference
  114. - android:fragment="org.chromium.chrome.browser.datareduction.settings.DataReductionPreferenceFragment"
  115. - android:key="data_reduction"
  116. - android:order="22"
  117. - android:title="@string/data_reduction_title_lite_mode"/>
  118. <org.chromium.components.browser_ui.settings.ChromeBasePreference
  119. android:fragment="org.chromium.chrome.browser.download.settings.DownloadSettings"
  120. android:key="downloads"
  121. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
  122. --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
  123. +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
  124. @@ -132,8 +132,6 @@ import org.chromium.chrome.browser.settings.SettingsLauncher;
  125. import org.chromium.chrome.browser.settings.SettingsLauncherImpl;
  126. import org.chromium.chrome.browser.share.ShareDelegate;
  127. import org.chromium.chrome.browser.share.ShareDelegateImpl;
  128. -import org.chromium.chrome.browser.sync.ProfileSyncService;
  129. -import org.chromium.chrome.browser.sync.SyncController;
  130. import org.chromium.chrome.browser.tab.AccessibilityVisibilityHandler;
  131. import org.chromium.chrome.browser.tab.Tab;
  132. import org.chromium.chrome.browser.tab.TabDelegateFactory;
  133. @@ -257,9 +255,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
  134. private boolean mRemoveWindowBackgroundDone;
  135. protected AccessibilityVisibilityHandler mAccessibilityVisibilityHandler;
  136. - // Observes when sync becomes ready to create the mContextReporter.
  137. - private ProfileSyncService.SyncStateChangedListener mSyncStateChangedListener;
  138. -
  139. // The PictureInPictureController is initialized lazily https://crbug.com/729738.
  140. private PictureInPictureController mPictureInPictureController;
  141. @@ -846,28 +841,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
  142. private void createContextReporterIfNeeded() {
  143. if (!mStarted) return; // Sync state reporting should work only in started state.
  144. if (mContextReporter != null || getActivityTab() == null) return;
  145. -
  146. - final SyncController syncController = SyncController.get();
  147. - final ProfileSyncService syncService = ProfileSyncService.get();
  148. -
  149. - if (syncController != null && syncController.isSyncingUrlsWithKeystorePassphrase()) {
  150. - assert syncService != null;
  151. - mContextReporter = AppHooks.get().createGsaHelper().getContextReporter(this);
  152. -
  153. - if (mSyncStateChangedListener != null) {
  154. - syncService.removeSyncStateChangedListener(mSyncStateChangedListener);
  155. - mSyncStateChangedListener = null;
  156. - }
  157. -
  158. - return;
  159. - } else {
  160. - ContextReporter.reportSyncStatus(syncService);
  161. - }
  162. -
  163. - if (mSyncStateChangedListener == null && syncService != null) {
  164. - mSyncStateChangedListener = () -> createContextReporterIfNeeded();
  165. - syncService.addSyncStateChangedListener(mSyncStateChangedListener);
  166. - }
  167. }
  168. @Override
  169. @@ -933,13 +906,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
  170. if (GSAState.getInstance(this).isGsaAvailable() && !SysUtils.isLowEndDevice()) {
  171. GSAAccountChangeListener.getInstance().disconnect();
  172. }
  173. - if (mSyncStateChangedListener != null) {
  174. - ProfileSyncService syncService = ProfileSyncService.get();
  175. - if (syncService != null) {
  176. - syncService.removeSyncStateChangedListener(mSyncStateChangedListener);
  177. - }
  178. - mSyncStateChangedListener = null;
  179. - }
  180. if (mContextReporter != null) mContextReporter.disable();
  181. super.onStopWithNative();
  182. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/datareduction/settings/DataReductionPreferenceFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/datareduction/settings/DataReductionPreferenceFragment.java
  183. --- a/chrome/android/java/src/org/chromium/chrome/browser/datareduction/settings/DataReductionPreferenceFragment.java
  184. +++ b/chrome/android/java/src/org/chromium/chrome/browser/datareduction/settings/DataReductionPreferenceFragment.java
  185. @@ -56,10 +56,10 @@ public class DataReductionPreferenceFragment extends PreferenceFragmentCompat {
  186. public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
  187. SettingsUtils.addPreferencesFromResource(this, R.xml.data_reduction_preferences);
  188. getActivity().setTitle(R.string.data_reduction_title_lite_mode);
  189. - boolean isEnabled = DataReductionProxySettings.getInstance().isDataReductionProxyEnabled();
  190. - mIsEnabled = !isEnabled;
  191. - mWasEnabledAtCreation = isEnabled;
  192. - updatePreferences(isEnabled);
  193. +
  194. + mIsEnabled = false;
  195. + mWasEnabledAtCreation = false;
  196. + updatePreferences(false);
  197. setHasOptionsMenu(true);
  198. @@ -175,21 +175,7 @@ public class DataReductionPreferenceFragment extends PreferenceFragmentCompat {
  199. * Returns summary string.
  200. */
  201. public static String generateSummary(Resources resources) {
  202. - if (DataReductionProxySettings.getInstance().isDataReductionProxyEnabled()) {
  203. - ContentLengths length = DataReductionProxySettings.getInstance().getContentLengths();
  204. -
  205. - // If received is less than show chart threshold than don't show summary.
  206. - if (ConversionUtils.bytesToKilobytes(length.getReceived())
  207. - < DataReductionProxySettings.DATA_REDUCTION_SHOW_CHART_KB_THRESHOLD) {
  208. - return "";
  209. - }
  210. -
  211. - String percent = generatePercentSavings(length);
  212. - return resources.getString(
  213. - R.string.data_reduction_menu_item_summary_lite_mode, percent);
  214. - } else {
  215. - return (String) resources.getText(R.string.text_off);
  216. - }
  217. + return (String) resources.getText(R.string.text_off);
  218. }
  219. /**
  220. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
  221. --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
  222. +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
  223. @@ -42,11 +42,10 @@ public class PrivacySettings
  224. private static final String PREF_NETWORK_PREDICTIONS = "preload_pages";
  225. private static final String PREF_SECURE_DNS = "secure_dns";
  226. private static final String PREF_DO_NOT_TRACK = "do_not_track";
  227. - private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link";
  228. private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
  229. private static final String[] NEW_PRIVACY_PREFERENCE_ORDER = {PREF_CLEAR_BROWSING_DATA,
  230. PREF_CAN_MAKE_PAYMENT, PREF_NETWORK_PREDICTIONS,
  231. - PREF_SECURE_DNS, PREF_DO_NOT_TRACK, PREF_SYNC_AND_SERVICES_LINK
  232. + PREF_SECURE_DNS, PREF_DO_NOT_TRACK
  233. };
  234. private ManagedPreferenceDelegate mManagedPreferenceDelegate;
  235. @@ -86,16 +85,6 @@ public class PrivacySettings
  236. Preference secureDnsPref = findPreference(PREF_SECURE_DNS);
  237. secureDnsPref.setVisible(SecureDnsSettings.isUiEnabled());
  238. - Preference syncAndServicesLink = findPreference(PREF_SYNC_AND_SERVICES_LINK);
  239. - NoUnderlineClickableSpan linkSpan = new NoUnderlineClickableSpan(getResources(), view -> {
  240. - SettingsLauncher settingsLauncher = new SettingsLauncherImpl();
  241. - settingsLauncher.launchSettingsActivity(getActivity(), SyncAndServicesSettings.class,
  242. - SyncAndServicesSettings.createArguments(false));
  243. - });
  244. - syncAndServicesLink.setSummary(
  245. - SpanApplier.applySpans(getString(R.string.privacy_sync_and_services_link),
  246. - new SpanApplier.SpanInfo("<link>", "</link>", linkSpan)));
  247. -
  248. updateSummaries();
  249. }
  250. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
  251. --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
  252. +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
  253. @@ -18,10 +18,8 @@ import androidx.preference.PreferenceFragmentCompat;
  254. import org.chromium.base.ContextUtils;
  255. import org.chromium.chrome.R;
  256. -import org.chromium.chrome.browser.datareduction.settings.DataReductionPreferenceFragment;
  257. import org.chromium.chrome.browser.flags.ChromeFeatureList;
  258. import org.chromium.chrome.browser.homepage.HomepageManager;
  259. -import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings;
  260. import org.chromium.chrome.browser.night_mode.NightModeUtils;
  261. import org.chromium.chrome.browser.offlinepages.prefetch.PrefetchConfiguration;
  262. import org.chromium.chrome.browser.password_check.PasswordCheck;
  263. @@ -31,10 +29,6 @@ import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher;
  264. import org.chromium.chrome.browser.profiles.Profile;
  265. import org.chromium.chrome.browser.safety_check.SafetyCheckSettingsFragment;
  266. import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory;
  267. -import org.chromium.chrome.browser.signin.IdentityServicesProvider;
  268. -import org.chromium.chrome.browser.signin.SigninManager;
  269. -import org.chromium.chrome.browser.sync.ProfileSyncService;
  270. -import org.chromium.chrome.browser.sync.settings.SignInPreference;
  271. import org.chromium.chrome.browser.sync.settings.SyncPromoPreference;
  272. import org.chromium.chrome.browser.sync.settings.SyncSettingsUtils;
  273. import org.chromium.chrome.browser.tracing.settings.DeveloperSettings;
  274. @@ -51,8 +45,7 @@ import java.util.Map;
  275. * The main settings screen, shown when the user first opens Settings.
  276. */
  277. public class MainSettings extends PreferenceFragmentCompat
  278. - implements TemplateUrlService.LoadListener, ProfileSyncService.SyncStateChangedListener,
  279. - SigninManager.SignInStateObserver {
  280. + implements TemplateUrlService.LoadListener {
  281. public static final String PREF_SYNC_PROMO = "sync_promo";
  282. public static final String PREF_ACCOUNT_SECTION = "account_section";
  283. public static final String PREF_ACCOUNT_AND_GOOGLE_SERVICES_SECTION =
  284. @@ -67,7 +60,6 @@ public class MainSettings extends PreferenceFragmentCompat
  285. public static final String PREF_UI_THEME = "ui_theme";
  286. public static final String PREF_PRIVACY = "privacy";
  287. public static final String PREF_SAFETY_CHECK = "safety_check";
  288. - public static final String PREF_DATA_REDUCTION = "data_reduction";
  289. public static final String PREF_NOTIFICATIONS = "notifications";
  290. public static final String PREF_DOWNLOADS = "downloads";
  291. public static final String PREF_DEVELOPER = "developer";
  292. @@ -79,7 +71,6 @@ public class MainSettings extends PreferenceFragmentCompat
  293. private final ManagedPreferenceDelegate mManagedPreferenceDelegate;
  294. private final Map<String, Preference> mAllPreferences = new HashMap<>();
  295. private SyncPromoPreference mSyncPromoPreference;
  296. - private SignInPreference mSignInPreference;
  297. private ChromeBasePreference mManageSync;
  298. private @Nullable PasswordCheck mPasswordCheck;
  299. @@ -111,7 +102,6 @@ public class MainSettings extends PreferenceFragmentCompat
  300. public void onDestroy() {
  301. super.onDestroy();
  302. mSyncPromoPreference.onPreferenceFragmentDestroyed();
  303. - mSignInPreference.onPreferenceFragmentDestroyed();
  304. // The component should only be destroyed when the activity has been closed by the user
  305. // (e.g. by pressing on the back button) and not when the activity is temporarily destroyed
  306. // by the system.
  307. @@ -121,33 +111,11 @@ public class MainSettings extends PreferenceFragmentCompat
  308. @Override
  309. public void onStart() {
  310. super.onStart();
  311. - SigninManager signinManager = IdentityServicesProvider.get().getSigninManager(
  312. - Profile.getLastUsedRegularProfile());
  313. - if (signinManager.isSigninSupported()) {
  314. - signinManager.addSignInStateObserver(this);
  315. - mSyncPromoPreference.registerForUpdates();
  316. - mSignInPreference.registerForUpdates();
  317. - }
  318. - ProfileSyncService syncService = ProfileSyncService.get();
  319. - if (syncService != null) {
  320. - syncService.addSyncStateChangedListener(this);
  321. - }
  322. }
  323. @Override
  324. public void onStop() {
  325. super.onStop();
  326. - SigninManager signinManager = IdentityServicesProvider.get().getSigninManager(
  327. - Profile.getLastUsedRegularProfile());
  328. - if (signinManager.isSigninSupported()) {
  329. - signinManager.removeSignInStateObserver(this);
  330. - mSyncPromoPreference.unregisterForUpdates();
  331. - mSignInPreference.unregisterForUpdates();
  332. - }
  333. - ProfileSyncService syncService = ProfileSyncService.get();
  334. - if (syncService != null) {
  335. - syncService.removeSyncStateChangedListener(this);
  336. - }
  337. }
  338. @Override
  339. @@ -182,12 +150,9 @@ public class MainSettings extends PreferenceFragmentCompat
  340. cachePreferences();
  341. - mSignInPreference.setOnStateChangedCallback(this::onSignInPreferenceStateChanged);
  342. -
  343. updatePasswordsPreference();
  344. setManagedPreferenceDelegateForPreference(PREF_SEARCH_ENGINE);
  345. - setManagedPreferenceDelegateForPreference(PREF_DATA_REDUCTION);
  346. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
  347. // If we are on Android O+ the Notifications preference should lead to the Android
  348. @@ -255,7 +220,6 @@ public class MainSettings extends PreferenceFragmentCompat
  349. mAllPreferences.put(preference.getKey(), preference);
  350. }
  351. mSyncPromoPreference = (SyncPromoPreference) mAllPreferences.get(PREF_SYNC_PROMO);
  352. - mSignInPreference = (SignInPreference) mAllPreferences.get(PREF_SIGN_IN);
  353. mManageSync = (ChromeBasePreference) findPreference(PREF_MANAGE_SYNC);
  354. }
  355. @@ -265,24 +229,12 @@ public class MainSettings extends PreferenceFragmentCompat
  356. }
  357. private void updatePreferences() {
  358. - if (IdentityServicesProvider.get()
  359. - .getSigninManager(Profile.getLastUsedRegularProfile())
  360. - .isSigninSupported()) {
  361. - addPreferenceIfAbsent(PREF_SIGN_IN);
  362. - } else {
  363. - removePreferenceIfPresent(PREF_SIGN_IN);
  364. - }
  365. -
  366. - boolean hasPrimaryAccount = IdentityServicesProvider.get()
  367. - .getIdentityManager(Profile.getLastUsedRegularProfile())
  368. - .hasPrimaryAccount();
  369. - boolean isSyncPromoHidden =
  370. - mSyncPromoPreference.getState() == SyncPromoPreference.State.PROMO_HIDDEN;
  371. + boolean hasPrimaryAccount = false;
  372. + boolean isSyncPromoHidden = true;
  373. mManageSync.setVisible(
  374. ChromeFeatureList.isEnabled(ChromeFeatureList.MOBILE_IDENTITY_CONSISTENCY)
  375. && hasPrimaryAccount && isSyncPromoHidden);
  376. - updateSyncAndServicesPreference();
  377. updateSearchEnginePreference();
  378. Preference homepagePref = addPreferenceIfAbsent(PREF_HOMEPAGE);
  379. @@ -299,10 +251,6 @@ public class MainSettings extends PreferenceFragmentCompat
  380. } else {
  381. removePreferenceIfPresent(PREF_DEVELOPER);
  382. }
  383. -
  384. - ChromeBasePreference dataReduction =
  385. - (ChromeBasePreference) findPreference(PREF_DATA_REDUCTION);
  386. - dataReduction.setSummary(DataReductionPreferenceFragment.generateSummary(getResources()));
  387. }
  388. private Preference addPreferenceIfAbsent(String key) {
  389. @@ -316,15 +264,6 @@ public class MainSettings extends PreferenceFragmentCompat
  390. if (preference != null) getPreferenceScreen().removePreference(preference);
  391. }
  392. - private void updateSyncAndServicesPreference() {
  393. - ChromeBasePreference preference = findPreference(
  394. - ChromeFeatureList.isEnabled(ChromeFeatureList.MOBILE_IDENTITY_CONSISTENCY)
  395. - ? PREF_MANAGE_SYNC
  396. - : PREF_SYNC_AND_SERVICES);
  397. - preference.setIcon(SyncSettingsUtils.getSyncStatusIcon(getActivity()));
  398. - preference.setSummary(SyncSettingsUtils.getSyncStatusSummary(getActivity()));
  399. - }
  400. -
  401. private void updateSearchEnginePreference() {
  402. if (!TemplateUrlServiceFactory.get().isLoaded()) {
  403. ChromeBasePreference searchEnginePref =
  404. @@ -356,34 +295,6 @@ public class MainSettings extends PreferenceFragmentCompat
  405. pref.setSummary(isOn ? R.string.text_on : R.string.text_off);
  406. }
  407. - // SigninManager.SignInStateObserver implementation.
  408. - @Override
  409. - public void onSignedIn() {
  410. - // After signing in or out of a managed account, preferences may change or become enabled
  411. - // or disabled.
  412. - new Handler().post(() -> updatePreferences());
  413. - }
  414. -
  415. - @Override
  416. - public void onSignedOut() {
  417. - updatePreferences();
  418. - }
  419. -
  420. - private void onSignInPreferenceStateChanged() {
  421. - // Remove "Account" section header if the personalized sign-in promo is shown. Remove
  422. - // "You and Google" section header if the personalized sync promo is shown.
  423. - boolean isShowingPersonalizedPromo =
  424. - mSignInPreference.getState() == SignInPreference.State.PERSONALIZED_PROMO;
  425. - if (ChromeFeatureList.isEnabled(ChromeFeatureList.MOBILE_IDENTITY_CONSISTENCY)) {
  426. - findPreference(PREF_ACCOUNT_AND_GOOGLE_SERVICES_SECTION)
  427. - .setVisible(!isShowingPersonalizedPromo);
  428. - } else if (isShowingPersonalizedPromo) {
  429. - removePreferenceIfPresent(PREF_ACCOUNT_SECTION);
  430. - } else {
  431. - addPreferenceIfAbsent(PREF_ACCOUNT_SECTION);
  432. - }
  433. - }
  434. -
  435. // TemplateUrlService.LoadListener implementation.
  436. @Override
  437. public void onTemplateUrlServiceLoaded() {
  438. @@ -391,11 +302,6 @@ public class MainSettings extends PreferenceFragmentCompat
  439. updateSearchEnginePreference();
  440. }
  441. - @Override
  442. - public void syncStateChanged() {
  443. - updateSyncAndServicesPreference();
  444. - }
  445. -
  446. @VisibleForTesting
  447. public ManagedPreferenceDelegate getManagedPreferenceDelegateForTest() {
  448. return mManagedPreferenceDelegate;
  449. @@ -405,9 +311,6 @@ public class MainSettings extends PreferenceFragmentCompat
  450. return new ChromeManagedPreferenceDelegate() {
  451. @Override
  452. public boolean isPreferenceControlledByPolicy(Preference preference) {
  453. - if (PREF_DATA_REDUCTION.equals(preference.getKey())) {
  454. - return DataReductionProxySettings.getInstance().isDataReductionProxyManaged();
  455. - }
  456. if (PREF_SEARCH_ENGINE.equals(preference.getKey())) {
  457. return TemplateUrlServiceFactory.get().isDefaultSearchManaged();
  458. }
  459. @@ -416,11 +319,6 @@ public class MainSettings extends PreferenceFragmentCompat
  460. @Override
  461. public boolean isPreferenceClickDisabledByPolicy(Preference preference) {
  462. - if (PREF_DATA_REDUCTION.equals(preference.getKey())) {
  463. - DataReductionProxySettings settings = DataReductionProxySettings.getInstance();
  464. - return settings.isDataReductionProxyManaged()
  465. - && !settings.isDataReductionProxyEnabled();
  466. - }
  467. if (PREF_SEARCH_ENGINE.equals(preference.getKey())) {
  468. return TemplateUrlServiceFactory.get().isDefaultSearchManaged();
  469. }
  470. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java
  471. --- a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java
  472. +++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java
  473. @@ -23,7 +23,6 @@ import org.chromium.base.metrics.RecordUserAction;
  474. import org.chromium.base.task.PostTask;
  475. import org.chromium.chrome.browser.externalauth.ExternalAuthUtils;
  476. import org.chromium.chrome.browser.sync.AndroidSyncSettings;
  477. -import org.chromium.components.signin.AccountTrackerService;
  478. import org.chromium.components.signin.AccountUtils;
  479. import org.chromium.components.signin.base.CoreAccountInfo;
  480. import org.chromium.components.signin.identitymanager.ClearAccountsAction;
  481. @@ -50,7 +49,7 @@ import java.util.List;
  482. * See chrome/browser/signin/signin_manager_android.h for more details.
  483. */
  484. public class SigninManager
  485. - implements AccountTrackerService.OnSystemAccountsSeededListener, IdentityManager.Observer {
  486. + implements IdentityManager.Observer {
  487. private static final String TAG = "SigninManager";
  488. /**
  489. @@ -168,7 +167,6 @@ public class SigninManager
  490. * This is not final, as destroy() updates this.
  491. */
  492. private long mNativeSigninManagerAndroid;
  493. - private final AccountTrackerService mAccountTrackerService;
  494. private final IdentityManager mIdentityManager;
  495. private final IdentityMutator mIdentityMutator;
  496. private final AndroidSyncSettings mAndroidSyncSettings;
  497. @@ -206,24 +204,22 @@ public class SigninManager
  498. */
  499. @CalledByNative
  500. private static SigninManager create(long nativeSigninManagerAndroid,
  501. - AccountTrackerService accountTrackerService, IdentityManager identityManager,
  502. + IdentityManager identityManager,
  503. IdentityMutator identityMutator) {
  504. assert nativeSigninManagerAndroid != 0;
  505. - assert accountTrackerService != null;
  506. assert identityManager != null;
  507. assert identityMutator != null;
  508. - return new SigninManager(nativeSigninManagerAndroid, accountTrackerService, identityManager,
  509. + return new SigninManager(nativeSigninManagerAndroid, identityManager,
  510. identityMutator, AndroidSyncSettings.get(), ExternalAuthUtils.getInstance());
  511. }
  512. @VisibleForTesting
  513. - SigninManager(long nativeSigninManagerAndroid, AccountTrackerService accountTrackerService,
  514. + SigninManager(long nativeSigninManagerAndroid,
  515. IdentityManager identityManager, IdentityMutator identityMutator,
  516. AndroidSyncSettings androidSyncSettings, ExternalAuthUtils externalAuthUtils) {
  517. ThreadUtils.assertOnUiThread();
  518. assert androidSyncSettings != null;
  519. mNativeSigninManagerAndroid = nativeSigninManagerAndroid;
  520. - mAccountTrackerService = accountTrackerService;
  521. mIdentityManager = identityManager;
  522. mIdentityMutator = identityMutator;
  523. mAndroidSyncSettings = androidSyncSettings;
  524. @@ -232,7 +228,6 @@ public class SigninManager
  525. mSigninAllowedByPolicy =
  526. SigninManagerJni.get().isSigninAllowedByPolicy(mNativeSigninManagerAndroid);
  527. - mAccountTrackerService.addSystemAccountsSeededListener(this);
  528. mIdentityManager.addObserver(this);
  529. reloadAllAccountsFromSystem();
  530. @@ -245,7 +240,6 @@ public class SigninManager
  531. @CalledByNative
  532. public void destroy() {
  533. mIdentityManager.removeObserver(this);
  534. - mAccountTrackerService.removeSystemAccountsSeededListener(this);
  535. mNativeSigninManagerAndroid = 0;
  536. }
  537. @@ -284,9 +278,7 @@ public class SigninManager
  538. * Returns true if signin can be started now.
  539. */
  540. public boolean isSignInAllowed() {
  541. - return !mFirstRunCheckIsPending && mSignInState == null && mSigninAllowedByPolicy
  542. - && mIdentityManager.getPrimaryAccountInfo(ConsentLevel.SYNC) == null
  543. - && isSigninSupported();
  544. + return false;
  545. }
  546. /**
  547. @@ -341,17 +333,6 @@ public class SigninManager
  548. });
  549. }
  550. - /**
  551. - * Continue pending sign in after system accounts have been seeded into AccountTrackerService.
  552. - */
  553. - @Override
  554. - public void onSystemAccountsSeedingComplete() {
  555. - if (mSignInState != null && mSignInState.mBlockedOnAccountSeeding) {
  556. - mSignInState.mBlockedOnAccountSeeding = false;
  557. - progressSignInFlowCheckPolicy();
  558. - }
  559. - }
  560. -
  561. /**
  562. * Starts the sign-in flow, and executes the callback when finished.
  563. *
  564. @@ -420,11 +401,8 @@ public class SigninManager
  565. }
  566. private void progressSignInFlowSeedSystemAccounts() {
  567. - if (mAccountTrackerService.checkAndSeedSystemAccounts()) {
  568. - progressSignInFlowCheckPolicy();
  569. - } else {
  570. - mSignInState.mBlockedOnAccountSeeding = true;
  571. - }
  572. + Log.w(TAG, "Cancelling the sign-in process as Google Play services is unavailable");
  573. + abortSignIn();
  574. }
  575. /**
  576. @@ -461,19 +439,6 @@ public class SigninManager
  577. // The user should not be already signed in
  578. assert !mIdentityManager.hasPrimaryAccount();
  579. - if (!mIdentityMutator.setPrimaryAccount(mSignInState.mCoreAccountInfo.getId())) {
  580. - Log.w(TAG, "Failed to set the PrimaryAccount in IdentityManager, aborting signin");
  581. - abortSignIn();
  582. - return;
  583. - }
  584. -
  585. - // TODO(https://crbug.com/1091858): Remove this after migrating the legacy code that uses
  586. - // the sync account before the native is loaded.
  587. - SigninPreferencesManager.getInstance().setLegacySyncAccountEmail(
  588. - mSignInState.mCoreAccountInfo.getEmail());
  589. -
  590. - enableSync(mSignInState.mCoreAccountInfo);
  591. -
  592. if (mSignInState.mCallback != null) {
  593. mSignInState.mCallback.onSignInComplete();
  594. }
  595. @@ -629,13 +594,8 @@ public class SigninManager
  596. Log.d(TAG, "On native signout, wipe user data: " + mSignOutState.mShouldWipeUserData);
  597. - // TODO(https://crbug.com/1091858): Remove this after migrating the legacy code that uses
  598. - // the sync account before the native is loaded.
  599. - SigninPreferencesManager.getInstance().setLegacySyncAccountEmail(null);
  600. -
  601. if (mSignOutState.mSignOutCallback != null) mSignOutState.mSignOutCallback.preWipeData();
  602. disableSyncAndWipeData(mSignOutState.mShouldWipeUserData, this::finishSignOut);
  603. - mAccountTrackerService.invalidateAccountSeedStatus(true);
  604. }
  605. void finishSignOut() {
  606. @@ -695,14 +655,6 @@ public class SigninManager
  607. SigninManagerJni.get().stopApplyingCloudPolicy(mNativeSigninManagerAndroid);
  608. }
  609. - private void enableSync(CoreAccountInfo accountInfo) {
  610. - // Cache the signed-in account name. This must be done after the native call, otherwise
  611. - // sync tries to start without being signed in the native code and crashes.
  612. - mAndroidSyncSettings.updateAccount(
  613. - AccountUtils.createAccountFromName(accountInfo.getEmail()));
  614. - mAndroidSyncSettings.enableChromeSync();
  615. - }
  616. -
  617. private void disableSyncAndWipeData(
  618. boolean shouldWipeUserData, final Runnable wipeDataCallback) {
  619. mAndroidSyncSettings.updateAccount(null);
  620. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/AndroidSyncSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/AndroidSyncSettings.java
  621. --- a/chrome/android/java/src/org/chromium/chrome/browser/sync/AndroidSyncSettings.java
  622. +++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/AndroidSyncSettings.java
  623. @@ -216,13 +216,7 @@ public class AndroidSyncSettings {
  624. private void setChromeSyncEnabled(boolean value) {
  625. synchronized (mLock) {
  626. - updateSyncability(null);
  627. - if (value == mChromeSyncEnabled || mAccount == null) return;
  628. - mChromeSyncEnabled = value;
  629. -
  630. - StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskWrites();
  631. - mSyncContentResolverDelegate.setSyncAutomatically(mAccount, mContractAuthority, value);
  632. - StrictMode.setThreadPolicy(oldPolicy);
  633. + mChromeSyncEnabled = false;
  634. }
  635. notifyObservers();
  636. }
  637. @@ -307,19 +301,9 @@ public class AndroidSyncSettings {
  638. boolean oldChromeSyncEnabled = mChromeSyncEnabled;
  639. boolean oldMasterSyncEnabled = mMasterSyncEnabled;
  640. - StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskWrites();
  641. - if (mAccount != null) {
  642. - mIsSyncable =
  643. - mSyncContentResolverDelegate.getIsSyncable(mAccount, mContractAuthority)
  644. - > 0;
  645. - mChromeSyncEnabled = mSyncContentResolverDelegate.getSyncAutomatically(
  646. - mAccount, mContractAuthority);
  647. - } else {
  648. - mIsSyncable = false;
  649. - mChromeSyncEnabled = false;
  650. - }
  651. - mMasterSyncEnabled = mSyncContentResolverDelegate.getMasterSyncAutomatically();
  652. - StrictMode.setThreadPolicy(oldPolicy);
  653. + mIsSyncable = false;
  654. + mChromeSyncEnabled = false;
  655. + mMasterSyncEnabled = false;
  656. return oldChromeSyncEnabled != mChromeSyncEnabled
  657. || oldMasterSyncEnabled != mMasterSyncEnabled;
  658. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/SyncAndServicesSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/SyncAndServicesSettings.java
  659. --- a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/SyncAndServicesSettings.java
  660. +++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/SyncAndServicesSettings.java
  661. @@ -170,15 +170,7 @@ public class SyncAndServicesSettings extends PreferenceFragmentCompat
  662. mPrivacyPrefManager.migrateNetworkPredictionPreferences();
  663. - getActivity().setTitle(R.string.prefs_sync_and_services);
  664. setHasOptionsMenu(true);
  665. - if (mIsFromSigninScreen) {
  666. - ActionBar actionBar = ((AppCompatActivity) getActivity()).getSupportActionBar();
  667. - assert actionBar != null;
  668. - actionBar.setHomeActionContentDescription(
  669. - R.string.prefs_sync_and_services_content_description);
  670. - RecordUserAction.record("Signin_Signin_ShowAdvancedSyncSettings");
  671. - }
  672. SettingsUtils.addPreferencesFromResource(this, R.xml.sync_and_services_preferences);
  673. diff --git a/chrome/browser/android/signin/signin_manager_android.cc b/chrome/browser/android/signin/signin_manager_android.cc
  674. --- a/chrome/browser/android/signin/signin_manager_android.cc
  675. +++ b/chrome/browser/android/signin/signin_manager_android.cc
  676. @@ -140,7 +140,6 @@ SigninManagerAndroid::SigninManagerAndroid(
  677. java_signin_manager_ = Java_SigninManager_create(
  678. base::android::AttachCurrentThread(), reinterpret_cast<intptr_t>(this),
  679. - identity_manager_->LegacyGetAccountTrackerServiceJavaObject(),
  680. identity_manager_->GetJavaObject(),
  681. identity_manager_->GetIdentityMutatorJavaObject());
  682. }
  683. diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
  684. --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
  685. +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
  686. @@ -269,12 +269,6 @@ CHAR-LIMIT guidelines:
  687. <message name="IDS_SIGN_IN_TO_CHROME" desc="Title for the button to sign in to Chrome using one's Google account. [CHAR-LIMIT=27]">
  688. Sign in to Chrome
  689. </message>
  690. - <message name="IDS_PREFS_SYNC_AND_SERVICES" desc="Title for Settings section to manage data collection for Sync and Google services. [CHAR-LIMIT=40]">
  691. - Sync and Google services
  692. - </message>
  693. - <message name="IDS_PREFS_SYNC_AND_SERVICES_CONTENT_DESCRIPTION" desc="The accessibility text to read when the 'Sync and Google services' Settings page is opened from the sign-in page. This text is attached to the 'Navigate Up' button shown at the top of the screen. The first two sentences describe the screen that is currently shown to the user, while 'Navigate up' is a description for the button this text is attached to. 'Navigate up' should match TC ID 6794660482873516081.">
  694. - You are currently customizing your Sync and Google service settings. To finish turning on sync, tap the Confirm button near the bottom of the screen. Navigate up
  695. - </message>
  696. <message name="IDS_SIGNIN_PREF_SUMMARY" desc="Summary for the entry in Settings to sign in to Chrome, explaining benefits of signing in.">
  697. Sync and personalize across devices
  698. </message>
  699. @@ -333,9 +327,6 @@ CHAR-LIMIT guidelines:
  700. <message name="IDS_URL_KEYED_ANONYMIZED_DATA_SUMMARY" desc="Summary for a checkbox in Settings that controls non-personalized URL collection and informs the user about the data shared by this feature.">
  701. Sends URLs of pages you visit to Google
  702. </message>
  703. - <message name="IDS_PRIVACY_SYNC_AND_SERVICES_LINK" desc="The text for Privacy preferences that is shown after all preference rows.">
  704. - For more settings that relate to privacy, security, and data collection, see <ph name="BEGIN_LINK">&lt;link&gt;</ph>Sync and Google services<ph name="END_LINK">&lt;/link&gt;</ph>
  705. - </message>
  706. <message name="IDS_CANCEL_SYNC_DIALOG_TITLE" desc="The title of a dialog that is shown when users tries closing 'Sync and Google services' preferences without confirming the changes.">
  707. Cancel sync?
  708. </message>
  709. @@ -1108,9 +1099,6 @@ Your Google account may have other forms of browsing history like searches and a
  710. <message name="IDS_DATA_REDUCTION_DESCRIPTION_LITE_MODE" desc="Text describing how the Lite mode feature works. Seen only before the user has enabled the feature.">
  711. When Lite mode is on, Chrome uses Google servers to make pages load faster. Lite mode rewrites very slow pages to load only essential content. Lite mode does not apply to Incognito tabs.
  712. </message>
  713. - <message name="IDS_DATA_REDUCTION_MENU_ITEM_SUMMARY_LITE_MODE" desc="Label that states the percent of mobile data that was saved by Lite mode. Lite mode allows users to to reduce their mobile data usage by compressing network traffic.">
  714. - <ph name="PERCENT">%1$s<ex>49%</ex></ph> data savings
  715. - </message>
  716. <message name="IDS_DATA_REDUCTION_SAVINGS_LABEL" desc="Data Reduction statistics label that states the amount of mobile data that was saved by Lite mode. Lite mode allows users to to reduce their mobile data usage by compressing network traffic.">
  717. data saved
  718. </message>
  719. diff --git a/components/signin/core/browser/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java b/components/signin/core/browser/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java
  720. --- a/components/signin/core/browser/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java
  721. +++ b/components/signin/core/browser/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java
  722. @@ -171,16 +171,6 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
  723. @Override
  724. public boolean hasFeatures(Account account, String[] features) {
  725. - if (!hasGetAccountsPermission()) {
  726. - return false;
  727. - }
  728. - try {
  729. - return mAccountManager.hasFeatures(account, features, null, null).getResult();
  730. - } catch (AuthenticatorException | IOException e) {
  731. - Log.e(TAG, "Error while checking features: ", e);
  732. - } catch (OperationCanceledException e) {
  733. - Log.e(TAG, "Checking features was cancelled. This should not happen.");
  734. - }
  735. return false;
  736. }
  737. @@ -220,32 +210,10 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
  738. public void updateCredentials(
  739. Account account, Activity activity, final Callback<Boolean> callback) {
  740. ThreadUtils.assertOnUiThread();
  741. - if (!hasManageAccountsPermission()) {
  742. - if (callback != null) {
  743. - ThreadUtils.postOnUiThread(callback.bind(false));
  744. - }
  745. - return;
  746. + if (callback != null) {
  747. + ThreadUtils.postOnUiThread(callback.bind(false));
  748. }
  749. -
  750. - AccountManagerCallback<Bundle> realCallback = future -> {
  751. - Bundle bundle = null;
  752. - try {
  753. - bundle = future.getResult();
  754. - } catch (AuthenticatorException | IOException e) {
  755. - Log.e(TAG, "Error while update credentials: ", e);
  756. - } catch (OperationCanceledException e) {
  757. - Log.w(TAG, "Updating credentials was cancelled.");
  758. - }
  759. - boolean success =
  760. - bundle != null && bundle.getString(AccountManager.KEY_ACCOUNT_TYPE) != null;
  761. - if (callback != null) {
  762. - callback.onResult(success);
  763. - }
  764. - };
  765. - // Android 4.4 throws NullPointerException if null is passed
  766. - Bundle emptyOptions = new Bundle();
  767. - mAccountManager.updateCredentials(
  768. - account, "android", emptyOptions, activity, realCallback, null);
  769. + return;
  770. }
  771. @Nullable
  772. diff --git a/net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java b/net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java
  773. --- a/net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java
  774. +++ b/net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java
  775. @@ -98,54 +98,8 @@ public class HttpNegotiateAuthenticator {
  776. @Override
  777. public void run(AccountManagerFuture<Account[]> future) {
  778. - Account[] accounts;
  779. - try {
  780. - accounts = future.getResult();
  781. - } catch (OperationCanceledException | AuthenticatorException | IOException e) {
  782. - Log.w(TAG, "ERR_UNEXPECTED: Error while attempting to retrieve accounts.", e);
  783. - HttpNegotiateAuthenticatorJni.get().setResult(mRequestData.nativeResultObject,
  784. - HttpNegotiateAuthenticator.this, NetError.ERR_UNEXPECTED, null);
  785. - return;
  786. - }
  787. -
  788. - if (accounts.length == 0) {
  789. - Log.w(TAG, "ERR_MISSING_AUTH_CREDENTIALS: No account provided for the kerberos "
  790. - + "authentication. Please verify the configuration policies and "
  791. - + "that the CONTACTS runtime permission is granted. ");
  792. - HttpNegotiateAuthenticatorJni.get().setResult(mRequestData.nativeResultObject,
  793. - HttpNegotiateAuthenticator.this, NetError.ERR_MISSING_AUTH_CREDENTIALS,
  794. - null);
  795. - return;
  796. - }
  797. -
  798. - if (accounts.length > 1) {
  799. - Log.w(TAG, "ERR_MISSING_AUTH_CREDENTIALS: Found %d accounts eligible for the "
  800. - + "kerberos authentication. Please fix the configuration by "
  801. - + "providing a single account.",
  802. - accounts.length);
  803. - HttpNegotiateAuthenticatorJni.get().setResult(mRequestData.nativeResultObject,
  804. - HttpNegotiateAuthenticator.this, NetError.ERR_MISSING_AUTH_CREDENTIALS,
  805. - null);
  806. - return;
  807. - }
  808. -
  809. - if (lacksPermission(ContextUtils.getApplicationContext(),
  810. - "android.permission.USE_CREDENTIALS", true)) {
  811. - // Protecting the AccountManager#getAuthToken call.
  812. - // API < 23 Requires the USE_CREDENTIALS permission or throws an exception.
  813. - // API >= 23 USE_CREDENTIALS permission is removed
  814. - Log.e(TAG, "ERR_MISCONFIGURED_AUTH_ENVIRONMENT: USE_CREDENTIALS permission not "
  815. - + "granted. Aborting authentication.");
  816. - HttpNegotiateAuthenticatorJni.get().setResult(mRequestData.nativeResultObject,
  817. - HttpNegotiateAuthenticator.this,
  818. - NetError.ERR_MISCONFIGURED_AUTH_ENVIRONMENT, null);
  819. - return;
  820. - }
  821. - mRequestData.account = accounts[0];
  822. - mRequestData.accountManager.getAuthToken(mRequestData.account,
  823. - mRequestData.authTokenType, mRequestData.options, true /* notifyAuthFailure */,
  824. - new GetTokenCallback(mRequestData),
  825. - new Handler(ThreadUtils.getUiThreadLooper()));
  826. + // account-based authentication removed for privacy-violations concerns
  827. + return;
  828. }
  829. }
  830. @@ -158,42 +112,8 @@ public class HttpNegotiateAuthenticator {
  831. @Override
  832. public void run(AccountManagerFuture<Bundle> future) {
  833. - Bundle result;
  834. - try {
  835. - result = future.getResult();
  836. - } catch (OperationCanceledException | AuthenticatorException | IOException e) {
  837. - Log.w(TAG, "ERR_UNEXPECTED: Error while attempting to obtain a token.", e);
  838. - HttpNegotiateAuthenticatorJni.get().setResult(mRequestData.nativeResultObject,
  839. - HttpNegotiateAuthenticator.this, NetError.ERR_UNEXPECTED, null);
  840. - return;
  841. - }
  842. -
  843. - if (result.containsKey(AccountManager.KEY_INTENT)) {
  844. - final Context appContext = ContextUtils.getApplicationContext();
  845. -
  846. - // We wait for a broadcast that should be sent once the user is done interacting
  847. - // with the notification
  848. - // TODO(dgn) We currently hang around if the notification is swiped away, until
  849. - // a LOGIN_ACCOUNTS_CHANGED_ACTION filter is received. It might be for something
  850. - // unrelated then we would wait again here. Maybe we should limit the number of
  851. - // retries in some way?
  852. - BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
  853. -
  854. - @Override
  855. - public void onReceive(Context context, Intent intent) {
  856. - appContext.unregisterReceiver(this);
  857. - mRequestData.accountManager.getAuthToken(mRequestData.account,
  858. - mRequestData.authTokenType, mRequestData.options,
  859. - true /* notifyAuthFailure */, new GetTokenCallback(mRequestData),
  860. - null);
  861. - }
  862. -
  863. - };
  864. - appContext.registerReceiver(broadcastReceiver,
  865. - new IntentFilter(AccountManager.LOGIN_ACCOUNTS_CHANGED_ACTION));
  866. - } else {
  867. - processResult(result, mRequestData);
  868. - }
  869. + // account-based authentication removed for privacy-violations concerns
  870. + return;
  871. }
  872. }
  873. diff --git a/remoting/android/java/src/org/chromium/chromoting/base/OAuthTokenFetcher.java b/remoting/android/java/src/org/chromium/chromoting/base/OAuthTokenFetcher.java
  874. --- a/remoting/android/java/src/org/chromium/chromoting/base/OAuthTokenFetcher.java
  875. +++ b/remoting/android/java/src/org/chromium/chromoting/base/OAuthTokenFetcher.java
  876. @@ -93,7 +93,6 @@ public class OAuthTokenFetcher {
  877. /** Begins fetching a token. Should be called on the main thread. */
  878. public void fetch() {
  879. - fetchImpl(null);
  880. }
  881. /**
  882. @@ -102,7 +101,6 @@ public class OAuthTokenFetcher {
  883. * @param expiredToken A previously-fetched token which has expired.
  884. */
  885. public void clearAndFetch(String expiredToken) {
  886. - fetchImpl(expiredToken);
  887. }
  888. private void fetchImpl(final String expiredToken) {
  889. --
  890. 2.17.1