Commit f6ebbf6b authored by mkosiba's avatar mkosiba Committed by Commit bot

Use the new java_cpp_enum rule in net.

This moves most of the generated Java enums under net/ to use the
java_cpp_enum rule removing the need for keeping the enums in
separate list files and the need for the .template files.

BUG=405532

Review URL: https://codereview.chromium.org/599493004

Cr-Commit-Position: refs/heads/master@{#297420}
parent a74c633b
...@@ -39,8 +39,11 @@ LOCAL_SRC_FILES += \ ...@@ -39,8 +39,11 @@ LOCAL_SRC_FILES += \
# Java files generated from .template rules. This list should match list of java dependencies in # Java files generated from .template rules. This list should match list of java dependencies in
# android_webview/android_webview.gyp # android_webview/android_webview.gyp
LOCAL_GENERATED_SOURCES := \ LOCAL_GENERATED_SOURCES := \
$(call intermediates-dir-for,GYP,shared)/enums/window_open_disposition_java/org/chromium/ui/WindowOpenDisposition.java \
$(call intermediates-dir-for,GYP,shared)/enums/bitmap_format_java/org/chromium/ui/gfx/BitmapFormat.java \ $(call intermediates-dir-for,GYP,shared)/enums/bitmap_format_java/org/chromium/ui/gfx/BitmapFormat.java \
$(call intermediates-dir-for,GYP,shared)/enums/cert_verify_status_android_java/org/chromium/net/CertVerifyStatusAndroid.java \
$(call intermediates-dir-for,GYP,shared)/enums/certificate_mime_types_java/org/chromium/net/CertificateMimeType.java \
$(call intermediates-dir-for,GYP,shared)/enums/private_key_types_java/org/chromium/net/PrivateKeyType.java \
$(call intermediates-dir-for,GYP,shared)/enums/window_open_disposition_java/org/chromium/ui/WindowOpenDisposition.java \
$(call intermediates-dir-for,GYP,shared)/templates/org/chromium/base/ApplicationState.java \ $(call intermediates-dir-for,GYP,shared)/templates/org/chromium/base/ApplicationState.java \
$(call intermediates-dir-for,GYP,shared)/templates/org/chromium/base/MemoryPressureLevelList.java \ $(call intermediates-dir-for,GYP,shared)/templates/org/chromium/base/MemoryPressureLevelList.java \
$(call intermediates-dir-for,GYP,shared)/templates/org/chromium/content/browser/GestureEventType.java \ $(call intermediates-dir-for,GYP,shared)/templates/org/chromium/content/browser/GestureEventType.java \
...@@ -52,10 +55,7 @@ $(call intermediates-dir-for,GYP,shared)/templates/org/chromium/content/browser/ ...@@ -52,10 +55,7 @@ $(call intermediates-dir-for,GYP,shared)/templates/org/chromium/content/browser/
$(call intermediates-dir-for,GYP,shared)/templates/org/chromium/content/common/ResultCodes.java \ $(call intermediates-dir-for,GYP,shared)/templates/org/chromium/content/common/ResultCodes.java \
$(call intermediates-dir-for,GYP,shared)/templates/org/chromium/content_public/common/ScreenOrientationValues.java \ $(call intermediates-dir-for,GYP,shared)/templates/org/chromium/content_public/common/ScreenOrientationValues.java \
$(call intermediates-dir-for,GYP,shared)/templates/org/chromium/media/AndroidImageFormat.java \ $(call intermediates-dir-for,GYP,shared)/templates/org/chromium/media/AndroidImageFormat.java \
$(call intermediates-dir-for,GYP,shared)/templates/org/chromium/net/CertificateMimeType.java \
$(call intermediates-dir-for,GYP,shared)/templates/org/chromium/net/CertVerifyStatusAndroid.java \
$(call intermediates-dir-for,GYP,shared)/templates/org/chromium/net/NetError.java \ $(call intermediates-dir-for,GYP,shared)/templates/org/chromium/net/NetError.java \
$(call intermediates-dir-for,GYP,shared)/templates/org/chromium/net/PrivateKeyType.java \
$(call intermediates-dir-for,GYP,shared)/templates/org/chromium/ui/base/PageTransitionTypes.java \ $(call intermediates-dir-for,GYP,shared)/templates/org/chromium/ui/base/PageTransitionTypes.java \
# content dependencies on java components that are provided by the system on # content dependencies on java components that are provided by the system on
......
...@@ -56,6 +56,8 @@ def print_landmines(): ...@@ -56,6 +56,8 @@ def print_landmines():
print '[chromium-dev] PSA: clobber build needed for IDR_INSPECTOR_* compil...' print '[chromium-dev] PSA: clobber build needed for IDR_INSPECTOR_* compil...'
print 'blink_resources.grd changed: crbug.com/400860' print 'blink_resources.grd changed: crbug.com/400860'
print 'ninja dependency cycle: crbug.com/408192' print 'ninja dependency cycle: crbug.com/408192'
if platform() == 'android':
print 'Clobber: To delete stale generated .java files.'
def main(): def main():
......
...@@ -12,10 +12,8 @@ android_library("net_java") { ...@@ -12,10 +12,8 @@ android_library("net_java") {
] ]
srcjar_deps = [ srcjar_deps = [
":cert_verify_status_android_java",
":certificate_mime_types_java",
":net_errors_java", ":net_errors_java",
":private_key_types_java", ":net_android_java_enums_srcjar",
":remote_android_keystore_aidl", ":remote_android_keystore_aidl",
] ]
} }
...@@ -51,33 +49,16 @@ java_cpp_template("net_errors_java") { ...@@ -51,33 +49,16 @@ java_cpp_template("net_errors_java") {
] ]
} }
java_cpp_template("certificate_mime_types_java") { java_cpp_enum("net_android_java_enums_srcjar") {
package_name = "org/chromium/net"
sources = [
"java/CertificateMimeType.template",
]
inputs = [
"../base/mime_util_certificate_type_list.h"
]
}
java_cpp_template("cert_verify_status_android_java") {
package_name = "org/chromium/net"
sources = [ sources = [
"java/CertVerifyStatusAndroid.template", "../base/mime_util.h",
"cert_verify_result_android.h",
"keystore.h"
] ]
inputs = [ outputs = [
"cert_verify_status_android_list.h" "org/chromium/net/CertificateMimeType.java",
] "org/chromium/net/CertVerifyStatusAndroid.java",
} "org/chromium/net/PrivateKeyType.java",
java_cpp_template("private_key_types_java") {
package_name = "org/chromium/net"
sources = [
"java/PrivateKeyType.template",
]
inputs = [
"private_key_type_list.h"
] ]
} }
......
...@@ -16,10 +16,28 @@ namespace net { ...@@ -16,10 +16,28 @@ namespace net {
namespace android { namespace android {
// The list of certificate verification results returned from Java side to the
// C++ side.
//
// A Java counterpart will be generated for this enum.
// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.net
enum CertVerifyStatusAndroid { enum CertVerifyStatusAndroid {
#define CERT_VERIFY_STATUS_ANDROID(label, value) VERIFY_ ## label = value, // Certificate is trusted.
#include "net/android/cert_verify_status_android_list.h" CERT_VERIFY_STATUS_ANDROID_OK = 0,
#undef CERT_VERIFY_STATUS_ANDROID // Certificate verification could not be conducted.
CERT_VERIFY_STATUS_ANDROID_FAILED = -1,
// Certificate is not trusted due to non-trusted root of the certificate
// chain.
CERT_VERIFY_STATUS_ANDROID_NO_TRUSTED_ROOT = -2,
// Certificate is not trusted because it has expired.
CERT_VERIFY_STATUS_ANDROID_EXPIRED = -3,
// Certificate is not trusted because it is not valid yet.
CERT_VERIFY_STATUS_ANDROID_NOT_YET_VALID = -4,
// Certificate is not trusted because it could not be parsed.
CERT_VERIFY_STATUS_ANDROID_UNABLE_TO_PARSE = -5,
// Certificate is not trusted because it has an extendedKeyUsage field, but
// its value is not correct for a web server.
CERT_VERIFY_STATUS_ANDROID_INCORRECT_KEY_USAGE = -6,
}; };
// Extract parameters out of an AndroidCertVerifyResult object. // Extract parameters out of an AndroidCertVerifyResult object.
......
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// This file intentionally does not have header guards, it's included
// inside a macro to generate enum values.
// This file contains the list of certificate verification results returned
// from Java side to the C++ side.
// Certificate is trusted.
CERT_VERIFY_STATUS_ANDROID(OK, 0)
// Certificate verification could not be conducted.
CERT_VERIFY_STATUS_ANDROID(FAILED, -1)
// Certificate is not trusted due to non-trusted root of the certificate chain.
CERT_VERIFY_STATUS_ANDROID(NO_TRUSTED_ROOT, -2)
// Certificate is not trusted because it has expired.
CERT_VERIFY_STATUS_ANDROID(EXPIRED, -3)
// Certificate is not trusted because it is not valid yet.
CERT_VERIFY_STATUS_ANDROID(NOT_YET_VALID, -4)
// Certificate is not trusted because it could not be parsed.
CERT_VERIFY_STATUS_ANDROID(UNABLE_TO_PARSE, -5)
// Certificate is not trusted because it has an extendedKeyUsage field, but
// its value is not correct for a web server.
CERT_VERIFY_STATUS_ANDROID(INCORRECT_KEY_USAGE, -6)
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.net;
public class CertVerifyStatusAndroid {
#define CERT_VERIFY_STATUS_ANDROID(name, value) public static final int VERIFY_##name = value;
#include "net/android/cert_verify_status_android_list.h"
}
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.net;
public class CertificateMimeType {
#define CERTIFICATE_MIME_TYPE(name, value) public static final int name = value;
#include "net/base/mime_util_certificate_type_list.h"
#undef CERTIFICATE_MIME_TYPE
}
// Copyright (c) 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.net;
public class PrivateKeyType {
#define DEFINE_PRIVATE_KEY_TYPE(name,value) public static final int name = value;
#include "net/android/private_key_type_list.h"
}
...@@ -214,9 +214,9 @@ class AndroidNetworkLibrary { ...@@ -214,9 +214,9 @@ class AndroidNetworkLibrary {
try { try {
return X509Util.verifyServerCertificates(certChain, authType, host); return X509Util.verifyServerCertificates(certChain, authType, host);
} catch (KeyStoreException e) { } catch (KeyStoreException e) {
return new AndroidCertVerifyResult(CertVerifyStatusAndroid.VERIFY_FAILED); return new AndroidCertVerifyResult(CertVerifyStatusAndroid.FAILED);
} catch (NoSuchAlgorithmException e) { } catch (NoSuchAlgorithmException e) {
return new AndroidCertVerifyResult(CertVerifyStatusAndroid.VERIFY_FAILED); return new AndroidCertVerifyResult(CertVerifyStatusAndroid.FAILED);
} }
} }
......
...@@ -433,7 +433,7 @@ public class X509Util { ...@@ -433,7 +433,7 @@ public class X509Util {
try { try {
ensureInitialized(); ensureInitialized();
} catch (CertificateException e) { } catch (CertificateException e) {
return new AndroidCertVerifyResult(CertVerifyStatusAndroid.VERIFY_FAILED); return new AndroidCertVerifyResult(CertVerifyStatusAndroid.FAILED);
} }
X509Certificate[] serverCertificates = new X509Certificate[certChain.length]; X509Certificate[] serverCertificates = new X509Certificate[certChain.length];
...@@ -442,7 +442,7 @@ public class X509Util { ...@@ -442,7 +442,7 @@ public class X509Util {
serverCertificates[i] = createCertificateFromBytes(certChain[i]); serverCertificates[i] = createCertificateFromBytes(certChain[i]);
} }
} catch (CertificateException e) { } catch (CertificateException e) {
return new AndroidCertVerifyResult(CertVerifyStatusAndroid.VERIFY_UNABLE_TO_PARSE); return new AndroidCertVerifyResult(CertVerifyStatusAndroid.UNABLE_TO_PARSE);
} }
// Expired and not yet valid certificates would be rejected by the trust managers, but the // Expired and not yet valid certificates would be rejected by the trust managers, but the
...@@ -453,20 +453,20 @@ public class X509Util { ...@@ -453,20 +453,20 @@ public class X509Util {
serverCertificates[0].checkValidity(); serverCertificates[0].checkValidity();
if (!verifyKeyUsage(serverCertificates[0])) { if (!verifyKeyUsage(serverCertificates[0])) {
return new AndroidCertVerifyResult( return new AndroidCertVerifyResult(
CertVerifyStatusAndroid.VERIFY_INCORRECT_KEY_USAGE); CertVerifyStatusAndroid.INCORRECT_KEY_USAGE);
} }
} catch (CertificateExpiredException e) { } catch (CertificateExpiredException e) {
return new AndroidCertVerifyResult(CertVerifyStatusAndroid.VERIFY_EXPIRED); return new AndroidCertVerifyResult(CertVerifyStatusAndroid.EXPIRED);
} catch (CertificateNotYetValidException e) { } catch (CertificateNotYetValidException e) {
return new AndroidCertVerifyResult(CertVerifyStatusAndroid.VERIFY_NOT_YET_VALID); return new AndroidCertVerifyResult(CertVerifyStatusAndroid.NOT_YET_VALID);
} catch (CertificateException e) { } catch (CertificateException e) {
return new AndroidCertVerifyResult(CertVerifyStatusAndroid.VERIFY_FAILED); return new AndroidCertVerifyResult(CertVerifyStatusAndroid.FAILED);
} }
synchronized (sLock) { synchronized (sLock) {
// If no trust manager was found, fail without crashing on the null pointer. // If no trust manager was found, fail without crashing on the null pointer.
if (sDefaultTrustManager == null) if (sDefaultTrustManager == null)
return new AndroidCertVerifyResult(CertVerifyStatusAndroid.VERIFY_FAILED); return new AndroidCertVerifyResult(CertVerifyStatusAndroid.FAILED);
List<X509Certificate> verifiedChain; List<X509Certificate> verifiedChain;
try { try {
...@@ -482,7 +482,7 @@ public class X509Util { ...@@ -482,7 +482,7 @@ public class X509Util {
Log.i(TAG, "Failed to validate the certificate chain, error: " + Log.i(TAG, "Failed to validate the certificate chain, error: " +
eDefaultManager.getMessage()); eDefaultManager.getMessage());
return new AndroidCertVerifyResult( return new AndroidCertVerifyResult(
CertVerifyStatusAndroid.VERIFY_NO_TRUSTED_ROOT); CertVerifyStatusAndroid.NO_TRUSTED_ROOT);
} }
} }
...@@ -492,7 +492,7 @@ public class X509Util { ...@@ -492,7 +492,7 @@ public class X509Util {
isIssuedByKnownRoot = isKnownRoot(root); isIssuedByKnownRoot = isKnownRoot(root);
} }
return new AndroidCertVerifyResult(CertVerifyStatusAndroid.VERIFY_OK, return new AndroidCertVerifyResult(CertVerifyStatusAndroid.OK,
isIssuedByKnownRoot, verifiedChain); isIssuedByKnownRoot, verifiedChain);
} }
} }
......
...@@ -26,10 +26,14 @@ struct AndroidEVP_PKEY; ...@@ -26,10 +26,14 @@ struct AndroidEVP_PKEY;
// Define a list of constants describing private key types. The // Define a list of constants describing private key types. The
// values are shared with Java through org.chromium.net.PrivateKeyType. // values are shared with Java through org.chromium.net.PrivateKeyType.
// Example: PRIVATE_KEY_TYPE_RSA. // Example: PRIVATE_KEY_TYPE_RSA.
//
// A Java counterpart will be generated for this enum.
// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.net
enum PrivateKeyType { enum PrivateKeyType {
#define DEFINE_PRIVATE_KEY_TYPE(name,value) PRIVATE_KEY_TYPE_ ## name = value, PRIVATE_KEY_TYPE_RSA = 0,
#include "net/android/private_key_type_list.h" PRIVATE_KEY_TYPE_DSA = 1,
#undef DEFINE_PRIVATE_KEY_TYPE PRIVATE_KEY_TYPE_ECDSA = 2,
PRIVATE_KEY_TYPE_INVALID = 255,
}; };
// Returns the modulus of a given RSAPrivateKey platform object, // Returns the modulus of a given RSAPrivateKey platform object,
......
// Copyright (c) 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef DEFINE_PRIVATE_KEY_TYPE
#error "Please define DEFINE_PRIVATE_KEY_TYPE before including this file."
#endif
DEFINE_PRIVATE_KEY_TYPE(RSA, 0)
DEFINE_PRIVATE_KEY_TYPE(DSA, 1)
DEFINE_PRIVATE_KEY_TYPE(ECDSA, 2)
DEFINE_PRIVATE_KEY_TYPE(INVALID, 255)
...@@ -147,10 +147,14 @@ NET_EXPORT void RemoveProprietaryMediaTypesAndCodecsForTests(); ...@@ -147,10 +147,14 @@ NET_EXPORT void RemoveProprietaryMediaTypesAndCodecsForTests();
NET_EXPORT const std::string GetIANAMediaType(const std::string& mime_type); NET_EXPORT const std::string GetIANAMediaType(const std::string& mime_type);
// A list of supported certificate-related mime types. // A list of supported certificate-related mime types.
//
// A Java counterpart will be generated for this enum.
// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.net
enum CertificateMimeType { enum CertificateMimeType {
#define CERTIFICATE_MIME_TYPE(name, value) CERTIFICATE_MIME_TYPE_ ## name = value, CERTIFICATE_MIME_TYPE_UNKNOWN,
#include "net/base/mime_util_certificate_type_list.h" CERTIFICATE_MIME_TYPE_X509_USER_CERT,
#undef CERTIFICATE_MIME_TYPE CERTIFICATE_MIME_TYPE_X509_CA_CERT,
CERTIFICATE_MIME_TYPE_PKCS12_ARCHIVE,
}; };
NET_EXPORT CertificateMimeType GetCertificateMimeTypeForMimeType( NET_EXPORT CertificateMimeType GetCertificateMimeTypeForMimeType(
......
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// This file intentionally does not have header guards, it's included
// inside a macro to generate enum values.
// This file contains the list of certificate MIME types.
CERTIFICATE_MIME_TYPE(UNKNOWN, 0)
CERTIFICATE_MIME_TYPE(X509_USER_CERT, 1)
CERTIFICATE_MIME_TYPE(X509_CA_CERT, 2)
CERTIFICATE_MIME_TYPE(PKCS12_ARCHIVE, 3)
...@@ -38,21 +38,21 @@ bool VerifyFromAndroidTrustManager(const std::vector<std::string>& cert_bytes, ...@@ -38,21 +38,21 @@ bool VerifyFromAndroidTrustManager(const std::vector<std::string>& cert_bytes,
&status, &verify_result->is_issued_by_known_root, &status, &verify_result->is_issued_by_known_root,
&verified_chain); &verified_chain);
switch (status) { switch (status) {
case android::VERIFY_FAILED: case android::CERT_VERIFY_STATUS_ANDROID_FAILED:
return false; return false;
case android::VERIFY_OK: case android::CERT_VERIFY_STATUS_ANDROID_OK:
break; break;
case android::VERIFY_NO_TRUSTED_ROOT: case android::CERT_VERIFY_STATUS_ANDROID_NO_TRUSTED_ROOT:
verify_result->cert_status |= CERT_STATUS_AUTHORITY_INVALID; verify_result->cert_status |= CERT_STATUS_AUTHORITY_INVALID;
break; break;
case android::VERIFY_EXPIRED: case android::CERT_VERIFY_STATUS_ANDROID_EXPIRED:
case android::VERIFY_NOT_YET_VALID: case android::CERT_VERIFY_STATUS_ANDROID_NOT_YET_VALID:
verify_result->cert_status |= CERT_STATUS_DATE_INVALID; verify_result->cert_status |= CERT_STATUS_DATE_INVALID;
break; break;
case android::VERIFY_UNABLE_TO_PARSE: case android::CERT_VERIFY_STATUS_ANDROID_UNABLE_TO_PARSE:
verify_result->cert_status |= CERT_STATUS_INVALID; verify_result->cert_status |= CERT_STATUS_INVALID;
break; break;
case android::VERIFY_INCORRECT_KEY_USAGE: case android::CERT_VERIFY_STATUS_ANDROID_INCORRECT_KEY_USAGE:
verify_result->cert_status |= CERT_STATUS_INVALID; verify_result->cert_status |= CERT_STATUS_INVALID;
break; break;
default: default:
...@@ -85,7 +85,8 @@ bool VerifyFromAndroidTrustManager(const std::vector<std::string>& cert_bytes, ...@@ -85,7 +85,8 @@ bool VerifyFromAndroidTrustManager(const std::vector<std::string>& cert_bytes,
// correct, as a full chain may have been constructed and then failed to // correct, as a full chain may have been constructed and then failed to
// validate. However, if that is the case, the more serious error will // validate. However, if that is the case, the more serious error will
// override any SHA-1 considerations. // override any SHA-1 considerations.
size_t correction_for_root = (status == android::VERIFY_OK) ? 1 : 0; size_t correction_for_root =
(status == android::CERT_VERIFY_STATUS_ANDROID_OK) ? 1 : 0;
for (size_t i = 0; i < chain.size() - correction_for_root; ++i) { for (size_t i = 0; i < chain.size() - correction_for_root; ++i) {
int sig_alg = OBJ_obj2nid(chain[i]->sig_alg->algorithm); int sig_alg = OBJ_obj2nid(chain[i]->sig_alg->algorithm);
if (sig_alg == NID_md2WithRSAEncryption) { if (sig_alg == NID_md2WithRSAEncryption) {
......
...@@ -1620,38 +1620,26 @@ ...@@ -1620,38 +1620,26 @@
{ {
'target_name': 'certificate_mime_types_java', 'target_name': 'certificate_mime_types_java',
'type': 'none', 'type': 'none',
'sources': [
'android/java/CertificateMimeType.template',
],
'variables': { 'variables': {
'package_name': 'org/chromium/net', 'source_file': 'base/mime_util.h',
'template_deps': ['base/mime_util_certificate_type_list.h'],
}, },
'includes': [ '../build/android/java_cpp_template.gypi' ], 'includes': [ '../build/android/java_cpp_enum.gypi' ],
}, },
{ {
'target_name': 'cert_verify_status_android_java', 'target_name': 'cert_verify_status_android_java',
'type': 'none', 'type': 'none',
'sources': [
'android/java/CertVerifyStatusAndroid.template',
],
'variables': { 'variables': {
'package_name': 'org/chromium/net', 'source_file': 'android/cert_verify_result_android.h',
'template_deps': ['android/cert_verify_status_android_list.h'],
}, },
'includes': [ '../build/android/java_cpp_template.gypi' ], 'includes': [ '../build/android/java_cpp_enum.gypi' ],
}, },
{ {
'target_name': 'private_key_types_java', 'target_name': 'private_key_types_java',
'type': 'none', 'type': 'none',
'sources': [
'android/java/PrivateKeyType.template',
],
'variables': { 'variables': {
'package_name': 'org/chromium/net', 'source_file': 'android/keystore.h',
'template_deps': ['android/private_key_type_list.h'],
}, },
'includes': [ '../build/android/java_cpp_template.gypi' ], 'includes': [ '../build/android/java_cpp_enum.gypi' ],
}, },
{ {
'target_name': 'net_unittests_apk', 'target_name': 'net_unittests_apk',
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment