Commit Graph

8367 Commits

Author SHA1 Message Date
Cody Kesting
4d8ecafb5e Implement INetworkMonitorCallbacks#notifyDataStallSuspected.
INetworkMonitorCallbacks defines notifyDataStallSuspected() for
notifying ConnectivityService of networks encountering a potential data
stall. A new event is introduced for ConnectivityDiagnosticsHandler to
process the notification and invoke the relevant
ConnectivityDiagnosticsCallbacks.

Bug: 143187964
Test: compiles
Test: atest CtsNetTestCases FrameworksNetTests
Change-Id: I70320bdda9855dced31e08e6a0b25329fb5cb535
(cherry picked from commit 6c51dc9de39d7963a6bc6d03eacadf2ba2131e20)
2020-02-05 07:10:47 -08:00
Cody Kesting
1ea6b2ac75 Merge "Implement INetworkMonitorCallbacks#notifyNetworkTestedWithExtras." 2020-02-05 15:01:55 +00:00
Automerger Merge Worker
d34bf3f2ee Merge changes Ic1a5d032,I271e7f4d,I7af37281 am: 775babe0c6 am: f011628969 am: 4ea20ef2f0
Change-Id: Ic56ae1463dc4229e01f60d2c9afcbb7f6337a97d
2020-02-05 01:14:50 +00:00
Automerger Merge Worker
4ea20ef2f0 Merge changes Ic1a5d032,I271e7f4d,I7af37281 am: 775babe0c6 am: f011628969
Change-Id: If59fd7e540dbb2fa49cb10e5193ad3b5e044b39e
2020-02-05 01:03:09 +00:00
Automerger Merge Worker
f011628969 Merge changes Ic1a5d032,I271e7f4d,I7af37281 am: 775babe0c6
Change-Id: Ia1ec0ddbe841536f6525a9b5579603af620dae56
2020-02-05 00:59:17 +00:00
Chalard Jean
775babe0c6 Merge changes Ic1a5d032,I271e7f4d,I7af37281
* changes:
  [NS A39] Simplification
  [NS A38] Fill the initial reassignment
  [NS A37] Don't reassign requests multiple times
2020-02-05 00:53:28 +00:00
Automerger Merge Worker
ae5cf1933c [automerger skipped] Merge "Add separate user consent for Platform VPNs" am: 53bc29df86 am: 1784e620b6 am: 735f90f644 -s ours
am skip reason: Change-Id Ia6f36207d43c3748f938430c2780dcf29e5623f3 with SHA-1 b3e30be7e4 is in history

Change-Id: I7906d933b8e5e0a11d5ac800de9ef2c098323aaf
2020-02-05 00:38:40 +00:00
Automerger Merge Worker
735f90f644 Merge "Add separate user consent for Platform VPNs" am: 53bc29df86 am: 1784e620b6
Change-Id: If2d856c62b77da4bc8ea99335b1e89170f24fbca
2020-02-05 00:24:10 +00:00
Automerger Merge Worker
1784e620b6 Merge "Add separate user consent for Platform VPNs" am: 53bc29df86
Change-Id: I38ceff087e37f6ede6819e706c36ee9129a1cc6b
2020-02-05 00:07:41 +00:00
Benedict Wong
53bc29df86 Merge "Add separate user consent for Platform VPNs" 2020-02-04 23:56:16 +00:00
Cody Kesting
980971150f Implement INetworkMonitorCallbacks#notifyNetworkTestedWithExtras.
INetworkMonitorCallbacks defines notifyNetworkTestedWithExtras() for
notifying ConnectivityService of networks being tested along with a
PersistableBundle of extras. A new event is introduced for
NetworkStateTrackerHandler to notify the ConnectivityDiagnosticsHandler
before continuing with the normal processing for "network tested"
notifications. The event is also used in the
ConnectivityDiagnosticsHandler.

Bug: 143187964
Bug: 147391402
Test: compiles.
Test: atest CtsNetTestCases FrameworksNetTests
Change-Id: Iab29da790c0f5faae68227770bc3a84bbc94f124
(cherry picked from commit c5326407d592490783259a48a8ca653c4ff13122)
2020-02-04 13:55:08 -08:00
Benedict Wong
6458ddff18 Add separate user consent for Platform VPNs
This change adds a new VPN user consent flow (using the same text) for
granting the lesser OP_ACTIVATE_PLATFORM_VPN. A new
PlatformVpnConfirmDialog is created as a subclass to preserve all logic,
but ensure the right appop is granted for the relevant dialog.

