Commit Graph

1274 Commits

Author SHA1 Message Date
Tony Mak
81f2dff176 Show notification for always-on app VPN
This is the same notification as the one shown during legacy lockdown
mode, sans the 'reset' button.

The notification is only shown during times when VPN has not yet
established or has failed, for example during boot or after a crash.

Bug: 29123115
Change-Id: If0e2eb4f8fb220a21d6d462363a05869e27c7b6e
2016-10-06 19:58:04 +00:00
Winson
ebc8e3fc17 Defaulting wallpaper offset to edge of the screen. am: 4b4ba90d66 am: 18faeaa5fa
am: 89218fdd83

Change-Id: I86d0616df8f938b1b80651be83802796a24250b9
2016-07-31 02:12:44 +00:00
Hugo Benichi
89218fdd83 IpConnectivityMetrics: no metrics upload in tests am: 638621a1f9
am: ae048d8363

Change-Id: I4171f72e27f39f2c10e4607b84934676337c1b4e
2016-07-29 09:34:35 +00:00
Hugo Benichi
638621a1f9 IpConnectivityMetrics: no metrics upload in tests
Similarly to ApfTest, this patch changes ConnectivityServiceTest to use
a mock object instead of IpConnectivityLog so that running
ConnectivityServiceTest does not generate android.net.metrics events.

Bug: 30450301
Change-Id: Ibc0479f381f26e60baefbae15407c62aecbf6666
2016-07-29 16:58:35 +09:00
Hugo Benichi
61f1063650 resolve merge conflicts of c489935 to nyc-mr1-dev-plus-aosp
am: 8850477c85

Change-Id: Ia0a4544784592ac857e5bd652fee47eec621f3a0
2016-07-26 15:18:51 +00:00
Hugo Benichi
8850477c85 resolve merge conflicts of c489935 to nyc-mr1-dev-plus-aosp
Change-Id: Ib1c01241fece36f660d27f3450ba8059b3b2809f
2016-07-26 13:08:14 +09:00
Hugo Benichi
c4899354b0 Add CONNECTIVITY_USE_RESTRICTED_NETWORKS permission
This patch creates a new permission used by ConnectivityService to give
access to restricted networks without the NET_CAPABILITY_NOT_RESTRICTED
capability bit on.

Bug: 24497316
Change-Id: I5b6c8a9ef14395b2f1ab26cb17b24d7876ec79f1
2016-07-25 10:24:42 +09:00
Lorenzo Colitti
ce5631a865 Merge \"Merge \\"Add an isListen method to NetworkRequests.\\" into nyc-mr1-dev am: b5239329b1\" into nyc-mr1-dev-plus-aosp
am: 17450e41b3

Change-Id: Ic71a5722ee877de73e7ffd340a5ffb84a2d4910d
2016-07-18 15:15:33 +00:00
Lorenzo Colitti
56b3b700f2 Merge \"Add an isListen method to NetworkRequests.\" into nyc-mr1-dev
am: b5239329b1

Change-Id: Ib712c3c7b44d3a623d5f5facf0c7f6844c3ebb82
2016-07-18 15:08:54 +00:00
Lorenzo Colitti
6737b64741 Add an isListen method to NetworkRequests.
This allows simplification of the ConnectivityService code.

Bug: 23113288
Change-Id: I124544b99c5a920124e9a3d31cda8c6d2abc21fd
2016-07-18 18:42:26 +09:00
Hugo Benichi
7fe197128e ConnectivityService dump: add apps blocked logs am: 7b3bf37ac3
am: 6fef6d72f2

Change-Id: If0842e480b448cbbcb9fff3a03e6e9d84a385c89
2016-07-12 04:44:21 +00:00
Hugo Benichi
6fef6d72f2 ConnectivityService dump: add apps blocked logs
am: 7b3bf37ac3

Change-Id: I50c87dc35ef219844a5337768ec2526aeff4f1ca
2016-07-12 04:39:05 +00:00
Hugo Benichi
7b3bf37ac3 ConnectivityService dump: add apps blocked logs
This patch adds NetworkInfo BLOCKED/UNBLOCKED status of apps to
ConnectivityService's dump logs.

The BLOCKED or UNBLOCKED status of an app is logged with the app uid
when the app calls getActiveNetworkInfo().

