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

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978
  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. Disable promos displayed in bookmarks manager
  12. Remove personalized signin promo view from
  13. bookmarks, never reach signin thresholds.
  14. Fix building with debug symbols:
  15. ld.lld: error: undefined symbol: notifier::NotifierOptions::NotifierOptions()
  16. >>> referenced by invalidation_service_util.cc:17 (../../components/invalidation/impl/invalidation_service_util.cc:17)
  17. >>> impl/invalidation_service_util.o:(invalidation::ParseNotifierOptions(base::CommandLine const&)) in archive obj/components/invalidation/impl/libimpl.a
  18. ---
  19. chrome/android/BUILD.gn | 1 -
  20. chrome/android/chrome_java_sources.gni | 40 ----
  21. .../PriceTrackingUtilities.java | 5 +-
  22. .../browser/feed/FeedSurfaceCoordinator.java | 5 +-
  23. .../browser/feed/FeedSurfaceMediator.java | 103 +---------
  24. chrome/android/java/AndroidManifest.xml | 8 -
  25. .../res/xml/google_services_preferences.xml | 5 -
  26. .../android/java/res/xml/main_preferences.xml | 27 +--
  27. .../java/res/xml/manage_sync_preferences.xml | 12 --
  28. .../java/res/xml/privacy_preferences.xml | 4 -
  29. .../org/chromium/chrome/browser/AppHooks.java | 8 -
  30. .../chrome/browser/ChromeTabbedActivity.java | 16 --
  31. .../chrome/browser/app/ChromeActivity.java | 75 --------
  32. .../AutofillAssistantPreferenceFragment.java | 12 --
  33. .../bookmarks/BookmarkItemsAdapter.java | 51 +----
  34. .../bookmarks/BookmarkPromoHeader.java | 181 +-----------------
  35. .../ClearBrowsingDataFragmentBasic.java | 5 +-
  36. .../contextualsearch/ContextualSearchUma.java | 5 -
  37. .../browser/customtabs/CustomTabActivity.java | 3 -
  38. .../DataReductionPreferenceFragment.java | 24 +--
  39. .../browser/firstrun/FirstRunActivity.java | 39 ----
  40. .../firstrun/FirstRunFlowSequencer.java | 51 +----
  41. .../firstrun/LightweightFirstRunActivity.java | 6 +-
  42. .../firstrun/ToSAndUMAFirstRunFragment.java | 36 ----
  43. .../history/HistoryContentManager.java | 10 +-
  44. .../init/ChromeBrowserInitializer.java | 2 -
  45. .../init/ProcessInitializationHandler.java | 4 -
  46. .../chrome/browser/ntp/RecentTabsManager.java | 72 +------
  47. .../browser/ntp/RecentTabsRowAdapter.java | 6 -
  48. .../browser/omaha/RequestGenerator.java | 3 -
  49. .../PasswordManagerLauncher.java | 15 +-
  50. .../settings/PasswordEntryViewer.java | 5 +-
  51. .../settings/PasswordSettings.java | 29 +--
  52. .../privacy/settings/PrivacySettings.java | 30 ---
  53. .../chrome/browser/settings/MainSettings.java | 135 +------------
  54. .../browser/settings/SettingsActivity.java | 5 +-
  55. .../browser/share/ShareDelegateImpl.java | 3 +-
  56. .../share/ShareRegistrationCoordinator.java | 3 +-
  57. .../SharedClipboardShareActivity.java | 3 -
  58. .../tabbed_mode/TabbedRootUiCoordinator.java | 22 +--
  59. .../tasks/ReturnToChromeExperimentsUtil.java | 9 +-
  60. chrome/browser/BUILD.gn | 10 -
  61. .../identity_services_provider_android.cc | 9 -
  62. .../services/IdentityServicesProvider.java | 14 --
  63. chrome/browser/sync/sync_service_factory.cc | 12 +-
  64. ...onfirmImportSyncDataDialogCoordinator.java | 6 +-
  65. .../signin/ConfirmSyncDataStateMachine.java | 7 -
  66. .../ui/signin/SignOutDialogFragment.java | 12 --
  67. .../AccountPickerDelegateImpl.java | 18 --
  68. .../ui/signin/fre/SigninFirstRunMediator.java | 24 +--
  69. .../strings/android_chrome_strings.grd | 15 --
  70. .../signin/SystemAccountManagerDelegate.java | 30 +--
  71. .../net/HttpNegotiateAuthenticator.java | 88 +--------
  72. .../chromoting/base/OAuthTokenFetcher.java | 2 -
  73. 54 files changed, 50 insertions(+), 1275 deletions(-)
  74. diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
  75. --- a/chrome/android/BUILD.gn
  76. +++ b/chrome/android/BUILD.gn
  77. @@ -3845,7 +3845,6 @@ generate_jni("chrome_jni_headers") {
  78. "java/src/org/chromium/chrome/browser/infobar/SavePasswordInfoBar.java",
  79. "java/src/org/chromium/chrome/browser/infobar/SearchGeolocationDisclosureInfoBar.java",
  80. "java/src/org/chromium/chrome/browser/infobar/SurveyInfoBar.java",
  81. - "java/src/org/chromium/chrome/browser/infobar/SyncErrorInfoBar.java",
  82. "java/src/org/chromium/chrome/browser/infobar/TranslateCompactInfoBar.java",
  83. "java/src/org/chromium/chrome/browser/infobar/UpdatePasswordInfoBar.java",
  84. "java/src/org/chromium/chrome/browser/init/NativeStartupBridge.java",
  85. diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
  86. --- a/chrome/android/chrome_java_sources.gni
  87. +++ b/chrome/android/chrome_java_sources.gni
  88. @@ -614,15 +614,12 @@ chrome_java_sources = [
  89. "java/src/org/chromium/chrome/browser/firstrun/FirstRunPage.java",
  90. "java/src/org/chromium/chrome/browser/firstrun/FirstRunPageDelegate.java",
  91. "java/src/org/chromium/chrome/browser/firstrun/FirstRunPagerAdapter.java",
  92. - "java/src/org/chromium/chrome/browser/firstrun/FirstRunSignInProcessor.java",
  93. "java/src/org/chromium/chrome/browser/firstrun/FirstRunUtils.java",
  94. "java/src/org/chromium/chrome/browser/firstrun/FirstRunView.java",
  95. - "java/src/org/chromium/chrome/browser/firstrun/ForcedSigninProcessor.java",
  96. "java/src/org/chromium/chrome/browser/firstrun/FreIntentCreator.java",
  97. "java/src/org/chromium/chrome/browser/firstrun/LightweightFirstRunActivity.java",
  98. "java/src/org/chromium/chrome/browser/firstrun/PolicyLoadListener.java",
  99. "java/src/org/chromium/chrome/browser/firstrun/SkipTosDialogPolicyListener.java",
  100. - "java/src/org/chromium/chrome/browser/firstrun/SyncConsentFirstRunFragment.java",
  101. "java/src/org/chromium/chrome/browser/firstrun/TabbedModeFirstRunActivity.java",
  102. "java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java",
  103. "java/src/org/chromium/chrome/browser/firstrun/TosAndUmaFirstRunFragmentWithEnterpriseSupport.java",
  104. @@ -715,7 +712,6 @@ chrome_java_sources = [
  105. "java/src/org/chromium/chrome/browser/infobar/SubPanelListener.java",
  106. "java/src/org/chromium/chrome/browser/infobar/SurveyInfoBar.java",
  107. "java/src/org/chromium/chrome/browser/infobar/SurveyInfoBarDelegate.java",
  108. - "java/src/org/chromium/chrome/browser/infobar/SyncErrorInfoBar.java",
  109. "java/src/org/chromium/chrome/browser/infobar/TextViewEllipsizerSafe.java",
  110. "java/src/org/chromium/chrome/browser/infobar/TranslateCompactInfoBar.java",
  111. "java/src/org/chromium/chrome/browser/infobar/UpdatePasswordInfoBar.java",
  112. @@ -829,7 +825,6 @@ chrome_java_sources = [
  113. "java/src/org/chromium/chrome/browser/ntp/RevampedIncognitoDescriptionView.java",
  114. "java/src/org/chromium/chrome/browser/ntp/SnapScrollHelperImpl.java",
  115. "java/src/org/chromium/chrome/browser/ntp/TitleUtil.java",
  116. - "java/src/org/chromium/chrome/browser/ntp/cards/SignInPromo.java",
  117. "java/src/org/chromium/chrome/browser/ntp/cards/promo/enhanced_protection/EnhancedProtectionPromoController.java",
  118. "java/src/org/chromium/chrome/browser/ntp/cards/promo/enhanced_protection/EnhancedProtectionPromoUtils.java",
  119. "java/src/org/chromium/chrome/browser/ntp/search/SearchBoxChipDelegate.java",
  120. @@ -901,8 +896,6 @@ chrome_java_sources = [
  121. "java/src/org/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksShim.java",
  122. "java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java",
  123. "java/src/org/chromium/chrome/browser/password_manager/AccountChooserDialog.java",
  124. - "java/src/org/chromium/chrome/browser/password_manager/AutoSigninFirstRunDialog.java",
  125. - "java/src/org/chromium/chrome/browser/password_manager/AutoSigninSnackbarController.java",
  126. "java/src/org/chromium/chrome/browser/password_manager/Credential.java",
  127. "java/src/org/chromium/chrome/browser/password_manager/CredentialLeakDialogBridge.java",
  128. "java/src/org/chromium/chrome/browser/password_manager/GooglePasswordManagerUIProvider.java",
  129. @@ -1045,16 +1038,6 @@ chrome_java_sources = [
  130. "java/src/org/chromium/chrome/browser/sharing/shared_clipboard/SharedClipboardMetrics.java",
  131. "java/src/org/chromium/chrome/browser/sharing/shared_clipboard/SharedClipboardShareActivity.java",
  132. "java/src/org/chromium/chrome/browser/sharing/sms_fetcher/SmsFetcherMessageHandler.java",
  133. - "java/src/org/chromium/chrome/browser/signin/SigninBridge.java",
  134. - "java/src/org/chromium/chrome/browser/signin/SigninChecker.java",
  135. - "java/src/org/chromium/chrome/browser/signin/SigninCheckerProvider.java",
  136. - "java/src/org/chromium/chrome/browser/signin/SigninFirstRunFragment.java",
  137. - "java/src/org/chromium/chrome/browser/signin/SigninManagerImpl.java",
  138. - "java/src/org/chromium/chrome/browser/signin/SyncConsentActivity.java",
  139. - "java/src/org/chromium/chrome/browser/signin/SyncConsentActivityLauncherImpl.java",
  140. - "java/src/org/chromium/chrome/browser/signin/SyncConsentFragment.java",
  141. - "java/src/org/chromium/chrome/browser/signin/SyncConsentFragmentBase.java",
  142. - "java/src/org/chromium/chrome/browser/signin/SyncPromoView.java",
  143. "java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java",
  144. "java/src/org/chromium/chrome/browser/site_settings/CookieControlsServiceBridge.java",
  145. "java/src/org/chromium/chrome/browser/site_settings/ManageSpaceActivity.java",
  146. @@ -1090,29 +1073,6 @@ chrome_java_sources = [
  147. "java/src/org/chromium/chrome/browser/survey/ChromeSurveyController.java",
  148. "java/src/org/chromium/chrome/browser/survey/SurveyController.java",
  149. "java/src/org/chromium/chrome/browser/survey/SurveyHttpClientBridge.java",
  150. - "java/src/org/chromium/chrome/browser/sync/AndroidSyncSettings.java",
  151. - "java/src/org/chromium/chrome/browser/sync/SyncContentResolverDelegate.java",
  152. - "java/src/org/chromium/chrome/browser/sync/SyncController.java",
  153. - "java/src/org/chromium/chrome/browser/sync/SyncErrorNotifier.java",
  154. - "java/src/org/chromium/chrome/browser/sync/SyncService.java",
  155. - "java/src/org/chromium/chrome/browser/sync/SyncServiceImpl.java",
  156. - "java/src/org/chromium/chrome/browser/sync/SyncUserDataWiper.java",
  157. - "java/src/org/chromium/chrome/browser/sync/TrustedVaultClient.java",
  158. - "java/src/org/chromium/chrome/browser/sync/settings/AccountManagementFragment.java",
  159. - "java/src/org/chromium/chrome/browser/sync/settings/ClearDataProgressDialog.java",
  160. - "java/src/org/chromium/chrome/browser/sync/settings/GoogleServicesSettings.java",
  161. - "java/src/org/chromium/chrome/browser/sync/settings/ManageSyncSettings.java",
  162. - "java/src/org/chromium/chrome/browser/sync/settings/SignInPreference.java",
  163. - "java/src/org/chromium/chrome/browser/sync/settings/SyncErrorCardPreference.java",
  164. - "java/src/org/chromium/chrome/browser/sync/settings/SyncPromoPreference.java",
  165. - "java/src/org/chromium/chrome/browser/sync/settings/SyncSettingsUtils.java",
  166. - "java/src/org/chromium/chrome/browser/sync/ui/PassphraseActivity.java",
  167. - "java/src/org/chromium/chrome/browser/sync/ui/PassphraseCreationDialogFragment.java",
  168. - "java/src/org/chromium/chrome/browser/sync/ui/PassphraseDialogFragment.java",
  169. - "java/src/org/chromium/chrome/browser/sync/ui/PassphraseTypeDialogFragment.java",
  170. - "java/src/org/chromium/chrome/browser/sync/ui/SyncErrorMessage.java",
  171. - "java/src/org/chromium/chrome/browser/sync/ui/SyncErrorPromptUtils.java",
  172. - "java/src/org/chromium/chrome/browser/sync/ui/SyncTrustedVaultProxyActivity.java",
  173. "java/src/org/chromium/chrome/browser/tab/AccessibilityVisibilityHandler.java",
  174. "java/src/org/chromium/chrome/browser/tab/AuthenticatorNavigationInterceptorTabHelper.java",
  175. "java/src/org/chromium/chrome/browser/tab/AutofillSessionLifetimeController.java",
  176. diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/PriceTrackingUtilities.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/PriceTrackingUtilities.java
  177. --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/PriceTrackingUtilities.java
  178. +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/PriceTrackingUtilities.java
  179. @@ -14,7 +14,6 @@ import org.chromium.chrome.browser.price_tracking.PriceDropNotificationManager;
  180. import org.chromium.chrome.browser.profiles.Profile;
  181. import org.chromium.chrome.browser.signin.services.IdentityServicesProvider;
  182. import org.chromium.chrome.browser.signin.services.UnifiedConsentServiceBridge;
  183. -import org.chromium.chrome.browser.sync.SyncService;
  184. import org.chromium.chrome.browser.tabmodel.TabModel;
  185. import org.chromium.components.signin.identitymanager.ConsentLevel;
  186. import org.chromium.components.sync.ModelType;
  187. @@ -211,9 +210,7 @@ public class PriceTrackingUtilities {
  188. }
  189. private static boolean isOpenTabsSyncEnabled() {
  190. - SyncService syncService = SyncService.get();
  191. - return syncService != null && syncService.isSyncRequested()
  192. - && syncService.getActiveDataTypes().contains(ModelType.SESSIONS);
  193. + return false;
  194. }
  195. private static boolean isAnonymizedUrlDataCollectionEnabled() {
  196. diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java
  197. --- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java
  198. +++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java
  199. @@ -934,10 +934,7 @@ public class FeedSurfaceCoordinator implements FeedSurfaceProvider, FeedBubbleDe
  200. @Override
  201. public boolean isSignedIn() {
  202. - return IdentityServicesProvider.get()
  203. - .getSigninManager(Profile.getLastUsedRegularProfile())
  204. - .getIdentityManager()
  205. - .hasPrimaryAccount(ConsentLevel.SYNC);
  206. + return false;
  207. }
  208. @Override
  209. diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceMediator.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceMediator.java
  210. --- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceMediator.java
  211. +++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceMediator.java
  212. @@ -36,18 +36,13 @@ import org.chromium.chrome.browser.feed.sections.SectionType;
  213. import org.chromium.chrome.browser.feed.sections.ViewVisibility;
  214. import org.chromium.chrome.browser.flags.ChromeFeatureList;
  215. import org.chromium.chrome.browser.ntp.NewTabPageLaunchOrigin;
  216. -import org.chromium.chrome.browser.ntp.cards.SignInPromo;
  217. import org.chromium.chrome.browser.ntp.cards.promo.enhanced_protection.EnhancedProtectionPromoController.EnhancedProtectionPromoStateListener;
  218. import org.chromium.chrome.browser.preferences.Pref;
  219. import org.chromium.chrome.browser.preferences.PrefChangeRegistrar;
  220. import org.chromium.chrome.browser.profiles.Profile;
  221. import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory;
  222. -import org.chromium.chrome.browser.signin.services.IdentityServicesProvider;
  223. -import org.chromium.chrome.browser.signin.services.SigninManager;
  224. import org.chromium.chrome.browser.suggestions.SuggestionsMetrics;
  225. import org.chromium.chrome.browser.ui.native_page.TouchEnabledDelegate;
  226. -import org.chromium.chrome.browser.ui.signin.PersonalizedSigninPromoView;
  227. -import org.chromium.chrome.browser.ui.signin.SigninPromoController;
  228. import org.chromium.chrome.browser.xsurface.FeedLaunchReliabilityLogger;
  229. import org.chromium.components.browser_ui.widget.listmenu.ListMenu;
  230. import org.chromium.components.browser_ui.widget.listmenu.ListMenuItemProperties;
  231. @@ -132,7 +127,6 @@ public class FeedSurfaceMediator
  232. /**
  233. * The {@link SignInPromo} for the Feed.
  234. * TODO(huayinz): Update content and visibility through a ModelChangeProcessor.
  235. - */
  236. private class FeedSignInPromo extends SignInPromo {
  237. FeedSignInPromo(SigninManager signinManager) {
  238. super(signinManager);
  239. @@ -153,7 +147,7 @@ public class FeedSurfaceMediator
  240. maybeUpdateSignInPromo();
  241. }
  242. - /** Update the content displayed in {@link PersonalizedSigninPromoView}. */
  243. + ** Update the content displayed in {@link PersonalizedSigninPromoView}. *
  244. private void maybeUpdateSignInPromo() {
  245. // Only call #setupPromoViewFromCache() if SignInPromo is visible to avoid potentially
  246. // blocking the UI thread for several seconds if the accounts cache is not populated
  247. @@ -175,7 +169,7 @@ public class FeedSurfaceMediator
  248. super.onDismissPromo();
  249. mCoordinator.updateHeaderViews(false, null);
  250. }
  251. - }
  252. + } */
  253. @VisibleForTesting
  254. static void setPrefForTest(PrefChangeRegistrar prefChangeRegistrar, PrefService prefService) {
  255. @@ -190,7 +184,6 @@ public class FeedSurfaceMediator
  256. private final Context mContext;
  257. private final @Nullable SnapScrollHelper mSnapScrollHelper;
  258. private final PrefChangeRegistrar mPrefChangeRegistrar;
  259. - private final SigninManager mSigninManager;
  260. private final PropertyModel mSectionHeaderModel;
  261. private final FeedActionDelegate mActionDelegate;
  262. @@ -198,7 +191,6 @@ public class FeedSurfaceMediator
  263. private final ObserverList<ScrollListener> mScrollListeners = new ObserverList<>();
  264. private ContentChangedListener mStreamContentChangedListener;
  265. private MemoryPressureCallback mMemoryPressureCallback;
  266. - private @Nullable SignInPromo mSignInPromo;
  267. private RecyclerViewAnimationFinishDetector mRecyclerViewAnimationFinishDetector =
  268. new RecyclerViewAnimationFinishDetector();
  269. private @Nullable View mEnhancedProtectionPromo;
  270. @@ -239,8 +231,6 @@ public class FeedSurfaceMediator
  271. mCoordinator = coordinator;
  272. mContext = context;
  273. mSnapScrollHelper = snapScrollHelper;
  274. - mSigninManager = IdentityServicesProvider.get().getSigninManager(
  275. - Profile.getLastUsedRegularProfile());
  276. mActionDelegate = actionDelegate;
  277. if (sTestPrefChangeRegistar != null) {
  278. @@ -397,7 +387,6 @@ public class FeedSurfaceMediator
  279. mFeedMenuModel = buildMenuItems();
  280. mCoordinator.initializeBubbleTriggering();
  281. - mSigninManager.getIdentityManager().addObserver(this);
  282. mSectionHeaderModel.set(SectionHeaderListProperties.MENU_MODEL_LIST_KEY, mFeedMenuModel);
  283. mSectionHeaderModel.set(
  284. @@ -437,8 +426,6 @@ public class FeedSurfaceMediator
  285. };
  286. mCoordinator.getRecyclerView().addOnScrollListener(mStreamScrollListener);
  287. - initStreamHeaderViews();
  288. -
  289. mMemoryPressureCallback =
  290. pressure -> mCoordinator.getRecyclerView().getRecycledViewPool().clear();
  291. MemoryPressureListener.addCallback(mMemoryPressureCallback);
  292. @@ -603,47 +590,6 @@ public class FeedSurfaceMediator
  293. }
  294. }
  295. - private void initStreamHeaderViews() {
  296. - boolean signInPromoVisible = createSignInPromoIfNeeded();
  297. - mEnhancedProtectionPromo = null;
  298. - if (!signInPromoVisible) {
  299. - mEnhancedProtectionPromo = createEnhancedProtectionPromoIfNeeded();
  300. - }
  301. - // We are not going to show two promos at the same time.
  302. - mCoordinator.updateHeaderViews(signInPromoVisible, mEnhancedProtectionPromo);
  303. - }
  304. -
  305. - /**
  306. - * Create and setup the SignInPromo if necessary.
  307. - * @return Whether the SignPromo should be visible.
  308. - */
  309. - private boolean createSignInPromoIfNeeded() {
  310. - SigninPromoController.resetNTPSyncPromoLimitsIfHiddenForTooLong();
  311. - if (!SignInPromo.shouldCreatePromo()
  312. - || !SigninPromoController.canShowSyncPromo(
  313. - SigninAccessPoint.NTP_CONTENT_SUGGESTIONS)) {
  314. - return false;
  315. - }
  316. - if (mSignInPromo == null) {
  317. - mSignInPromo = new FeedSignInPromo(mSigninManager);
  318. - mSignInPromo.setCanShowPersonalizedSuggestions(isSuggestionsVisible());
  319. - }
  320. - return mSignInPromo.isVisible();
  321. - }
  322. -
  323. - private View createEnhancedProtectionPromoIfNeeded() {
  324. - if (mCoordinator.getEnhancedProtectionPromoController() == null) return null;
  325. -
  326. - View enhancedProtectionPromoView =
  327. - mCoordinator.getEnhancedProtectionPromoController().getPromoView();
  328. - if (enhancedProtectionPromoView != null) {
  329. - mCoordinator.getEnhancedProtectionPromoController()
  330. - .setEnhancedProtectionPromoStateListener(this);
  331. - updatePromoCardPadding(enhancedProtectionPromoView);
  332. - }
  333. - return enhancedProtectionPromoView;
  334. - }
  335. -
  336. private void updatePromoCardPadding(View promoCard) {
  337. MarginLayoutParams layoutParams = promoCard.getLayoutParams() == null
  338. ? new MarginLayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)
  339. @@ -666,11 +612,6 @@ public class FeedSurfaceMediator
  340. MemoryPressureListener.removeCallback(mMemoryPressureCallback);
  341. mMemoryPressureCallback = null;
  342. - if (mSignInPromo != null) {
  343. - mSignInPromo.destroy();
  344. - mSignInPromo = null;
  345. - }
  346. -
  347. unbindStream();
  348. for (Stream s : mTabToStreamMap.values()) {
  349. s.removeOnContentChangedListener(mStreamContentChangedListener);
  350. @@ -681,7 +622,6 @@ public class FeedSurfaceMediator
  351. mPrefChangeRegistrar.removeObserver(Pref.ARTICLES_LIST_VISIBLE);
  352. TemplateUrlServiceFactory.get().removeObserver(this);
  353. - mSigninManager.getIdentityManager().removeObserver(this);
  354. PropertyListModel<PropertyModel, PropertyKey> headerList =
  355. mSectionHeaderModel.get(SectionHeaderListProperties.SECTION_HEADERS_KEY);
  356. @@ -766,9 +706,6 @@ public class FeedSurfaceMediator
  357. // Update toggleswitch item, which is last item in list.
  358. mSectionHeaderModel.set(SectionHeaderListProperties.MENU_MODEL_LIST_KEY, buildMenuItems());
  359. - if (mSignInPromo != null) {
  360. - mSignInPromo.setCanShowPersonalizedSuggestions(suggestionsVisible);
  361. - }
  362. if (mEnhancedProtectionPromo != null) {
  363. updatePromoCardPadding(mEnhancedProtectionPromo);
  364. }
  365. @@ -801,7 +738,7 @@ public class FeedSurfaceMediator
  366. }
  367. private boolean isSignedIn() {
  368. - return mSigninManager.getIdentityManager().hasPrimaryAccount(ConsentLevel.SYNC);
  369. + return false;
  370. }
  371. /**
  372. @@ -849,35 +786,6 @@ public class FeedSurfaceMediator
  373. private ModelList buildMenuItems() {
  374. ModelList itemList = new ModelList();
  375. - int iconId = 0;
  376. - if (isSignedIn()) {
  377. - if (ChromeFeatureList.isEnabled(ChromeFeatureList.WEB_FEED)) {
  378. - itemList.add(buildMenuListItem(
  379. - R.string.ntp_manage_feed, R.id.ntp_feed_header_menu_item_manage, iconId));
  380. - } else {
  381. - itemList.add(buildMenuListItem(R.string.ntp_manage_my_activity,
  382. - R.id.ntp_feed_header_menu_item_activity, iconId));
  383. - itemList.add(buildMenuListItem(R.string.ntp_manage_interests,
  384. - R.id.ntp_feed_header_menu_item_interest, iconId));
  385. - if (FeedServiceBridge.isAutoplayEnabled()) {
  386. - itemList.add(buildMenuListItem(R.string.ntp_manage_autoplay,
  387. - R.id.ntp_feed_header_menu_item_autoplay, iconId));
  388. - }
  389. - if (ChromeFeatureList.isEnabled(ChromeFeatureList.INTEREST_FEED_V2_HEARTS)) {
  390. - itemList.add(buildMenuListItem(R.string.ntp_manage_reactions,
  391. - R.id.ntp_feed_header_menu_item_reactions, iconId));
  392. - }
  393. - }
  394. - } else if (FeedServiceBridge.isAutoplayEnabled()) {
  395. - // Show manage autoplay if not signed in.
  396. - itemList.add(buildMenuListItem(
  397. - R.string.ntp_manage_autoplay, R.id.ntp_feed_header_menu_item_autoplay, iconId));
  398. - }
  399. - itemList.add(buildMenuListItem(
  400. - R.string.learn_more, R.id.ntp_feed_header_menu_item_learn, iconId));
  401. - itemList.add(getMenuToggleSwitch(
  402. - mSectionHeaderModel.get(SectionHeaderListProperties.IS_SECTION_ENABLED_KEY),
  403. - iconId));
  404. return itemList;
  405. }
  406. @@ -1082,11 +990,6 @@ public class FeedSurfaceMediator
  407. updateSectionHeader();
  408. }
  409. - @VisibleForTesting
  410. - public SignInPromo getSignInPromoForTesting() {
  411. - return mSignInPromo;
  412. - }
  413. -
  414. public void manualRefresh(Callback<Boolean> callback) {
  415. if (mCurrentStream != null) {
  416. mCurrentStream.triggerRefresh(callback);
  417. diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
  418. --- a/chrome/android/java/AndroidManifest.xml
  419. +++ b/chrome/android/java/AndroidManifest.xml
  420. @@ -67,24 +67,18 @@ by a child template that "extends" this file.
  421. <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
  422. <uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
  423. <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
  424. - <uses-permission android:name="android.permission.GET_ACCOUNTS"/>
  425. <uses-permission android:name="android.permission.INTERNET"/>
  426. - <uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>
  427. <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
  428. <uses-permission android:name="android.permission.NFC"/>
  429. <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
  430. <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
  431. - <uses-permission android:name="android.permission.READ_SYNC_SETTINGS"/>
  432. - <uses-permission android:name="android.permission.READ_SYNC_STATS"/>
  433. <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
  434. <uses-permission android:name="android.permission.RECORD_AUDIO"/>
  435. - <uses-permission android:name="android.permission.USE_CREDENTIALS"/>
  436. <uses-permission-sdk-23 android:name="android.permission.USE_BIOMETRIC"/>
  437. <uses-permission-sdk-23 android:name="android.permission.USE_FINGERPRINT"/>
  438. <uses-permission android:name="android.permission.VIBRATE"/>
  439. <uses-permission android:name="android.permission.WAKE_LOCK"/>
  440. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  441. - <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS"/>
  442. {% set enable_vr = enable_vr|default(0) %}
  443. {% if enable_vr == "true" %}
  444. <!-- Indicates use of Android's VR-mode, available only on Android N+. -->
  445. @@ -124,8 +118,6 @@ by a child template that "extends" this file.
  446. <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
  447. <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
  448. - <uses-permission android:name="com.google.android.apps.now.CURRENT_ACCOUNT_ACCESS" />
  449. -
  450. {% block extra_uses_permissions %}
  451. {% endblock %}
  452. diff --git a/chrome/android/java/res/xml/google_services_preferences.xml b/chrome/android/java/res/xml/google_services_preferences.xml
  453. --- a/chrome/android/java/res/xml/google_services_preferences.xml
  454. +++ b/chrome/android/java/res/xml/google_services_preferences.xml
  455. @@ -24,11 +24,6 @@
  456. android:title="@string/autocomplete_searches_and_urls_title"
  457. android:summary="@string/autocomplete_searches_and_urls_summary"
  458. android:persistent="false"/>
  459. - <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
  460. - android:key="url_keyed_anonymized_data"
  461. - android:title="@string/url_keyed_anonymized_data_title"
  462. - android:summary="@string/url_keyed_anonymized_data_summary"
  463. - android:persistent="false"/>
  464. <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
  465. android:key="autofill_assistant"
  466. android:title="@string/prefs_autofill_assistant_title"
  467. diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
  468. --- a/chrome/android/java/res/xml/main_preferences.xml
  469. +++ b/chrome/android/java/res/xml/main_preferences.xml
  470. @@ -7,29 +7,11 @@
  471. xmlns:app="http://schemas.android.com/apk/res-auto"
  472. android:orderingFromXml="false">
  473. - <org.chromium.chrome.browser.sync.settings.SyncPromoPreference
  474. - android:key="sync_promo"
  475. - android:order="0"/>
  476. <PreferenceCategory
  477. android:key="account_and_google_services_section"
  478. android:order="1"
  479. - android:title="@string/prefs_section_account_and_google_services"/>
  480. - <org.chromium.chrome.browser.sync.settings.SignInPreference
  481. - android:key="sign_in"
  482. - android:order="2"
  483. - android:title="@string/sign_in_to_chrome"/>
  484. - <org.chromium.components.browser_ui.settings.ChromeBasePreference
  485. - android:key="manage_sync"
  486. - android:order="3"
  487. - android:layout="@layout/account_management_account_row"
  488. - android:title="@string/sync_category_title"/>
  489. - <org.chromium.components.browser_ui.settings.ChromeBasePreference
  490. - android:key="google_services"
  491. - android:order="4"
  492. - android:layout="@layout/account_management_account_row"
  493. - android:title="@string/prefs_google_services"
  494. - android:icon="@drawable/ic_google_services_48dp"
  495. - android:fragment="org.chromium.chrome.browser.sync.settings.GoogleServicesSettings"/>
  496. + android:title="@string/prefs_section_account_and_google_services"
  497. + app:isPreferenceVisible="false" />
  498. <PreferenceCategory
  499. android:key="basics_section"
  500. @@ -99,11 +81,6 @@
  501. android:key="languages"
  502. android:order="19"
  503. android:title="@string/language_settings"/>
  504. - <org.chromium.components.browser_ui.settings.ChromeBasePreference
  505. - android:fragment="org.chromium.chrome.browser.datareduction.settings.DataReductionPreferenceFragment"
  506. - android:key="data_reduction"
  507. - android:order="20"
  508. - android:title="@string/data_reduction_title_lite_mode"/>
  509. <org.chromium.components.browser_ui.settings.ChromeBasePreference
  510. android:fragment="org.chromium.chrome.browser.download.settings.DownloadSettings"
  511. android:key="downloads"
  512. diff --git a/chrome/android/java/res/xml/manage_sync_preferences.xml b/chrome/android/java/res/xml/manage_sync_preferences.xml
  513. --- a/chrome/android/java/res/xml/manage_sync_preferences.xml
  514. +++ b/chrome/android/java/res/xml/manage_sync_preferences.xml
  515. @@ -80,16 +80,4 @@
  516. android:key="sync_manage_data"
  517. android:title="@string/sync_manage_data"/>
  518. - <!-- This category is only shown for advanced sync consent flow. -->
  519. - <PreferenceCategory
  520. - android:key="search_and_browse_category"
  521. - android:title="@string/search_and_browse_category"
  522. - app:isPreferenceVisible="false">
  523. -
  524. - <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
  525. - android:key="url_keyed_anonymized_data"
  526. - android:title="@string/url_keyed_anonymized_data_title"
  527. - android:summary="@string/url_keyed_anonymized_data_summary"/>
  528. - </PreferenceCategory>
  529. -
  530. </PreferenceScreen>
  531. diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
  532. --- a/chrome/android/java/res/xml/privacy_preferences.xml
  533. +++ b/chrome/android/java/res/xml/privacy_preferences.xml
  534. @@ -45,8 +45,4 @@
  535. android:key="privacy_sandbox"
  536. android:title="@string/prefs_privacy_sandbox"
  537. android:fragment="org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxSettingsFragment"/>
  538. - <org.chromium.components.browser_ui.settings.TextMessagePreference
  539. - android:key="sync_and_services_link"
  540. - android:summary="@string/privacy_sync_and_services_link_legacy"
  541. - app:allowDividerBelow="false"/>
  542. </PreferenceScreen>
  543. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java b/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java
  544. --- a/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java
  545. +++ b/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java
  546. @@ -35,7 +35,6 @@ import org.chromium.chrome.browser.password_manager.GooglePasswordManagerUIProvi
  547. import org.chromium.chrome.browser.policy.PolicyAuditor;
  548. import org.chromium.chrome.browser.rlz.RevenueStats;
  549. import org.chromium.chrome.browser.survey.SurveyController;
  550. -import org.chromium.chrome.browser.sync.TrustedVaultClient;
  551. import org.chromium.chrome.browser.tab.Tab;
  552. import org.chromium.chrome.browser.ui.signin.GoogleActivityController;
  553. import org.chromium.chrome.browser.usage_stats.DigitalWellbeingClient;
  554. @@ -288,13 +287,6 @@ public abstract class AppHooks {
  555. return ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED;
  556. }
  557. - /**
  558. - * Returns a new {@link TrustedVaultClient.Backend} instance.
  559. - */
  560. - public TrustedVaultClient.Backend createSyncTrustedVaultClientBackend() {
  561. - return new TrustedVaultClient.EmptyBackend();
  562. - }
  563. -
  564. /**
  565. * This is deprecated, and should not be called. Use FeedHooks instead.
  566. */
  567. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
  568. --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
  569. +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
  570. @@ -87,7 +87,6 @@ import org.chromium.chrome.browser.download.DownloadOpenSource;
  571. import org.chromium.chrome.browser.download.DownloadUtils;
  572. import org.chromium.chrome.browser.feature_engagement.TrackerFactory;
  573. import org.chromium.chrome.browser.feed.FeedSurfaceTracker;
  574. -import org.chromium.chrome.browser.firstrun.FirstRunSignInProcessor;
  575. import org.chromium.chrome.browser.flags.ActivityType;
  576. import org.chromium.chrome.browser.flags.CachedFeatureFlags;
  577. import org.chromium.chrome.browser.flags.ChromeFeatureList;
  578. @@ -103,7 +102,6 @@ import org.chromium.chrome.browser.incognito.IncognitoTabLauncher;
  579. import org.chromium.chrome.browser.incognito.IncognitoTabSnapshotController;
  580. import org.chromium.chrome.browser.incognito.IncognitoUtils;
  581. import org.chromium.chrome.browser.infobar.DataReductionPromoInfoBar;
  582. -import org.chromium.chrome.browser.infobar.SyncErrorInfoBar;
  583. import org.chromium.chrome.browser.layouts.LayoutStateProvider;
  584. import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher;
  585. import org.chromium.chrome.browser.locale.LocaleManager;
  586. @@ -135,8 +133,6 @@ import org.chromium.chrome.browser.settings.SettingsLauncherImpl;
  587. import org.chromium.chrome.browser.share.send_tab_to_self.SendTabToSelfAndroidBridge;
  588. import org.chromium.chrome.browser.suggestions.SuggestionsMetrics;
  589. import org.chromium.chrome.browser.survey.ChromeSurveyController;
  590. -import org.chromium.chrome.browser.sync.ui.SyncErrorMessage;
  591. -import org.chromium.chrome.browser.sync.ui.SyncErrorPromptUtils;
  592. import org.chromium.chrome.browser.tab.RedirectHandlerTabHelper;
  593. import org.chromium.chrome.browser.tab.Tab;
  594. import org.chromium.chrome.browser.tab.TabAssociatedApp;
  595. @@ -645,9 +641,6 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
  596. }
  597. private void refreshSignIn() {
  598. - try (TraceEvent e = TraceEvent.scoped("ChromeTabbedActivity.refreshSignIn")) {
  599. - FirstRunSignInProcessor.start(this);
  600. - }
  601. }
  602. private void setupCompositorContentPreNativeForPhone() {
  603. @@ -1801,15 +1794,6 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
  604. if (!navigation.hasCommitted() || !navigation.isInPrimaryMainFrame()) {
  605. return;
  606. }
  607. - DataReductionPromoInfoBar.maybeLaunchPromoInfoBar(ChromeTabbedActivity.this,
  608. - tab.getWebContents(), navigation.getUrl(), tab.isShowingErrorPage(),
  609. - navigation.isFragmentNavigation(), navigation.httpStatusCode());
  610. - if (SyncErrorPromptUtils.isMessageUiEnabled()) {
  611. - SyncErrorMessage.maybeShowMessageUi(
  612. - getWindowAndroid(), ChromeTabbedActivity.this);
  613. - } else {
  614. - SyncErrorInfoBar.maybeLaunchSyncErrorInfoBar(tab.getWebContents());
  615. - }
  616. SendTabToSelfAndroidBridge.updateActiveWebContents(tab.getWebContents());
  617. }
  618. };
  619. 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
  620. --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
  621. +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
  622. @@ -108,7 +108,6 @@ import org.chromium.chrome.browser.download.DownloadUtils;
  623. import org.chromium.chrome.browser.download.items.OfflineContentAggregatorNotificationBridgeUiFactory;
  624. import org.chromium.chrome.browser.feature_engagement.TrackerFactory;
  625. import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherImpl;
  626. -import org.chromium.chrome.browser.firstrun.ForcedSigninProcessor;
  627. import org.chromium.chrome.browser.flags.ActivityType;
  628. import org.chromium.chrome.browser.flags.CachedFeatureFlags;
  629. import org.chromium.chrome.browser.flags.ChromeFeatureList;
  630. @@ -154,7 +153,6 @@ import org.chromium.chrome.browser.share.ShareDelegate;
  631. import org.chromium.chrome.browser.share.ShareDelegateImpl;
  632. import org.chromium.chrome.browser.share.ShareDelegateSupplier;
  633. import org.chromium.chrome.browser.share.ShareRegistrationCoordinator;
  634. -import org.chromium.chrome.browser.sync.SyncService;
  635. import org.chromium.chrome.browser.tab.AccessibilityVisibilityHandler;
  636. import org.chromium.chrome.browser.tab.RequestDesktopUtils;
  637. import org.chromium.chrome.browser.tab.Tab;
  638. @@ -214,8 +212,6 @@ import org.chromium.components.page_info.PageInfoController.OpenedFromSource;
  639. import org.chromium.components.policy.CombinedPolicyProvider;
  640. import org.chromium.components.policy.CombinedPolicyProvider.PolicyChangeListener;
  641. import org.chromium.components.profile_metrics.BrowserProfileType;
  642. -import org.chromium.components.sync.ModelType;
  643. -import org.chromium.components.sync.PassphraseType;
  644. import org.chromium.components.user_prefs.UserPrefs;
  645. import org.chromium.components.webapk.lib.client.WebApkValidator;
  646. import org.chromium.components.webapps.AddToHomescreenCoordinator;
  647. @@ -308,9 +304,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
  648. private boolean mRemoveWindowBackgroundDone;
  649. protected AccessibilityVisibilityHandler mAccessibilityVisibilityHandler;
  650. - // Observes when sync becomes ready to create the mContextReporter.
  651. - private SyncService.SyncStateChangedListener mSyncStateChangedListener;
  652. -
  653. // The PictureInPictureController is initialized lazily https://crbug.com/729738.
  654. private PictureInPictureController mPictureInPictureController;
  655. @@ -1076,60 +1069,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
  656. return StatusBarColorController.UNDEFINED_STATUS_BAR_COLOR;
  657. }
  658. - private void createContextReporterIfNeeded() {
  659. - if (!mStarted) return; // Sync state reporting should work only in started state.
  660. - if (mContextReporter != null || getActivityTab() == null) return;
  661. -
  662. - final SyncService syncService = SyncService.get();
  663. -
  664. - if (syncService != null && syncService.isSyncingUrlsWithKeystorePassphrase()) {
  665. - ContextReporter.SelectionReporter controller =
  666. - getContextualSearchManager() != null ? new ContextReporter.SelectionReporter() {
  667. - @Override
  668. - public void enable(Callback<GSAContextDisplaySelection> callback) {
  669. - getContextualSearchManager().enableContextReporting(callback);
  670. - }
  671. -
  672. - @Override
  673. - public void disable() {
  674. - getContextualSearchManager().disableContextReporting();
  675. - }
  676. - } : null;
  677. - mContextReporter = AppHooks.get().createGsaHelper().getContextReporter(
  678. - getActivityTabProvider(), mTabModelSelectorSupplier, controller);
  679. -
  680. - if (mSyncStateChangedListener != null) {
  681. - syncService.removeSyncStateChangedListener(mSyncStateChangedListener);
  682. - mSyncStateChangedListener = null;
  683. - }
  684. -
  685. - return;
  686. - } else {
  687. - reportSyncStatus(syncService);
  688. - }
  689. -
  690. - if (mSyncStateChangedListener == null && syncService != null) {
  691. - mSyncStateChangedListener = () -> createContextReporterIfNeeded();
  692. - syncService.addSyncStateChangedListener(mSyncStateChangedListener);
  693. - }
  694. - }
  695. -
  696. - /**
  697. - * Records an appropriate status via UMA given the current sync status.
  698. - */
  699. - private static void reportSyncStatus(@Nullable SyncService syncService) {
  700. - if (syncService == null || !syncService.isEngineInitialized()) {
  701. - ContextReporter.reportStatus(ContextReporter.STATUS_SYNC_NOT_INITIALIZED);
  702. - } else if (!syncService.getActiveDataTypes().contains(ModelType.TYPED_URLS)) {
  703. - ContextReporter.reportStatus(ContextReporter.STATUS_SYNC_NOT_SYNCING_URLS);
  704. - } else if (syncService.getPassphraseType() != PassphraseType.KEYSTORE_PASSPHRASE
  705. - && syncService.getPassphraseType() != PassphraseType.TRUSTED_VAULT_PASSPHRASE) {
  706. - ContextReporter.reportStatus(ContextReporter.STATUS_SYNC_NOT_KEYSTORE_PASSPHRASE);
  707. - } else {
  708. - ContextReporter.reportStatus(ContextReporter.STATUS_SYNC_OTHER);
  709. - }
  710. - }
  711. -
  712. @Override
  713. public void onResumeWithNative() {
  714. super.onResumeWithNative();
  715. @@ -1232,14 +1171,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
  716. if (GSAState.getInstance(this).isGsaAvailable() && !SysUtils.isLowEndDevice()) {
  717. if (mGSAAccountChangeListener != null) mGSAAccountChangeListener.disconnect();
  718. }
  719. - if (mSyncStateChangedListener != null) {
  720. - SyncService syncService = SyncService.get();
  721. - if (syncService != null) {
  722. - syncService.removeSyncStateChangedListener(mSyncStateChangedListener);
  723. - }
  724. - mSyncStateChangedListener = null;
  725. - }
  726. - if (mContextReporter != null) mContextReporter.disable();
  727. super.onStopWithNative();
  728. }
  729. @@ -1329,11 +1260,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
  730. FontSizePrefs.getInstance().recordUserFontPrefOnStartup();
  731. });
  732. - DeferredStartupHandler.getInstance().addDeferredTask(() -> {
  733. - if (isActivityFinishingOrDestroyed()) return;
  734. - ForcedSigninProcessor.checkCanSignIn(ChromeActivity.this);
  735. - });
  736. -
  737. // GSA connection is not needed on low-end devices because Icing is disabled.
  738. if (!SysUtils.isLowEndDevice()) {
  739. if (isActivityFinishingOrDestroyed()) return;
  740. @@ -1348,7 +1274,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
  741. GSAAccountChangeListener.create(AppHooks.get().createGsaHelper());
  742. }
  743. mGSAAccountChangeListener.connect();
  744. - createContextReporterIfNeeded();
  745. });
  746. }
  747. }
  748. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantPreferenceFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantPreferenceFragment.java
  749. --- a/chrome/android/java/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantPreferenceFragment.java
  750. +++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantPreferenceFragment.java
  751. @@ -19,7 +19,6 @@ import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
  752. import org.chromium.chrome.browser.profiles.Profile;
  753. import org.chromium.chrome.browser.settings.SettingsLauncherImpl;
  754. import org.chromium.chrome.browser.signin.services.UnifiedConsentServiceBridge;
  755. -import org.chromium.chrome.browser.sync.settings.GoogleServicesSettings;
  756. import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
  757. import org.chromium.components.browser_ui.settings.SettingsLauncher;
  758. import org.chromium.components.browser_ui.settings.SettingsUtils;
  759. @@ -51,7 +50,6 @@ public class AutofillAssistantPreferenceFragment extends PreferenceFragmentCompa
  760. private ChromeSwitchPreference mAutofillAssistantPreference;
  761. private ChromeSwitchPreference mProactiveHelpPreference;
  762. private ChromeSwitchPreference mAssistantVoiceSearchEnabledPref;
  763. - private Preference mGoogleServicesSettingsLink;
  764. @Override
  765. public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
  766. @@ -89,15 +87,6 @@ public class AutofillAssistantPreferenceFragment extends PreferenceFragmentCompa
  767. mProactiveHelpPreference.setVisible(false);
  768. }
  769. - mGoogleServicesSettingsLink = findPreference(PREF_GOOGLE_SERVICES_SETTINGS_LINK);
  770. - NoUnderlineClickableSpan linkSpan = new NoUnderlineClickableSpan(getResources(), view -> {
  771. - SettingsLauncher settingsLauncher = new SettingsLauncherImpl();
  772. - settingsLauncher.launchSettingsActivity(requireContext(), GoogleServicesSettings.class);
  773. - });
  774. - mGoogleServicesSettingsLink.setSummary(
  775. - SpanApplier.applySpans(getString(R.string.prefs_proactive_help_sync_link),
  776. - new SpanApplier.SpanInfo("<link>", "</link>", linkSpan)));
  777. -
  778. PreferenceCategory assistantVoiceSearchCategory =
  779. findPreference(PREF_ASSISTANT_VOICE_SEARCH_CATEGORY);
  780. mAssistantVoiceSearchEnabledPref =
  781. @@ -165,7 +154,6 @@ public class AutofillAssistantPreferenceFragment extends PreferenceFragmentCompa
  782. }
  783. mProactiveHelpPreference.setEnabled(proactive_toggle_enabled);
  784. mProactiveHelpPreference.setChecked(proactive_toggle_enabled && proactive_help_on);
  785. - mGoogleServicesSettingsLink.setVisible(show_disclaimer);
  786. mAssistantVoiceSearchEnabledPref.setChecked(mSharedPreferencesManager.readBoolean(
  787. ChromePreferenceKeys.ASSISTANT_VOICE_SEARCH_ENABLED, /* default= */ false));
  788. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java
  789. --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java
  790. +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java
  791. @@ -28,9 +28,6 @@ import org.chromium.chrome.browser.power_bookmarks.PowerBookmarkMeta;
  792. import org.chromium.chrome.browser.power_bookmarks.PowerBookmarkType;
  793. import org.chromium.chrome.browser.profiles.Profile;
  794. import org.chromium.chrome.browser.subscriptions.CommerceSubscriptionsServiceFactory;
  795. -import org.chromium.chrome.browser.sync.SyncService;
  796. -import org.chromium.chrome.browser.ui.signin.PersonalizedSigninPromoView;
  797. -import org.chromium.chrome.browser.ui.signin.SigninPromoController.SyncPromoState;
  798. import org.chromium.components.bookmarks.BookmarkId;
  799. import org.chromium.components.bookmarks.BookmarkType;
  800. import org.chromium.components.browser_ui.util.GlobalDiscardableReferencePool;
  801. @@ -50,7 +47,7 @@ import java.util.List;
  802. * BaseAdapter for {@link RecyclerView}. It manages bookmarks to list there.
  803. */
  804. class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
  805. - implements BookmarkUIObserver, SyncService.SyncStateChangedListener {
  806. + implements BookmarkUIObserver {
  807. private static final int MAXIMUM_NUMBER_OF_SEARCH_RESULTS = 500;
  808. private static final String EMPTY_QUERY = null;
  809. @@ -62,10 +59,8 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
  810. @ViewType
  811. private int mPromoHeaderType = ViewType.INVALID;
  812. private BookmarkDelegate mDelegate;
  813. - private BookmarkPromoHeader mPromoHeaderManager;
  814. private String mSearchText;
  815. private BookmarkId mCurrentFolder;
  816. - private SyncService mSyncService;
  817. private CommerceSubscriptionsServiceFactory mCommerceSubscriptionsServiceFactory;
  818. // Keep track of the currently highlighted bookmark - used for "show in folder" action.
  819. @@ -119,8 +114,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
  820. BookmarkItemsAdapter(Context context) {
  821. super(context);
  822. - mSyncService = SyncService.get();
  823. - mSyncService.addSyncStateChangedListener(this);
  824. mImageFetcher =
  825. ImageFetcherFactory.createImageFetcher(ImageFetcherConfig.IN_MEMORY_WITH_DISK_CACHE,
  826. @@ -219,9 +212,9 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
  827. case ViewType.PERSONALIZED_SIGNIN_PROMO:
  828. // fall through
  829. case ViewType.PERSONALIZED_SYNC_PROMO:
  830. - return mPromoHeaderManager.createPersonalizedSigninAndSyncPromoHolder(parent);
  831. + return null;
  832. case ViewType.SYNC_PROMO:
  833. - return mPromoHeaderManager.createSyncPromoHolder(parent);
  834. + return null;
  835. case ViewType.SECTION_HEADER:
  836. return createSectionHeaderViewHolder(parent, viewType);
  837. case ViewType.FOLDER:
  838. @@ -252,10 +245,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
  839. public void onBindViewHolder(ViewHolder holder, int position) {
  840. if (holder.getItemViewType() == ViewType.PERSONALIZED_SIGNIN_PROMO
  841. || holder.getItemViewType() == ViewType.PERSONALIZED_SYNC_PROMO) {
  842. - PersonalizedSigninPromoView view =
  843. - (PersonalizedSigninPromoView) holder.itemView.findViewById(
  844. - R.id.signin_promo_view_container);
  845. - mPromoHeaderManager.setUpSyncPromoView(view);
  846. } else if (holder.getItemViewType() == ViewType.SECTION_HEADER) {
  847. bindSectionHeaderViewHolder(holder.itemView, getItemByPosition(position));
  848. } else if (BookmarkListEntry.isBookmarkEntry(holder.getItemViewType())) {
  849. @@ -313,7 +302,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
  850. case ViewType.PERSONALIZED_SIGNIN_PROMO:
  851. // fall through
  852. case ViewType.PERSONALIZED_SYNC_PROMO:
  853. - mPromoHeaderManager.detachPersonalizePromoView();
  854. break;
  855. default:
  856. // Other view holders don't have special recycling code.
  857. @@ -339,7 +327,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
  858. updateHeader(!topLevelFoldersShowing());
  859. };
  860. - mPromoHeaderManager = new BookmarkPromoHeader(mContext, promoHeaderChangeAction);
  861. populateTopLevelFoldersList();
  862. mElements = new ArrayList<>();
  863. @@ -354,8 +341,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
  864. mDelegate.getModel().removeObserver(mBookmarkModelObserver);
  865. mDelegate.getSelectionDelegate().removeObserver(this);
  866. mDelegate = null;
  867. - mPromoHeaderManager.destroy();
  868. - mSyncService.removeSyncStateChangedListener(this);
  869. }
  870. @Override
  871. @@ -448,18 +433,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
  872. setOrder(mElements);
  873. }
  874. - // SyncStateChangedListener implementation.
  875. - @Override
  876. - public void syncStateChanged() {
  877. - // If mDelegate is null, we will set the top level folders upon its initialization
  878. - // (see onBookmarkDelegateInitialized method above).
  879. - if (mDelegate == null) {
  880. - return;
  881. - }
  882. - mTopLevelFolders.clear();
  883. - populateTopLevelFoldersList();
  884. - }
  885. -
  886. /**
  887. * Updates mPromoHeaderType. Makes sure that the 0th index of mElements is consistent with the
  888. * promo header. This 0th index is null iff there is a promo header.
  889. @@ -479,23 +452,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
  890. return;
  891. } else if (currentUIState == BookmarkUIState.STATE_SEARCHING) {
  892. mPromoHeaderType = ViewType.INVALID;
  893. - } else {
  894. - switch (mPromoHeaderManager.getPromoState()) {
  895. - case SyncPromoState.NO_PROMO:
  896. - mPromoHeaderType = ViewType.INVALID;
  897. - break;
  898. - case SyncPromoState.PROMO_FOR_SIGNED_OUT_STATE:
  899. - mPromoHeaderType = ViewType.PERSONALIZED_SIGNIN_PROMO;
  900. - break;
  901. - case SyncPromoState.PROMO_FOR_SIGNED_IN_STATE:
  902. - mPromoHeaderType = ViewType.PERSONALIZED_SYNC_PROMO;
  903. - break;
  904. - case SyncPromoState.PROMO_FOR_SYNC_TURNED_OFF_STATE:
  905. - mPromoHeaderType = ViewType.SYNC_PROMO;
  906. - break;
  907. - default:
  908. - assert false : "Unexpected value for promo state!";
  909. - }
  910. }
  911. boolean willShowPromo = hasPromoHeader();
  912. @@ -618,7 +574,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
  913. @VisibleForTesting
  914. void simulateSignInForTests() {
  915. - syncStateChanged();
  916. onFolderStateSet(mCurrentFolder);
  917. }
  918. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java
  919. --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java
  920. +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java
  921. @@ -18,42 +18,22 @@ import org.chromium.chrome.R;
  922. import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
  923. import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
  924. import org.chromium.chrome.browser.profiles.Profile;
  925. -import org.chromium.chrome.browser.signin.SyncConsentActivityLauncherImpl;
  926. -import org.chromium.chrome.browser.signin.SyncPromoView;
  927. -import org.chromium.chrome.browser.signin.services.IdentityServicesProvider;
  928. -import org.chromium.chrome.browser.signin.services.ProfileDataCache;
  929. -import org.chromium.chrome.browser.signin.services.SigninManager;
  930. -import org.chromium.chrome.browser.signin.services.SigninManager.SignInStateObserver;
  931. -import org.chromium.chrome.browser.sync.SyncService;
  932. -import org.chromium.chrome.browser.ui.signin.PersonalizedSigninPromoView;
  933. -import org.chromium.chrome.browser.ui.signin.SigninPromoController;
  934. import org.chromium.chrome.browser.ui.signin.SigninPromoController.SyncPromoState;
  935. -import org.chromium.components.signin.AccountManagerFacade;
  936. -import org.chromium.components.signin.AccountManagerFacadeProvider;
  937. -import org.chromium.components.signin.AccountsChangeObserver;
  938. -import org.chromium.components.signin.identitymanager.ConsentLevel;
  939. -import org.chromium.components.signin.metrics.SigninAccessPoint;
  940. /**
  941. * Class that manages all the logic and UI behind the signin promo header in the bookmark
  942. * content UI. The header is shown only on certain situations, (e.g., not signed in).
  943. */
  944. -class BookmarkPromoHeader implements SyncService.SyncStateChangedListener, SignInStateObserver,
  945. - ProfileDataCache.Observer, AccountsChangeObserver {
  946. +class BookmarkPromoHeader {
  947. // TODO(kkimlabs): Figure out the optimal number based on UMA data.
  948. private static final int MAX_SIGNIN_AND_SYNC_PROMO_SHOW_COUNT = 10;
  949. private static @Nullable @SyncPromoState Integer sPromoStateForTests;
  950. private final Context mContext;
  951. - private final SigninManager mSignInManager;
  952. - private final AccountManagerFacade mAccountManagerFacade;
  953. private final Runnable mPromoHeaderChangeAction;
  954. - private @Nullable ProfileDataCache mProfileDataCache;
  955. - private final @Nullable SigninPromoController mSigninPromoController;
  956. private @SyncPromoState int mPromoState = SyncPromoState.NO_PROMO;
  957. - private final @Nullable SyncService mSyncService;
  958. /**
  959. * Initializes the class. Note that this will start listening to signin related events and
  960. @@ -62,42 +42,12 @@ class BookmarkPromoHeader implements SyncService.SyncStateChangedListener, SignI
  961. BookmarkPromoHeader(Context context, Runnable promoHeaderChangeAction) {
  962. mContext = context;
  963. mPromoHeaderChangeAction = promoHeaderChangeAction;
  964. -
  965. - mSyncService = SyncService.get();
  966. - if (mSyncService != null) mSyncService.addSyncStateChangedListener(this);
  967. -
  968. - mSignInManager = IdentityServicesProvider.get().getSigninManager(
  969. - Profile.getLastUsedRegularProfile());
  970. - mSignInManager.addSignInStateObserver(this);
  971. -
  972. - mAccountManagerFacade = AccountManagerFacadeProvider.getInstance();
  973. -
  974. - if (SigninPromoController.canShowSyncPromo(SigninAccessPoint.BOOKMARK_MANAGER)) {
  975. - mProfileDataCache = ProfileDataCache.createWithDefaultImageSizeAndNoBadge(mContext);
  976. - mProfileDataCache.addObserver(this);
  977. - mSigninPromoController = new SigninPromoController(
  978. - SigninAccessPoint.BOOKMARK_MANAGER, SyncConsentActivityLauncherImpl.get());
  979. - mAccountManagerFacade.addObserver(this);
  980. - } else {
  981. - mProfileDataCache = null;
  982. - mSigninPromoController = null;
  983. - }
  984. - updatePromoState();
  985. }
  986. /**
  987. * Clean ups the class. Must be called once done using this class.
  988. */
  989. void destroy() {
  990. - if (mSyncService != null) mSyncService.removeSyncStateChangedListener(this);
  991. -
  992. - if (mSigninPromoController != null) {
  993. - mAccountManagerFacade.removeObserver(this);
  994. - mProfileDataCache.removeObserver(this);
  995. - mSigninPromoController.onPromoDestroyed();
  996. - }
  997. -
  998. - mSignInManager.removeSignInStateObserver(this);
  999. }
  1000. /**
  1001. @@ -108,58 +58,11 @@ class BookmarkPromoHeader implements SyncService.SyncStateChangedListener, SignI
  1002. return mPromoState;
  1003. }
  1004. - /**
  1005. - * @return Personalized signin promo header {@link ViewHolder} instance that can be used with
  1006. - * {@link RecyclerView}.
  1007. - */
  1008. - ViewHolder createPersonalizedSigninAndSyncPromoHolder(ViewGroup parent) {
  1009. - View view = LayoutInflater.from(mContext).inflate(
  1010. - R.layout.personalized_signin_promo_view_bookmarks, parent, false);
  1011. -
  1012. - // ViewHolder is abstract and it cannot be instantiated directly.
  1013. - return new ViewHolder(view) {};
  1014. - }
  1015. -
  1016. - /**
  1017. - * @return Sync promo header {@link ViewHolder} instance that can be used with
  1018. - * {@link RecyclerView}.
  1019. - */
  1020. - ViewHolder createSyncPromoHolder(ViewGroup parent) {
  1021. - SyncPromoView view = SyncPromoView.create(parent, SigninAccessPoint.BOOKMARK_MANAGER);
  1022. -
  1023. - // ViewHolder is abstract and it cannot be instantiated directly.
  1024. - return new ViewHolder(view) {};
  1025. - }
  1026. -
  1027. - /**
  1028. - * Sets up the sync promo view.
  1029. - */
  1030. - void setUpSyncPromoView(PersonalizedSigninPromoView view) {
  1031. - mSigninPromoController.setUpSyncPromoView(
  1032. - mProfileDataCache, view, this::setPersonalizedSigninPromoDeclined);
  1033. - }
  1034. -
  1035. - /**
  1036. - * Detaches the previously configured {@link PersonalizedSigninPromoView}.
  1037. - */
  1038. - void detachPersonalizePromoView() {
  1039. - if (mSigninPromoController != null) mSigninPromoController.detach();
  1040. - }
  1041. -
  1042. - /**
  1043. - * Saves that the personalized signin promo was declined and updates the UI.
  1044. - */
  1045. - private void setPersonalizedSigninPromoDeclined() {
  1046. - mPromoState = calculatePromoState();
  1047. - triggerPromoUpdate();
  1048. - }
  1049. -
  1050. /**
  1051. * @return Whether the personalized signin promo should be shown to user.
  1052. */
  1053. private boolean shouldShowBookmarkSigninPromo() {
  1054. - return mSignInManager.isSignInAllowed()
  1055. - && SigninPromoController.canShowSyncPromo(SigninAccessPoint.BOOKMARK_MANAGER);
  1056. + return false;
  1057. }
  1058. private @SyncPromoState int calculatePromoState() {
  1059. @@ -167,90 +70,10 @@ class BookmarkPromoHeader implements SyncService.SyncStateChangedListener, SignI
  1060. return sPromoStateForTests;
  1061. }
  1062. - if (mSyncService == null) {
  1063. - // |mSyncService| will remain null until the next browser startup, so no sense in
  1064. - // offering any promo.
  1065. - return SyncPromoState.NO_PROMO;
  1066. - }
  1067. -
  1068. - if (!mSyncService.isSyncAllowedByPlatform()) {
  1069. - return SyncPromoState.NO_PROMO;
  1070. - }
  1071. -
  1072. - if (!mSignInManager.getIdentityManager().hasPrimaryAccount(ConsentLevel.SYNC)) {
  1073. - if (!shouldShowBookmarkSigninPromo()) {
  1074. - return SyncPromoState.NO_PROMO;
  1075. - }
  1076. -
  1077. - return mSignInManager.getIdentityManager().hasPrimaryAccount(ConsentLevel.SIGNIN)
  1078. - ? SyncPromoState.PROMO_FOR_SIGNED_IN_STATE
  1079. - : SyncPromoState.PROMO_FOR_SIGNED_OUT_STATE;
  1080. - }
  1081. -
  1082. - boolean impressionLimitNotReached =
  1083. - SharedPreferencesManager.getInstance().readInt(
  1084. - ChromePreferenceKeys.SIGNIN_AND_SYNC_PROMO_SHOW_COUNT)
  1085. - < MAX_SIGNIN_AND_SYNC_PROMO_SHOW_COUNT;
  1086. - if (!mSyncService.isSyncRequested() && impressionLimitNotReached) {
  1087. - return SyncPromoState.PROMO_FOR_SYNC_TURNED_OFF_STATE;
  1088. - }
  1089. return SyncPromoState.NO_PROMO;
  1090. }
  1091. - private void updatePromoState() {
  1092. - final @SyncPromoState int newState = calculatePromoState();
  1093. - if (newState == mPromoState) return;
  1094. -
  1095. - // PROMO_SYNC state and it's impression counts is not tracked by SigninPromoController.
  1096. - final boolean hasSyncPromoStateChangedtoShown =
  1097. - (mPromoState == SyncPromoState.NO_PROMO
  1098. - || mPromoState == SyncPromoState.PROMO_FOR_SYNC_TURNED_OFF_STATE)
  1099. - && (newState == SyncPromoState.PROMO_FOR_SIGNED_OUT_STATE
  1100. - || newState == SyncPromoState.PROMO_FOR_SIGNED_IN_STATE);
  1101. - if (mSigninPromoController != null && hasSyncPromoStateChangedtoShown) {
  1102. - mSigninPromoController.increasePromoShowCount();
  1103. - }
  1104. - if (newState == SyncPromoState.PROMO_FOR_SYNC_TURNED_OFF_STATE) {
  1105. - SharedPreferencesManager.getInstance().incrementInt(
  1106. - ChromePreferenceKeys.SIGNIN_AND_SYNC_PROMO_SHOW_COUNT);
  1107. - }
  1108. - mPromoState = newState;
  1109. - }
  1110. -
  1111. - // SyncService.SyncStateChangedListener implementation.
  1112. - @Override
  1113. - public void syncStateChanged() {
  1114. - updatePromoState();
  1115. - triggerPromoUpdate();
  1116. - }
  1117. -
  1118. - // SignInStateObserver implementation.
  1119. - @Override
  1120. - public void onSignedIn() {
  1121. - updatePromoState();
  1122. - triggerPromoUpdate();
  1123. - }
  1124. -
  1125. - @Override
  1126. - public void onSignedOut() {
  1127. - updatePromoState();
  1128. - triggerPromoUpdate();
  1129. - }
  1130. -
  1131. - // ProfileDataCache.Observer implementation.
  1132. - @Override
  1133. - public void onProfileDataUpdated(String accountEmail) {
  1134. - triggerPromoUpdate();
  1135. - }
  1136. -
  1137. - // AccountsChangeObserver implementation.
  1138. - @Override
  1139. - public void onAccountsChanged() {
  1140. - triggerPromoUpdate();
  1141. - }
  1142. -
  1143. private void triggerPromoUpdate() {
  1144. - detachPersonalizePromoView();
  1145. mPromoHeaderChangeAction.run();
  1146. }
  1147. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentBasic.java b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentBasic.java
  1148. --- a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentBasic.java
  1149. +++ b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentBasic.java
  1150. @@ -24,7 +24,6 @@ import org.chromium.chrome.browser.flags.ChromeFeatureList;
  1151. import org.chromium.chrome.browser.profiles.Profile;
  1152. import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory;
  1153. import org.chromium.chrome.browser.signin.services.IdentityServicesProvider;
  1154. -import org.chromium.chrome.browser.sync.SyncService;
  1155. import org.chromium.chrome.browser.tab.TabLaunchType;
  1156. import org.chromium.chrome.browser.tabmodel.document.TabDelegate;
  1157. import org.chromium.components.browser_ui.settings.ClickableSpansTextMessagePreference;
  1158. @@ -207,9 +206,7 @@ public class ClearBrowsingDataFragmentBasic extends ClearBrowsingDataFragment {
  1159. }
  1160. private boolean isHistorySyncEnabled() {
  1161. - SyncService syncService = SyncService.get();
  1162. - return syncService != null && syncService.isSyncRequested()
  1163. - && syncService.getActiveDataTypes().contains(ModelType.HISTORY_DELETE_DIRECTIVES);
  1164. + return false;
  1165. }
  1166. @Override
  1167. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchUma.java b/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchUma.java
  1168. --- a/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchUma.java
  1169. +++ b/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchUma.java
  1170. @@ -16,7 +16,6 @@ import org.chromium.base.metrics.RecordUserAction;
  1171. import org.chromium.chrome.browser.compositor.bottombar.OverlayPanel.PanelState;
  1172. import org.chromium.chrome.browser.compositor.bottombar.OverlayPanel.StateChangeReason;
  1173. import org.chromium.chrome.browser.contextualsearch.ResolvedSearchTerm.CardTag;
  1174. -import org.chromium.chrome.browser.sync.SyncService;
  1175. import java.lang.annotation.Retention;
  1176. import java.lang.annotation.RetentionPolicy;
  1177. @@ -882,10 +881,6 @@ public class ContextualSearchUma {
  1178. public static void logTapResultsSeen(boolean wasPanelSeen) {
  1179. RecordHistogram.recordBooleanHistogram(
  1180. "Search.ContextualSearch.Tap.ResultsSeen", wasPanelSeen);
  1181. - if (SyncService.get() != null && SyncService.get().isSyncRequested()) {
  1182. - RecordHistogram.recordBooleanHistogram(
  1183. - "Search.ContextualSearch.Tap.SyncEnabled.ResultsSeen", wasPanelSeen);
  1184. - }
  1185. }
  1186. /**
  1187. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
  1188. --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
  1189. +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
  1190. @@ -35,7 +35,6 @@ import org.chromium.chrome.browser.browserservices.intents.BrowserServicesIntent
  1191. import org.chromium.chrome.browser.browserservices.intents.BrowserServicesIntentDataProvider.CustomTabsUiType;
  1192. import org.chromium.chrome.browser.customtabs.content.CustomTabActivityTabProvider;
  1193. import org.chromium.chrome.browser.customtabs.features.CustomTabNavigationBarController;
  1194. -import org.chromium.chrome.browser.firstrun.FirstRunSignInProcessor;
  1195. import org.chromium.chrome.browser.flags.AllCachedFieldTrialParameters;
  1196. import org.chromium.chrome.browser.flags.ChromeFeatureList;
  1197. import org.chromium.chrome.browser.fonts.FontPreloader;
  1198. @@ -136,8 +135,6 @@ public class CustomTabActivity extends BaseCustomTabActivity {
  1199. @Override
  1200. public void finishNativeInitialization() {
  1201. - if (!mIntentDataProvider.isInfoPage()) FirstRunSignInProcessor.start(this);
  1202. -
  1203. mConnection.showSignInToastIfNecessary(mSession, getIntent());
  1204. new CustomTabTrustedCdnPublisherUrlVisibility(
  1205. 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
  1206. --- a/chrome/android/java/src/org/chromium/chrome/browser/datareduction/settings/DataReductionPreferenceFragment.java
  1207. +++ b/chrome/android/java/src/org/chromium/chrome/browser/datareduction/settings/DataReductionPreferenceFragment.java
  1208. @@ -56,10 +56,10 @@ public class DataReductionPreferenceFragment extends PreferenceFragmentCompat {
  1209. public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
  1210. SettingsUtils.addPreferencesFromResource(this, R.xml.data_reduction_preferences);
  1211. getActivity().setTitle(R.string.data_reduction_title_lite_mode);
  1212. - boolean isEnabled = DataReductionProxySettings.getInstance().isDataReductionProxyEnabled();
  1213. - mIsEnabled = !isEnabled;
  1214. - mWasEnabledAtCreation = isEnabled;
  1215. - updatePreferences(isEnabled);
  1216. +
  1217. + mIsEnabled = false;
  1218. + mWasEnabledAtCreation = false;
  1219. + updatePreferences(false);
  1220. setHasOptionsMenu(true);
  1221. @@ -175,21 +175,7 @@ public class DataReductionPreferenceFragment extends PreferenceFragmentCompat {
  1222. * Returns summary string.
  1223. */
  1224. public static String generateSummary(Resources resources) {
  1225. - if (DataReductionProxySettings.getInstance().isDataReductionProxyEnabled()) {
  1226. - ContentLengths length = DataReductionProxySettings.getInstance().getContentLengths();
  1227. -
  1228. - // If received is less than show chart threshold than don't show summary.
  1229. - if (ConversionUtils.bytesToKilobytes(length.getReceived())
  1230. - < DataReductionProxySettings.DATA_REDUCTION_SHOW_CHART_KB_THRESHOLD) {
  1231. - return "";
  1232. - }
  1233. -
  1234. - String percent = generatePercentSavings(length);
  1235. - return resources.getString(
  1236. - R.string.data_reduction_menu_item_summary_lite_mode, percent);
  1237. - } else {
  1238. - return (String) resources.getText(R.string.text_off);
  1239. - }
  1240. + return (String) resources.getText(R.string.text_off);
  1241. }
  1242. /**
  1243. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java
  1244. --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java
  1245. +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java
  1246. @@ -29,13 +29,9 @@ import org.chromium.base.supplier.OneshotSupplierImpl;
  1247. import org.chromium.base.supplier.Supplier;
  1248. import org.chromium.chrome.R;
  1249. import org.chromium.chrome.browser.customtabs.CustomTabActivity;
  1250. -import org.chromium.chrome.browser.datareduction.DataReductionPromoUtils;
  1251. -import org.chromium.chrome.browser.datareduction.DataReductionProxyUma;
  1252. import org.chromium.chrome.browser.fonts.FontPreloader;
  1253. import org.chromium.chrome.browser.metrics.UmaUtils;
  1254. -import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings;
  1255. import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory;
  1256. -import org.chromium.chrome.browser.signin.SigninFirstRunFragment;
  1257. import org.chromium.chrome.browser.signin.services.FREMobileIdentityConsistencyFieldTrial;
  1258. import org.chromium.components.browser_ui.modaldialog.AppModalPresenter;
  1259. import org.chromium.ui.base.LocalizationUtils;
  1260. @@ -141,7 +137,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
  1261. FREMobileIdentityConsistencyFieldTrial.createFirstRunTrial();
  1262. BooleanSupplier showWelcomePage = () -> !FirstRunStatus.shouldSkipWelcomePage();
  1263. if (FREMobileIdentityConsistencyFieldTrial.isEnabled()) {
  1264. - mPages.add(new FirstRunPage<>(SigninFirstRunFragment.class, showWelcomePage));
  1265. } else {
  1266. // TODO(crbug.com/1111490): Revisit during post-MVP.
  1267. // There's an edge case where we accept the welcome page in the main app, abort the FRE,
  1268. @@ -186,21 +181,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
  1269. BooleanSupplier showSyncConsent = () -> mFreProperties.getBoolean(SHOW_SYNC_CONSENT_PAGE);
  1270. boolean notifyAdapter = false;
  1271. - // An optional sign-in page, the visibility of this page will be decided on the fly
  1272. - // according to the situation.
  1273. - if (FREMobileIdentityConsistencyFieldTrial.isEnabled()) {
  1274. - mPages.add(new FirstRunPage<>(SyncConsentFirstRunFragment.class, showSyncConsent));
  1275. - mFreProgressStates.add(MobileFreProgress.SYNC_CONSENT_SHOWN);
  1276. - notifyAdapter = true;
  1277. - }
  1278. -
  1279. - // An optional Data Saver page.
  1280. - if (showDataReductionPromo.getAsBoolean()) {
  1281. - mPages.add(new FirstRunPage<>(
  1282. - DataReductionProxyFirstRunFragment.class, showDataReductionPromo));
  1283. - mFreProgressStates.add(MobileFreProgress.DATA_SAVER_SHOWN);
  1284. - notifyAdapter = true;
  1285. - }
  1286. // An optional page to select a default search engine.
  1287. if (showSearchEnginePromo.getAsBoolean()) {
  1288. @@ -210,13 +190,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
  1289. notifyAdapter = true;
  1290. }
  1291. - // An optional sign-in page.
  1292. - if (!FREMobileIdentityConsistencyFieldTrial.isEnabled()) {
  1293. - mPages.add(new FirstRunPage<>(SyncConsentFirstRunFragment.class, showSyncConsent));
  1294. - mFreProgressStates.add(MobileFreProgress.SYNC_CONSENT_SHOWN);
  1295. - notifyAdapter = true;
  1296. - }
  1297. -
  1298. if (notifyAdapter && mPagerAdapter != null) {
  1299. mPagerAdapter.notifyDataSetChanged();
  1300. }
  1301. @@ -490,18 +463,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
  1302. FirstRunFlowSequencer.markFlowAsCompleted(
  1303. mResultSyncConsentAccountName, mResultShowAdvancedSyncSettings);
  1304. - if (DataReductionPromoUtils.getDisplayedFreOrSecondRunPromo()) {
  1305. - if (DataReductionProxySettings.getInstance().isDataReductionProxyEnabled()) {
  1306. - DataReductionProxyUma
  1307. - .dataReductionProxyUIAction(DataReductionProxyUma.ACTION_FRE_ENABLED);
  1308. - DataReductionPromoUtils.saveFrePromoOptOut(false);
  1309. - } else {
  1310. - DataReductionProxyUma
  1311. - .dataReductionProxyUIAction(DataReductionProxyUma.ACTION_FRE_DISABLED);
  1312. - DataReductionPromoUtils.saveFrePromoOptOut(true);
  1313. - }
  1314. - }
  1315. -
  1316. if (sObserver != null) sObserver.onUpdateCachedEngineName(this);
  1317. launchPendingIntentAndFinish();
  1318. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencer.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencer.java
  1319. --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencer.java
  1320. +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencer.java
  1321. @@ -62,35 +62,13 @@ public abstract class FirstRunFlowSequencer {
  1322. /** Returns true if the sync consent promo page should be shown. */
  1323. boolean shouldShowSyncConsentPage(
  1324. Activity activity, List<Account> accounts, @Status int childAccountStatus) {
  1325. - if (ChildAccountStatus.isChild(childAccountStatus)) {
  1326. - // Always show the sync consent page for child account.
  1327. - return true;
  1328. - }
  1329. - final IdentityManager identityManager =
  1330. - IdentityServicesProvider.get().getIdentityManager(
  1331. - Profile.getLastUsedRegularProfile());
  1332. - if (identityManager.hasPrimaryAccount(ConsentLevel.SYNC) || !isSyncAllowed()) {
  1333. - // No need to show the sync consent page if users already consented to sync or
  1334. - // if sync is not allowed.
  1335. - return false;
  1336. - }
  1337. - if (FREMobileIdentityConsistencyFieldTrial.isEnabled()) {
  1338. - // Show the sync consent page only to the signed-in users.
  1339. - return identityManager.hasPrimaryAccount(ConsentLevel.SIGNIN);
  1340. - } else {
  1341. - // We show the sync consent page if sync is allowed, and not signed in, and
  1342. - // - "skip the first use hints" is not set, or
  1343. - // - "skip the first use hints" is set, but there is at least one account.
  1344. - return !shouldSkipFirstUseHints(activity) || !accounts.isEmpty();
  1345. - }
  1346. + return false;
  1347. }
  1348. /** @return true if the Data Reduction promo page should be shown. */
  1349. @VisibleForTesting
  1350. public boolean shouldShowDataReductionPage() {
  1351. - return !DataReductionProxySettings.getInstance().isDataReductionProxyManaged()
  1352. - && DataReductionProxySettings.getInstance()
  1353. - .isDataReductionProxyFREPromoAllowed();
  1354. + return false;
  1355. }
  1356. /** @return true if the Search Engine promo page should be shown. */
  1357. @@ -105,10 +83,7 @@ public abstract class FirstRunFlowSequencer {
  1358. /** @return true if Sync is allowed for the current user. */
  1359. @VisibleForTesting
  1360. protected boolean isSyncAllowed() {
  1361. - SigninManager signinManager = IdentityServicesProvider.get().getSigninManager(
  1362. - Profile.getLastUsedRegularProfile());
  1363. - return FirstRunUtils.canAllowSync() && !signinManager.isSigninDisabledByPolicy()
  1364. - && signinManager.isSigninSupported();
  1365. + return false;
  1366. }
  1367. /** @return true if first use hints should be skipped. */
  1368. @@ -168,7 +143,7 @@ public abstract class FirstRunFlowSequencer {
  1369. }
  1370. protected boolean shouldShowDataReductionPage() {
  1371. - return mDelegate.shouldShowDataReductionPage();
  1372. + return false;
  1373. }
  1374. @VisibleForTesting
  1375. @@ -182,7 +157,6 @@ public abstract class FirstRunFlowSequencer {
  1376. @VisibleForTesting
  1377. protected void setFirstRunFlowSignInComplete() {
  1378. - FirstRunSignInProcessor.setFirstRunFlowSignInComplete(true);
  1379. }
  1380. private void initializeSharedState(
  1381. @@ -192,13 +166,6 @@ public abstract class FirstRunFlowSequencer {
  1382. }
  1383. private void processFreEnvironmentPreNative() {
  1384. - Bundle freProperties = new Bundle();
  1385. - freProperties.putInt(SyncConsentFirstRunFragment.CHILD_ACCOUNT_STATUS, mChildAccountStatus);
  1386. -
  1387. - onFlowIsKnown(freProperties);
  1388. - if (ChildAccountStatus.isChild(mChildAccountStatus)) {
  1389. - setFirstRunFlowSignInComplete();
  1390. - }
  1391. }
  1392. /**
  1393. @@ -207,12 +174,6 @@ public abstract class FirstRunFlowSequencer {
  1394. * @param freProperties Resulting FRE properties bundle.
  1395. */
  1396. public void updateFirstRunProperties(Bundle freProperties) {
  1397. - freProperties.putBoolean(
  1398. - FirstRunActivity.SHOW_SYNC_CONSENT_PAGE, shouldShowSyncConsentPage());
  1399. - freProperties.putBoolean(
  1400. - FirstRunActivity.SHOW_DATA_REDUCTION_PAGE, shouldShowDataReductionPage());
  1401. - freProperties.putBoolean(
  1402. - FirstRunActivity.SHOW_SEARCH_ENGINE_PAGE, shouldShowSearchEnginePage());
  1403. }
  1404. /**
  1405. @@ -227,10 +188,6 @@ public abstract class FirstRunFlowSequencer {
  1406. if (!FirstRunUtils.isFirstRunEulaAccepted()) {
  1407. FirstRunUtils.setEulaAccepted();
  1408. }
  1409. -
  1410. - // Mark the FRE flow as complete and set the sign-in flow preferences if necessary.
  1411. - FirstRunSignInProcessor.finalizeFirstRunFlowState(
  1412. - syncConsentAccountName, showAdvancedSyncSettings);
  1413. }
  1414. /**
  1415. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/LightweightFirstRunActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/LightweightFirstRunActivity.java
  1416. --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/LightweightFirstRunActivity.java
  1417. +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/LightweightFirstRunActivity.java
  1418. @@ -86,11 +86,7 @@ public class LightweightFirstRunActivity
  1419. return;
  1420. }
  1421. - @ChildAccountStatus.Status
  1422. - int childAccountStatus =
  1423. - freProperties.getInt(SyncConsentFirstRunFragment.CHILD_ACCOUNT_STATUS,
  1424. - ChildAccountStatus.NOT_CHILD);
  1425. - initializeViews(ChildAccountStatus.isChild(childAccountStatus));
  1426. + initializeViews(false);
  1427. }
  1428. };
  1429. mFirstRunFlowSequencer.start();
  1430. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java
  1431. --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java
  1432. +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java
  1433. @@ -28,7 +28,6 @@ import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImp
  1434. import org.chromium.chrome.browser.signin.services.FREMobileIdentityConsistencyFieldTrial;
  1435. import org.chromium.chrome.browser.ui.signin.fre.FreUMADialogCoordinator;
  1436. import org.chromium.chrome.browser.version.ChromeVersionInfo;
  1437. -import org.chromium.components.signin.ChildAccountStatus;
  1438. import org.chromium.ui.modaldialog.ModalDialogManagerHolder;
  1439. import org.chromium.ui.text.NoUnderlineClickableSpan;
  1440. import org.chromium.ui.text.SpanApplier;
  1441. @@ -113,41 +112,6 @@ public class ToSAndUMAFirstRunFragment
  1442. : R.string.family_link_privacy_policy_url);
  1443. });
  1444. - final CharSequence tosText;
  1445. - Bundle freProperties = getPageDelegate().getProperties();
  1446. - @ChildAccountStatus.Status
  1447. - int childAccountStatus = freProperties.getInt(
  1448. - SyncConsentFirstRunFragment.CHILD_ACCOUNT_STATUS, ChildAccountStatus.NOT_CHILD);
  1449. - if (showUmaDialog) {
  1450. - final NoUnderlineClickableSpan clickableUMADialogSpan =
  1451. - new NoUnderlineClickableSpan(resources, (view1) -> openUmaDialog());
  1452. - if (childAccountStatus == ChildAccountStatus.REGULAR_CHILD) {
  1453. - tosText = SpanApplier.applySpans(
  1454. - getString(R.string.signin_fre_footer_supervised_user),
  1455. - new SpanInfo("<TOS_LINK>", "</TOS_LINK>", clickableGoogleTermsSpan),
  1456. - new SpanInfo("<PRIVACY_LINK>", "</PRIVACY_LINK>",
  1457. - clickableFamilyLinkPrivacySpan),
  1458. - new SpanInfo("<UMA_LINK>", "</UMA_LINK>", clickableUMADialogSpan));
  1459. - } else {
  1460. - tosText = SpanApplier.applySpans(getString(R.string.signin_fre_footer),
  1461. - new SpanInfo("<TOS_LINK>", "</TOS_LINK>", clickableGoogleTermsSpan),
  1462. - new SpanInfo("<UMA_LINK>", "</UMA_LINK>", clickableUMADialogSpan));
  1463. - }
  1464. - } else {
  1465. - if (childAccountStatus == ChildAccountStatus.REGULAR_CHILD) {
  1466. - tosText = SpanApplier.applySpans(
  1467. - getString(R.string.fre_tos_and_privacy_child_account),
  1468. - new SpanInfo("<LINK1>", "</LINK1>", clickableGoogleTermsSpan),
  1469. - new SpanInfo("<LINK2>", "</LINK2>", clickableChromeAdditionalTermsSpan),
  1470. - new SpanInfo("<LINK3>", "</LINK3>", clickableFamilyLinkPrivacySpan));
  1471. - } else {
  1472. - tosText = SpanApplier.applySpans(getString(R.string.fre_tos),
  1473. - new SpanInfo("<LINK1>", "</LINK1>", clickableGoogleTermsSpan),
  1474. - new SpanInfo("<LINK2>", "</LINK2>", clickableChromeAdditionalTermsSpan));
  1475. - }
  1476. - }
  1477. - mTosAndPrivacy.setText(tosText);
  1478. -
  1479. // If this page should be skipped, it can be one of the following cases:
  1480. // 1. Native hasn't been initialized yet and this page will be skipped once that happens.
  1481. // 2. The user has moved back to this page after advancing past it. In this case, this
  1482. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java
  1483. --- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java
  1484. +++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java
  1485. @@ -207,11 +207,6 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver
  1486. mHistoryAdapter.generateHeaderItems();
  1487. mHistoryAdapter.generateFooterItems();
  1488. - // Listen to changes in sign in state.
  1489. - IdentityServicesProvider.get()
  1490. - .getSigninManager(Profile.getLastUsedRegularProfile())
  1491. - .addSignInStateObserver(this);
  1492. -
  1493. // Create PrefChangeRegistrar to receive notifications on preference changes.
  1494. mPrefChangeRegistrar = new PrefChangeRegistrar();
  1495. mPrefChangeRegistrar.addObserver(Pref.ALLOW_DELETING_BROWSER_HISTORY, this);
  1496. @@ -245,9 +240,6 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver
  1497. mHistoryAdapter.onDestroyed();
  1498. mLargeIconBridge.destroy();
  1499. mLargeIconBridge = null;
  1500. - IdentityServicesProvider.get()
  1501. - .getSigninManager(Profile.getLastUsedRegularProfile())
  1502. - .removeSignInStateObserver(this);
  1503. mPrefChangeRegistrar.destroy();
  1504. }
  1505. @@ -500,4 +492,4 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver
  1506. public static void setScrollToLoadDisabledForTesting(boolean isScrollToLoadDisabled) {
  1507. sIsScrollToLoadDisabledForTests = isScrollToLoadDisabled;
  1508. }
  1509. -}
  1510. \ No newline at end of file
  1511. +}
  1512. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java
  1513. --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java
  1514. +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java
  1515. @@ -35,7 +35,6 @@ import org.chromium.chrome.browser.crash.LogcatExtractionRunnable;
  1516. import org.chromium.chrome.browser.download.DownloadManagerService;
  1517. import org.chromium.chrome.browser.flags.ChromeSwitches;
  1518. import org.chromium.chrome.browser.language.GlobalAppLocaleController;
  1519. -import org.chromium.chrome.browser.signin.SigninCheckerProvider;
  1520. import org.chromium.chrome.browser.webapps.ChromeWebApkHost;
  1521. import org.chromium.components.background_task_scheduler.BackgroundTaskSchedulerFactory;
  1522. import org.chromium.components.crash.browser.ChildProcessCrashObserver;
  1523. @@ -339,7 +338,6 @@ public class ChromeBrowserInitializer {
  1524. LibraryPrefetcher.asyncPrefetchLibrariesToMemory();
  1525. getBrowserStartupController().startBrowserProcessesSync(
  1526. LibraryProcessType.PROCESS_BROWSER, /*singleProcess=*/false);
  1527. - SigninCheckerProvider.get();
  1528. } finally {
  1529. TraceEvent.end("ChromeBrowserInitializer.startChromeBrowserProcessesSync");
  1530. }
  1531. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
  1532. --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
  1533. +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
  1534. @@ -59,7 +59,6 @@ import org.chromium.chrome.browser.media.MediaViewerUtils;
  1535. import org.chromium.chrome.browser.metrics.LaunchMetrics;
  1536. import org.chromium.chrome.browser.metrics.PackageMetrics;
  1537. import org.chromium.chrome.browser.metrics.WebApkUninstallUmaTracker;
  1538. -import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings;
  1539. import org.chromium.chrome.browser.notifications.channels.ChannelsUpdater;
  1540. import org.chromium.chrome.browser.offlinepages.measurements.OfflineMeasurementsBackgroundTask;
  1541. import org.chromium.chrome.browser.omnibox.voice.AssistantVoiceSearchService;
  1542. @@ -74,7 +73,6 @@ import org.chromium.chrome.browser.quickactionsearchwidget.QuickActionSearchWidg
  1543. import org.chromium.chrome.browser.rlz.RevenueStats;
  1544. import org.chromium.chrome.browser.searchwidget.SearchWidgetProvider;
  1545. import org.chromium.chrome.browser.sharing.shared_clipboard.SharedClipboardShareActivity;
  1546. -import org.chromium.chrome.browser.signin.SigninCheckerProvider;
  1547. import org.chromium.chrome.browser.tab.state.ShoppingPersistedTabData;
  1548. import org.chromium.chrome.browser.tasks.tab_management.PriceTrackingUtilities;
  1549. import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityPreferencesManager;
  1550. @@ -219,7 +217,6 @@ public class ProcessInitializationHandler {
  1551. * Performs the post native initialization.
  1552. */
  1553. protected void handlePostNativeInitialization() {
  1554. - DataReductionProxySettings.handlePostNativeInitialization();
  1555. ChromeActivitySessionTracker.getInstance().initializeWithNative();
  1556. ProfileManagerUtils.removeSessionCookiesForAllProfiles();
  1557. AppBannerManager.setAppDetailsDelegate(AppHooks.get().createAppDetailsDelegate());
  1558. @@ -368,7 +365,6 @@ public class ProcessInitializationHandler {
  1559. deferredStartupHandler.addDeferredTask(new Runnable() {
  1560. @Override
  1561. public void run() {
  1562. - SigninCheckerProvider.get().onMainActivityStart();
  1563. RevenueStats.getInstance();
  1564. }
  1565. });
  1566. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java
  1567. --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java
  1568. +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java
  1569. @@ -15,17 +15,13 @@ import org.chromium.chrome.browser.invalidation.SessionsInvalidationManager;
  1570. import org.chromium.chrome.browser.ntp.ForeignSessionHelper.ForeignSession;
  1571. import org.chromium.chrome.browser.ntp.ForeignSessionHelper.ForeignSessionTab;
  1572. import org.chromium.chrome.browser.profiles.Profile;
  1573. -import org.chromium.chrome.browser.signin.SyncConsentActivityLauncherImpl;
  1574. import org.chromium.chrome.browser.signin.services.IdentityServicesProvider;
  1575. -import org.chromium.chrome.browser.signin.services.ProfileDataCache;
  1576. import org.chromium.chrome.browser.signin.services.SigninManager;
  1577. import org.chromium.chrome.browser.signin.services.SigninManager.SignInStateObserver;
  1578. -import org.chromium.chrome.browser.sync.SyncService;
  1579. import org.chromium.chrome.browser.tab.Tab;
  1580. import org.chromium.chrome.browser.ui.favicon.FaviconHelper;
  1581. import org.chromium.chrome.browser.ui.favicon.FaviconHelper.FaviconImageCallback;
  1582. import org.chromium.chrome.browser.ui.signin.PersonalizedSigninPromoView;
  1583. -import org.chromium.chrome.browser.ui.signin.SigninPromoController;
  1584. import org.chromium.chrome.browser.ui.signin.SigninPromoController.SyncPromoState;
  1585. import org.chromium.components.signin.AccountManagerFacadeProvider;
  1586. import org.chromium.components.signin.AccountsChangeObserver;
  1587. @@ -40,8 +36,8 @@ import java.util.List;
  1588. /**
  1589. * Provides the domain logic and data for RecentTabsPage and RecentTabsRowAdapter.
  1590. */
  1591. -public class RecentTabsManager implements SyncService.SyncStateChangedListener, SignInStateObserver,
  1592. - ProfileDataCache.Observer, AccountsChangeObserver {
  1593. +public class RecentTabsManager implements SignInStateObserver,
  1594. + AccountsChangeObserver {
  1595. /**
  1596. * Implement this to receive updates when the page contents change.
  1597. */
  1598. @@ -67,15 +63,9 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener,
  1599. private List<RecentlyClosedTab> mRecentlyClosedTabs;
  1600. private RecentTabsPagePrefs mPrefs;
  1601. private RecentlyClosedTabManager mRecentlyClosedTabManager;
  1602. - private SigninManager mSignInManager;
  1603. private UpdatedCallback mUpdatedCallback;
  1604. private boolean mIsDestroyed;
  1605. - private final ProfileDataCache mProfileDataCache;
  1606. - private final SigninPromoController mSigninPromoController;
  1607. - @Nullable
  1608. - private final SyncService mSyncService;
  1609. -
  1610. /**
  1611. * Create an RecentTabsManager to be used with RecentTabsPage and RecentTabsRowAdapter.
  1612. *
  1613. @@ -95,12 +85,6 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener,
  1614. mRecentlyClosedTabManager = sRecentlyClosedTabManagerForTests != null
  1615. ? sRecentlyClosedTabManagerForTests
  1616. : new RecentlyClosedBridge(profile);
  1617. - mSignInManager = IdentityServicesProvider.get().getSigninManager(mProfile);
  1618. -
  1619. - mProfileDataCache = ProfileDataCache.createWithDefaultImageSizeAndNoBadge(context);
  1620. - mSigninPromoController = new SigninPromoController(
  1621. - SigninAccessPoint.RECENT_TABS, SyncConsentActivityLauncherImpl.get());
  1622. - mSyncService = SyncService.get();
  1623. mRecentlyClosedTabManager.setTabsUpdatedRunnable(() -> {
  1624. updateRecentlyClosedTabs();
  1625. @@ -122,14 +106,6 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener,
  1626. */
  1627. public void destroy() {
  1628. mIsDestroyed = true;
  1629. - if (mSyncService != null) {
  1630. - mSyncService.removeSyncStateChangedListener(this);
  1631. - }
  1632. -
  1633. - mSignInManager.removeSignInStateObserver(this);
  1634. - mSignInManager = null;
  1635. -
  1636. - mProfileDataCache.removeObserver(this);
  1637. AccountManagerFacadeProvider.getInstance().removeObserver(this);
  1638. mFaviconHelper.destroy();
  1639. @@ -158,13 +134,6 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener,
  1640. }
  1641. private void registerObservers() {
  1642. - if (mSyncService != null) {
  1643. - mSyncService.addSyncStateChangedListener(this);
  1644. - }
  1645. -
  1646. - mSignInManager.addSignInStateObserver(this);
  1647. -
  1648. - mProfileDataCache.addObserver(this);
  1649. AccountManagerFacadeProvider.getInstance().addObserver(this);
  1650. }
  1651. @@ -360,26 +329,7 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener,
  1652. }
  1653. private @SyncPromoState int calculatePromoState() {
  1654. - if (!mSignInManager.getIdentityManager().hasPrimaryAccount(ConsentLevel.SYNC)) {
  1655. - if (!mSignInManager.isSignInAllowed()) {
  1656. - return SyncPromoState.NO_PROMO;
  1657. - }
  1658. - if (mSignInManager.getIdentityManager().hasPrimaryAccount(ConsentLevel.SIGNIN)) {
  1659. - return SyncPromoState.PROMO_FOR_SIGNED_IN_STATE;
  1660. - }
  1661. - return SyncPromoState.PROMO_FOR_SIGNED_OUT_STATE;
  1662. - }
  1663. -
  1664. - if (mSyncService == null) {
  1665. - // |mSyncService| will remain null until the next browser startup, so no sense in
  1666. - // offering any promo.
  1667. - return SyncPromoState.NO_PROMO;
  1668. - }
  1669. -
  1670. - if (mSyncService.isSyncRequested() && !mForeignSessions.isEmpty()) {
  1671. - return SyncPromoState.NO_PROMO;
  1672. - }
  1673. - return SyncPromoState.PROMO_FOR_SYNC_TURNED_OFF_STATE;
  1674. + return SyncPromoState.NO_PROMO;
  1675. }
  1676. private void updatePromoState() {
  1677. @@ -391,9 +341,6 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener,
  1678. || mPromoState == SyncPromoState.PROMO_FOR_SYNC_TURNED_OFF_STATE)
  1679. && (newState == SyncPromoState.PROMO_FOR_SIGNED_IN_STATE
  1680. || newState == SyncPromoState.PROMO_FOR_SIGNED_OUT_STATE);
  1681. - if (hasSyncPromoStateChangedtoShown) {
  1682. - mSigninPromoController.increasePromoShowCount();
  1683. - }
  1684. mPromoState = newState;
  1685. }
  1686. @@ -401,7 +348,6 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener,
  1687. * Sets up the sync promo view.
  1688. */
  1689. void setUpSyncPromoView(PersonalizedSigninPromoView view) {
  1690. - mSigninPromoController.setUpSyncPromoView(mProfileDataCache, view, null);
  1691. }
  1692. // SignInStateObserver implementation.
  1693. @@ -421,18 +367,6 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener,
  1694. update();
  1695. }
  1696. - // ProfileDataCache.Observer implementation.
  1697. - @Override
  1698. - public void onProfileDataUpdated(String accountEmail) {
  1699. - update();
  1700. - }
  1701. -
  1702. - // SyncService.SyncStateChangedListener implementation.
  1703. - @Override
  1704. - public void syncStateChanged() {
  1705. - update();
  1706. - }
  1707. -
  1708. private void postUpdate() {
  1709. if (mUpdatedCallback != null) {
  1710. mUpdatedCallback.onUpdated();
  1711. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsRowAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsRowAdapter.java
  1712. --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsRowAdapter.java
  1713. +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsRowAdapter.java
  1714. @@ -30,7 +30,6 @@ import org.chromium.chrome.R;
  1715. import org.chromium.chrome.browser.ntp.ForeignSessionHelper.ForeignSession;
  1716. import org.chromium.chrome.browser.ntp.ForeignSessionHelper.ForeignSessionTab;
  1717. import org.chromium.chrome.browser.ntp.ForeignSessionHelper.ForeignSessionWindow;
  1718. -import org.chromium.chrome.browser.signin.SyncPromoView;
  1719. import org.chromium.chrome.browser.ui.favicon.FaviconHelper.DefaultFaviconHelper;
  1720. import org.chromium.chrome.browser.ui.favicon.FaviconHelper.FaviconImageCallback;
  1721. import org.chromium.chrome.browser.ui.favicon.FaviconUtils;
  1722. @@ -454,8 +453,6 @@ public class RecentTabsRowAdapter extends BaseExpandableListAdapter {
  1723. convertView = layoutInflater.inflate(
  1724. R.layout.personalized_signin_promo_view_recent_tabs, parent, false);
  1725. }
  1726. - mRecentTabsManager.setUpSyncPromoView(
  1727. - convertView.findViewById(R.id.signin_promo_view_container));
  1728. return convertView;
  1729. }
  1730. }
  1731. @@ -472,9 +469,6 @@ public class RecentTabsRowAdapter extends BaseExpandableListAdapter {
  1732. @Override
  1733. View getChildView(
  1734. int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
  1735. - if (convertView == null) {
  1736. - convertView = SyncPromoView.create(parent, SigninAccessPoint.RECENT_TABS);
  1737. - }
  1738. return convertView;
  1739. }
  1740. }
  1741. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/RequestGenerator.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/RequestGenerator.java
  1742. --- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/RequestGenerator.java
  1743. +++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/RequestGenerator.java
  1744. @@ -38,9 +38,6 @@ public abstract class RequestGenerator {
  1745. protected RequestGenerator(Context context) {
  1746. mApplicationContext = context.getApplicationContext();
  1747. - UniqueIdentificationGeneratorFactory.registerGenerator(
  1748. - SettingsSecureBasedIdentificationGenerator.GENERATOR_ID,
  1749. - new SettingsSecureBasedIdentificationGenerator(getContext()), false);
  1750. }
  1751. /**
  1752. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerLauncher.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerLauncher.java
  1753. --- a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerLauncher.java
  1754. +++ b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerLauncher.java
  1755. @@ -11,7 +11,6 @@ import org.chromium.chrome.browser.flags.ChromeFeatureList;
  1756. import org.chromium.chrome.browser.profiles.Profile;
  1757. import org.chromium.chrome.browser.settings.SettingsLauncherImpl;
  1758. import org.chromium.chrome.browser.signin.services.IdentityServicesProvider;
  1759. -import org.chromium.chrome.browser.sync.SyncService;
  1760. import org.chromium.components.signin.identitymanager.ConsentLevel;
  1761. import org.chromium.components.signin.identitymanager.IdentityManager;
  1762. import org.chromium.components.sync.ModelType;
  1763. @@ -50,18 +49,6 @@ public class PasswordManagerLauncher {
  1764. }
  1765. public static boolean isSyncingPasswordsWithoutCustomPassphrase() {
  1766. - IdentityManager identityManager = IdentityServicesProvider.get().getIdentityManager(
  1767. - Profile.getLastUsedRegularProfile());
  1768. - if (!identityManager.hasPrimaryAccount(ConsentLevel.SYNC)) return false;
  1769. -
  1770. - SyncService syncService = SyncService.get();
  1771. - if (syncService == null
  1772. - || !syncService.getActiveDataTypes().contains(ModelType.PASSWORDS)) {
  1773. - return false;
  1774. - }
  1775. -
  1776. - if (syncService.isUsingExplicitPassphrase()) return false;
  1777. -
  1778. - return true;
  1779. + return false;
  1780. }
  1781. }
  1782. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordEntryViewer.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordEntryViewer.java
  1783. --- a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordEntryViewer.java
  1784. +++ b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordEntryViewer.java
  1785. @@ -39,7 +39,6 @@ import org.chromium.base.ApiCompatibilityUtils;
  1786. import org.chromium.base.metrics.RecordHistogram;
  1787. import org.chromium.chrome.R;
  1788. import org.chromium.chrome.browser.password_manager.ReauthResult;
  1789. -import org.chromium.chrome.browser.sync.SyncService;
  1790. import org.chromium.components.browser_ui.settings.SettingsUtils;
  1791. import org.chromium.ui.text.SpanApplier;
  1792. import org.chromium.ui.widget.Toast;
  1793. @@ -216,9 +215,7 @@ public class PasswordEntryViewer
  1794. }
  1795. private boolean isPasswordSyncingUser() {
  1796. - SyncService syncService = SyncService.get();
  1797. - return syncService != null && syncService.isSyncRequested()
  1798. - && syncService.isEngineInitialized() && !syncService.isUsingExplicitPassphrase();
  1799. + return false;
  1800. }
  1801. @Override
  1802. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java
  1803. --- a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java
  1804. +++ b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java
  1805. @@ -40,8 +40,6 @@ import org.chromium.chrome.browser.preferences.Pref;
  1806. import org.chromium.chrome.browser.profiles.Profile;
  1807. import org.chromium.chrome.browser.settings.ChromeManagedPreferenceDelegate;
  1808. import org.chromium.chrome.browser.settings.SettingsLauncherImpl;
  1809. -import org.chromium.chrome.browser.sync.SyncService;
  1810. -import org.chromium.chrome.browser.sync.settings.SyncSettingsUtils;
  1811. import org.chromium.components.browser_ui.settings.ChromeBasePreference;
  1812. import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
  1813. import org.chromium.components.browser_ui.settings.SearchUtils;
  1814. @@ -59,8 +57,7 @@ import java.util.Locale;
  1815. * to view saved passwords (just the username and URL), and to delete saved passwords.
  1816. */
  1817. public class PasswordSettings extends PreferenceFragmentCompat
  1818. - implements PasswordManagerHandler.PasswordListObserver,
  1819. - Preference.OnPreferenceClickListener, SyncService.SyncStateChangedListener {
  1820. + implements PasswordManagerHandler.PasswordListObserver, Preference.OnPreferenceClickListener {
  1821. // Keys for name/password dictionaries.
  1822. public static final String PASSWORD_LIST_URL = "url";
  1823. public static final String PASSWORD_LIST_NAME = "name";
  1824. @@ -152,10 +149,6 @@ public class PasswordSettings extends PreferenceFragmentCompat
  1825. setPreferenceScreen(getPreferenceManager().createPreferenceScreen(getStyledContext()));
  1826. PasswordManagerHandlerProvider.getInstance().addObserver(this);
  1827. - if (SyncService.get() != null) {
  1828. - SyncService.get().addSyncStateChangedListener(this);
  1829. - }
  1830. -
  1831. setHasOptionsMenu(true); // Password Export might be optional but Search is always present.
  1832. mManagePasswordsReferrer = getReferrerFromInstanceStateOrLaunchBundle(savedInstanceState);
  1833. @@ -186,8 +179,7 @@ public class PasswordSettings extends PreferenceFragmentCompat
  1834. public void onCreate(Bundle savedInstanceState) {
  1835. super.onCreate(savedInstanceState);
  1836. mPasswordCheck = PasswordCheckFactory.getOrCreate(new SettingsLauncherImpl());
  1837. - mShouldShowTrustedVaultOptIn =
  1838. - SyncService.get() != null && SyncService.get().shouldOfferTrustedVaultOptIn();
  1839. + mShouldShowTrustedVaultOptIn = false;
  1840. }
  1841. @Override
  1842. @@ -449,9 +441,6 @@ public class PasswordSettings extends PreferenceFragmentCompat
  1843. public void onDestroy() {
  1844. super.onDestroy();
  1845. - if (SyncService.get() != null) {
  1846. - SyncService.get().removeSyncStateChangedListener(this);
  1847. - }
  1848. // The component should only be destroyed when the activity has been closed by the user
  1849. // (e.g. by pressing on the back button) and not when the activity is temporarily destroyed
  1850. // by the system.
  1851. @@ -563,11 +552,6 @@ public class PasswordSettings extends PreferenceFragmentCompat
  1852. mTrustedVaultOptIn.setOrder(ORDER_TRUSTED_VAULT_OPT_IN);
  1853. mTrustedVaultOptIn.setSummary(R.string.android_trusted_vault_opt_in_sub_label);
  1854. mTrustedVaultOptIn.setOnPreferenceClickListener(preference -> {
  1855. - assert SyncService.get() != null;
  1856. - CoreAccountInfo accountInfo = SyncService.get().getAccountInfo();
  1857. - assert accountInfo != null;
  1858. - SyncSettingsUtils.openTrustedVaultOptInDialog(
  1859. - this, accountInfo, REQUEST_CODE_TRUSTED_VAULT_OPT_IN);
  1860. // Return true to notify the click was handled.
  1861. return true;
  1862. });
  1863. @@ -609,15 +593,6 @@ public class PasswordSettings extends PreferenceFragmentCompat
  1864. return UserPrefs.get(Profile.getLastUsedRegularProfile());
  1865. }
  1866. - @Override
  1867. - public void syncStateChanged() {
  1868. - boolean shouldShowTrustedVaultOptIn = SyncService.get().shouldOfferTrustedVaultOptIn();
  1869. - if (mShouldShowTrustedVaultOptIn != shouldShowTrustedVaultOptIn) {
  1870. - mShouldShowTrustedVaultOptIn = shouldShowTrustedVaultOptIn;
  1871. - rebuildPasswordLists();
  1872. - }
  1873. - }
  1874. -
  1875. @VisibleForTesting
  1876. Menu getMenuForTesting() {
  1877. return mMenu;
  1878. 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
  1879. --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
  1880. +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
  1881. @@ -28,8 +28,6 @@ import org.chromium.chrome.browser.profiles.Profile;
  1882. import org.chromium.chrome.browser.settings.ChromeManagedPreferenceDelegate;
  1883. import org.chromium.chrome.browser.settings.SettingsLauncherImpl;
  1884. import org.chromium.chrome.browser.signin.services.IdentityServicesProvider;
  1885. -import org.chromium.chrome.browser.sync.settings.GoogleServicesSettings;
  1886. -import org.chromium.chrome.browser.sync.settings.ManageSyncSettings;
  1887. import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
  1888. import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate;
  1889. import org.chromium.components.browser_ui.settings.SettingsLauncher;
  1890. @@ -50,7 +48,6 @@ public class PrivacySettings
  1891. private static final String PREF_HTTPS_FIRST_MODE = "https_first_mode";
  1892. private static final String PREF_SECURE_DNS = "secure_dns";
  1893. private static final String PREF_DO_NOT_TRACK = "do_not_track";
  1894. - private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link";
  1895. private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
  1896. private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox";
  1897. private static final String PREF_PRIVACY_REVIEW = "privacy_review";
  1898. @@ -121,36 +118,9 @@ public class PrivacySettings
  1899. Preference secureDnsPref = findPreference(PREF_SECURE_DNS);
  1900. secureDnsPref.setVisible(SecureDnsSettings.isUiEnabled());
  1901. - Preference syncAndServicesLink = findPreference(PREF_SYNC_AND_SERVICES_LINK);
  1902. - syncAndServicesLink.setSummary(buildSyncAndServicesLink());
  1903. -
  1904. updatePreferences();
  1905. }
  1906. - private SpannableString buildSyncAndServicesLink() {
  1907. - SettingsLauncher settingsLauncher = new SettingsLauncherImpl();
  1908. - NoUnderlineClickableSpan servicesLink = new NoUnderlineClickableSpan(getResources(), v -> {
  1909. - settingsLauncher.launchSettingsActivity(getActivity(), GoogleServicesSettings.class);
  1910. - });
  1911. - if (IdentityServicesProvider.get()
  1912. - .getIdentityManager(Profile.getLastUsedRegularProfile())
  1913. - .getPrimaryAccountInfo(ConsentLevel.SYNC)
  1914. - == null) {
  1915. - // Sync is off, show the string with one link to "Google Services".
  1916. - return SpanApplier.applySpans(
  1917. - getString(R.string.privacy_sync_and_services_link_sync_off),
  1918. - new SpanApplier.SpanInfo("<link>", "</link>", servicesLink));
  1919. - }
  1920. - // Otherwise, show the string with both links to "Sync" and "Google Services".
  1921. - NoUnderlineClickableSpan syncLink = new NoUnderlineClickableSpan(getResources(), v -> {
  1922. - settingsLauncher.launchSettingsActivity(getActivity(), ManageSyncSettings.class,
  1923. - ManageSyncSettings.createArguments(false));
  1924. - });
  1925. - return SpanApplier.applySpans(getString(R.string.privacy_sync_and_services_link_sync_on),
  1926. - new SpanApplier.SpanInfo("<link1>", "</link1>", syncLink),
  1927. - new SpanApplier.SpanInfo("<link2>", "</link2>", servicesLink));
  1928. - }
  1929. -
  1930. @Override
  1931. public boolean onPreferenceChange(Preference preference, Object newValue) {
  1932. String key = preference.getKey();
  1933. 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
  1934. --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
  1935. +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
  1936. @@ -19,9 +19,7 @@ import androidx.preference.PreferenceFragmentCompat;
  1937. import org.chromium.base.ContextUtils;
  1938. import org.chromium.chrome.R;
  1939. -import org.chromium.chrome.browser.datareduction.settings.DataReductionPreferenceFragment;
  1940. import org.chromium.chrome.browser.homepage.HomepageManager;
  1941. -import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings;
  1942. import org.chromium.chrome.browser.night_mode.NightModeMetrics.ThemeSettingsEntry;
  1943. import org.chromium.chrome.browser.night_mode.NightModeUtils;
  1944. import org.chromium.chrome.browser.night_mode.settings.ThemeSettingsFragment;
  1945. @@ -31,15 +29,6 @@ import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer;
  1946. import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher;
  1947. import org.chromium.chrome.browser.profiles.Profile;
  1948. import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory;
  1949. -import org.chromium.chrome.browser.signin.SyncConsentActivityLauncherImpl;
  1950. -import org.chromium.chrome.browser.signin.services.IdentityServicesProvider;
  1951. -import org.chromium.chrome.browser.signin.services.SigninManager;
  1952. -import org.chromium.chrome.browser.sync.SyncService;
  1953. -import org.chromium.chrome.browser.sync.settings.ManageSyncSettings;
  1954. -import org.chromium.chrome.browser.sync.settings.SignInPreference;
  1955. -import org.chromium.chrome.browser.sync.settings.SyncPromoPreference;
  1956. -import org.chromium.chrome.browser.sync.settings.SyncPromoPreference.State;
  1957. -import org.chromium.chrome.browser.sync.settings.SyncSettingsUtils;
  1958. import org.chromium.chrome.browser.toolbar.adaptive.AdaptiveToolbarFeatures;
  1959. import org.chromium.chrome.browser.toolbar.adaptive.AdaptiveToolbarStatePredictor;
  1960. import org.chromium.chrome.browser.tracing.settings.DeveloperSettings;
  1961. @@ -60,14 +49,10 @@ import java.util.Map;
  1962. * The main settings screen, shown when the user first opens Settings.
  1963. */
  1964. public class MainSettings extends PreferenceFragmentCompat
  1965. - implements TemplateUrlService.LoadListener, SyncService.SyncStateChangedListener,
  1966. - SigninManager.SignInStateObserver {
  1967. - public static final String PREF_SYNC_PROMO = "sync_promo";
  1968. + implements TemplateUrlService.LoadListener {
  1969. public static final String PREF_ACCOUNT_AND_GOOGLE_SERVICES_SECTION =
  1970. "account_and_google_services_section";
  1971. public static final String PREF_SIGN_IN = "sign_in";
  1972. - public static final String PREF_MANAGE_SYNC = "manage_sync";
  1973. - public static final String PREF_GOOGLE_SERVICES = "google_services";
  1974. public static final String PREF_SEARCH_ENGINE = "search_engine";
  1975. public static final String PREF_PASSWORDS = "passwords";
  1976. public static final String PREF_HOMEPAGE = "homepage";
  1977. @@ -75,7 +60,6 @@ public class MainSettings extends PreferenceFragmentCompat
  1978. public static final String PREF_UI_THEME = "ui_theme";
  1979. public static final String PREF_PRIVACY = "privacy";
  1980. public static final String PREF_SAFETY_CHECK = "safety_check";
  1981. - public static final String PREF_DATA_REDUCTION = "data_reduction";
  1982. public static final String PREF_NOTIFICATIONS = "notifications";
  1983. public static final String PREF_DOWNLOADS = "downloads";
  1984. public static final String PREF_DEVELOPER = "developer";
  1985. @@ -86,9 +70,6 @@ public class MainSettings extends PreferenceFragmentCompat
  1986. private final ManagedPreferenceDelegate mManagedPreferenceDelegate;
  1987. private final Map<String, Preference> mAllPreferences = new HashMap<>();
  1988. - private SyncPromoPreference mSyncPromoPreference;
  1989. - private SignInPreference mSignInPreference;
  1990. - private ChromeBasePreference mManageSync;
  1991. private @Nullable PasswordCheck mPasswordCheck;
  1992. public MainSettings() {
  1993. @@ -119,41 +100,12 @@ public class MainSettings extends PreferenceFragmentCompat
  1994. @Override
  1995. public void onDestroy() {
  1996. super.onDestroy();
  1997. - mSyncPromoPreference.onPreferenceFragmentDestroyed();
  1998. // The component should only be destroyed when the activity has been closed by the user
  1999. // (e.g. by pressing on the back button) and not when the activity is temporarily destroyed
  2000. // by the system.
  2001. if (getActivity().isFinishing() && mPasswordCheck != null) PasswordCheckFactory.destroy();
  2002. }
  2003. - @Override
  2004. - public void onStart() {
  2005. - super.onStart();
  2006. - SigninManager signinManager = IdentityServicesProvider.get().getSigninManager(
  2007. - Profile.getLastUsedRegularProfile());
  2008. - if (signinManager.isSigninSupported()) {
  2009. - signinManager.addSignInStateObserver(this);
  2010. - }
  2011. - SyncService syncService = SyncService.get();
  2012. - if (syncService != null) {
  2013. - syncService.addSyncStateChangedListener(this);
  2014. - }
  2015. - }
  2016. -
  2017. - @Override
  2018. - public void onStop() {
  2019. - super.onStop();
  2020. - SigninManager signinManager = IdentityServicesProvider.get().getSigninManager(
  2021. - Profile.getLastUsedRegularProfile());
  2022. - if (signinManager.isSigninSupported()) {
  2023. - signinManager.removeSignInStateObserver(this);
  2024. - }
  2025. - SyncService syncService = SyncService.get();
  2026. - if (syncService != null) {
  2027. - syncService.removeSyncStateChangedListener(this);
  2028. - }
  2029. - }
  2030. -
  2031. @Override
  2032. public void onResume() {
  2033. super.onResume();
  2034. @@ -165,12 +117,9 @@ public class MainSettings extends PreferenceFragmentCompat
  2035. cachePreferences();
  2036. - mSyncPromoPreference.setOnStateChangedCallback(this::onSyncPromoPreferenceStateChanged);
  2037. -
  2038. updatePasswordsPreference();
  2039. setManagedPreferenceDelegateForPreference(PREF_SEARCH_ENGINE);
  2040. - setManagedPreferenceDelegateForPreference(PREF_DATA_REDUCTION);
  2041. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
  2042. // If we are on Android O+ the Notifications preference should lead to the Android
  2043. @@ -215,9 +164,6 @@ public class MainSettings extends PreferenceFragmentCompat
  2044. Preference preference = getPreferenceScreen().getPreference(index);
  2045. mAllPreferences.put(preference.getKey(), preference);
  2046. }
  2047. - mSyncPromoPreference = (SyncPromoPreference) mAllPreferences.get(PREF_SYNC_PROMO);
  2048. - mSignInPreference = (SignInPreference) mAllPreferences.get(PREF_SIGN_IN);
  2049. - mManageSync = (ChromeBasePreference) findPreference(PREF_MANAGE_SYNC);
  2050. }
  2051. private void setManagedPreferenceDelegateForPreference(String key) {
  2052. @@ -226,15 +172,6 @@ public class MainSettings extends PreferenceFragmentCompat
  2053. }
  2054. private void updatePreferences() {
  2055. - if (IdentityServicesProvider.get()
  2056. - .getSigninManager(Profile.getLastUsedRegularProfile())
  2057. - .isSigninSupported()) {
  2058. - addPreferenceIfAbsent(PREF_SIGN_IN);
  2059. - } else {
  2060. - removePreferenceIfPresent(PREF_SIGN_IN);
  2061. - }
  2062. -
  2063. - updateManageSyncPreference();
  2064. updateSearchEnginePreference();
  2065. Preference homepagePref = addPreferenceIfAbsent(PREF_HOMEPAGE);
  2066. @@ -254,10 +191,6 @@ public class MainSettings extends PreferenceFragmentCompat
  2067. } else {
  2068. removePreferenceIfPresent(PREF_DEVELOPER);
  2069. }
  2070. -
  2071. - ChromeBasePreference dataReduction =
  2072. - (ChromeBasePreference) findPreference(PREF_DATA_REDUCTION);
  2073. - dataReduction.setSummary(DataReductionPreferenceFragment.generateSummary(getResources()));
  2074. }
  2075. private Preference addPreferenceIfAbsent(String key) {
  2076. @@ -271,37 +204,6 @@ public class MainSettings extends PreferenceFragmentCompat
  2077. if (preference != null) getPreferenceScreen().removePreference(preference);
  2078. }
  2079. - private void updateManageSyncPreference() {
  2080. - String primaryAccountName = CoreAccountInfo.getEmailFrom(
  2081. - IdentityServicesProvider.get()
  2082. - .getIdentityManager(Profile.getLastUsedRegularProfile())
  2083. - .getPrimaryAccountInfo(ConsentLevel.SIGNIN));
  2084. - boolean showManageSync = primaryAccountName != null;
  2085. - mManageSync.setVisible(showManageSync);
  2086. - if (!showManageSync) return;
  2087. -
  2088. - boolean isSyncConsentAvailable =
  2089. - IdentityServicesProvider.get()
  2090. - .getIdentityManager(Profile.getLastUsedRegularProfile())
  2091. - .getPrimaryAccountInfo(ConsentLevel.SYNC)
  2092. - != null;
  2093. - mManageSync.setIcon(SyncSettingsUtils.getSyncStatusIcon(getActivity()));
  2094. - mManageSync.setSummary(SyncSettingsUtils.getSyncStatusSummary(getActivity()));
  2095. - mManageSync.setOnPreferenceClickListener(pref -> {
  2096. - Context context = getContext();
  2097. - if (SyncService.get().isSyncDisabledByEnterprisePolicy()) {
  2098. - SyncSettingsUtils.showSyncDisabledByAdministratorToast(context);
  2099. - } else if (isSyncConsentAvailable) {
  2100. - SettingsLauncher settingsLauncher = new SettingsLauncherImpl();
  2101. - settingsLauncher.launchSettingsActivity(context, ManageSyncSettings.class);
  2102. - } else {
  2103. - SyncConsentActivityLauncherImpl.get().launchActivityForPromoDefaultFlow(
  2104. - context, SigninAccessPoint.SETTINGS, primaryAccountName);
  2105. - }
  2106. - return true;
  2107. - });
  2108. - }
  2109. -
  2110. private void updateSearchEnginePreference() {
  2111. if (!TemplateUrlServiceFactory.get().isLoaded()) {
  2112. ChromeBasePreference searchEnginePref =
  2113. @@ -333,28 +235,6 @@ public class MainSettings extends PreferenceFragmentCompat
  2114. pref.setSummary(isOn ? R.string.text_on : R.string.text_off);
  2115. }
  2116. - // SigninManager.SignInStateObserver implementation.
  2117. - @Override
  2118. - public void onSignedIn() {
  2119. - // After signing in or out of a managed account, preferences may change or become enabled
  2120. - // or disabled.
  2121. - new Handler().post(() -> updatePreferences());
  2122. - }
  2123. -
  2124. - @Override
  2125. - public void onSignedOut() {
  2126. - updatePreferences();
  2127. - }
  2128. -
  2129. - private void onSyncPromoPreferenceStateChanged() {
  2130. - // Remove "Account" section header if the personalized sign-in promo is shown.
  2131. - boolean isShowingPersonalizedSigninPromo =
  2132. - mSyncPromoPreference.getState() == State.PERSONALIZED_SIGNIN_PROMO;
  2133. - findPreference(PREF_ACCOUNT_AND_GOOGLE_SERVICES_SECTION)
  2134. - .setVisible(!isShowingPersonalizedSigninPromo);
  2135. - mSignInPreference.setIsShowingPersonalizedSigninPromo(isShowingPersonalizedSigninPromo);
  2136. - }
  2137. -
  2138. // TemplateUrlService.LoadListener implementation.
  2139. @Override
  2140. public void onTemplateUrlServiceLoaded() {
  2141. @@ -362,11 +242,6 @@ public class MainSettings extends PreferenceFragmentCompat
  2142. updateSearchEnginePreference();
  2143. }
  2144. - @Override
  2145. - public void syncStateChanged() {
  2146. - updateManageSyncPreference();
  2147. - }
  2148. -
  2149. @VisibleForTesting
  2150. public ManagedPreferenceDelegate getManagedPreferenceDelegateForTest() {
  2151. return mManagedPreferenceDelegate;
  2152. @@ -376,9 +251,6 @@ public class MainSettings extends PreferenceFragmentCompat
  2153. return new ChromeManagedPreferenceDelegate() {
  2154. @Override
  2155. public boolean isPreferenceControlledByPolicy(Preference preference) {
  2156. - if (PREF_DATA_REDUCTION.equals(preference.getKey())) {
  2157. - return DataReductionProxySettings.getInstance().isDataReductionProxyManaged();
  2158. - }
  2159. if (PREF_SEARCH_ENGINE.equals(preference.getKey())) {
  2160. return TemplateUrlServiceFactory.get().isDefaultSearchManaged();
  2161. }
  2162. @@ -387,11 +259,6 @@ public class MainSettings extends PreferenceFragmentCompat
  2163. @Override
  2164. public boolean isPreferenceClickDisabledByPolicy(Preference preference) {
  2165. - if (PREF_DATA_REDUCTION.equals(preference.getKey())) {
  2166. - DataReductionProxySettings settings = DataReductionProxySettings.getInstance();
  2167. - return settings.isDataReductionProxyManaged()
  2168. - && !settings.isDataReductionProxyEnabled();
  2169. - }
  2170. if (PREF_SEARCH_ENGINE.equals(preference.getKey())) {
  2171. return TemplateUrlServiceFactory.get().isDefaultSearchManaged();
  2172. }
  2173. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
  2174. --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
  2175. +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
  2176. @@ -50,7 +50,6 @@ import org.chromium.chrome.browser.safety_check.SafetyCheckCoordinator;
  2177. import org.chromium.chrome.browser.safety_check.SafetyCheckSettingsFragment;
  2178. import org.chromium.chrome.browser.safety_check.SafetyCheckUpdatesDelegateImpl;
  2179. import org.chromium.chrome.browser.search_engines.settings.SearchEngineSettings;
  2180. -import org.chromium.chrome.browser.signin.SyncConsentActivityLauncherImpl;
  2181. import org.chromium.chrome.browser.site_settings.ChromeSiteSettingsDelegate;
  2182. import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
  2183. import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarManageable;
  2184. @@ -289,9 +288,7 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
  2185. HelpAndFeedbackLauncherImpl.getInstance());
  2186. }
  2187. if (fragment instanceof SafetyCheckSettingsFragment) {
  2188. - SafetyCheckCoordinator.create((SafetyCheckSettingsFragment) fragment,
  2189. - new SafetyCheckUpdatesDelegateImpl(this), mSettingsLauncher,
  2190. - SyncConsentActivityLauncherImpl.get());
  2191. + // not supported
  2192. }
  2193. if (fragment instanceof PasswordCheckFragmentView) {
  2194. PasswordCheckComponentUiFactory.create((PasswordCheckFragmentView) fragment,
  2195. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/ShareDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/share/ShareDelegateImpl.java
  2196. --- a/chrome/android/java/src/org/chromium/chrome/browser/share/ShareDelegateImpl.java
  2197. +++ b/chrome/android/java/src/org/chromium/chrome/browser/share/ShareDelegateImpl.java
  2198. @@ -27,7 +27,6 @@ import org.chromium.chrome.browser.settings.SettingsLauncherImpl;
  2199. import org.chromium.chrome.browser.share.link_to_text.LinkToTextCoordinator;
  2200. import org.chromium.chrome.browser.share.share_sheet.ShareSheetCoordinator;
  2201. import org.chromium.chrome.browser.share.share_sheet.ShareSheetPropertyModelBuilder;
  2202. -import org.chromium.chrome.browser.sync.SyncService;
  2203. import org.chromium.chrome.browser.tab.SadTab;
  2204. import org.chromium.chrome.browser.tab.Tab;
  2205. import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
  2206. @@ -86,7 +85,7 @@ public class ShareDelegateImpl implements ShareDelegate {
  2207. if (mShareStartTime == 0L) {
  2208. mShareStartTime = System.currentTimeMillis();
  2209. }
  2210. - boolean isSyncEnabled = SyncService.get() != null && SyncService.get().isSyncRequested();
  2211. + boolean isSyncEnabled = false;
  2212. mDelegate.share(params, chromeShareExtras, mBottomSheetController, mLifecycleDispatcher,
  2213. mTabProvider, this::printTab, shareOrigin, isSyncEnabled, mShareStartTime,
  2214. isSharingHubEnabled());
  2215. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/ShareRegistrationCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/share/ShareRegistrationCoordinator.java
  2216. --- a/chrome/android/java/src/org/chromium/chrome/browser/share/ShareRegistrationCoordinator.java
  2217. +++ b/chrome/android/java/src/org/chromium/chrome/browser/share/ShareRegistrationCoordinator.java
  2218. @@ -21,7 +21,6 @@ import org.chromium.base.supplier.Supplier;
  2219. import org.chromium.chrome.browser.send_tab_to_self.SendTabToSelfShareActivity;
  2220. import org.chromium.chrome.browser.settings.SettingsLauncherImpl;
  2221. import org.chromium.chrome.browser.share.send_tab_to_self.SendTabToSelfCoordinator;
  2222. -import org.chromium.chrome.browser.sync.SyncService;
  2223. import org.chromium.chrome.browser.tab.Tab;
  2224. import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
  2225. import org.chromium.content_public.browser.NavigationEntry;
  2226. @@ -207,7 +206,7 @@ public class ShareRegistrationCoordinator {
  2227. void doSendTabToSelfShare(@NonNull Context context, @Nullable NavigationEntry entry,
  2228. @NonNull BottomSheetController bottomSheetController) {
  2229. if (entry == null) return;
  2230. - boolean isSyncEnabled = SyncService.get() != null && SyncService.get().isSyncRequested();
  2231. + boolean isSyncEnabled = false;
  2232. bottomSheetController.requestShowContent(
  2233. SendTabToSelfCoordinator.createBottomSheetContent(context, entry.getUrl().getSpec(),
  2234. entry.getTitle(), entry.getTimestamp(), bottomSheetController,
  2235. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sharing/shared_clipboard/SharedClipboardShareActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/sharing/shared_clipboard/SharedClipboardShareActivity.java
  2236. --- a/chrome/android/java/src/org/chromium/chrome/browser/sharing/shared_clipboard/SharedClipboardShareActivity.java
  2237. +++ b/chrome/android/java/src/org/chromium/chrome/browser/sharing/shared_clipboard/SharedClipboardShareActivity.java
  2238. @@ -26,7 +26,6 @@ import org.chromium.chrome.browser.settings.SettingsLauncherImpl;
  2239. import org.chromium.chrome.browser.sharing.SharingAdapter;
  2240. import org.chromium.chrome.browser.sharing.SharingServiceProxy;
  2241. import org.chromium.chrome.browser.sharing.SharingServiceProxy.DeviceInfo;
  2242. -import org.chromium.chrome.browser.sync.AndroidSyncSettings;
  2243. import org.chromium.components.browser_ui.settings.SettingsLauncher;
  2244. import org.chromium.components.sync.protocol.SharingSpecificFields;
  2245. import org.chromium.ui.widget.ButtonCompat;
  2246. @@ -77,13 +76,11 @@ public class SharedClipboardShareActivity
  2247. mask.setOnClickListener(v -> finish());
  2248. ButtonCompat chromeSettingsButton = findViewById(R.id.chrome_settings);
  2249. - if (!AndroidSyncSettings.get().isChromeSyncEnabled()) {
  2250. chromeSettingsButton.setVisibility(View.VISIBLE);
  2251. chromeSettingsButton.setOnClickListener(view -> {
  2252. SettingsLauncher settingsLauncher = new SettingsLauncherImpl();
  2253. settingsLauncher.launchSettingsActivity(ContextUtils.getApplicationContext());
  2254. });
  2255. - }
  2256. onInitialLayoutInflationComplete();
  2257. }
  2258. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
  2259. --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
  2260. +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
  2261. @@ -41,7 +41,6 @@ import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager;
  2262. import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager;
  2263. import org.chromium.chrome.browser.continuous_search.ContinuousSearchContainerCoordinator;
  2264. import org.chromium.chrome.browser.continuous_search.ContinuousSearchContainerCoordinator.HeightObserver;
  2265. -import org.chromium.chrome.browser.datareduction.DataReductionPromoScreen;
  2266. import org.chromium.chrome.browser.feed.FeedFeatures;
  2267. import org.chromium.chrome.browser.feed.webfeed.WebFeedFollowIntroController;
  2268. import org.chromium.chrome.browser.findinpage.FindToolbarObserver;
  2269. @@ -77,7 +76,6 @@ import org.chromium.chrome.browser.read_later.ReadLaterIPHController;
  2270. import org.chromium.chrome.browser.settings.SettingsLauncherImpl;
  2271. import org.chromium.chrome.browser.share.ShareDelegate;
  2272. import org.chromium.chrome.browser.share.link_to_text.LinkToTextIPHController;
  2273. -import org.chromium.chrome.browser.signin.SyncConsentActivityLauncherImpl;
  2274. import org.chromium.chrome.browser.status_indicator.StatusIndicatorCoordinator;
  2275. import org.chromium.chrome.browser.subscriptions.CommerceSubscriptionsService;
  2276. import org.chromium.chrome.browser.subscriptions.CommerceSubscriptionsServiceFactory;
  2277. @@ -98,7 +96,6 @@ import org.chromium.chrome.browser.ui.appmenu.AppMenuDelegate;
  2278. import org.chromium.chrome.browser.ui.appmenu.AppMenuHandler;
  2279. import org.chromium.chrome.browser.ui.default_browser_promo.DefaultBrowserPromoUtils;
  2280. import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
  2281. -import org.chromium.chrome.browser.ui.signin.SigninPromoUtil;
  2282. import org.chromium.chrome.browser.ui.system.StatusBarColorController.StatusBarColorProvider;
  2283. import org.chromium.chrome.browser.ui.tablet.emptybackground.EmptyBackgroundViewWrapper;
  2284. import org.chromium.chrome.browser.version.ChromeVersionInfo;
  2285. @@ -896,23 +893,6 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
  2286. }
  2287. private boolean maybeShowPromo() {
  2288. - // Only one promo can be shown in one run to avoid nagging users too much.
  2289. - if (SigninPromoUtil.launchSigninPromoIfNeeded(mActivity,
  2290. - SyncConsentActivityLauncherImpl.get(),
  2291. - ChromeVersionInfo.getProductMajorVersion())) {
  2292. - return true;
  2293. - }
  2294. - if (DataReductionPromoScreen.launchDataReductionPromo(
  2295. - mActivity, mTabModelSelectorSupplier.get().isIncognitoSelected())) {
  2296. - return true;
  2297. - }
  2298. - if (DefaultBrowserPromoUtils.prepareLaunchPromoIfNeeded(mActivity, mWindowAndroid)) {
  2299. - return true;
  2300. - }
  2301. - if (AppLanguagePromoDialog.maybeShowPrompt(mActivity, mModalDialogManagerSupplier,
  2302. - () -> ApplicationLifetime.terminate(true))) {
  2303. - return true;
  2304. - }
  2305. - return LanguageAskPrompt.maybeShowLanguageAskPrompt(mActivity, mModalDialogManagerSupplier);
  2306. + return false;
  2307. }
  2308. }
  2309. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeExperimentsUtil.java b/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeExperimentsUtil.java
  2310. --- a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeExperimentsUtil.java
  2311. +++ b/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeExperimentsUtil.java
  2312. @@ -36,7 +36,6 @@ import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
  2313. import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
  2314. import org.chromium.chrome.browser.profiles.Profile;
  2315. import org.chromium.chrome.browser.segmentation_platform.SegmentationPlatformServiceFactory;
  2316. -import org.chromium.chrome.browser.signin.services.IdentityServicesProvider;
  2317. import org.chromium.chrome.browser.tab.Tab;
  2318. import org.chromium.chrome.browser.tab.TabLaunchType;
  2319. import org.chromium.chrome.browser.tabmodel.TabModel;
  2320. @@ -49,7 +48,6 @@ import org.chromium.components.embedder_support.util.UrlConstants;
  2321. import org.chromium.components.embedder_support.util.UrlUtilities;
  2322. import org.chromium.components.optimization_guide.proto.ModelsProto.OptimizationTarget;
  2323. import org.chromium.components.segmentation_platform.SegmentationPlatformService;
  2324. -import org.chromium.components.signin.identitymanager.ConsentLevel;
  2325. import org.chromium.content_public.browser.LoadUrlParams;
  2326. import org.chromium.content_public.common.ResourceRequestBody;
  2327. import org.chromium.ui.base.DeviceFormFactor;
  2328. @@ -524,13 +522,8 @@ public final class ReturnToChromeExperimentsUtil {
  2329. * Caches the status of whether the primary account is synced.
  2330. */
  2331. public static void cachePrimaryAccountSyncStatus() {
  2332. - boolean isPrimaryAccountSync =
  2333. - IdentityServicesProvider.get()
  2334. - .getSigninManager(Profile.getLastUsedRegularProfile())
  2335. - .getIdentityManager()
  2336. - .hasPrimaryAccount(ConsentLevel.SYNC);
  2337. SharedPreferencesManager.getInstance().writeBoolean(
  2338. - ChromePreferenceKeys.PRIMARY_ACCOUNT_SYNC, isPrimaryAccountSync);
  2339. + ChromePreferenceKeys.PRIMARY_ACCOUNT_SYNC, false);
  2340. }
  2341. /**
  2342. diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
  2343. --- a/chrome/browser/BUILD.gn
  2344. +++ b/chrome/browser/BUILD.gn
  2345. @@ -2904,8 +2904,6 @@ static_library("browser") {
  2346. "android/signin/fre_mobile_identity_consistency_field_trial.h",
  2347. "android/signin/signin_bridge.cc",
  2348. "android/signin/signin_bridge.h",
  2349. - "android/signin/signin_manager_android.cc",
  2350. - "android/signin/signin_manager_android.h",
  2351. "android/signin/signin_metrics_utils.cc",
  2352. "android/signin/unified_consent_service_bridge.cc",
  2353. "android/signin/web_signin_bridge.cc",
  2354. @@ -3278,8 +3276,6 @@ static_library("browser") {
  2355. "sharing/sms/sms_fetch_request_handler.h",
  2356. "shell_integration_android.cc",
  2357. "signin/identity_services_provider_android.cc",
  2358. - "signin/signin_manager_android_factory.cc",
  2359. - "signin/signin_manager_android_factory.h",
  2360. "ssl/chrome_security_state_client.cc",
  2361. "ssl/chrome_security_state_client.h",
  2362. "ssl/chrome_security_state_model_delegate.cc",
  2363. @@ -3294,8 +3290,6 @@ static_library("browser") {
  2364. "sync/glue/synced_window_delegate_android.h",
  2365. "sync/glue/synced_window_delegates_getter_android.cc",
  2366. "sync/glue/synced_window_delegates_getter_android.h",
  2367. - "sync/sync_error_infobar_delegate_android.cc",
  2368. - "sync/sync_error_infobar_delegate_android.h",
  2369. "sync/sync_service_android_bridge.cc",
  2370. "sync/sync_service_android_bridge.h",
  2371. "sync/trusted_vault_client_android.cc",
  2372. @@ -6236,10 +6230,6 @@ static_library("browser") {
  2373. "signin/logout_tab_helper.h",
  2374. "signin/process_dice_header_delegate_impl.cc",
  2375. "signin/process_dice_header_delegate_impl.h",
  2376. - "signin/signin_manager.cc",
  2377. - "signin/signin_manager.h",
  2378. - "signin/signin_manager_factory.cc",
  2379. - "signin/signin_manager_factory.h",
  2380. ]
  2381. if (is_win) {
  2382. sources += [
  2383. diff --git a/chrome/browser/signin/identity_services_provider_android.cc b/chrome/browser/signin/identity_services_provider_android.cc
  2384. --- a/chrome/browser/signin/identity_services_provider_android.cc
  2385. +++ b/chrome/browser/signin/identity_services_provider_android.cc
  2386. @@ -6,7 +6,6 @@
  2387. #include "chrome/browser/profiles/profile_android.h"
  2388. #include "chrome/browser/signin/identity_manager_factory.h"
  2389. #include "chrome/browser/signin/services/android/jni_headers/IdentityServicesProvider_jni.h"
  2390. -#include "chrome/browser/signin/signin_manager_android_factory.h"
  2391. #include "components/signin/public/identity_manager/identity_manager.h"
  2392. using base::android::JavaParamRef;
  2393. @@ -29,11 +28,3 @@ JNI_IdentityServicesProvider_GetAccountTrackerService(
  2394. IdentityManagerFactory::GetForProfile(profile);
  2395. return identity_manager->LegacyGetAccountTrackerServiceJavaObject();
  2396. }
  2397. -
  2398. -static ScopedJavaLocalRef<jobject>
  2399. -JNI_IdentityServicesProvider_GetSigninManager(
  2400. - JNIEnv* env,
  2401. - const JavaParamRef<jobject>& j_profile_android) {
  2402. - Profile* profile = ProfileAndroid::FromProfileAndroid(j_profile_android);
  2403. - return SigninManagerAndroidFactory::GetJavaObjectForProfile(profile);
  2404. -}
  2405. diff --git a/chrome/browser/signin/services/android/java/src/org/chromium/chrome/browser/signin/services/IdentityServicesProvider.java b/chrome/browser/signin/services/android/java/src/org/chromium/chrome/browser/signin/services/IdentityServicesProvider.java
  2406. --- a/chrome/browser/signin/services/android/java/src/org/chromium/chrome/browser/signin/services/IdentityServicesProvider.java
  2407. +++ b/chrome/browser/signin/services/android/java/src/org/chromium/chrome/browser/signin/services/IdentityServicesProvider.java
  2408. @@ -61,23 +61,9 @@ public class IdentityServicesProvider {
  2409. return result;
  2410. }
  2411. - /**
  2412. - * Getter for {@link SigninManager} instance for given profile.
  2413. - * @param profile The profile to get regarding sign-in manager.
  2414. - * @return a {@link SigninManager} instance.
  2415. - */
  2416. - @MainThread
  2417. - public SigninManager getSigninManager(Profile profile) {
  2418. - ThreadUtils.assertOnUiThread();
  2419. - SigninManager result = IdentityServicesProviderJni.get().getSigninManager(profile);
  2420. - assert result != null;
  2421. - return result;
  2422. - }
  2423. -
  2424. @NativeMethods
  2425. public interface Natives {
  2426. IdentityManager getIdentityManager(Profile profile);
  2427. AccountTrackerService getAccountTrackerService(Profile profile);
  2428. - SigninManager getSigninManager(Profile profile);
  2429. }
  2430. }
  2431. diff --git a/chrome/browser/sync/sync_service_factory.cc b/chrome/browser/sync/sync_service_factory.cc
  2432. --- a/chrome/browser/sync/sync_service_factory.cc
  2433. +++ b/chrome/browser/sync/sync_service_factory.cc
  2434. @@ -78,7 +78,7 @@
  2435. #include "chrome/browser/sync/wifi_configuration_sync_service_factory.h"
  2436. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  2437. -namespace {
  2438. +/*namespace {
  2439. std::unique_ptr<KeyedService> BuildSyncService(
  2440. content::BrowserContext* context) {
  2441. @@ -175,7 +175,7 @@ std::unique_ptr<KeyedService> BuildSyncService(
  2442. return sync_service;
  2443. }
  2444. -} // anonymous namespace
  2445. +}*/ // anonymous namespace
  2446. // static
  2447. SyncServiceFactory* SyncServiceFactory::GetInstance() {
  2448. @@ -260,7 +260,7 @@ SyncServiceFactory::~SyncServiceFactory() = default;
  2449. KeyedService* SyncServiceFactory::BuildServiceInstanceFor(
  2450. content::BrowserContext* context) const {
  2451. - return BuildSyncService(context).release();
  2452. + return nullptr;
  2453. }
  2454. bool SyncServiceFactory::ServiceIsNULLWhileTesting() const {
  2455. @@ -302,9 +302,3 @@ SyncServiceFactory::GetAllSyncServices() {
  2456. }
  2457. return sync_services;
  2458. }
  2459. -
  2460. -// static
  2461. -BrowserContextKeyedServiceFactory::TestingFactory
  2462. -SyncServiceFactory::GetDefaultFactory() {
  2463. - return base::BindRepeating(&BuildSyncService);
  2464. -}
  2465. diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/ConfirmImportSyncDataDialogCoordinator.java b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/ConfirmImportSyncDataDialogCoordinator.java
  2466. --- a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/ConfirmImportSyncDataDialogCoordinator.java
  2467. +++ b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/ConfirmImportSyncDataDialogCoordinator.java
  2468. @@ -80,11 +80,7 @@ public class ConfirmImportSyncDataDialogCoordinator {
  2469. mKeepSeparateOption =
  2470. mConfirmImportSyncDataView.findViewById(R.id.sync_keep_separate_choice);
  2471. - boolean isCurrentAccountManaged =
  2472. - IdentityServicesProvider.get()
  2473. - .getSigninManager(Profile.getLastUsedRegularProfile())
  2474. - .getManagementDomain()
  2475. - != null;
  2476. + boolean isCurrentAccountManaged = false;
  2477. mModel = new PropertyModel.Builder(ModalDialogProperties.ALL_KEYS)
  2478. .with(ModalDialogProperties.CANCEL_ON_TOUCH_OUTSIDE, true)
  2479. .with(ModalDialogProperties.POSITIVE_BUTTON_TEXT,
  2480. diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/ConfirmSyncDataStateMachine.java b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/ConfirmSyncDataStateMachine.java
  2481. --- a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/ConfirmSyncDataStateMachine.java
  2482. +++ b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/ConfirmSyncDataStateMachine.java
  2483. @@ -175,9 +175,6 @@ public class ConfirmSyncDataStateMachine implements ConfirmImportSyncDataDialogC
  2484. }
  2485. private void requestNewAccountManagementStatus() {
  2486. - IdentityServicesProvider.get()
  2487. - .getSigninManager(Profile.getLastUsedRegularProfile())
  2488. - .isAccountManaged(mNewAccountName, this::setIsNewAccountManaged);
  2489. }
  2490. private void setIsNewAccountManaged(Boolean isManaged) {
  2491. @@ -196,10 +193,6 @@ public class ConfirmSyncDataStateMachine implements ConfirmImportSyncDataDialogC
  2492. if (mNewAccountManaged) {
  2493. // Show 'logging into managed account' dialog
  2494. // This will call back into onConfirm on success.
  2495. - mDelegate.showSignInToManagedAccountDialog(this,
  2496. - IdentityServicesProvider.get()
  2497. - .getSigninManager(Profile.getLastUsedRegularProfile())
  2498. - .extractDomainName(mNewAccountName));
  2499. } else {
  2500. mDelegate.dismissAllDialogs();
  2501. progress();
  2502. diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/SignOutDialogFragment.java b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/SignOutDialogFragment.java
  2503. --- a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/SignOutDialogFragment.java
  2504. +++ b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/SignOutDialogFragment.java
  2505. @@ -67,12 +67,6 @@ public class SignOutDialogFragment
  2506. mGaiaServiceType =
  2507. getArguments().getInt(SHOW_GAIA_SERVICE_TYPE_EXTRA, mGaiaServiceType);
  2508. }
  2509. - String domain = IdentityServicesProvider.get()
  2510. - .getSigninManager(Profile.getLastUsedRegularProfile())
  2511. - .getManagementDomain();
  2512. - if (domain != null) {
  2513. - return createDialogForManagedAccount(domain);
  2514. - }
  2515. return createDialog();
  2516. }
  2517. @@ -108,12 +102,6 @@ public class SignOutDialogFragment
  2518. if (which == AlertDialog.BUTTON_POSITIVE) {
  2519. SigninMetricsUtils.logProfileAccountManagementMenu(
  2520. ProfileAccountManagementMetrics.SIGNOUT_SIGNOUT, mGaiaServiceType);
  2521. - SigninManager signinManager = IdentityServicesProvider.get().getSigninManager(
  2522. - Profile.getLastUsedRegularProfile());
  2523. - if (signinManager.getManagementDomain() == null) {
  2524. - RecordHistogram.recordBooleanHistogram(
  2525. - "Signin.UserRequestedWipeDataOnSignout", mWipeUserData.isChecked());
  2526. - }
  2527. SignOutDialogListener targetFragment = (SignOutDialogListener) getTargetFragment();
  2528. targetFragment.onSignOutClicked(mWipeUserData != null && mWipeUserData.isChecked());
  2529. }
  2530. diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/account_picker/AccountPickerDelegateImpl.java b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/account_picker/AccountPickerDelegateImpl.java
  2531. --- a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/account_picker/AccountPickerDelegateImpl.java
  2532. +++ b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/account_picker/AccountPickerDelegateImpl.java
  2533. @@ -28,7 +28,6 @@ public class AccountPickerDelegateImpl implements AccountPickerDelegate {
  2534. private final Tab mCurrentTab;
  2535. private final WebSigninBridge.Factory mWebSigninBridgeFactory;
  2536. private final String mContinueUrl;
  2537. - private final SigninManager mSigninManager;
  2538. private final IdentityManager mIdentityManager;
  2539. private @Nullable WebSigninBridge mWebSigninBridge;
  2540. @@ -43,8 +42,6 @@ public class AccountPickerDelegateImpl implements AccountPickerDelegate {
  2541. mCurrentTab = currentTab;
  2542. mWebSigninBridgeFactory = webSigninBridgeFactory;
  2543. mContinueUrl = continueUrl;
  2544. - mSigninManager = IdentityServicesProvider.get().getSigninManager(
  2545. - Profile.getLastUsedRegularProfile());
  2546. mIdentityManager = IdentityServicesProvider.get().getIdentityManager(
  2547. Profile.getLastUsedRegularProfile());
  2548. }
  2549. @@ -62,27 +59,12 @@ public class AccountPickerDelegateImpl implements AccountPickerDelegate {
  2550. // if user retries the sign-in from the error screen, we need to sign out the user
  2551. // first before signing in again.
  2552. destroyWebSigninBridge();
  2553. - // TODO(https://crbug.com/1133752): Revise sign-out reason
  2554. - mSigninManager.signOut(SignoutReason.ABORT_SIGNIN);
  2555. }
  2556. AccountInfoServiceProvider.get().getAccountInfoByEmail(accountEmail).then(accountInfo -> {
  2557. mWebSigninBridge =
  2558. mWebSigninBridgeFactory.create(Profile.getLastUsedRegularProfile(), accountInfo,
  2559. createWebSigninBridgeListener(
  2560. mCurrentTab, mContinueUrl, onSignInErrorCallback));
  2561. - mSigninManager.signin(AccountUtils.createAccountFromName(accountEmail),
  2562. - new SigninManager.SignInCallback() {
  2563. - @Override
  2564. - public void onSignInComplete() {
  2565. - // After the sign-in is finished in Chrome, we still need to wait for
  2566. - // WebSigninBridge to be called to redirect to the continue url.
  2567. - }
  2568. -
  2569. - @Override
  2570. - public void onSignInAborted() {
  2571. - AccountPickerDelegateImpl.this.destroyWebSigninBridge();
  2572. - }
  2573. - });
  2574. });
  2575. }
  2576. diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fre/SigninFirstRunMediator.java b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fre/SigninFirstRunMediator.java
  2577. --- a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fre/SigninFirstRunMediator.java
  2578. +++ b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fre/SigninFirstRunMediator.java
  2579. @@ -80,10 +80,7 @@ class SigninFirstRunMediator implements AccountsChangeObserver, ProfileDataCache
  2580. void onNativeAndPolicyLoaded(boolean hasPolicies) {
  2581. mModel.set(SigninFirstRunProperties.ARE_NATIVE_AND_POLICY_LOADED, true);
  2582. mModel.set(SigninFirstRunProperties.FRE_POLICY, hasPolicies ? new FrePolicy() : null);
  2583. - final boolean isSigninSupported = ExternalAuthUtils.getInstance().canUseGooglePlayServices()
  2584. - && !IdentityServicesProvider.get()
  2585. - .getSigninManager(Profile.getLastUsedRegularProfile())
  2586. - .isSigninDisabledByPolicy();
  2587. + final boolean isSigninSupported = false;
  2588. mModel.set(SigninFirstRunProperties.IS_SIGNIN_SUPPORTED, isSigninSupported);
  2589. }
  2590. @@ -146,21 +143,6 @@ class SigninFirstRunMediator implements AccountsChangeObserver, ProfileDataCache
  2591. mDelegate.acceptTermsOfService();
  2592. return;
  2593. }
  2594. - final SigninManager signinManager = IdentityServicesProvider.get().getSigninManager(
  2595. - Profile.getLastUsedRegularProfile());
  2596. - signinManager.onFirstRunCheckDone();
  2597. - signinManager.signin(
  2598. - AccountUtils.createAccountFromName(mSelectedAccountName), new SignInCallback() {
  2599. - @Override
  2600. - public void onSignInComplete() {
  2601. - mDelegate.acceptTermsOfService();
  2602. - }
  2603. -
  2604. - @Override
  2605. - public void onSignInAborted() {
  2606. - // TODO(crbug/1248090): Handle the sign-in error here
  2607. - }
  2608. - });
  2609. }
  2610. /**
  2611. @@ -173,10 +155,6 @@ class SigninFirstRunMediator implements AccountsChangeObserver, ProfileDataCache
  2612. if (IdentityServicesProvider.get()
  2613. .getIdentityManager(Profile.getLastUsedRegularProfile())
  2614. .hasPrimaryAccount(ConsentLevel.SIGNIN)) {
  2615. - IdentityServicesProvider.get()
  2616. - .getSigninManager(Profile.getLastUsedRegularProfile())
  2617. - .signOut(SignoutReason.ABORT_SIGNIN, mDelegate::acceptTermsOfService,
  2618. - /* forceWipeUserData= */ false);
  2619. } else {
  2620. mDelegate.acceptTermsOfService();
  2621. }
  2622. diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
  2623. --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
  2624. +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
  2625. @@ -278,9 +278,6 @@ CHAR_LIMIT guidelines:
  2626. <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]">
  2627. Sign in to Chrome
  2628. </message>
  2629. - <message name="IDS_PREFS_MANAGE_SYNC_SETTINGS_CONTENT_DESCRIPTION" is_accessibility_with_no_ui="true" desc="The accessibility text to read when the 'Manage Sync 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.">
  2630. - You are currently customizing your Sync settings. To finish turning on sync, tap the Confirm button near the bottom of the screen. Navigate up
  2631. - </message>
  2632. <message name="IDS_SIGNIN_PREF_SUMMARY" desc="Summary for the entry in Settings to sign in to Chrome, explaining benefits of signing in.">
  2633. Sync and personalize across devices
  2634. </message>
  2635. @@ -339,18 +336,6 @@ CHAR_LIMIT guidelines:
  2636. <message name="IDS_URL_KEYED_ANONYMIZED_DATA_TITLE" desc="Title for a checkbox in Settings that controls non-personalized URL collection and informs the user about the data shared by this feature.">
  2637. Make searches and browsing better
  2638. </message>
  2639. - <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.">
  2640. - Sends URLs of pages you visit to Google
  2641. - </message>
  2642. - <message name="IDS_PRIVACY_SYNC_AND_SERVICES_LINK_LEGACY" desc="The text for Privacy preferences that is shown after all preference rows.">
  2643. - 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>
  2644. - </message>
  2645. - <message name="IDS_PRIVACY_SYNC_AND_SERVICES_LINK_SYNC_ON" desc="The text for Privacy preferences that is shown after all preference rows. This version of the text is shown if Sync has been turned on.">
  2646. - For more settings that relate to privacy, security, and data collection, see <ph name="BEGIN_LINK1">&lt;link1&gt;</ph>Sync<ph name="END_LINK1">&lt;/link1&gt;</ph> and <ph name="BEGIN_LINK2">&lt;link2&gt;</ph>Google services<ph name="END_LINK2">&lt;/link2&gt;</ph>
  2647. - </message>
  2648. - <message name="IDS_PRIVACY_SYNC_AND_SERVICES_LINK_SYNC_OFF" desc="The text for Privacy preferences that is shown after all preference rows. This version of the text is shown if Sync hasn't been turned on.">
  2649. - For more settings that relate to privacy, security, and data collection, see <ph name="BEGIN_LINK">&lt;link&gt;</ph>Google services<ph name="END_LINK">&lt;/link&gt;</ph>
  2650. - </message>
  2651. <!-- Metrics settings -->
  2652. <message name="IDS_PREFS_METRICS_SETTINGS" desc="Title for the page that allows the user to control how much usage data Chrome uploads. [CHAR_LIMIT=32]">
  2653. diff --git a/components/signin/public/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java b/components/signin/public/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java
  2654. --- a/components/signin/public/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java
  2655. +++ b/components/signin/public/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java
  2656. @@ -130,13 +130,6 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
  2657. }
  2658. protected boolean hasFeatures(Account account, String[] features) {
  2659. - if (hasGetAccountsPermission()) {
  2660. - try {
  2661. - return mAccountManager.hasFeatures(account, features, null, null).getResult();
  2662. - } catch (AuthenticatorException | IOException | OperationCanceledException e) {
  2663. - Log.e(TAG, "Error while checking features: ", e);
  2664. - }
  2665. - }
  2666. return false;
  2667. }
  2668. @@ -177,25 +170,10 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
  2669. public void updateCredentials(
  2670. Account account, Activity activity, final Callback<Boolean> callback) {
  2671. ThreadUtils.assertOnUiThread();
  2672. - AccountManagerCallback<Bundle> realCallback = future -> {
  2673. - Bundle bundle = null;
  2674. - try {
  2675. - bundle = future.getResult();
  2676. - } catch (AuthenticatorException | IOException e) {
  2677. - Log.e(TAG, "Error while update credentials: ", e);
  2678. - } catch (OperationCanceledException e) {
  2679. - Log.w(TAG, "Updating credentials was cancelled.");
  2680. - }
  2681. - boolean success =
  2682. - bundle != null && bundle.getString(AccountManager.KEY_ACCOUNT_TYPE) != null;
  2683. - if (callback != null) {
  2684. - callback.onResult(success);
  2685. - }
  2686. - };
  2687. - // Android 4.4 throws NullPointerException if null is passed
  2688. - Bundle emptyOptions = new Bundle();
  2689. - mAccountManager.updateCredentials(
  2690. - account, "android", emptyOptions, activity, realCallback, null);
  2691. + if (callback != null) {
  2692. + ThreadUtils.postOnUiThread(callback.bind(false));
  2693. + }
  2694. + return;
  2695. }
  2696. @Nullable
  2697. diff --git a/net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java b/net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java
  2698. --- a/net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java
  2699. +++ b/net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java
  2700. @@ -98,54 +98,8 @@ public class HttpNegotiateAuthenticator {
  2701. @Override
  2702. public void run(AccountManagerFuture<Account[]> future) {
  2703. - Account[] accounts;
  2704. - try {
  2705. - accounts = future.getResult();
  2706. - } catch (OperationCanceledException | AuthenticatorException | IOException e) {
  2707. - Log.w(TAG, "ERR_UNEXPECTED: Error while attempting to retrieve accounts.", e);
  2708. - HttpNegotiateAuthenticatorJni.get().setResult(mRequestData.nativeResultObject,
  2709. - HttpNegotiateAuthenticator.this, NetError.ERR_UNEXPECTED, null);
  2710. - return;
  2711. - }
  2712. -
  2713. - if (accounts.length == 0) {
  2714. - Log.w(TAG, "ERR_MISSING_AUTH_CREDENTIALS: No account provided for the kerberos "
  2715. - + "authentication. Please verify the configuration policies and "
  2716. - + "that the CONTACTS runtime permission is granted. ");
  2717. - HttpNegotiateAuthenticatorJni.get().setResult(mRequestData.nativeResultObject,
  2718. - HttpNegotiateAuthenticator.this, NetError.ERR_MISSING_AUTH_CREDENTIALS,
  2719. - null);
  2720. - return;
  2721. - }
  2722. -
  2723. - if (accounts.length > 1) {
  2724. - Log.w(TAG, "ERR_MISSING_AUTH_CREDENTIALS: Found %d accounts eligible for the "
  2725. - + "kerberos authentication. Please fix the configuration by "
  2726. - + "providing a single account.",
  2727. - accounts.length);
  2728. - HttpNegotiateAuthenticatorJni.get().setResult(mRequestData.nativeResultObject,
  2729. - HttpNegotiateAuthenticator.this, NetError.ERR_MISSING_AUTH_CREDENTIALS,
  2730. - null);
  2731. - return;
  2732. - }
  2733. -
  2734. - if (lacksPermission(ContextUtils.getApplicationContext(),
  2735. - "android.permission.USE_CREDENTIALS", true)) {
  2736. - // Protecting the AccountManager#getAuthToken call.
  2737. - // API < 23 Requires the USE_CREDENTIALS permission or throws an exception.
  2738. - // API >= 23 USE_CREDENTIALS permission is removed
  2739. - Log.e(TAG, "ERR_MISCONFIGURED_AUTH_ENVIRONMENT: USE_CREDENTIALS permission not "
  2740. - + "granted. Aborting authentication.");
  2741. - HttpNegotiateAuthenticatorJni.get().setResult(mRequestData.nativeResultObject,
  2742. - HttpNegotiateAuthenticator.this,
  2743. - NetError.ERR_MISCONFIGURED_AUTH_ENVIRONMENT, null);
  2744. - return;
  2745. - }
  2746. - mRequestData.account = accounts[0];
  2747. - mRequestData.accountManager.getAuthToken(mRequestData.account,
  2748. - mRequestData.authTokenType, mRequestData.options, true /* notifyAuthFailure */,
  2749. - new GetTokenCallback(mRequestData),
  2750. - new Handler(ThreadUtils.getUiThreadLooper()));
  2751. + // account-based authentication removed for privacy-violations concerns
  2752. + return;
  2753. }
  2754. }
  2755. @@ -158,42 +112,8 @@ public class HttpNegotiateAuthenticator {
  2756. @Override
  2757. public void run(AccountManagerFuture<Bundle> future) {
  2758. - Bundle result;
  2759. - try {
  2760. - result = future.getResult();
  2761. - } catch (OperationCanceledException | AuthenticatorException | IOException e) {
  2762. - Log.w(TAG, "ERR_UNEXPECTED: Error while attempting to obtain a token.", e);
  2763. - HttpNegotiateAuthenticatorJni.get().setResult(mRequestData.nativeResultObject,
  2764. - HttpNegotiateAuthenticator.this, NetError.ERR_UNEXPECTED, null);
  2765. - return;
  2766. - }
  2767. -
  2768. - if (result.containsKey(AccountManager.KEY_INTENT)) {
  2769. - final Context appContext = ContextUtils.getApplicationContext();
  2770. -
  2771. - // We wait for a broadcast that should be sent once the user is done interacting
  2772. - // with the notification
  2773. - // TODO(dgn) We currently hang around if the notification is swiped away, until
  2774. - // a LOGIN_ACCOUNTS_CHANGED_ACTION filter is received. It might be for something
  2775. - // unrelated then we would wait again here. Maybe we should limit the number of
  2776. - // retries in some way?
  2777. - BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
  2778. -
  2779. - @Override
  2780. - public void onReceive(Context context, Intent intent) {
  2781. - appContext.unregisterReceiver(this);
  2782. - mRequestData.accountManager.getAuthToken(mRequestData.account,
  2783. - mRequestData.authTokenType, mRequestData.options,
  2784. - true /* notifyAuthFailure */, new GetTokenCallback(mRequestData),
  2785. - null);
  2786. - }
  2787. -
  2788. - };
  2789. - appContext.registerReceiver(broadcastReceiver,
  2790. - new IntentFilter(AccountManager.LOGIN_ACCOUNTS_CHANGED_ACTION));
  2791. - } else {
  2792. - processResult(result, mRequestData);
  2793. - }
  2794. + // account-based authentication removed for privacy-violations concerns
  2795. + return;
  2796. }
  2797. }
  2798. diff --git a/remoting/android/java/src/org/chromium/chromoting/base/OAuthTokenFetcher.java b/remoting/android/java/src/org/chromium/chromoting/base/OAuthTokenFetcher.java
  2799. --- a/remoting/android/java/src/org/chromium/chromoting/base/OAuthTokenFetcher.java
  2800. +++ b/remoting/android/java/src/org/chromium/chromoting/base/OAuthTokenFetcher.java
  2801. @@ -93,7 +93,6 @@ public class OAuthTokenFetcher {
  2802. /** Begins fetching a token. Should be called on the main thread. */
  2803. public void fetch() {
  2804. - fetchImpl(null);
  2805. }
  2806. /**
  2807. @@ -102,7 +101,6 @@ public class OAuthTokenFetcher {
  2808. * @param expiredToken A previously-fetched token which has expired.
  2809. */
  2810. public void clearAndFetch(String expiredToken) {
  2811. - fetchImpl(expiredToken);
  2812. }
  2813. private void fetchImpl(final String expiredToken) {
  2814. --
  2815. 2.20.1