Intent extras were considered, but are inherently unsafe, since the
caller may add any extras that they would want.

Bug: 144246835
Test: FrameworksNetTests passing
Change-Id: Ia6f36207d43c3748f938430c2780dcf29e5623f3
Merged-In: Ia6f36207d43c3748f938430c2780dcf29e5623f3
2020-02-04 21:05:36 +00:00
Benedict Wong
f6263953a3 Merge "Add separate user consent for Platform VPNs" 2020-02-04 21:04:01 +00:00
Automerger Merge Worker
91fa2079f3 Merge changes Icb062ffb,I66c4e8f5,I85247411,Id47c19b7,Ib713c4ae, ... am: 0b32981970 am: e8f922bf04 am: ebf43a3221
Change-Id: I213d2cdca4187ed30293dc433cfee9e8af782b6e
2020-02-04 13:48:46 +00:00
Automerger Merge Worker
ebf43a3221 Merge changes Icb062ffb,I66c4e8f5,I85247411,Id47c19b7,Ib713c4ae, ... am: 0b32981970 am: e8f922bf04
Change-Id: Id88e2387eedf611e2347605b97b4ec9031eaada8
2020-02-04 13:41:11 +00:00
Automerger Merge Worker
e8f922bf04 Merge changes Icb062ffb,I66c4e8f5,I85247411,Id47c19b7,Ib713c4ae, ... am: 0b32981970
Change-Id: I6b601f88b8411de9d1a5551d9b9b6c3e329087f4
2020-02-04 13:30:03 +00:00
Chalard Jean
1ade57a05c [NS A39] Simplification
If newNetwork is satisfying this request, it means it is the old
satisfier. Plain and simple.

Test: ConnectivityServiceTest
Change-Id: Ic1a5d032801bac476b1c1f53da6f1c4c6056bff0
2020-02-04 16:49:54 +09:00
Chalard Jean
3b270131c0 [NS A36] Add a test for lost trusted capability
This bug will be drive-by fixed by the next refactoring, so
set up a test to see the difference.

Bug: 113554781
Test: this
Change-Id: Icb062ffbae904d1836a4a16fc5395687c3eda7b6
2020-02-04 16:49:54 +09:00
Chalard Jean
3e5aaf2430 [NS A38] Fill the initial reassignment
This is more expensive for now but it will allow subsequent patches
to read relevant state from the reassignment instead of from the
global state, which will stop the computation of the reassignment
from reading state that is mutated by the same loop. Eventually
this lets us completely split the computation from the side effects.
The ugly parts of this patch will be cleaned up later as a result,
namely in patches [NS B04] and [NS B05].

Test: ConnectivityServiceTest
Change-Id: I271e7f4d4bc81493c1ea212025b7130619592a8a
2020-02-04 16:49:54 +09:00
Chalard Jean
69369aae29 [NS A37] Don't reassign requests multiple times
This is an optimization that skips doing intermediate assignments
of networks to requests that will undergo multiple changes during
the recomputation.
It happens to fix a bug where some of these intermediate states
used to have a visible, transient side effect.

Bug: 113554781
Test: ConnectivityServiceTest
Change-Id: I7af3728152a1cf7571de67f394088a5970ee3c1e
2020-02-04 16:49:54 +09:00
Chalard Jean
af4bcc61b7 [NS A35] Send updated scores to factories at the end.
Test: ConnectivityServiceTests
Change-Id: I66c4e8f52e11bc7e199dd8c12d43b0b136a21f19
2020-02-04 16:49:53 +09:00
Chalard Jean
b0e2af767e [NS A34] Still more simplification
Test: ConnectivityServiceTest
Change-Id: I85247411eb8fdfb3eae0e7c309ea9537e41cfb80
2020-02-04 16:49:53 +09:00
Chalard Jean
337a8035ef [NS A33] Unify changing the default network
makeDefault() will be called in rematchAllNetworksAndRequests
in all cases and its first job is to set mDefaultNetwork.

The old code checks if the currently processing request is
the default request and assigns mDefaultNetwork if it is,
doing it earlier than in the new code iff the new default is
not null. However there is no good reason to assign this
member earlier in the non-null case than in the null case,
it's simpler if the same code path is used in both cases.
mDefaultNetwork is also not used between the old place where
it was set and the new place where it is set, so changing
the timing of the assignment has no observable side effects.

