Enhance URL regular expression to match legal one byte Unicode characters in
Internationalized Resource Identifiers as detailed in RFC 3987. Specifically
two byte Unicode characters are not included. Not all things in RFC 3987 is
implemented, this is just an enhancement for recognizing more common used one
byte Unicode characters.
This change helps Browser address bar identify more valid URL without scheme
typed in, such as 현금영수증.kr
make-iana-tld-pattern.py is modified to contain only Top Level Domain
regular expression generation. Other parts of WEB_URL pattern are in
solely in Patters.java for better consistency and maintenance.
Generally clean up the associated SSLCertificateSocketFactory API as well,
change AndroidHttpClient to use this new thing, and make the android-common
library build SDK-clean (woo hoo).
Bug: 2362543
Bug: 2357311
This change cleans the server certificates:
1. Use the end-entity certificate as found in the chain received from the server as the end-entity cert for the newly built chain.
2. Look at the last cert in the newly built chain, specifically it's "issuer" field. If there's a cert in the chain as received with this as the "subject", and this cert hasn't yet been moved into the newly built chain, move it there (as the new last cert). Repeat this step 2 until you can't continue (because there's no matching previously unused cert left).
3. If the last certificate in the new chain has expired (and it's not the end-entity cert), remember this fact, and remove it (so that we can try if we can validating the chain for a different root). If in this case it turns out that we still can't validate the chain, it's probably the cert expiry error that should be displayed.
This CL also cleans the redundant error detection code and reduces the error messages to two types, which are the only two make differences to the user:
a. SSL_IDMISMATCH for name mismatch,
b. SSL_UNTRUSTED for other reasons.
Introduce a callback event observer which can be registered on the
INetworkManagementService instance to receive events from the service.
Signed-off-by: San Mehat <san@google.com>
The MOBILE_MMS, MOBILE_SUPL, MOBILE_DUN and MOBILE_HIPRI net types used
by location, messaging, and vending needed to be exposed.
Bug: 2363272
Change-ID: I6d2361d3642064db619b283b9217512563eb3439
- Moved DomainNameChecker from android.net.http to android common, and renamed to DomainNameValidator.
- Added a simplified version of DNParser, which DomainNameValidator uses instead of X509Name in order to extract Subject Name from a certificate.
- Added unit tests for DomainNameChecker and DNParser.
There's a suspicious comment in DomainNameChecker saying something like "X509Certificate fails to parse a certificate when a subject alt name begins with '*'". I think we should fix it if it's really the case -- otherwise certificates with the wildcard wouldn't work. I'll see if it's true after submitting this patch.
Merge commit 'f7d0b01387c10f93bf17981d45087810c80f0902' into eclair-mr2-plus-aosp
* commit 'f7d0b01387c10f93bf17981d45087810c80f0902':
Add TrafficStats class to SDK.
This class (a rename of NetStat) provides network byte and packet statistics.
NetStat will be removed separately, to avoid breaking other packages when submitting.
Merge commit '8657978aabc7141869926a98a0da257255678dd4'
* commit '8657978aabc7141869926a98a0da257255678dd4':
Expose onReceivedSslError() so that the WebView client
Merge commit 'ddcea3d21645bb3037703c84807dae077aae62ce' into eclair-mr2-plus-aosp
* commit 'ddcea3d21645bb3037703c84807dae077aae62ce':
Expose onReceivedSslError() so that the WebView client
Sample hierarchial URL, from my ContactsProvider test case:
content://com.android.contacts/data?account_name=braddroid%40gmail.com&account_type=com.google.GAIA&caller_is_syncadapter=true
Without this patch: (fetching the "account_name" parameter)
10000 iters: 0.5293 ms average
10000 iters: 0.5119 ms average
10000 iters: 0.5158 ms average
With this patch, rewriting it to not allocate memory (no implicit
StringBuilder), but still no caching:
1) when it needs to decode something (i.e account_name above;
allocates memory)
50000 iters: 0.28724 ms average
50000 iters: 0.31774 ms average
50000 iters: 0.28764 ms average
2) when it doesn't need to decode (and thus allocate memory,
i.e. account_type above)
50000 iters: 0.0954 ms average
50000 iters: 0.09124 ms average
50000 iters: 0.09088 ms average
Merge commit '348b92bd513087369ac682e29620d7829fa1381b' into eclair-mr2
* commit '348b92bd513087369ac682e29620d7829fa1381b':
GPS: Fix problem with SUPL when SUPL APN is already active.
Merge commit '348b92bd513087369ac682e29620d7829fa1381b' into eclair-plus-aosp
* commit '348b92bd513087369ac682e29620d7829fa1381b':
GPS: Fix problem with SUPL when SUPL APN is already active.
Use ConnectivityManager.CONNECTIVITY_ACTION broadcast in LocationManagerService
to notify GPS when SUPL connection is ready instead of TelephonyIntents.ACTION_ANY_DATA_CONNECTION_STATE_CHANGED,
which is not sent in all cases.
Expand LocationProvider.updateNetworkState() to include NetworkInfo object.
Fixes bug b/2155661
Change-Id: Iee227ace7d536b36cf7973e3e6a8b7a621ce6565
Signed-off-by: Mike Lockwood <lockwood@android.com>
Merge commit '92b5caa4e21d48db6efeddba532d1546c6e686b1' into eclair-plus-aosp
* commit '92b5caa4e21d48db6efeddba532d1546c6e686b1':
Turn some logging back on in ConnectionManager
Merge commit '48e6725c828a8d420d43925b0c9a9a915a8c4e2f' into eclair-plus-aosp
* commit '48e6725c828a8d420d43925b0c9a9a915a8c4e2f':
Work on issue #2163789: Way too much logging
Merge commit 'e8830120c8e416a26520dfbbd0e386e77255dbda' into eclair-mr2-plus-aosp
* commit 'e8830120c8e416a26520dfbbd0e386e77255dbda':
Turn some logging back on in ConnectionManager
Merge commit '92b5caa4e21d48db6efeddba532d1546c6e686b1' into eclair-mr2
* commit '92b5caa4e21d48db6efeddba532d1546c6e686b1':
Turn some logging back on in ConnectionManager
Merge commit '48e6725c828a8d420d43925b0c9a9a915a8c4e2f' into eclair-mr2
* commit '48e6725c828a8d420d43925b0c9a9a915a8c4e2f':
Work on issue #2163789: Way too much logging