Index: telemetry/telemetry/value/scalar.py |
diff --git a/telemetry/telemetry/value/scalar.py b/telemetry/telemetry/value/scalar.py |
index 2789b81319e9224333c4178683afc3b23dceebec..8dcd482f7fb0f6ee4758f854c91af4c2c452649c 100644 |
--- a/telemetry/telemetry/value/scalar.py |
+++ b/telemetry/telemetry/value/scalar.py |
@@ -78,7 +78,15 @@ class ScalarValue(summarizable.SummarizableValue): |
@staticmethod |
def FromDict(value_dict, page_dict): |
kwargs = value_module.Value.GetConstructorKwArgs(value_dict, page_dict) |
- kwargs['value'] = value_dict['value'] |
+ |
+ # Infinity and NaN are left out of JSON for security reasons that do not |
+ # apply to our use cases, so TBMv2 serializes them as strings, |
+ # but TBMv1 doesn't support them. |
+ if value_dict['value'] in ['Infinity', '-Infinity', 'NaN']: |
+ kwargs['value'] = None |
+ kwargs['none_value_reason'] = 'value was ' + value_dict['value'] |
+ else: |
+ kwargs['value'] = value_dict['value'] |
if 'improvement_direction' in value_dict: |
kwargs['improvement_direction'] = value_dict['improvement_direction'] |