{
  "ua": [
    "FF64"
  ],
  "results": {
    "/media-source/mediasource-appendwindow.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Test correctly reset appendWindowStart and appendWindowEnd values": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test set wrong values to appendWindowStart and appendWindowEnd.": {
          "stNum": 1,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test set correct values to appendWindowStart and appendWindowEnd.": {
          "stNum": 2,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test appendwindow throw error when mediasource object is not associated with a sourebuffer.": {
          "stNum": 3,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test set appendWindowStart and appendWindowEnd when source buffer updating.": {
          "stNum": 4,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test appendWindowStart and appendWindowEnd value after a sourceBuffer.abort().": {
          "stNum": 5,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test read appendWindowStart and appendWindowEnd initial values.": {
          "stNum": 6,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/mediasource-config-change-mp4-av-framesize.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Tests mp4 frame size changes in multiplexed content.": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/mediasource-is-type-supported.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Test invalid MIME format \"video\"": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test invalid MIME format \"video/\"": {
          "stNum": 1,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test invalid MIME format \"video/webm\"": {
          "stNum": 2,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "assert_equals: supported expected false but got true"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Test invalid MIME format \"video/webm;\"": {
          "stNum": 3,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "assert_equals: supported expected false but got true"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Test invalid MIME format \"video/webm;codecs\"": {
          "stNum": 4,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "assert_equals: supported expected false but got true"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Test invalid MIME format \"video/webm;codecs=\"": {
          "stNum": 5,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "assert_equals: supported expected false but got true"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Test invalid MIME format \"video/webm;codecs=\"\"": {
          "stNum": 6,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "assert_equals: supported expected false but got true"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Test invalid MIME format \"video/webm;codecs=\"\"\"": {
          "stNum": 7,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "assert_equals: supported expected false but got true"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Test invalid MIME format \"video/webm;codecs=\",\"\"": {
          "stNum": 8,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test invalid MIME format \"unsupported_mediatype\"": {
          "stNum": 9,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test invalid MIME format \"\"": {
          "stNum": 10,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test invalid MIME format \"null\"": {
          "stNum": 11,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test invalid MSE MIME media type \"xxx\"": {
          "stNum": 12,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test invalid MSE MIME media type \"text/html\"": {
          "stNum": 13,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test invalid MSE MIME media type \"image/jpeg\"": {
          "stNum": 14,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test invalid mismatch between MIME type and codec ID \"audio/webm;codecs=\"vp8\"\"": {
          "stNum": 15,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test invalid mismatch between MIME type and codec ID \"audio/mp4;codecs=\"avc1.4d001e\"\"": {
          "stNum": 16,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test invalid mismatch between MIME type and codec ID \"audio/mp4;codecs=\"vorbis\"\"": {
          "stNum": 17,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test invalid mismatch between MIME type and codec ID \"audio/webm;codecs=\"mp4a.40.2\"\"": {
          "stNum": 18,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test invalid mismatch between MIME type and codec ID \"video/mp4;codecs=\"vp8\"\"": {
          "stNum": 19,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test invalid mismatch between MIME type and codec ID \"video/mp4;codecs=\"vorbis\"\"": {
          "stNum": 20,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test invalid mismatch between MIME type and codec ID \"video/webm;codecs=\"mp4a.40.2\"\"": {
          "stNum": 21,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test invalid codec ID \"audio/mp4;codecs=\"mp4a\"\"": {
          "stNum": 22,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test invalid codec ID \"audio/mp4;codecs=\"mp4a.40\"\"": {
          "stNum": 23,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test invalid codec ID \"audio/mp4;codecs=\"mp4a.40.\"\"": {
          "stNum": 24,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test invalid codec ID \"audio/mp4;codecs=\"mp4a.67.3\"\"": {
          "stNum": 25,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test valid WebM type \"video/webm;codecs=\"vp8\"\"": {
          "stNum": 26,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test valid WebM type \"video/webm;codecs=\"vorbis\"\"": {
          "stNum": 27,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test valid WebM type \"video/webm;codecs=\"vp8,vorbis\"\"": {
          "stNum": 28,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test valid WebM type \"video/webm;codecs=\"vorbis, vp8\"\"": {
          "stNum": 29,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test valid WebM type \"audio/webm;codecs=\"vorbis\"\"": {
          "stNum": 30,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test valid WebM type \"AUDIO/WEBM;CODECS=\"vorbis\"\"": {
          "stNum": 31,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test valid MP4 type \"video/mp4;codecs=\"avc1.4d001e\"\"": {
          "stNum": 32,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test valid MP4 type \"video/mp4;codecs=\"avc1.42001e\"\"": {
          "stNum": 33,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test valid MP4 type \"audio/mp4;codecs=\"mp4a.40.2\"\"": {
          "stNum": 34,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test valid MP4 type \"audio/mp4;codecs=\"mp4a.40.5\"\"": {
          "stNum": 35,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test valid MP4 type \"audio/mp4;codecs=\"mp4a.67\"\"": {
          "stNum": 36,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test valid MP4 type \"video/mp4;codecs=\"mp4a.40.2\"\"": {
          "stNum": 37,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test valid MP4 type \"video/mp4;codecs=\"avc1.4d001e,mp4a.40.2\"\"": {
          "stNum": 38,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test valid MP4 type \"video/mp4;codecs=\"mp4a.40.2 , avc1.4d001e \"\"": {
          "stNum": 39,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test valid MP4 type \"video/mp4;codecs=\"avc1.4d001e,mp4a.40.5\"\"": {
          "stNum": 40,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/mediasource-seek-during-pending-seek.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Test seeking to a new location before transitioning beyond HAVE_METADATA.": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test seeking to a new location during a pending seek.": {
          "stNum": 1,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/SourceBuffer-abort-removed.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "SourceBuffer#abort (video/webm; codecs=\"vorbis,vp8\") : if this object has been removed from the sourceBuffers attribute of the parent media source, then throw an INVALID_STATE_ERR exception and abort these steps.": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer#abort (video/mp4) : if this object has been removed from the sourceBuffers attribute of the parent media source, then throw an INVALID_STATE_ERR exception and abort these steps.": {
          "stNum": 1,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/mediasource-config-change-webm-av-audio-bitrate.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Tests webm audio bitrate changes in multiplexed content.": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/idlharness.any.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "media-source interfaces": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Partial interface URL: original interface defined": {
          "stNum": 1,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Partial interface URL: valid exposure set": {
          "stNum": 2,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Partial interface AudioTrack: original interface defined": {
          "stNum": 3,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Partial interface VideoTrack: original interface defined": {
          "stNum": 4,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Partial interface TextTrack: original interface defined": {
          "stNum": 5,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "MediaSource interface: existence and properties of interface object": {
          "stNum": 6,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "MediaSource interface object length": {
          "stNum": 7,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "MediaSource interface object name": {
          "stNum": 8,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "MediaSource interface: existence and properties of interface prototype object": {
          "stNum": 9,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "MediaSource interface: existence and properties of interface prototype object's \"constructor\" property": {
          "stNum": 10,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "MediaSource interface: existence and properties of interface prototype object's @@unscopables property": {
          "stNum": 11,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "MediaSource interface: attribute sourceBuffers": {
          "stNum": 12,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "MediaSource interface: attribute activeSourceBuffers": {
          "stNum": 13,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "MediaSource interface: attribute readyState": {
          "stNum": 14,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "MediaSource interface: attribute duration": {
          "stNum": 15,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "MediaSource interface: attribute onsourceopen": {
          "stNum": 16,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "MediaSource interface: attribute onsourceended": {
          "stNum": 17,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "MediaSource interface: attribute onsourceclose": {
          "stNum": 18,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "assert_true: The prototype object must have a property \"onsourceclose\" expected true got false"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "MediaSource interface: operation addSourceBuffer(DOMString)": {
          "stNum": 19,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "MediaSource interface: operation removeSourceBuffer(SourceBuffer)": {
          "stNum": 20,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "MediaSource interface: operation endOfStream(EndOfStreamError)": {
          "stNum": 21,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "MediaSource interface: operation setLiveSeekableRange(double, double)": {
          "stNum": 22,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "MediaSource interface: operation clearLiveSeekableRange()": {
          "stNum": 23,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "MediaSource interface: operation isTypeSupported(DOMString)": {
          "stNum": 24,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "MediaSource must be primary interface of mediaSource": {
          "stNum": 25,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Stringification of mediaSource": {
          "stNum": 26,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "MediaSource interface: mediaSource must inherit property \"sourceBuffers\" with the proper type": {
          "stNum": 27,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "MediaSource interface: mediaSource must inherit property \"activeSourceBuffers\" with the proper type": {
          "stNum": 28,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "MediaSource interface: mediaSource must inherit property \"readyState\" with the proper type": {
          "stNum": 29,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "MediaSource interface: mediaSource must inherit property \"duration\" with the proper type": {
          "stNum": 30,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "MediaSource interface: mediaSource must inherit property \"onsourceopen\" with the proper type": {
          "stNum": 31,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "MediaSource interface: mediaSource must inherit property \"onsourceended\" with the proper type": {
          "stNum": 32,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "MediaSource interface: mediaSource must inherit property \"onsourceclose\" with the proper type": {
          "stNum": 33,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "assert_inherits: property \"onsourceclose\" not found in prototype chain"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "MediaSource interface: mediaSource must inherit property \"addSourceBuffer(DOMString)\" with the proper type": {
          "stNum": 34,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "MediaSource interface: calling addSourceBuffer(DOMString) on mediaSource with too few arguments must throw TypeError": {
          "stNum": 35,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "MediaSource interface: mediaSource must inherit property \"removeSourceBuffer(SourceBuffer)\" with the proper type": {
          "stNum": 36,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "MediaSource interface: calling removeSourceBuffer(SourceBuffer) on mediaSource with too few arguments must throw TypeError": {
          "stNum": 37,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "MediaSource interface: mediaSource must inherit property \"endOfStream(EndOfStreamError)\" with the proper type": {
          "stNum": 38,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "MediaSource interface: calling endOfStream(EndOfStreamError) on mediaSource with too few arguments must throw TypeError": {
          "stNum": 39,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "MediaSource interface: mediaSource must inherit property \"setLiveSeekableRange(double, double)\" with the proper type": {
          "stNum": 40,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "MediaSource interface: calling setLiveSeekableRange(double, double) on mediaSource with too few arguments must throw TypeError": {
          "stNum": 41,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "MediaSource interface: mediaSource must inherit property \"clearLiveSeekableRange()\" with the proper type": {
          "stNum": 42,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "MediaSource interface: mediaSource must inherit property \"isTypeSupported(DOMString)\" with the proper type": {
          "stNum": 43,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "MediaSource interface: calling isTypeSupported(DOMString) on mediaSource with too few arguments must throw TypeError": {
          "stNum": 44,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer interface: existence and properties of interface object": {
          "stNum": 45,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer interface object length": {
          "stNum": 46,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer interface object name": {
          "stNum": 47,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer interface: existence and properties of interface prototype object": {
          "stNum": 48,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer interface: existence and properties of interface prototype object's \"constructor\" property": {
          "stNum": 49,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer interface: existence and properties of interface prototype object's @@unscopables property": {
          "stNum": 50,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer interface: attribute mode": {
          "stNum": 51,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer interface: attribute updating": {
          "stNum": 52,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer interface: attribute buffered": {
          "stNum": 53,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer interface: attribute timestampOffset": {
          "stNum": 54,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer interface: attribute audioTracks": {
          "stNum": 55,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "assert_true: The prototype object must have a property \"audioTracks\" expected true got false"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "SourceBuffer interface: attribute videoTracks": {
          "stNum": 56,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "assert_true: The prototype object must have a property \"videoTracks\" expected true got false"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "SourceBuffer interface: attribute textTracks": {
          "stNum": 57,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "assert_true: The prototype object must have a property \"textTracks\" expected true got false"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "SourceBuffer interface: attribute appendWindowStart": {
          "stNum": 58,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer interface: attribute appendWindowEnd": {
          "stNum": 59,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer interface: attribute onupdatestart": {
          "stNum": 60,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer interface: attribute onupdate": {
          "stNum": 61,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer interface: attribute onupdateend": {
          "stNum": 62,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer interface: attribute onerror": {
          "stNum": 63,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer interface: attribute onabort": {
          "stNum": 64,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer interface: operation appendBuffer(BufferSource)": {
          "stNum": 65,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer interface: operation abort()": {
          "stNum": 66,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer interface: operation remove(double, unrestricted double)": {
          "stNum": 67,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer must be primary interface of sourceBuffer": {
          "stNum": 68,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Stringification of sourceBuffer": {
          "stNum": 69,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer interface: sourceBuffer must inherit property \"mode\" with the proper type": {
          "stNum": 70,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer interface: sourceBuffer must inherit property \"updating\" with the proper type": {
          "stNum": 71,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer interface: sourceBuffer must inherit property \"buffered\" with the proper type": {
          "stNum": 72,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer interface: sourceBuffer must inherit property \"timestampOffset\" with the proper type": {
          "stNum": 73,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer interface: sourceBuffer must inherit property \"audioTracks\" with the proper type": {
          "stNum": 74,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "assert_inherits: property \"audioTracks\" not found in prototype chain"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "SourceBuffer interface: sourceBuffer must inherit property \"videoTracks\" with the proper type": {
          "stNum": 75,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "assert_inherits: property \"videoTracks\" not found in prototype chain"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "SourceBuffer interface: sourceBuffer must inherit property \"textTracks\" with the proper type": {
          "stNum": 76,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "assert_inherits: property \"textTracks\" not found in prototype chain"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "SourceBuffer interface: sourceBuffer must inherit property \"appendWindowStart\" with the proper type": {
          "stNum": 77,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer interface: sourceBuffer must inherit property \"appendWindowEnd\" with the proper type": {
          "stNum": 78,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer interface: sourceBuffer must inherit property \"onupdatestart\" with the proper type": {
          "stNum": 79,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer interface: sourceBuffer must inherit property \"onupdate\" with the proper type": {
          "stNum": 80,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer interface: sourceBuffer must inherit property \"onupdateend\" with the proper type": {
          "stNum": 81,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer interface: sourceBuffer must inherit property \"onerror\" with the proper type": {
          "stNum": 82,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer interface: sourceBuffer must inherit property \"onabort\" with the proper type": {
          "stNum": 83,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer interface: sourceBuffer must inherit property \"appendBuffer(BufferSource)\" with the proper type": {
          "stNum": 84,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer interface: calling appendBuffer(BufferSource) on sourceBuffer with too few arguments must throw TypeError": {
          "stNum": 85,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer interface: sourceBuffer must inherit property \"abort()\" with the proper type": {
          "stNum": 86,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer interface: sourceBuffer must inherit property \"remove(double, unrestricted double)\" with the proper type": {
          "stNum": 87,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer interface: calling remove(double, unrestricted double) on sourceBuffer with too few arguments must throw TypeError": {
          "stNum": 88,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBufferList interface: existence and properties of interface object": {
          "stNum": 89,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBufferList interface object length": {
          "stNum": 90,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBufferList interface object name": {
          "stNum": 91,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBufferList interface: existence and properties of interface prototype object": {
          "stNum": 92,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBufferList interface: existence and properties of interface prototype object's \"constructor\" property": {
          "stNum": 93,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBufferList interface: existence and properties of interface prototype object's @@unscopables property": {
          "stNum": 94,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBufferList interface: attribute length": {
          "stNum": 95,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBufferList interface: attribute onaddsourcebuffer": {
          "stNum": 96,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBufferList interface: attribute onremovesourcebuffer": {
          "stNum": 97,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBufferList must be primary interface of mediaSource.sourceBuffers": {
          "stNum": 98,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Stringification of mediaSource.sourceBuffers": {
          "stNum": 99,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBufferList interface: mediaSource.sourceBuffers must inherit property \"length\" with the proper type": {
          "stNum": 100,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBufferList interface: mediaSource.sourceBuffers must inherit property \"onaddsourcebuffer\" with the proper type": {
          "stNum": 101,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBufferList interface: mediaSource.sourceBuffers must inherit property \"onremovesourcebuffer\" with the proper type": {
          "stNum": 102,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "AudioTrack interface: attribute sourceBuffer": {
          "stNum": 103,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "assert_own_property: self does not have own property \"AudioTrack\" expected property \"AudioTrack\" missing"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "VideoTrack interface: attribute sourceBuffer": {
          "stNum": 104,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "assert_own_property: self does not have own property \"VideoTrack\" expected property \"VideoTrack\" missing"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "TextTrack interface: attribute sourceBuffer": {
          "stNum": 105,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "assert_true: The prototype object must have a property \"sourceBuffer\" expected true got false"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "URL interface: operation createObjectURL(MediaSource)": {
          "stNum": 106,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/mediasource-getvideoplaybackquality.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Test HTMLVideoElement.getVideoPlaybackQuality() with MediaSource API": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test the totalFrameDelay attribute of HTMLVideoElement.getVideoPlaybackQuality() with MediaSource API": {
          "stNum": 1,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "assert_greater_than_equal: totalFrameDelay >= 0 expected a number but got a \"undefined\""
          },
          "totals": {
            "FAIL": 1
          }
        }
      }
    },
    "/media-source/URL-createObjectURL.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "URL.createObjectURL(mediaSource) should return a unique Blob URI.": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/mediasource-config-change-mp4-v-framerate.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Tests mp4 video-only frame rate changes.": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/mediasource-seek-beyond-duration.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Test seeking beyond updated media duration.": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test seeking beyond media duration.": {
          "stNum": 1,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/mediasource-timestamp-offset.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Test setting SourceBuffer.timestampOffset to a positive number.": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test setting SourceBuffer.timestampOffset to a negative number.": {
          "stNum": 1,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test setting SourceBuffer.timestampOffset to zero.": {
          "stNum": 2,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test setting SourceBuffer.timestampOffset to positive infinity.": {
          "stNum": 3,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test setting SourceBuffer.timestampOffset to negative infinity.": {
          "stNum": 4,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test setting SourceBuffer.timestampOffset to NaN.": {
          "stNum": 5,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test setting SourceBuffer.timestampOffset to undefined.": {
          "stNum": 6,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test setting SourceBuffer.timestampOffset to null.": {
          "stNum": 7,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test setting SourceBuffer.timestampOffset to false.": {
          "stNum": 8,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test setting SourceBuffer.timestampOffset to true.": {
          "stNum": 9,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test setting SourceBuffer.timestampOffset to a number string.": {
          "stNum": 10,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test setting SourceBuffer.timestampOffset to an empty string.": {
          "stNum": 11,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test setting timestampOffset in 'ended' state causes a transition to 'open'.": {
          "stNum": 12,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test getting the initial value of timestampOffset.": {
          "stNum": 13,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test setting timestampoffset after removing the sourcebuffer.": {
          "stNum": 14,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/mediasource-config-change-webm-a-bitrate.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Tests webm audio-only bitrate changes.": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/mediasource-config-change-mp4-a-bitrate.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Tests mp4 audio-only bitrate changes.": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/mediasource-changetype.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Test changeType with an empty type.": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test changeType after SourceBuffer removed from mediaSource.": {
          "stNum": 1,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test changeType while update pending.": {
          "stNum": 2,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test changeType with null type.": {
          "stNum": 3,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test changeType with unsupported type.": {
          "stNum": 4,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test changeType transitioning readyState from 'ended' to 'open'.": {
          "stNum": 5,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test changeType sets mode to sequence for change to type that generates timestamps": {
          "stNum": 6,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "assert_true: No bytestream that generates timestamps is supported, aborting test expected true got false"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Test changeType retains previous mode when changing to type that doesn't generate timestamps": {
          "stNum": 7,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/mediasource-sequencemode-append-buffer.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Test sequence AppendMode appendBuffer(first media segment)": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test sequence AppendMode appendBuffer(second media segment)": {
          "stNum": 1,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test sequence AppendMode appendBuffer(second media segment, then first media segment)": {
          "stNum": 2,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "assert_equals: sourceBuffer.buffered after EOS expected \"{ [0.014, 1.711) }\" but got \"{ [0.014, 0.814) [0.909, 1.711) }\""
          },
          "totals": {
            "FAIL": 1
          }
        }
      }
    },
    "/media-source/mediasource-endofstream.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "MediaSource.endOfStream(): duration truncated to 0 when there are no buffered coded frames": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "MediaSource.endOfStream(): media element notified that it now has all of the media data": {
          "stNum": 1,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "MediaSource.endOfStream(): duration and buffered range end time before and after endOfStream": {
          "stNum": 2,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "assert_equals: SegmentInfo duration should still roughly match mediaSource duration expected 6.548 but got 6.549"
          },
          "totals": {
            "FAIL": 1
          }
        }
      }
    },
    "/media-source/mediasource-sourcebuffer-trackdefaults.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Test round-trip of empty SourceBuffer.trackDefaults": {
          "stNum": 0,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "assert_array_equals: Empty initial SourceBuffer.trackDefaults value is undefined, expected array"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Test round-trip of non-empty SourceBuffer.trackDefaults": {
          "stNum": 1,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "assert_array_equals: Empty initial SourceBuffer.trackDefaults value is undefined, expected array"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Test setting trackDefaults on an already-removed SourceBuffer": {
          "stNum": 2,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "assert_array_equals: Empty initial SourceBuffer.trackDefaults value is undefined, expected array"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Test setting trackDefaults on a SourceBuffer that is updating": {
          "stNum": 3,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "assert_array_equals: Empty initial SourceBuffer.trackDefaults value is undefined, expected array"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Test setting null SourceBuffer.trackDefaults": {
          "stNum": 4,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "assert_array_equals: Empty initial SourceBuffer.trackDefaults value is undefined, expected array"
          },
          "totals": {
            "FAIL": 1
          }
        }
      }
    },
    "/media-source/mediasource-sourcebuffer-mode-timestamps.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "audio/aac : If generate timestamps flag equals true and new mode equals \"segments\", then throw a TypeError exception and abort these steps.": {
          "stNum": 0,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "assert_unreached: Browser doesn't support the MIME used in this test: audio/aac Reached unreachable code"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "audio/mpeg : If generate timestamps flag equals true and new mode equals \"segments\", then throw a TypeError exception and abort these steps.": {
          "stNum": 1,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "assert_unreached: Browser doesn't support the MIME used in this test: audio/mpeg Reached unreachable code"
          },
          "totals": {
            "FAIL": 1
          }
        }
      }
    },
    "/media-source/mediasource-errors.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Appending media segment before the first initialization segment.": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Signaling 'decode' error via endOfStream() before initialization segment has been appended.": {
          "stNum": 1,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Signaling 'network' error via endOfStream() before initialization segment has been appended.": {
          "stNum": 2,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Signaling 'decode' error via endOfStream() after initialization segment has been appended and the HTMLMediaElement has reached HAVE_METADATA.": {
          "stNum": 3,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Signaling 'network' error via endOfStream() after initialization segment has been appended and the HTMLMediaElement has reached HAVE_METADATA.": {
          "stNum": 4,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Signaling 'decode' error via segment parser loop algorithm after initialization segment has been appended.": {
          "stNum": 5,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Signaling 'decode' error via segment parser loop algorithm.": {
          "stNum": 6,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/mediasource-multiple-attach.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Test exactly one succeeds when two MediaElements attach to same MediaSource": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test that MediaSource can reattach if closed first": {
          "stNum": 1,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/mediasource-changetype-play.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Check if browser supports enough test media types": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test audio-only changeType for audio/webm; codecs=\"vorbis\" <-> audio/webm; codecs=\"vorbis\"": {
          "stNum": 1,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test audio-only changeType for audio/webm; codecs=\"vorbis\" <-> audio/mp4; codecs=\"mp4a.40.2\"": {
          "stNum": 2,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test audio-only changeType for audio/mp4; codecs=\"mp4a.40.2\" <-> audio/webm; codecs=\"vorbis\"": {
          "stNum": 3,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test audio-only changeType for audio/mp4; codecs=\"mp4a.40.2\" <-> audio/mp4; codecs=\"mp4a.40.2\"": {
          "stNum": 4,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test video-only changeType for video/webm; codecs=\"vp8\" <-> video/webm; codecs=\"vp8\"": {
          "stNum": 5,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test video-only changeType for video/webm; codecs=\"vp8\" <-> video/webm; codecs=\"vp9\"": {
          "stNum": 6,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test video-only changeType for video/webm; codecs=\"vp8\" <-> video/mp4; codecs=\"avc1.4D4001\"": {
          "stNum": 7,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test video-only changeType for video/webm; codecs=\"vp9\" <-> video/webm; codecs=\"vp8\"": {
          "stNum": 8,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test video-only changeType for video/webm; codecs=\"vp9\" <-> video/webm; codecs=\"vp9\"": {
          "stNum": 9,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test video-only changeType for video/webm; codecs=\"vp9\" <-> video/mp4; codecs=\"avc1.4D4001\"": {
          "stNum": 10,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test video-only changeType for video/mp4; codecs=\"avc1.4D4001\" <-> video/webm; codecs=\"vp8\"": {
          "stNum": 11,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test video-only changeType for video/mp4; codecs=\"avc1.4D4001\" <-> video/webm; codecs=\"vp9\"": {
          "stNum": 12,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test video-only changeType for video/mp4; codecs=\"avc1.4D4001\" <-> video/mp4; codecs=\"avc1.4D4001\"": {
          "stNum": 13,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/mediasource-config-change-mp4-av-audio-bitrate.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Tests mp4 audio bitrate changes in multiplexed content.": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/mediasource-removesourcebuffer.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Test addSourceBuffer(), removeSourceBuffer(), addSourceBuffer() sequence.": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test removeSourceBuffer() with null": {
          "stNum": 1,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test calling removeSourceBuffer() twice with the same object.": {
          "stNum": 2,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test calling removeSourceBuffer() for a sourceBuffer belonging to a different mediaSource instance.": {
          "stNum": 3,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test calling removeSourceBuffer() in ended state.": {
          "stNum": 4,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test removesourcebuffer event on activeSourceBuffers.": {
          "stNum": 5,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test abort event when removeSourceBuffer() called while SourceBuffer is updating": {
          "stNum": 6,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/mediasource-config-change-mp4-v-framesize.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Tests mp4 video-only frame size changes.": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/SourceBuffer-abort.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "SourceBuffer#abort() (video/webm; codecs=\"vorbis,vp8\"): Check the values of appendWindowStart and appendWindowEnd.": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer#abort() (video/mp4): Check the values of appendWindowStart and appendWindowEnd.": {
          "stNum": 1,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/mediasource-sourcebufferlist.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Test SourceBufferList getter method": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test SourceBufferList event dispatching.": {
          "stNum": 1,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test that only 1 removesourcebuffer event fires on each SourceBufferList when the MediaSource closes.": {
          "stNum": 2,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/mediasource-config-change-webm-v-framerate.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Tests webm video-only frame rate changes.": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/mediasource-appendbuffer-quota-exceeded.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Appending data repeatedly should fill up the buffer and throw a QuotaExceededError when buffer is full.": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/mediasource-endofstream-invaliderror.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Test MediaSource.endOfStream() with invalid non-empty error string.": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test MediaSource.endOfStream() with invalid empty error string.": {
          "stNum": 1,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test MediaSource.endOfStream() with invalid null error parameter.": {
          "stNum": 2,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/mediasource-play-then-seek-back.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Test playing then seeking back.": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/URL-createObjectURL-null.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "URL.createObjectURL(null)": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/mediasource-config-change-mp4-v-bitrate.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Tests mp4 video-only bitrate changes.": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/SourceBuffer-abort-readyState.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "SourceBuffer#abort() (video/webm; codecs=\"vorbis,vp8\") : If the readyState attribute of the parent media source is not in the \"open\" state then throw an INVALID_STATE_ERR exception and abort these steps.": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer#abort() (video/mp4) : If the readyState attribute of the parent media source is not in the \"open\" state then throw an INVALID_STATE_ERR exception and abort these steps.": {
          "stNum": 1,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/mediasource-liveseekable.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "setLiveSeekableRange throws an InvalidStateError exception if the readyState attribute is not 'open'": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "clearLiveSeekableRange throws an InvalidStateError exception if the readyState attribute is not 'open'": {
          "stNum": 1,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "setLiveSeekableRange does not restrict to not currently updating": {
          "stNum": 2,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "clearLiveSeekableRange does not restrict to not currently updating": {
          "stNum": 3,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "setLiveSeekableRange throws a TypeError if start is negative": {
          "stNum": 4,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "setLiveSeekableRange throws a TypeError if start is greater than end": {
          "stNum": 5,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "setLiveSeekableRange returns with no error when conditions are correct": {
          "stNum": 6,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "clearLiveSeekableRange returns with no error when conditions are correct": {
          "stNum": 7,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "HTMLMediaElement.seekable returns the live seekable range or an empty range if that range was cleared when nothing is buffered": {
          "stNum": 8,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "HTMLMediaElement.seekable returns the union of the buffered range and the live seekable range, when set": {
          "stNum": 9,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/mediasource-addsourcebuffer.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Test addSourceBuffer() in 'ended' state.": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test addSourceBuffer() with empty type": {
          "stNum": 1,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test addSourceBuffer() with null": {
          "stNum": 2,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test addSourceBuffer() with unsupported type": {
          "stNum": 3,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test addSourceBuffer() with Vorbis and VP8": {
          "stNum": 4,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test addSourceBuffer() with Vorbis and VP8 in separate SourceBuffers": {
          "stNum": 5,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test addSourceBuffer() video only": {
          "stNum": 6,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test addSourceBuffer() audio only": {
          "stNum": 7,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test addSourceBuffer() with AAC and H.264": {
          "stNum": 8,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test addSourceBuffer() with AAC and H.264 in separate SourceBuffers": {
          "stNum": 9,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/mediasource-config-change-webm-v-framesize.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Tests webm video-only frame size changes.": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/mediasource-config-change-webm-v-bitrate.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Tests webm video-only bitrate changes.": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/mediasource-detach.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Test media.load() before appending data will trigger MediaSource detaching from a media element.": {
          "stNum": 0,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "assert_equals: readyState is \"closed\" expected \"closed\" but got \"open\""
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Test media.load() after appending data will trigger MediaSource detaching from a media element.": {
          "stNum": 1,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "assert_equals: readyState is \"closed\" expected \"closed\" but got \"open\""
          },
          "totals": {
            "FAIL": 1
          }
        }
      }
    },
    "/media-source/mediasource-config-change-webm-av-framesize.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Tests webm frame size changes in multiplexed content.": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/mediasource-preload.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "sourceopen occurs with element preload=auto": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "sourceopen occurs with element preload=metadata": {
          "stNum": 1,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "sourceopen occurs with element preload=none": {
          "stNum": 2,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "error occurs with bogus blob URL (revoked MediaSource object URL) and element preload=auto": {
          "stNum": 3,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "error occurs with bogus blob URL (revoked MediaSource object URL) and element preload=metadata": {
          "stNum": 4,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "error occurs with bogus blob URL (corrupted MediaSource object URL) and element preload=auto": {
          "stNum": 5,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "error occurs with bogus blob URL (corrupted MediaSource object URL) and element preload=metadata": {
          "stNum": 6,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/URL-createObjectURL-revoke.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Check revoking behavior of URL.revokeObjectURL(url).": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Check referenced MediaSource can open after URL.revokeObjectURL(url).": {
          "stNum": 1,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Check auto-revoking behavior with URL.createObjectURL(MediaSource).": {
          "stNum": 2,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/mediasource-append-buffer.html": {
      "byUA": {
        "FF64": "TIMEOUT"
      },
      "UAmessage": {},
      "totals": {
        "TIMEOUT": 1
      },
      "subtests": {
        "Test SourceBuffer.appendBuffer() event dispatching.": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test SourceBuffer.appendBuffer() call during a pending appendBuffer().": {
          "stNum": 1,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test SourceBuffer.abort() call during a pending appendBuffer().": {
          "stNum": 2,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test SourceBuffer.appendBuffer() triggering an 'ended' to 'open' transition.": {
          "stNum": 3,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test zero byte SourceBuffer.appendBuffer() call triggering an 'ended' to 'open' transition.": {
          "stNum": 4,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test MediaSource.removeSourceBuffer() call during a pending appendBuffer().": {
          "stNum": 5,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test set MediaSource.duration during a pending appendBuffer() for one of its SourceBuffers.": {
          "stNum": 6,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test MediaSource.endOfStream() during a pending appendBuffer() for one of its SourceBuffers.": {
          "stNum": 7,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test set SourceBuffer.timestampOffset during a pending appendBuffer().": {
          "stNum": 8,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test appending an empty ArrayBufferView.": {
          "stNum": 9,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test appending a neutered ArrayBufferView.": {
          "stNum": 10,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test appending an empty ArrayBuffer.": {
          "stNum": 11,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test appending a neutered ArrayBuffer.": {
          "stNum": 12,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test appendBuffer with partial init segments.": {
          "stNum": 13,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test appendBuffer with partial media segments.": {
          "stNum": 14,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test appendBuffer events order.": {
          "stNum": 15,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "assert_true: expected true got false"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Test abort in the middle of an initialization segment.": {
          "stNum": 16,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test abort after removing sourcebuffer.": {
          "stNum": 17,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test abort after readyState is ended following init segment and media segment.": {
          "stNum": 18,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test abort after appendBuffer update ends.": {
          "stNum": 19,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test appending null.": {
          "stNum": 20,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test appending after removeSourceBuffer().": {
          "stNum": 21,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test slow appending does not trigger stalled events.": {
          "stNum": 22,
          "byUA": {
            "FF64": "TIMEOUT"
          },
          "UAmessage": {
            "FF64": "Test timed out"
          },
          "totals": {
            "TIMEOUT": 1
          }
        }
      }
    },
    "/media-source/mediasource-duration-boundaryconditions.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Set duration to 2^31 - 1": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Set duration to 1": {
          "stNum": 1,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Set duration to Number.MAX_VALUE": {
          "stNum": 2,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Set duration to Number.MIN_VALUE": {
          "stNum": 3,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Set duration to Number.MAX_VALUE - 1": {
          "stNum": 4,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Set duration to Number.MIN_VALUE - 1": {
          "stNum": 5,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Set duration to Number.POSITIVE_INFINITY": {
          "stNum": 6,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Set duration to Number.NEGATIVE_INFINITY": {
          "stNum": 7,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Set duration to lowest value.": {
          "stNum": 8,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Set duration to a negative double.": {
          "stNum": 9,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Set duration to a positive double.": {
          "stNum": 10,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Set duration to zero": {
          "stNum": 11,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Set duration to NaN": {
          "stNum": 12,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/mediasource-avtracks.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Check that media tracks and their properties are populated properly": {
          "stNum": 0,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "object is undefined"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Media tracks must be removed when the SourceBuffer is removed from the MediaSource": {
          "stNum": 1,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "sourceBuffer.audioTracks is undefined"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Media tracks must be removed when the HTMLMediaElement.src is changed": {
          "stNum": 2,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "sourceBuffer.audioTracks is undefined"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Media tracks must be removed when HTMLMediaElement.load() is called": {
          "stNum": 3,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "sourceBuffer.audioTracks is undefined"
          },
          "totals": {
            "FAIL": 1
          }
        }
      }
    },
    "/media-source/mediasource-addsourcebuffer-mode.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "addSourceBuffer() sets SourceBuffer.mode to 'segments' when the generate timestamps flag is false": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "addSourceBuffer() sets SourceBuffer.mode to 'sequence' when the generate timestamps flag is true": {
          "stNum": 1,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "assert_unreached: Browser does not support the audio/aac and audio/mpeg MIME types used in this test Reached unreachable code"
          },
          "totals": {
            "FAIL": 1
          }
        }
      }
    },
    "/media-source/mediasource-attach-stops-delaying-load-event.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "MediaSource attachment should immediately stop delaying the load event": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/mediasource-play.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Test normal playback case with MediaSource API": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/mediasource-duration.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Test seek starts on duration truncation below currentTime": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test appendBuffer completes previous seek to truncated duration": {
          "stNum": 1,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test endOfStream completes previous seek to truncated duration": {
          "stNum": 2,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test setting same duration multiple times does not fire duplicate durationchange": {
          "stNum": 3,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test setting the duration to less than the highest starting presentation timestamp will throw": {
          "stNum": 4,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Truncating the duration throws an InvalidStateError exception when new duration is less than the highest buffered range start time of one of the track buffers": {
          "stNum": 5,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Truncating the duration throws an InvalidStateError exception when new duration is less than a buffered coded frame presentation time": {
          "stNum": 6,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Increasing the duration does not trigger any SourceBuffer update": {
          "stNum": 7,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Increasing the duration during media playback does not trigger any SourceBuffer update": {
          "stNum": 8,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/mediasource-redundant-seek.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Test redundant fully prebuffered seek": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/SourceBuffer-abort-updating.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "SourceBuffer#abort() (video/webm; codecs=\"vorbis,vp8\") : Check the algorithm when the updating attribute is true.": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer#abort() (video/mp4) : Check the algorithm when the updating attribute is true.": {
          "stNum": 1,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/mediasource-activesourcebuffers.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "SourceBuffer added to activeSourceBuffers list when its only audio track gets loaded (and thus becomes enabled).": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "SourceBuffer added to activeSourceBuffers list when its only video track gets loaded (and thus becomes selected).": {
          "stNum": 1,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Active SourceBuffers must appear in the same order as they appear in the sourceBuffers attribute: audio is first sourceBuffer, audio media appended first": {
          "stNum": 2,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Active SourceBuffers must appear in the same order as they appear in the sourceBuffers attribute: audio is first sourceBuffer, video media appended first": {
          "stNum": 3,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Active SourceBuffers must appear in the same order as they appear in the sourceBuffers attribute: video is first sourceBuffer, audio media appended first": {
          "stNum": 4,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Active SourceBuffers must appear in the same order as they appear in the sourceBuffers attribute: video is first sourceBuffer, video media appended first": {
          "stNum": 5,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Active SourceBuffers list reflects changes to selected audio/video tracks associated with separate SourceBuffers.": {
          "stNum": 6,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "object is undefined"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Active SourceBuffers list ignores changes to selected audio/video tracks that do not affect the activation of the SourceBuffer.": {
          "stNum": 7,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "object is undefined"
          },
          "totals": {
            "FAIL": 1
          }
        }
      }
    },
    "/media-source/mediasource-trackdefaultlist.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Test track default list construction, length, and indexed property getter": {
          "stNum": 0,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "TrackDefault is not defined"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Test empty track default list construction with and without optional trackDefaults parameter": {
          "stNum": 1,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "TrackDefaultList is not defined"
          },
          "totals": {
            "FAIL": 1
          }
        }
      }
    },
    "/media-source/mediasource-remove.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Test remove with an negative start.": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test remove with non-finite start.": {
          "stNum": 1,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test remove with a start beyond the duration.": {
          "stNum": 2,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test remove with a start larger than the end.": {
          "stNum": 3,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test remove with a NEGATIVE_INFINITY end.": {
          "stNum": 4,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test remove with a NaN end.": {
          "stNum": 5,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test remove after SourceBuffer removed from mediaSource.": {
          "stNum": 6,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test remove with a NaN duration.": {
          "stNum": 7,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test remove while update pending.": {
          "stNum": 8,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test aborting a remove operation.": {
          "stNum": 9,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test remove with a start at the duration.": {
          "stNum": 10,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test remove transitioning readyState from 'ended' to 'open'.": {
          "stNum": 11,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test removing all appended data.": {
          "stNum": 12,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test removing beginning of appended data.": {
          "stNum": 13,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test removing the middle of appended data.": {
          "stNum": 14,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test removing the end of appended data.": {
          "stNum": 15,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/mediasource-sourcebuffer-mode.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Test initial value of SourceBuffer.mode is \"segments\"": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test setting SourceBuffer.mode": {
          "stNum": 1,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test setting a removed SourceBuffer's mode": {
          "stNum": 2,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test setting SourceBuffer.mode while still updating": {
          "stNum": 3,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test setting SourceBuffer.mode triggers parent MediaSource 'ended' to 'open' transition.": {
          "stNum": 4,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test setting SourceBuffer.mode and SourceBuffer.timestampOffset while parsing media segment.": {
          "stNum": 5,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/mediasource-closed.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Test attribute values on a closed MediaSource object.": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test addSourceBuffer() while closed.": {
          "stNum": 1,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test removeSourceBuffer() while closed.": {
          "stNum": 2,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test endOfStream() while closed.": {
          "stNum": 3,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test endOfStream(decode) while closed.": {
          "stNum": 4,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test endOfStream(network) while closed.": {
          "stNum": 5,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test setting duration while closed.": {
          "stNum": 6,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test setting duration while open->closed.": {
          "stNum": 7,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test getting duration while open->closed.": {
          "stNum": 8,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Test sourcebuffer.abort when closed.": {
          "stNum": 9,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/mediasource-config-change-webm-av-video-bitrate.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Tests webm video bitrate changes in multiplexed content.": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/mediasource-seekable.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Get seekable time ranges when the sourcebuffer is empty.": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Get seekable time ranges after init segment received.": {
          "stNum": 1,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Get seekable time ranges on an infinite stream.": {
          "stNum": 2,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/mediasource-trackdefault.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Test valid audio kinds: type 'audio', language 'en-US', label 'audio label', multiple kinds, byteStreamTrackID '1'": {
          "stNum": 0,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "TrackDefault is not defined"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Test valid audio kinds: type 'audio', language 'en-US', label 'audio label', kind 'alternative', byteStreamTrackID '1'": {
          "stNum": 1,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "TrackDefault is not defined"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Test valid audio kinds: type 'audio', language 'en-US', label 'audio label', kind 'descriptions', byteStreamTrackID '1'": {
          "stNum": 2,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "TrackDefault is not defined"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Test valid audio kinds: type 'audio', language 'en-US', label 'audio label', kind 'main', byteStreamTrackID '1'": {
          "stNum": 3,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "TrackDefault is not defined"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Test valid audio kinds: type 'audio', language 'en-US', label 'audio label', kind 'main-desc', byteStreamTrackID '1'": {
          "stNum": 4,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "TrackDefault is not defined"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Test valid audio kinds: type 'audio', language 'en-US', label 'audio label', kind 'translation', byteStreamTrackID '1'": {
          "stNum": 5,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "TrackDefault is not defined"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Test valid audio kinds: type 'audio', language 'en-US', label 'audio label', kind 'commentary', byteStreamTrackID '1'": {
          "stNum": 6,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "TrackDefault is not defined"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Test valid audio kinds: type 'audio', language 'en-US', label 'audio label', kind '', byteStreamTrackID '1'": {
          "stNum": 7,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "TrackDefault is not defined"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Test valid video kinds: type 'video', language 'en-US', label 'video label', multiple kinds, byteStreamTrackID '1'": {
          "stNum": 8,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "TrackDefault is not defined"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Test valid video kinds: type 'video', language 'en-US', label 'video label', kind 'alternative', byteStreamTrackID '1'": {
          "stNum": 9,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "TrackDefault is not defined"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Test valid video kinds: type 'video', language 'en-US', label 'video label', kind 'captions', byteStreamTrackID '1'": {
          "stNum": 10,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "TrackDefault is not defined"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Test valid video kinds: type 'video', language 'en-US', label 'video label', kind 'main', byteStreamTrackID '1'": {
          "stNum": 11,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "TrackDefault is not defined"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Test valid video kinds: type 'video', language 'en-US', label 'video label', kind 'sign', byteStreamTrackID '1'": {
          "stNum": 12,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "TrackDefault is not defined"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Test valid video kinds: type 'video', language 'en-US', label 'video label', kind 'subtitles', byteStreamTrackID '1'": {
          "stNum": 13,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "TrackDefault is not defined"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Test valid video kinds: type 'video', language 'en-US', label 'video label', kind 'commentary', byteStreamTrackID '1'": {
          "stNum": 14,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "TrackDefault is not defined"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Test valid video kinds: type 'video', language 'en-US', label 'video label', kind '', byteStreamTrackID '1'": {
          "stNum": 15,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "TrackDefault is not defined"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Test valid text kinds: type 'text', language 'en-US', label 'text label', multiple kinds, byteStreamTrackID '1'": {
          "stNum": 16,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "TrackDefault is not defined"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Test valid text kinds: type 'text', language 'en-US', label 'text label', kind 'subtitles', byteStreamTrackID '1'": {
          "stNum": 17,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "TrackDefault is not defined"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Test valid text kinds: type 'text', language 'en-US', label 'text label', kind 'captions', byteStreamTrackID '1'": {
          "stNum": 18,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "TrackDefault is not defined"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Test valid text kinds: type 'text', language 'en-US', label 'text label', kind 'descriptions', byteStreamTrackID '1'": {
          "stNum": 19,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "TrackDefault is not defined"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Test valid text kinds: type 'text', language 'en-US', label 'text label', kind 'chapters', byteStreamTrackID '1'": {
          "stNum": 20,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "TrackDefault is not defined"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Test valid text kinds: type 'text', language 'en-US', label 'text label', kind 'metadata', byteStreamTrackID '1'": {
          "stNum": 21,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "TrackDefault is not defined"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Test mixed valid and invalid audio kinds: type 'audio', language 'en-US', label 'audio label', multiple kinds, byteStreamTrackID '1'": {
          "stNum": 22,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "assert_throws: TrackDefault construction threw an exception function \"function() { new TrackDefault(type, language, label, kinds, byteStreamTrackID); }\" threw object \"ReferenceError: TrackDefault is not defined\" (\"ReferenceError\") expected object \"TypeError\" (\"TypeError\")"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Test mixed valid and invalid video kinds: type 'video', language 'en-US', label 'video label', multiple kinds, byteStreamTrackID '1'": {
          "stNum": 23,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "assert_throws: TrackDefault construction threw an exception function \"function() { new TrackDefault(type, language, label, kinds, byteStreamTrackID); }\" threw object \"ReferenceError: TrackDefault is not defined\" (\"ReferenceError\") expected object \"TypeError\" (\"TypeError\")"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Test mixed valid and invalid text kinds: type 'text', language 'en-US', label 'text label', multiple kinds, byteStreamTrackID '1'": {
          "stNum": 24,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "assert_throws: TrackDefault construction threw an exception function \"function() { new TrackDefault(type, language, label, kinds, byteStreamTrackID); }\" threw object \"ReferenceError: TrackDefault is not defined\" (\"ReferenceError\") expected object \"TypeError\" (\"TypeError\")"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Test invalid 'type' parameter type passed to TrackDefault constructor: type 'invalid type', language 'en-US', label 'label', multiple kinds, byteStreamTrackID '1'": {
          "stNum": 25,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "assert_throws: TrackDefault construction threw an exception function \"function() { new TrackDefault(type, language, label, kinds, byteStreamTrackID); }\" threw object \"ReferenceError: TrackDefault is not defined\" (\"ReferenceError\") expected object \"TypeError\" (\"TypeError\")"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Test invalid 'kinds' parameter type passed to TrackDefault constructor": {
          "stNum": 26,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "assert_throws: TrackDefault construction threw an exception function \"function() { new TrackDefault(type, language, label, kinds, byteStreamTrackID); }\" threw object \"ReferenceError: TrackDefault is not defined\" (\"ReferenceError\") expected object \"TypeError\" (\"TypeError\")"
          },
          "totals": {
            "FAIL": 1
          }
        },
        "Test updating the retval of TrackDefault.kinds does not modify TrackDefault.kinds": {
          "stNum": 27,
          "byUA": {
            "FF64": "FAIL"
          },
          "UAmessage": {
            "FF64": "TrackDefault is not defined"
          },
          "totals": {
            "FAIL": 1
          }
        }
      }
    },
    "/media-source/mediasource-config-change-mp4-av-video-bitrate.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Tests mp4 video bitrate changes in multiplexed content.": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    },
    "/media-source/mediasource-buffered.html": {
      "byUA": {
        "FF64": "OK"
      },
      "UAmessage": {},
      "totals": {
        "OK": 1
      },
      "subtests": {
        "Demuxed content with different lengths": {
          "stNum": 0,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Muxed content with different lengths": {
          "stNum": 1,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Demuxed content with an empty buffered range on one SourceBuffer": {
          "stNum": 2,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Muxed content empty buffered ranges.": {
          "stNum": 3,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Get buffered range when sourcebuffer is empty.": {
          "stNum": 4,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Get buffered range when only init segment is appended.": {
          "stNum": 5,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        },
        "Get buffered range after removing sourcebuffer.": {
          "stNum": 6,
          "byUA": {
            "FF64": "PASS"
          },
          "UAmessage": {},
          "totals": {
            "PASS": 1
          }
        }
      }
    }
  }
}