1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654 |
- From: csagan5 <32685696+csagan5@users.noreply.github.com>
- Date: Mon, 5 Apr 2021 21:37:12 +0200
- Subject: Remove binary blob integrations
- Remove dependency on com.google.android.gms.auth
- kill GCM
- Remove dependency on com.google.android.gcm
- Remove dependency on com.google.android.gms.gcm
- It also disables Snippets, auto-update of offline pages and launching browser from background service.
- The snippets are already disabled in native codes, this will disable it on Java level.
- Remove dependency on com.google.android.play
- Remove dependency on vision, clearcut and phenotype
- Remove dependency on flags, places and stats
- Remove dependency on fido, iid, instantapps, location
- Remove dependency on com.google.android.gms.cast
- Remove dependency on auth, signin, dynamic and tasks
- Remove google_services_gcm
- ungoogled-chromium: Disable GCM
- Disable Google Cloud Messaging (GCM) client
- Parts of this patch were developed by csagan5, uazo and others.
- ---
- ...em_webview_bundle.AndroidManifest.expected | 5 -
- chrome/android/BUILD.gn | 37 --
- chrome/android/chrome_java_sources.gni | 5 -
- chrome/android/java/AndroidManifest.xml | 68 ---
- .../org/chromium/chrome/browser/AppHooks.java | 14 +-
- .../browser/PlayServicesVersionInfo.java | 12 +-
- .../ChromeBackgroundTaskFactory.java | 3 -
- .../ExternalNavigationDelegateImpl.java | 8 +-
- .../gcore/ChromeGoogleApiClientImpl.java | 25 +-
- .../browser/gcore/GoogleApiClientHelper.java | 82 +--
- .../instantapps/InstantAppsHandler.java | 57 +-
- .../browser/omaha/UpdateStatusProvider.java | 10 +-
- .../inline/FakeAppUpdateManagerWrapper.java | 60 +-
- .../inline/InlineUpdateControllerFactory.java | 16 -
- .../inline/PlayInlineUpdateController.java | 226 +-------
- .../modules/chrome_feature_modules.gni | 3 -
- chrome/browser/BUILD.gn | 2 -
- chrome/browser/language/android/BUILD.gn | 2 -
- .../language/AppLanguagePromoDialog.java | 13 -
- .../AppLanguagePreferenceDelegate.java | 8 -
- .../language/settings/LanguageSettings.java | 6 -
- .../prefetch/prefetch_service_factory.cc | 16 -
- .../push_messaging_service_factory.cc | 8 +-
- chrome/browser/ui/BUILD.gn | 3 -
- .../webui/chrome_web_ui_controller_factory.cc | 3 -
- chrome/test/android/BUILD.gn | 2 -
- components/background_task_scheduler/BUILD.gn | 5 -
- .../internal/BUILD.gn | 10 -
- .../BackgroundTaskGcmTaskService.java | 160 ------
- ...ackgroundTaskSchedulerFactoryInternal.java | 6 +-
- ...kgroundTaskSchedulerGcmNetworkManager.java | 257 ---------
- .../component_updater/UpdateScheduler.java | 1 -
- components/externalauth/android/BUILD.gn | 3 -
- .../externalauth/ExternalAuthUtils.java | 18 +-
- .../UserRecoverableErrorHandler.java | 7 -
- components/gcm_driver/gcm_client_impl.cc | 4 +
- .../gcm_driver/instance_id/android/BUILD.gn | 3 -
- .../instance_id/InstanceIDBridge.java | 47 +-
- .../media_router/browser/android/BUILD.gn | 9 -
- .../media_router/BrowserMediaRouter.java | 18 +-
- .../media_router/CastSessionUtil.java | 35 --
- .../components/media_router/MediaSink.java | 44 +-
- .../media_router/MediaStatusBridge.java | 40 +-
- .../caf/BaseNotificationController.java | 52 --
- .../caf/BaseSessionController.java | 100 +---
- .../caf/CafBaseMediaRouteProvider.java | 114 +---
- .../caf/CafMediaRouteProvider.java | 16 -
- .../media_router/caf/CafMessageHandler.java | 97 +---
- .../media_router/caf/CastMediaSource.java | 10 +-
- .../media_router/caf/CastOptionsProvider.java | 22 +-
- .../caf/CastSessionController.java | 84 ---
- .../media_router/caf/CastUtils.java | 8 -
- .../CafExpandedControllerActivity.java | 41 +-
- .../CafRemotingMediaRouteProvider.java | 5 +-
- .../remoting/FlingingControllerAdapter.java | 74 ---
- .../caf/remoting/RemotingMediaSource.java | 8 +-
- .../remoting/RemotingSessionController.java | 26 -
- .../test/android/cast_emulator/BUILD.gn | 1 -
- components/module_installer/android/BUILD.gn | 2 -
- components/signin/public/android/BUILD.gn | 4 -
- components/webauthn/android/BUILD.gn | 5 -
- .../webauthn/AuthenticatorImpl.java | 31 +-
- .../push_messaging/push_messaging_manager.cc | 2 +-
- content/public/android/BUILD.gn | 4 -
- content/public/common/content_features.cc | 2 +-
- content/test/BUILD.gn | 4 -
- device/BUILD.gn | 3 -
- remoting/android/client_java_tmpl.gni | 3 -
- services/BUILD.gn | 9 -
- services/device/geolocation/BUILD.gn | 3 -
- services/shape_detection/BUILD.gn | 4 -
- third_party/android_deps/BUILD.gn | 540 +-----------------
- .../preconditions/javatests/BUILD.gn | 1 -
- .../gms/ChromiumPlayServicesAvailability.java | 10 +-
- 74 files changed, 66 insertions(+), 2580 deletions(-)
- delete mode 100644 components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskGcmTaskService.java
- delete mode 100644 components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerGcmNetworkManager.java
- diff --git a/android_webview/expectations/system_webview_bundle.AndroidManifest.expected b/android_webview/expectations/system_webview_bundle.AndroidManifest.expected
- --- a/android_webview/expectations/system_webview_bundle.AndroidManifest.expected
- +++ b/android_webview/expectations/system_webview_bundle.AndroidManifest.expected
- @@ -18,10 +18,6 @@
- android:label="Android System WebView"
- android:multiArch="true"
- android:use32bitAbi="true">
- - <activity # DIFF-ANCHOR: ea1a94af
- - android:name="com.google.android.gms.common.api.GoogleApiActivity"
- - android:exported="false"
- - android:theme="@android:style/Theme.Translucent.NoTitleBar">
- </activity> # DIFF-ANCHOR: ea1a94af
- <activity # DIFF-ANCHOR: a4438884
- android:name="org.chromium.android_webview.devui.MainActivity"
- @@ -65,7 +61,6 @@
- android:visibleToInstantApps="true">
- </activity-alias> # DIFF-ANCHOR: b7cc06e9
- <meta-data android:name="$PACKAGE.WebViewLibrary" android:value="libwebviewchromium.so"/>
- - <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>
- <meta-data android:name="org.chromium.content.browser.NUM_PRIVILEGED_SERVICES" android:value="0"/>
- <meta-data android:name="org.chromium.content.browser.NUM_SANDBOXED_SERVICES" android:value="40"/>
- <provider # DIFF-ANCHOR: a5e78e63
- diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
- --- a/chrome/android/BUILD.gn
- +++ b/chrome/android/BUILD.gn
- @@ -304,20 +304,10 @@ android_library("chrome_java") {
- ":chrome_public_apk_template_resources",
- ":update_proto_java",
- ":usage_stats_proto_java",
- - "$google_play_services_package:google_play_services_auth_base_java",
- - "$google_play_services_package:google_play_services_base_java",
- - "$google_play_services_package:google_play_services_basement_java",
- - "$google_play_services_package:google_play_services_cast_framework_java",
- - "$google_play_services_package:google_play_services_cast_java",
- - "$google_play_services_package:google_play_services_fido_java",
- - "$google_play_services_package:google_play_services_gcm_java",
- - "$google_play_services_package:google_play_services_iid_java",
- - "$google_play_services_package:google_play_services_tasks_java",
- "//base:base_java",
- "//cc:cc_java",
- "//chrome/android/features/keyboard_accessory:public_java",
- "//chrome/android/features/start_surface:public_java",
- - "//chrome/android/modules/cablev2_authenticator/public:java",
- "//chrome/android/modules/image_editor/provider:java",
- "//chrome/android/modules/stack_unwinder/provider:java",
- "//chrome/android/webapk/libs/client:client_java",
- @@ -571,7 +561,6 @@ android_library("chrome_java") {
- "//third_party/android_data_chart:android_data_chart_java",
- "//third_party/android_deps:android_support_v7_appcompat_java",
- "//third_party/android_deps:chromium_play_services_availability_java",
- - "//third_party/android_deps:com_google_android_play_core_java",
- "//third_party/android_deps:com_google_code_findbugs_jsr305_java",
- "//third_party/android_deps:com_google_guava_listenablefuture_java",
- "//third_party/android_deps:dagger_java",
- @@ -894,11 +883,6 @@ junit_binary("chrome_junit_tests") {
- ":chrome_java",
- ":chrome_public_android_manifest",
- ":delegate_public_impl_java",
- - "$google_play_services_package:google_play_services_base_java",
- - "$google_play_services_package:google_play_services_basement_java",
- - "$google_play_services_package:google_play_services_cast_framework_java",
- - "$google_play_services_package:google_play_services_cast_java",
- - "$google_play_services_package:google_play_services_fido_java",
- "//base:base_java",
- "//base:base_java_test_support",
- "//base:base_junit_test_support",
- @@ -1260,14 +1244,6 @@ android_library("chrome_test_java") {
- ":chrome_test_util_java",
- ":chrome_test_util_jni",
- ":delegate_public_impl_java",
- - "$google_play_services_package:google_play_services_base_java",
- - "$google_play_services_package:google_play_services_basement_java",
- - "$google_play_services_package:google_play_services_cast_framework_java",
- - "$google_play_services_package:google_play_services_cast_java",
- - "$google_play_services_package:google_play_services_fido_java",
- - "$google_play_services_package:google_play_services_gcm_java",
- - "$google_play_services_package:google_play_services_iid_java",
- - "$google_play_services_package:google_play_services_tasks_java",
- "//base:base_java",
- "//base:base_java_test_support",
- "//base/test:test_support_java",
- @@ -2314,7 +2290,6 @@ android_library("browser_java_test_support") {
- ]
- deps = [
- ":chrome_java",
- - "$google_play_services_package:google_play_services_gcm_java",
- "//base:base_java",
- "//base:base_java_test_support",
- "//base:jni_java",
- @@ -2459,9 +2434,7 @@ android_library("base_monochrome_module_java") {
- android_library("base_module_java") {
- sources = [
- "../browser/attribution_reporting/android/java/src/org/chromium/chrome/browser/attribution_reporting/AttributionReportingProvider.java",
- - "java/src/com/google/ipc/invalidation/ticl/android2/channel/GcmRegistrationTaskService.java",
- "java/src/org/chromium/chrome/app/TrichromeZygotePreload.java",
- - "java/src/org/chromium/chrome/browser/ChromeBackgroundService.java",
- "java/src/org/chromium/chrome/browser/ChromeBackupAgent.java",
- "java/src/org/chromium/chrome/browser/DeferredStartupHandler.java",
- "java/src/org/chromium/chrome/browser/base/DexFixer.java",
- @@ -2472,8 +2445,6 @@ android_library("base_module_java") {
- "java/src/org/chromium/chrome/browser/base/SplitCompatBackupAgent.java",
- "java/src/org/chromium/chrome/browser/base/SplitCompatContentProvider.java",
- "java/src/org/chromium/chrome/browser/base/SplitCompatCustomTabsService.java",
- - "java/src/org/chromium/chrome/browser/base/SplitCompatGcmListenerService.java",
- - "java/src/org/chromium/chrome/browser/base/SplitCompatGcmTaskService.java",
- "java/src/org/chromium/chrome/browser/base/SplitCompatIntentService.java",
- "java/src/org/chromium/chrome/browser/base/SplitCompatJobService.java",
- "java/src/org/chromium/chrome/browser/base/SplitCompatMinidumpUploadJobService.java",
- @@ -2500,16 +2471,10 @@ android_library("base_module_java") {
- "java/src/org/chromium/chrome/browser/photo_picker/DecoderService.java",
- "java/src/org/chromium/chrome/browser/prerender/ChromePrerenderService.java",
- "java/src/org/chromium/chrome/browser/provider/ChromeBrowserProvider.java",
- - "java/src/org/chromium/chrome/browser/services/gcm/ChromeGcmListenerService.java",
- - "java/src/org/chromium/chrome/browser/services/gcm/GCMBackgroundService.java",
- - "java/src/org/chromium/chrome/browser/services/gcm/InvalidationGcmUpstreamSender.java",
- "java/src/org/chromium/chrome/browser/tracing/TracingNotificationService.java",
- ]
- deps = [
- ":chrome_base_module_resources",
- - "$google_play_services_package:google_firebase_firebase_iid_java",
- - "$google_play_services_package:google_firebase_firebase_messaging_java",
- - "$google_play_services_package:google_play_services_gcm_java",
- "//base:base_java",
- "//chrome/browser/download/android:file_provider_java",
- "//chrome/browser/flags:java",
- @@ -2522,7 +2487,6 @@ android_library("base_module_java") {
- "//components/media_router/browser/android:cast_options_provider_java",
- "//components/minidump_uploader:minidump_uploader_java",
- "//components/module_installer/android:module_installer_java",
- - "//third_party/android_deps:com_google_android_play_core_java",
- "//third_party/androidx:androidx_annotation_annotation_java",
- "//third_party/androidx:androidx_collection_collection_java",
- "//third_party/androidx:androidx_fragment_fragment_java",
- @@ -2544,7 +2508,6 @@ android_library("base_module_java") {
- # Deps to pull services into base module.
- # TODO(crbug.com/1126301): Consider moving these to the chrome module to
- # reduce base dex size.
- - "$google_play_services_package:google_play_services_cast_framework_java",
- "//components/background_task_scheduler:background_task_scheduler_java",
- "//components/payments/content/android:service_java",
- "//third_party/androidx:androidx_browser_browser_java",
- diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
- --- a/chrome/android/chrome_java_sources.gni
- +++ b/chrome/android/chrome_java_sources.gni
- @@ -16,7 +16,6 @@ chrome_java_sources = [
- "java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java",
- "java/src/org/chromium/chrome/browser/ChromeActivitySessionTracker.java",
- "java/src/org/chromium/chrome/browser/ChromeApplicationImpl.java",
- - "java/src/org/chromium/chrome/browser/ChromeBackgroundServiceImpl.java",
- "java/src/org/chromium/chrome/browser/ChromeBackupAgentImpl.java",
- "java/src/org/chromium/chrome/browser/ChromeBackupWatcher.java",
- "java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java",
- @@ -1025,10 +1024,6 @@ chrome_java_sources = [
- "java/src/org/chromium/chrome/browser/searchwidget/SearchType.java",
- "java/src/org/chromium/chrome/browser/searchwidget/SearchWidgetProvider.java",
- "java/src/org/chromium/chrome/browser/send_tab_to_self/SendTabToSelfShareActivity.java",
- - "java/src/org/chromium/chrome/browser/services/gcm/ChromeGcmListenerServiceImpl.java",
- - "java/src/org/chromium/chrome/browser/services/gcm/GCMBackgroundServiceImpl.java",
- - "java/src/org/chromium/chrome/browser/services/gcm/GCMBackgroundTask.java",
- - "java/src/org/chromium/chrome/browser/services/gcm/GcmUma.java",
- "java/src/org/chromium/chrome/browser/settings/MainSettings.java",
- "java/src/org/chromium/chrome/browser/settings/SettingsActivity.java",
- "java/src/org/chromium/chrome/browser/settings/SettingsLauncherImpl.java",
- diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
- --- a/chrome/android/java/AndroidManifest.xml
- +++ b/chrome/android/java/AndroidManifest.xml
- @@ -100,21 +100,16 @@ by a child template that "extends" this file.
- <permission android:name="{{ manifest_package }}.permission.CHILD_SERVICE" android:protectionLevel="signature" />
- <permission android:name="{{ manifest_package }}.permission.READ_WRITE_BOOKMARK_FOLDERS" android:protectionLevel="signatureOrSystem" />
- <permission android:name="{{ manifest_package }}.TOS_ACKED" android:protectionLevel="signatureOrSystem" />
- - <!-- Only chrome can receive the messages and registration result -->
- - <permission android:name="{{ manifest_package }}.permission.C2D_MESSAGE"
- - android:protectionLevel="signature" />
- <permission android:name="{{ manifest_package }}.permission.DEBUG"
- android:label="Debug web pages"
- android:protectionLevel="signature" />
- <permission android:name="{{ manifest_package }}.permission.TRANSLATE"
- android:protectionLevel="signature" />
-
- - <uses-permission android:name="{{ manifest_package }}.permission.C2D_MESSAGE" />
- <uses-permission android:name="{{ manifest_package }}.permission.READ_WRITE_BOOKMARK_FOLDERS" />
- <uses-permission android:name="{{ manifest_package }}.TOS_ACKED" />
-
- <uses-permission android:name="com.chrome.permission.DEVICE_EXTRAS" />
- - <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
- <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
-
- {% block extra_uses_permissions %}
- @@ -752,16 +747,6 @@ by a child template that "extends" this file.
- </intent-filter>
- </activity>
-
- - <activity android:name="org.chromium.components.media_router.caf.remoting.CafExpandedControllerActivity"
- - android:theme="@style/Theme.Chromium.Activity"
- - android:label="Chrome.CafExpandedControllerActivity"
- - android:hardwareAccelerated="true"
- - android:launchMode="singleTask"
- - android:noHistory="true"
- - android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize"
- - android:excludeFromRecents="true">
- - </activity>
- -
- <!-- This activity is used to restart the main Chrome process. Should never be exported. -->
- <activity android:name="org.chromium.chrome.browser.BrowserRestartActivity"
- android:launchMode="singleInstance"
- @@ -825,15 +810,6 @@ by a child template that "extends" this file.
- </intent-filter>
- </activity>
-
- - <!-- Activity for dispatching intents to Instant Apps. -->
- - <activity
- - android:name="org.chromium.chrome.browser.instantapps.AuthenticatedProxyActivity"
- - android:exported="false"
- - android:theme="@android:style/Theme.NoDisplay"
- - android:noHistory="true"
- - android:excludeFromRecents="true">
- - </activity>
- -
- <activity
- android:name="org.chromium.chrome.browser.vr.VrCancelAnimationActivity"
- android:exported="false"
- @@ -1002,26 +978,6 @@ by a child template that "extends" this file.
- android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize"
- android:hardwareAccelerated="false" />
-
- - <!-- GcmTaskService for registration for Invalidations. Not actually implemented anymore. -->
- - <service android:name="com.google.ipc.invalidation.ticl.android2.channel.GcmRegistrationTaskService"
- - android:exported="true"
- - android:permission="com.google.android.gms.permission.BIND_NETWORK_TASK_SERVICE" >
- - <intent-filter>
- - <action android:name="com.google.android.gms.gcm.ACTION_TASK_READY"/>
- - </intent-filter>
- - </service>
- - <!-- GcmListenerService for messages from GCM. -->
- - <service android:name="org.chromium.chrome.browser.services.gcm.ChromeGcmListenerService"
- - android:exported="false" >
- - <intent-filter>
- - <action android:name="com.google.firebase.MESSAGING_EVENT" />
- - </intent-filter>
- - </service>
- - <service android:name="org.chromium.chrome.browser.services.gcm.GCMBackgroundService"
- - android:exported="false"/>
- - <service android:name="org.chromium.chrome.browser.services.gcm.InvalidationGcmUpstreamSender"
- - android:exported="false"/>
- -
- <!-- Android Notification service listener -->
- <service android:name="org.chromium.chrome.browser.notifications.NotificationService"
- android:exported="false"/>
- @@ -1045,28 +1001,10 @@ by a child template that "extends" this file.
- android:exported="false"
- android:permission="android.permission.BIND_JOB_SERVICE"/>
-
- - <!-- Background Task Scheduler GCM task service -->
- - <service android:name="org.chromium.components.background_task_scheduler.internal.BackgroundTaskGcmTaskService"
- - android:permission="com.google.android.gms.permission.BIND_NETWORK_TASK_SERVICE"
- - android:exported="true">
- - <intent-filter>
- - <action android:name="com.google.android.gms.gcm.ACTION_TASK_READY" />
- - </intent-filter>
- - </service>
- -
- <!-- Background Task Scheduler alarm receiver -->
- <receiver android:name="org.chromium.components.background_task_scheduler.internal.BackgroundTaskBroadcastReceiver"
- android:exported="false" />
-
- - <!-- GcmTaskService implementation to wake Chrome on scheduled events -->
- - <service android:name="org.chromium.chrome.browser.ChromeBackgroundService"
- - android:permission="com.google.android.gms.permission.BIND_NETWORK_TASK_SERVICE"
- - android:exported="true">
- - <intent-filter>
- - <action android:name="com.google.android.gms.gcm.ACTION_TASK_READY" />
- - </intent-filter>
- - </service>
- -
- <service android:name="org.chromium.chrome.browser.prerender.ChromePrerenderService"
- android:exported="true"
- tools:ignore="ExportedService" />
- @@ -1276,12 +1214,6 @@ by a child template that "extends" this file.
- <meta-data android:name="com.google.ar.core" android:value="optional" />
- {% endif %}
-
- - <!-- Cast support -->
- - <meta-data
- - android:name=
- - "com.google.android.gms.cast.framework.OPTIONS_PROVIDER_CLASS_NAME"
- - android:value="org.chromium.components.media_router.caf.CastOptionsProvider"/>
- -
- <!-- These providers are declared in the base module to give the chrome
- split preloader more time to work. -->
- <provider android:name="org.chromium.chrome.browser.util.ChromeFileProvider"
- diff --git a/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java b/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java
- --- a/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java
- +++ b/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java
- @@ -10,9 +10,6 @@ import android.content.pm.PackageManager;
- import androidx.annotation.Nullable;
- import androidx.annotation.VisibleForTesting;
-
- -import com.google.android.gms.common.ConnectionResult;
- -import com.google.android.gms.common.GoogleApiAvailability;
- -
- import org.chromium.base.ContextUtils;
- import org.chromium.base.annotations.CalledByNative;
- import org.chromium.chrome.browser.customtabs.CustomTabsConnection;
- @@ -275,16 +272,7 @@ public abstract class AppHooks {
- * same as {@link GoogleApiAvailability#isGooglePlayServicesAvailable()}.
- */
- public int isGoogleApiAvailableWithMinApkVersion(int minApkVersion) {
- - try {
- - PackageInfo gmsPackageInfo =
- - ContextUtils.getApplicationContext().getPackageManager().getPackageInfo(
- - GoogleApiAvailability.GOOGLE_PLAY_SERVICES_PACKAGE, /* flags= */ 0);
- - int apkVersion = gmsPackageInfo.versionCode;
- - if (apkVersion >= minApkVersion) return ConnectionResult.SUCCESS;
- - } catch (PackageManager.NameNotFoundException e) {
- - return ConnectionResult.SERVICE_MISSING;
- - }
- - return ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED;
- + return 1; /* SERVICE_MISSING*/
- }
-
- /**
- diff --git a/chrome/android/java/src/org/chromium/chrome/browser/PlayServicesVersionInfo.java b/chrome/android/java/src/org/chromium/chrome/browser/PlayServicesVersionInfo.java
- --- a/chrome/android/java/src/org/chromium/chrome/browser/PlayServicesVersionInfo.java
- +++ b/chrome/android/java/src/org/chromium/chrome/browser/PlayServicesVersionInfo.java
- @@ -7,8 +7,6 @@ package org.chromium.chrome.browser;
- import android.content.Context;
- import android.content.pm.PackageManager;
-
- -import com.google.android.gms.common.GoogleApiAvailability;
- -
- import org.chromium.base.ContextUtils;
- import org.chromium.base.annotations.CalledByNative;
- import org.chromium.components.externalauth.ExternalAuthUtils;
- @@ -29,7 +27,7 @@ public class PlayServicesVersionInfo {
- public static String getGmsInfo() {
- Context context = ContextUtils.getApplicationContext();
-
- - final long sdkVersion = GoogleApiAvailability.GOOGLE_PLAY_SERVICES_VERSION_CODE;
- + final long sdkVersion = 12600000;
- final long installedGmsVersion = getApkVersionNumber(context);
-
- final String accessType;
- @@ -53,12 +51,6 @@ public class PlayServicesVersionInfo {
- * package is not found.
- */
- public static int getApkVersionNumber(Context context) {
- - try {
- - return context.getPackageManager()
- - .getPackageInfo(GoogleApiAvailability.GOOGLE_PLAY_SERVICES_PACKAGE, 0)
- - .versionCode;
- - } catch (PackageManager.NameNotFoundException e) {
- - return 0;
- - }
- + return 0;
- }
- }
- diff --git a/chrome/android/java/src/org/chromium/chrome/browser/background_task_scheduler/ChromeBackgroundTaskFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/background_task_scheduler/ChromeBackgroundTaskFactory.java
- --- a/chrome/android/java/src/org/chromium/chrome/browser/background_task_scheduler/ChromeBackgroundTaskFactory.java
- +++ b/chrome/android/java/src/org/chromium/chrome/browser/background_task_scheduler/ChromeBackgroundTaskFactory.java
- @@ -17,7 +17,6 @@ import org.chromium.chrome.browser.offlinepages.OfflineBackgroundTask;
- import org.chromium.chrome.browser.offlinepages.measurements.OfflineMeasurementsBackgroundTask;
- import org.chromium.chrome.browser.offlinepages.prefetch.PrefetchBackgroundTask;
- import org.chromium.chrome.browser.omaha.OmahaService;
- -import org.chromium.chrome.browser.services.gcm.GCMBackgroundTask;
- import org.chromium.chrome.browser.webapps.WebApkUpdateTask;
- import org.chromium.components.background_task_scheduler.BackgroundTask;
- import org.chromium.components.background_task_scheduler.BackgroundTaskFactory;
- @@ -58,8 +57,6 @@ public class ChromeBackgroundTaskFactory implements BackgroundTaskFactory {
- switch (taskId) {
- case TaskIds.OMAHA_JOB_ID:
- return new OmahaService();
- - case TaskIds.GCM_BACKGROUND_TASK_JOB_ID:
- - return new GCMBackgroundTask();
- case TaskIds.OFFLINE_PAGES_BACKGROUND_JOB_ID:
- return new OfflineBackgroundTask();
- case TaskIds.OFFLINE_PAGES_PREFETCH_JOB_ID:
- diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java
- --- a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java
- +++ b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java
- @@ -204,12 +204,8 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat
-
- @Override
- public void maybeAdjustInstantAppExtras(Intent intent, boolean isIntentToInstantApp) {
- - if (isIntentToInstantApp) {
- - intent.putExtra(InstantAppsHandler.IS_GOOGLE_SEARCH_REFERRER, true);
- - } else {
- - // Make sure this extra is not sent unless we've done the verification.
- - intent.removeExtra(InstantAppsHandler.IS_GOOGLE_SEARCH_REFERRER);
- - }
- + // Always remove this extra
- + intent.removeExtra(InstantAppsHandler.IS_GOOGLE_SEARCH_REFERRER);
- }
-
- @Override
- diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gcore/ChromeGoogleApiClientImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/gcore/ChromeGoogleApiClientImpl.java
- --- a/chrome/android/java/src/org/chromium/chrome/browser/gcore/ChromeGoogleApiClientImpl.java
- +++ b/chrome/android/java/src/org/chromium/chrome/browser/gcore/ChromeGoogleApiClientImpl.java
- @@ -6,9 +6,6 @@ package org.chromium.chrome.browser.gcore;
-
- import android.content.Context;
-
- -import com.google.android.gms.common.ConnectionResult;
- -import com.google.android.gms.common.api.GoogleApiClient;
- -
- import org.chromium.base.Log;
- import org.chromium.base.TraceEvent;
- import org.chromium.components.externalauth.ExternalAuthUtils;
- @@ -22,7 +19,6 @@ public class ChromeGoogleApiClientImpl implements ChromeGoogleApiClient {
- private static final String TAG = "Icing";
-
- private final Context mApplicationContext;
- - private final GoogleApiClient mClient;
- private final ExternalAuthUtils mExternalAuthUtils;
-
- /**
- @@ -32,10 +28,9 @@ public class ChromeGoogleApiClientImpl implements ChromeGoogleApiClient {
- * @param requireFirstPartyBuild true if the given client can only be used in a first-party
- * build.
- */
- - public ChromeGoogleApiClientImpl(Context context, GoogleApiClient client,
- + public ChromeGoogleApiClientImpl(Context context,
- boolean requireFirstPartyBuild) {
- mApplicationContext = context.getApplicationContext();
- - mClient = client;
- mExternalAuthUtils = ExternalAuthUtils.getInstance();
- if (requireFirstPartyBuild && !mExternalAuthUtils.isChromeGoogleSigned()) {
- throw new IllegalStateException("GoogleApiClient requires first-party build");
- @@ -44,7 +39,6 @@ public class ChromeGoogleApiClientImpl implements ChromeGoogleApiClient {
-
- @Override
- public void disconnect() {
- - mClient.disconnect();
- }
-
- @Override
- @@ -60,24 +54,11 @@ public class ChromeGoogleApiClientImpl implements ChromeGoogleApiClient {
- @Override
- public boolean connectWithTimeout(long timeout) {
- TraceEvent.begin("ChromeGoogleApiClientImpl:connectWithTimeout");
- - try {
- - ConnectionResult result = mClient.blockingConnect(timeout, TimeUnit.MILLISECONDS);
- - if (!result.isSuccess()) {
- - Log.e(TAG, "Connection to GmsCore unsuccessful. Error %d", result.getErrorCode());
- - } else {
- - Log.d(TAG, "Connection to GmsCore successful.");
- - }
- - return result.isSuccess();
- - } finally {
- - TraceEvent.end("ChromeGoogleApiClientImpl:connectWithTimeout");
- - }
- + TraceEvent.end("ChromeGoogleApiClientImpl:connectWithTimeout");
- + return false;
- }
-
- public Context getApplicationContext() {
- return mApplicationContext;
- }
- -
- - public GoogleApiClient getApiClient() {
- - return mClient;
- - }
- }
- diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gcore/GoogleApiClientHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/gcore/GoogleApiClientHelper.java
- --- a/chrome/android/java/src/org/chromium/chrome/browser/gcore/GoogleApiClientHelper.java
- +++ b/chrome/android/java/src/org/chromium/chrome/browser/gcore/GoogleApiClientHelper.java
- @@ -7,11 +7,6 @@ package org.chromium.chrome.browser.gcore;
- import android.os.Bundle;
- import android.os.Handler;
-
- -import com.google.android.gms.common.ConnectionResult;
- -import com.google.android.gms.common.api.GoogleApiClient;
- -import com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks;
- -import com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener;
- -
- import org.chromium.base.ApplicationStatus;
- import org.chromium.base.ApplicationStatus.ApplicationStateListener;
- import org.chromium.base.Log;
- @@ -67,29 +62,15 @@ import org.chromium.base.ThreadUtils;
- * }
- * </pre>
- */
- -public class GoogleApiClientHelper
- - implements OnConnectionFailedListener, ConnectionCallbacks {
- +public class GoogleApiClientHelper {
- private static final String TAG = "GCore";
-
- private int mResolutionAttempts;
- private boolean mWasConnectedBefore;
- private final Handler mHandler = new Handler(ThreadUtils.getUiThreadLooper());
- - private final GoogleApiClient mClient;
- private long mDisconnectionDelayMs;
- private Runnable mPendingDisconnect;
-
- - /**
- - * Creates a helper and enrolls it in the various connection management features.
- - * See the class documentation for {@link GoogleApiClientHelper} for more information.
- - *
- - * @param client The client to wrap.
- - */
- - public GoogleApiClientHelper(GoogleApiClient client) {
- - mClient = client;
- - enableConnectionRetrying(true);
- - enableLifecycleManagement(true);
- - }
- -
- /**
- * Opts in or out of lifecycle management. The client's connection will be closed and reopened
- * when Chrome goes in and out of background.
- @@ -116,13 +97,6 @@ public class GoogleApiClientHelper
- * Enabling or disabling it while it is already enabled or disabled has no effect.
- */
- public void enableConnectionRetrying(boolean enabled) {
- - if (enabled) {
- - mClient.registerConnectionCallbacks(this);
- - mClient.registerConnectionFailedListener(this);
- - } else {
- - mClient.unregisterConnectionCallbacks(this);
- - mClient.unregisterConnectionFailedListener(this);
- - }
- }
-
- /**
- @@ -155,21 +129,11 @@ public class GoogleApiClientHelper
- // Cancel and reschedule the disconnection if we are in the background. We do it early to
- // avoid race conditions between a disconnect on the UI thread and the connect below.
- if (!ApplicationStatus.hasVisibleActivities()) scheduleDisconnection();
- -
- - // The client might be disconnected if we were idle in the background for too long.
- - if (!mClient.isConnected() && !mClient.isConnecting()) {
- - Log.d(TAG, "Reconnecting the client.");
- - mClient.connect();
- - }
- }
-
- void restoreConnectedState() {
- // If we go back to the foreground before a delayed disconnect happens, cancel it.
- cancelPendingDisconnection();
- -
- - if (mWasConnectedBefore) {
- - mClient.connect();
- - }
- }
-
- /**
- @@ -192,12 +156,6 @@ public class GoogleApiClientHelper
- }
-
- private void disconnect() {
- - if (mClient.isConnected() || mClient.isConnecting()) {
- - mWasConnectedBefore = true;
- - }
- -
- - // We always call disconnect to abort possibly pending connection requests.
- - mClient.disconnect();
- }
-
- private void cancelPendingDisconnection() {
- @@ -207,43 +165,7 @@ public class GoogleApiClientHelper
- mPendingDisconnect = null;
- }
-
- - @Override
- - public void onConnectionFailed(ConnectionResult result) {
- - if (!isErrorRecoverableByRetrying(result.getErrorCode())) {
- - Log.d(TAG, "Not retrying managed client connection. Unrecoverable error: %d",
- - result.getErrorCode());
- - return;
- - }
- -
- - if (mResolutionAttempts < ConnectedTask.RETRY_NUMBER_LIMIT) {
- - Log.d(TAG, "Retrying managed client connection. attempt %d/%d - errorCode: %d",
- - mResolutionAttempts, ConnectedTask.RETRY_NUMBER_LIMIT, result.getErrorCode());
- - mResolutionAttempts += 1;
- -
- - mHandler.postDelayed(new Runnable() {
- - @Override
- - public void run() {
- - mClient.connect();
- - }
- - }, ConnectedTask.CONNECTION_RETRY_TIME_MS);
- - }
- - }
- -
- - @Override
- - public void onConnected(Bundle connectionHint) {
- - mResolutionAttempts = 0;
- - }
- -
- - @Override
- - public void onConnectionSuspended(int cause) {
- - // GoogleApiClient handles retrying on suspension itself. Logging in case it didn't succeed
- - // for some reason.
- - Log.w(TAG, "Managed client connection suspended. Cause: %d", cause);
- - }
- -
- private static boolean isErrorRecoverableByRetrying(int errorCode) {
- - return errorCode == ConnectionResult.INTERNAL_ERROR
- - || errorCode == ConnectionResult.NETWORK_ERROR
- - || errorCode == ConnectionResult.SERVICE_UPDATING;
- + return false;
- }
- }
- diff --git a/chrome/android/java/src/org/chromium/chrome/browser/instantapps/InstantAppsHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/instantapps/InstantAppsHandler.java
- --- a/chrome/android/java/src/org/chromium/chrome/browser/instantapps/InstantAppsHandler.java
- +++ b/chrome/android/java/src/org/chromium/chrome/browser/instantapps/InstantAppsHandler.java
- @@ -41,31 +41,10 @@ public class InstantAppsHandler {
- // TODO(mariakhomenko): Use system once we roll to O SDK.
- private static final int FLAG_DO_NOT_LAUNCH = 0x00000200;
-
- - // TODO(mariakhomenko): Depend directly on the constants once we roll to v8 libraries.
- - private static final String DO_NOT_LAUNCH_EXTRA =
- - "com.google.android.gms.instantapps.DO_NOT_LAUNCH_INSTANT_APP";
- -
- - protected static final String IS_REFERRER_TRUSTED_EXTRA =
- - "com.google.android.gms.instantapps.IS_REFERRER_TRUSTED";
- -
- - protected static final String IS_USER_CONFIRMED_LAUNCH_EXTRA =
- - "com.google.android.gms.instantapps.IS_USER_CONFIRMED_LAUNCH";
- -
- - protected static final String TRUSTED_REFERRER_PKG_EXTRA =
- - "com.google.android.gms.instantapps.TRUSTED_REFERRER_PKG";
- -
- + // this is kept to always remove it from intents
- public static final String IS_GOOGLE_SEARCH_REFERRER =
- "com.google.android.gms.instantapps.IS_GOOGLE_SEARCH_REFERRER";
-
- - private static final String BROWSER_LAUNCH_REASON =
- - "com.google.android.gms.instantapps.BROWSER_LAUNCH_REASON";
- -
- - private static final String SUPERVISOR_PKG = "com.google.android.instantapps.supervisor";
- -
- - private static final String[] SUPERVISOR_START_ACTIONS = {
- - "com.google.android.instantapps.START", "com.google.android.instantapps.nmr1.INSTALL",
- - "com.google.android.instantapps.nmr1.VIEW"};
- -
- // Only two possible call sources for fallback intents, set boundary at n+1.
- private static final int SOURCE_BOUNDARY = 3;
-
- @@ -85,14 +64,6 @@ public class InstantAppsHandler {
- * @return Whether the given intent is going to open an Instant App.
- */
- public static boolean isIntentToInstantApp(Intent intent) {
- - if (SUPERVISOR_PKG.equals(intent.getPackage())) return true;
- -
- - String intentAction = intent.getAction();
- - for (String action : SUPERVISOR_START_ACTIONS) {
- - if (action.equals(intentAction)) {
- - return true;
- - }
- - }
- return false;
- }
-
- @@ -127,20 +98,6 @@ public class InstantAppsHandler {
- * @param intent The current intent.
- */
- private void maybeRecordFallbackStats(Intent intent) {
- - Long startTime = IntentUtils.safeGetLongExtra(intent, INSTANT_APP_START_TIME_EXTRA, 0);
- - if (startTime > 0) {
- - RecordHistogram.recordTimesHistogram("Android.InstantApps.FallbackDuration",
- - SystemClock.elapsedRealtime() - startTime);
- - intent.removeExtra(INSTANT_APP_START_TIME_EXTRA);
- - }
- - int callSource = IntentUtils.safeGetIntExtra(intent, BROWSER_LAUNCH_REASON, 0);
- - if (callSource > 0 && callSource < SOURCE_BOUNDARY) {
- - RecordHistogram.recordEnumeratedHistogram(
- - "Android.InstantApps.CallSource", callSource, SOURCE_BOUNDARY);
- - intent.removeExtra(BROWSER_LAUNCH_REASON);
- - } else if (callSource >= SOURCE_BOUNDARY) {
- - Log.e(TAG, "Unexpected call source constant for Instant Apps: " + callSource);
- - }
- }
-
- /**
- @@ -175,14 +132,6 @@ public class InstantAppsHandler {
- return false;
- }
-
- - if (IntentUtils.safeGetBooleanExtra(intent, DO_NOT_LAUNCH_EXTRA, false)
- - || (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O
- - && (intent.getFlags() & FLAG_DO_NOT_LAUNCH) != 0)) {
- - maybeRecordFallbackStats(intent);
- - Log.i(TAG, "Not handling with Instant Apps (DO_NOT_LAUNCH_EXTRA)");
- - return false;
- - }
- -
- if (IntentUtils.safeGetBooleanExtra(
- intent, IntentHandler.EXTRA_OPEN_NEW_INCOGNITO_TAB, false)
- || IntentUtils.safeHasExtra(intent, WebappConstants.EXTRA_SOURCE)
- @@ -207,7 +156,6 @@ public class InstantAppsHandler {
- }
-
- Intent callbackIntent = new Intent(intent);
- - callbackIntent.putExtra(DO_NOT_LAUNCH_EXTRA, true);
- callbackIntent.putExtra(INSTANT_APP_START_TIME_EXTRA, startTime);
-
- return tryLaunchingInstantApp(context, intent, isCustomTabsIntent, callbackIntent);
- @@ -309,12 +257,9 @@ public class InstantAppsHandler {
- Intent iaIntent = data.getIntent();
- if (data.getReferrer() != null) {
- iaIntent.putExtra(Intent.EXTRA_REFERRER, data.getReferrer());
- - iaIntent.putExtra(IS_REFERRER_TRUSTED_EXTRA, true);
- }
-
- Context appContext = ContextUtils.getApplicationContext();
- - iaIntent.putExtra(TRUSTED_REFERRER_PKG_EXTRA, appContext.getPackageName());
- - iaIntent.putExtra(IS_USER_CONFIRMED_LAUNCH_EXTRA, true);
-
- try {
- appContext.startActivity(iaIntent);
- diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java
- --- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java
- +++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java
- @@ -19,8 +19,6 @@ import androidx.annotation.NonNull;
- import androidx.annotation.Nullable;
- import androidx.annotation.VisibleForTesting;
-
- -import com.google.android.gms.common.GooglePlayServicesUtil;
- -
- import org.chromium.base.ActivityState;
- import org.chromium.base.ApplicationStatus;
- import org.chromium.base.ApplicationStatus.ActivityStateListener;
- @@ -456,13 +454,7 @@ public class UpdateStatusProvider implements ActivityStateListener {
- }
-
- private boolean isGooglePlayStoreAvailable(Context context) {
- - try {
- - context.getPackageManager().getPackageInfo(
- - GooglePlayServicesUtil.GOOGLE_PLAY_STORE_PACKAGE, 0);
- - } catch (PackageManager.NameNotFoundException e) {
- - return false;
- - }
- - return true;
- + return false;
- }
-
- private long getSize(StatFs statFs) {
- diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/FakeAppUpdateManagerWrapper.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/FakeAppUpdateManagerWrapper.java
- --- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/FakeAppUpdateManagerWrapper.java
- +++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/FakeAppUpdateManagerWrapper.java
- @@ -11,11 +11,6 @@ import android.os.Message;
-
- import androidx.annotation.IntDef;
-
- -import com.google.android.play.core.appupdate.AppUpdateInfo;
- -import com.google.android.play.core.appupdate.testing.FakeAppUpdateManager;
- -import com.google.android.play.core.install.model.AppUpdateType;
- -import com.google.android.play.core.tasks.Task;
- -
- import org.chromium.base.ContextUtils;
- import org.chromium.base.task.PostTask;
- import org.chromium.chrome.browser.app.ChromeActivity;
- @@ -31,7 +26,7 @@ import java.lang.ref.WeakReference;
- * wrapper isn't meant to be used for a full integration test, but simulating all of the possible
- * error cases is a bit easier to do here.
- */
- -public class FakeAppUpdateManagerWrapper extends FakeAppUpdateManager {
- +public class FakeAppUpdateManagerWrapper {
- private static final int RESULT_IN_APP_UPDATE_FAILED = 1;
- private static final int STEP_DELAY_MS = 5000;
- private static final int TOAST_DURATION_MS = 2000;
- @@ -108,15 +103,12 @@ public class FakeAppUpdateManagerWrapper extends FakeAppUpdateManager {
- switch (event) {
- case Event.UPDATE_AVAILABLE:
- w.toast("Making app update available.");
- - w.setUpdateAvailable(10000 /* Figure out a better version? */);
- return;
- case Event.USER_ACCEPTS_UPDATE:
- w.toast("User accepts update.");
- - w.userAcceptsUpdate();
- return;
- case Event.USER_REJECTS_UPDATE:
- w.toast("User rejects update.");
- - w.userRejectsUpdate();
- return;
- case Event.TRIGGER_DOWNLOAD:
- w.toast("Triggering download.");
- @@ -124,27 +116,21 @@ public class FakeAppUpdateManagerWrapper extends FakeAppUpdateManager {
- return;
- case Event.DOWNLOAD_STARTS:
- w.toast("Download has started.");
- - w.downloadStarts();
- return;
- case Event.DOWNLOAD_FAILS:
- w.toast("Triggering download failure.");
- - w.downloadFails();
- return;
- case Event.USER_CANCELS_DOWNLOAD:
- w.toast("Triggering cancellation of download.");
- - w.userCancelsDownload();
- return;
- case Event.DOWNLOAD_COMPLETES:
- w.toast("Download completes.");
- - w.downloadCompletes();
- return;
- case Event.INSTALL_FAILS:
- w.toast("Triggering install failure.");
- - w.installFails();
- return;
- case Event.INSTALL_COMPLETES:
- w.toast("Triggering install completion.");
- - w.installCompletes();
- return;
- default:
- w.toast("Unknown event.");
- @@ -159,56 +145,12 @@ public class FakeAppUpdateManagerWrapper extends FakeAppUpdateManager {
- * @param endState at which point should the inline update flow end.
- */
- FakeAppUpdateManagerWrapper(@Type int endState) {
- - super(ContextUtils.getApplicationContext());
- mType = endState;
- mEventHandler = new EventHandler(this);
-
- if (mType != Type.NONE) execute(Event.UPDATE_AVAILABLE);
- }
-
- - // FakeAppUpdateManager implementation.
- - @Override
- - public boolean startUpdateFlowForResult(AppUpdateInfo appUpdateInfo,
- - @AppUpdateType int appUpdateType, Activity activity, int requestCode) {
- - toast("Starting update flow.");
- - // TODO(dtrainor): Simulate exceptions being thrown or returning false from the super call.
- - boolean success =
- - super.startUpdateFlowForResult(appUpdateInfo, appUpdateType, activity, requestCode);
- - if (!success) return false;
- -
- - assert activity instanceof ChromeActivity : "Unexpected triggering activity.";
- -
- - final int resultCode;
- - if (mType == Type.FAIL_DIALOG_CANCEL) {
- - resultCode = Activity.RESULT_CANCELED;
- - } else if (mType == Type.FAIL_DIALOG_UPDATE_FAILED) {
- - resultCode = RESULT_IN_APP_UPDATE_FAILED;
- - } else {
- - resultCode = Activity.RESULT_OK;
- - }
- -
- - PostTask.postDelayedTask(UiThreadTaskTraits.DEFAULT, () -> {
- - triggerDialogResponse((ChromeActivity) activity, requestCode, resultCode);
- - }, STEP_DELAY_MS);
- -
- - return true;
- - }
- -
- - @Override
- - public Task<Void> completeUpdate() {
- - toast("Completing update.");
- - Task<Void> result = super.completeUpdate();
- -
- - if (mType == Type.FAIL_INSTALL) {
- - postDelayedEvent(Event.INSTALL_FAILS);
- - } else {
- - postDelayedEvent(Event.INSTALL_COMPLETES);
- - // This doesn't actually restart Chrome in this case.
- - }
- -
- - return result;
- - }
- -
- private void triggerDialogResponse(ChromeActivity activity, int requestCode, int resultCode) {
- if (resultCode == Activity.RESULT_OK) {
- execute(Event.USER_ACCEPTS_UPDATE);
- diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateControllerFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateControllerFactory.java
- --- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateControllerFactory.java
- +++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateControllerFactory.java
- @@ -4,8 +4,6 @@
-
- package org.chromium.chrome.browser.omaha.inline;
-
- -import com.google.android.play.core.appupdate.AppUpdateManagerFactory;
- -
- import org.chromium.base.ContextUtils;
- import org.chromium.chrome.browser.flags.ChromeFeatureList;
- import org.chromium.chrome.browser.omaha.UpdateConfigs;
- @@ -20,20 +18,6 @@ public class InlineUpdateControllerFactory {
- public static InlineUpdateController create(Runnable callback) {
- @FakeAppUpdateManagerWrapper.Type
- int mockInlineEndState = UpdateConfigs.getMockInlineScenarioEndState();
- - if (mockInlineEndState != FakeAppUpdateManagerWrapper.Type.NO_SIMULATION) {
- - // The config requires to run through a test controller, using the
- - // PlayInlineUpdateController, but with a fake Google Play backend that automatically
- - // goes through a scenario flow.
- - return new PlayInlineUpdateController(
- - callback, new FakeAppUpdateManagerWrapper(mockInlineEndState));
- - }
- -
- - if (ChromeFeatureList.isEnabled(ChromeFeatureList.INLINE_UPDATE_FLOW)) {
- - // The application configuration requires to use the real Google Play backend for inline
- - // updates.
- - return new PlayInlineUpdateController(
- - callback, AppUpdateManagerFactory.create(ContextUtils.getApplicationContext()));
- - }
-
- // No test scenario was in place, and the inline flow has not been enabled, so use a
- // controller with no functionality.
- diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/PlayInlineUpdateController.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/PlayInlineUpdateController.java
- --- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/PlayInlineUpdateController.java
- +++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/PlayInlineUpdateController.java
- @@ -10,15 +10,6 @@ import android.content.IntentSender.SendIntentException;
- import androidx.annotation.IntDef;
- import androidx.annotation.Nullable;
-
- -import com.google.android.play.core.appupdate.AppUpdateInfo;
- -import com.google.android.play.core.appupdate.AppUpdateManager;
- -import com.google.android.play.core.install.InstallState;
- -import com.google.android.play.core.install.InstallStateUpdatedListener;
- -import com.google.android.play.core.install.model.AppUpdateType;
- -import com.google.android.play.core.install.model.InstallErrorCode;
- -import com.google.android.play.core.install.model.InstallStatus;
- -import com.google.android.play.core.install.model.UpdateAvailability;
- -
- import org.chromium.base.Log;
- import org.chromium.base.metrics.RecordHistogram;
- import org.chromium.chrome.browser.omaha.UpdateStatusProvider.UpdateState;
- @@ -32,7 +23,7 @@ import java.lang.annotation.RetentionPolicy;
- * in the foreground.
- */
- public class PlayInlineUpdateController
- - implements InlineUpdateController, InstallStateUpdatedListener {
- + implements InlineUpdateController {
- /**
- * Converts Play's InstallErrorCode enum to a stable monotomically incrementing Chrome enum.
- * This is used for metric stability.
- @@ -127,26 +118,9 @@ public class PlayInlineUpdateController
- private static final int RESULT_IN_APP_UPDATE_FAILED = 1;
- private static final int REQUEST_CODE = 8123;
-
- - private final Runnable mCallback;
- - private final AppUpdateManager mAppUpdateManager;
- -
- private boolean mEnabled;
- private @Nullable @UpdateState Integer mUpdateState;
-
- - private AppUpdateInfo mAppUpdateInfo;
- - private @Nullable @UpdateAvailability Integer mUpdateAvailability;
- - private @Nullable @InstallStatus Integer mInstallStatus;
- -
- - /**
- - * Builds an instance of {@link PlayInlineUpdateController}.
- - * @param callback The {@link Runnable} to notify when an inline update state change occurs.
- - */
- - PlayInlineUpdateController(Runnable callback, AppUpdateManager appUpdateManager) {
- - mCallback = callback;
- - mAppUpdateManager = appUpdateManager;
- - setEnabled(true);
- - }
- -
- // InlineUpdateController implementation.
- @Override
- public void setEnabled(boolean enabled) {
- @@ -155,10 +129,8 @@ public class PlayInlineUpdateController
-
- if (mEnabled) {
- mUpdateState = UpdateState.NONE;
- - mAppUpdateManager.registerListener(this);
- pullCurrentState();
- } else {
- - mAppUpdateManager.unregisterListener(this);
- }
- }
-
- @@ -169,220 +141,26 @@ public class PlayInlineUpdateController
-
- @Override
- public void startUpdate(Activity activity) {
- - try {
- - boolean success = mAppUpdateManager.startUpdateFlowForResult(
- - mAppUpdateInfo, AppUpdateType.FLEXIBLE, activity, REQUEST_CODE);
- - Log.i(TAG, "startUpdateFlowForResult() returned " + success);
- -
- - if (!success) recordCallFailure(CallFailure.START_FAILED);
- - } catch (SendIntentException exception) {
- - mInstallStatus = InstallStatus.FAILED;
- - Log.i(TAG, "startUpdateFlowForResult() threw an exception.");
- - recordCallFailure(CallFailure.START_EXCEPTION);
- - }
- - // TODO(dtrainor): Use success.
- }
-
- @Override
- public void completeUpdate() {
- - mAppUpdateManager.completeUpdate()
- - .addOnSuccessListener(unused -> {
- - Log.i(TAG, "completeUpdate() success.");
- - pushStatus();
- - })
- - .addOnFailureListener(exception -> {
- - Log.i(TAG, "completeUpdate() failed.");
- - recordCallFailure(CallFailure.COMPLETE_FAILED);
- - mInstallStatus = InstallStatus.FAILED;
- - pushStatus();
- - });
- - }
- -
- - // InstallStateUpdatedListener implementation.
- - @Override
- - public void onStateUpdate(InstallState state) {
- - Log.i(TAG,
- - "onStateUpdate(" + state.installStatus() + ", " + state.installErrorCode() + ")");
- -
- - if (state.installStatus() != mInstallStatus) {
- - RecordHistogram.recordEnumeratedHistogram("GoogleUpdate.Inline.StateChange.Error."
- - + installStatusToEnumSuffix(state.installStatus()),
- - installErrorCodeToMetrics(state.installErrorCode()),
- - InstallErrorCodeMetrics.NUM_ENTRIES);
- - }
- -
- - mInstallStatus = state.installStatus();
- - pushStatus();
- }
-
- private void pullCurrentState() {
- - mAppUpdateManager.getAppUpdateInfo()
- - .addOnSuccessListener(info -> {
- - mAppUpdateInfo = info;
- - mUpdateAvailability = info.updateAvailability();
- - mInstallStatus = info.installStatus();
- - Log.i(TAG,
- - "pullCurrentState(" + mUpdateAvailability + ", " + mInstallStatus
- - + ") success.");
- - recordOnAppUpdateInfo(info);
- - pushStatus();
- - })
- - .addOnFailureListener(exception -> {
- - mAppUpdateInfo = null;
- - mUpdateAvailability = UpdateAvailability.UNKNOWN;
- - mInstallStatus = InstallStatus.UNKNOWN;
- - Log.i(TAG, "pullCurrentState() failed.");
- - recordCallFailure(CallFailure.QUERY_FAILED);
- - pushStatus();
- - });
- }
-
- private void pushStatus() {
- - if (!mEnabled || mUpdateAvailability == null || mInstallStatus == null) return;
- -
- - @UpdateState
- - int newState = toUpdateState(mUpdateAvailability, mInstallStatus);
- - if (mUpdateState != null && mUpdateState == newState) return;
- -
- - Log.i(TAG, "Pushing inline update state to " + newState);
- - mUpdateState = newState;
- - mCallback.run();
- }
-
- private static @UpdateState int toUpdateState(
- - @UpdateAvailability int updateAvailability, @InstallStatus int installStatus) {
- + int updateAvailability, int installStatus) {
- @UpdateState
- int newStatus = UpdateState.NONE;
-
- - // Note, use InstallStatus first then UpdateAvailability if InstallStatus doesn't indicate
- - // a currently active install.
- - switch (installStatus) {
- - case InstallStatus.PENDING:
- - // Intentional fall through.
- - case InstallStatus.DOWNLOADING:
- - newStatus = UpdateState.INLINE_UPDATE_DOWNLOADING;
- - break;
- - case InstallStatus.DOWNLOADED:
- - newStatus = UpdateState.INLINE_UPDATE_READY;
- - break;
- - case InstallStatus.FAILED:
- - newStatus = UpdateState.INLINE_UPDATE_FAILED;
- - break;
- - }
- -
- - if (newStatus == UpdateState.NONE) {
- - switch (updateAvailability) {
- - case UpdateAvailability.UPDATE_AVAILABLE:
- - newStatus = UpdateState.INLINE_UPDATE_AVAILABLE;
- - break;
- - }
- - }
- -
- return newStatus;
- }
-
- - private static String installStatusToEnumSuffix(@InstallStatus int status) {
- - switch (status) {
- - case InstallStatus.UNKNOWN:
- - return "Unknown";
- - case InstallStatus.REQUIRES_UI_INTENT:
- - return "RequiresUiIntent";
- - case InstallStatus.PENDING:
- - return "Pending";
- - case InstallStatus.DOWNLOADING:
- - return "Downloading";
- - case InstallStatus.DOWNLOADED:
- - return "Downloaded";
- - case InstallStatus.INSTALLING:
- - return "Installing";
- - case InstallStatus.INSTALLED:
- - return "Installed";
- - case InstallStatus.FAILED:
- - return "Failed";
- - case InstallStatus.CANCELED:
- - return "Canceled";
- - default:
- - return "Untracked";
- - }
- - }
- -
- - private static @InstallErrorCodeMetrics int installErrorCodeToMetrics(
- - @InstallErrorCode int error) {
- - switch (error) {
- - case InstallErrorCode.NO_ERROR:
- - return InstallErrorCodeMetrics.NO_ERROR;
- - case InstallErrorCode.NO_ERROR_PARTIALLY_ALLOWED:
- - return InstallErrorCodeMetrics.NO_ERROR_PARTIALLY_ALLOWED;
- - case InstallErrorCode.ERROR_UNKNOWN:
- - return InstallErrorCodeMetrics.ERROR_UNKNOWN;
- - case InstallErrorCode.ERROR_API_NOT_AVAILABLE:
- - return InstallErrorCodeMetrics.ERROR_API_NOT_AVAILABLE;
- - case InstallErrorCode.ERROR_INVALID_REQUEST:
- - return InstallErrorCodeMetrics.ERROR_INVALID_REQUEST;
- - case InstallErrorCode.ERROR_INSTALL_UNAVAILABLE:
- - return InstallErrorCodeMetrics.ERROR_INSTALL_UNAVAILABLE;
- - case InstallErrorCode.ERROR_INSTALL_NOT_ALLOWED:
- - return InstallErrorCodeMetrics.ERROR_INSTALL_NOT_ALLOWED;
- - case InstallErrorCode.ERROR_DOWNLOAD_NOT_PRESENT:
- - return InstallErrorCodeMetrics.ERROR_DOWNLOAD_NOT_PRESENT;
- - case InstallErrorCode.ERROR_INTERNAL_ERROR:
- - return InstallErrorCodeMetrics.ERROR_INTERNAL_ERROR;
- - default:
- - return InstallErrorCodeMetrics.ERROR_UNTRACKED;
- - }
- - }
- -
- - private static @UpdateAvailabilityMetric int updateAvailabilityToMetrics(
- - @UpdateAvailability int updateAvailability) {
- - switch (updateAvailability) {
- - case UpdateAvailability.UNKNOWN:
- - return UpdateAvailabilityMetric.UNKNOWN;
- - case UpdateAvailability.UPDATE_NOT_AVAILABLE:
- - return UpdateAvailabilityMetric.UPDATE_NOT_AVAILABLE;
- - case UpdateAvailability.UPDATE_AVAILABLE:
- - return UpdateAvailabilityMetric.UPDATE_AVAILABLE;
- - case UpdateAvailability.DEVELOPER_TRIGGERED_UPDATE_IN_PROGRESS:
- - return UpdateAvailabilityMetric.DEVELOPER_TRIGGERED_UPDATE_IN_PROGRESS;
- - default:
- - return UpdateAvailabilityMetric.UNTRACKED;
- - }
- - }
- -
- - private static @InstallStatusMetric int installStatusToMetrics(
- - @InstallStatus int installStatus) {
- - switch (installStatus) {
- - case InstallStatus.UNKNOWN:
- - return InstallStatusMetric.UNKNOWN;
- - case InstallStatus.REQUIRES_UI_INTENT:
- - return InstallStatusMetric.REQUIRES_UI_INTENT;
- - case InstallStatus.PENDING:
- - return InstallStatusMetric.PENDING;
- - case InstallStatus.DOWNLOADING:
- - return InstallStatusMetric.DOWNLOADING;
- - case InstallStatus.DOWNLOADED:
- - return InstallStatusMetric.DOWNLOADED;
- - case InstallStatus.INSTALLING:
- - return InstallStatusMetric.INSTALLING;
- - case InstallStatus.INSTALLED:
- - return InstallStatusMetric.INSTALLED;
- - case InstallStatus.FAILED:
- - return InstallStatusMetric.FAILED;
- - case InstallStatus.CANCELED:
- - return InstallStatusMetric.CANCELED;
- - default:
- - return InstallStatusMetric.UNTRACKED;
- - }
- - }
- -
- - private static void recordOnAppUpdateInfo(AppUpdateInfo info) {
- - RecordHistogram.recordEnumeratedHistogram(
- - "GoogleUpdate.Inline.AppUpdateInfo.UpdateAvailability",
- - updateAvailabilityToMetrics(info.updateAvailability()),
- - UpdateAvailabilityMetric.NUM_ENTRIES);
- - RecordHistogram.recordEnumeratedHistogram("GoogleUpdate.Inline.AppUpdateInfo.InstallStatus",
- - installStatusToMetrics(info.installStatus()), InstallStatusMetric.NUM_ENTRIES);
- - }
- -
- private static void recordCallFailure(@CallFailure int failure) {
- RecordHistogram.recordEnumeratedHistogram(
- "GoogleUpdate.Inline.CallFailure", failure, CallFailure.NUM_ENTRIES);
- diff --git a/chrome/android/modules/chrome_feature_modules.gni b/chrome/android/modules/chrome_feature_modules.gni
- --- a/chrome/android/modules/chrome_feature_modules.gni
- +++ b/chrome/android/modules/chrome_feature_modules.gni
- @@ -8,8 +8,6 @@ import(
- import("//chrome/android/features/dev_ui/dev_ui_module.gni")
- import("//chrome/android/features/tab_ui/tab_ui_module.gni")
- import("//chrome/android/modules/buildflags.gni")
- -import(
- - "//chrome/android/modules/cablev2_authenticator/cablev2_authenticator_module.gni")
- import("//chrome/android/modules/extra_icu/extra_icu_module.gni")
- import("//chrome/android/modules/stack_unwinder/stack_unwinder_module.gni")
- import("//chrome/android/modules/test_dummy/test_dummy_module.gni")
- @@ -66,7 +64,6 @@ if (!disable_autofill_assistant_dfm) {
- if (!disable_tab_ui_dfm) {
- monochrome_module_descs += [ tab_ui_module_desc ]
- }
- -monochrome_module_descs += [ cablev2_authenticator_module_desc ]
-
- # Modules shipped in Trichrome (Android Q+).
- trichrome_module_descs = monochrome_module_descs
- diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
- --- a/chrome/browser/BUILD.gn
- +++ b/chrome/browser/BUILD.gn
- @@ -6501,8 +6501,6 @@ static_library("browser") {
- "offline_pages/offliner_helper.h",
- "offline_pages/offliner_user_data.cc",
- "offline_pages/offliner_user_data.h",
- - "offline_pages/prefetch/gcm_token.cc",
- - "offline_pages/prefetch/gcm_token.h",
- "offline_pages/prefetch/offline_metrics_collector_impl.cc",
- "offline_pages/prefetch/offline_metrics_collector_impl.h",
- "offline_pages/prefetch/offline_prefetch_download_client.cc",
- diff --git a/chrome/browser/language/android/BUILD.gn b/chrome/browser/language/android/BUILD.gn
- --- a/chrome/browser/language/android/BUILD.gn
- +++ b/chrome/browser/language/android/BUILD.gn
- @@ -9,13 +9,11 @@ android_library("base_module_java") {
- sources = [
- "java/src/org/chromium/chrome/browser/language/AppLocaleUtils.java",
- "java/src/org/chromium/chrome/browser/language/GlobalAppLocaleController.java",
- - "java/src/org/chromium/chrome/browser/language/LanguageSplitInstaller.java",
- ]
- deps = [
- "//base:base_java",
- "//chrome/browser/preferences:java",
- "//components/language/android:language_bridge_java",
- - "//third_party/android_deps:com_google_android_play_core_java",
- "//third_party/androidx:androidx_annotation_annotation_java",
- "//ui/android:ui_no_recycler_view_java",
- ]
- diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLanguagePromoDialog.java b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLanguagePromoDialog.java
- --- a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLanguagePromoDialog.java
- +++ b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLanguagePromoDialog.java
- @@ -459,19 +459,6 @@ public class AppLanguagePromoDialog {
- }
- AndroidLanguageMetricsBridge.reportAppLanguagePromptLanguage(
- selectedLanguage.isSystemDefault() ? "" : selectedLanguage.getCode());
- -
- - // Create call back for after language split install completes.
- - AppLocaleUtils.setAppLanguagePref(selectedLanguage.getCode(), (success) -> {
- - if (success) {
- - mRestartAction.restart();
- - } else {
- - CharSequence failedText = mActivity.getResources().getString(
- - R.string.languages_split_failed, selectedLanguage.getDisplayName());
- - messageView.setText(failedText);
- - mConfirmModal.set(ModalDialogProperties.POSITIVE_BUTTON_TEXT,
- - mActivity.getText(R.string.ok).toString());
- - }
- - });
- }
-
- /**
- diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/AppLanguagePreferenceDelegate.java b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/AppLanguagePreferenceDelegate.java
- --- a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/AppLanguagePreferenceDelegate.java
- +++ b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/AppLanguagePreferenceDelegate.java
- @@ -87,14 +87,6 @@ public class AppLanguagePreferenceDelegate {
-
- // Disable preference so a second downloaded cannot be started while one is in progress.
- mPreference.setEnabled(false);
- -
- - AppLocaleUtils.setAppLanguagePref(code, (success) -> {
- - if (success) {
- - languageSplitDownloadComplete();
- - } else {
- - languageSplitDownloadFailed();
- - }
- - });
- }
-
- /**
- diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java
- --- a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java
- +++ b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java
- @@ -19,7 +19,6 @@ import org.chromium.base.Log;
- import org.chromium.chrome.browser.flags.ChromeFeatureList;
- import org.chromium.chrome.browser.language.AppLocaleUtils;
- import org.chromium.chrome.browser.language.GlobalAppLocaleController;
- -import org.chromium.chrome.browser.language.LanguageSplitInstaller;
- import org.chromium.chrome.browser.language.R;
- import org.chromium.chrome.browser.preferences.Pref;
- import org.chromium.chrome.browser.preferences.PrefChangeRegistrar;
- @@ -101,11 +100,6 @@ public class LanguageSettings extends PreferenceFragmentCompat
- * translate target language, and detailed translate preferences.
- */
- private void createDetailedPreferences(Bundle savedInstanceState, String rootKey) {
- - // Log currently installed language splits.
- - String installedLanguages =
- - TextUtils.join(",", LanguageSplitInstaller.getInstance().getInstalledLanguages());
- - Log.i(TAG, TextUtils.concat("Installed Languages: ", installedLanguages).toString());
- -
- SettingsUtils.addPreferencesFromResource(this, R.xml.languages_detailed_preferences);
-
- setupAppLanguageSection();
- diff --git a/chrome/browser/offline_pages/prefetch/prefetch_service_factory.cc b/chrome/browser/offline_pages/prefetch/prefetch_service_factory.cc
- --- a/chrome/browser/offline_pages/prefetch/prefetch_service_factory.cc
- +++ b/chrome/browser/offline_pages/prefetch/prefetch_service_factory.cc
- @@ -18,7 +18,6 @@
- #include "chrome/browser/image_fetcher/image_fetcher_service_factory.h"
- #include "chrome/browser/net/system_network_context_manager.h"
- #include "chrome/browser/offline_pages/offline_page_model_factory.h"
- -#include "chrome/browser/offline_pages/prefetch/gcm_token.h"
- #include "chrome/browser/offline_pages/prefetch/offline_metrics_collector_impl.h"
- #include "chrome/browser/offline_pages/prefetch/prefetch_background_task_handler_impl.h"
- #include "chrome/browser/profiles/profile.h"
- @@ -68,21 +67,6 @@ void SwitchToFullBrowserImageFetcher(PrefetchServiceImpl* prefetch_service,
- }
-
- void OnProfileCreated(PrefetchServiceImpl* prefetch_service, Profile* profile) {
- - if (IsPrefetchingOfflinePagesEnabled()) {
- - // Trigger an update of the cached GCM token. This needs to be post tasked
- - // because otherwise leads to circular dependency between
- - // PrefetchServiceFactory and GCMProfileServiceFactory. See
- - // https://crbug.com/944952
- - // Update is not a priority so make sure it happens after the critical
- - // startup path.
- - content::GetUIThreadTaskRunner({base::TaskPriority::BEST_EFFORT})
- - ->PostTask(FROM_HERE,
- - base::BindOnce(
- - &GetGCMToken, profile, kPrefetchingOfflinePagesAppId,
- - base::BindOnce(&PrefetchServiceImpl::GCMTokenReceived,
- - prefetch_service->GetWeakPtr())));
- - }
- -
- SwitchToFullBrowserImageFetcher(prefetch_service, profile->GetProfileKey());
- }
-
- diff --git a/chrome/browser/push_messaging/push_messaging_service_factory.cc b/chrome/browser/push_messaging/push_messaging_service_factory.cc
- --- a/chrome/browser/push_messaging/push_messaging_service_factory.cc
- +++ b/chrome/browser/push_messaging/push_messaging_service_factory.cc
- @@ -28,13 +28,7 @@
- // static
- PushMessagingServiceImpl* PushMessagingServiceFactory::GetForProfile(
- content::BrowserContext* context) {
- - // The Push API is not currently supported in incognito mode.
- - // See https://crbug.com/401439.
- - if (context->IsOffTheRecord())
- - return nullptr;
- -
- - return static_cast<PushMessagingServiceImpl*>(
- - GetInstance()->GetServiceForBrowserContext(context, true));
- + return nullptr;
- }
-
- // static
- diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
- --- a/chrome/browser/ui/BUILD.gn
- +++ b/chrome/browser/ui/BUILD.gn
- @@ -254,8 +254,6 @@ static_library("ui") {
- "webui/flags/flags_ui.h",
- "webui/flags/flags_ui_handler.cc",
- "webui/flags/flags_ui_handler.h",
- - "webui/gcm_internals_ui.cc",
- - "webui/gcm_internals_ui.h",
- "webui/internals/internals_ui.cc",
- "webui/internals/internals_ui.h",
- "webui/interstitials/interstitial_ui.cc",
- @@ -483,7 +481,6 @@ static_library("ui") {
- "//components/feedback/content",
- "//components/find_in_page",
- "//components/flags_ui",
- - "//components/gcm_driver",
- "//components/google/core/common",
- "//components/heap_profiling/multi_process",
- "//components/history/content/browser",
- diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
- --- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
- +++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
- @@ -37,7 +37,6 @@
- #include "chrome/browser/ui/webui/engagement/site_engagement_ui.h"
- #include "chrome/browser/ui/webui/federated_learning/floc_internals_ui.h"
- #include "chrome/browser/ui/webui/flags/flags_ui.h"
- -#include "chrome/browser/ui/webui/gcm_internals_ui.h"
- #include "chrome/browser/ui/webui/image_editor/image_editor_ui.h"
- #include "chrome/browser/ui/webui/internals/internals_ui.h"
- #include "chrome/browser/ui/webui/interstitials/interstitial_ui.h"
- @@ -629,8 +628,6 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
- return &NewWebUI<FlagsUI>;
- if (url.host_piece() == chrome::kChromeUIFlocInternalsHost)
- return &NewWebUI<FlocInternalsUI>;
- - if (url.host_piece() == chrome::kChromeUIGCMInternalsHost)
- - return &NewWebUI<GCMInternalsUI>;
- if (url.host_piece() == chrome::kChromeUIInternalsHost)
- return &NewWebUI<InternalsUI>;
- if (url.host_piece() == chrome::kChromeUIInterstitialHost)
- diff --git a/chrome/test/android/BUILD.gn b/chrome/test/android/BUILD.gn
- --- a/chrome/test/android/BUILD.gn
- +++ b/chrome/test/android/BUILD.gn
- @@ -268,8 +268,6 @@ android_library("chrome_java_test_support") {
- ]
-
- deps = [
- - "$google_play_services_package:google_play_services_base_java",
- - "$google_play_services_package:google_play_services_basement_java",
- "//base:base_java",
- "//base:base_java_test_support",
- "//chrome/android:base_module_java",
- diff --git a/components/background_task_scheduler/BUILD.gn b/components/background_task_scheduler/BUILD.gn
- --- a/components/background_task_scheduler/BUILD.gn
- +++ b/components/background_task_scheduler/BUILD.gn
- @@ -121,11 +121,6 @@ if (is_android) {
-
- deps = [
- ":background_task_scheduler_task_ids_java",
- - "$google_play_services_package:google_play_services_auth_base_java",
- - "$google_play_services_package:google_play_services_base_java",
- - "$google_play_services_package:google_play_services_basement_java",
- - "$google_play_services_package:google_play_services_gcm_java",
- - "$google_play_services_package:google_play_services_tasks_java",
- "internal:internal_java",
- "internal:proto_java",
- "//base:base_java",
- diff --git a/components/background_task_scheduler/internal/BUILD.gn b/components/background_task_scheduler/internal/BUILD.gn
- --- a/components/background_task_scheduler/internal/BUILD.gn
- +++ b/components/background_task_scheduler/internal/BUILD.gn
- @@ -11,12 +11,10 @@ if (is_android) {
- android_library("internal_java") {
- sources = [
- "android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskBroadcastReceiver.java",
- - "android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskGcmTaskService.java",
- "android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskJobService.java",
- "android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerAlarmManager.java",
- "android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerDelegate.java",
- "android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerFactoryInternal.java",
- - "android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerGcmNetworkManager.java",
- "android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerImpl.java",
- "android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerJobService.java",
- "android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerPrefs.java",
- @@ -27,10 +25,6 @@ if (is_android) {
-
- deps = [
- ":proto_java",
- - "$google_play_services_package:google_play_services_base_java",
- - "$google_play_services_package:google_play_services_basement_java",
- - "$google_play_services_package:google_play_services_gcm_java",
- - "$google_play_services_package:google_play_services_tasks_java",
- "//base:base_java",
- "//components/background_task_scheduler:background_task_scheduler_task_ids_java",
- "//components/background_task_scheduler:public_java",
- @@ -98,10 +92,6 @@ if (is_android) {
-
- deps = [
- ":internal_java",
- - "$google_play_services_package:google_play_services_base_java",
- - "$google_play_services_package:google_play_services_basement_java",
- - "$google_play_services_package:google_play_services_gcm_java",
- - "$google_play_services_package:google_play_services_tasks_java",
- "//base:base_java",
- "//base:base_java_test_support",
- "//components/background_task_scheduler:background_task_scheduler_task_ids_java",
- diff --git a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskGcmTaskService.java b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskGcmTaskService.java
- deleted file mode 100644
- --- a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskGcmTaskService.java
- +++ /dev/null
- @@ -1,160 +0,0 @@
- -// Copyright 2017 The Chromium Authors. All rights reserved.
- -// Use of this source code is governed by a BSD-style license that can be
- -// found in the LICENSE file.
- -
- -package org.chromium.components.background_task_scheduler.internal;
- -
- -import android.os.Build;
- -
- -import androidx.annotation.VisibleForTesting;
- -
- -import com.google.android.gms.gcm.GcmNetworkManager;
- -import com.google.android.gms.gcm.GcmTaskService;
- -import com.google.android.gms.gcm.TaskParams;
- -
- -import org.chromium.base.ContextUtils;
- -import org.chromium.base.Log;
- -import org.chromium.base.ThreadUtils;
- -import org.chromium.components.background_task_scheduler.BackgroundTask;
- -import org.chromium.components.background_task_scheduler.TaskParameters;
- -
- -import java.util.concurrent.CountDownLatch;
- -import java.util.concurrent.TimeUnit;
- -import java.util.concurrent.atomic.AtomicBoolean;
- -
- -/** Delegates calls out to various tasks that need to run in the background. */
- -public class BackgroundTaskGcmTaskService extends GcmTaskService {
- - private static final String TAG = "BkgrdTaskGcmTS";
- -
- - private BackgroundTaskSchedulerGcmNetworkManager.Clock mClock = System::currentTimeMillis;
- -
- - @VisibleForTesting
- - void setClockForTesting(BackgroundTaskSchedulerGcmNetworkManager.Clock clock) {
- - mClock = clock;
- - }
- -
- - /** Class that waits for the processing to be done. */
- - private static class Waiter {
- - // Wakelock is only held for 3 minutes by default for GcmTaskService.
- - private static final long MAX_TIMEOUT_SECONDS = 179;
- - private final CountDownLatch mLatch;
- - private long mWaiterTimeoutSeconds;
- - private boolean mIsRescheduleNeeded;
- - private boolean mHasTaskTimedOut;
- -
- - public Waiter(long waiterTimeoutSeconds) {
- - mLatch = new CountDownLatch(1);
- - mWaiterTimeoutSeconds = Math.min(waiterTimeoutSeconds, MAX_TIMEOUT_SECONDS);
- - }
- -
- - /** Start waiting for the processing to finish. */
- - public void startWaiting() {
- - try {
- - mHasTaskTimedOut = !mLatch.await(mWaiterTimeoutSeconds, TimeUnit.SECONDS);
- - } catch (InterruptedException e) {
- - Log.d(TAG, "Waiter interrupted while waiting.");
- - }
- - }
- -
- - /** Called to finish waiting. */
- - public void onWaitDone(boolean needsRescheduling) {
- - mIsRescheduleNeeded = needsRescheduling;
- - mLatch.countDown();
- - }
- -
- - /** @return Whether last task timed out. */
- - public boolean hasTaskTimedOut() {
- - return mHasTaskTimedOut;
- - }
- -
- - /** @return Whether task needs to be rescheduled. */
- - public boolean isRescheduleNeeded() {
- - return mIsRescheduleNeeded;
- - }
- - }
- -
- - private static class TaskFinishedCallbackGcmTaskService
- - implements BackgroundTask.TaskFinishedCallback {
- - private final Waiter mWaiter;
- -
- - public TaskFinishedCallbackGcmTaskService(Waiter waiter) {
- - mWaiter = waiter;
- - }
- -
- - @Override
- - public void taskFinished(final boolean needsReschedule) {
- - ThreadUtils.runOnUiThreadBlocking(new Runnable() {
- - @Override
- - public void run() {
- - mWaiter.onWaitDone(needsReschedule);
- - }
- - });
- - }
- - }
- -
- - @Override
- - public int onRunTask(TaskParams params) {
- - final TaskParameters taskParams =
- - BackgroundTaskSchedulerGcmNetworkManager.getTaskParametersFromTaskParams(params);
- -
- - final BackgroundTask backgroundTask =
- - BackgroundTaskSchedulerFactoryInternal.getBackgroundTaskFromTaskId(
- - taskParams.getTaskId());
- - if (backgroundTask == null) {
- - Log.w(TAG, "Failed to start task. Could not instantiate BackgroundTask class.");
- - // Cancel task if the BackgroundTask class is not found anymore. We assume this means
- - // that the task has been deprecated.
- - BackgroundTaskSchedulerFactoryInternal.getScheduler().cancel(
- - ContextUtils.getApplicationContext(), taskParams.getTaskId());
- - return GcmNetworkManager.RESULT_FAILURE;
- - }
- -
- - if (BackgroundTaskSchedulerGcmNetworkManager.didTaskExpire(
- - params, mClock.currentTimeMillis())) {
- - BackgroundTaskSchedulerUma.getInstance().reportTaskExpired(taskParams.getTaskId());
- - return GcmNetworkManager.RESULT_FAILURE;
- - }
- -
- - final Waiter waiter = new Waiter(Waiter.MAX_TIMEOUT_SECONDS);
- -
- - final AtomicBoolean taskNeedsBackgroundProcessing = new AtomicBoolean();
- - ThreadUtils.runOnUiThreadBlocking(new Runnable() {
- - @Override
- - public void run() {
- - BackgroundTaskSchedulerUma.getInstance().reportTaskStarted(taskParams.getTaskId());
- - taskNeedsBackgroundProcessing.set(
- - backgroundTask.onStartTask(ContextUtils.getApplicationContext(), taskParams,
- - new TaskFinishedCallbackGcmTaskService(waiter)));
- - }
- - });
- -
- - if (!taskNeedsBackgroundProcessing.get()) return GcmNetworkManager.RESULT_SUCCESS;
- -
- - waiter.startWaiting();
- -
- - if (waiter.isRescheduleNeeded()) return GcmNetworkManager.RESULT_RESCHEDULE;
- - if (!waiter.hasTaskTimedOut()) return GcmNetworkManager.RESULT_SUCCESS;
- -
- - final AtomicBoolean taskNeedsRescheduling = new AtomicBoolean();
- - ThreadUtils.runOnUiThreadBlocking(new Runnable() {
- - @Override
- - public void run() {
- - BackgroundTaskSchedulerUma.getInstance().reportTaskStopped(taskParams.getTaskId());
- - taskNeedsRescheduling.set(backgroundTask.onStopTask(
- - ContextUtils.getApplicationContext(), taskParams));
- - }
- - });
- -
- - if (taskNeedsRescheduling.get()) return GcmNetworkManager.RESULT_RESCHEDULE;
- -
- - return GcmNetworkManager.RESULT_SUCCESS;
- - }
- -
- - @Override
- - public void onInitializeTasks() {
- - // Ignore the event on OSs supporting JobScheduler.
- - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) return;
- - BackgroundTaskSchedulerFactoryInternal.getScheduler().reschedule(
- - ContextUtils.getApplicationContext());
- - }
- -}
- diff --git a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerFactoryInternal.java b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerFactoryInternal.java
- --- a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerFactoryInternal.java
- +++ b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerFactoryInternal.java
- @@ -21,11 +21,7 @@ public final class BackgroundTaskSchedulerFactoryInternal {
- private static BackgroundTaskFactory sBackgroundTaskFactory;
-
- static BackgroundTaskSchedulerDelegate getSchedulerDelegateForSdk(int sdkInt) {
- - if (sdkInt >= Build.VERSION_CODES.M) {
- - return new BackgroundTaskSchedulerJobService();
- - } else {
- - return new BackgroundTaskSchedulerGcmNetworkManager();
- - }
- + return new BackgroundTaskSchedulerJobService();
- }
-
- /**
- diff --git a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerGcmNetworkManager.java b/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerGcmNetworkManager.java
- deleted file mode 100644
- --- a/components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerGcmNetworkManager.java
- +++ /dev/null
- @@ -1,257 +0,0 @@
- -// Copyright 2017 The Chromium Authors. All rights reserved.
- -// Use of this source code is governed by a BSD-style license that can be
- -// found in the LICENSE file.
- -
- -package org.chromium.components.background_task_scheduler.internal;
- -
- -import android.content.Context;
- -import android.os.Bundle;
- -
- -import androidx.annotation.NonNull;
- -import androidx.annotation.VisibleForTesting;
- -
- -import com.google.android.gms.gcm.GcmNetworkManager;
- -import com.google.android.gms.gcm.OneoffTask;
- -import com.google.android.gms.gcm.PeriodicTask;
- -import com.google.android.gms.gcm.Task;
- -import com.google.android.gms.gcm.TaskParams;
- -
- -import org.chromium.base.Log;
- -import org.chromium.base.ThreadUtils;
- -import org.chromium.components.background_task_scheduler.TaskInfo;
- -import org.chromium.components.background_task_scheduler.TaskParameters;
- -import org.chromium.gms.ChromiumPlayServicesAvailability;
- -
- -import java.util.concurrent.TimeUnit;
- -
- -/**
- - * An implementation of {@link BackgroundTaskSchedulerDelegate} that uses the Play Services
- - * {@link GcmNetworkManager} to schedule jobs.
- - */
- -class BackgroundTaskSchedulerGcmNetworkManager implements BackgroundTaskSchedulerDelegate {
- - private static final String TAG = "BkgrdTaskSchedGcmNM";
- -
- - /** Delta time for expiration checks, after the end time. */
- - static final long DEADLINE_DELTA_MS = 1000;
- -
- - /** Clock to use so we can mock time in tests. */
- - public interface Clock { long currentTimeMillis(); }
- -
- - private static Clock sClock = System::currentTimeMillis;
- -
- - @VisibleForTesting
- - static void setClockForTesting(Clock clock) {
- - sClock = clock;
- - }
- -
- - /**
- - * Checks if a task expired, based on the current time of the service.
- - *
- - * @param taskParams parameters sent to the service, which contain the scheduling information
- - * regarding expiration.
- - * @param currentTimeMs the current time of the service.
- - * @return true if the task expired and false otherwise.
- - */
- - static boolean didTaskExpire(TaskParams taskParams, long currentTimeMs) {
- - Bundle extras = taskParams.getExtras();
- - if (extras == null || !extras.containsKey(BACKGROUND_TASK_SCHEDULE_TIME_KEY)) {
- - return false;
- - }
- -
- - long scheduleTimeMs = extras.getLong(BACKGROUND_TASK_SCHEDULE_TIME_KEY);
- - if (extras.containsKey(BACKGROUND_TASK_END_TIME_KEY)) {
- - long endTimeMs =
- - extras.getLong(BackgroundTaskSchedulerDelegate.BACKGROUND_TASK_END_TIME_KEY);
- - return TaskInfo.OneOffInfo.getExpirationStatus(
- - scheduleTimeMs, endTimeMs, currentTimeMs);
- - } else {
- - long intervalTimeMs = extras.getLong(BACKGROUND_TASK_INTERVAL_TIME_KEY);
- -
- - // If flex is never set, it is given a default value of 10% of the period time, as
- - // per the GcmNetworkManager behaviour. This default value is set in
- - // https://developers.google.com/android/reference/com/google/android/gms/gcm/PeriodicTask.
- - double defaultFlexAsFractionOfInterval = 0.1f;
- -
- - long flexTimeMs = extras.getLong(BACKGROUND_TASK_FLEX_TIME_KEY,
- - /*defaultValue=*/(long) (defaultFlexAsFractionOfInterval * intervalTimeMs));
- -
- - return TaskInfo.PeriodicInfo.getExpirationStatus(
- - scheduleTimeMs, intervalTimeMs, flexTimeMs, currentTimeMs);
- - }
- - }
- -
- - /**
- - * Retrieves the {@link TaskParameters} from the {@link TaskParams}, which are passed as
- - * one of the keys. Only values valid for {@link android.os.BaseBundle} are supported, and other
- - * values are stripped at the time when the task is scheduled.
- - *
- - * @param taskParams the {@link TaskParams} to extract the {@link TaskParameters} from.
- - * @return the {@link TaskParameters} for the current job.
- - */
- - static TaskParameters getTaskParametersFromTaskParams(@NonNull TaskParams taskParams) {
- - int taskId;
- - try {
- - taskId = Integer.parseInt(taskParams.getTag());
- - } catch (NumberFormatException e) {
- - Log.e(TAG, "Cound not parse task ID from task tag: " + taskParams.getTag());
- - return null;
- - }
- -
- - TaskParameters.Builder builder = TaskParameters.create(taskId);
- -
- - Bundle extras = taskParams.getExtras();
- - Bundle taskExtras = extras.getBundle(BACKGROUND_TASK_EXTRAS_KEY);
- - builder.addExtras(taskExtras);
- -
- - return builder.build();
- - }
- -
- - @VisibleForTesting
- - static Task createTaskFromTaskInfo(@NonNull TaskInfo taskInfo) {
- - Bundle taskExtras = new Bundle();
- - taskExtras.putBundle(BACKGROUND_TASK_EXTRAS_KEY, taskInfo.getExtras());
- -
- - TaskBuilderVisitor taskBuilderVisitor = new TaskBuilderVisitor(taskExtras);
- - taskInfo.getTimingInfo().accept(taskBuilderVisitor);
- - Task.Builder builder = taskBuilderVisitor.getBuilder();
- -
- - builder.setPersisted(taskInfo.isPersisted())
- - .setRequiredNetwork(getGcmNetworkManagerNetworkTypeFromTypeFromTaskNetworkType(
- - taskInfo.getRequiredNetworkType()))
- - .setRequiresCharging(taskInfo.requiresCharging())
- - .setService(BackgroundTaskGcmTaskService.class)
- - .setTag(taskIdToTaskTag(taskInfo.getTaskId()))
- - .setUpdateCurrent(taskInfo.shouldUpdateCurrent());
- -
- - return builder.build();
- - }
- -
- - private static class TaskBuilderVisitor implements TaskInfo.TimingInfoVisitor {
- - private Task.Builder mBuilder;
- - private final Bundle mTaskExtras;
- -
- - TaskBuilderVisitor(Bundle taskExtras) {
- - mTaskExtras = taskExtras;
- - }
- -
- - // Only valid after a TimingInfo object was visited.
- - Task.Builder getBuilder() {
- - return mBuilder;
- - }
- -
- - @Override
- - public void visit(TaskInfo.OneOffInfo oneOffInfo) {
- - if (oneOffInfo.expiresAfterWindowEndTime()) {
- - mTaskExtras.putLong(BACKGROUND_TASK_SCHEDULE_TIME_KEY, sClock.currentTimeMillis());
- - mTaskExtras.putLong(BACKGROUND_TASK_END_TIME_KEY, oneOffInfo.getWindowEndTimeMs());
- - }
- -
- - OneoffTask.Builder builder = new OneoffTask.Builder();
- - long windowStartSeconds = oneOffInfo.hasWindowStartTimeConstraint()
- - ? TimeUnit.MILLISECONDS.toSeconds(oneOffInfo.getWindowStartTimeMs())
- - : 0;
- - long windowEndTimeMs = oneOffInfo.getWindowEndTimeMs();
- - if (oneOffInfo.expiresAfterWindowEndTime()) {
- - windowEndTimeMs += DEADLINE_DELTA_MS;
- - }
- - builder.setExecutionWindow(
- - windowStartSeconds, TimeUnit.MILLISECONDS.toSeconds(windowEndTimeMs));
- - builder.setExtras(mTaskExtras);
- - mBuilder = builder;
- - }
- -
- - @Override
- - public void visit(TaskInfo.PeriodicInfo periodicInfo) {
- - if (periodicInfo.expiresAfterWindowEndTime()) {
- - mTaskExtras.putLong(BACKGROUND_TASK_SCHEDULE_TIME_KEY, sClock.currentTimeMillis());
- - mTaskExtras.putLong(
- - BACKGROUND_TASK_INTERVAL_TIME_KEY, periodicInfo.getIntervalMs());
- - if (periodicInfo.hasFlex()) {
- - mTaskExtras.putLong(BACKGROUND_TASK_FLEX_TIME_KEY, periodicInfo.getFlexMs());
- - }
- - }
- -
- - PeriodicTask.Builder builder = new PeriodicTask.Builder();
- - builder.setPeriod(TimeUnit.MILLISECONDS.toSeconds(periodicInfo.getIntervalMs()));
- - if (periodicInfo.hasFlex()) {
- - builder.setFlex(TimeUnit.MILLISECONDS.toSeconds(periodicInfo.getFlexMs()));
- - }
- - builder.setExtras(mTaskExtras);
- - mBuilder = builder;
- - }
- -
- - @Override
- - public void visit(TaskInfo.ExactInfo exactInfo) {
- - throw new RuntimeException("Exact tasks should not be scheduled with "
- - + "GcmNetworkManager.");
- - }
- - }
- -
- - private static int getGcmNetworkManagerNetworkTypeFromTypeFromTaskNetworkType(
- - @TaskInfo.NetworkType int networkType) {
- - switch (networkType) {
- - // This is correct: GcmNM ANY means no network is guaranteed.
- - case TaskInfo.NetworkType.NONE:
- - return Task.NETWORK_STATE_ANY;
- - case TaskInfo.NetworkType.ANY:
- - return Task.NETWORK_STATE_CONNECTED;
- - case TaskInfo.NetworkType.UNMETERED:
- - return Task.NETWORK_STATE_UNMETERED;
- - default:
- - assert false;
- - }
- - return Task.NETWORK_STATE_ANY;
- - }
- -
- - @Override
- - public boolean schedule(Context context, @NonNull TaskInfo taskInfo) {
- - ThreadUtils.assertOnUiThread();
- -
- - GcmNetworkManager gcmNetworkManager = getGcmNetworkManager(context);
- - if (gcmNetworkManager == null) {
- - Log.e(TAG, "GcmNetworkManager is not available.");
- - return false;
- - }
- -
- - try {
- - Task task = createTaskFromTaskInfo(taskInfo);
- - gcmNetworkManager.schedule(task);
- - } catch (IllegalArgumentException e) {
- - String gcmErrorMessage = e.getMessage() == null ? "null." : e.getMessage();
- - Log.e(TAG,
- - "GcmNetworkManager failed to schedule task, gcm message: " + gcmErrorMessage);
- - return false;
- - }
- -
- - return true;
- - }
- -
- - @Override
- - public void cancel(Context context, int taskId) {
- - ThreadUtils.assertOnUiThread();
- -
- - GcmNetworkManager gcmNetworkManager = getGcmNetworkManager(context);
- - if (gcmNetworkManager == null) {
- - Log.e(TAG, "GcmNetworkManager is not available.");
- - return;
- - }
- -
- - try {
- - gcmNetworkManager.cancelTask(
- - taskIdToTaskTag(taskId), BackgroundTaskGcmTaskService.class);
- - } catch (IllegalArgumentException e) {
- - Log.e(TAG, "GcmNetworkManager failed to cancel task.");
- - }
- - }
- -
- - private GcmNetworkManager getGcmNetworkManager(Context context) {
- - if (ChromiumPlayServicesAvailability.isGooglePlayServicesAvailable(context)) {
- - return GcmNetworkManager.getInstance(context);
- - }
- - return null;
- - }
- -
- - private static String taskIdToTaskTag(int taskId) {
- - return Integer.toString(taskId);
- - }
- -}
- diff --git a/components/component_updater/android/java/src/org/chromium/components/component_updater/UpdateScheduler.java b/components/component_updater/android/java/src/org/chromium/components/component_updater/UpdateScheduler.java
- --- a/components/component_updater/android/java/src/org/chromium/components/component_updater/UpdateScheduler.java
- +++ b/components/component_updater/android/java/src/org/chromium/components/component_updater/UpdateScheduler.java
- @@ -14,7 +14,6 @@ import org.chromium.components.background_task_scheduler.BackgroundTask.TaskFini
- import org.chromium.components.background_task_scheduler.BackgroundTaskSchedulerFactory;
- import org.chromium.components.background_task_scheduler.TaskIds;
- import org.chromium.components.background_task_scheduler.TaskInfo;
- -import org.chromium.gms.ChromiumPlayServicesAvailability;
-
- /** Java-side implementation of the component update scheduler using the BackgroundTaskScheduler. */
- @JNINamespace("component_updater")
- diff --git a/components/externalauth/android/BUILD.gn b/components/externalauth/android/BUILD.gn
- --- a/components/externalauth/android/BUILD.gn
- +++ b/components/externalauth/android/BUILD.gn
- @@ -27,8 +27,6 @@ android_library("google_delegate_public_impl_java") {
- android_library("java") {
- deps = [
- ":google_delegate_java",
- - "$google_play_services_package:google_play_services_base_java",
- - "$google_play_services_package:google_play_services_basement_java",
- "//base:base_java",
- "//components/embedder_support/android:util_java",
- "//content/public/android:content_java",
- @@ -49,7 +47,6 @@ android_library("junit") {
-
- deps = [
- ":java",
- - "$google_play_services_package:google_play_services_basement_java",
- "//base:base_java",
- "//base:base_java_test_support",
- "//base:base_junit_test_support",
- diff --git a/components/externalauth/android/java/src/org/chromium/components/externalauth/ExternalAuthUtils.java b/components/externalauth/android/java/src/org/chromium/components/externalauth/ExternalAuthUtils.java
- --- a/components/externalauth/android/java/src/org/chromium/components/externalauth/ExternalAuthUtils.java
- +++ b/components/externalauth/android/java/src/org/chromium/components/externalauth/ExternalAuthUtils.java
- @@ -15,16 +15,12 @@ import android.text.TextUtils;
- import androidx.annotation.VisibleForTesting;
- import androidx.annotation.WorkerThread;
-
- -import com.google.android.gms.common.ConnectionResult;
- -import com.google.android.gms.common.GoogleApiAvailability;
- -
- import org.chromium.base.ContextUtils;
- import org.chromium.base.Log;
- import org.chromium.base.StrictModeContext;
- import org.chromium.base.task.PostTask;
- import org.chromium.components.embedder_support.util.Origin;
- import org.chromium.content_public.browser.UiThreadTaskTraits;
- -import org.chromium.gms.ChromiumPlayServicesAvailability;
-
- /**
- * Utility class for external authentication tools.
- @@ -170,9 +166,7 @@ public class ExternalAuthUtils {
- * when it is updating.
- */
- public boolean isGooglePlayServicesMissing(final Context context) {
- - final int resultCode = checkGooglePlayServicesAvailable(context);
- - return (resultCode == ConnectionResult.SERVICE_MISSING
- - || resultCode == ConnectionResult.SERVICE_INVALID);
- + return true;
- }
-
- /**
- @@ -189,7 +183,6 @@ public class ExternalAuthUtils {
- public boolean canUseGooglePlayServices(final UserRecoverableErrorHandler errorHandler) {
- Context context = ContextUtils.getApplicationContext();
- final int resultCode = checkGooglePlayServicesAvailable(context);
- - if (resultCode == ConnectionResult.SUCCESS) return true;
- // resultCode is some kind of error.
- Log.v(TAG, "Unable to use Google Play Services: %s", describeError(resultCode));
- if (isUserRecoverableError(resultCode)) {
- @@ -260,10 +253,7 @@ public class ExternalAuthUtils {
- * @return The code produced by calling the external code
- */
- protected int checkGooglePlayServicesAvailable(final Context context) {
- - // TODO(crbug.com/577190): Temporarily allowing disk access until more permanent fix is in.
- - try (StrictModeContext ignored = StrictModeContext.allowDiskWrites()) {
- - return ChromiumPlayServicesAvailability.getGooglePlayServicesConnectionResult(context);
- - }
- + return 1; /*SERVICE_MISSING*/
- }
-
- /**
- @@ -274,7 +264,7 @@ public class ExternalAuthUtils {
- * @return true If the code represents a user-recoverable error
- */
- protected boolean isUserRecoverableError(final int errorCode) {
- - return GoogleApiAvailability.getInstance().isUserResolvableError(errorCode);
- + return false;
- }
-
- /**
- @@ -284,7 +274,7 @@ public class ExternalAuthUtils {
- * @return a textual description of the error code
- */
- protected String describeError(final int errorCode) {
- - return GoogleApiAvailability.getInstance().getErrorString(errorCode);
- + return "";
- }
-
- /**
- diff --git a/components/externalauth/android/java/src/org/chromium/components/externalauth/UserRecoverableErrorHandler.java b/components/externalauth/android/java/src/org/chromium/components/externalauth/UserRecoverableErrorHandler.java
- --- a/components/externalauth/android/java/src/org/chromium/components/externalauth/UserRecoverableErrorHandler.java
- +++ b/components/externalauth/android/java/src/org/chromium/components/externalauth/UserRecoverableErrorHandler.java
- @@ -9,8 +9,6 @@ import android.app.Dialog;
- import android.content.Context;
- import android.content.DialogInterface;
-
- -import com.google.android.gms.common.GoogleApiAvailability;
- -
- import org.chromium.base.ThreadUtils;
- import org.chromium.base.metrics.RecordUserAction;
-
- @@ -89,7 +87,6 @@ public abstract class UserRecoverableErrorHandler {
- if (!sNotificationShown.getAndSet(true)) {
- return;
- }
- - GoogleApiAvailability.getInstance().showErrorNotification(context, errorCode);
- }
- }
-
- @@ -182,11 +179,7 @@ public abstract class UserRecoverableErrorHandler {
- cancelDialog();
- }
- if (mDialog == null) {
- - mDialog = GoogleApiAvailability.getInstance().getErrorDialog(
- - mActivity, errorCode, NO_RESPONSE_REQUIRED);
- mErrorCode = errorCode;
- -
- - DialogUserActionRecorder.createAndAttachToDialog(mDialog);
- }
- // This can happen if |errorCode| is ConnectionResult.SERVICE_INVALID.
- if (mDialog != null && !mDialog.isShowing()) {
- diff --git a/components/gcm_driver/gcm_client_impl.cc b/components/gcm_driver/gcm_client_impl.cc
- --- a/components/gcm_driver/gcm_client_impl.cc
- +++ b/components/gcm_driver/gcm_client_impl.cc
- @@ -465,6 +465,7 @@ void GCMClientImpl::StartGCM() {
-
- void GCMClientImpl::InitializeMCSClient() {
- DCHECK(network_connection_tracker_);
- + return;
- std::vector<GURL> endpoints;
- endpoints.push_back(gservices_settings_.GetMCSMainEndpoint());
- GURL fallback_endpoint = gservices_settings_.GetMCSFallbackEndpoint();
- @@ -659,6 +660,7 @@ void GCMClientImpl::AddHeartbeatInterval(const std::string& scope,
- int interval_ms) {
- DCHECK(io_task_runner_->RunsTasksInCurrentSequence());
- DCHECK(mcs_client_);
- + return;
- mcs_client_->AddHeartbeatInterval(scope, interval_ms);
- }
-
- @@ -670,6 +672,7 @@ void GCMClientImpl::RemoveHeartbeatInterval(const std::string& scope) {
-
- void GCMClientImpl::StartCheckin() {
- DCHECK(io_task_runner_->RunsTasksInCurrentSequence());
- + return;
-
- // Make sure no checkin is in progress.
- if (checkin_request_)
- @@ -747,6 +750,7 @@ void GCMClientImpl::SetGServicesSettingsCallback(bool success) {
-
- void GCMClientImpl::SchedulePeriodicCheckin() {
- DCHECK(io_task_runner_->RunsTasksInCurrentSequence());
- + return;
-
- // Make sure no checkin is in progress.
- if (checkin_request_.get() || !device_checkin_info_.accounts_set)
- diff --git a/components/gcm_driver/instance_id/android/BUILD.gn b/components/gcm_driver/instance_id/android/BUILD.gn
- --- a/components/gcm_driver/instance_id/android/BUILD.gn
- +++ b/components/gcm_driver/instance_id/android/BUILD.gn
- @@ -15,7 +15,6 @@ generate_jni("test_support_jni_headers") {
-
- android_library("instance_id_driver_java") {
- deps = [
- - "$google_play_services_package:google_play_services_iid_java",
- "//base:base_java",
- "//components/gcm_driver/android:gcm_driver_java",
- "//third_party/androidx:androidx_annotation_annotation_java",
- @@ -27,14 +26,12 @@ android_library("instance_id_driver_java") {
-
- sources = [
- "java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java",
- - "java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDWithSubtype.java",
- ]
- }
-
- android_library("instance_id_driver_test_support_java") {
- deps = [
- ":instance_id_driver_java",
- - "$google_play_services_package:google_play_services_iid_java",
- "//base:base_java",
- ]
-
- diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java b/components/gcm_driver/instance_id/android/java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java
- --- a/components/gcm_driver/instance_id/android/java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java
- +++ b/components/gcm_driver/instance_id/android/java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java
- @@ -27,7 +27,6 @@ public class InstanceIDBridge {
- * Underlying InstanceIDWithSubtype. May be shared by multiple InstanceIDBridges. Must be
- * initialized on a background thread.
- */
- - private InstanceIDWithSubtype mInstanceID;
-
- private static boolean sBlockOnAsyncTasksForTesting;
-
- @@ -72,7 +71,7 @@ public class InstanceIDBridge {
- new BridgeAsyncTask<String>() {
- @Override
- protected String doBackgroundWork() {
- - return mInstanceID.getId();
- + return "";
- }
- @Override
- protected void sendResultToNative(String id) {
- @@ -88,7 +87,7 @@ public class InstanceIDBridge {
- new BridgeAsyncTask<Long>() {
- @Override
- protected Long doBackgroundWork() {
- - return mInstanceID.getCreationTime();
- + return 0L;
- }
- @Override
- protected void sendResultToNative(Long creationTime) {
- @@ -110,21 +109,7 @@ public class InstanceIDBridge {
- new BridgeAsyncTask<String>() {
- @Override
- protected String doBackgroundWork() {
- - try {
- - // TODO(crbug.com/1247170): Migrate stored LazySubscriptionsManager data to
- - // SubscriptionFlagManager.
- - LazySubscriptionsManager.storeLazinessInformation(
- - LazySubscriptionsManager.buildSubscriptionUniqueId(
- - mSubtype, authorizedEntity),
- - (flags & InstanceIDFlags.IS_LAZY) == InstanceIDFlags.IS_LAZY);
- - SubscriptionFlagManager.setFlags(
- - SubscriptionFlagManager.buildSubscriptionUniqueId(
- - mSubtype, authorizedEntity),
- - flags);
- - return mInstanceID.getToken(authorizedEntity, scope);
- - } catch (IOException ex) {
- return "";
- - }
- }
- @Override
- protected void sendResultToNative(String token) {
- @@ -141,21 +126,7 @@ public class InstanceIDBridge {
- new BridgeAsyncTask<Boolean>() {
- @Override
- protected Boolean doBackgroundWork() {
- - try {
- - mInstanceID.deleteToken(authorizedEntity, scope);
- - String subscriptionId = LazySubscriptionsManager.buildSubscriptionUniqueId(
- - mSubtype, authorizedEntity);
- - if (LazySubscriptionsManager.isSubscriptionLazy(subscriptionId)) {
- - LazySubscriptionsManager.deletePersistedMessagesForSubscriptionId(
- - subscriptionId);
- - }
- - SubscriptionFlagManager.clearFlags(
- - SubscriptionFlagManager.buildSubscriptionUniqueId(
- - mSubtype, authorizedEntity));
- - return true;
- - } catch (IOException ex) {
- - return false;
- - }
- + return false;
- }
- @Override
- protected void sendResultToNative(Boolean success) {
- @@ -171,12 +142,7 @@ public class InstanceIDBridge {
- new BridgeAsyncTask<Boolean>() {
- @Override
- protected Boolean doBackgroundWork() {
- - try {
- - mInstanceID.deleteInstanceID();
- - return true;
- - } catch (IOException ex) {
- - return false;
- - }
- + return true;
- }
- @Override
- protected void sendResultToNative(Boolean success) {
- @@ -206,11 +172,6 @@ public class InstanceIDBridge {
- @Override
- @SuppressWarnings("NoSynchronizedThisCheck") // Only used/accessible by native.
- protected Result doInBackground() {
- - synchronized (InstanceIDBridge.this) {
- - if (mInstanceID == null) {
- - mInstanceID = InstanceIDWithSubtype.getInstance(mSubtype);
- - }
- - }
- return doBackgroundWork();
- }
- @Override
- diff --git a/components/media_router/browser/android/BUILD.gn b/components/media_router/browser/android/BUILD.gn
- --- a/components/media_router/browser/android/BUILD.gn
- +++ b/components/media_router/browser/android/BUILD.gn
- @@ -11,10 +11,6 @@ android_library("java") {
- resources_package = "org.chromium.components.media_router"
- deps = [
- ":java_resources",
- - "$google_play_services_package:google_play_services_base_java",
- - "$google_play_services_package:google_play_services_basement_java",
- - "$google_play_services_package:google_play_services_cast_framework_java",
- - "$google_play_services_package:google_play_services_cast_java",
- "//base:base_java",
- "//components/browser_ui/media/android:java",
- "//content/public/android:content_java",
- @@ -75,8 +71,6 @@ android_library("java") {
- android_library("cast_options_provider_java") {
- sources = [ "java/src/org/chromium/components/media_router/caf/CastOptionsProvider.java" ]
- deps = [
- - "$google_play_services_package:google_play_services_cast_framework_java",
- - "$google_play_services_package:google_play_services_cast_java",
- ]
- }
-
- @@ -142,9 +136,6 @@ java_library("junit") {
- deps = [
- ":java",
- ":test_support_java",
- - "$google_play_services_package:google_play_services_basement_java",
- - "$google_play_services_package:google_play_services_cast_framework_java",
- - "$google_play_services_package:google_play_services_cast_java",
- "//base:base_java",
- "//base:base_java_test_support",
- "//base:base_junit_test_support",
- diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/BrowserMediaRouter.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/BrowserMediaRouter.java
- --- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/BrowserMediaRouter.java
- +++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/BrowserMediaRouter.java
- @@ -10,9 +10,6 @@ import androidx.annotation.Nullable;
- import androidx.annotation.VisibleForTesting;
- import androidx.mediarouter.media.MediaRouter;
-
- -import com.google.android.gms.common.ConnectionResult;
- -import com.google.android.gms.common.GoogleApiAvailability;
- -
- import org.chromium.base.ContextUtils;
- import org.chromium.base.Log;
- import org.chromium.base.StrictModeContext;
- @@ -42,20 +39,7 @@ public class BrowserMediaRouter implements MediaRouteManager {
- new MediaRouteProvider.Factory() {
- @Override
- public void addProviders(MediaRouteManager manager) {
- - int googleApiAvailabilityResult =
- - GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(
- - ContextUtils.getApplicationContext(),
- - MIN_GOOGLE_PLAY_SERVICES_APK_VERSION);
- - if (googleApiAvailabilityResult != ConnectionResult.SUCCESS) {
- - GoogleApiAvailability.getInstance().showErrorNotification(
- - ContextUtils.getApplicationContext(), googleApiAvailabilityResult);
- - return;
- - }
- - MediaRouteProvider cafProvider = CafMediaRouteProvider.create(manager);
- - manager.addMediaRouteProvider(cafProvider);
- - MediaRouteProvider remotingProvider =
- - CafRemotingMediaRouteProvider.create(manager);
- - manager.addMediaRouteProvider(remotingProvider);
- + return;
- }
- };
-
- diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/CastSessionUtil.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/CastSessionUtil.java
- --- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/CastSessionUtil.java
- +++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/CastSessionUtil.java
- @@ -4,9 +4,6 @@
-
- package org.chromium.components.media_router;
-
- -import com.google.android.gms.cast.CastDevice;
- -import com.google.android.gms.cast.RemoteMediaPlayer;
- -
- import org.chromium.components.browser_ui.media.MediaNotificationInfo;
- import org.chromium.services.media_session.MediaMetadata;
-
- @@ -18,36 +15,4 @@ public class CastSessionUtil {
-
- // The value is borrowed from the Android Cast SDK code to match their behavior.
- public static final double MIN_VOLUME_LEVEL_DELTA = 1e-7;
- -
- - /**
- - * Builds a MediaMetadata from the given CastDevice and MediaPlayer, and sets it on the builder
- - */
- - public static void setNotificationMetadata(MediaNotificationInfo.Builder builder,
- - CastDevice castDevice, RemoteMediaPlayer mediaPlayer) {
- - MediaMetadata notificationMetadata = new MediaMetadata("", "", "");
- - builder.setMetadata(notificationMetadata);
- -
- - if (castDevice != null) notificationMetadata.setTitle(castDevice.getFriendlyName());
- -
- - if (mediaPlayer == null) return;
- -
- - com.google.android.gms.cast.MediaInfo info = mediaPlayer.getMediaInfo();
- - if (info == null) return;
- -
- - com.google.android.gms.cast.MediaMetadata metadata = info.getMetadata();
- - if (metadata == null) return;
- -
- - String title = metadata.getString(com.google.android.gms.cast.MediaMetadata.KEY_TITLE);
- - if (title != null) notificationMetadata.setTitle(title);
- -
- - String artist = metadata.getString(com.google.android.gms.cast.MediaMetadata.KEY_ARTIST);
- - if (artist == null) {
- - artist = metadata.getString(com.google.android.gms.cast.MediaMetadata.KEY_ALBUM_ARTIST);
- - }
- - if (artist != null) notificationMetadata.setArtist(artist);
- -
- - String album =
- - metadata.getString(com.google.android.gms.cast.MediaMetadata.KEY_ALBUM_TITLE);
- - if (album != null) notificationMetadata.setAlbum(album);
- - }
- }
- diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/MediaSink.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/MediaSink.java
- --- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/MediaSink.java
- +++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/MediaSink.java
- @@ -8,41 +8,24 @@ import androidx.annotation.Nullable;
- import androidx.mediarouter.media.MediaRouter;
- import androidx.mediarouter.media.MediaRouter.RouteInfo;
-
- -import com.google.android.gms.cast.CastDevice;
- -
- /**
- * A common descriptor of a device that can present some URI.
- */
- public class MediaSink {
- private static final String CAST_SINK_URN_PREFIX = "urn:x-org.chromium:media:sink:cast-";
- - private final String mId;
- - private final String mName;
- - private final CastDevice mDevice;
- -
- - /**
- - * Constructor.
- - * @param id A unique identifier of the sink.
- - * @param name A user friendly name of the sink.
- - * @param device {@link CastDevice} corresponding to this sink.
- - */
- - public MediaSink(String id, String name, CastDevice device) {
- - mId = id;
- - mName = name;
- - mDevice = device;
- - }
-
- /**
- * @return The unique identifier of the sink.
- */
- public String getId() {
- - return mId;
- + return "";
- }
-
- /**
- * @return The user friendly name of the sink.
- */
- public String getName() {
- - return mName;
- + return "";
- }
-
- /**
- @@ -52,17 +35,8 @@ public class MediaSink {
- return CAST_SINK_URN_PREFIX + getId();
- }
-
- - public CastDevice getDevice() {
- - return mDevice;
- - }
- -
- @Override
- public boolean equals(Object o) {
- - if (o == this) return true;
- - if (o instanceof MediaSink) {
- - MediaSink other = (MediaSink) o;
- - return mId.equals(other.getId()) && mName.equals(other.getName());
- - }
- return false;
- }
-
- @@ -70,23 +44,15 @@ public class MediaSink {
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- - result = prime * result + ((mId == null) ? 0 : mId.hashCode());
- - result = prime * result + ((mName == null) ? 0 : mName.hashCode());
- return result;
- }
-
- - @Override
- - public String toString() {
- - return String.format("MediaSink: %s, %s", getId(), getName());
- - }
- -
- /**
- * @param route The route information provided by Android.
- * @return A new MediaSink instance corresponding to the specified {@link RouteInfo}.
- */
- public static MediaSink fromRoute(MediaRouter.RouteInfo route) {
- - return new MediaSink(
- - route.getId(), route.getName(), CastDevice.getFromBundle(route.getExtras()));
- + return null;
- }
-
- /**
- @@ -97,10 +63,6 @@ public class MediaSink {
- */
- @Nullable
- public static MediaSink fromSinkId(String sinkId, MediaRouter router) {
- - for (MediaRouter.RouteInfo route : router.getRoutes()) {
- - MediaSink sink = MediaSink.fromRoute(route);
- - if (sink.getId().equals(sinkId)) return sink;
- - }
- return null;
- }
- }
- diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/MediaStatusBridge.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/MediaStatusBridge.java
- --- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/MediaStatusBridge.java
- +++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/MediaStatusBridge.java
- @@ -4,10 +4,6 @@
-
- package org.chromium.components.media_router;
-
- -import com.google.android.gms.cast.MediaInfo;
- -import com.google.android.gms.cast.MediaMetadata;
- -import com.google.android.gms.cast.MediaStatus;
- -
- import org.chromium.base.annotations.CalledByNative;
- import org.chromium.base.annotations.JNINamespace;
-
- @@ -17,11 +13,6 @@ import org.chromium.base.annotations.JNINamespace;
- */
- @JNINamespace("media_router")
- public class MediaStatusBridge {
- - private MediaStatus mStatus;
- -
- - public MediaStatusBridge(MediaStatus status) {
- - mStatus = status;
- - }
-
- /**
- * Gets the play state of the stream. Return values are defined as such:
- @@ -34,7 +25,7 @@ public class MediaStatusBridge {
- */
- @CalledByNative
- public int playerState() {
- - return mStatus.getPlayerState();
- + return 0;
- }
-
- /**
- @@ -48,7 +39,7 @@ public class MediaStatusBridge {
- */
- @CalledByNative
- public int idleReason() {
- - return mStatus.getIdleReason();
- + return 0;
- }
-
- /**
- @@ -57,13 +48,7 @@ public class MediaStatusBridge {
- */
- @CalledByNative
- public String title() {
- - MediaInfo info = mStatus.getMediaInfo();
- - if (info == null) return "";
- -
- - MediaMetadata metadata = info.getMetadata();
- - if (metadata == null) return "";
- -
- - return metadata.getString(MediaMetadata.KEY_TITLE);
- + return "";
- }
-
- /**
- @@ -71,7 +56,7 @@ public class MediaStatusBridge {
- */
- @CalledByNative
- public boolean canPlayPause() {
- - return mStatus.isMediaCommandSupported(MediaStatus.COMMAND_PAUSE);
- + return false;
- }
-
- /**
- @@ -79,7 +64,7 @@ public class MediaStatusBridge {
- */
- @CalledByNative
- public boolean canMute() {
- - return mStatus.isMediaCommandSupported(MediaStatus.COMMAND_TOGGLE_MUTE);
- + return false;
- }
-
- /**
- @@ -87,7 +72,7 @@ public class MediaStatusBridge {
- */
- @CalledByNative
- public boolean canSetVolume() {
- - return mStatus.isMediaCommandSupported(MediaStatus.COMMAND_SET_VOLUME);
- + return false;
- }
-
- /**
- @@ -95,7 +80,7 @@ public class MediaStatusBridge {
- */
- @CalledByNative
- public boolean canSeek() {
- - return mStatus.isMediaCommandSupported(MediaStatus.COMMAND_SEEK);
- + return false;
- }
-
- /**
- @@ -103,7 +88,7 @@ public class MediaStatusBridge {
- */
- @CalledByNative
- public boolean isMuted() {
- - return mStatus.isMute();
- + return false;
- }
-
- /**
- @@ -113,7 +98,7 @@ public class MediaStatusBridge {
- */
- @CalledByNative
- public double volume() {
- - return mStatus.getStreamVolume();
- + return 0.0;
- }
-
- /**
- @@ -122,10 +107,7 @@ public class MediaStatusBridge {
- */
- @CalledByNative
- public long duration() {
- - MediaInfo info = mStatus.getMediaInfo();
- - if (info == null) return 0;
- -
- - return info.getStreamDuration();
- + return 0;
- }
-
- /**
- @@ -133,6 +115,6 @@ public class MediaStatusBridge {
- */
- @CalledByNative
- public long currentTime() {
- - return mStatus.getStreamPosition();
- + return 0;
- }
- }
- diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/BaseNotificationController.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/BaseNotificationController.java
- --- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/BaseNotificationController.java
- +++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/BaseNotificationController.java
- @@ -6,10 +6,6 @@ package org.chromium.components.media_router.caf;
-
- import android.content.Intent;
-
- -import com.google.android.gms.cast.CastDevice;
- -import com.google.android.gms.cast.MediaStatus;
- -import com.google.android.gms.cast.framework.media.RemoteMediaClient;
- -
- import org.chromium.components.browser_ui.media.MediaNotificationInfo;
- import org.chromium.components.browser_ui.media.MediaNotificationListener;
- import org.chromium.components.browser_ui.media.MediaNotificationManager;
- @@ -62,20 +58,6 @@ public abstract class BaseNotificationController
- public void onStatusUpdated() {
- if (mNotificationBuilder == null) return;
- if (!mSessionController.isConnected()) return;
- -
- - MediaStatus mediaStatus = mSessionController.getRemoteMediaClient().getMediaStatus();
- - if (mediaStatus == null) return;
- -
- - int playerState = mediaStatus.getPlayerState();
- - if (playerState == MediaStatus.PLAYER_STATE_PAUSED
- - || playerState == MediaStatus.PLAYER_STATE_PLAYING) {
- - mNotificationBuilder.setPaused(playerState != MediaStatus.PLAYER_STATE_PLAYING);
- - mNotificationBuilder.setActions(
- - MediaNotificationInfo.ACTION_STOP | MediaNotificationInfo.ACTION_PLAY_PAUSE);
- - } else {
- - mNotificationBuilder.setActions(MediaNotificationInfo.ACTION_STOP);
- - }
- - MediaRouterClient.getInstance().showNotification(mNotificationBuilder.build());
- }
-
- /** Called when media metadata updated. */
- @@ -91,30 +73,6 @@ public abstract class BaseNotificationController
- mNotificationBuilder.setMetadata(notificationMetadata);
-
- if (!mSessionController.isConnected()) return;
- -
- - CastDevice castDevice = mSessionController.getSession().getCastDevice();
- - if (castDevice != null) notificationMetadata.setTitle(castDevice.getFriendlyName());
- -
- - RemoteMediaClient remoteMediaClient = mSessionController.getRemoteMediaClient();
- -
- - com.google.android.gms.cast.MediaInfo info = remoteMediaClient.getMediaInfo();
- - if (info == null) return;
- -
- - com.google.android.gms.cast.MediaMetadata metadata = info.getMetadata();
- - if (metadata == null) return;
- -
- - String title = metadata.getString(com.google.android.gms.cast.MediaMetadata.KEY_TITLE);
- - if (title != null) notificationMetadata.setTitle(title);
- -
- - String artist = metadata.getString(com.google.android.gms.cast.MediaMetadata.KEY_ARTIST);
- - if (artist == null) {
- - artist = metadata.getString(com.google.android.gms.cast.MediaMetadata.KEY_ALBUM_ARTIST);
- - }
- - if (artist != null) notificationMetadata.setArtist(artist);
- -
- - String album =
- - metadata.getString(com.google.android.gms.cast.MediaMetadata.KEY_ALBUM_TITLE);
- - if (album != null) notificationMetadata.setAlbum(album);
- }
-
- /////////////////////////////////////////////////////////////////////////////////////////////
- @@ -122,20 +80,10 @@ public abstract class BaseNotificationController
-
- @Override
- public void onPlay(int actionSource) {
- - if (!mSessionController.isConnected()) return;
- -
- - mSessionController.getRemoteMediaClient().play();
- - MediaRouteUmaRecorder.recordCastNotificationControlsAction(
- - MediaRouteUmaRecorder.CastNotificationControls.RESUME);
- }
-
- @Override
- public void onPause(int actionSource) {
- - if (!mSessionController.isConnected()) return;
- -
- - mSessionController.getRemoteMediaClient().pause();
- - MediaRouteUmaRecorder.recordCastNotificationControlsAction(
- - MediaRouteUmaRecorder.CastNotificationControls.PAUSE);
- }
-
- @Override
- diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/BaseSessionController.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/BaseSessionController.java
- --- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/BaseSessionController.java
- +++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/BaseSessionController.java
- @@ -6,12 +6,7 @@ package org.chromium.components.media_router.caf;
-
- import androidx.annotation.Nullable;
-
- -import com.google.android.gms.cast.CastDevice;
- -import com.google.android.gms.cast.framework.CastSession;
- -import com.google.android.gms.cast.framework.media.RemoteMediaClient;
- -
- import org.chromium.base.Log;
- -import org.chromium.components.media_router.CastSessionUtil;
- import org.chromium.components.media_router.FlingingController;
- import org.chromium.components.media_router.MediaSink;
- import org.chromium.components.media_router.MediaSource;
- @@ -42,15 +37,12 @@ public abstract class BaseSessionController {
- void onMetadataUpdated();
- }
-
- - private CastSession mCastSession;
- private final CafBaseMediaRouteProvider mProvider;
- private CreateRouteRequestInfo mRouteCreationInfo;
- - private final RemoteMediaClient.Callback mRemoteMediaClientCallback;
- private final List<Callback> mCallbacks = new ArrayList<>();
-
- public BaseSessionController(CafBaseMediaRouteProvider provider) {
- mProvider = provider;
- - mRemoteMediaClientCallback = new RemoteMediaClientCallback();
- }
-
- public void addCallback(Callback callback) {
- @@ -63,9 +55,6 @@ public abstract class BaseSessionController {
-
- public void requestSessionLaunch() {
- mRouteCreationInfo = mProvider.getPendingCreateRouteRequestInfo();
- - CastUtils.getCastContext().setReceiverApplicationId(
- - mRouteCreationInfo.source.getApplicationId());
- -
- // When the user clicks a route on the MediaRouteChooserDialog, we intercept the click event
- // and do not select the route. Instead the route selection is postponed to here. This will
- // trigger CAF to launch the session.
- @@ -84,69 +73,22 @@ public abstract class BaseSessionController {
- return mRouteCreationInfo;
- }
-
- - public CastSession getSession() {
- - return mCastSession;
- - }
- -
- - public RemoteMediaClient getRemoteMediaClient() {
- - return isConnected() ? mCastSession.getRemoteMediaClient() : null;
- - }
- -
- public abstract BaseNotificationController getNotificationController();
-
- public void endSession() {
- - CastUtils.getCastContext().getSessionManager().endCurrentSession(/* stopCasting= */ true);
- - CastUtils.getCastContext().setReceiverApplicationId(null);
- }
-
- public List<String> getCapabilities() {
- List<String> capabilities = new ArrayList<>();
- - if (mCastSession == null || !mCastSession.isConnected()) return capabilities;
- - CastDevice device = mCastSession.getCastDevice();
- - if (device.hasCapability(CastDevice.CAPABILITY_AUDIO_IN)) {
- - capabilities.add("audio_in");
- - }
- - if (device.hasCapability(CastDevice.CAPABILITY_AUDIO_OUT)) {
- - capabilities.add("audio_out");
- - }
- - if (device.hasCapability(CastDevice.CAPABILITY_VIDEO_IN)) {
- - capabilities.add("video_in");
- - }
- - if (device.hasCapability(CastDevice.CAPABILITY_VIDEO_OUT)) {
- - capabilities.add("video_out");
- - }
- return capabilities;
- }
-
- public boolean isConnected() {
- - return mCastSession != null && mCastSession.isConnected();
- + return false;
- }
-
- private void updateRemoteMediaClient(String message) {
- if (!isConnected()) return;
- -
- - mCastSession.getRemoteMediaClient().onMessageReceived(
- - mCastSession.getCastDevice(), CastSessionUtil.MEDIA_NAMESPACE, message);
- - }
- -
- - /** Attaches the controller to the current {@link CastSession}. */
- - public void attachToCastSession(CastSession session) {
- - mCastSession = session;
- - RemoteMediaClient uncheckedRemoteMediaClient = mCastSession.getRemoteMediaClient();
- - if (uncheckedRemoteMediaClient != null) {
- - uncheckedRemoteMediaClient.registerCallback(mRemoteMediaClientCallback);
- - }
- - }
- -
- - /** Detaches the controller from any {@link CastSession}. */
- - public void detachFromCastSession() {
- - if (mCastSession == null) return;
- -
- - RemoteMediaClient uncheckedRemoteMediaClient = mCastSession.getRemoteMediaClient();
- - if (uncheckedRemoteMediaClient != null) {
- - uncheckedRemoteMediaClient.unregisterCallback(mRemoteMediaClientCallback);
- - }
- - mCastSession = null;
- }
-
- /** Called when session started. */
- @@ -163,50 +105,12 @@ public abstract class BaseSessionController {
- return mProvider;
- }
-
- - /**
- - * All sub-classes need to register this method to listen to messages of the namespaces they are
- - * interested in.
- - */
- - protected void onMessageReceived(CastDevice castDevice, String namespace, String message) {
- - Log.d(TAG,
- - "Received message from Cast device: namespace=\"" + namespace + "\" message=\""
- - + message + "\"");
- - if (CastSessionUtil.MEDIA_NAMESPACE.equals(namespace)) {
- - updateRemoteMediaClient(message);
- - }
- - }
- -
- - private class RemoteMediaClientCallback extends RemoteMediaClient.Callback {
- - @Override
- - public void onStatusUpdated() {
- - BaseSessionController.this.onStatusUpdated();
- - }
- -
- - @Override
- - public void onMetadataUpdated() {
- - BaseSessionController.this.onMetadataUpdated();
- - }
- - }
- -
- - protected void onStatusUpdated() {
- - notifyCallback((Callback callback) -> callback.onStatusUpdated());
- - }
- -
- - protected void onMetadataUpdated() {
- - notifyCallback((Callback callback) -> callback.onMetadataUpdated());
- - }
- -
- - @Nullable
- - public FlingingController getFlingingController() {
- - return null;
- - }
- -
- /**
- * Helper message to get the session ID of the attached session. For stubbing in tests as
- * {@link CastSession#getSessionId()} is final.
- */
- public String getSessionId() {
- - return isConnected() ? getSession().getSessionId() : null;
- + return null;
- }
-
- private void notifyCallback(NotifyCallbackAction action) {
- diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafBaseMediaRouteProvider.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafBaseMediaRouteProvider.java
- --- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafBaseMediaRouteProvider.java
- +++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafBaseMediaRouteProvider.java
- @@ -12,10 +12,6 @@ import androidx.mediarouter.media.MediaRouteSelector;
- import androidx.mediarouter.media.MediaRouter;
- import androidx.mediarouter.media.MediaRouter.RouteInfo;
-
- -import com.google.android.gms.cast.framework.CastSession;
- -import com.google.android.gms.cast.framework.SessionManagerListener;
- -import com.google.android.gms.cast.framework.media.RemoteMediaClient;
- -
- import org.chromium.base.Log;
- import org.chromium.components.media_router.DiscoveryCallback;
- import org.chromium.components.media_router.DiscoveryDelegate;
- @@ -39,7 +35,7 @@ import java.util.Set;
- * A base provider containing common implementation for CAF-based {@link MediaRouteProvider}s.
- */
- public abstract class CafBaseMediaRouteProvider
- - implements MediaRouteProvider, DiscoveryDelegate, SessionManagerListener<CastSession> {
- + implements MediaRouteProvider, DiscoveryDelegate {
- private static final String TAG = "CafMR";
-
- protected static final List<MediaSink> NO_SINKS = Collections.emptyList();
- @@ -155,7 +151,6 @@ public abstract class CafBaseMediaRouteProvider
- // current session and clean up the routes (can't wait for session ending as the signal
- // might be delayed).
- sessionController().endSession();
- - handleSessionEnd();
- }
- if (mPendingCreateRouteRequestInfo != null) {
- cancelPendingRequest("Request replaced");
- @@ -184,9 +179,6 @@ public abstract class CafBaseMediaRouteProvider
- mManager.onCreateRouteRequestError("The sink does not exist", nativeRequestId);
- }
-
- - CastUtils.getCastContext().getSessionManager().addSessionManagerListener(
- - this, CastSession.class);
- -
- mPendingCreateRouteRequestInfo = new CreateRouteRequestInfo(source, sink, presentationId,
- origin, tabId, isOffTheRecord, nativeRequestId, targetRouteInfo);
-
- @@ -213,110 +205,6 @@ public abstract class CafBaseMediaRouteProvider
- removeRoute(routeId, /* error= */ null);
- }
-
- - ///////////////////////////////////////////////////////
- - // SessionManagerListener implementation begin
- - ///////////////////////////////////////////////////////
- -
- - @Override
- - public final void onSessionStarting(CastSession session) {
- - // The session is not connected yet at this point so this is no-op.
- - }
- -
- - @Override
- - public void onSessionStartFailed(CastSession session, int error) {
- - removeAllRoutes("Launch error");
- - cancelPendingRequest("Launch error");
- - }
- -
- - @Override
- - public void onSessionStarted(CastSession session, String sessionId) {
- - Log.d(TAG, "onSessionStarted");
- -
- - if (session != CastUtils.getCastContext().getSessionManager().getCurrentCastSession()) {
- - // Sometimes the session start signal might come in for an earlier launch request, which
- - // should be ignored.
- - return;
- - }
- -
- - if (session == sessionController().getSession() || mPendingCreateRouteRequestInfo == null) {
- - // Early return for any possible case that the session start signal comes in twice for
- - // the same session.
- - return;
- - }
- - handleSessionStart(session, sessionId);
- - }
- -
- - @Override
- - public final void onSessionResumed(CastSession session, boolean wasSuspended) {
- - sessionController().attachToCastSession(session);
- - }
- -
- - @Override
- - public final void onSessionResuming(CastSession session, String sessionId) {}
- -
- - @Override
- - public final void onSessionResumeFailed(CastSession session, int error) {}
- -
- - @Override
- - public final void onSessionEnding(CastSession session) {
- - RemoteMediaClient client = session.getRemoteMediaClient();
- - if (client != null) {
- - MediaRouteUmaRecorder.castEndedTimeRemaining(
- - client.getApproximateStreamPosition(), client.getStreamDuration());
- - }
- - handleSessionEnd();
- - }
- -
- - @Override
- - public final void onSessionEnded(CastSession session, int error) {
- - Log.d(TAG, "Session ended with error code " + error);
- - RemoteMediaClient client = session.getRemoteMediaClient();
- - if (client != null) {
- - MediaRouteUmaRecorder.castEndedTimeRemaining(
- - client.getApproximateStreamPosition(), client.getStreamDuration());
- - }
- - handleSessionEnd();
- - }
- -
- - @Override
- - public final void onSessionSuspended(CastSession session, int reason) {
- - sessionController().detachFromCastSession();
- - }
- -
- - ///////////////////////////////////////////////////////
- - // SessionManagerListener implementation end
- - ///////////////////////////////////////////////////////
- -
- - protected void handleSessionStart(CastSession session, String sessionId) {
- - sessionController().attachToCastSession(session);
- - sessionController().onSessionStarted();
- -
- - MediaSink sink = mPendingCreateRouteRequestInfo.sink;
- - MediaSource source = mPendingCreateRouteRequestInfo.source;
- - MediaRoute route = new MediaRoute(
- - sink.getId(), source.getSourceId(), mPendingCreateRouteRequestInfo.presentationId);
- - addRoute(route, mPendingCreateRouteRequestInfo.origin, mPendingCreateRouteRequestInfo.tabId,
- - mPendingCreateRouteRequestInfo.nativeRequestId, /* wasLaunched= */ true);
- -
- - mPendingCreateRouteRequestInfo = null;
- - }
- -
- - private void handleSessionEnd() {
- - if (mPendingCreateRouteRequestInfo != null) {
- - // The Cast SDK notifies about session ending when a route is unselected, even when
- - // there's no current session. Because CastSessionController unselects the route to set
- - // the receiver app ID, this needs to be guarded by a pending request null check to make
- - // sure the listener is not unregistered during a session relaunch.
- - return;
- - }
- - sessionController().onSessionEnded();
- - sessionController().detachFromCastSession();
- - getAndroidMediaRouter().selectRoute(getAndroidMediaRouter().getDefaultRoute());
- - terminateAllRoutes();
- - CastUtils.getCastContext().getSessionManager().removeSessionManagerListener(
- - this, CastSession.class);
- - }
- -
- private void cancelPendingRequest(String error) {
- if (mPendingCreateRouteRequestInfo == null) return;
-
- diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafMediaRouteProvider.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafMediaRouteProvider.java
- --- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafMediaRouteProvider.java
- +++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafMediaRouteProvider.java
- @@ -11,8 +11,6 @@ import androidx.annotation.Nullable;
- import androidx.annotation.VisibleForTesting;
- import androidx.mediarouter.media.MediaRouter;
-
- -import com.google.android.gms.cast.framework.CastSession;
- -
- import org.chromium.base.Log;
- import org.chromium.components.media_router.BrowserMediaRouter;
- import org.chromium.components.media_router.ClientRecord;
- @@ -147,20 +145,6 @@ public class CafMediaRouteProvider extends CafBaseMediaRouteProvider {
- return mMessageHandler;
- }
-
- - @Override
- - protected void handleSessionStart(CastSession session, String sessionId) {
- - super.handleSessionStart(session, sessionId);
- -
- - for (ClientRecord clientRecord : mClientIdToRecords.values()) {
- - // Should be exactly one instance of MediaRoute/ClientRecord at this moment.
- - mMessageHandler.sendReceiverActionToClient(clientRecord.routeId,
- - sessionController().getSink(), clientRecord.clientId, "cast");
- - }
- -
- - mMessageHandler.onSessionStarted();
- - sessionController().getSession().getRemoteMediaClient().requestStatus();
- - }
- -
- @Override
- protected void addRoute(
- MediaRoute route, String origin, int tabId, int nativeRequestId, boolean wasLaunched) {
- diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafMessageHandler.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafMessageHandler.java
- --- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafMessageHandler.java
- +++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafMessageHandler.java
- @@ -13,10 +13,6 @@ import android.util.SparseArray;
- import androidx.annotation.VisibleForTesting;
- import androidx.collection.ArrayMap;
-
- -import com.google.android.gms.cast.ApplicationMetadata;
- -import com.google.android.gms.common.api.PendingResult;
- -import com.google.android.gms.common.api.Status;
- -
- import org.json.JSONArray;
- import org.json.JSONException;
- import org.json.JSONObject;
- @@ -345,49 +341,7 @@ public class CafMessageHandler {
- final int sequenceNumber) throws JSONException {
- if (volumeMessage == null) return false;
- if (!mSessionController.isConnected()) return false;
- - boolean shouldWaitForVolumeChange = false;
- - try {
- - if (!volumeMessage.isNull("muted")) {
- - boolean newMuted = volumeMessage.getBoolean("muted");
- - if (mSessionController.getSession().isMute() != newMuted) {
- - mSessionController.getSession().setMute(newMuted);
- - shouldWaitForVolumeChange = true;
- - }
- - }
- - if (!volumeMessage.isNull("level")) {
- - double newLevel = volumeMessage.getDouble("level");
- - double currentLevel = mSessionController.getSession().getVolume();
- - if (!Double.isNaN(currentLevel)
- - && Math.abs(currentLevel - newLevel)
- - > CastSessionUtil.MIN_VOLUME_LEVEL_DELTA) {
- - mSessionController.getSession().setVolume(newLevel);
- - shouldWaitForVolumeChange = true;
- - }
- - }
- - } catch (IOException | IllegalStateException e) {
- - Log.e(TAG, "Failed to send volume command: " + e);
- - return false;
- - }
- -
- - // For each successful volume message we need to respond with an empty "v2_message" so the
- - // Cast Web SDK can call the success callback of the page. If we expect the volume to change
- - // as the result of the command, we're relying on {@link Cast.CastListener#onVolumeChanged}
- - // to get called by the Android Cast SDK when the receiver status is updated. We keep the
- - // sequence number until then. If the volume doesn't change as the result of the command, we
- - // won't get notified by the Android SDK
- - if (shouldWaitForVolumeChange) {
- - mVolumeRequests.add(new RequestRecord(clientId, sequenceNumber));
- - } else {
- - // It's usually bad to have request and response on the same call stack so post the
- - // response to the Android message loop.
- - mHandler.post(new Runnable() {
- - @Override
- - public void run() {
- - onVolumeChanged(clientId, sequenceNumber);
- - }
- - });
- - }
- - return true;
- + return false;
- }
-
- @VisibleForTesting
- @@ -675,19 +629,11 @@ public class CafMessageHandler {
- try {
- // "volume" is a part of "receiver" initialized below.
- JSONObject jsonVolume = new JSONObject();
- - jsonVolume.put("level", mSessionController.getSession().getVolume());
- - jsonVolume.put("muted", mSessionController.getSession().isMute());
-
- // "receiver" is a part of "message" initialized below.
- JSONObject jsonReceiver = new JSONObject();
- - jsonReceiver.put(
- - "label", mSessionController.getSession().getCastDevice().getDeviceId());
- - jsonReceiver.put("friendlyName",
- - mSessionController.getSession().getCastDevice().getFriendlyName());
- jsonReceiver.put("capabilities", toJSONArray(mSessionController.getCapabilities()));
- jsonReceiver.put("volume", jsonVolume);
- - jsonReceiver.put(
- - "isActiveInput", mSessionController.getSession().getActiveInputState());
- jsonReceiver.put("displayStatus", null);
- jsonReceiver.put("receiverType", "cast");
-
- @@ -700,23 +646,14 @@ public class CafMessageHandler {
-
- JSONObject jsonMessage = new JSONObject();
- jsonMessage.put("sessionId", mSessionController.getSessionId());
- - jsonMessage.put("statusText", mSessionController.getSession().getApplicationStatus());
- jsonMessage.put("receiver", jsonReceiver);
- jsonMessage.put("namespaces", jsonNamespaces);
- jsonMessage.put("media", toJSONArray(new ArrayList<>()));
- jsonMessage.put("status", "connected");
- jsonMessage.put("transportId", "web-4");
-
- - ApplicationMetadata applicationMetadata =
- - mSessionController.getSession().getApplicationMetadata();
- - if (applicationMetadata != null) {
- - jsonMessage.put("appId", applicationMetadata.getApplicationId());
- - } else {
- - jsonMessage.put("appId",
- - mSessionController.getRouteCreationInfo().source.getApplicationId());
- - }
- - jsonMessage.put("displayName",
- - mSessionController.getSession().getCastDevice().getFriendlyName());
- + jsonMessage.put("appId",
- + mSessionController.getRouteCreationInfo().source.getApplicationId());
-
- return jsonMessage.toString();
- } catch (JSONException e) {
- @@ -797,32 +734,6 @@ public class CafMessageHandler {
- boolean sendStringCastMessage(
- String message, String namespace, String clientId, int sequenceNumber) {
- if (!mSessionController.isConnected()) return false;
- -
- - PendingResult<Status> pendingResult =
- - mSessionController.getSession().sendMessage(namespace, message);
- - if (!TextUtils.equals(namespace, CastSessionUtil.MEDIA_NAMESPACE)) {
- - // Media commands wait for the media status update as a result.
- - pendingResult.setResultCallback(
- - (Status result) -> onSendAppMessageResult(result, clientId, sequenceNumber));
- - }
- - return true;
- - }
- -
- - /**
- - * Notifies a client that an app message has been sent.
- - * @param clientId The client id the message is sent from.
- - * @param sequenceNumber The sequence number of the message.
- - */
- - void onSendAppMessageResult(Status result, String clientId, int sequenceNumber) {
- - if (!result.isSuccess()) {
- - // TODO(avayvod): should actually report back to the page.
- - // See https://crbug.com/550445.
- - Log.e(TAG, "Failed to send the message: " + result);
- - return;
- - }
- -
- - // App messages wait for the empty message with the sequence
- - // number.
- - sendEnclosedMessageToClient(clientId, "app_message", null, sequenceNumber);
- + return false;
- }
- }
- diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastMediaSource.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastMediaSource.java
- --- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastMediaSource.java
- +++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastMediaSource.java
- @@ -9,8 +9,6 @@ import android.net.Uri;
- import androidx.annotation.Nullable;
- import androidx.mediarouter.media.MediaRouteSelector;
-
- -import com.google.android.gms.cast.CastMediaControlIntent;
- -
- import org.chromium.components.media_router.MediaSource;
-
- import java.util.Arrays;
- @@ -106,13 +104,7 @@ public class CastMediaSource implements MediaSource {
- */
- @Override
- public MediaRouteSelector buildRouteSelector() {
- - try {
- - return new MediaRouteSelector.Builder()
- - .addControlCategory(CastMediaControlIntent.categoryForCast(mApplicationId))
- - .build();
- - } catch (IllegalArgumentException e) {
- - return null;
- - }
- + return null;
- }
-
- /**
- diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastOptionsProvider.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastOptionsProvider.java
- --- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastOptionsProvider.java
- +++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastOptionsProvider.java
- @@ -6,28 +6,8 @@ package org.chromium.components.media_router.caf;
-
- import android.content.Context;
-
- -import com.google.android.gms.cast.LaunchOptions;
- -import com.google.android.gms.cast.framework.CastOptions;
- -import com.google.android.gms.cast.framework.OptionsProvider;
- -import com.google.android.gms.cast.framework.SessionProvider;
- -
- import java.util.List;
-
- /** {@link OptionsProvider} implementation for Chrome MR. */
- -public class CastOptionsProvider implements OptionsProvider {
- - @Override
- - public CastOptions getCastOptions(Context context) {
- - return new CastOptions.Builder()
- - .setCastMediaOptions(null)
- - .setEnableReconnectionService(false)
- - .setLaunchOptions(new LaunchOptions.Builder().setRelaunchIfRunning(true).build())
- - .setResumeSavedSession(false)
- - .setStopReceiverApplicationWhenEndingSession(true)
- - .build();
- - }
- -
- - @Override
- - public List<SessionProvider> getAdditionalSessionProviders(Context context) {
- - return null;
- - }
- +public class CastOptionsProvider {
- }
- diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastSessionController.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastSessionController.java
- --- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastSessionController.java
- +++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastSessionController.java
- @@ -7,11 +7,6 @@ package org.chromium.components.media_router.caf;
- import androidx.annotation.NonNull;
- import androidx.annotation.VisibleForTesting;
-
- -import com.google.android.gms.cast.ApplicationMetadata;
- -import com.google.android.gms.cast.Cast;
- -import com.google.android.gms.cast.CastDevice;
- -import com.google.android.gms.cast.framework.CastSession;
- -
- import org.chromium.base.Log;
-
- import java.util.ArrayList;
- @@ -24,12 +19,10 @@ public class CastSessionController extends BaseSessionController {
- private static final String TAG = "CafSessionCtrl";
-
- private List<String> mNamespaces = new ArrayList<String>();
- - private CastListener mCastListener;
- private CafNotificationController mNotificationController;
-
- public CastSessionController(CafBaseMediaRouteProvider provider) {
- super(provider);
- - mCastListener = new CastListener();
- mNotificationController = new CafNotificationController(this);
- }
-
- @@ -37,30 +30,6 @@ public class CastSessionController extends BaseSessionController {
- return mNamespaces;
- }
-
- - /**
- - * Init nested fields for testing. The reason is that nested classes are bound to the original
- - * instance instead of the spyed instance.
- - */
- - void initNestedFieldsForTesting() {
- - mCastListener = new CastListener();
- - }
- -
- - @Override
- - public void attachToCastSession(CastSession session) {
- - super.attachToCastSession(session);
- - getSession().addCastListener(mCastListener);
- - updateNamespaces();
- - }
- -
- - @Override
- - public void detachFromCastSession() {
- - if (getSession() == null) return;
- -
- - mNamespaces.clear();
- - getSession().removeCastListener(mCastListener);
- - super.detachFromCastSession();
- - }
- -
- @Override
- public void onSessionEnded() {
- getMessageHandler().onSessionEnded();
- @@ -72,24 +41,6 @@ public class CastSessionController extends BaseSessionController {
- return mNotificationController;
- }
-
- - private class CastListener extends Cast.Listener {
- - @Override
- - public void onApplicationStatusChanged() {
- - CastSessionController.this.onApplicationStatusChanged();
- - }
- -
- - @Override
- - public void onApplicationMetadataChanged(ApplicationMetadata metadata) {
- - CastSessionController.this.onApplicationStatusChanged();
- - }
- -
- - @Override
- - public void onVolumeChanged() {
- - CastSessionController.this.onApplicationStatusChanged();
- - getMessageHandler().onVolumeChanged();
- - }
- - }
- -
- private void onApplicationStatusChanged() {
- updateNamespaces();
-
- @@ -100,53 +51,18 @@ public class CastSessionController extends BaseSessionController {
- @VisibleForTesting
- void updateNamespaces() {
- if (!isConnected()) return;
- -
- - if (getSession().getApplicationMetadata() == null
- - || getSession().getApplicationMetadata().getSupportedNamespaces() == null) {
- - return;
- - }
- -
- - Set<String> namespacesToAdd =
- - new HashSet<>(getSession().getApplicationMetadata().getSupportedNamespaces());
- - Set<String> namespacesToRemove = new HashSet<String>(mNamespaces);
- -
- - namespacesToRemove.removeAll(namespacesToAdd);
- - namespacesToAdd.removeAll(mNamespaces);
- -
- - for (String namespace : namespacesToRemove) unregisterNamespace(namespace);
- - for (String namespace : namespacesToAdd) registerNamespace(namespace);
- }
-
- private void registerNamespace(String namespace) {
- assert !mNamespaces.contains(namespace);
-
- if (!isConnected()) return;
- -
- - try {
- - getSession().setMessageReceivedCallbacks(namespace, this::onMessageReceived);
- - mNamespaces.add(namespace);
- - } catch (Exception e) {
- - Log.e(TAG, "Failed to register namespace listener for %s", namespace, e);
- - }
- }
-
- private void unregisterNamespace(String namespace) {
- assert mNamespaces.contains(namespace);
-
- if (!isConnected()) return;
- -
- - try {
- - getSession().removeMessageReceivedCallbacks(namespace);
- - mNamespaces.remove(namespace);
- - } catch (Exception e) {
- - Log.e(TAG, "Failed to remove the namespace listener for %s", namespace, e);
- - }
- - }
- -
- - @Override
- - protected void onMessageReceived(CastDevice castDevice, String namespace, String message) {
- - super.onMessageReceived(castDevice, namespace, message);
- - getMessageHandler().onMessageReceived(namespace, message);
- }
-
- @NonNull
- diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastUtils.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastUtils.java
- --- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastUtils.java
- +++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CastUtils.java
- @@ -4,18 +4,10 @@
-
- package org.chromium.components.media_router.caf;
-
- -import com.google.android.gms.cast.framework.CastContext;
- -
- import org.chromium.components.media_router.MediaRouterClient;
-
- /** Utility methods for Cast. */
- public class CastUtils {
- - /** Helper method to return the {@link CastContext} instance. */
- - public static CastContext getCastContext() {
- - return CastContext.getSharedInstance(
- - MediaRouterClient.getInstance().getContextForRemoting());
- - }
- -
- /**
- * Compares two origins. Empty origin strings correspond to unique origins in
- * url::Origin.
- diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/CafExpandedControllerActivity.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/CafExpandedControllerActivity.java
- --- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/CafExpandedControllerActivity.java
- +++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/CafExpandedControllerActivity.java
- @@ -45,60 +45,35 @@ public class CafExpandedControllerActivity
- private MediaController.Delegate mControllerDelegate = new MediaController.Delegate() {
- @Override
- public void play() {
- - if (!mSessionController.isConnected()) return;
- -
- - mSessionController.getSession().getRemoteMediaClient().play();
- - MediaRouteUmaRecorder.recordFullscreenControlsAction(
- - MediaRouteUmaRecorder.FullScreenControls.RESUME);
- }
-
- @Override
- public void pause() {
- - if (!mSessionController.isConnected()) return;
- -
- - mSessionController.getSession().getRemoteMediaClient().pause();
- - MediaRouteUmaRecorder.recordFullscreenControlsAction(
- - MediaRouteUmaRecorder.FullScreenControls.PAUSE);
- }
-
- @Override
- public long getDuration() {
- - if (!mSessionController.isConnected()) return 0;
- - return mSessionController.getFlingingController().getDuration();
- + return 0;
- }
-
- @Override
- public long getPosition() {
- - if (!mSessionController.isConnected()) return 0;
- - return mSessionController.getFlingingController().getApproximateCurrentTime();
- + return 0;
- }
-
- @Override
- public void seekTo(long pos) {
- - if (!mSessionController.isConnected()) return;
- -
- - mSessionController.getSession().getRemoteMediaClient().seek(pos);
- - MediaRouteUmaRecorder.recordFullscreenControlsAction(
- - MediaRouteUmaRecorder.FullScreenControls.SEEK);
- }
-
- @Override
- public boolean isPlaying() {
- - if (!mSessionController.isConnected()) return false;
- -
- - return mSessionController.getSession().getRemoteMediaClient().isPlaying();
- + return false;
- }
-
- @Override
- public long getActionFlags() {
- long flags =
- PlaybackStateCompat.ACTION_REWIND | PlaybackStateCompat.ACTION_FAST_FORWARD;
- - if (mSessionController.isConnected()
- - && mSessionController.getSession().getRemoteMediaClient().isPlaying()) {
- - flags |= PlaybackStateCompat.ACTION_PAUSE;
- - } else {
- - flags |= PlaybackStateCompat.ACTION_PLAY;
- - }
- return flags;
- }
- };
- @@ -187,20 +162,10 @@ public class CafExpandedControllerActivity
- private void updateUi() {
- if (!mSessionController.isConnected()) return;
-
- - String deviceName = mSessionController.getSession().getCastDevice().getFriendlyName();
- - String titleText = "";
- - if (deviceName != null) {
- - titleText = getResources().getString(R.string.cast_casting_video, deviceName);
- - }
- - mTitleView.setText(titleText);
- -
- mMediaController.refresh();
- mMediaController.updateProgress();
-
- cancelProgressUpdateTask();
- - if (mSessionController.getSession().getRemoteMediaClient().isPlaying()) {
- - scheduleProgressUpdateTask();
- - }
- }
-
- private void scheduleProgressUpdateTask() {
- diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/CafRemotingMediaRouteProvider.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/CafRemotingMediaRouteProvider.java
- --- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/CafRemotingMediaRouteProvider.java
- +++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/CafRemotingMediaRouteProvider.java
- @@ -49,9 +49,6 @@ public class CafRemotingMediaRouteProvider extends CafBaseMediaRouteProvider {
- @Override
- public void detachRoute(String routeId) {
- super.detachRoute(routeId);
- - MediaRouteUmaRecorder.recordRemoteSessionTimeWithoutMediaElementPercentage(
- - mSessionController.getFlingingController().getApproximateCurrentTime(),
- - mSessionController.getFlingingController().getDuration());
- }
-
- @Override
- @@ -74,6 +71,6 @@ public class CafRemotingMediaRouteProvider extends CafBaseMediaRouteProvider {
-
- if (!mRoutes.containsKey(routeId)) return null;
-
- - return sessionController().getFlingingController();
- + return null;
- }
- }
- diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/FlingingControllerAdapter.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/FlingingControllerAdapter.java
- --- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/FlingingControllerAdapter.java
- +++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/FlingingControllerAdapter.java
- @@ -4,11 +4,6 @@
-
- package org.chromium.components.media_router.caf.remoting;
-
- -import com.google.android.gms.cast.MediaInfo;
- -import com.google.android.gms.cast.MediaStatus;
- -import com.google.android.gms.cast.framework.media.RemoteMediaClient;
- -import com.google.android.gms.common.api.Result;
- -
- import org.chromium.base.Log;
- import org.chromium.components.media_router.FlingingController;
- import org.chromium.components.media_router.MediaController;
- @@ -69,14 +64,6 @@ public class FlingingControllerAdapter implements FlingingController, MediaContr
- /** Starts loading the media URL, from the given position. */
- public void load(long position) {
- if (!mSessionController.isConnected()) return;
- -
- - mLoaded = true;
- -
- - MediaInfo mediaInfo = new MediaInfo.Builder(mMediaUrl)
- - .setContentType("*/*")
- - .setStreamType(MediaInfo.STREAM_TYPE_BUFFERED)
- - .build();
- - mSessionController.getRemoteMediaClient().load(mediaInfo, /* autoplay= */ true, position);
- }
-
- ////////////////////////////////////////////
- @@ -91,89 +78,28 @@ public class FlingingControllerAdapter implements FlingingController, MediaContr
- load(/* position= */ 0);
- return;
- }
- -
- - mSessionController.getRemoteMediaClient().play().setResultCallback(
- - this::onMediaCommandResult);
- }
-
- @Override
- public void pause() {
- if (!mSessionController.isConnected()) return;
- - mSessionController.getRemoteMediaClient().pause().setResultCallback(
- - this::onMediaCommandResult);
- }
-
- @Override
- public void setMute(boolean mute) {
- if (!mSessionController.isConnected()) return;
- - mSessionController.getRemoteMediaClient().setStreamMute(mute).setResultCallback(
- - this::onMediaCommandResult);
- }
-
- @Override
- public void setVolume(double volume) {
- if (!mSessionController.isConnected()) return;
- - mSessionController.getRemoteMediaClient().setStreamVolume(volume).setResultCallback(
- - this::onMediaCommandResult);
- }
-
- @Override
- public void seek(long position) {
- - if (!mSessionController.isConnected()) return;
- -
- - if (!mLoaded) {
- - load(position);
- - return;
- - }
- -
- - mSessionController.getRemoteMediaClient().seek(position).setResultCallback(
- - this::onMediaCommandResult);
- - mStreamPositionExtrapolator.onSeek(position);
- }
-
- ////////////////////////////////////////////
- // MediaController implementation end
- ////////////////////////////////////////////
- -
- - public void onStatusUpdated() {
- - if (mMediaStatusObserver == null) return;
- -
- - RemoteMediaClient remoteMediaClient = mSessionController.getRemoteMediaClient();
- -
- - MediaStatus mediaStatus = remoteMediaClient.getMediaStatus();
- - if (mediaStatus != null) {
- - mHasEverReceivedValidMediaSession = true;
- - if (mediaStatus.getPlayerState() == MediaStatus.PLAYER_STATE_IDLE
- - && mediaStatus.getIdleReason() == MediaStatus.IDLE_REASON_FINISHED) {
- - mLoaded = false;
- - mStreamPositionExtrapolator.onFinish();
- - } else {
- - mStreamPositionExtrapolator.update(remoteMediaClient.getStreamDuration(),
- - remoteMediaClient.getApproximateStreamPosition(),
- - remoteMediaClient.isPlaying(), mediaStatus.getPlaybackRate());
- - }
- -
- - mMediaStatusObserver.onMediaStatusUpdate(new MediaStatusBridge(mediaStatus));
- -
- - } else if (mHasEverReceivedValidMediaSession) {
- - // We can receive a null |mediaStatus| while we are in the process of loading the video.
- - // We should wait until we receive one valid media status before considering the video
- - // unloaded. Otherwise, the first call to seek or play will reload the video.
- - // See b/144325733.
- - mLoaded = false;
- - mStreamPositionExtrapolator.clear();
- - }
- - }
- -
- - private void onMediaCommandResult(Result result) {
- - // When multiple API calls are made in quick succession, "Results have already been set"
- - // IllegalStateExceptions might be thrown from GMS code. We prefer to catch the exception
- - // and noop it, than to crash. This might lead to some API calls never getting their
- - // onResult() called, so we should not rely on onResult() being called for every API call.
- - // See https://crbug.com/853923.
- - if (!result.getStatus().isSuccess()) {
- - Log.e(TAG, "Error when sending command. Status code: %d",
- - result.getStatus().getStatusCode());
- - }
- - }
- }
- diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/RemotingMediaSource.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/RemotingMediaSource.java
- --- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/RemotingMediaSource.java
- +++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/RemotingMediaSource.java
- @@ -13,8 +13,6 @@ import android.util.Base64;
- import androidx.annotation.Nullable;
- import androidx.mediarouter.media.MediaRouteSelector;
-
- -import com.google.android.gms.cast.CastMediaControlIntent;
- -
- import org.chromium.base.ContextUtils;
- import org.chromium.base.Log;
- import org.chromium.components.media_router.MediaSource;
- @@ -84,9 +82,7 @@ public class RemotingMediaSource implements MediaSource {
- */
- @Override
- public MediaRouteSelector buildRouteSelector() {
- - return new MediaRouteSelector.Builder()
- - .addControlCategory(CastMediaControlIntent.categoryForCast(getApplicationId()))
- - .build();
- + return null;
- }
-
- /**
- @@ -113,7 +109,7 @@ public class RemotingMediaSource implements MediaSource {
-
- sApplicationId = (customAppId != null && !customAppId.isEmpty())
- ? customAppId
- - : CastMediaControlIntent.DEFAULT_MEDIA_RECEIVER_APPLICATION_ID;
- + : "CC1AD845"; /*DEFAULT_MEDIA_RECEIVER_APPLICATION_ID*/
- }
-
- return sApplicationId;
- diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/RemotingSessionController.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/RemotingSessionController.java
- --- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/RemotingSessionController.java
- +++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/RemotingSessionController.java
- @@ -4,8 +4,6 @@
-
- package org.chromium.components.media_router.caf.remoting;
-
- -import com.google.android.gms.cast.framework.CastSession;
- -
- import org.chromium.base.Log;
- import org.chromium.components.media_router.CastSessionUtil;
- import org.chromium.components.media_router.caf.BaseNotificationController;
- @@ -33,19 +31,6 @@ public class RemotingSessionController extends BaseSessionController {
- sInstance = new WeakReference<>(this);
- }
-
- - @Override
- - public void attachToCastSession(CastSession session) {
- - super.attachToCastSession(session);
- -
- - try {
- - getSession().setMessageReceivedCallbacks(
- - CastSessionUtil.MEDIA_NAMESPACE, this::onMessageReceived);
- - } catch (Exception e) {
- - Log.e(TAG, "Failed to register namespace listener for %s",
- - CastSessionUtil.MEDIA_NAMESPACE, e);
- - }
- - }
- -
- @Override
- public void onSessionStarted() {
- super.onSessionStarted();
- @@ -53,17 +38,6 @@ public class RemotingSessionController extends BaseSessionController {
- mFlingingControllerAdapter = new FlingingControllerAdapter(this, source.getMediaUrl());
- }
-
- - @Override
- - protected void onStatusUpdated() {
- - mFlingingControllerAdapter.onStatusUpdated();
- - super.onStatusUpdated();
- - }
- -
- - @Override
- - public FlingingControllerAdapter getFlingingController() {
- - return mFlingingControllerAdapter;
- - }
- -
- @Override
- public BaseNotificationController getNotificationController() {
- return mNotificationController;
- diff --git a/components/media_router/test/android/cast_emulator/BUILD.gn b/components/media_router/test/android/cast_emulator/BUILD.gn
- --- a/components/media_router/test/android/cast_emulator/BUILD.gn
- +++ b/components/media_router/test/android/cast_emulator/BUILD.gn
- @@ -20,7 +20,6 @@ android_library("cast_emulator_java") {
- "src/org/chromium/components/media_router/cast_emulator/router/DummyRoutePublisher.java",
- ]
- deps = [
- - "$google_play_services_package:google_play_services_cast_java",
- "//base:base_java",
- "//third_party/android_deps:android_support_v7_appcompat_java",
- "//third_party/androidx:androidx_mediarouter_mediarouter_java",
- diff --git a/components/module_installer/android/BUILD.gn b/components/module_installer/android/BUILD.gn
- --- a/components/module_installer/android/BUILD.gn
- +++ b/components/module_installer/android/BUILD.gn
- @@ -34,7 +34,6 @@ android_library("module_installer_java") {
- deps = [
- "//base:base_java",
- "//components/crash/android:java",
- - "//third_party/android_deps:com_google_android_play_core_java",
- "//third_party/androidx:androidx_annotation_annotation_java",
- ]
-
- @@ -58,7 +57,6 @@ junit_binary("module_installer_junit_tests") {
- "//base:base_java",
- "//base:base_java_test_support",
- "//base:base_junit_test_support",
- - "//third_party/android_deps:com_google_android_play_core_java",
- "//third_party/hamcrest:hamcrest_java",
- ]
- }
- diff --git a/components/signin/public/android/BUILD.gn b/components/signin/public/android/BUILD.gn
- --- a/components/signin/public/android/BUILD.gn
- +++ b/components/signin/public/android/BUILD.gn
- @@ -2,8 +2,6 @@ import("//build/config/android/rules.gni")
-
- android_library("java") {
- deps = [
- - "$google_play_services_package:google_play_services_auth_base_java",
- - "$google_play_services_package:google_play_services_base_java",
- "//base:base_java",
- "//components/externalauth/android:java",
- "//net/android:net_java",
- @@ -24,7 +22,6 @@ android_library("java") {
- "java/src/org/chromium/components/signin/AccountManagerFacade.java",
- "java/src/org/chromium/components/signin/AccountManagerFacadeImpl.java",
- "java/src/org/chromium/components/signin/AccountManagerFacadeProvider.java",
- - "java/src/org/chromium/components/signin/AccountRenameChecker.java",
- "java/src/org/chromium/components/signin/AccountRestrictionPatternReceiver.java",
- "java/src/org/chromium/components/signin/AccountUtils.java",
- "java/src/org/chromium/components/signin/AccountsChangeObserver.java",
- @@ -136,7 +133,6 @@ java_library("junit") {
- deps = [
- ":java",
- ":signin_java_test_support",
- - "$google_play_services_package:google_play_services_auth_base_java",
- "//base:base_java",
- "//base:base_java_test_support",
- "//base:base_junit_test_support",
- diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/BUILD.gn
- --- a/components/webauthn/android/BUILD.gn
- +++ b/components/webauthn/android/BUILD.gn
- @@ -15,9 +15,6 @@ android_library("java") {
- sources = [
- "java/src/org/chromium/components/webauthn/AuthenticatorFactory.java",
- "java/src/org/chromium/components/webauthn/AuthenticatorImpl.java",
- - "java/src/org/chromium/components/webauthn/Fido2ApiHandler.java",
- - "java/src/org/chromium/components/webauthn/Fido2CredentialRequest.java",
- - "java/src/org/chromium/components/webauthn/Fido2Helper.java",
- "java/src/org/chromium/components/webauthn/FidoErrorResponseCallback.java",
- "java/src/org/chromium/components/webauthn/GetAssertionResponseCallback.java",
- "java/src/org/chromium/components/webauthn/InternalAuthenticator.java",
- @@ -26,8 +23,6 @@ android_library("java") {
- ]
- annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
- deps = [
- - "$google_play_services_package:google_play_services_fido_java",
- - "$google_play_services_package:google_play_services_tasks_java",
- "//base:base_java",
- "//base:jni_java",
- "//components/externalauth/android:java",
- diff --git a/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java b/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java
- --- a/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java
- +++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java
- @@ -95,17 +95,7 @@ public class AuthenticatorImpl implements Authenticator {
-
- mMakeCredentialCallback = callback;
- mIsOperationPending = true;
- - Context context = ContextUtils.getApplicationContext();
- - if (PackageUtils.getPackageVersion(context, GMSCORE_PACKAGE_NAME)
- - < Fido2ApiHandler.GMSCORE_MIN_VERSION) {
- - onError(AuthenticatorStatus.NOT_IMPLEMENTED);
- - return;
- - }
- -
- - Fido2ApiHandler.getInstance().makeCredential(options, mRenderFrameHost, mOrigin,
- - (status, response)
- - -> onRegisterResponse(status, response),
- - status -> onError(status));
- + onError(AuthenticatorStatus.NOT_IMPLEMENTED);
- }
-
- @Override
- @@ -118,16 +108,7 @@ public class AuthenticatorImpl implements Authenticator {
-
- mGetAssertionCallback = callback;
- mIsOperationPending = true;
- - Context context = ContextUtils.getApplicationContext();
- -
- - if (PackageUtils.getPackageVersion(context, GMSCORE_PACKAGE_NAME)
- - < Fido2ApiHandler.GMSCORE_MIN_VERSION) {
- - onError(AuthenticatorStatus.NOT_IMPLEMENTED);
- - return;
- - }
- -
- - Fido2ApiHandler.getInstance().getAssertion(options, mRenderFrameHost, mOrigin, mPayment,
- - (status, response) -> onSignResponse(status, response), status -> onError(status));
- + onError(AuthenticatorStatus.NOT_IMPLEMENTED);
- }
-
- @Override
- @@ -152,16 +133,8 @@ public class AuthenticatorImpl implements Authenticator {
- return;
- }
-
- - if (PackageUtils.getPackageVersion(context, GMSCORE_PACKAGE_NAME)
- - < Fido2ApiHandler.GMSCORE_MIN_VERSION) {
- decoratedCallback.call(false);
- return;
- - }
- -
- - mIsUserVerifyingPlatformAuthenticatorAvailableCallbackQueue.add(decoratedCallback);
- - Fido2ApiHandler.getInstance().isUserVerifyingPlatformAuthenticatorAvailable(
- - mRenderFrameHost,
- - isUvpaa -> onIsUserVerifyingPlatformAuthenticatorAvailableResponse(isUvpaa));
- }
-
- @Override
- diff --git a/content/browser/push_messaging/push_messaging_manager.cc b/content/browser/push_messaging/push_messaging_manager.cc
- --- a/content/browser/push_messaging/push_messaging_manager.cc
- +++ b/content/browser/push_messaging/push_messaging_manager.cc
- @@ -755,7 +755,7 @@ void PushMessagingManager::GetSubscriptionInfo(
- }
-
- PushMessagingService* PushMessagingManager::GetService() {
- - return render_process_host_.GetBrowserContext()->GetPushMessagingService();
- + return nullptr;
- }
-
- } // namespace content
- diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn
- --- a/content/public/android/BUILD.gn
- +++ b/content/public/android/BUILD.gn
- @@ -136,10 +136,6 @@ android_library("content_main_dex_java") {
- android_library("content_full_java") {
- deps = [
- ":content_main_dex_java",
- - "$google_play_services_package:google_play_services_auth_api_phone_java",
- - "$google_play_services_package:google_play_services_base_java",
- - "$google_play_services_package:google_play_services_basement_java",
- - "$google_play_services_package:google_play_services_tasks_java",
- "//base:base_java",
- "//build:chromeos_buildflags",
- "//components/download/public/common:public_java",
- diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc
- --- a/content/public/common/content_features.cc
- +++ b/content/public/common/content_features.cc
- @@ -939,7 +939,7 @@ const base::Feature kWebAssemblyTrapHandler {
- // Controls whether the WebAuthentication API is enabled:
- // https://w3c.github.io/webauthn
- const base::Feature kWebAuth{"WebAuthentication",
- - base::FEATURE_ENABLED_BY_DEFAULT};
- + base::FEATURE_DISABLED_BY_DEFAULT};
-
- // Controls whether WebAuthn assertion transport is enabled.
- const base::Feature kWebAuthAuthenticatorAttachment{
- diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
- --- a/content/test/BUILD.gn
- +++ b/content/test/BUILD.gn
- @@ -2869,10 +2869,6 @@ if (is_android) {
- testonly = true
- sources = content_java_sources_needing_jni
- deps = [
- - "$google_play_services_package:google_play_services_auth_api_phone_java",
- - "$google_play_services_package:google_play_services_base_java",
- - "$google_play_services_package:google_play_services_basement_java",
- - "$google_play_services_package:google_play_services_tasks_java",
- "//base:base_java",
- "//content/public/android:content_java",
- "//ui/android:ui_full_java",
- diff --git a/device/BUILD.gn b/device/BUILD.gn
- --- a/device/BUILD.gn
- +++ b/device/BUILD.gn
- @@ -446,9 +446,6 @@ if (is_android) {
- "gamepad/android/junit/src/org/chromium/device/gamepad/GamepadMappingsTest.java",
- ]
- deps = [
- - "$google_play_services_package:google_play_services_base_java",
- - "$google_play_services_package:google_play_services_basement_java",
- - "$google_play_services_package:google_play_services_location_java",
- "//base:base_java",
- "//base:base_java_test_support",
- "//base:base_junit_test_support",
- diff --git a/remoting/android/client_java_tmpl.gni b/remoting/android/client_java_tmpl.gni
- --- a/remoting/android/client_java_tmpl.gni
- +++ b/remoting/android/client_java_tmpl.gni
- @@ -104,9 +104,6 @@ template("remoting_android_client_java_tmpl") {
-
- if (defined(invoker.play_services_package)) {
- deps += [
- - "${invoker.play_services_package}:google_play_services_auth_base_java",
- - "${invoker.play_services_package}:google_play_services_base_java",
- - "${invoker.play_services_package}:google_play_services_basement_java",
- ]
- }
-
- diff --git a/services/BUILD.gn b/services/BUILD.gn
- --- a/services/BUILD.gn
- +++ b/services/BUILD.gn
- @@ -110,11 +110,6 @@ if (is_android) {
- "shape_detection/android/junit/src/org/chromium/shape_detection/BitmapUtilsTest.java",
- ]
- deps = [
- - "$google_play_services_package:google_play_services_base_java",
- - "$google_play_services_package:google_play_services_basement_java",
- - "$google_play_services_package:google_play_services_location_java",
- - "$google_play_services_package:google_play_services_vision_common_java",
- - "$google_play_services_package:google_play_services_vision_java",
- "//base:base_java",
- "//base:base_java_test_support",
- "//base:base_junit_test_support",
- @@ -143,10 +138,6 @@ if (is_android) {
- "shape_detection/android/javatests/src/org/chromium/shape_detection/TextDetectionImplTest.java",
- ]
- deps = [
- - "$google_play_services_package:google_play_services_base_java",
- - "$google_play_services_package:google_play_services_basement_java",
- - "$google_play_services_package:google_play_services_vision_common_java",
- - "$google_play_services_package:google_play_services_vision_java",
- "//base:base_java",
- "//base:base_java_test_support",
- "//mojo/public/java:base_java",
- diff --git a/services/device/geolocation/BUILD.gn b/services/device/geolocation/BUILD.gn
- --- a/services/device/geolocation/BUILD.gn
- +++ b/services/device/geolocation/BUILD.gn
- @@ -163,9 +163,6 @@ if (is_android) {
-
- deps = [
- ":geolocation_jni_headers",
- - "$google_play_services_package:google_play_services_base_java",
- - "$google_play_services_package:google_play_services_basement_java",
- - "$google_play_services_package:google_play_services_location_java",
- "//base:base_java",
- "//components/location/android:location_java",
- "//services/device/public/java:geolocation_java",
- diff --git a/services/shape_detection/BUILD.gn b/services/shape_detection/BUILD.gn
- --- a/services/shape_detection/BUILD.gn
- +++ b/services/shape_detection/BUILD.gn
- @@ -107,10 +107,6 @@ if (is_android) {
- ]
-
- deps = [
- - "$google_play_services_package:google_play_services_base_java",
- - "$google_play_services_package:google_play_services_basement_java",
- - "$google_play_services_package:google_play_services_vision_common_java",
- - "$google_play_services_package:google_play_services_vision_java",
- "//base:base_java",
- "//mojo/public/java:base_java",
- "//mojo/public/java:bindings_java",
- diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD.gn
- --- a/third_party/android_deps/BUILD.gn
- +++ b/third_party/android_deps/BUILD.gn
- @@ -68,7 +68,6 @@ if (!limit_android_deps) {
- ":org_robolectric_shadowapi_java",
- ":org_robolectric_shadows_framework_java",
- ":org_robolectric_shadows_multidex_java",
- - ":org_robolectric_shadows_playservices_java",
- ":org_robolectric_utils_java",
- ":org_robolectric_utils_reflector_java",
-
- @@ -93,7 +92,7 @@ if (!limit_android_deps) {
-
- android_library("chromium_play_services_availability_java") {
- sources = [ "util/org/chromium/gms/ChromiumPlayServicesAvailability.java" ]
- - deps = [ "$google_play_services_package:google_play_services_base_java" ]
- + deps = [ ]
- }
-
- android_library("chromium_play_services_availability_shadows_java") {
- @@ -1030,210 +1029,6 @@ if (!limit_android_deps) {
- resource_overlay = true
- }
-
- - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- - android_aar_prebuilt("google_play_services_auth_java") {
- - aar_path = "libs/com_google_android_gms_play_services_auth/play-services-auth-17.0.0.aar"
- - info_path = "libs/com_google_android_gms_play_services_auth/com_google_android_gms_play_services_auth.info"
- - deps = [
- - ":google_play_services_auth_api_phone_java",
- - ":google_play_services_auth_base_java",
- - ":google_play_services_base_java",
- - ":google_play_services_basement_java",
- - ":google_play_services_tasks_java",
- - "//third_party/androidx:androidx_fragment_fragment_java",
- - "//third_party/androidx:androidx_loader_loader_java",
- - ]
- - }
- -
- - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- - android_aar_prebuilt("google_play_services_auth_api_phone_java") {
- - aar_path = "libs/com_google_android_gms_play_services_auth_api_phone/play-services-auth-api-phone-17.5.0.aar"
- - info_path = "libs/com_google_android_gms_play_services_auth_api_phone/com_google_android_gms_play_services_auth_api_phone.info"
- - deps = [
- - ":google_play_services_base_java",
- - ":google_play_services_basement_java",
- - ":google_play_services_tasks_java",
- - ]
- - }
- -
- - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- - android_aar_prebuilt("google_play_services_auth_base_java") {
- - aar_path = "libs/com_google_android_gms_play_services_auth_base/play-services-auth-base-17.0.0.aar"
- - info_path = "libs/com_google_android_gms_play_services_auth_base/com_google_android_gms_play_services_auth_base.info"
- - deps = [
- - ":google_play_services_base_java",
- - ":google_play_services_basement_java",
- - ":google_play_services_tasks_java",
- - "//third_party/androidx:androidx_collection_collection_java",
- - ]
- - }
- -
- - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- - android_aar_prebuilt("google_play_services_base_java") {
- - aar_path = "libs/com_google_android_gms_play_services_base/play-services-base-17.5.0.aar"
- - info_path = "libs/com_google_android_gms_play_services_base/com_google_android_gms_play_services_base.info"
- - deps = [
- - ":google_play_services_basement_java",
- - ":google_play_services_tasks_java",
- - "//third_party/androidx:androidx_collection_collection_java",
- - "//third_party/androidx:androidx_core_core_java",
- - "//third_party/androidx:androidx_fragment_fragment_java",
- - ]
- - bytecode_rewriter_target =
- - "//build/android/bytecode:fragment_activity_replacer"
- - }
- -
- - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- - android_aar_prebuilt("google_play_services_basement_java") {
- - aar_path = "libs/com_google_android_gms_play_services_basement/play-services-basement-17.5.0.aar"
- - info_path = "libs/com_google_android_gms_play_services_basement/com_google_android_gms_play_services_basement.info"
- - deps = [
- - "//third_party/androidx:androidx_collection_collection_java",
- - "//third_party/androidx:androidx_core_core_java",
- - "//third_party/androidx:androidx_fragment_fragment_java",
- - ]
- -
- - jar_excluded_patterns = []
- - if (!enable_java_asserts) {
- - # Omit the file since we use our own copy.
- - jar_excluded_patterns +=
- - [ "com/google/android/gms/common/internal/Preconditions.class" ]
- - deps += [ "//third_party/android_deps/local_modifications/preconditions:gms_stub_preconditions_java" ]
- - }
- -
- - # https://crbug.com/989505
- - jar_excluded_patterns += [ "META-INF/proguard/*" ]
- - input_jars_paths = [ "$android_sdk/optional/org.apache.http.legacy.jar" ]
- - bytecode_rewriter_target =
- - "//build/android/bytecode:fragment_activity_replacer"
- - }
- -
- - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- - android_aar_prebuilt("google_play_services_cast_java") {
- - aar_path = "libs/com_google_android_gms_play_services_cast/play-services-cast-17.0.0.aar"
- - info_path = "libs/com_google_android_gms_play_services_cast/com_google_android_gms_play_services_cast.info"
- - deps = [
- - ":google_play_services_base_java",
- - ":google_play_services_basement_java",
- - ":google_play_services_flags_java",
- - ":google_play_services_tasks_java",
- - "//third_party/androidx:androidx_core_core_java",
- - "//third_party/androidx:androidx_mediarouter_mediarouter_java",
- - ]
- - }
- -
- - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- - android_aar_prebuilt("google_play_services_cast_framework_java") {
- - aar_path = "libs/com_google_android_gms_play_services_cast_framework/play-services-cast-framework-17.0.0.aar"
- - info_path = "libs/com_google_android_gms_play_services_cast_framework/com_google_android_gms_play_services_cast_framework.info"
- - deps = [
- - ":google_play_services_base_java",
- - ":google_play_services_basement_java",
- - ":google_play_services_cast_java",
- - "//third_party/androidx:androidx_appcompat_appcompat_java",
- - "//third_party/androidx:androidx_collection_collection_java",
- - "//third_party/androidx:androidx_core_core_java",
- - "//third_party/androidx:androidx_fragment_fragment_java",
- - "//third_party/androidx:androidx_media_media_java",
- - "//third_party/androidx:androidx_mediarouter_mediarouter_java",
- - "//third_party/androidx:androidx_recyclerview_recyclerview_java",
- - ]
- - }
- -
- - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- - android_aar_prebuilt("google_play_services_fido_java") {
- - aar_path = "libs/com_google_android_gms_play_services_fido/play-services-fido-19.0.0-beta.aar"
- - info_path = "libs/com_google_android_gms_play_services_fido/com_google_android_gms_play_services_fido.info"
- - deps = [
- - ":google_play_services_base_java",
- - ":google_play_services_basement_java",
- - ":google_play_services_tasks_java",
- - ]
- - }
- -
- - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- - android_aar_prebuilt("google_play_services_gcm_java") {
- - aar_path = "libs/com_google_android_gms_play_services_gcm/play-services-gcm-17.0.0.aar"
- - info_path = "libs/com_google_android_gms_play_services_gcm/com_google_android_gms_play_services_gcm.info"
- - deps = [
- - ":google_play_services_base_java",
- - ":google_play_services_basement_java",
- - ":google_play_services_iid_java",
- - ":google_play_services_stats_java",
- - "//third_party/androidx:androidx_collection_collection_java",
- - "//third_party/androidx:androidx_core_core_java",
- - "//third_party/androidx:androidx_legacy_legacy_support_core_utils_java",
- - ]
- - }
- -
- - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- - android_aar_prebuilt("google_play_services_iid_java") {
- - aar_path = "libs/com_google_android_gms_play_services_iid/play-services-iid-17.0.0.aar"
- - info_path = "libs/com_google_android_gms_play_services_iid/com_google_android_gms_play_services_iid.info"
- - deps = [
- - ":google_play_services_base_java",
- - ":google_play_services_basement_java",
- - ":google_play_services_stats_java",
- - ":google_play_services_tasks_java",
- - "//third_party/androidx:androidx_collection_collection_java",
- - "//third_party/androidx:androidx_core_core_java",
- - ]
- - }
- -
- - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- - android_aar_prebuilt("google_play_services_instantapps_java") {
- - aar_path = "libs/com_google_android_gms_play_services_instantapps/play-services-instantapps-17.0.0.aar"
- - info_path = "libs/com_google_android_gms_play_services_instantapps/com_google_android_gms_play_services_instantapps.info"
- - deps = [
- - ":google_play_services_base_java",
- - ":google_play_services_basement_java",
- - ":google_play_services_tasks_java",
- - ]
- - }
- -
- - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- - android_aar_prebuilt("google_play_services_location_java") {
- - aar_path = "libs/com_google_android_gms_play_services_location/play-services-location-17.0.0.aar"
- - info_path = "libs/com_google_android_gms_play_services_location/com_google_android_gms_play_services_location.info"
- - deps = [
- - ":google_play_services_base_java",
- - ":google_play_services_basement_java",
- - ":google_play_services_places_placereport_java",
- - ":google_play_services_tasks_java",
- - ]
- - }
- -
- - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- - android_aar_prebuilt("google_play_services_tasks_java") {
- - aar_path = "libs/com_google_android_gms_play_services_tasks/play-services-tasks-17.2.0.aar"
- - info_path = "libs/com_google_android_gms_play_services_tasks/com_google_android_gms_play_services_tasks.info"
- - deps = [ ":google_play_services_basement_java" ]
- - }
- -
- - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- - android_aar_prebuilt("google_play_services_vision_java") {
- - aar_path = "libs/com_google_android_gms_play_services_vision/play-services-vision-18.0.0.aar"
- - info_path = "libs/com_google_android_gms_play_services_vision/com_google_android_gms_play_services_vision.info"
- - deps = [
- - ":google_play_services_base_java",
- - ":google_play_services_basement_java",
- - ":google_play_services_vision_common_java",
- - ]
- - }
- -
- - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- - android_aar_prebuilt("google_play_services_vision_common_java") {
- - aar_path = "libs/com_google_android_gms_play_services_vision_common/play-services-vision-common-18.0.0.aar"
- - info_path = "libs/com_google_android_gms_play_services_vision_common/com_google_android_gms_play_services_vision_common.info"
- - deps = [
- - ":google_play_services_base_java",
- - ":google_play_services_basement_java",
- - ":google_play_services_clearcut_java",
- - ":google_play_services_flags_java",
- - ":google_play_services_phenotype_java",
- - ]
- - }
- -
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- android_aar_prebuilt("com_google_android_material_material_java") {
- aar_path =
- @@ -1267,60 +1062,6 @@ if (!limit_android_deps) {
- ignore_proguard_configs = true
- }
-
- - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- - android_aar_prebuilt("com_google_android_play_core_java") {
- - aar_path = "libs/com_google_android_play_core/core-1.10.0.aar"
- - info_path =
- - "libs/com_google_android_play_core/com_google_android_play_core.info"
- - }
- -
- - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- - android_aar_prebuilt("google_firebase_firebase_iid_java") {
- - aar_path = "libs/com_google_firebase_firebase_iid/firebase-iid-21.0.1.aar"
- - info_path = "libs/com_google_firebase_firebase_iid/com_google_firebase_firebase_iid.info"
- - deps = [
- - ":google_firebase_firebase_common_java",
- - ":google_firebase_firebase_components_java",
- - ":google_firebase_firebase_iid_interop_java",
- - ":google_firebase_firebase_installations_interop_java",
- - ":google_firebase_firebase_installations_java",
- - ":google_play_services_basement_java",
- - ":google_play_services_cloud_messaging_java",
- - ":google_play_services_stats_java",
- - ":google_play_services_tasks_java",
- - "//third_party/androidx:androidx_collection_collection_java",
- - "//third_party/androidx:androidx_core_core_java",
- - "//third_party/androidx:androidx_legacy_legacy_support_core_utils_java",
- - ]
- - }
- -
- - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- - android_aar_prebuilt("google_firebase_firebase_messaging_java") {
- - aar_path = "libs/com_google_firebase_firebase_messaging/firebase-messaging-21.0.1.aar"
- - info_path = "libs/com_google_firebase_firebase_messaging/com_google_firebase_firebase_messaging.info"
- - deps = [
- - ":google_android_datatransport_transport_api_java",
- - ":google_firebase_firebase_common_java",
- - ":google_firebase_firebase_components_java",
- - ":google_firebase_firebase_encoders_java",
- - ":google_firebase_firebase_encoders_json_java",
- - ":google_firebase_firebase_iid_java",
- - ":google_firebase_firebase_installations_interop_java",
- - ":google_firebase_firebase_installations_java",
- - ":google_firebase_firebase_measurement_connector_java",
- - ":google_play_services_basement_java",
- - ":google_play_services_cloud_messaging_java",
- - ":google_play_services_stats_java",
- - ":google_play_services_tasks_java",
- - "//third_party/androidx:androidx_collection_collection_java",
- - "//third_party/androidx:androidx_core_core_java",
- - ]
- -
- - # We removed the datatransport dependency to reduce binary size.
- - # The library works without it as it's only used for logging.
- - enable_bytecode_checks = false
- - }
- -
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- java_prebuilt("com_google_guava_guava_android_java") {
- jar_path = "libs/com_google_guava_guava_android/guava-31.0-android.jar"
- @@ -1458,19 +1199,6 @@ if (!limit_android_deps) {
- bypass_platform_checks = true
- }
-
- - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- - java_prebuilt("org_robolectric_shadows_playservices_java") {
- - jar_path = "libs/org_robolectric_shadows_playservices/shadows-playservices-4.3.1.jar"
- - output_name = "org_robolectric_shadows_playservices"
- - enable_bytecode_checks = false
- - testonly = true
- - deps = [
- - ":com_google_guava_guava_java",
- - ":org_robolectric_annotations_java",
- - ]
- - bypass_platform_checks = true
- - }
- -
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- java_prebuilt("org_robolectric_utils_java") {
- jar_path = "libs/org_robolectric_utils/utils-4.3.1.jar"
- @@ -1847,272 +1575,6 @@ if (!limit_android_deps) {
- deps = [ "//third_party/androidx:androidx_annotation_annotation_java" ]
- }
-
- - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- - android_aar_prebuilt("google_play_services_clearcut_java") {
- - aar_path = "libs/com_google_android_gms_play_services_clearcut/play-services-clearcut-17.0.0.aar"
- - info_path = "libs/com_google_android_gms_play_services_clearcut/com_google_android_gms_play_services_clearcut.info"
- -
- - # To remove visibility constraint, add this dependency to
- - # //third_party/android_deps/build.gradle.
- - visibility = [
- - ":*",
- - "//third_party/androidx:*",
- - ]
- - deps = [
- - ":google_play_services_base_java",
- - ":google_play_services_basement_java",
- - ":google_play_services_phenotype_java",
- - ":google_play_services_tasks_java",
- - "//third_party/androidx:androidx_core_core_java",
- - ]
- - }
- -
- - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- - android_aar_prebuilt("google_play_services_cloud_messaging_java") {
- - aar_path = "libs/com_google_android_gms_play_services_cloud_messaging/play-services-cloud-messaging-16.0.0.aar"
- - info_path = "libs/com_google_android_gms_play_services_cloud_messaging/com_google_android_gms_play_services_cloud_messaging.info"
- -
- - # To remove visibility constraint, add this dependency to
- - # //third_party/android_deps/build.gradle.
- - visibility = [
- - ":*",
- - "//third_party/androidx:*",
- - ]
- - deps = [
- - ":google_play_services_basement_java",
- - ":google_play_services_tasks_java",
- - ]
- - }
- -
- - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- - android_aar_prebuilt("google_play_services_flags_java") {
- - aar_path = "libs/com_google_android_gms_play_services_flags/play-services-flags-17.0.0.aar"
- - info_path = "libs/com_google_android_gms_play_services_flags/com_google_android_gms_play_services_flags.info"
- -
- - # To remove visibility constraint, add this dependency to
- - # //third_party/android_deps/build.gradle.
- - visibility = [
- - ":*",
- - "//third_party/androidx:*",
- - ]
- - deps = [
- - ":google_play_services_base_java",
- - ":google_play_services_basement_java",
- - ]
- - }
- -
- - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- - android_aar_prebuilt("google_play_services_phenotype_java") {
- - aar_path = "libs/com_google_android_gms_play_services_phenotype/play-services-phenotype-17.0.0.aar"
- - info_path = "libs/com_google_android_gms_play_services_phenotype/com_google_android_gms_play_services_phenotype.info"
- -
- - # To remove visibility constraint, add this dependency to
- - # //third_party/android_deps/build.gradle.
- - visibility = [
- - ":*",
- - "//third_party/androidx:*",
- - ]
- - deps = [
- - ":google_play_services_base_java",
- - ":google_play_services_basement_java",
- - ":google_play_services_tasks_java",
- - "//third_party/androidx:androidx_core_core_java",
- - ]
- - }
- -
- - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- - android_aar_prebuilt("google_play_services_places_placereport_java") {
- - aar_path = "libs/com_google_android_gms_play_services_places_placereport/play-services-places-placereport-17.0.0.aar"
- - info_path = "libs/com_google_android_gms_play_services_places_placereport/com_google_android_gms_play_services_places_placereport.info"
- -
- - # To remove visibility constraint, add this dependency to
- - # //third_party/android_deps/build.gradle.
- - visibility = [
- - ":*",
- - "//third_party/androidx:*",
- - ]
- - deps = [ ":google_play_services_basement_java" ]
- - }
- -
- - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- - android_aar_prebuilt("google_play_services_stats_java") {
- - aar_path = "libs/com_google_android_gms_play_services_stats/play-services-stats-17.0.0.aar"
- - info_path = "libs/com_google_android_gms_play_services_stats/com_google_android_gms_play_services_stats.info"
- -
- - # To remove visibility constraint, add this dependency to
- - # //third_party/android_deps/build.gradle.
- - visibility = [
- - ":*",
- - "//third_party/androidx:*",
- - ]
- - deps = [
- - ":google_play_services_basement_java",
- - "//third_party/androidx:androidx_legacy_legacy_support_core_utils_java",
- - ]
- - }
- -
- - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- - java_prebuilt("google_firebase_firebase_annotations_java") {
- - jar_path = "libs/com_google_firebase_firebase_annotations/firebase-annotations-16.0.0.jar"
- - output_name = "com_google_firebase_firebase_annotations"
- - supports_android = true
- -
- - # To remove visibility constraint, add this dependency to
- - # //third_party/android_deps/build.gradle.
- - visibility = [
- - ":*",
- - "//third_party/androidx:*",
- - ]
- - }
- -
- - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- - android_aar_prebuilt("google_firebase_firebase_common_java") {
- - aar_path =
- - "libs/com_google_firebase_firebase_common/firebase-common-19.5.0.aar"
- - info_path = "libs/com_google_firebase_firebase_common/com_google_firebase_firebase_common.info"
- -
- - # To remove visibility constraint, add this dependency to
- - # //third_party/android_deps/build.gradle.
- - visibility = [
- - ":*",
- - "//third_party/androidx:*",
- - ]
- - deps = [
- - ":google_firebase_firebase_components_java",
- - ":google_play_services_basement_java",
- - ":google_play_services_tasks_java",
- - ]
- -
- - # Ignore missing kotlin.KotlinVersion definition in
- - # com.google.firebase.platforminfo.KotlinDetector.
- - enable_bytecode_checks = false
- - }
- -
- - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- - android_aar_prebuilt("google_firebase_firebase_components_java") {
- - aar_path = "libs/com_google_firebase_firebase_components/firebase-components-16.1.0.aar"
- - info_path = "libs/com_google_firebase_firebase_components/com_google_firebase_firebase_components.info"
- -
- - # To remove visibility constraint, add this dependency to
- - # //third_party/android_deps/build.gradle.
- - visibility = [
- - ":*",
- - "//third_party/androidx:*",
- - ]
- - deps = [
- - ":google_firebase_firebase_annotations_java",
- - "//third_party/androidx:androidx_annotation_annotation_java",
- - ]
- -
- - # Can't find com.google.firebase.components.Component$ComponentType.
- - enable_bytecode_checks = false
- - }
- -
- - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- - java_prebuilt("google_firebase_firebase_encoders_java") {
- - jar_path = "libs/com_google_firebase_firebase_encoders/firebase-encoders-16.1.0.jar"
- - output_name = "com_google_firebase_firebase_encoders"
- - supports_android = true
- -
- - # To remove visibility constraint, add this dependency to
- - # //third_party/android_deps/build.gradle.
- - visibility = [
- - ":*",
- - "//third_party/androidx:*",
- - ]
- - deps = [ "//third_party/androidx:androidx_annotation_annotation_java" ]
- - }
- -
- - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- - android_aar_prebuilt("google_firebase_firebase_encoders_json_java") {
- - aar_path = "libs/com_google_firebase_firebase_encoders_json/firebase-encoders-json-17.1.0.aar"
- - info_path = "libs/com_google_firebase_firebase_encoders_json/com_google_firebase_firebase_encoders_json.info"
- -
- - # To remove visibility constraint, add this dependency to
- - # //third_party/android_deps/build.gradle.
- - visibility = [
- - ":*",
- - "//third_party/androidx:*",
- - ]
- - deps = [
- - ":google_firebase_firebase_encoders_java",
- - "//third_party/androidx:androidx_annotation_annotation_java",
- - ]
- - }
- -
- - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- - android_aar_prebuilt("google_firebase_firebase_iid_interop_java") {
- - aar_path = "libs/com_google_firebase_firebase_iid_interop/firebase-iid-interop-17.0.0.aar"
- - info_path = "libs/com_google_firebase_firebase_iid_interop/com_google_firebase_firebase_iid_interop.info"
- -
- - # To remove visibility constraint, add this dependency to
- - # //third_party/android_deps/build.gradle.
- - visibility = [
- - ":*",
- - "//third_party/androidx:*",
- - ]
- - deps = [
- - ":google_play_services_base_java",
- - ":google_play_services_basement_java",
- - ]
- - }
- -
- - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- - android_aar_prebuilt("google_firebase_firebase_installations_java") {
- - aar_path = "libs/com_google_firebase_firebase_installations/firebase-installations-16.3.5.aar"
- - info_path = "libs/com_google_firebase_firebase_installations/com_google_firebase_firebase_installations.info"
- -
- - # To remove visibility constraint, add this dependency to
- - # //third_party/android_deps/build.gradle.
- - visibility = [
- - ":*",
- - "//third_party/androidx:*",
- - ]
- - deps = [
- - ":google_firebase_firebase_common_java",
- - ":google_firebase_firebase_components_java",
- - ":google_firebase_firebase_installations_interop_java",
- - ":google_play_services_tasks_java",
- - ]
- -
- - # Can't find com.google.auto.value.AutoValue$Builder.
- - enable_bytecode_checks = false
- - }
- -
- - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- - android_aar_prebuilt("google_firebase_firebase_installations_interop_java") {
- - aar_path = "libs/com_google_firebase_firebase_installations_interop/firebase-installations-interop-16.0.1.aar"
- - info_path = "libs/com_google_firebase_firebase_installations_interop/com_google_firebase_firebase_installations_interop.info"
- -
- - # To remove visibility constraint, add this dependency to
- - # //third_party/android_deps/build.gradle.
- - visibility = [
- - ":*",
- - "//third_party/androidx:*",
- - ]
- - deps = [
- - ":google_firebase_firebase_annotations_java",
- - ":google_play_services_tasks_java",
- - ]
- -
- - # Can't find com.google.auto.value.AutoValue$Builder.
- - enable_bytecode_checks = false
- - }
- -
- - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- - android_aar_prebuilt("google_firebase_firebase_measurement_connector_java") {
- - aar_path = "libs/com_google_firebase_firebase_measurement_connector/firebase-measurement-connector-18.0.0.aar"
- - info_path = "libs/com_google_firebase_firebase_measurement_connector/com_google_firebase_firebase_measurement_connector.info"
- -
- - # To remove visibility constraint, add this dependency to
- - # //third_party/android_deps/build.gradle.
- - visibility = [
- - ":*",
- - "//third_party/androidx:*",
- - ]
- - deps = [ ":google_play_services_basement_java" ]
- - }
- -
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- java_prebuilt("com_squareup_javawriter_java") {
- jar_path = "libs/com_squareup_javawriter/javawriter-2.1.1.jar"
- diff --git a/third_party/android_deps/local_modifications/preconditions/javatests/BUILD.gn b/third_party/android_deps/local_modifications/preconditions/javatests/BUILD.gn
- --- a/third_party/android_deps/local_modifications/preconditions/javatests/BUILD.gn
- +++ b/third_party/android_deps/local_modifications/preconditions/javatests/BUILD.gn
- @@ -8,7 +8,6 @@ android_library("javatests") {
- testonly = true
- sources = [ "org/chromium/preconditions/PreconditionsTest.java" ]
- deps = [
- - "$google_play_services_package:google_play_services_basement_java",
- "//base:base_java",
- "//base:base_java_test_support",
- "//base/test:test_support_java",
- diff --git a/third_party/android_deps/util/org/chromium/gms/ChromiumPlayServicesAvailability.java b/third_party/android_deps/util/org/chromium/gms/ChromiumPlayServicesAvailability.java
- --- a/third_party/android_deps/util/org/chromium/gms/ChromiumPlayServicesAvailability.java
- +++ b/third_party/android_deps/util/org/chromium/gms/ChromiumPlayServicesAvailability.java
- @@ -5,9 +5,6 @@ package org.chromium.gms;
-
- import android.content.Context;
-
- -import com.google.android.gms.common.ConnectionResult;
- -import com.google.android.gms.common.GoogleApiAvailability;
- -
- // Refer to go/doubledown-play-services#new-apis for more detail.
- public final class ChromiumPlayServicesAvailability {
- /**
- @@ -30,9 +27,7 @@ public final class ChromiumPlayServicesAvailability {
- * PM/UX.
- */
- public static boolean isGooglePlayServicesAvailable(final Context context) {
- - return GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(
- - context, GMS_VERSION_NUMBER)
- - == ConnectionResult.SUCCESS;
- + return false;
- }
-
- /**
- @@ -50,7 +45,6 @@ public final class ChromiumPlayServicesAvailability {
- * PM/UX.
- */
- public static int getGooglePlayServicesConnectionResult(final Context context) {
- - return GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(
- - context, GMS_VERSION_NUMBER);
- + return 16; // API_UNAVAILABLE
- }
- }
- --
- 2.20.1
|