Commit Graph

3209 Commits

Author SHA1 Message Date
Hugo Benichi
12498a675e Merge "ConnectivityThread: use lazy holder idiom" 2016-10-20 23:49:03 +00:00
Hugo Benichi
55a1f6ee61 Merge "ConnectivityManager: a simpler CallbackHandler" 2016-10-20 23:46:30 +00:00
Calvin On
d6d4e341e2 Add option to skip and avoid captive portals. am: 5139717c74
am: 4376c759d4

Change-Id: I530ccb95aa97100b27d71186173645031082acc1
2016-10-20 20:26:52 +00:00
Calvin On
4376c759d4 Add option to skip and avoid captive portals.
am: 5139717c74

Change-Id: Id38d5c03d06822f9b20abd65db9dd04c90110b63
2016-10-20 20:18:10 +00:00
Calvin On
5139717c74 Add option to skip and avoid captive portals.
Test: ConnectivityServiceTest updated with test cases.
Test: Manually tested against att-wifi in B42.
Bug: 30222699
Change-Id: Ibe63942da04748ab0406e24e0f44be31d47710a0
(cherry picked from commit be96da11ccb5dd500f920c3ba90d350857293b3d)
2016-10-20 18:50:46 +00:00
Calvin On
dada145a85 Add option to skip and avoid captive portals.
Test: ConnectivityServiceTest updated with test cases.
Test: Manually tested against att-wifi in B42.
Bug: 30222699
Change-Id: Ibe63942da04748ab0406e24e0f44be31d47710a0
2016-10-20 00:51:39 -07:00
Hugo Benichi
3ab84b087a ConnectivityThread: use lazy holder idiom
This patch changes the way that the ConnectivityThread is lazily
instantiated by using the "lazy initialization holder class idiom".

The first code point that tries to obtain a reference to the unique
ConnectivityThread instance will trigger the creation of the Singleton
class, which will guarantee a thread-safe initialization of the static
INSTANCE field inside Singleton according to the language specs.

This is the Item #71 of Effective Java.

The unique static instance of ConnectivityThread is not stored directly
inside ConnectivityThread class but is stored in a static nested class.
This is to avoid triggering the creation of that unique instance when
Zygote does class preloading at phone startup. Otherwise this would lead
to Zygote creating a new OS thread during preloading, which is a fatal
error.

Test: frameworks-wifi tests pass
Bug: 26749700
Bug: 28537383
Bug: 32130437

Change-Id: I4d5672a3195d3af9a0a2c85f871695257abe782b
2016-10-20 09:30:13 +09:00
Hugo Benichi
0b42baf68a 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
Change-Id: I5004da5b91498e6ff7f8b05057a9e24b975bb56e
2016-10-20 09:09:02 +09:00
TreeHugger Robot
4320474eb2 Merge "Show notification for always-on app VPN" 2016-10-17 15:33:59 +00:00
Hugo Benichi
f04b01f0a0 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
Change-Id: I1439f012b7f9b4211d5d5429c274ad03d2ac9d6b
2016-10-17 16:24:19 +09:00
Michal Karpinski
58a5c98b40 Extending DNS event reporting
This adds hostname, array of addresses, total count of IP addresses
and uid to the existing pipeline.
Currently ignores the new data it receives, further work will be
done in the subsequent CLs.

Test: for now just the benchmarking, in the future unit and CTS

Bug: 29748723
Change-Id: Ice7db208282934e74f0e1808ffbae96d476c4216
2016-10-10 16:49:07 +01:00
Erik Kline
d44ea3ce1e Refactor "avoid bad wifi" logic into a utility class am: 95ecfee674 am: 567fc7861d am: 23d83b031f
am: 18cc602880

Change-Id: Ie3d058d6c9da43763d10b0a2bc96171d07673e9d
2016-10-07 01:03:58 +00:00
Christopher Wiley
a996f42121 Notify NetworkPolicyManagerService on tethering changes am: cfd438e0fd am: deed245740
am: 30a5755afc

Change-Id: I063450c82f80f137cd130d384134a83820d8f084
2016-10-07 00:37:04 +00:00
Erik Kline
18cc602880 Refactor "avoid bad wifi" logic into a utility class am: 95ecfee674 am: 567fc7861d
am: 23d83b031f

Change-Id: I7db61e54c80ec836d00bf4ae087137bb296c30f1
2016-10-06 20:44:56 +00:00
Erik Kline
23d83b031f Refactor "avoid bad wifi" logic into a utility class am: 95ecfee674
am: 567fc7861d

Change-Id: Id670d13b99ab6935b67335e19d2389e5b4f61111
2016-10-06 20:16:57 +00:00
Christopher Wiley
30a5755afc Notify NetworkPolicyManagerService on tethering changes am: cfd438e0fd
am: deed245740

Change-Id: Ic1b99f8bbeffde72dd93d4879aa25954d0d98554
2016-10-06 20:08:44 +00:00
Tony Mak
9ca892f698 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
Christopher Wiley
deed245740 Notify NetworkPolicyManagerService on tethering changes
am: cfd438e0fd