Examples:
mNetworkInfoBlockingLogs (most recent first):
  07-11 11:04:43.139 - BLOCKED 10060
  07-11 11:04:39.056 - UNBLOCKED 10061
  07-11 11:04:38.851 - BLOCKED 10061

Bug: 29981766
Change-Id: I6e2fde446702b92b0964ed894409b5d733d8f8a7
2016-07-12 11:39:48 +09:00
Erik Kline
1933d46565 Support requesting async LinkProperties/NetworkCapabilities updates am: aec3f5ef5b
am: 95d433f07a

Change-Id: If177966a19c830a106ce689c7e07a7835bb2c1a1
2016-07-12 01:46:09 +00:00
Erik Kline
95d433f07a Support requesting async LinkProperties/NetworkCapabilities updates
am: aec3f5ef5b

Change-Id: Icc048323debbbe641941c5c0d993f4c9782c5d3e
2016-07-11 11:01:42 +00:00
Erik Kline
aec3f5ef5b Support requesting async LinkProperties/NetworkCapabilities updates
Bug: 9580643
Change-Id: I1d7ba7645c20d7d53f6eef777dfce43727940f13
2016-07-11 19:17:41 +09:00
Lorenzo Colitti
3f0679a267 Merge \\"Rewrite lingering.\\" into nyc-mr1-dev am: 49b4492b33
am: d1cf630685

Change-Id: Ieff4a63ad1d5959760e69f68e832ca256ec2c2ae
2016-07-07 11:06:53 +00:00
Lorenzo Colitti
d1cf630685 Merge \"Rewrite lingering.\" into nyc-mr1-dev
am: 49b4492b33

Change-Id: I62d69f20101318b42d4d333b104dcf4f64dc1725
2016-07-07 11:01:19 +00:00
Lorenzo Colitti
bfb539e90a Merge \\"Prepare to delete useless loop in handleReleaseNetworkRequest.\\" into nyc-mr1-dev am: 540ee120e5
am: bebd1cf7fe

Change-Id: I68c75cd5980075bdb2586ba5967fcb6ce20dc158
2016-07-07 07:49:13 +00:00
Lorenzo Colitti
bebd1cf7fe Merge \"Prepare to delete useless loop in handleReleaseNetworkRequest.\" into nyc-mr1-dev
am: 540ee120e5

Change-Id: I8cd95575e7758ee94417ec15e407f396434f4c04
2016-07-07 07:40:46 +00:00
Lorenzo Colitti
70c70fa7e2 Rewrite lingering.
The two major changes here are:

- Move lingering out of NetworkMonitor. The fact that lingering
  is currently its own state in NetworkMonitor complicates the
  logic there: while a network is lingering it cannot be in any
  other state, we have to take care not to leave LingeringState
  for the wrong reason, etc.
- Instead of keeping a single per-network boolean to indicate
  whether a network is lingered or not, keep a linger timer for
  every request. This allows us to fix various corner-case bugs
  in lingering.

The changes in behaviour compared to the current code can be seen
in the unit test changes. Specifically:

1. Bug fix: when a network is lingered, and a request is added
   and removed to it, the existing code tears the network down
   immediately. The new code just sends another CALLBACK_LOSING
   and resumes lingering with the original timeout.
2. Bug fix: if cell is unvalidated and wifi comes up and
   validates before cell does (as might happen on boot), the
   existing code immediately tears down cell. The new code
   lingers cell, which is correct because unvalidated cell was
   the default network, so an app might have been using it.
3. Correctness improvement: always send CALLBACK_AVAILABLE for
   the new network before sending CALLBACK_LOSING. This was not
   really an issue in practice, because the usual flow is:
    - Network A is the default.
    - Network B connects, CALLBACK_AVAILABLE.
    - Network B validates, CALLBACK_LOSING.

Bug: 23113288
Change-Id: I2f1e779ff6eb869e62921a95aa9d356f380cf30a
2016-07-07 16:18:57 +09:00
Lorenzo Colitti
daeb6109e1 Prepare to delete useless loop in handleReleaseNetworkRequest.
As explained in the TODO, the loop serves no purpose since only
one network can be satisfying a given request at a time.

Instead of looping, look up the nai in the mNetworkForRequestId
array that exists for this purpose.

Keep the loop around with an Slog.wtf statement on it so we can
see if we ever hit it, and add a TODO to delete it if we don't.

