// Copyright 2016 Google Inc. All Rights Reserved. #include "metrics_group.h" #include "metrics_front_end.h" namespace wvcdm { namespace metrics { MetricsGroup::MetricsGroup() : cdm_engine_add_key_( "/drm/widevine/cdm_engine/add_key/time", "error"), cdm_engine_close_session_( "/drm/widevine/cdm_engine/close_session/time", "error"), cdm_engine_decrypt_( "/drm/widevine/cdm_engine/decrypt/time", "error"), cdm_engine_find_session_for_key_( "/drm/widevine/cdm_engine/find_session_for_key/time", "success"), cdm_engine_generate_key_request_( "/drm/widevine/cdm_engine/generate_key_request/time", "error"), cdm_engine_get_provisioning_request_( "/drm/widevine/cdm_engine/get_provisioning_request/time", "error"), cdm_engine_get_usage_info_( "/drm/widevine/cdm_engine/get_usage_info/time", "error"), cdm_engine_handle_provisioning_response_( "/drm/widevine/cdm_engine/handle_provisioning_response/time", "error"), cdm_engine_life_span_( "/drm/widevine/cdm_engine/life_span/time"), cdm_engine_open_key_set_session_( "/drm/widevine/cdm_engine/open_key_set_session/time", "error"), cdm_engine_open_session_( "/drm/widevine/cdm_engine/open_session/time", "error"), cdm_engine_query_key_status_( "/drm/widevine/cdm_engine/query_key_status/time", "error"), cdm_engine_release_all_usage_info_( "/drm/widevine/cdm_engine/release_all_usage_info/time", "error"), cdm_engine_release_usage_info_( "/drm/widevine/cdm_engine/release_usage_info/time", "error"), cdm_engine_remove_keys_( "/drm/widevine/cdm_engine/remove_keys/time", "error"), cdm_engine_restore_key_( "/drm/widevine/cdm_engine/restore_key/time", "error"), cdm_engine_unprovision_( "/drm/widevine/cdm_engine/unprovision/time", "error", "security_level"), cdm_session_life_span_( "/drm/widevine/cdm_session/life_span/time"), cdm_session_renew_key_( "/drm/widevine/cdm_session/renew_key/time", "error"), cdm_session_restore_offline_session_( "/drm/widevine/cdm_session/restore_offline_session/time", "error"), cdm_session_restore_usage_session_( "/drm/widevine/cdm_session/restore_usage_session/time", "error"), crypto_session_delete_all_usage_reports_( "/drm/widevine/crypto_session/delete_all_usage_reports/time", "error"), crypto_session_delete_multiple_usage_information_( "/drm/widevine/crypto_session/delete_multiple_usage_information/time", "error"), crypto_session_generic_decrypt_( "/drm/widevine/crypto_session/generic_decrypt/time", "error", "length", "algorithm"), crypto_session_generic_encrypt_( "/drm/widevine/crypto_session/generic_encrypt/time", "error", "length", "algorithm"), crypto_session_generic_sign_( "/drm/widevine/crypto_session/generic_sign/time", "error", "length", "algorithm"), crypto_session_generic_verify_( "/drm/widevine/crypto_session/generic_verify/time", "error", "length", "algorithm"), crypto_session_get_device_unique_id_( "/drm/widevine/crypto_session/get_device_unique_id/time", "success"), crypto_session_get_security_level_( "/drm/widevine/crypto_session/get_security_level/time", "security_level"), crypto_session_get_system_id_( "/drm/widevine/crypto_session/get_system_id/time", "success", "id"), crypto_session_get_token_( "/drm/widevine/crypto_session/get_token/time", "success"), crypto_session_life_span_( "/drm/widevine/crypto_session/life_span/time"), crypto_session_load_certificate_private_key_( "/drm/widevine/crypto_session/load_certificate_private_key/time", "success"), crypto_session_open_( "/drm/widevine/crypto_session/open/time", "error", "security_level"), crypto_session_update_usage_information_( "/drm/widevine/crypto_session/update_usage_information/time", "error"), crypto_session_usage_information_support_( "/drm/widevine/crypto_session/usage_information_support/time", "success"), oemcrypto_api_version_( "/drm/widevine/oemcrypto/api_version/time", "version", "security_level"), oemcrypto_close_session_( "/drm/widevine/oemcrypto/close_session/time", "error"), oemcrypto_copy_buffer_( "/drm/widevine/oemcrypto/copy_buffer/time", "error", "security_level", "length"), oemcrypto_deactivate_usage_entry_( "/drm/widevine/oemcrypto/deactivate_usage_entry/time", "error"), oemcrypto_decrypt_cenc_( "/drm/widevine/oemcrypto/decrypt_cenc/time", "error", "length"), oemcrypto_delete_usage_entry_( "/drm/widevine/oemcrypto/delete_usage_entry/time", "error"), oemcrypto_delete_usage_table_( "/drm/widevine/oemcrypto/delete_usage_table/time", "error"), oemcrypto_derive_keys_from_session_key_( "/drm/widevine/oemcrypto/derive_keys_from_session_key/time", "error"), oemcrypto_force_delete_usage_entry_( "/drm/widevine/oemcrypto/force_delete_usage_entry/time", "error"), oemcrypto_generate_derived_keys_( "/drm/widevine/oemcrypto/generate_derived_keys/time", "error"), oemcrypto_generate_nonce_( "/drm/widevine/oemcrypto/generate_nonce/time", "error"), oemcrypto_generate_rsa_signature_( "/drm/widevine/oemcrypto/generate_rsa_signature/time", "error", "length"), oemcrypto_generate_signature_( "/drm/widevine/oemcrypto/generate_signature/time", "error", "length"), oemcrypto_generic_decrypt_( "/drm/widevine/oemcrypto/generic_decrypt/time", "error", "length"), oemcrypto_generic_encrypt_( "/drm/widevine/oemcrypto/generic_encrypt/time", "error", "length"), oemcrypto_generic_sign_( "/drm/widevine/oemcrypto/generic_sign/time", "error", "length"), oemcrypto_generic_verify_( "/drm/widevine/oemcrypto/generic_verify/time", "error", "length"), oemcrypto_get_device_id_( "/drm/widevine/oemcrypto/get_device_id/time", "error", "security_level"), oemcrypto_get_hdcp_capability_( "/drm/widevine/oemcrypto/get_hdcp_capability/time", "error", "security_level"), oemcrypto_get_key_data_( "/drm/widevine/oemcrypto/get_key_data/time", "error", "length", "security_level"), oemcrypto_get_max_number_of_sessions_( "/drm/widevine/oemcrypto/get_max_number_of_sessions/time", "error", "security_level"), oemcrypto_get_number_of_open_sessions_( "/drm/widevine/oemcrypto/get_number_of_open_sessions/time", "error", "security_level"), oemcrypto_get_oem_public_certificate_( "/drm/widevine/oemcrypto/get_oem_public_certificate/time", "error"), oemcrypto_get_provisioning_method_( "/drm/widevine/oemcrypto/get_provisioning_method/time", "method", "security_level"), oemcrypto_get_random_( "/drm/widevine/oemcrypto/get_random/time", "error", "length"), oemcrypto_initialize_( "/drm/widevine/oemcrypto/initialize/time", "error"), oemcrypto_install_keybox_( "/drm/widevine/oemcrypto/install_keybox/time", "error", "security_level"), oemcrypto_is_anti_rollback_hw_present_( "/drm/widevine/oemcrypto/is_anti_rollback_hw_present/time", "success", "security_level"), oemcrypto_is_keybox_valid_( "/drm/widevine/oemcrypto/is_keybox_valid/time", "error", "security_level"), oemcrypto_load_device_rsa_key_( "/drm/widevine/oemcrypto/load_device_rsa_key/time", "error"), oemcrypto_load_keys_( "/drm/widevine/oemcrypto/load_keys/time", "error"), oemcrypto_load_test_keybox_( "/drm/widevine/oemcrypto/load_test_keybox/time", "error"), oemcrypto_load_test_rsa_key_( "/drm/widevine/oemcrypto/load_test_rsa_key/time", "error"), oemcrypto_open_session_( "/drm/widevine/oemcrypto/open_session/time", "error", "security_level"), oemcrypto_refresh_keys_( "/drm/widevine/oemcrypto/refresh_keys/time", "error"), oemcrypto_report_usage_( "/drm/widevine/oemcrypto/report_usage/time", "error"), oemcrypto_rewrap_device_rsa_key_( "/drm/widevine/oemcrypto/rewrap_device_rsa_key/time", "error"), oemcrypto_rewrap_device_rsa_key_30_( "/drm/widevine/oemcrypto/rewrap_device_rsa_key_30/time", "error"), oemcrypto_security_level_( "/drm/widevine/oemcrypto/security_level/time", "result", "security_level"), oemcrypto_security_patch_level_( "/drm/widevine/oemcrypto/security_patch_level/time", "patch", "security_level"), oemcrypto_select_key_( "/drm/widevine/oemcrypto/select_key/time", "error"), oemcrypto_supports_usage_table_( "/drm/widevine/oemcrypto/supports_usage_table/time", "error", "security_level"), oemcrypto_update_usage_table_( "/drm/widevine/oemcrypto/update_usage_table/time", "error"), oemcrypto_wrap_keybox_( "/drm/widevine/oemcrypto/wrap_keybox/time", "error"), oemcrypto_initialization_mode_( "/drm/widevine/oemcrypto/initialization_mode", "message"), oemcrypto_l1_api_version_( "/drm/widevine/oemcrypto/l1_api_version", "version", "min_version") { } MetricsGroup::~MetricsGroup() { #if 0 // Disable metrics for now to work around P0:b/35093325 MetricNotification* subscriber = MFE.CreateSubscriber(); if (subscriber) { Publish(subscriber); } delete subscriber; #endif } void MetricsGroup::Publish(MetricNotification* subscriber) { cdm_engine_add_key_.Publish(subscriber); cdm_engine_close_session_.Publish(subscriber); cdm_engine_decrypt_.Publish(subscriber); cdm_engine_find_session_for_key_.Publish(subscriber); cdm_engine_generate_key_request_.Publish(subscriber); cdm_engine_get_provisioning_request_.Publish(subscriber); cdm_engine_get_usage_info_.Publish(subscriber); cdm_engine_handle_provisioning_response_.Publish(subscriber); cdm_engine_life_span_.Publish(subscriber); cdm_engine_open_key_set_session_.Publish(subscriber); cdm_engine_open_session_.Publish(subscriber); cdm_engine_query_key_status_.Publish(subscriber); cdm_engine_release_all_usage_info_.Publish(subscriber); cdm_engine_release_usage_info_.Publish(subscriber); cdm_engine_remove_keys_.Publish(subscriber); cdm_engine_restore_key_.Publish(subscriber); cdm_engine_unprovision_.Publish(subscriber); cdm_session_life_span_.Publish(subscriber); cdm_session_renew_key_.Publish(subscriber); cdm_session_restore_offline_session_.Publish(subscriber); cdm_session_restore_usage_session_.Publish(subscriber); crypto_session_delete_all_usage_reports_.Publish(subscriber); crypto_session_delete_multiple_usage_information_.Publish(subscriber); crypto_session_generic_decrypt_.Publish(subscriber); crypto_session_generic_sign_.Publish(subscriber); crypto_session_generic_verify_.Publish(subscriber); crypto_session_get_device_unique_id_.Publish(subscriber); crypto_session_get_security_level_.Publish(subscriber); crypto_session_get_system_id_.Publish(subscriber); crypto_session_get_token_.Publish(subscriber); crypto_session_life_span_.Publish(subscriber); crypto_session_load_certificate_private_key_.Publish(subscriber); crypto_session_open_.Publish(subscriber); crypto_session_update_usage_information_.Publish(subscriber); crypto_session_usage_information_support_.Publish(subscriber); oemcrypto_api_version_.Publish(subscriber); oemcrypto_close_session_.Publish(subscriber); oemcrypto_copy_buffer_.Publish(subscriber); oemcrypto_deactivate_usage_entry_.Publish(subscriber); oemcrypto_decrypt_cenc_.Publish(subscriber); oemcrypto_delete_usage_entry_.Publish(subscriber); oemcrypto_delete_usage_table_.Publish(subscriber); oemcrypto_derive_keys_from_session_key_.Publish(subscriber); oemcrypto_force_delete_usage_entry_.Publish(subscriber); oemcrypto_generate_derived_keys_.Publish(subscriber); oemcrypto_generate_nonce_.Publish(subscriber); oemcrypto_generate_rsa_signature_.Publish(subscriber); oemcrypto_generate_signature_.Publish(subscriber); oemcrypto_generic_decrypt_.Publish(subscriber); oemcrypto_generic_encrypt_.Publish(subscriber); oemcrypto_generic_sign_.Publish(subscriber); oemcrypto_generic_verify_.Publish(subscriber); oemcrypto_get_device_id_.Publish(subscriber); oemcrypto_get_hdcp_capability_.Publish(subscriber); oemcrypto_get_key_data_.Publish(subscriber); oemcrypto_get_max_number_of_sessions_.Publish(subscriber); oemcrypto_get_number_of_open_sessions_.Publish(subscriber); oemcrypto_get_oem_public_certificate_.Publish(subscriber); oemcrypto_get_provisioning_method_.Publish(subscriber); oemcrypto_get_random_.Publish(subscriber); oemcrypto_install_keybox_.Publish(subscriber); oemcrypto_is_anti_rollback_hw_present_.Publish(subscriber); oemcrypto_is_keybox_valid_.Publish(subscriber); oemcrypto_load_device_rsa_key_.Publish(subscriber); oemcrypto_load_keys_.Publish(subscriber); oemcrypto_load_test_keybox_.Publish(subscriber); oemcrypto_load_test_rsa_key_.Publish(subscriber); oemcrypto_open_session_.Publish(subscriber); oemcrypto_refresh_keys_.Publish(subscriber); oemcrypto_report_usage_.Publish(subscriber); oemcrypto_rewrap_device_rsa_key_.Publish(subscriber); oemcrypto_rewrap_device_rsa_key_30_.Publish(subscriber); oemcrypto_security_level_.Publish(subscriber); oemcrypto_security_patch_level_.Publish(subscriber); oemcrypto_select_key_.Publish(subscriber); oemcrypto_supports_usage_table_.Publish(subscriber); oemcrypto_update_usage_table_.Publish(subscriber); oemcrypto_wrap_keybox_.Publish(subscriber); oemcrypto_initialization_mode_.Publish(subscriber); oemcrypto_l1_api_version_.Publish(subscriber); } } // metrics } // wvcdm