Commit Graph

3576 Commits

Author SHA1 Message Date
Hugo Benichi
301b09738a DO NOT MERGE: ConnectivityManager: use ConnectivityThread looper
This patch removes the static singleton looper used by
ConnectivityManager and instead uses the common ConnectivityThread.

This allows to removes the static atomic counter used to track
the number of registered NetworkCallback in ConnectivityManager, because
the looper is not turned off anymore when no callbacks are registered.

Also an overloaded version of sendRequestForNetwork is added taking as a
new parameter a Handler. This will allow to overload various callback
and request related API calls with user provided Handlers.

Test: ConnectivityServiceTest passes
Bug: 26749700
Bug: 28537383
Bug: 32130437

(cherry picked from commit 3b41f05d68)

Change-Id: If956addbf8e7b11b36a4b966de7fca00e8f362c1
2016-12-09 13:42:24 +09:00
Hugo Benichi
56260ed9cb DO NOT MERGE: ConnectivityManager: a simpler CallbackHandler
This patch simplifies CallbackHandler in the following way:
  - CallbackHandler directly uses the static references to
    sNetworkCallback and sCallbackRefCount. This allows to remove
    instance fields in CallbackHandler.
  - CallbackHandler does not have a reference to ConnectivityManager
    anymore
  - CallbackHandler.getObject() is now generic in a type-safe way.

Test: ConnectivityServiceTest passes
Bug: 28537383
Bug: 32130437

(cherry picked from commit 0b42baf68a)

Change-Id: I1b5fe2a361b5f623a8310ae698497c83d72f3034
2016-12-09 13:42:20 +09:00
Jeremy Klein
fb63d5a4ef DO NOT MERGE: Add a null check for the OnStartTetheringCallback.
This avoids a NullPointerException when trying to call the callback
and gives a more readable error message.

(cherry picked from commit 35e99ea8ef)

Change-Id: Ia419ff68ef10f308f9e44be47420e27099ee6070
2016-12-09 13:42:02 +09:00
Hugo Benichi
048c50c491 Merge changes from topic 'framework-net-aosp' am: 6b0570513e am: 5910f412bd am: 72f8bb8b7f
am: 03f5610b19

Change-Id: Ia03edd1d0a972dfc546a32fcf06784a00d6ab8cd
2016-12-09 04:17:08 +00:00
Hugo Benichi
3d108c9f1b DO NOT MERGE: IpConnectivityMetrics: rate limit ApfProgramEvents am: 6d442d82d0 -s ours am: 6765bc08d0 -s ours am: c19960bf85
am: c32fc5fdb2  -s ours

Change-Id: Ia453e3c806be8f58ff96e4b760de1c6a41cc8757
2016-12-09 04:16:09 +00:00
Hugo Benichi
6a359dc5c0 DO NOT MERGE: IpConnectivityMetrics reads buffer size in settings am: 834405cbe4 -s ours am: f3b4c26453 -s ours am: 7e64d17a53
am: fae429c07f  -s ours

Change-Id: Ic511ed8370c3a388bdc77f064cbe25bc434d927d
2016-12-09 04:14:15 +00:00
Hugo Benichi
b39d49a517 DO NOT MERGE: IpConnectivity metrics: add version number am: 8ce412614a -s ours am: 0e67ef7d3f -s ours am: 6a77e74a49
am: f5d42f527f  -s ours

Change-Id: I859f9b7ebdf93c06841a631e616a88270a8aebae
2016-12-09 04:10:50 +00:00
Hugo Benichi
03f5610b19 Merge changes from topic 'framework-net-aosp' am: 6b0570513e am: 5910f412bd
am: 72f8bb8b7f

Change-Id: I8cd4afc5e1381f5b69e4b6dd598c9fee76dc785e
2016-12-09 04:02:17 +00:00
Hugo Benichi
c32fc5fdb2 DO NOT MERGE: IpConnectivityMetrics: rate limit ApfProgramEvents am: 6d442d82d0 -s ours am: 6765bc08d0 -s ours
am: c19960bf85

Change-Id: Ia32470ecf8c0dd918994f9d0bccb20248c3b02d1
2016-12-09 04:01:20 +00:00
Hugo Benichi
fae429c07f DO NOT MERGE: IpConnectivityMetrics reads buffer size in settings am: 834405cbe4 -s ours am: f3b4c26453 -s ours
am: 7e64d17a53

