- 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
Use a dedicated Connection to process a synchronous request using the main
RequestQueue and on the WebCore thread.
HttpConnection, HttpsConnection, Connection:
No need for ConnectionManager, just pass the proxy host to
HttpsConnection. In Connection.clearPipe, empty should be set to true if the
RequestFeeder does _not_ have a request for the host. I don't think that
broke anything but it is incorrect.
ConnectionThread:
Refactor the proxy selection into ConnectionManager.getConnection
RequestHandle:
Add a new constructor that takes a Connection argument. Add processRequest
to process a single request on that Connection.
RequestQueue:
Add determine host to select between the request's host and the proxy. Add
queueSynchronousRequest to make a new request that operates on a private
connection. Add SyncFeeder to handle RequestFeeder.requeueRequest if the
request fails.
Network: Use the new RequestQueue api to handle a synchronous request.
Bug: 1315832
It was clearing the interfacename when it was needed later in the process - the prevented us
from clearing the route to private dns servers and clearing the flag that this was set.
Consequently future uses would not set the private dns servers (since it thought they were already
set) and our lookups would fail.
bug: 2146929
Merge commit '7c5c6076ea5d02aabbb449b1341ec44d184d1316' into eclair-plus-aosp
* commit '7c5c6076ea5d02aabbb449b1341ec44d184d1316':
Support IPv6 literal URLs, e.g., http://[2001:4860:b004::68]/ as per RFC 3896
Merge commit '3239de8cd78b3fa292d85ee7658a9871cdfbc79b' into eclair-plus-aosp
* commit '3239de8cd78b3fa292d85ee7658a9871cdfbc79b':
Remove the network connection logic from RequestQueue.
Currently parseUserPart uses the encoded authority to split the URI
into user and non-user parts, but the parseHost and parsePort uses
the decoded URI to split the URI into non-host, host, and port parts.
This gives unexpected results when %40 ('@') and %3a (':') is used
in a URI:
Uri test = Uri.parse("http://bob%40lee%3ajr@example.com:42/");
test.getUserInfo() => "bob@lee:jr"
test.getHost() => "lee:jr@example.com" (should be "example.com")
test.getPort() => -1 (should be 42)
Mark cellular variants with the same availability, regardless of which are currently in use.
Availability just means the radio is enabled and sees the network, but has no guarantees that
we could connect to an APN if requested.
Fix the requestRouteToHost logic to support apn switches without WIFI.
bug:2093841
Fixes a problem where mms apn was on when we lost the network (airplane mode) but mms was
off when airplane mode was turned off so it kept thinking we didn't have access and
future mms always failed.
bug: 2075145
HSDPA: High-Speed Downlink Packet Access
HSUPA: High-Speend Uplink Packet Access
HSPA: High-Speed Packet Access
Add support for HSDPA/HSUPA/HSPA:
1) extend TelephonyManager.NETWORK_TYPE for HSDPA/HSUPA/HSPA
2) extend ServiceState.RADIO_TECHNOLOGY for HSDPA/HSUPA/HSPA
3) set radioTechnology into ServiceState in GsmServiceStateTracker
4) change the implementation of TelephonyManager.getNetworkType to
solve the competition timing issue between the time of setting
system property and the time of receiving notification through
PhoneStateListener
4.1) add a getNetworkType interface in ITelephony.aidl
5) add icons resources for HSDPA/HSUPA/HSPA
6) make use of HSDPA/HSUPA/HSPA icons in StatusBarPolicy
Merge commit 'e97c2006bf7c391c933307e520a392e532aa5d6a' into eclair
* commit 'e97c2006bf7c391c933307e520a392e532aa5d6a':
Updated Browser and MCS to use shared default trust manager instead of initializing their own copies.
Fix some race conditions (check isTeardownRequested).
Fix the passing of mInterfaceName to subtypes (mms, etc).
Fix the generation of CONNECTED message to already active subtypes.
Fix the enabling of Data in DataConnectionTracker.
bug: 2065037