summaryrefslogtreecommitdiffstats
path: root/net/android/network_library.cc
Commit message (Collapse)AuthorAgeFilesLines
* Revert of Native SSID extraction moved to platform code on Android (patchset ↵mdjones2016-02-111-7/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | #8 id:140001 of https://codereview.chromium.org/1633733005/ ) Reason for revert: Causes instant crash on Android KK, L, and M. Original issue's description: > On Android, move Wifi SSID extraction to a Java implementation > > On some Android devices, the device will restart right > after the browser is launched. This is due to a kernel bug on > these devices when using the Linux GetWifiSSID implementation, > which causes a kernel panic and device restart. > > To avoid this, a Java-based implementation is used for Android > devices, which avoids this. Examples of affected devices include: > HTC One S > Lenovo A820 > Asus ZenFone 2 > MediaPad 10 FHD > > R=bengr@chromium.org,rch@chromium.org > BUG=555067 > TEST=Take the problem device, install browser and start it, wait for > 10 seconds. Make 10 experiments, cleaning data before each run. > Device should not reboot. TBR=bengr@chromium.org,rch@chromium.org,rsleevi@chromium.org,ripp@yandex-team.ru # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=555067 Review URL: https://codereview.chromium.org/1688103002 Cr-Commit-Position: refs/heads/master@{#374833}
* On Android, move Wifi SSID extraction to a Java implementationripp2016-02-101-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | On some Android devices, the device will restart right after the browser is launched. This is due to a kernel bug on these devices when using the Linux GetWifiSSID implementation, which causes a kernel panic and device restart. To avoid this, a Java-based implementation is used for Android devices, which avoids this. Examples of affected devices include: HTC One S Lenovo A820 Asus ZenFone 2 MediaPad 10 FHD R=bengr@chromium.org,rch@chromium.org BUG=555067 TEST=Take the problem device, install browser and start it, wait for 10 seconds. Make 10 experiments, cleaning data before each run. Device should not reboot. Review URL: https://codereview.chromium.org/1633733005 Cr-Commit-Position: refs/heads/master@{#374743}
* Add context_utils.h includes where needed.torne2015-11-251-0/+1
| | | | | | | | | | | | | base::android::GetApplicationContext is now defined in context_utils.h. Update includes for files that use this, and stop including it in jni_android.h. BUG=552419 TBR=jochen@chromium.org,sky@chromium.org,xhwang@chromium.org,davidben@chromium.org,tedchoc@chromium.org,scheib@chromium.org,qinmin@chromium.org,halliwell@chromium.org,thakis@chromium.org Review URL: https://codereview.chromium.org/1475773002 Cr-Commit-Position: refs/heads/master@{#361701}
* Expose SIM specific net APIs on Androidtbansal2015-09-031-0/+13
| | | | | | | | | | | | | Exposing the SIM operator name and whether the device is on roaming or not. Design doc link is in #3 in the attached bug. BUG=522283 Review URL: https://codereview.chromium.org/1321203006 Cr-Commit-Position: refs/heads/master@{#347224}
* Use the exact-width integer types defined in <stdint.h> rather thanwtc2015-06-041-4/+4
| | | | | | | | | | | | "base/basictypes.h" in net/android, net/base, and net/cert. R=eroman@chromium.org BUG=488550 TEST=none Review URL: https://codereview.chromium.org/1158923005 Cr-Commit-Position: refs/heads/master@{#332742}
* Implement GetNetworkList based on AddressTrackerLinux for ChromeOS/Linux/Androidguoweis2014-10-231-7/+0
| | | | | | | | | | AddressTrackerLinux uses rtnetlink which provides IPv6 address attributes. WebRTC needs to use IPv6 address attributes to determine the priority of a particular IPv6 address when multiple are available. BUG=411086 Review URL: https://codereview.chromium.org/590973002 Cr-Commit-Position: refs/heads/master@{#300940}
* Move android Telephony APIs from content/ to net/.bolian@chromium.org2014-05-011-0/+14
| | | | | | | | | | | This is needed for logging operator code in net/. See https://codereview.chromium.org/246553003/ BUG=355604 Review URL: https://codereview.chromium.org/254823005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@267437 0039d316-1c4b-4281-b951-d872f2087c98
* Follow-up changes to Android certificate verification logic.davidben@chromium.org2014-02-031-5/+0
| | | | | | | | | | | | | | | - Handle devices without an "AndroidCAStore" KeyStore. Add a histogram to record when this happens. - Remove resolved TODO. - Unnecessary exception check (relevant function already CalledByNative, not CalledByNativeUnchecked) BUG=116838 TEST=none Review URL: https://codereview.chromium.org/144153002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@248587 0039d316-1c4b-4281-b951-d872f2087c98
* Export verified_cert and public_key_hashes on Android.davidben@chromium.org2014-01-171-6/+19
| | | | | | | | | | | | | | | | | | | | | | | On API level 17 and up, X509TrustManager can export the verified chain. Use it to populate some of the fields in CertVerifyResult. Also correctly populate is_issued_by_known_root and enable intranet host checking. Add a test to make sure non-standard roots get flagged as such. If the APIs are not available, is_issued_by_known_root is always false. BUG=116838,147945 TEST=CertVerifyProcTest.PublicKeyHashes CertVerifyProcTest.VerifyReturnChainBasic CertVerifyProcTest.VerifyReturnChainFiltersUnrelatedCerts CertVerifyProcTest.VerifyReturnChainProperlyOrdered CertVerifyProcTest.IntranetHostsRejected CertVerifyProcTest.IsIssuedByKnownRootIgnoresTestRoots CertVerifyProcTest.ExtraneousMD5RootCert CertVerifyProcTest.NameConstraintsFailure Review URL: https://codereview.chromium.org/108653013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@245649 0039d316-1c4b-4281-b951-d872f2087c98
* Return specific cert verification errors on Androidppi@chromium.org2013-02-131-6/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | To implement CertVerifyProc on Android we refer to the Java side to query the platform trust managers. Currently the information we get from the platform is binary - each certificate chain is either identified as trusted or not, in which case we assume that this is due to not-trusted root. This patch provides better granularity distinguishing the following cases: expired, not yet valid, incorrect (could not be parsed), not trusted root. This allowed to reenable two net unittests: - CertVerifyProcTest.ExtraneousMD5RootCert - CertVerifyProcTest.IntermediateCARequireExplicitPolicy The following net unittest had to be disabled as it joins the club of CertVerifyProc tests failing on bots with incorrect time/date settings: - CertVerifyProcTest.InvalidKeyUsage BUG=169762 Review URL: https://chromiumcodereview.appspot.com/12212135 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@182280 0039d316-1c4b-4281-b951-d872f2087c98
* Implement TestRootCerts for Androidppi@chromium.org2012-12-121-0/+12
| | | | | | | | | | | | | | Currently we are unable to plant our test root certificate in Android trust store to run our certificate verification tests against it. The patch adds custom test trust store to the java backend, allowing to run the certificate verification tests against custom set of root certificates. The actual installation of our test root certificate is being done by TestRootCerts class, consistently with what we do on other platforms. BUG=147786 Review URL: https://chromiumcodereview.appspot.com/11316210 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@172488 0039d316-1c4b-4281-b951-d872f2087c98
* Fix certificate and keychain installation on Android.digit@chromium.org2012-12-111-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch is necessary to allow Chrome on Android to properly install CA certificates and PKCS#12 keychains. This feature is not supported on other platforms, but necessary on mobile. It does modify the content client API to deal with the new file types, i.e. the AddNewCertificate() method is renamed AddCryptoFile(), and its signature changed to receive the file data directly (along with a file type enum). It is now the reponsability of the browser / content embedder to perform certificate verification. More specifically: - Modify net/base/mime_util.h to provide two new functions: * IsSupportedCertificateMimeType(), which returns true iff a mime type corresponds to a supported crypto file (only "application/x-x509-user-cert" is supported, except on Android, which adds ".../x-x509-ca-cert" and ".../x-pkcs12"). * GetCertificateMimeTypeForMimeType() which translates a mime type string into an enum value that is also understood from Java (see below), describing the type of file. Note that "net/base/mime_util_certificate_list.h" is used to hold the list of certificate mime type constants, both for C++ and Java (i.e. it is used to auto-generate org.chromium.net.CertificateMimeType.java at build time, under out/$BUILDTYPE/gen/template/). - Rename X509UserCertResourceHandler to CertificateResourceHandler under content/browser/loader/ in order to deal with all certificate mime types. Modify buffered_resource_handler.cc appropriately. - Add net::android::StoreCertificate(), and the Java org.chromium.net.AndroidNetworkLibrary.storeCertificate() method to send the certificate data for installation through the system's CertInstaller activity. - Add chrome::SSLAddCertificate() to implement the platform-specific code that used to be in content::ContentBrowserClient::AddNewCertificate(). - Rename content::ContentBrowserClient::AddNewCertificate() to ::AddCertificate(), and change its signature to accept resource file bytes directly and a net::CertificateMimeType (was an X509Certificate pointer). This change shall not modify the behaviour of Chromium on other platforms. BUG=149306 TEST=Manual test with ChromiumTestShell, see internal b/6668254 for details. Review URL: https://chromiumcodereview.appspot.com/11266008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@172350 0039d316-1c4b-4281-b951-d872f2087c98
* Stop emitting warnings for mime types not recognized by Android.peter@chromium.org2012-11-061-4/+1
| | | | | | | | | | | | | | | | | | Chromium attempts to get mime types based on extensions by (1) checking the primary list in mime_util.cc, (2) querying the OS for the mime type or (3) checking the list of secondary mappings. For Android, a warning message is being emitted when an extension can't be found during step (2), which calls URLConnection.guessContentTypeFromName in Java. The most common extension causing the warning is "js", which will be resolved as part of the secondary mappings in step (3). This voids the warning. BUG= Review URL: https://chromiumcodereview.appspot.com/11293101 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@166192 0039d316-1c4b-4281-b951-d872f2087c98
* Android: remove check for JNI method id.bulach@chromium.org2012-10-201-5/+0
| | | | | | | | | | | | | | Following r162186, the JNI method ids are lazily initialized. Also, remove obsolete TODO, as the JNI is now initialized for unittests. BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/11198029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@163117 0039d316-1c4b-4281-b951-d872f2087c98
* Have a clearer error message for Android's GetMimeTypeFromExtensionpeter@chromium.org2012-09-121-1/+2
| | | | | | | | | | | | | The warning is triggered on various layout tests for WebKit, so having a clearer error showing the extension for which we can't get a mime type helps in finding the right solution. BUG= Review URL: https://chromiumcodereview.appspot.com/10911244 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@156369 0039d316-1c4b-4281-b951-d872f2087c98
* Implement net::GetNetworkList() for Android.shouqun.liu@intel.com2012-09-121-0/+7
| | | | | | | | | | | | | * Implement net::GetNetworkList() by java.net.NetworkInterface through JNI. * Remove NetUtilTest.GetNetworkList from net_unittests_apk disabled list. BUG= TEST=net_unittests_apk --gtest-filter=NetUtilTest.GetNetworkList Review URL: https://chromiumcodereview.appspot.com/10905207 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@156257 0039d316-1c4b-4281-b951-d872f2087c98
* Uses gyp "rules" rather than "actions" templates for the JNI generator.bulach@chromium.org2012-07-191-1/+1
| | | | | | | | | | | | | | | | | This allow finer grain control over what is rebuilt. Also, since we have approval over the generated header file name, it greatly simplifies both the generator and also all the gyp files as they no longer need to list the header file and keep in sync with the java file, so the process now is as simple as adding a single java file to the sources. BUG=137069 TEST=build on android Review URL: https://chromiumcodereview.appspot.com/10798010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@147515 0039d316-1c4b-4281-b951-d872f2087c98
* implement HaveOnlyLoopbackAddresses() for androidjames.wei@intel.com2012-06-151-0/+5
| | | | | | | | | | BUG=132033 TEST= Review URL: https://chromiumcodereview.appspot.com/10532080 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@142354 0039d316-1c4b-4281-b951-d872f2087c98
* Update net/android/network_library.cc with fresher code.yfriedman@chromium.org2012-04-241-51/+32
| | | | | | | | | | Also adds it to the build to ensure it doesn't suffer bit-rot again, and include Java-side component. Review URL: http://codereview.chromium.org/10171009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@133591 0039d316-1c4b-4281-b951-d872f2087c98
* Upstream certificate and mime Android implementation.michaelbai@google.com2011-08-111-0/+109
BUG= TEST= Review URL: http://codereview.chromium.org/7538029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@96401 0039d316-1c4b-4281-b951-d872f2087c98