Change-Id: Ib8045e9d97c0928baa0c0a4a752f544aaa1fe790
2016-12-09 03:59:36 +00:00
Hugo Benichi
f5d42f527f DO NOT MERGE: IpConnectivity metrics: add version number am: 8ce412614a -s ours am: 0e67ef7d3f -s ours
am: 6a77e74a49

Change-Id: I5b970302c258569638890a49b3455e43614ec63a
2016-12-09 03:56:29 +00:00
Hugo Benichi
72f8bb8b7f Merge changes from topic 'framework-net-aosp' am: 6b0570513e
am: 5910f412bd

Change-Id: I919fd8d8075c89aa9eb42b505017c075f61824ff
2016-12-09 03:47:48 +00:00
Hugo Benichi
c19960bf85 DO NOT MERGE: IpConnectivityMetrics: rate limit ApfProgramEvents am: 6d442d82d0 -s ours
am: 6765bc08d0  -s ours

Change-Id: I9e3ca112a654018d9d0b72ba1b0963e7fb678cf0
2016-12-09 03:46:50 +00:00
Hugo Benichi
7e64d17a53 DO NOT MERGE: IpConnectivityMetrics reads buffer size in settings am: 834405cbe4 -s ours
am: f3b4c26453  -s ours

Change-Id: I7f2eee043702be1a8878851793b9b17bdb89766b
2016-12-09 03:45:08 +00:00
Hugo Benichi
6a77e74a49 DO NOT MERGE: IpConnectivity metrics: add version number am: 8ce412614a -s ours
am: 0e67ef7d3f  -s ours

Change-Id: I05ffe76ca4f266bd341fc298cbc03da62991e4bb
2016-12-09 03:41:57 +00:00
Treehugger Robot
6b0570513e Merge changes from topic 'framework-net-aosp'
* changes:
  DO NOT MERGE: IpConnectivityMetrics: rate limit ApfProgramEvents
  DO NOT MERGE: TokenBucket for rate-limiting and throttling
  DO NOT MERGE: IpConnectivityMetrics reads buffer size in settings
  DO NOT MERGE: CaptivePortalLogin: set mixed content policy to compatibility.
  DO NOT MERGE: Add IP conn metrics to dumpsys and bug reports
  DO NOT MERGE: IpConnectivity metrics: add version number
2016-12-09 03:19:13 +00:00
Hugo Benichi
6d442d82d0 DO NOT MERGE: IpConnectivityMetrics: rate limit ApfProgramEvents
This patch uses the previously introduced TokenBucket to rate limit
ApfProgramEvents, still allowing for burst of ApfProgramEvents when a
new interface is set up (due to ipv4 provisioning, multicast lock, ipv6 RAs
triggering new APF program events in short amounts of time).

Test: new test in IpConnectivityMetricsTest
Bug: 1550402

(cherry picked from commit e3f7299ce2)

Change-Id: Idb640dec13ba64180985544b9709a586af66eb6e
2016-12-09 11:21:31 +09:00
Hugo Benichi
834405cbe4 DO NOT MERGE: IpConnectivityMetrics reads buffer size in settings
Test: IpConnectivityMetricsTest passes. Also manually changed the new
setting and verified the buffer size is as expected after flushing the
buffer.
Bug: 32198637

(cherry picked from commit 6d8c1dfe4b)

Change-Id: Iefbeac3a688b260fb3f92dfe0bfd9db28e26749d
2016-12-09 11:21:26 +09:00
Hugo Benichi
8ce412614a DO NOT MERGE: IpConnectivity metrics: add version number
This patch adds a version field to ipconnectivity.proto and populates it
to 2, which is the logical version number for NYC-MR2.

Test: IpConnectivity{EventBuilder,Metrics}Test pass
Bug: 32127906

(cherry picked from commit f04b01f0a0)

Change-Id: If8f167c0dc4c1abe0e235e2adfd131168a4ddc52
2016-12-09 11:21:11 +09:00
Erik Kline
8389133592 Stop setting net.dns{1234} system properties.
Nothing in the system consumes these properties, they were never part
of an official public API, and they can leak information about the
current network to applications without networking prvileges.