Bug: 23113288
Change-Id: I173de4bd45c5a4169b7a062a981f2ecccaa44143
2016-07-07 14:50:12 +09:00
Lorenzo Colitti
6b30f55b56 Merge \\"Add test coverage for a bug in the lingering code.\\" into nyc-mr1-dev am: b129ee9c68
am: a07fd12db4

Change-Id: I19439c95167bf215edc67068fb5a6859ab845814
2016-07-05 03:54:35 +00:00
Lorenzo Colitti
a07fd12db4 Merge \"Add test coverage for a bug in the lingering code.\" into nyc-mr1-dev
am: b129ee9c68

Change-Id: Ia09ba1e0a6e3ba9543a92ccf7f03f7a898f26fb1
2016-07-05 03:44:29 +00:00
TreeHugger Robot
b129ee9c68 Merge "Add test coverage for a bug in the lingering code." into nyc-mr1-dev 2016-07-05 03:35:40 +00:00
Lorenzo Colitti
6718ec8b5f Merge \\"Unbreak unregisterNetworkCallback.\\" into nyc-mr1-dev am: 04401f0e0f
am: 3e1d024327

Change-Id: I7861e8ff7b8528d8468f8217e13398f78be50de5
2016-07-05 02:28:07 +00:00
Lorenzo Colitti
3e1d024327 Merge \"Unbreak unregisterNetworkCallback.\" into nyc-mr1-dev
am: 04401f0e0f

Change-Id: I35ee16554e17c503b1f5628629c2c0a48d85d399
2016-07-05 02:19:18 +00:00
Lorenzo Colitti
04401f0e0f Merge "Unbreak unregisterNetworkCallback." into nyc-mr1-dev 2016-07-05 02:07:06 +00:00
Lorenzo Colitti
cef9c490ad Unbreak unregisterNetworkCallback.
http://ag/1194313 broke unregisterNetworkCallback because the
system does not parcel the type of the request back to the app.
So when the app calls unregisterNetworkCallback, the
NetworkRequest that's passed in does not have a type and thus
doesn't match the request in mNetworkRequests.

Fix this by parceling over the type as well.

This was not caught by the unit test because the unit test all
runs in the same process with no parceling.

Bug: 23113288
Change-Id: I58b2ed651b9bf5cbdcca5b25c3ca24db53cffdf1
2016-07-05 01:59:49 +09:00
Lorenzo Colitti
5189468c48 Merge \\"Annotate public methods in ConnectivityService.\\" into nyc-mr1-dev am: ad7755209c
am: aa9dd65e57

Change-Id: I8b0c9ece0d9bfdf8d93628214485c0e059731a6a
2016-07-04 16:30:21 +00:00
Lorenzo Colitti
aa9dd65e57 Merge \"Annotate public methods in ConnectivityService.\" into nyc-mr1-dev
am: ad7755209c

Change-Id: I065e2ceb351ea8af4310f6ef11f1af232fa2fc79
2016-07-04 16:21:10 +00:00
Lorenzo Colitti
4a2a5b0b54 Make registerDefaultNetwork work on metered networks. am: 34eda2aa6f
am: 005ce5a697

Change-Id: Ief2f4c0073f87f7a7e7f33c322365dc4e8eefdeb
2016-07-04 16:16:36 +00:00
TreeHugger Robot
ad7755209c Merge "Annotate public methods in ConnectivityService." into nyc-mr1-dev 2016-07-04 16:07:33 +00:00
Lorenzo Colitti
005ce5a697 Make registerDefaultNetwork work on metered networks.
am: 34eda2aa6f

Change-Id: I2d5edc273df22e5c787f227820c1ce956adfe42c
2016-07-04 16:06:51 +00:00
Lorenzo Colitti
34eda2aa6f Make registerDefaultNetwork work on metered networks.
Bug: 29927488
Change-Id: I3b705c2ab0d1493546ffa5185bb5b07d5e25c897
2016-07-04 23:18:12 +09:00
Lorenzo Colitti
2937ac9eae Add test coverage for a bug in the lingering code.
Bug: 23113288
Change-Id: I573ee5908b9d973931234eb7d2db8ea0aaa4b31e
2016-07-04 17:00:27 +09:00
Lorenzo Colitti
10e796c35d Annotate public methods in ConnectivityService.
Ensure every public method is annotated with why it's public.
This can be either an @Override or @VisibleForTesting annotation
or a comment explaining why it's public.