Test: ConnectivityServiceTest
Change-Id: Id47c19b73650ba66bff73b07edb8fd95c707e699
2020-02-04 16:49:52 +09:00
Chalard Jean
744fd0c773 [NS A32] More simplification
Test: FrameworksNetTests
Change-Id: Ib713c4ae0100c8c242bbba87b2881311c5761869
2020-02-04 16:29:01 +09:00
Chalard Jean
a2d0a47e04 [NS A31] Simplification
The condition this is testing for cannot actually be false.

The only place where the code writes a null value into this
map is at the end of computeRequestReassignmentForNetwork :
reassignedRequests.put(nri, null).
This proves the code the if() block, which proves that
newNetwork.isSatisfyingRequest(nri.request.requestId) is true.

By definition newNetwork.isSatisfyingRequest(nri) implies that
nri.mSatifier == newNetwork, which proves that
previousSatisfier == newNetwork whenever newSatisfier is null.

Fixes: 146482072
Test: FrameworksNetTests
Change-Id: Ifd6faedce7d49757b82a5f341076ab208b0ccfcb
2020-02-04 16:28:20 +09:00
Chalard Jean
387e7f5ee0 [NS A30] Note linger out of the rematch loop
This doesn't have to be tested every time.

Test: FrameworksNetTests
Change-Id: Ic5702c8b4bd096860fe55c4d9e4c465703561911
2020-02-04 16:24:23 +09:00
Chalard Jean
c1da930d29 [NS A29] Call LOST callbacks at the end of the rematch.
Bug: 113554781
Test: FrameworksNetTests
Change-Id: I72dd210a956545c75b3c702338af779e119d70e7
2020-02-04 16:24:23 +09:00
Chalard Jean
3952fb150e [NS A28] Move setting the default network out of the rematch loop.
Bug: 113554781
Test: FrameworkNetTests NetworkStackTests
Change-Id: I02d85f17bf0ea37ae173f306f5a47d7551773c3a
2020-02-04 16:23:58 +09:00
Benedict Wong
b3e30be7e4 Add separate user consent for Platform VPNs
This change adds a new VPN user consent flow (using the same text) for
granting the lesser OP_ACTIVATE_PLATFORM_VPN. A new
PlatformVpnConfirmDialog is created as a subclass to preserve all logic,
but ensure the right appop is granted for the relevant dialog.

Intent extras were considered, but are inherently unsafe, since the
caller may add any extras that they would want.

Bug: 144246835
Test: FrameworksNetTests passing
Change-Id: Ia6f36207d43c3748f938430c2780dcf29e5623f3
2020-02-03 19:05:23 -08:00
Automerger Merge Worker
515d47543a Merge changes I446a8595,I68d2293f am: 0561b934dc am: 54e08a83e9 am: 436df92fee
Change-Id: I99a531ab5ed8645d3eb3d15a3cd4ed6ef30c89ab
2020-02-03 22:53:15 +00:00
Automerger Merge Worker
436df92fee Merge changes I446a8595,I68d2293f am: 0561b934dc am: 54e08a83e9
Change-Id: I27a4344fa2e3b91fe31e02bf41f20a2bc11c2ff6
2020-02-03 22:41:20 +00:00
Automerger Merge Worker
54e08a83e9 Merge changes I446a8595,I68d2293f am: 0561b934dc
Change-Id: I8422163249ca637ab71b71777feded76e3225c2e
2020-02-03 22:34:25 +00:00
Benedict Wong
0561b934dc Merge changes I446a8595,I68d2293f
* changes:
  Add VpnManager calls to ConnectivityService
  Add basic logic for profile-based VPNs