Specifically, these properites allow applications to access network state
(and detect network changes, etc.) without having the ACCESS_NETWORK_STATE
permission.

Test: runtest ConnectivityServiceTest passes
Bug: 33308258
Change-Id: I85abc52bc11aee33940fd0af2397478a9a5c3b8f
2016-12-09 11:06:52 +09:00
Etan Cohen
b2410a4a90 DO NOT MERGE: [CS] Remove timeout event after first available am: 3fb372fe9f -s ours am: a8b73b23d6 -s ours am: 98c799e134
am: 98b4132580  -s ours

Change-Id: I1919ee28071c2281896a2f7fbb3d6aadf4f47cae
2016-12-08 17:53:04 +00:00
Lorenzo Colitti
0cceef0e00 DO NOT MERGE: Move the connectivity tests to frameworks/base/tests/net. am: cf8c8d55f8 -s ours am: d1e22a3f07 -s ours am: 60584ca47e
am: 449590b993  -s ours

Change-Id: I3613a50627a6722e3c337caaa2880d96f1b39beb
2016-12-08 17:49:56 +00:00
Lorenzo Colitti
e4336bc3a0 DO NOT MERGE: De-guava BroadcastInterceptingContext and move it to testutils. am: 834805275a -s ours am: bcb7e32954 -s ours am: f6eae67d18
am: cbecbbbf95  -s ours

Change-Id: I07d5fdbb7285da095676aa1612df232d77d41b48
2016-12-08 17:49:10 +00:00
Lorenzo Colitti
b7d0555143 DO NOT MERGE: Move FakeSettingsProvider to a common location. am: 4166a1fcfa -s ours am: a84ede299c -s ours am: ab28abf325
am: 268504b253  -s ours

Change-Id: I53d3ceb607580cc0a04d414cef11f69d6877be21
2016-12-08 17:48:25 +00:00
Hugo Benichi
0b0aa7c44d DO NOT MERGE: ConnectivityServiceTest: mark flaky test as such am: 64d0a0deab -s ours am: e47b0886ad -s ours am: f0c14184c2
am: 8ca2def22f  -s ours

Change-Id: Ia5e678bc4297f8d6531d7b8fb6cc1085d2877947
2016-12-08 17:47:03 +00:00
Calvin On
6937717f70 DO NOT MERGE: Add option to skip and avoid captive portals. am: a3cbcca3cc -s ours am: 8006bd5c66 -s ours am: ad526b446c
am: 450a3cd69b  -s ours

Change-Id: I6af06157789b0eed11588d697e42776cdaafdb11
2016-12-08 17:46:08 +00:00
Erik Kline
cef65ac538 DO NOT MERGE: Support timeouts for requestNetwork() invocations. am: 5791c5f681 -s ours am: eb6be2c826 -s ours am: b87f698fc6
am: 97da4cbf7e  -s ours

Change-Id: I380a34e414f13ff1e55eb872090d2ebc1b81ba7a
2016-12-08 17:41:23 +00:00
Pierre Imai
bc4454680c DO NOT MERGE: Silence the obnoxious MTU 0 error message that occur when no MTU is specified for a given network. am: fb3178adfc -s ours am: 8a73b2896d -s ours am: 2e3f5c5d6b
am: 3813243f3f  -s ours

Change-Id: I35db4c3ff6b38ba0813f35158a65f519b1b40468
2016-12-08 17:40:19 +00:00
Etan Cohen
98b4132580 DO NOT MERGE: [CS] Remove timeout event after first available am: 3fb372fe9f -s ours am: a8b73b23d6 -s ours
am: 98c799e134

Change-Id: If94bc1b3dd0ed5ad697656303ca434152b4a5b18
2016-12-08 11:34:09 +00:00
Lorenzo Colitti
449590b993 DO NOT MERGE: Move the connectivity tests to frameworks/base/tests/net. am: cf8c8d55f8 -s ours am: d1e22a3f07 -s ours
am: 60584ca47e

Change-Id: I6b52a0383884ad41b1601bdd9cf976f58c0dcefd
2016-12-08 11:31:13 +00:00
Lorenzo Colitti
cbecbbbf95 DO NOT MERGE: De-guava BroadcastInterceptingContext and move it to testutils. am: 834805275a -s ours am: bcb7e32954 -s ours
am: f6eae67d18