Bug: 29927488
Change-Id: I3582aef7997dc0d723718ca5e3dd115647d22979
2016-07-04 12:58:29 +09:00
Lorenzo Colitti
ef767c8ea8 Merge changes from topic \\'networkrequest_private\\' into nyc-mr1-dev am: 0317e03dc3
am: 6c9dbf4d48

Change-Id: I09231f4f4f3bd13f6b51fe8117eff7d002cf10dd
2016-07-01 15:27:07 +00:00
Lorenzo Colitti
6c9dbf4d48 Merge changes from topic \'networkrequest_private\' into nyc-mr1-dev
am: 0317e03dc3

Change-Id: Ia063c378bd32fdb056c0ecdc0f721d32e9fa49af
2016-07-01 15:20:21 +00:00
Lorenzo Colitti
e0d1a03d4e Make the NetworkRequest list private to NetworkAgentInfo.
This allows us to keep track of how many live requests a network
is satisfying without having to count them every time.

Bug: 23113288
Change-Id: Ic4756676491e09071dbf80b7c48da3be028d68eb
2016-07-01 21:14:26 +09:00
Lorenzo Colitti
a4505cafab Move the request type from NetworkRequestInfo to NetworkRequest.
This will allow us to simplify code that deals with
NetworkRequests outside ConnectivityService.

Bug: 23113288
Change-Id: I9b3a859d0c68cad73d7f6baa4b584d13ffd2ae36
2016-07-01 20:15:19 +09:00
Lorenzo Colitti
9748a4ffb4 Merge changes I65784f35,Ib6937335 into nyc-mr1-dev am: 74f7f2ec0d
am: 3c6e0af2c2

Change-Id: I5cdfe7e952ceb9da89f775f4cd451cc26ed52401
2016-06-30 14:43:30 +00:00
Lorenzo Colitti
3c6e0af2c2 Merge changes I65784f35,Ib6937335 into nyc-mr1-dev
am: 74f7f2ec0d

Change-Id: Iba950e7837d91f83a9c2bcd7fc8e7b1193038400
2016-06-30 14:33:25 +00:00
Lorenzo Colitti
45d7358303 Add detailed test coverage for lingering.
Bug: 23113288
Change-Id: I65784f3589378d97f3c824e600f21f361be8741e
2016-06-30 21:42:17 +09:00
Lorenzo Colitti
1bc034cb87 Add more test coverage for requests and callbacks.
1. Support multiple callbacks in TestNetworkCallback. This is
   necessary to test situations where multiple callbacks are
   generated by the same event (e.g., CALLBACK_LOSING on cell
   with CALLBACK_AVAILABLE on wifi when wifi connects), which is
   necessary to test callback order. So far this has not been
   covered because all callback testing was using per-network
   callbacks.
2. Add a benchmark test for registering NetworkRequests and for
   sending onAvailable and onLosing callbacks.

Bug: 23113288
Change-Id: Ib69373358ad766ab1bd989e864a5a51ef762c73c
2016-06-30 13:18:12 +09:00
Hugo Benichi
1ce90f1b8c Adding tests for DnsEventListenerService am: c1aead00e7
am: 16e1a3a679

Change-Id: I70ac910d67a1e4a7c4f9f3d24f983dce99957151
2016-06-29 07:23:22 +00:00
Hugo Benichi
973cc38494 Refactor IP connectivity event logging am: 3bdc8357fe
am: 2229b20b34

Change-Id: If8775031f2a293e94e564dde502d0775d5808fe6
2016-06-29 07:23:19 +00:00
Hugo Benichi
16e1a3a679 Adding tests for DnsEventListenerService
am: c1aead00e7

Change-Id: I498ad1303ff3c0fbc4517203ff8e6b931814562b
2016-06-29 07:18:32 +00:00
Hugo Benichi
2229b20b34 Refactor IP connectivity event logging
am: 3bdc8357fe

Change-Id: I8de880edc4a8c7f12527218788cb44f263acb56f
2016-06-29 07:18:28 +00:00
Hugo Benichi
c1aead00e7 Adding tests for DnsEventListenerService
Bug: 29035129
Change-Id: Iaf0d9ec781da7a473b6f7d8623060ecde44b9cbd
2016-06-29 14:28:51 +09:00