2020-02-03 22:31:37 +00:00
Automerger Merge Worker
d9a2a9289d Merge changes If8c8d1f3,I3a804a9f am: 069d78ccce am: b42c3d86b5 am: f53b30d1f2
Change-Id: I69e6b412f150419baa9dc1860d190d85bfdfc47d
2020-02-03 15:18:41 +00:00
Automerger Merge Worker
c2832f2603 Merge "Update javadocs for ConnectivityDiagnosticsManager." am: 162a762c57 am: 968afd99fb am: 042566cf20
Change-Id: Icd75afae770c93ac6fdb611e220d8723c07771ac
2020-02-03 15:18:32 +00:00
Automerger Merge Worker
a672f64245 Merge "Add callback registration in ConnectivityService." am: 49c3b00b1a am: bbb915b13f am: e2422892c6
Change-Id: I596d4788f6d35f1adf110d8edd390f5632b4dc06
2020-02-03 15:18:18 +00:00
Automerger Merge Worker
f53b30d1f2 Merge changes If8c8d1f3,I3a804a9f am: 069d78ccce am: b42c3d86b5
Change-Id: I1a0085ad35ca95cab4086d4779ee15322094c2f6
2020-02-03 15:12:20 +00:00
Automerger Merge Worker
042566cf20 Merge "Update javadocs for ConnectivityDiagnosticsManager." am: 162a762c57 am: 968afd99fb
Change-Id: Ie1ee81c6050df22b6e3cf9b752e34a1b01430634
2020-02-03 15:12:13 +00:00
Automerger Merge Worker
e2422892c6 Merge "Add callback registration in ConnectivityService." am: 49c3b00b1a am: bbb915b13f
Change-Id: I88ab7b749860a0f94857743ba759bb47270857f6
2020-02-03 15:12:02 +00:00
Automerger Merge Worker
b42c3d86b5 Merge changes If8c8d1f3,I3a804a9f am: 069d78ccce
Change-Id: I6139500edf9c93d2995b822b19e9e9aaf3beaa7c
2020-02-03 15:07:46 +00:00
Automerger Merge Worker
968afd99fb Merge "Update javadocs for ConnectivityDiagnosticsManager." am: 162a762c57
Change-Id: Ia393d1ee102ae7dfc4a7b5698b5f3b4882605e7c
2020-02-03 15:07:20 +00:00
Automerger Merge Worker
bbb915b13f Merge "Add callback registration in ConnectivityService." am: 49c3b00b1a
Change-Id: Idf067ebd9299ca036965b7c7f82c13a6f659a821
2020-02-03 15:06:50 +00:00
Treehugger Robot
069d78ccce Merge changes If8c8d1f3,I3a804a9f
* changes:
  [NS A27] Remove useless logs and a useless var
  [NS A26] Move available callbacks out of the rematch computation
2020-02-03 15:06:19 +00:00
Cody Kesting
162a762c57 Merge "Update javadocs for ConnectivityDiagnosticsManager." 2020-02-03 14:56:13 +00:00
Cody Kesting
49c3b00b1a Merge "Add callback registration in ConnectivityService." 2020-02-03 14:55:54 +00:00
Cody Kesting
6d8560dcce Update javadocs for ConnectivityDiagnosticsManager.
ConnectivityDiagnosticsManager comments for
registerConnectivityDiagnosticsCallback and
unregisterConnectivityDiagnosticsCallback are updated to reflect several
changes.

For register calls, any app will be able to register callbacks, but only
permissioned applications will have their callbacks invoked (and only
for networks managed by the application). Additionally, only the
registering app (uid) will be able to unregister a callback once
registered.

Bug: 143187964
Test: docs change only. compiles.
Change-Id: Ie7ae86a1afccb22d6c84027dbac49d7b8e431e8c
2020-01-31 09:49:25 -08:00
Cody Kesting
0ffbf92e0c Add callback registration in ConnectivityService.
ConnectivityDiagnosticsManager will send callbacks to
ConnectivityService for registering and unregistering them with the
system. ConnectivityService needs to do the processing for persisting
(and deleting) these callbacks on the ConnectivityService Thread, so
messages are sent to the Connectivity Diagnostics  Handler, which runs
on the ConnectivityService Thread.

Bug: 146444622
Bug: 143187964
Bug: 147848028
Test: compiles
Test: atest FrameworksNetTests
Change-Id: Ia5c8f90a60c050504e8676de9564a7607a9b03bc
2020-01-31 09:42:05 -08:00
Automerger Merge Worker
005077ff2c [automerger skipped] Merge changes Iaa6f0d65,I68a16b64 am: 757efa5551 am: f3ac65de98 am: 5159f2ac7d -s ours
am skip reason: Change-Id Iaa6f0d65cab556c24b0a9010427de8e6a02836c1 with SHA-1 95956ba7a7 is in history

Change-Id: I306a831e47c08ac37de93285763500b73a4624ec
2020-01-31 16:47:44 +00:00
Automerger Merge Worker
5159f2ac7d Merge changes Iaa6f0d65,I68a16b64 am: 757efa5551 am: f3ac65de98
Change-Id: I7e66156659fb88110d2a7f027d488e15499caee2
2020-01-31 16:43:27 +00:00
Automerger Merge Worker
f3ac65de98 Merge changes Iaa6f0d65,I68a16b64 am: 757efa5551
Change-Id: I687e59f2c25d5c5e2cb5b1574dbcf6f32ec8c817
2020-01-31 16:37:49 +00:00