Change-Id: I261c10f930d32c6d69d0ced4d0d7d81f3357cf63
2016-12-08 11:30:17 +00:00
Lorenzo Colitti
268504b253 DO NOT MERGE: Move FakeSettingsProvider to a common location. am: 4166a1fcfa -s ours am: a84ede299c -s ours
am: ab28abf325

Change-Id: I3e877a603c1c19af15e5f38d4e0301dfddfc6f39
2016-12-08 11:29:28 +00:00
Hugo Benichi
8ca2def22f DO NOT MERGE: ConnectivityServiceTest: mark flaky test as such am: 64d0a0deab -s ours am: e47b0886ad -s ours
am: f0c14184c2

Change-Id: If5133073f09b59b0458c1784b9d288f9a176c568
2016-12-08 11:28:34 +00:00
Calvin On
450a3cd69b DO NOT MERGE: Add option to skip and avoid captive portals. am: a3cbcca3cc -s ours am: 8006bd5c66 -s ours
am: ad526b446c

Change-Id: I7e7f6fa8d643bbd83c9b73614f80d202e3f28f20
2016-12-08 11:27:11 +00:00
Erik Kline
97da4cbf7e DO NOT MERGE: Support timeouts for requestNetwork() invocations. am: 5791c5f681 -s ours am: eb6be2c826 -s ours
am: b87f698fc6

Change-Id: I3cba7c98328a4237105243502fe148ed6a35ef48
2016-12-08 11:22:25 +00:00
Pierre Imai
3813243f3f DO NOT MERGE: Silence the obnoxious MTU 0 error message that occur when no MTU is specified for a given network. am: fb3178adfc -s ours am: 8a73b2896d -s ours
am: 2e3f5c5d6b

Change-Id: I20016d9056888897515e6a4b4296e3ea76f11b61
2016-12-08 11:21:31 +00:00
Etan Cohen
98c799e134 DO NOT MERGE: [CS] Remove timeout event after first available am: 3fb372fe9f -s ours
am: a8b73b23d6  -s ours

Change-Id: I61fbbf03bc011ae0b6b0e011bfb69dea33195c79
2016-12-08 11:07:46 +00:00
Lorenzo Colitti
60584ca47e DO NOT MERGE: Move the connectivity tests to frameworks/base/tests/net. am: cf8c8d55f8 -s ours
am: d1e22a3f07  -s ours

Change-Id: I92f0f18ed7ee196f1cdb1369393ff7c4e2c800fc
2016-12-08 11:04:38 +00:00
Lorenzo Colitti
f6eae67d18 DO NOT MERGE: De-guava BroadcastInterceptingContext and move it to testutils. am: 834805275a -s ours
am: bcb7e32954  -s ours

Change-Id: I377b66283b29bb97e02ec796352bc3a5dbea1454
2016-12-08 11:03:45 +00:00
Lorenzo Colitti
ab28abf325 DO NOT MERGE: Move FakeSettingsProvider to a common location. am: 4166a1fcfa -s ours
am: a84ede299c  -s ours

Change-Id: Ia6f433944c63245436199b8b9b1a022794ab939e
2016-12-08 11:02:57 +00:00
Hugo Benichi
f0c14184c2 DO NOT MERGE: ConnectivityServiceTest: mark flaky test as such am: 64d0a0deab -s ours
am: e47b0886ad  -s ours

Change-Id: I803b51cae7b20502d11701cb99ab3816d6995555
2016-12-08 11:02:09 +00:00
Calvin On
ad526b446c DO NOT MERGE: Add option to skip and avoid captive portals. am: a3cbcca3cc -s ours
am: 8006bd5c66  -s ours

Change-Id: I9984984de7f72e23fbc11e972ff851a1d2adc6c1
2016-12-08 11:00:46 +00:00
Erik Kline
b87f698fc6 DO NOT MERGE: Support timeouts for requestNetwork() invocations. am: 5791c5f681 -s ours
am: eb6be2c826  -s ours