Change-Id: I43b25305c730966da83acdaccb127c27be0e2332
2016-10-06 19:57:15 +00:00
Erik Kline
567fc7861d Refactor "avoid bad wifi" logic into a utility class
am: 95ecfee674

Change-Id: I4a6ad3791ac551b0d64b37dd4e2afef1e8e8ee10
2016-10-04 07:47:52 +00:00
Erik Kline
95ecfee674 Refactor "avoid bad wifi" logic into a utility class
Additionally, add this utility class to IpManager for compatibility
verification.  A follow-on CL will make use of IpManager's local
AvoidBadWifiTracker.

Bug: 31827713
Change-Id: If8c56c3f8076d6a5157ea180e361bbdadc2bc1dd
2016-10-04 15:07:42 +09:00
Christopher Wiley
cfd438e0fd Notify NetworkPolicyManagerService on tethering changes
(cherry-pick of d73faf07606d40d3915d22a72fa14f7ba956d459)

No longer do this in ConnectivityService#tether/untether.
Instead, have Tethering do it when an interface is actually
tethered.

Bug: 31405407
Test: Toggling hotspot now disables data saver

Change-Id: I9910a2e488c30c92d45f817c8f5df0fac5510de6
2016-09-30 10:33:19 -07:00
Hugo Benichi
90d1ffdcd8 New Settings symbols for captive portal detection am: e8b7aea6bb am: 4710228e81
am: 9fc1b97ca5

Change-Id: Iad6840b4edd243a77fe65a69a2f4dcba28e0a7cb
2016-09-29 06:09:56 +00:00
Hugo Benichi
8b5dcafc44 Captive portal detection uses 3rd fallback probe am: 6767b7a40a am: 580194d336
am: 82d7d36a22

Change-Id: I221cf47aa43105d4094ec724f8d6f4f6c98d0757
2016-09-29 06:07:53 +00:00
Hugo Benichi
9fc1b97ca5 New Settings symbols for captive portal detection am: e8b7aea6bb
am: 4710228e81

Change-Id: I6e965696ed03b0eb4a49db3b21ad6a382ba1d081
2016-09-29 01:23:59 +00:00
Hugo Benichi
82d7d36a22 Captive portal detection uses 3rd fallback probe am: 6767b7a40a
am: 580194d336

Change-Id: Iec8ccdbcd433d8b2f5538d7b4bed5c945b5b688a
2016-09-29 01:22:01 +00:00
Hugo Benichi
4710228e81 New Settings symbols for captive portal detection
am: e8b7aea6bb

Change-Id: Id8c19f16c50b22034278c00b55c5431d892f8a95
2016-09-29 01:15:17 +00:00
Hugo Benichi
580194d336 Captive portal detection uses 3rd fallback probe
am: 6767b7a40a

Change-Id: I15607fbfae9dc127b72b6f299b69d6b648117338
2016-09-29 01:13:59 +00:00
Hugo Benichi
e8b7aea6bb New Settings symbols for captive portal detection
This patch defines new Settings symbols for
  - setting the probe urls for captive portal detection.
  - setting which User-Agent to use for captive portal detection.

The existing default values for these settings are not changed, i.e:
  - HTTP and HTTPS probes urls are unchanged.
  - the fallback probe is not used.
  - User-Agent is empty by default.

Bug: 29367974
Change-Id: I6e4b3b172e56b8b67fffa4b51f776d68d5851f25
2016-09-28 23:13:25 +09:00
Hugo Benichi
6767b7a40a Captive portal detection uses 3rd fallback probe
This patch adds the possitibility to send a 3rd fallback validation
probe in sendParallelHttpProbes when neither the 1st http probe nor the
https probe came back with a conclusive answer.

This 3rd probe is only used for trying again captive portal detection
and does not return success, so that network validation always fails if
the https probe fails.

In addition, the url reveals a captive portal is now sent to the
CaptivePortalLoginActivity so that all three probes can use different
urls.

Bug: 29367974

Change-Id: I7385fde1aa1316d94aac350af0e956cb193aa4ee
2016-09-28 23:12:31 +09:00
Christopher Wiley
2894388f94 Merge "Notify NetworkPolicyManagerService on tethering changes" am: 4062bec04e am: 8d7e3b0205 am: 8402cf5078
am: 15d636e8d2

Change-Id: I6075604795f97992d02bef28bb5cef85eb31d589
2016-09-27 14:24:33 +00:00
Christopher Wiley
15d636e8d2 Merge "Notify NetworkPolicyManagerService on tethering changes" am: 4062bec04e am: 8d7e3b0205
am: 8402cf5078

Change-Id: I4d1081c832c1d3bff9a0946c670929eca4f0f695
2016-09-27 14:18:46 +00:00
Christopher Wiley
8402cf5078 Merge "Notify NetworkPolicyManagerService on tethering changes" am: 4062bec04e
am: 8d7e3b0205

Change-Id: I9595856421a848a570f4894fa55523a72a7fec44
2016-09-27 13:32:06 +00:00
Michal Karpinski
0f846e6106 Fix naming of the service in NetdEventListenerServiceTest
am: 7a8d38a62e

