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.
This is to capture recently added top level domains.
modified: common/java/com/android/common/Patterns.java
modified: common/tests/src/com/android/common/PatternsTest.java
A new Base64 encoder/decoder class. Some benchmarks comparing the
decoder it to those from android.os.Base64Utils (a decode-only native
implementation not accessible to apps) and
org.apache.commons.codec.binary.Base64, all with the JIT enabled:
1k encoded data
APACHE avg: 811 us min: 244 us max: 13671 us
COMMON avg: 263 us min: 30 us max: 4730 us
NATIVE avg: 102 us min: 61 us max: 5493 us
10k encoded data
APACHE avg: 3624 us min: 2746 us max: 23895 us
COMMON avg: 979 us min: 518 us max: 7751 us
NATIVE avg: 817 us min: 762 us max: 3143 us
100k encoded data
APACHE avg: 33167 us min: 31829 us max: 140411 us
COMMON avg: 6047 us min: 5493 us max: 45227 us
NATIVE avg: 10109 us min: 10009 us max: 12451 us
Change-Id: Ic622e3a967a62d57d30bd25b80cbe4e0dd60e764
- 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.
but can also be used by unbundled apps. Move android.text.util.Regex there as
a starting example, renamed to a more sensible (?) com.android.common.Patterns.
Set up a corresponding test package, and move RegexTest (to PatternsTest).
Update clients.