Change-Id: Id91b2267ffcd7c66a1be8e01761ffb1d943082d3
2016-12-08 10:56:13 +00:00
Pierre Imai
2e3f5c5d6b DO NOT MERGE: Silence the obnoxious MTU 0 error message that occur when no MTU is specified for a given network. am: fb3178adfc -s ours
am: 8a73b2896d  -s ours

Change-Id: Ic529525e6671da1b6a85890c8eb40238b07da2b3
2016-12-08 10:54:56 +00:00
Etan Cohen
3fb372fe9f DO NOT MERGE: [CS] Remove timeout event after first available
Guarantees that timeouts are only delivered if a network never
becomes available. Once a network is available the timeout is
canceled.

Bug: 31402633
Test: all timeout related unit tests pass (new one added)

(cherry picked from commit 5eba9d7061)

Change-Id: I7cd3086544c881915fc6dbf14b87a24ab0cd8748
2016-12-08 17:13:37 +09:00
Lorenzo Colitti
cf8c8d55f8 DO NOT MERGE: Move the connectivity tests to frameworks/base/tests/net.
This will give us a good place to put all the networking tests.

Fix: 31479480
Test: adb  shell am instrument -w -e notClass com.android.server.connectivity.tethering.TetherInterfaceStateMachineTest 'com.android.frameworks.tests.net/android.support.test.runner.AndroidJUnitRunner'  # PASS

(cherry picked from commit 5a7c486d70)

Change-Id: I993eeaa5dec001c39389023f355f506129b356e7
2016-12-08 17:13:35 +09:00
Lorenzo Colitti
834805275a DO NOT MERGE: De-guava BroadcastInterceptingContext and move it to testutils.
Removing the static dependency on guava reduces test compile time
by about 20 seconds on a Z840, thus substantially speeding up the
compile/test cycle.

Make FutureIntent public instead of package-private because it is
used directly by NetworkPolicyManagementServiceTest, which as of
this CL is now in a different package.

(cherry picked from commit 6a64dd2178)

Test: runtest frameworks-services -c com.android.server.ConnectivityServiceTest  # PASS
Test: runtest frameworks-services -c com.android.server.NetworkPolicyManagerServiceTest  # PASS
Test: runtest frameworks-services -c com.android.server.net.NetworkStatsServiceTest  # PASS
Test: runtest frameworks-services -c com.android.server.NetworkManagementServiceTest  # Already failing.
Bug: 31479480
Change-Id: Ifab32c9214e9caab71dbf93b3d3ca88df6f49636
2016-12-08 17:13:35 +09:00
Lorenzo Colitti
4166a1fcfa DO NOT MERGE: Move FakeSettingsProvider to a common location.
(cherry picked from commit 4163f9ca8f)

Test: runtest frameworks-util -c com.android.internal.util.test.FakeSettingsProviderTest
Test: runtest frameworks-services -c com.android.server.ConnectivityServiceTest
Test: runtest frameworks-services -c com.android.server.retaildemo.PreloadAppsInstallerTest
Test: runtest frameworks-services -c com.android.server.retaildemo.RetailDemoModeServiceTest
Bug: 31479480
Change-Id: I8d4d4de2937012dd33924f53e68f96241a9b2b4f
2016-12-08 17:13:34 +09:00
Hugo Benichi
64d0a0deab DO NOT MERGE: ConnectivityServiceTest: mark flaky test as such
This patch extracts into its own independent test a test sub-block looking
for a race condition when not waiting on handlers to become idle:
there is no way to prevent the race from not happening when looking for
it this way. This makes the test flakky.

This new independent test is tagged with @FlakkyTest(tolerance = 3).

Test: ConnectivityServiceTest passes, with higher probability.
Bug: 31479480

(cherry picked from commit 144810b6cf)

Change-Id: I3c702bd981ed80ed606be0fb52d61eb3d7195a6f
2016-12-08 17:13:34 +09:00
Calvin On
a3cbcca3cc DO NOT MERGE: Add option to skip and avoid captive portals.
Test: ConnectivityServiceTest updated with test cases.
Test: Manually tested against att-wifi in B42.
Bug: 30222699

(cherry picked from commit dada145a85)

Change-Id: I90c0f97fe0e41de4059bceae7b56ab3a70145696
2016-12-08 17:13:33 +09:00