Change-Id: If4b50bf104dddcaf14fd6b138239cfc94967f389
2016-09-26 11:38:37 +00:00
Michal Karpinski
7a8d38a62e Fix naming of the service in NetdEventListenerServiceTest
Bug: 29748723
Change-Id: I285cb77fba824036df80a9ed2560ee95d1d1919c
(cherry picked from commit b4e1df3240)
2016-09-26 10:43:56 +00:00
Michal Karpinski
b4e1df3240 Fix naming of the service in NetdEventListenerServiceTest
Bug: 29748723
Change-Id: I285cb77fba824036df80a9ed2560ee95d1d1919c
2016-09-26 09:20:25 +01:00
Hugo Benichi
b586a07f1a Merge "IpConnectivityLog uses new metrics service" into nyc-mr1-dev am: fa21c8ce1c am: bb48787720
am: e794d6fbdf

Change-Id: I878da89bb1804a55bca4b4c35e5924a12af34ff3
2016-09-25 20:19:13 +00:00
Hugo Benichi
344acf4541 resolve merge conflicts of 6d40db6 to nyc-mr1-dev-plus-aosp
am: 3cabd2665c

Change-Id: I4bfd7a9bc5ef4c3c5a30bed63b92eaef90b1a30e
2016-09-25 20:18:16 +00:00
Lorenzo Colitti
e88410a694 Merge "Restrict access to background networks to CHANGE_NETWORK_STATE." into nyc-mr1-dev am: 3972d910f1 am: f96a37fb8d
am: 45a6252d6d

Change-Id: Ib15c9ac54d9e493aea8fe5bb80d63356d33da137
2016-09-25 20:12:54 +00:00
Lorenzo Colitti
50d8cd9119 Restrict access to background networks to CHANGE_NETWORK_STATE. am: b8d9f52adb am: 9410bde219
am: 494c218bff

Change-Id: I49bc23dcb5f36654c61a7aa76c41cebda81349f5
2016-09-25 20:11:52 +00:00
Hugo Benichi
2741f10188 Add ipconnectivity.proto to services jar am: a54812907b am: 446a3847b4
am: c0c25c8a6e

Change-Id: Id194acbb25c8f3dd8fdf03af67912f7a0f0f770f
2016-09-24 02:11:20 +00:00
Hugo Benichi
e794d6fbdf Merge "IpConnectivityLog uses new metrics service" into nyc-mr1-dev am: fa21c8ce1c
am: bb48787720

Change-Id: Ib9e1bc6873ad1fb045b57eb54c4a164148d68f14
2016-09-23 06:03:59 +00:00
Hugo Benichi
3cabd2665c resolve merge conflicts of 6d40db6 to nyc-mr1-dev-plus-aosp
Change-Id: I82865b2847c584f8a1d728ef76113e3969f222ca
2016-09-23 14:48:01 +09:00
Hugo Benichi
bb48787720 Merge "IpConnectivityLog uses new metrics service" into nyc-mr1-dev
am: fa21c8ce1c

Change-Id: I7fae7760d5ec872a0a989ca3964419d3839694ad
2016-09-23 04:48:51 +00:00
Hugo Benichi
6d40db67c3 IpConnectivityLog uses new metrics service
am: a6c8879b49

Change-Id: I1e3b611eeec448e333e83cb8d630f0e9906b7f14
2016-09-23 04:48:49 +00:00
Hugo Benichi
fa21c8ce1c Merge "IpConnectivityLog uses new metrics service" into nyc-mr1-dev 2016-09-23 04:43:23 +00:00
Lorenzo Colitti
45a6252d6d Merge "Restrict access to background networks to CHANGE_NETWORK_STATE." into nyc-mr1-dev am: 3972d910f1
am: f96a37fb8d

Change-Id: I7d47b6c065f45edeecf3fd5df133545dad561d0f
2016-09-23 04:02:09 +00:00
Lorenzo Colitti
494c218bff Restrict access to background networks to CHANGE_NETWORK_STATE. am: b8d9f52adb
am: 9410bde219

Change-Id: Ie4179344aa12e38d2e2a5fab43e028ca0c97150d
2016-09-23 04:01:07 +00:00
Lorenzo Colitti
f96a37fb8d Merge "Restrict access to background networks to CHANGE_NETWORK_STATE." into nyc-mr1-dev
am: 3972d910f1

Change-Id: I8fa53ac5143bd5df0177a11e5961acef63072007
2016-09-23 03:57:34 +00:00
Lorenzo Colitti
9410bde219 Restrict access to background networks to CHANGE_NETWORK_STATE.
am: b8d9f52adb

Change-Id: Iaf4ccd24298f680cab39bf9b87604eb16bc53aa5
2016-09-23 03:57:32 +00:00
TreeHugger Robot
3972d910f1 Merge "Restrict access to background networks to CHANGE_NETWORK_STATE." into nyc-mr1-dev 2016-09-23 03:51:15 +00:00