merge mozilla-inbound to mozilla-central a=merge
authorCarsten "Tomcat" Book <cbook@mozilla.com>
Wed, 27 Apr 2016 11:57:21 +0200
changeset 295057 ab0044bfa1df858919797bcd6a9aef76a668cd4a
parent 294963 488df90abd620538454e58ae0a75f13453f391b1 (current diff)
parent 295056 048c047097a97068fa5e4f2592c53e59449ab8fd (diff)
child 295058 a8d0cda0ef764a00b9ca133878581109698c295f
child 295062 a8386cc2b749b7c73b3e3e718eb3b50b7d5aa8e0
child 295140 3de22a3be0840dab498e2eabaceaa38d70be9589
push id30217
push usercbook@mozilla.com
push dateWed, 27 Apr 2016 09:58:13 +0000
treeherdermozilla-central@ab0044bfa1df [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmerge
milestone49.0a1
first release with
nightly linux32
ab0044bfa1df / 49.0a1 / 20160427030215 / files
nightly linux64
ab0044bfa1df / 49.0a1 / 20160427030215 / files
nightly mac
ab0044bfa1df / 49.0a1 / 20160427030215 / files
nightly win32
ab0044bfa1df / 49.0a1 / 20160427030215 / files
nightly win64
ab0044bfa1df / 49.0a1 / 20160427030215 / files
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
releases
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
merge mozilla-inbound to mozilla-central a=merge
dom/canvas/test/_webgl-conformance.ini
dom/canvas/test/webgl-conformance/00_test_list.txt
dom/canvas/test/webgl-conformance/README.mozilla
dom/canvas/test/webgl-conformance/README.txt
dom/canvas/test/webgl-conformance/_wrappers/test_always-fail.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__attribs__gl-enable-vertex-attrib.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__attribs__gl-vertex-attrib-zero-issues.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__attribs__gl-vertex-attrib.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__attribs__gl-vertexattribpointer-offsets.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__attribs__gl-vertexattribpointer.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__buffers__buffer-bind-test.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__buffers__buffer-data-array-buffer.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__buffers__index-validation-copies-indices.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__buffers__index-validation-crash-with-buffer-sub-data.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__buffers__index-validation-verifies-too-many-indices.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__buffers__index-validation-with-resized-buffer.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__buffers__index-validation.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__canvas__buffer-offscreen-test.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__canvas__buffer-preserve-test.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__canvas__canvas-test.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__canvas__canvas-zero-size.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__canvas__drawingbuffer-static-canvas-test.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__canvas__drawingbuffer-test.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__canvas__viewport-unchanged-upon-resize.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__context__constants.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__context__context-attributes-alpha-depth-stencil-antialias.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__context__context-lost-restored.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__context__context-lost.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__context__context-type-test.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__context__incorrect-context-object-behaviour.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__context__methods.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__context__premultiplyalpha-test.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__context__resource-sharing-test.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__extensions__ext-sRGB.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__extensions__ext-shader-texture-lod.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__extensions__ext-texture-filter-anisotropic.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__extensions__oes-standard-derivatives.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__extensions__oes-texture-float.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__extensions__oes-vertex-array-object.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__extensions__webgl-compressed-texture-etc1.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__extensions__webgl-compressed-texture-s3tc.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__extensions__webgl-debug-renderer-info.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__extensions__webgl-debug-shaders.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-abs.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-acos.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-asin.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-atan-xy.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-atan.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-ceil.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-clamp-float.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-clamp-gentype.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-cos.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-cross.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-distance.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-dot.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-faceforward.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-floor.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-fract.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-length.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-max-float.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-max-gentype.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-min-float.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-min-gentype.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-mix-float.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-mix-gentype.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-mod-float.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-mod-gentype.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-normalize.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-reflect.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-sign.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-sin.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-smoothstep-float.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-smoothstep-gentype.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-step-float.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-step-gentype.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__add_int_float.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__add_int_mat2.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__add_int_mat3.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__add_int_mat4.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__add_int_vec2.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__add_int_vec3.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__add_int_vec4.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__add_ivec2_vec2.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__add_ivec3_vec3.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__add_ivec4_vec4.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__assign_int_to_float.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__assign_ivec2_to_vec2.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__assign_ivec3_to_vec3.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__assign_ivec4_to_vec4.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__construct_struct.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__divide_int_float.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__divide_int_mat2.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__divide_int_mat3.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__divide_int_mat4.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__divide_int_vec2.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__divide_int_vec3.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__divide_int_vec4.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__divide_ivec2_vec2.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__divide_ivec3_vec3.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__divide_ivec4_vec4.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__equal_int_float.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__equal_ivec2_vec2.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__equal_ivec3_vec3.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__equal_ivec4_vec4.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__function_int_float.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__function_ivec2_vec2.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__function_ivec3_vec3.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__function_ivec4_vec4.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__greater_than.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__greater_than_equal.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__less_than.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__less_than_equal.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__multiply_int_float.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__multiply_int_mat2.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__multiply_int_mat3.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__multiply_int_mat4.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__multiply_int_vec2.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__multiply_int_vec3.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__multiply_int_vec4.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__multiply_ivec2_vec2.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__multiply_ivec3_vec3.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__multiply_ivec4_vec4.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__not_equal_int_float.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__not_equal_ivec2_vec2.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__not_equal_ivec3_vec3.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__not_equal_ivec4_vec4.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__subtract_int_float.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__subtract_int_mat2.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__subtract_int_mat3.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__subtract_int_mat4.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__subtract_int_vec2.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__subtract_int_vec3.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__subtract_int_vec4.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__subtract_ivec2_vec2.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__subtract_ivec3_vec3.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__subtract_ivec4_vec4.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__ternary_int_float.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__ternary_ivec2_vec2.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__ternary_ivec3_vec3.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__implicit__ternary_ivec4_vec4.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__attrib-location-length-limits.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__embedded-struct-definitions-forbidden.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__glsl-function-nodes.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__glsl-long-variable-names.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__non-ascii-comments.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__non-ascii.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-256-character-identifier.frag.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-257-character-identifier.frag.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-_webgl-identifier.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-arbitrary-indexing.frag.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-arbitrary-indexing.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-attrib-array.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-attrib-struct.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-clipvertex.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-default-precision.frag.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-default-precision.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-define-line-continuation.frag.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-dfdx-no-ext.frag.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-dfdx.frag.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-error-directive.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-explicit-int-cast.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-float-return-value.frag.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-frag-depth.frag.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-function-recursion.frag.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-glcolor.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-gles-1.frag.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-gles-symbol.frag.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-glprojectionmatrix.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-implicit-vec3-to-vec4-cast.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-include.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-int-return-value.frag.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-invalid-identifier.frag.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-ivec2-return-value.frag.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-ivec3-return-value.frag.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-ivec4-return-value.frag.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-limited-indexing.frag.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-long-line.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-non-ascii-error.frag.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-precision.frag.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-quoted-error.frag.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-undefined-preprocessor-symbol.frag.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-uniform-in-loop-condition.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-vec2-return-value.frag.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-vec3-return-value.frag.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-vec4-return-value.frag.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-version-100.frag.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-version-100.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-version-120.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-version-130.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-webgl-identifier.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-without-precision.frag.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__shared.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__struct-nesting-exceeds-maximum.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__struct-nesting-under-maximum.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__misc__uniform-location-length-limits.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__reserved___webgl_field.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__reserved___webgl_function.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__reserved___webgl_struct.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__reserved___webgl_variable.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__reserved__webgl_field.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__reserved__webgl_function.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__reserved__webgl_struct.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__reserved__webgl_variable.vert.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__variables__gl-fragcoord.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__variables__gl-frontfacing.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__glsl__variables__gl-pointcoord.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__limits__gl-max-texture-dimensions.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__limits__gl-min-attribs.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__limits__gl-min-textures.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__limits__gl-min-uniforms.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__misc__bad-arguments-test.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__misc__error-reporting.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__misc__functions-returning-strings.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__misc__instanceof-test.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__misc__invalid-passed-params.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__misc__is-object.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__misc__null-object-behaviour.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__misc__object-deletion-behaviour.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__misc__shader-precision-format.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__misc__type-conversion-test.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__misc__uninitialized-test.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__misc__webgl-specific.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__conformance__constants.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__conformance__getContext.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__conformance__methods.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__conformance__quickCheckAPI-A.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__conformance__quickCheckAPI-B1.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__conformance__quickCheckAPI-B2.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__conformance__quickCheckAPI-B3.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__conformance__quickCheckAPI-B4.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__conformance__quickCheckAPI-C.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__conformance__quickCheckAPI-D_G.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__conformance__quickCheckAPI-G_I.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__conformance__quickCheckAPI-L_S.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__conformance__quickCheckAPI-S_V.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__conformance__webGLArrays.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__functions__bindBuffer.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__functions__bindBufferBadArgs.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__functions__bindFramebufferLeaveNonZero.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__functions__bufferData.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__functions__bufferDataBadArgs.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__functions__bufferSubData.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__functions__bufferSubDataBadArgs.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__functions__copyTexImage2D.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__functions__copyTexImage2DBadArgs.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__functions__copyTexSubImage2D.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__functions__copyTexSubImage2DBadArgs.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__functions__deleteBufferBadArgs.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__functions__drawArrays.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__functions__drawArraysOutOfBounds.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__functions__drawElements.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__functions__drawElementsBadArgs.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__functions__isTests.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__functions__readPixels.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__functions__readPixelsBadArgs.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__functions__texImage2D.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__functions__texImage2DBadArgs.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__functions__texImage2DHTML.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__functions__texImage2DHTMLBadArgs.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__functions__texSubImage2D.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__functions__texSubImage2DBadArgs.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__functions__texSubImage2DHTML.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__functions__texSubImage2DHTMLBadArgs.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__functions__uniformMatrix.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__functions__uniformMatrixBadArgs.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__functions__uniformf.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__functions__uniformfArrayLen1.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__functions__uniformfBadArgs.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__functions__uniformi.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__functions__uniformiBadArgs.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__functions__vertexAttrib.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__functions__vertexAttribBadArgs.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__functions__vertexAttribPointer.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__functions__vertexAttribPointerBadArgs.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__glsl__arrayOutOfBounds.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__more__glsl__uniformOutOfBounds.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__programs__get-active-test.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__programs__gl-bind-attrib-location-test.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__programs__gl-get-active-attribute.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__programs__gl-get-active-uniform.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__programs__gl-getshadersource.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__programs__gl-shader-test.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__programs__invalid-UTF-16.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__programs__program-test.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__reading__read-pixels-pack-alignment.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__reading__read-pixels-test.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__renderbuffers__framebuffer-object-attachment.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__renderbuffers__framebuffer-test.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__renderbuffers__renderbuffer-initialization.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__rendering__draw-arrays-out-of-bounds.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__rendering__draw-elements-out-of-bounds.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__rendering__gl-clear.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__rendering__gl-drawelements.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__rendering__gl-scissor-test.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__rendering__line-loop-tri-fan.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__rendering__more-than-65536-indices.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__rendering__point-size.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__rendering__triangle.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__state__gl-enable-enum-test.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__state__gl-enum-tests.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__state__gl-get-calls.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__state__gl-geterror.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__state__gl-getstring.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__state__gl-object-get-calls.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__textures__compressed-tex-image.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__textures__copy-tex-image-and-sub-image-2d.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__textures__gl-pixelstorei.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__textures__gl-teximage.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__textures__origin-clean-conformance.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__textures__tex-image-and-sub-image-2d-with-array-buffer-view.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__textures__tex-image-and-sub-image-2d-with-canvas.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__textures__tex-image-and-sub-image-2d-with-image-data.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__textures__tex-image-and-sub-image-2d-with-image.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__textures__tex-image-and-sub-image-2d-with-video.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__textures__tex-image-and-uniform-binding-bugs.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__textures__tex-image-with-format-and-type.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__textures__tex-image-with-invalid-data.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__textures__tex-input-validation.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__textures__tex-sub-image-2d-bad-args.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__textures__tex-sub-image-2d.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__textures__texparameter-test.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__textures__texture-active-bind-2.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__textures__texture-active-bind.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__textures__texture-complete.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__textures__texture-formats-test.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__textures__texture-mips.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__textures__texture-npot-video.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__textures__texture-npot.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__textures__texture-size-cube-maps.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__textures__texture-size.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__textures__texture-transparent-pixels-initialized.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__typedarrays__array-buffer-crash.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__typedarrays__array-buffer-view-crash.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__typedarrays__array-unit-tests.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__uniforms__gl-uniform-arrays.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__uniforms__gl-uniform-bool.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__uniforms__gl-uniformmatrix4fv.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__uniforms__gl-unknown-uniform.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__uniforms__null-uniform-location.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__uniforms__uniform-location.html
dom/canvas/test/webgl-conformance/_wrappers/test_conformance__uniforms__uniform-samplers-test.html
dom/canvas/test/webgl-conformance/always-fail.html
dom/canvas/test/webgl-conformance/conformance/00_readme.txt
dom/canvas/test/webgl-conformance/conformance/00_test_list.txt
dom/canvas/test/webgl-conformance/conformance/LICENSE_CHROMIUM
dom/canvas/test/webgl-conformance/conformance/attribs/00_test_list.txt
dom/canvas/test/webgl-conformance/conformance/attribs/gl-enable-vertex-attrib.html
dom/canvas/test/webgl-conformance/conformance/attribs/gl-vertex-attrib-zero-issues.html
dom/canvas/test/webgl-conformance/conformance/attribs/gl-vertex-attrib.html
dom/canvas/test/webgl-conformance/conformance/attribs/gl-vertexattribpointer-offsets.html
dom/canvas/test/webgl-conformance/conformance/attribs/gl-vertexattribpointer.html
dom/canvas/test/webgl-conformance/conformance/buffers/00_test_list.txt
dom/canvas/test/webgl-conformance/conformance/buffers/buffer-bind-test.html
dom/canvas/test/webgl-conformance/conformance/buffers/buffer-data-array-buffer.html
dom/canvas/test/webgl-conformance/conformance/buffers/index-validation-copies-indices.html
dom/canvas/test/webgl-conformance/conformance/buffers/index-validation-crash-with-buffer-sub-data.html
dom/canvas/test/webgl-conformance/conformance/buffers/index-validation-verifies-too-many-indices.html
dom/canvas/test/webgl-conformance/conformance/buffers/index-validation-with-resized-buffer.html
dom/canvas/test/webgl-conformance/conformance/buffers/index-validation.html
dom/canvas/test/webgl-conformance/conformance/canvas/00_test_list.txt
dom/canvas/test/webgl-conformance/conformance/canvas/buffer-offscreen-test.html
dom/canvas/test/webgl-conformance/conformance/canvas/buffer-preserve-test.html
dom/canvas/test/webgl-conformance/conformance/canvas/canvas-test.html
dom/canvas/test/webgl-conformance/conformance/canvas/canvas-zero-size.html
dom/canvas/test/webgl-conformance/conformance/canvas/drawingbuffer-static-canvas-test.html
dom/canvas/test/webgl-conformance/conformance/canvas/drawingbuffer-test.html
dom/canvas/test/webgl-conformance/conformance/canvas/viewport-unchanged-upon-resize.html
dom/canvas/test/webgl-conformance/conformance/context/00_test_list.txt
dom/canvas/test/webgl-conformance/conformance/context/constants.html
dom/canvas/test/webgl-conformance/conformance/context/context-attribute-preserve-drawing-buffer.html
dom/canvas/test/webgl-conformance/conformance/context/context-attributes-alpha-depth-stencil-antialias.html
dom/canvas/test/webgl-conformance/conformance/context/context-lost-restored.html
dom/canvas/test/webgl-conformance/conformance/context/context-lost.html
dom/canvas/test/webgl-conformance/conformance/context/context-type-test.html
dom/canvas/test/webgl-conformance/conformance/context/incorrect-context-object-behaviour.html
dom/canvas/test/webgl-conformance/conformance/context/methods.html
dom/canvas/test/webgl-conformance/conformance/context/premultiplyalpha-test.html
dom/canvas/test/webgl-conformance/conformance/context/resource-sharing-test.html
dom/canvas/test/webgl-conformance/conformance/extensions/00_test_list.txt
dom/canvas/test/webgl-conformance/conformance/extensions/ext-sRGB.html
dom/canvas/test/webgl-conformance/conformance/extensions/ext-shader-texture-lod.html
dom/canvas/test/webgl-conformance/conformance/extensions/ext-texture-filter-anisotropic.html
dom/canvas/test/webgl-conformance/conformance/extensions/oes-standard-derivatives.html
dom/canvas/test/webgl-conformance/conformance/extensions/oes-texture-float.html
dom/canvas/test/webgl-conformance/conformance/extensions/oes-vertex-array-object.html
dom/canvas/test/webgl-conformance/conformance/extensions/webgl-compressed-texture-etc1.html
dom/canvas/test/webgl-conformance/conformance/extensions/webgl-compressed-texture-s3tc.html
dom/canvas/test/webgl-conformance/conformance/extensions/webgl-debug-renderer-info.html
dom/canvas/test/webgl-conformance/conformance/extensions/webgl-debug-shaders.html
dom/canvas/test/webgl-conformance/conformance/extensions/webgl-depth-texture.html
dom/canvas/test/webgl-conformance/conformance/glsl/00_test_list.txt
dom/canvas/test/webgl-conformance/conformance/glsl/functions/00_test_list.txt
dom/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-abs.html
dom/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-acos.html
dom/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-asin.html
dom/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-atan-xy.html
dom/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-atan.html
dom/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-ceil.html
dom/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-clamp-float.html
dom/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-clamp-gentype.html
dom/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-cos.html
dom/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-cross.html
dom/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-distance.html
dom/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-dot.html
dom/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-faceforward.html
dom/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-floor.html
dom/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-fract.html
dom/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-length.html
dom/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-lessThan.html
dom/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-max-float.html
dom/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-max-gentype.html
dom/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-min-float.html
dom/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-min-gentype.html
dom/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-mix-float.html
dom/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-mix-gentype.html
dom/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-mod-float.html
dom/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-mod-gentype.html
dom/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-normalize.html
dom/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-reflect.html
dom/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-refract.html
dom/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-sign.html
dom/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-sin.html
dom/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-smoothstep-float.html
dom/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-smoothstep-gentype.html
dom/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-step-float.html
dom/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-step-gentype.html
dom/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/00_test_list.txt
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/add_int_float.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/add_int_mat2.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/add_int_mat3.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/add_int_mat4.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/add_int_vec2.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/add_int_vec3.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/add_int_vec4.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/add_ivec2_vec2.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/add_ivec3_vec3.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/add_ivec4_vec4.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/assign_int_to_float.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/assign_ivec2_to_vec2.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/assign_ivec3_to_vec3.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/assign_ivec4_to_vec4.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/construct_struct.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/divide_int_float.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/divide_int_mat2.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/divide_int_mat3.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/divide_int_mat4.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/divide_int_vec2.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/divide_int_vec3.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/divide_int_vec4.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/divide_ivec2_vec2.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/divide_ivec3_vec3.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/divide_ivec4_vec4.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/equal_int_float.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/equal_ivec2_vec2.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/equal_ivec3_vec3.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/equal_ivec4_vec4.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/function_int_float.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/function_ivec2_vec2.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/function_ivec3_vec3.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/function_ivec4_vec4.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/greater_than.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/greater_than_equal.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/less_than.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/less_than_equal.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/multiply_int_float.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/multiply_int_mat2.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/multiply_int_mat3.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/multiply_int_mat4.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/multiply_int_vec2.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/multiply_int_vec3.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/multiply_int_vec4.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/multiply_ivec2_vec2.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/multiply_ivec3_vec3.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/multiply_ivec4_vec4.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/not_equal_int_float.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/not_equal_ivec2_vec2.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/not_equal_ivec3_vec3.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/not_equal_ivec4_vec4.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/subtract_int_float.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/subtract_int_mat2.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/subtract_int_mat3.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/subtract_int_mat4.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/subtract_int_vec2.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/subtract_int_vec3.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/subtract_int_vec4.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/subtract_ivec2_vec2.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/subtract_ivec3_vec3.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/subtract_ivec4_vec4.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/ternary_int_float.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/ternary_ivec2_vec2.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/ternary_ivec3_vec3.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/implicit/ternary_ivec4_vec4.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/matrices/00_test_list.txt
dom/canvas/test/webgl-conformance/conformance/glsl/matrices/glsl-mat4-to-mat3.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/00_test_list.txt
dom/canvas/test/webgl-conformance/conformance/glsl/misc/attrib-location-length-limits.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/embedded-struct-definitions-forbidden.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/glsl-2types-of-textures-on-same-unit.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/glsl-function-nodes.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/glsl-long-variable-names.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/glsl-vertex-branch.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/include.vs
dom/canvas/test/webgl-conformance/conformance/glsl/misc/non-ascii-comments.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/non-ascii.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/re-compile-re-link.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-256-character-identifier.frag.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-257-character-identifier.frag.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-_webgl-identifier.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-arbitrary-indexing.frag.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-arbitrary-indexing.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-attrib-array.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-attrib-struct.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-clipvertex.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-comma-assignment.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-comma-conditional-assignment.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-conditional-scoping.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-default-precision.frag.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-default-precision.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-define-line-continuation.frag.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-dfdx-no-ext.frag.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-dfdx.frag.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-do-scoping.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-error-directive.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-explicit-int-cast.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-float-return-value.frag.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-for-loop.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-for-scoping.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-frag-depth.frag.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-function-recursion.frag.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-function-scoped-struct.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-functional-scoping.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-glcolor.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-gles-1.frag.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-gles-symbol.frag.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-glprojectionmatrix.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-hex-int-constant-macro.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-implicit-vec3-to-vec4-cast.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-include.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-int-return-value.frag.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-invalid-identifier.frag.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-ivec2-return-value.frag.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-ivec3-return-value.frag.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-ivec4-return-value.frag.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-limited-indexing.frag.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-line-directive.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-long-line.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-non-ascii-error.frag.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-precision.frag.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-quoted-error.frag.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-undefined-preprocessor-symbol.frag.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-uniform-in-loop-condition.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-vec2-return-value.frag.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-vec3-return-value.frag.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-vec4-return-value.frag.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-vec4-vec3-vec4-conditional.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-version-100.frag.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-version-100.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-version-120.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-version-130.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-webgl-identifier.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shader-without-precision.frag.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/shared.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/struct-nesting-exceeds-maximum.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/struct-nesting-under-maximum.html
dom/canvas/test/webgl-conformance/conformance/glsl/misc/uniform-location-length-limits.html
dom/canvas/test/webgl-conformance/conformance/glsl/reserved/00_test_list.txt
dom/canvas/test/webgl-conformance/conformance/glsl/reserved/_webgl_field.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/reserved/_webgl_function.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/reserved/_webgl_struct.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/reserved/_webgl_variable.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/reserved/webgl_field.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/reserved/webgl_function.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/reserved/webgl_struct.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/reserved/webgl_variable.vert.html
dom/canvas/test/webgl-conformance/conformance/glsl/samplers/00_test_list.txt
dom/canvas/test/webgl-conformance/conformance/glsl/samplers/glsl-function-texture2d-bias.html
dom/canvas/test/webgl-conformance/conformance/glsl/samplers/glsl-function-texture2dlod.html
dom/canvas/test/webgl-conformance/conformance/glsl/samplers/glsl-function-texture2dproj.html
dom/canvas/test/webgl-conformance/conformance/glsl/variables/00_test_list.txt
dom/canvas/test/webgl-conformance/conformance/glsl/variables/gl-fragcoord.html
dom/canvas/test/webgl-conformance/conformance/glsl/variables/gl-frontfacing.html
dom/canvas/test/webgl-conformance/conformance/glsl/variables/gl-pointcoord.html
dom/canvas/test/webgl-conformance/conformance/limits/00_test_list.txt
dom/canvas/test/webgl-conformance/conformance/limits/gl-max-texture-dimensions.html
dom/canvas/test/webgl-conformance/conformance/limits/gl-min-attribs.html
dom/canvas/test/webgl-conformance/conformance/limits/gl-min-textures.html
dom/canvas/test/webgl-conformance/conformance/limits/gl-min-uniforms.html
dom/canvas/test/webgl-conformance/conformance/misc/00_test_list.txt
dom/canvas/test/webgl-conformance/conformance/misc/bad-arguments-test.html
dom/canvas/test/webgl-conformance/conformance/misc/delayed-drawing.html
dom/canvas/test/webgl-conformance/conformance/misc/error-reporting.html
dom/canvas/test/webgl-conformance/conformance/misc/functions-returning-strings.html
dom/canvas/test/webgl-conformance/conformance/misc/instanceof-test.html
dom/canvas/test/webgl-conformance/conformance/misc/invalid-passed-params.html
dom/canvas/test/webgl-conformance/conformance/misc/is-object.html
dom/canvas/test/webgl-conformance/conformance/misc/null-object-behaviour.html
dom/canvas/test/webgl-conformance/conformance/misc/object-deletion-behaviour.html
dom/canvas/test/webgl-conformance/conformance/misc/shader-precision-format.html
dom/canvas/test/webgl-conformance/conformance/misc/type-conversion-test.html
dom/canvas/test/webgl-conformance/conformance/misc/uninitialized-test.html
dom/canvas/test/webgl-conformance/conformance/misc/webgl-specific.html
dom/canvas/test/webgl-conformance/conformance/more/00_test_list.txt
dom/canvas/test/webgl-conformance/conformance/more/README.md
dom/canvas/test/webgl-conformance/conformance/more/all_tests.html
dom/canvas/test/webgl-conformance/conformance/more/all_tests_linkonly.html
dom/canvas/test/webgl-conformance/conformance/more/all_tests_sequential.html
dom/canvas/test/webgl-conformance/conformance/more/conformance/argGenerators-A.js
dom/canvas/test/webgl-conformance/conformance/more/conformance/argGenerators-B1.js
dom/canvas/test/webgl-conformance/conformance/more/conformance/argGenerators-B2.js
dom/canvas/test/webgl-conformance/conformance/more/conformance/argGenerators-B3.js
dom/canvas/test/webgl-conformance/conformance/more/conformance/argGenerators-B4.js
dom/canvas/test/webgl-conformance/conformance/more/conformance/argGenerators-C.js
dom/canvas/test/webgl-conformance/conformance/more/conformance/argGenerators-D_G.js
dom/canvas/test/webgl-conformance/conformance/more/conformance/argGenerators-G_I.js
dom/canvas/test/webgl-conformance/conformance/more/conformance/argGenerators-L_S.js
dom/canvas/test/webgl-conformance/conformance/more/conformance/argGenerators-S_V.js
dom/canvas/test/webgl-conformance/conformance/more/conformance/badArgsArityLessThanArgc.html
dom/canvas/test/webgl-conformance/conformance/more/conformance/constants.html
dom/canvas/test/webgl-conformance/conformance/more/conformance/fuzzTheAPI.html
dom/canvas/test/webgl-conformance/conformance/more/conformance/getContext.html
dom/canvas/test/webgl-conformance/conformance/more/conformance/methods.html
dom/canvas/test/webgl-conformance/conformance/more/conformance/quickCheckAPI-A.html
dom/canvas/test/webgl-conformance/conformance/more/conformance/quickCheckAPI-B1.html
dom/canvas/test/webgl-conformance/conformance/more/conformance/quickCheckAPI-B2.html
dom/canvas/test/webgl-conformance/conformance/more/conformance/quickCheckAPI-B3.html
dom/canvas/test/webgl-conformance/conformance/more/conformance/quickCheckAPI-B4.html
dom/canvas/test/webgl-conformance/conformance/more/conformance/quickCheckAPI-C.html
dom/canvas/test/webgl-conformance/conformance/more/conformance/quickCheckAPI-D_G.html
dom/canvas/test/webgl-conformance/conformance/more/conformance/quickCheckAPI-G_I.html
dom/canvas/test/webgl-conformance/conformance/more/conformance/quickCheckAPI-L_S.html
dom/canvas/test/webgl-conformance/conformance/more/conformance/quickCheckAPI-S_V.html
dom/canvas/test/webgl-conformance/conformance/more/conformance/quickCheckAPI.js
dom/canvas/test/webgl-conformance/conformance/more/conformance/quickCheckAPIBadArgs.html
dom/canvas/test/webgl-conformance/conformance/more/conformance/webGLArrays.html
dom/canvas/test/webgl-conformance/conformance/more/demos/opengl_web.html
dom/canvas/test/webgl-conformance/conformance/more/demos/video.html
dom/canvas/test/webgl-conformance/conformance/more/functions/bindBuffer.html
dom/canvas/test/webgl-conformance/conformance/more/functions/bindBufferBadArgs.html
dom/canvas/test/webgl-conformance/conformance/more/functions/bindFramebufferLeaveNonZero.html
dom/canvas/test/webgl-conformance/conformance/more/functions/bufferData.html
dom/canvas/test/webgl-conformance/conformance/more/functions/bufferDataBadArgs.html
dom/canvas/test/webgl-conformance/conformance/more/functions/bufferSubData.html
dom/canvas/test/webgl-conformance/conformance/more/functions/bufferSubDataBadArgs.html
dom/canvas/test/webgl-conformance/conformance/more/functions/copyTexImage2D.html
dom/canvas/test/webgl-conformance/conformance/more/functions/copyTexImage2DBadArgs.html
dom/canvas/test/webgl-conformance/conformance/more/functions/copyTexSubImage2D.html
dom/canvas/test/webgl-conformance/conformance/more/functions/copyTexSubImage2DBadArgs.html
dom/canvas/test/webgl-conformance/conformance/more/functions/deleteBufferBadArgs.html
dom/canvas/test/webgl-conformance/conformance/more/functions/drawArrays.html
dom/canvas/test/webgl-conformance/conformance/more/functions/drawArraysOutOfBounds.html
dom/canvas/test/webgl-conformance/conformance/more/functions/drawElements.html
dom/canvas/test/webgl-conformance/conformance/more/functions/drawElementsBadArgs.html
dom/canvas/test/webgl-conformance/conformance/more/functions/isTests.html
dom/canvas/test/webgl-conformance/conformance/more/functions/readPixels.html
dom/canvas/test/webgl-conformance/conformance/more/functions/readPixelsBadArgs.html
dom/canvas/test/webgl-conformance/conformance/more/functions/texImage2D.html
dom/canvas/test/webgl-conformance/conformance/more/functions/texImage2DBadArgs.html
dom/canvas/test/webgl-conformance/conformance/more/functions/texImage2DHTML.html
dom/canvas/test/webgl-conformance/conformance/more/functions/texImage2DHTMLBadArgs.html
dom/canvas/test/webgl-conformance/conformance/more/functions/texSubImage2D.html
dom/canvas/test/webgl-conformance/conformance/more/functions/texSubImage2DBadArgs.html
dom/canvas/test/webgl-conformance/conformance/more/functions/texSubImage2DHTML.html
dom/canvas/test/webgl-conformance/conformance/more/functions/texSubImage2DHTMLBadArgs.html
dom/canvas/test/webgl-conformance/conformance/more/functions/uniformMatrix.html
dom/canvas/test/webgl-conformance/conformance/more/functions/uniformMatrixBadArgs.html
dom/canvas/test/webgl-conformance/conformance/more/functions/uniformf.html
dom/canvas/test/webgl-conformance/conformance/more/functions/uniformfArrayLen1.html
dom/canvas/test/webgl-conformance/conformance/more/functions/uniformfBadArgs.html
dom/canvas/test/webgl-conformance/conformance/more/functions/uniformi.html
dom/canvas/test/webgl-conformance/conformance/more/functions/uniformiBadArgs.html
dom/canvas/test/webgl-conformance/conformance/more/functions/vertexAttrib.html
dom/canvas/test/webgl-conformance/conformance/more/functions/vertexAttribBadArgs.html
dom/canvas/test/webgl-conformance/conformance/more/functions/vertexAttribPointer.html
dom/canvas/test/webgl-conformance/conformance/more/functions/vertexAttribPointerBadArgs.html
dom/canvas/test/webgl-conformance/conformance/more/glsl/arrayOutOfBounds.html
dom/canvas/test/webgl-conformance/conformance/more/glsl/longLoops.html
dom/canvas/test/webgl-conformance/conformance/more/glsl/uniformOutOfBounds.html
dom/canvas/test/webgl-conformance/conformance/more/glsl/unusedAttribsUniforms.html
dom/canvas/test/webgl-conformance/conformance/more/index.html
dom/canvas/test/webgl-conformance/conformance/more/performance/CPUvsGPU.html
dom/canvas/test/webgl-conformance/conformance/more/performance/bandwidth.html
dom/canvas/test/webgl-conformance/conformance/more/performance/jsGCPause.html
dom/canvas/test/webgl-conformance/conformance/more/performance/jsMatrixMult.html
dom/canvas/test/webgl-conformance/conformance/more/performance/jsToGLOverhead.html
dom/canvas/test/webgl-conformance/conformance/more/unit.css
dom/canvas/test/webgl-conformance/conformance/more/unit.js
dom/canvas/test/webgl-conformance/conformance/more/util.js
dom/canvas/test/webgl-conformance/conformance/programs/00_test_list.txt
dom/canvas/test/webgl-conformance/conformance/programs/get-active-test.html
dom/canvas/test/webgl-conformance/conformance/programs/gl-bind-attrib-location-test.html
dom/canvas/test/webgl-conformance/conformance/programs/gl-get-active-attribute.html
dom/canvas/test/webgl-conformance/conformance/programs/gl-get-active-uniform.html
dom/canvas/test/webgl-conformance/conformance/programs/gl-getshadersource.html
dom/canvas/test/webgl-conformance/conformance/programs/gl-shader-test.html
dom/canvas/test/webgl-conformance/conformance/programs/invalid-UTF-16.html
dom/canvas/test/webgl-conformance/conformance/programs/program-test.html
dom/canvas/test/webgl-conformance/conformance/reading/00_test_list.txt
dom/canvas/test/webgl-conformance/conformance/reading/read-pixels-pack-alignment.html
dom/canvas/test/webgl-conformance/conformance/reading/read-pixels-test.html
dom/canvas/test/webgl-conformance/conformance/renderbuffers/00_test_list.txt
dom/canvas/test/webgl-conformance/conformance/renderbuffers/framebuffer-object-attachment.html
dom/canvas/test/webgl-conformance/conformance/renderbuffers/framebuffer-test.html
dom/canvas/test/webgl-conformance/conformance/renderbuffers/renderbuffer-initialization.html
dom/canvas/test/webgl-conformance/conformance/rendering/00_test_list.txt
dom/canvas/test/webgl-conformance/conformance/rendering/draw-arrays-out-of-bounds.html
dom/canvas/test/webgl-conformance/conformance/rendering/draw-elements-out-of-bounds.html
dom/canvas/test/webgl-conformance/conformance/rendering/gl-clear.html
dom/canvas/test/webgl-conformance/conformance/rendering/gl-drawelements.html
dom/canvas/test/webgl-conformance/conformance/rendering/gl-scissor-test.html
dom/canvas/test/webgl-conformance/conformance/rendering/line-loop-tri-fan.html
dom/canvas/test/webgl-conformance/conformance/rendering/more-than-65536-indices.html
dom/canvas/test/webgl-conformance/conformance/rendering/point-size.html
dom/canvas/test/webgl-conformance/conformance/rendering/triangle.html
dom/canvas/test/webgl-conformance/conformance/resources/3x3.png
dom/canvas/test/webgl-conformance/conformance/resources/blue-1x1.jpg
dom/canvas/test/webgl-conformance/conformance/resources/boolUniformShader.vert
dom/canvas/test/webgl-conformance/conformance/resources/bug-32888-texture.png
dom/canvas/test/webgl-conformance/conformance/resources/floatUniformShader.vert
dom/canvas/test/webgl-conformance/conformance/resources/fragmentShader.frag
dom/canvas/test/webgl-conformance/conformance/resources/glsl-conformance-test.js
dom/canvas/test/webgl-conformance/conformance/resources/glsl-feature-tests.css
dom/canvas/test/webgl-conformance/conformance/resources/glsl-generator.js
dom/canvas/test/webgl-conformance/conformance/resources/gray-ramp-256-with-128-alpha.png
dom/canvas/test/webgl-conformance/conformance/resources/gray-ramp-256.png
dom/canvas/test/webgl-conformance/conformance/resources/gray-ramp-default-gamma.png
dom/canvas/test/webgl-conformance/conformance/resources/gray-ramp-gamma0.1.png
dom/canvas/test/webgl-conformance/conformance/resources/gray-ramp-gamma1.0.png
dom/canvas/test/webgl-conformance/conformance/resources/gray-ramp-gamma2.0.png
dom/canvas/test/webgl-conformance/conformance/resources/gray-ramp-gamma4.0.png
dom/canvas/test/webgl-conformance/conformance/resources/gray-ramp-gamma9.0.png
dom/canvas/test/webgl-conformance/conformance/resources/gray-ramp.png
dom/canvas/test/webgl-conformance/conformance/resources/green-2x2-16bit.png
dom/canvas/test/webgl-conformance/conformance/resources/intArrayUniformShader.vert
dom/canvas/test/webgl-conformance/conformance/resources/intUniformShader.vert
dom/canvas/test/webgl-conformance/conformance/resources/matUniformShader.vert
dom/canvas/test/webgl-conformance/conformance/resources/noopUniformShader.frag
dom/canvas/test/webgl-conformance/conformance/resources/noopUniformShader.vert
dom/canvas/test/webgl-conformance/conformance/resources/npot-video.mp4
dom/canvas/test/webgl-conformance/conformance/resources/npot-video.theora.ogv
dom/canvas/test/webgl-conformance/conformance/resources/npot-video.webmvp8.webm
dom/canvas/test/webgl-conformance/conformance/resources/pnglib.js
dom/canvas/test/webgl-conformance/conformance/resources/red-green.mp4
dom/canvas/test/webgl-conformance/conformance/resources/red-green.png
dom/canvas/test/webgl-conformance/conformance/resources/red-green.theora.ogv
dom/canvas/test/webgl-conformance/conformance/resources/red-green.webmvp8.webm
dom/canvas/test/webgl-conformance/conformance/resources/red-indexed.png
dom/canvas/test/webgl-conformance/conformance/resources/samplerUniformShader.frag
dom/canvas/test/webgl-conformance/conformance/resources/small-square-with-cie-rgb-profile.png
dom/canvas/test/webgl-conformance/conformance/resources/small-square-with-colormatch-profile.png
dom/canvas/test/webgl-conformance/conformance/resources/small-square-with-colorspin-profile.jpg
dom/canvas/test/webgl-conformance/conformance/resources/small-square-with-colorspin-profile.png
dom/canvas/test/webgl-conformance/conformance/resources/small-square-with-e-srgb-profile.png
dom/canvas/test/webgl-conformance/conformance/resources/small-square-with-smpte-c-profile.png
dom/canvas/test/webgl-conformance/conformance/resources/small-square-with-srgb-iec61966-2.1-profile.png
dom/canvas/test/webgl-conformance/conformance/resources/structUniformShader.vert
dom/canvas/test/webgl-conformance/conformance/resources/vertexShader.vert
dom/canvas/test/webgl-conformance/conformance/resources/webgl-test-utils.js
dom/canvas/test/webgl-conformance/conformance/resources/webgl-test.js
dom/canvas/test/webgl-conformance/conformance/resources/zero-alpha.png
dom/canvas/test/webgl-conformance/conformance/state/00_test_list.txt
dom/canvas/test/webgl-conformance/conformance/state/gl-enable-enum-test.html
dom/canvas/test/webgl-conformance/conformance/state/gl-enum-tests.html
dom/canvas/test/webgl-conformance/conformance/state/gl-get-calls.html
dom/canvas/test/webgl-conformance/conformance/state/gl-geterror.html
dom/canvas/test/webgl-conformance/conformance/state/gl-getstring.html
dom/canvas/test/webgl-conformance/conformance/state/gl-object-get-calls.html
dom/canvas/test/webgl-conformance/conformance/textures/00_test_list.txt
dom/canvas/test/webgl-conformance/conformance/textures/compressed-tex-image.html
dom/canvas/test/webgl-conformance/conformance/textures/copy-tex-image-and-sub-image-2d.html
dom/canvas/test/webgl-conformance/conformance/textures/gl-pixelstorei.html
dom/canvas/test/webgl-conformance/conformance/textures/gl-teximage.html
dom/canvas/test/webgl-conformance/conformance/textures/origin-clean-conformance.html
dom/canvas/test/webgl-conformance/conformance/textures/tex-image-and-sub-image-2d-with-array-buffer-view.html
dom/canvas/test/webgl-conformance/conformance/textures/tex-image-and-sub-image-2d-with-canvas.html
dom/canvas/test/webgl-conformance/conformance/textures/tex-image-and-sub-image-2d-with-image-data.html
dom/canvas/test/webgl-conformance/conformance/textures/tex-image-and-sub-image-2d-with-image.html
dom/canvas/test/webgl-conformance/conformance/textures/tex-image-and-sub-image-2d-with-video.html
dom/canvas/test/webgl-conformance/conformance/textures/tex-image-and-uniform-binding-bugs.html
dom/canvas/test/webgl-conformance/conformance/textures/tex-image-with-format-and-type.html
dom/canvas/test/webgl-conformance/conformance/textures/tex-image-with-invalid-data.html
dom/canvas/test/webgl-conformance/conformance/textures/tex-input-validation.html
dom/canvas/test/webgl-conformance/conformance/textures/tex-sub-image-2d-bad-args.html
dom/canvas/test/webgl-conformance/conformance/textures/tex-sub-image-2d.html
dom/canvas/test/webgl-conformance/conformance/textures/texparameter-test.html
dom/canvas/test/webgl-conformance/conformance/textures/texture-active-bind-2.html
dom/canvas/test/webgl-conformance/conformance/textures/texture-active-bind.html
dom/canvas/test/webgl-conformance/conformance/textures/texture-clear.html
dom/canvas/test/webgl-conformance/conformance/textures/texture-complete.html
dom/canvas/test/webgl-conformance/conformance/textures/texture-formats-test.html
dom/canvas/test/webgl-conformance/conformance/textures/texture-mips.html
dom/canvas/test/webgl-conformance/conformance/textures/texture-npot-video.html
dom/canvas/test/webgl-conformance/conformance/textures/texture-npot.html
dom/canvas/test/webgl-conformance/conformance/textures/texture-size-cube-maps.html
dom/canvas/test/webgl-conformance/conformance/textures/texture-size.html
dom/canvas/test/webgl-conformance/conformance/textures/texture-transparent-pixels-initialized.html
dom/canvas/test/webgl-conformance/conformance/typedarrays/00_test_list.txt
dom/canvas/test/webgl-conformance/conformance/typedarrays/array-buffer-crash.html
dom/canvas/test/webgl-conformance/conformance/typedarrays/array-buffer-view-crash.html
dom/canvas/test/webgl-conformance/conformance/typedarrays/array-unit-tests.html
dom/canvas/test/webgl-conformance/conformance/uniforms/00_test_list.txt
dom/canvas/test/webgl-conformance/conformance/uniforms/gl-uniform-arrays.html
dom/canvas/test/webgl-conformance/conformance/uniforms/gl-uniform-bool.html
dom/canvas/test/webgl-conformance/conformance/uniforms/gl-uniformmatrix4fv.html
dom/canvas/test/webgl-conformance/conformance/uniforms/gl-unknown-uniform.html
dom/canvas/test/webgl-conformance/conformance/uniforms/null-uniform-location.html
dom/canvas/test/webgl-conformance/conformance/uniforms/uniform-location.html
dom/canvas/test/webgl-conformance/conformance/uniforms/uniform-samplers-test.html
dom/canvas/test/webgl-conformance/dont-load-image-from-internet.patch
dom/canvas/test/webgl-conformance/ext-texture-filter-anisotropic.patch
dom/canvas/test/webgl-conformance/extra/50x50pixel-black-with-red-triangle.png
dom/canvas/test/webgl-conformance/extra/big-fbos-example.html
dom/canvas/test/webgl-conformance/extra/canvas-compositing-test.html
dom/canvas/test/webgl-conformance/extra/canvas-compositing-test.png
dom/canvas/test/webgl-conformance/extra/fbo-lost-context.html
dom/canvas/test/webgl-conformance/extra/lots-of-polys-example.html
dom/canvas/test/webgl-conformance/extra/offscreen-issue.html
dom/canvas/test/webgl-conformance/extra/out-of-bounds-uniform-array-access.html
dom/canvas/test/webgl-conformance/extra/out-of-memory.html
dom/canvas/test/webgl-conformance/extra/out-of-resources.html
dom/canvas/test/webgl-conformance/extra/out-of-vram.html
dom/canvas/test/webgl-conformance/extra/simulated-attrib-0-bug-test.html
dom/canvas/test/webgl-conformance/extra/slow-shader-example.html
dom/canvas/test/webgl-conformance/extra/webgl-info.html
dom/canvas/test/webgl-conformance/fix-webgl-harness-async.patch
dom/canvas/test/webgl-conformance/gc.patch
dom/canvas/test/webgl-conformance/generate-wrappers-and-manifest.py
dom/canvas/test/webgl-conformance/iframe-autoresize.js
dom/canvas/test/webgl-conformance/log-more-info-about-test-failures.patch
dom/canvas/test/webgl-conformance/misc/program-test-1.html
dom/canvas/test/webgl-conformance/mochi-single.html
dom/canvas/test/webgl-conformance/mochi-wrapper.html.template
dom/canvas/test/webgl-conformance/mochitest-errata.ini
dom/canvas/test/webgl-conformance/mochitest.ini.template
dom/canvas/test/webgl-conformance/reference-cycle-test.patch
dom/canvas/test/webgl-conformance/resources/cors-util.js
dom/canvas/test/webgl-conformance/resources/desktop-gl-constants.js
dom/canvas/test/webgl-conformance/resources/js-test-pre.js
dom/canvas/test/webgl-conformance/resources/js-test-style.css
dom/canvas/test/webgl-conformance/resources/opengl_logo.jpg
dom/canvas/test/webgl-conformance/resources/thunderbird-logo-64x64.png
dom/canvas/test/webgl-conformance/resources/webgl-logo.png
dom/canvas/test/webgl-conformance/resources/webgl-test-harness.js
dom/canvas/test/webgl-conformance/webgl-conformance-tests.html
dom/canvas/test/webgl-mochitest.ini
dom/security/test/unit/test_isURIPotentiallyTrustworthy.js
security/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c
security/nss/cmd/libpkix/pkix/store/test_store.c
security/nss/cmd/libpkix/testutil/testutil.c
security/nss/cmd/libpkix/testutil/testutil.h
security/nss/cmd/libpkix/testutil/testutil_nss.c
security/nss/cmd/libpkix/testutil/testutil_nss.h
security/nss/tests/memleak/memleak.sh
testing/web-platform/meta/dom/nodes/ChildNode-after.html.ini
testing/web-platform/meta/dom/nodes/ChildNode-before.html.ini
testing/web-platform/meta/dom/nodes/ChildNode-replaceWith.html.ini
testing/web-platform/meta/dom/nodes/ParentNode-append.html.ini
testing/web-platform/meta/dom/nodes/ParentNode-prepend.html.ini
testing/web-platform/meta/dom/nodes/append-on-Document.html.ini
testing/web-platform/meta/dom/nodes/prepend-on-Document.html.ini
--- a/accessible/base/TextAttrs.cpp
+++ b/accessible/base/TextAttrs.cpp
@@ -697,17 +697,17 @@ TextAttrsMgr::TextDecorValue::
   TextDecorValue(nsIFrame* aFrame)
 {
   const nsStyleTextReset* textReset = aFrame->StyleTextReset();
   mStyle = textReset->GetDecorationStyle();
 
   bool isForegroundColor = false;
   textReset->GetDecorationColor(mColor, isForegroundColor);
   if (isForegroundColor)
-    mColor = aFrame->StyleContext()->GetTextFillColor();
+    mColor = aFrame->StyleColor()->mColor;
 
   mLine = textReset->mTextDecorationLine &
     (NS_STYLE_TEXT_DECORATION_LINE_UNDERLINE |
      NS_STYLE_TEXT_DECORATION_LINE_LINE_THROUGH);
 }
 
 TextAttrsMgr::TextDecorTextAttr::
   TextDecorTextAttr(nsIFrame* aRootFrame, nsIFrame* aFrame) :
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -5435,17 +5435,17 @@ function handleLinkClick(event, href, li
   // first get document wide referrer policy, then
   // get referrer attribute from clicked link and parse it and
   // allow per element referrer to overrule the document wide referrer if enabled
   let referrerPolicy = doc.referrerPolicy;
   if (Services.prefs.getBoolPref("network.http.enablePerElementReferrer") &&
       linkNode) {
     let referrerAttrValue = Services.netUtils.parseAttributePolicyString(linkNode.
                             getAttribute("referrerpolicy"));
-    if (referrerAttrValue != Ci.nsIHttpChannel.REFERRER_POLICY_DEFAULT) {
+    if (referrerAttrValue != Ci.nsIHttpChannel.REFERRER_POLICY_UNSET) {
       referrerPolicy = referrerAttrValue;
     }
   }
 
   urlSecurityCheck(href, doc.nodePrincipal);
   let params = { charset: doc.characterSet,
                  allowMixedContent: persistAllowMixedContentInChildTab,
                  referrerURI: referrerURI,
--- a/browser/base/content/content.js
+++ b/browser/base/content/content.js
@@ -123,17 +123,17 @@ var handleContentContextMenu = function 
   let parentAllowsMixedContent = !!docShell.mixedContentChannel;
 
   // get referrer attribute from clicked link and parse it
   // if per element referrer is enabled, the element referrer overrules
   // the document wide referrer
   if (Services.prefs.getBoolPref("network.http.enablePerElementReferrer")) {
     let referrerAttrValue = Services.netUtils.parseAttributePolicyString(event.target.
                             getAttribute("referrerpolicy"));
-    if (referrerAttrValue !== Ci.nsIHttpChannel.REFERRER_POLICY_DEFAULT) {
+    if (referrerAttrValue !== Ci.nsIHttpChannel.REFERRER_POLICY_UNSET) {
       referrerPolicy = referrerAttrValue;
     }
   }
 
   let disableSetDesktopBg = null;
   // Media related cache info parent needs for saving
   let contentType = null;
   let contentDisposition = null;
@@ -414,17 +414,17 @@ var ClickEventHandler = {
     // get referrer attribute from clicked link and parse it
     // if per element referrer is enabled, the element referrer overrules
     // the document wide referrer
     let referrerPolicy = ownerDoc.referrerPolicy;
     if (Services.prefs.getBoolPref("network.http.enablePerElementReferrer") &&
         node) {
       let referrerAttrValue = Services.netUtils.parseAttributePolicyString(node.
                               getAttribute("referrerpolicy"));
-      if (referrerAttrValue !== Ci.nsIHttpChannel.REFERRER_POLICY_DEFAULT) {
+      if (referrerAttrValue !== Ci.nsIHttpChannel.REFERRER_POLICY_UNSET) {
         referrerPolicy = referrerAttrValue;
       }
     }
 
     let json = { button: event.button, shiftKey: event.shiftKey,
                  ctrlKey: event.ctrlKey, metaKey: event.metaKey,
                  altKey: event.altKey, href: null, title: null,
                  bookmark: false, referrerPolicy: referrerPolicy };
--- a/browser/locales/en-US/chrome/browser/preferences/blocklists.dtd
+++ b/browser/locales/en-US/chrome/browser/preferences/blocklists.dtd
@@ -1,14 +1,14 @@
 <!-- This Source Code Form is subject to the terms of the Mozilla Public
    - License, v. 2.0. If a copy of the MPL was not distributed with this
    - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 
 <!ENTITY window.title                 "Block Lists">
-<!ENTITY window.width                 "50em">
+<!ENTITY window.width                 "55em">
 
 <!ENTITY treehead.list.label          "List">
 <!ENTITY windowClose.key              "w">
 
 <!ENTITY button.cancel.label          "Cancel">
 <!ENTITY button.cancel.accesskey      "C">
 <!ENTITY button.ok.label              "Save Changes">
 <!ENTITY button.ok.accesskey          "S">
--- a/build/sanitizers/lsan_suppressions.txt
+++ b/build/sanitizers/lsan_suppressions.txt
@@ -71,22 +71,16 @@ leak:nsPSPrinterList::GetPrinterList
 leak:_PR_Getfd
 
 # Bug 1028483 - The XML parser sometimes leaks an object. bc3
 leak:processInternalEntity
 
 # Bug 1187421 - With e10s, NSS does not always free the error stack. m1.
 leak:nss_ClearErrorStack
 
-# Bug 1122045 - Leaks in MessageLoop::MessageLoop()
-leak:MessageLoop::MessageLoop
-# This may not actually be related to MessageLoop.
-leak:base::WaitableEvent::TimedWait
-leak:MessageLoop::PostTask_Helper
-
 # Bug 1189430 - DNS leaks in mochitest-chrome.
 leak:nsDNSService::AsyncResolveExtended
 leak:_GetAddrInfo_Portable
 
 # Bug 1189568 - Indirect leaks of IMContextWrapper and nsIntRect.
 leak:nsWindow::Create
 leak:nsBaseWidget::StoreWindowClipRegion
 
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-frame-parameters-02.js
+++ b/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-frame-parameters-02.js
@@ -515,25 +515,25 @@ function testGetterSetterObject() {
     is(propEnums.length, 0,
       "The propEnums should contain all the created enumerable elements.");
     is(propNonEnums.length, 2,
       "The propEnums should contain all the created non-enumerable elements.");
 
     is(propNonEnums[0].querySelector(".name").getAttribute("value"), "get",
       "Should have the right property name for 'get'.");
     is(propNonEnums[0].querySelector(".value").getAttribute("value"),
-      "test/myVar.prop()",
+      "get prop()",
       "Should have the right property value for 'get'.");
     ok(propNonEnums[0].querySelector(".value").className.includes("token-other"),
       "Should have the right token class for 'get'.");
 
     is(propNonEnums[1].querySelector(".name").getAttribute("value"), "set",
       "Should have the right property name for 'set'.");
     is(propNonEnums[1].querySelector(".value").getAttribute("value"),
-      "test/myVar.prop(val)",
+      "set prop(val)",
       "Should have the right property value for 'set'.");
     ok(propNonEnums[1].querySelector(".value").className.includes("token-other"),
       "Should have the right token class for 'set'.");
 
     deferred.resolve();
   });
 
   myVar.expand();
--- a/devtools/server/actors/utils/TabSources.js
+++ b/devtools/server/actors/utils/TabSources.js
@@ -254,16 +254,20 @@ TabSources.prototype = {
    * Returns true if the URL likely points to a minified resource, false
    * otherwise.
    *
    * @param String aURL
    *        The URL to test.
    * @returns Boolean
    */
   _isMinifiedURL: function (aURL) {
+    if (!aURL) {
+      return false;
+    }
+
     try {
       let url = new URL(aURL);
       let pathname = url.pathname;
       return MINIFIED_SOURCE_REGEXP.test(pathname.slice(pathname.lastIndexOf("/") + 1));
     } catch (e) {
       // Not a valid URL so don't try to parse out the filename, just test the
       // whole thing with the minified source regexp.
       return MINIFIED_SOURCE_REGEXP.test(aURL);
--- a/dom/audiochannel/AudioChannelService.cpp
+++ b/dom/audiochannel/AudioChannelService.cpp
@@ -382,18 +382,18 @@ AudioChannelService::GetState(nsPIDOMWin
       *aVolume *= winData->mChannels[aAudioChannel].mVolume;
       *aMuted = *aMuted || winData->mChannels[aAudioChannel].mMuted;
     }
 
     *aVolume *= window->GetAudioVolume();
     // TODO : distiguish between suspend and mute, it would be done in bug1242874.
     *aMuted = *aMuted || window->GetMediaSuspended() || window->GetAudioMuted();
 
-    nsCOMPtr<nsPIDOMWindowOuter> win = window->GetScriptableParent();
-    if (window == win) {
+    nsCOMPtr<nsPIDOMWindowOuter> win = window->GetScriptableParentOrNull();
+    if (!win) {
       break;
     }
 
     window = do_QueryInterface(win);
 
     // If there is no parent, or we are the toplevel we don't continue.
   } while (window && window != aWindow);
 }
--- a/dom/base/nsGlobalWindow.cpp
+++ b/dom/base/nsGlobalWindow.cpp
@@ -3653,18 +3653,18 @@ nsPIDOMWindowInner::CreatePerformanceObj
       !NS_SUCCEEDED(timedChannel->GetTimingEnabled(&timingEnabled)) ||
       !timingEnabled) {
     timedChannel = nullptr;
   }
   if (timing) {
     // If we are dealing with an iframe, we will need the parent's performance
     // object (so we can add the iframe as a resource of that page).
     nsPerformance* parentPerformance = nullptr;
-    nsCOMPtr<nsPIDOMWindowOuter> parentWindow = GetScriptableParent();
-    if (GetOuterWindow() != parentWindow) {
+    nsCOMPtr<nsPIDOMWindowOuter> parentWindow = GetScriptableParentOrNull();
+    if (parentWindow) {
       nsPIDOMWindowInner* parentInnerWindow = nullptr;
       if (parentWindow) {
         parentInnerWindow = parentWindow->GetCurrentInnerWindow();
       }
       if (parentInnerWindow) {
         parentPerformance = parentInnerWindow->GetPerformance();
       }
     }
@@ -3874,16 +3874,29 @@ nsGlobalWindow::GetScriptableParent()
 {
   FORWARD_TO_OUTER(GetScriptableParent, (), nullptr);
 
   nsCOMPtr<nsPIDOMWindowOuter> parent = GetParentOuter();
   return parent.get();
 }
 
 /**
+ * Behavies identically to GetScriptableParent extept that it returns null
+ * if GetScriptableParent would return this window.
+ */
+nsPIDOMWindowOuter*
+nsGlobalWindow::GetScriptableParentOrNull()
+{
+  FORWARD_TO_OUTER(GetScriptableParentOrNull, (), nullptr);
+
+  nsPIDOMWindowOuter* parent = GetScriptableParent();
+  return (Cast(parent) == this) ? nullptr : parent;
+}
+
+/**
  * nsPIDOMWindow::GetParent (when called from C++) is just a wrapper around
  * GetRealParent.
  */
 already_AddRefed<nsPIDOMWindowOuter>
 nsGlobalWindow::GetParent()
 {
   MOZ_ASSERT(IsOuterWindow());
 
--- a/dom/base/nsGlobalWindow.h
+++ b/dom/base/nsGlobalWindow.h
@@ -891,16 +891,17 @@ public:
                  mozilla::ErrorResult& aError);
   already_AddRefed<nsPIDOMWindowOuter> GetOpener() override;
   void SetOpener(JSContext* aCx, JS::Handle<JS::Value> aOpener,
                  mozilla::ErrorResult& aError);
   already_AddRefed<nsPIDOMWindowOuter> GetParentOuter();
   already_AddRefed<nsPIDOMWindowOuter> GetParent(mozilla::ErrorResult& aError);
   already_AddRefed<nsPIDOMWindowOuter> GetParent() override;
   nsPIDOMWindowOuter* GetScriptableParent() override;
+  nsPIDOMWindowOuter* GetScriptableParentOrNull() override;
   mozilla::dom::Element* GetFrameElementOuter();
   mozilla::dom::Element* GetFrameElement(mozilla::ErrorResult& aError);
   already_AddRefed<nsIDOMElement> GetFrameElement() override;
   already_AddRefed<nsPIDOMWindowOuter>
   OpenOuter(const nsAString& aUrl,
             const nsAString& aName,
             const nsAString& aOptions,
             mozilla::ErrorResult& aError);
--- a/dom/base/nsINode.cpp
+++ b/dom/base/nsINode.cpp
@@ -1652,16 +1652,177 @@ nsINode::GetNextElementSibling() const
       return nextSibling->AsElement();
     }
     nextSibling = nextSibling->GetNextSibling();
   }
 
   return nullptr;
 }
 
+static already_AddRefed<nsINode>
+GetNodeFromNodeOrString(const OwningNodeOrString& aNode,
+                        nsIDocument* aDocument)
+{
+  if (aNode.IsNode()) {
+    nsCOMPtr<nsINode> node = aNode.GetAsNode();
+    return node.forget();
+  }
+
+  if (aNode.IsString()){
+    RefPtr<nsTextNode> textNode =
+      aDocument->CreateTextNode(aNode.GetAsString());
+    return textNode.forget();
+  }
+
+  MOZ_CRASH("Impossible type");
+}
+
+/**
+ * Implement the algorithm specified at
+ * https://dom.spec.whatwg.org/#converting-nodes-into-a-node for |prepend()|,
+ * |append()|, |before()|, |after()|, and |replaceWith()| APIs.
+ */
+static already_AddRefed<nsINode>
+ConvertNodesOrStringsIntoNode(const Sequence<OwningNodeOrString>& aNodes,
+                              nsIDocument* aDocument,
+                              ErrorResult& aRv)
+{
+  if (aNodes.Length() == 1) {
+    return GetNodeFromNodeOrString(aNodes[0], aDocument);
+  }
+
+  nsCOMPtr<nsINode> fragment = aDocument->CreateDocumentFragment();
+
+  for (const auto& node : aNodes) {
+    nsCOMPtr<nsINode> childNode = GetNodeFromNodeOrString(node, aDocument);
+    fragment->AppendChild(*childNode, aRv);
+    if (aRv.Failed()) {
+      return nullptr;
+    }
+  }
+
+  return fragment.forget();
+}
+
+static void
+InsertNodesIntoHashset(const Sequence<OwningNodeOrString>& aNodes,
+                       nsTHashtable<nsPtrHashKey<nsINode>>& aHashset)
+{
+  for (const auto& node : aNodes) {
+    if (node.IsNode()) {
+      aHashset.PutEntry(node.GetAsNode());
+    }
+  }
+}
+
+static nsINode*
+FindViablePreviousSibling(const nsINode& aNode,
+                          const Sequence<OwningNodeOrString>& aNodes)
+{
+  nsTHashtable<nsPtrHashKey<nsINode>> nodeSet(16);
+  InsertNodesIntoHashset(aNodes, nodeSet);
+
+  nsINode* viablePreviousSibling = nullptr;
+  for (nsINode* sibling = aNode.GetPreviousSibling(); sibling;
+       sibling = sibling->GetPreviousSibling()) {
+    if (!nodeSet.Contains(sibling)) {
+      viablePreviousSibling = sibling;
+      break;
+    }
+  }
+
+  return viablePreviousSibling;
+}
+
+static nsINode*
+FindViableNextSibling(const nsINode& aNode,
+                      const Sequence<OwningNodeOrString>& aNodes)
+{
+  nsTHashtable<nsPtrHashKey<nsINode>> nodeSet(16);
+  InsertNodesIntoHashset(aNodes, nodeSet);
+
+  nsINode* viableNextSibling = nullptr;
+  for (nsINode* sibling = aNode.GetNextSibling(); sibling;
+       sibling = sibling->GetNextSibling()) {
+    if (!nodeSet.Contains(sibling)) {
+      viableNextSibling = sibling;
+      break;
+    }
+  }
+
+  return viableNextSibling;
+}
+
+void
+nsINode::Before(const Sequence<OwningNodeOrString>& aNodes,
+                ErrorResult& aRv)
+{
+  nsCOMPtr<nsINode> parent = GetParentNode();
+  if (!parent) {
+    return;
+  }
+
+  nsINode* viablePreviousSibling = FindViablePreviousSibling(*this, aNodes);
+
+  nsCOMPtr<nsINode> node =
+    ConvertNodesOrStringsIntoNode(aNodes, OwnerDoc(), aRv);
+  if (aRv.Failed()) {
+    return;
+  }
+
+  viablePreviousSibling = viablePreviousSibling ?
+    viablePreviousSibling->GetNextSibling() : parent->GetFirstChild();
+
+  parent->InsertBefore(*node, viablePreviousSibling, aRv);
+}
+
+void
+nsINode::After(const Sequence<OwningNodeOrString>& aNodes,
+               ErrorResult& aRv)
+{
+  nsCOMPtr<nsINode> parent = GetParentNode();
+  if (!parent) {
+    return;
+  }
+
+  nsINode* viableNextSibling = FindViableNextSibling(*this, aNodes);
+
+  nsCOMPtr<nsINode> node =
+    ConvertNodesOrStringsIntoNode(aNodes, OwnerDoc(), aRv);
+  if (aRv.Failed()) {
+    return;
+  }
+
+  parent->InsertBefore(*node, viableNextSibling, aRv);
+}
+
+void
+nsINode::ReplaceWith(const Sequence<OwningNodeOrString>& aNodes,
+                     ErrorResult& aRv)
+{
+  nsCOMPtr<nsINode> parent = GetParentNode();
+  if (!parent) {
+    return;
+  }
+
+  nsINode* viableNextSibling = FindViableNextSibling(*this, aNodes);
+
+  nsCOMPtr<nsINode> node =
+    ConvertNodesOrStringsIntoNode(aNodes, OwnerDoc(), aRv);
+  if (aRv.Failed()) {
+    return;
+  }
+
+  if (parent == GetParentNode()) {
+    parent->ReplaceChild(*node, *this, aRv);
+  } else {
+    parent->InsertBefore(*node, viableNextSibling, aRv);
+  }
+}
+
 void
 nsINode::Remove()
 {
   nsCOMPtr<nsINode> parent = GetParentNode();
   if (!parent) {
     return;
   }
   int32_t index = parent->IndexOf(this);
@@ -1696,16 +1857,42 @@ nsINode::GetLastElementChild() const
       return child->AsElement();
     }
   }
 
   return nullptr;
 }
 
 void
+nsINode::Prepend(const Sequence<OwningNodeOrString>& aNodes,
+                 ErrorResult& aRv)
+{
+  nsCOMPtr<nsINode> node =
+    ConvertNodesOrStringsIntoNode(aNodes, OwnerDoc(), aRv);
+  if (aRv.Failed()) {
+    return;
+  }
+
+  InsertBefore(*node, mFirstChild, aRv);
+}
+
+void
+nsINode::Append(const Sequence<OwningNodeOrString>& aNodes,
+                 ErrorResult& aRv)
+{
+  nsCOMPtr<nsINode> node =
+    ConvertNodesOrStringsIntoNode(aNodes, OwnerDoc(), aRv);
+  if (aRv.Failed()) {
+    return;
+  }
+
+  AppendChild(*node, aRv);
+}
+
+void
 nsINode::doRemoveChildAt(uint32_t aIndex, bool aNotify,
                          nsIContent* aKid, nsAttrAndChildArray& aChildArray)
 {
   NS_PRECONDITION(aKid && aKid->GetParentNode() == this &&
                   aKid == GetChildAt(aIndex) &&
                   IndexOf(aKid) == (int32_t)aIndex, "Bogus aKid");
 
   nsMutationGuard::DidMutate();
--- a/dom/base/nsINode.h
+++ b/dom/base/nsINode.h
@@ -71,16 +71,18 @@ inline bool IsSpaceCharacter(char aChar)
 struct BoxQuadOptions;
 struct ConvertCoordinateOptions;
 class DOMPoint;
 class DOMQuad;
 class DOMRectReadOnly;
 class Element;
 class EventHandlerNonNull;
 template<typename T> class Optional;
+class OwningNodeOrString;
+template<typename> class Sequence;
 class Text;
 class TextOrElementOrDocument;
 struct DOMPointInit;
 } // namespace dom
 } // namespace mozilla
 
 #define NODE_FLAG_BIT(n_) \
   (nsWrapperCache::FlagsType(1U) << (WRAPPER_CACHE_FLAGS_BITS_USED + (n_)))
@@ -263,19 +265,23 @@ class nsINode : public mozilla::dom::Eve
 {
 public:
   typedef mozilla::dom::BoxQuadOptions BoxQuadOptions;
   typedef mozilla::dom::ConvertCoordinateOptions ConvertCoordinateOptions;
   typedef mozilla::dom::DOMPoint DOMPoint;
   typedef mozilla::dom::DOMPointInit DOMPointInit;
   typedef mozilla::dom::DOMQuad DOMQuad;
   typedef mozilla::dom::DOMRectReadOnly DOMRectReadOnly;
+  typedef mozilla::dom::OwningNodeOrString OwningNodeOrString;
   typedef mozilla::dom::TextOrElementOrDocument TextOrElementOrDocument;
   typedef mozilla::ErrorResult ErrorResult;
 
+  template<class T>
+  using Sequence = mozilla::dom::Sequence<T>;
+
   NS_DECLARE_STATIC_IID_ACCESSOR(NS_INODE_IID)
 
   // Among the sub-classes that inherit (directly or indirectly) from nsINode,
   // measurement of the following members may be added later if DMD finds it is
   // worthwhile:
   // - nsGenericHTMLElement:  mForm, mFieldSet
   // - nsGenericHTMLFrameElement: mFrameLoader (bug 672539)
   // - HTMLBodyElement:       mContentStyleRule
@@ -1790,25 +1796,33 @@ public:
     mozilla::ErrorResult rv;
     parent->RemoveChild(*this, rv);
     return rv.StealNSResult();
   }
 
   // ChildNode methods
   mozilla::dom::Element* GetPreviousElementSibling() const;
   mozilla::dom::Element* GetNextElementSibling() const;
+
+  void Before(const Sequence<OwningNodeOrString>& aNodes, ErrorResult& aRv);
+  void After(const Sequence<OwningNodeOrString>& aNodes, ErrorResult& aRv);
+  void ReplaceWith(const Sequence<OwningNodeOrString>& aNodes,
+                   ErrorResult& aRv);
   /**
    * Remove this node from its parent, if any.
    */
   void Remove();
 
   // ParentNode methods
   mozilla::dom::Element* GetFirstElementChild() const;
   mozilla::dom::Element* GetLastElementChild() const;
 
+  void Prepend(const Sequence<OwningNodeOrString>& aNodes, ErrorResult& aRv);
+  void Append(const Sequence<OwningNodeOrString>& aNodes, ErrorResult& aRv);
+
   void GetBoxQuads(const BoxQuadOptions& aOptions,
                    nsTArray<RefPtr<DOMQuad> >& aResult,
                    mozilla::ErrorResult& aRv);
 
   already_AddRefed<DOMQuad> ConvertQuadFromNode(DOMQuad& aQuad,
                                                 const TextOrElementOrDocument& aFrom,
                                                 const ConvertCoordinateOptions& aOptions,
                                                 ErrorResult& aRv);
--- a/dom/base/nsPIDOMWindow.h
+++ b/dom/base/nsPIDOMWindow.h
@@ -113,16 +113,22 @@ public:
    */
 
   virtual already_AddRefed<nsPIDOMWindowOuter> GetTop() = 0; // Outer only
   virtual already_AddRefed<nsPIDOMWindowOuter> GetParent() = 0;
   virtual nsPIDOMWindowOuter* GetScriptableTop() = 0;
   virtual nsPIDOMWindowOuter* GetScriptableParent() = 0;
   virtual already_AddRefed<nsPIWindowRoot> GetTopWindowRoot() = 0;
 
+  /**
+   * Behavies identically to GetScriptableParent extept that it returns null
+   * if GetScriptableParent would return this window.
+   */
+  virtual nsPIDOMWindowOuter* GetScriptableParentOrNull() = 0;
+
   // Inner windows only.
   virtual nsresult RegisterIdleObserver(nsIIdleObserver* aIdleObserver) = 0;
   virtual nsresult UnregisterIdleObserver(nsIIdleObserver* aIdleObserver) = 0;
 
   virtual bool IsTopLevelWindowActive() = 0;
 
   // Outer windows only.
   virtual void SetActive(bool aActive)
--- a/dom/base/test/referrer_helper.js
+++ b/dom/base/test/referrer_helper.js
@@ -18,25 +18,26 @@ window.addEventListener("message", funct
   }
 });
 
 /**
  * helper to perform an XHR
  * to do checkIndividualResults and resetState
  */
 function doXHR(aUrl, onSuccess, onFail) {
-  var xhr = new XMLHttpRequest();
+  // The server is at http[s]://example.com so we need cross-origin XHR.
+  var xhr = new XMLHttpRequest({mozSystem: true});
   xhr.responseType = "json";
   xhr.onload = function () {
     onSuccess(xhr);
   };
   xhr.onerror = function () {
     onFail(xhr);
   };
-  xhr.open('GET', aUrl, true);
+  xhr.open('GET', "http" + aUrl, true);
   xhr.send(null);
 }
 
 /**
  * Grabs the results via XHR and passes to checker.
  */
 function checkIndividualResults(aTestname, aExpectedReferrer, aName) {
   var onload = xhr => {
@@ -64,16 +65,18 @@ function resetState() {
 
 /**
  * testing if anchor and area referrer attributes are honoured (1174913)
  */
 var tests = (function() {
 
   // enable referrer attribute
   yield SpecialPowers.pushPrefEnv({"set": [['network.http.enablePerElementReferrer', true]]}, advance);
+  yield SpecialPowers.pushPrefEnv({"set": [['security.mixed_content.block_active_content', false]]}, advance);
+  yield SpecialPowers.pushPermissions([{'type': 'systemXHR', 'allow': true, 'context': document}], advance);
 
   var iframe = document.getElementById("testframe");
 
   for (var j = 0; j < testCases.length; j++) {
     var actions = testCases[j].ACTION;
     var tests = testCases[j].TESTS;
     for (var k = 0; k < actions.length; k++) {
       var actionString = actions[k];
@@ -82,17 +85,18 @@ var tests = (function() {
         var searchParams = new URLSearchParams();
         searchParams.append("ACTION", actionString);
         searchParams.append("NAME", tests[i].NAME);
         for (var l of PARAMS) {
           if (tests[i][l]) {
             searchParams.append(l, tests[i][l]);
           }
         }
-        yield iframe.src = SJS + searchParams.toString();
+        var schemeFrom = tests[i].SCHEME_FROM || "http";
+        yield iframe.src = schemeFrom + SJS + searchParams.toString();
         yield checkIndividualResults(tests[i].DESC, tests[i].RESULT, tests[i].NAME);
       };
     };
   };
 
   // complete.  Be sure to yield so we don't call this twice.
   yield SimpleTest.finish();
 })();
\ No newline at end of file
--- a/dom/base/test/referrer_testserver.sjs
+++ b/dom/base/test/referrer_testserver.sjs
@@ -11,27 +11,31 @@ const BASE_URL = "example.com/tests/dom/
 const SHARED_KEY = SJS;
 const SAME_ORIGIN = "mochi.test:8888/tests/dom/base/test/" + SJS;
 const CROSS_ORIGIN = "test1.example.com/tests/dom/base/test/" + SJS;
 
 const IMG_BYTES = atob(
   "iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12" +
   "P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==");
 
-function createTestUrl(aPolicy, aAction, aName, aType) {
-  return "http://" + BASE_URL +
+function createTestUrl(aPolicy, aAction, aName, aType, aSchemeFrom, aSchemeTo) {
+  var schemeTo = aSchemeTo || "http";
+  var schemeFrom = aSchemeFrom || "http";
+  return schemeTo + "://" + BASE_URL +
          "ACTION=" + aAction + "&" +
          "policy=" + aPolicy + "&" +
          "NAME=" + aName + "&" +
-         "type=" + aType;
+         "type=" + aType + "&" +
+         "SCHEME_FROM=" + schemeFrom;
 }
 
 // test page using iframe referrer attribute
 // if aParams are set this creates a test where the iframe url is a redirect
-function createIframeTestPageUsingRefferer(aMetaPolicy, aAttributePolicy, aNewAttributePolicy, aName, aParams, aChangingMethod) {
+function createIframeTestPageUsingRefferer(aMetaPolicy, aAttributePolicy, aNewAttributePolicy, aName, aParams,
+                                           aSchemeFrom, aSchemeTo, aChangingMethod) {
   var metaString = "";
   if (aMetaPolicy) {
     metaString = `<meta name="referrer" content="${aMetaPolicy}">`;
   }
   var changeString = "";
   if (aChangingMethod === "setAttribute") {
     changeString = `document.getElementById("myframe").setAttribute("referrerpolicy", "${aNewAttributePolicy}")`;
   } else if (aChangingMethod === "property") {
@@ -39,17 +43,17 @@ function createIframeTestPageUsingReffer
   }
   var iFrameString = `<iframe src="" id="myframe" ${aAttributePolicy ? ` referrerpolicy="${aAttributePolicy}"` : ""}>iframe</iframe>`;
   var iframeUrl = "";
   if (aParams) {
     aParams.delete("ACTION");
     aParams.append("ACTION", "redirectIframe");
     iframeUrl = "http://" + CROSS_ORIGIN + aParams.toString();
   } else {
-    iframeUrl = createTestUrl(aAttributePolicy, "test", aName, "iframe");
+    iframeUrl = createTestUrl(aAttributePolicy, "test", aName, "iframe", aSchemeFrom, aSchemeTo);
   }
 
   return `<!DOCTYPE HTML>
            <html>
              <head>
              ${metaString}
              </head>
              <body>
@@ -62,53 +66,53 @@ function createIframeTestPageUsingReffer
                    };
                    document.getElementById("myframe").src = "${iframeUrl}";
                  }.bind(window), false);
                </script>
              </body>
            </html>`;
 }
 
-function buildAnchorString(aMetaPolicy, aReferrerPolicy, aName, aRelString){
+function buildAnchorString(aMetaPolicy, aReferrerPolicy, aName, aRelString, aSchemeFrom, aSchemeTo){
   if (aReferrerPolicy) {
-    return `<a href="${createTestUrl(aReferrerPolicy, 'test', aName, 'link')}" referrerpolicy="${aReferrerPolicy}" id="link" ${aRelString}>${aReferrerPolicy}</a>`;
+    return `<a href="${createTestUrl(aReferrerPolicy, 'test', aName, 'link', aSchemeFrom, aSchemeTo)}" referrerpolicy="${aReferrerPolicy}" id="link" ${aRelString}>${aReferrerPolicy}</a>`;
   }
-  return `<a href="${createTestUrl(aMetaPolicy, 'test', aName, 'link')}" id="link" ${aRelString}>link</a>`;
+  return `<a href="${createTestUrl(aMetaPolicy, 'test', aName, 'link', aSchemeFrom, aSchemeTo)}" id="link" ${aRelString}>link</a>`;
 }
 
-function buildAreaString(aMetaPolicy, aReferrerPolicy, aName, aRelString){
+function buildAreaString(aMetaPolicy, aReferrerPolicy, aName, aRelString, aSchemeFrom, aSchemeTo){
   var result = `<img src="file_mozfiledataurl_img.jpg" alt="image" usemap="#imageMap">`;
   result += `<map name="imageMap">`;
   if (aReferrerPolicy) {
-    result += `<area shape="circle" coords="1,1,1" href="${createTestUrl(aReferrerPolicy, 'test', aName, 'link')}" alt="theArea" referrerpolicy="${aReferrerPolicy}" id="link" ${aRelString}>`;
+    result += `<area shape="circle" coords="1,1,1" href="${createTestUrl(aReferrerPolicy, 'test', aName, 'link', aSchemeFrom, aSchemeTo)}" alt="theArea" referrerpolicy="${aReferrerPolicy}" id="link" ${aRelString}>`;
   } else {
-    result += `<area shape="circle" coords="1,1,1" href="${createTestUrl(aMetaPolicy, 'test', aName, 'link')}" alt="theArea" id="link" ${aRelString}>`;
+    result += `<area shape="circle" coords="1,1,1" href="${createTestUrl(aMetaPolicy, 'test', aName, 'link', aSchemeFrom, aSchemeTo)}" alt="theArea" id="link" ${aRelString}>`;
   }
   result += `</map>`;
 
   return result;
 }
 
 // test page using anchor or area referrer attribute
-function createAETestPageUsingRefferer(aMetaPolicy, aAttributePolicy, aNewAttributePolicy, aName, aRel, aStringBuilder, aChangingMethod) {
+function createAETestPageUsingRefferer(aMetaPolicy, aAttributePolicy, aNewAttributePolicy, aName, aRel, aStringBuilder, aSchemeFrom, aSchemeTo, aChangingMethod) {
   var metaString = "";
   if (aMetaPolicy) {
     metaString = `<head><meta name="referrer" content="${aMetaPolicy}"></head>`;
   }
   var changeString = "";
   if (aChangingMethod === "setAttribute") {
     changeString = `document.getElementById("link").setAttribute("referrerpolicy", "${aNewAttributePolicy}")`;
   } else if (aChangingMethod === "property") {
     changeString = `document.getElementById("link").referrerPolicy = "${aNewAttributePolicy}"`;
   }
   var relString = "";
   if (aRel) {
     relString = `rel="noreferrer"`;
   }
-  var elementString = aStringBuilder(aMetaPolicy, aAttributePolicy, aName, relString);
+  var elementString = aStringBuilder(aMetaPolicy, aAttributePolicy, aName, relString, aSchemeFrom, aSchemeTo);
 
   return `<!DOCTYPE HTML>
            <html>
              ${metaString}
              <body>
                ${elementString}
                <script>
                  window.addEventListener("load", function() {
@@ -146,16 +150,18 @@ function createRedirectImgTestCase(aPara
           </script>
           </body>
           </html>`;
 }
 
 function handleRequest(request, response) {
   var params = new URLSearchParams(request.queryString);
   var action = params.get("ACTION");
+  var schemeFrom = params.get("SCHEME_FROM") || "http";
+  var schemeTo = params.get("SCHEME_TO") || "http";
 
   if (action === "resetState") {
     setSharedState(SHARED_KEY, "{}");
     response.write("");
     return;
   }
   if (action === "get-test-results") {
     // ?action=get-result
@@ -196,17 +202,17 @@ function handleRequest(request, response
     result = result ? JSON.parse(result) : {};
 
     var referrerLevel = "none";
     var test = {}
     if (request.hasHeader("Referer")) {
       var referrer = request.getHeader("Referer");
       if (referrer.indexOf("referrer_testserver") > 0) {
         referrerLevel = "full";
-      } else if (referrer.indexOf("http://mochi.test:8888") == 0) {
+      } else if (referrer.indexOf(schemeFrom + "://example.com") == 0) {
         referrerLevel = "origin";
       } else {
         // this is never supposed to happen
         referrerLevel = "other-origin";
       }
       test.referrer = referrer;
     } else {
       test.referrer = "";
@@ -245,18 +251,18 @@ function handleRequest(request, response
   var attributePolicy = params.get("ATTRIBUTE_POLICY") || "";
   var newAttributePolicy = params.get("NEW_ATTRIBUTE_POLICY") || "";
   var metaPolicy = params.get("META_POLICY") || "";
   var rel = params.get("REL") || "";
   var name = params.get("NAME");
 
   // anchor & area
   var _getPage = createAETestPageUsingRefferer.bind(null, metaPolicy, attributePolicy, newAttributePolicy, name, rel);
-  var _getAnchorPage = _getPage.bind(null, buildAnchorString);
-  var _getAreaPage = _getPage.bind(null, buildAreaString);
+  var _getAnchorPage = _getPage.bind(null, buildAnchorString, schemeFrom, schemeTo);
+  var _getAreaPage = _getPage.bind(null, buildAreaString, schemeFrom, schemeTo);
 
   // aMetaPolicy, aAttributePolicy, aNewAttributePolicy, aName, aChangingMethod, aStringBuilder
   if (action === "generate-anchor-policy-test") {
     response.write(_getAnchorPage());
     return;
   }
   if (action === "generate-anchor-changing-policy-test-set-attribute") {
     response.write(_getAnchorPage("setAttribute"));
@@ -275,17 +281,18 @@ function handleRequest(request, response
     return;
   }
   if (action === "generate-area-changing-policy-test-property") {
     response.write(_getAreaPage("property"));
     return;
   }
 
   // iframe
-  _getPage = createIframeTestPageUsingRefferer.bind(null, metaPolicy, attributePolicy, newAttributePolicy, name, "");
+  _getPage = createIframeTestPageUsingRefferer.bind(null, metaPolicy, attributePolicy, newAttributePolicy, name, "",
+                                                    schemeFrom, schemeTo);
 
   // aMetaPolicy, aAttributePolicy, aNewAttributePolicy, aName, aChangingMethod
   if (action === "generate-iframe-policy-test") {
     response.write(_getPage());
     return;
   }
   if (action === "generate-iframe-changing-policy-test-set-attribute") {
     response.write(_getPage("setAttribute"));
@@ -297,15 +304,16 @@ function handleRequest(request, response
   }
 
   // redirect tests with img and iframe
   if (action === "generate-img-redirect-policy-test") {
     response.write(createRedirectImgTestCase(params, attributePolicy));
     return;
   }
   if (action === "generate-iframe-redirect-policy-test") {
-    response.write(createIframeTestPageUsingRefferer(metaPolicy, attributePolicy, newAttributePolicy, name, params));
+    response.write(createIframeTestPageUsingRefferer(metaPolicy, attributePolicy, newAttributePolicy, name, params,
+                                                     schemeFrom, schemeTo));
     return;
   }
 
   response.write("I don't know action " + action);
   return;
 }
--- a/dom/base/test/test_anchor_area_referrer.html
+++ b/dom/base/test/test_anchor_area_referrer.html
@@ -9,18 +9,18 @@
   <!--
   Testing that anchor and area referrer attributes are honoured correctly
   * anchor tag with referrer attribute (generate-anchor-policy-test)
   https://bugzilla.mozilla.org/show_bug.cgi?id=1174913
   -->
 
   <script type="application/javascript;version=1.8">
 
-  const SJS = "/tests/dom/base/test/referrer_testserver.sjs?";
-  const PARAMS = ["ATTRIBUTE_POLICY", "NEW_ATTRIBUTE_POLICY", "META_POLICY", "REL"];
+  const SJS = "://example.com/tests/dom/base/test/referrer_testserver.sjs?";
+  const PARAMS = ["ATTRIBUTE_POLICY", "NEW_ATTRIBUTE_POLICY", "META_POLICY", "REL", "SCHEME_FROM", "SCHEME_TO"];
 
   const testCases = [
     {ACTION: ["generate-anchor-policy-test", "generate-area-policy-test"],
       TESTS: [
         {ATTRIBUTE_POLICY: 'unsafe-url',
          NAME: 'unsafe-url-with-origin-in-meta',
          META_POLICY: 'origin',
          DESC: "unsafe-url (anchor) with origin in meta",
@@ -34,16 +34,38 @@
          NAME: 'no-referrer-with-origin-in-meta',
          META_POLICY: 'origin',
          DESC: "no-referrer (anchor) with origin in meta",
          RESULT: 'none'},
         {NAME: 'no-referrer-in-meta',
          META_POLICY: 'no-referrer',
          DESC: "no-referrer in meta",
          RESULT: 'none'},
+
+         // Test if element attr would override meta referr policy.
+
+         // 1. Downgrade.
+        {ATTRIBUTE_POLICY: 'no-referrer-when-downgrade',
+         NAME: 'origin-in-meta-downgrade-in-attr',
+         META_POLICY: 'origin',
+         DESC: 'origin in meta downgrade in attr',
+         SCHEME_FROM: 'https',
+         SCHEME_TO: 'http',
+         RESULT: 'none'},
+
+         // 2. No downgrade.
+        {ATTRIBUTE_POLICY: 'no-referrer-when-downgrade',
+         NAME: 'origin-in-meta-downgrade-in-attr',
+         META_POLICY: 'origin',
+         DESC: 'origin in meta downgrade in attr',
+         SCHEME_FROM: 'https',
+         SCHEME_TO: 'https',
+         RESULT: 'full'},
+         // End of element attr overriding test..
+
         {ATTRIBUTE_POLICY: 'origin',
          NAME: 'origin-with-no-meta',
          META_POLICY: '',
          DESC: "origin (anchor) with no meta",
          RESULT: 'origin'}]}
   ];
   </script>
   <script type="application/javascript;version=1.7" src="/tests/dom/base/test/referrer_helper.js"></script>
--- a/dom/base/test/test_anchor_area_referrer_changing.html
+++ b/dom/base/test/test_anchor_area_referrer_changing.html
@@ -10,17 +10,17 @@
   Testing that anchor and area referrer attributes are honoured correctly
   This test is split due to errors on b2g
   * testing setAttribute and .referrer (generate-anchor-changing-test)
   https://bugzilla.mozilla.org/show_bug.cgi?id=1174913
   -->
 
   <script type="application/javascript;version=1.8">
 
-  const SJS = "/tests/dom/base/test/referrer_testserver.sjs?";
+  const SJS = "://example.com/tests/dom/base/test/referrer_testserver.sjs?";
   const PARAMS = ["ATTRIBUTE_POLICY", "NEW_ATTRIBUTE_POLICY", "META_POLICY", "REL"];
 
   const testCases = [
     {ACTION: ["generate-anchor-changing-policy-test-set-attribute", "generate-area-changing-policy-test-set-attribute"],
       TESTS: [
         {ATTRIBUTE_POLICY: 'unsafe-url',
          NEW_ATTRIBUTE_POLICY: 'no-referrer',
          NAME: 'no-referrer-unsafe-url-with-origin-in-meta',
--- a/dom/base/test/test_anchor_area_referrer_invalid.html
+++ b/dom/base/test/test_anchor_area_referrer_invalid.html
@@ -9,52 +9,63 @@
   <!--
   Testing that anchor and area referrer attributes are honoured correctly
   * anchor tag with invalid referrer attributes
   https://bugzilla.mozilla.org/show_bug.cgi?id=1174913
   -->
 
   <script type="application/javascript;version=1.8">
 
-  const SJS = "/tests/dom/base/test/referrer_testserver.sjs?";
-  const PARAMS = ["ATTRIBUTE_POLICY", "NEW_ATTRIBUTE_POLICY", "META_POLICY", "REL"];
+  const SJS = "://example.com/tests/dom/base/test/referrer_testserver.sjs?";
+  const PARAMS = ["ATTRIBUTE_POLICY", "NEW_ATTRIBUTE_POLICY", "META_POLICY", "REL", , "SCHEME_FROM", "SCHEME_TO"];
 
   const testCases = [
     {ACTION: ["generate-anchor-policy-test", "generate-area-policy-test"],
       TESTS: [
         // setting invalid refer values -> we expect either full referrer (default)
         // or whatever is specified in the meta referrer policy
+
+        // Note that for those test cases which require cross-origin test, we use different
+        // scheme to result in cross-origin request.
         {ATTRIBUTE_POLICY: 'origin-when-cross-origin',
          NAME: 'origin-when-cross-origin-with-no-meta',
          META_POLICY: '',
+         SCHEME_FROM: 'https',
+         SCHEME_TO: 'http',
          DESC: "origin-when-cross-origin (anchor) with no meta",
-         RESULT: 'full'},
+         RESULT: 'origin'},
         {ATTRIBUTE_POLICY: 'default',
          NAME: 'default-with-no-meta',
          META_POLICY: '',
          DESC: "default (anchor) with no meta",
          RESULT: 'full'},
         {ATTRIBUTE_POLICY: 'something',
          NAME: 'something-with-no-meta',
          META_POLICY: '',
          DESC: "something (anchor) with no meta",
          RESULT: 'full'},
         {ATTRIBUTE_POLICY: 'origin-when-cross-origin',
          NAME: 'origin-when-cross-origin-with-no-referrer-in-meta',
          META_POLICY: 'no-referrer',
+         SCHEME_FROM: 'https',
+         SCHEME_TO: 'http',
          DESC: "origin-when-cross-origin (anchor) with no-referrer in meta",
-         RESULT: 'none'},
+         RESULT: 'origin'},
         {ATTRIBUTE_POLICY: 'origin-when-cross-origin',
          NAME: 'origin-when-cross-origin-with-unsafe-url-in-meta',
          META_POLICY: 'unsafe-url',
+         SCHEME_FROM: 'https',
+         SCHEME_TO: 'http',
          DESC: "origin-when-cross-origin (anchor) with unsafe-url in meta",
-         RESULT: 'full'},
+         RESULT: 'origin'},
         {ATTRIBUTE_POLICY: 'origin-when-cross-origin',
          NAME: 'origin-when-cross-origin-with-origin-in-meta',
          META_POLICY: 'origin',
+         SCHEME_FROM: 'https',
+         SCHEME_TO: 'http',
          DESC: "origin-when-cross-origin (anchor) with origin in meta",
          RESULT: 'origin'}]}
   ];
   </script>
   <script type="application/javascript;version=1.7" src="/tests/dom/base/test/referrer_helper.js"></script>
 </head>
 <body onload="tests.next();">
   <iframe id="testframe"></iframe>
--- a/dom/base/test/test_anchor_area_referrer_rel.html
+++ b/dom/base/test/test_anchor_area_referrer_rel.html
@@ -9,17 +9,17 @@
   <!--
   Testing that anchor and area referrer attributes are honoured correctly
   * anchor tag with referrer attribute with rel=noreferrer
   https://bugzilla.mozilla.org/show_bug.cgi?id=1174913
   -->
 
   <script type="application/javascript;version=1.8">
 
-  const SJS = "/tests/dom/base/test/referrer_testserver.sjs?";
+  const SJS = "://example.com/tests/dom/base/test/referrer_testserver.sjs?";
   const PARAMS = ["ATTRIBUTE_POLICY", "NEW_ATTRIBUTE_POLICY", "META_POLICY", "REL"];
 
   const testCases = [
     {ACTION: ["generate-anchor-policy-test", "generate-area-policy-test"],
       TESTS: [
         // setting rel=noreferrer -> we expect no referrer
         {ATTRIBUTE_POLICY: 'unsafe-url',
          NAME: 'unsafe-url-with-origin-in-meta-rel',
--- a/dom/base/test/test_iframe_referrer.html
+++ b/dom/base/test/test_iframe_referrer.html
@@ -10,17 +10,17 @@
   Testing that iframe referrer attribute is honoured correctly
   * regular loads
   * regression tests that meta referrer is still working even if attribute referrers are enabled
   https://bugzilla.mozilla.org/show_bug.cgi?id=1175736
   -->
 
   <script type="application/javascript;version=1.7">
 
-  const SJS = "/tests/dom/base/test/referrer_testserver.sjs?";
+  const SJS = "://example.com/tests/dom/base/test/referrer_testserver.sjs?";
   const PARAMS = ["ATTRIBUTE_POLICY", "NEW_ATTRIBUTE_POLICY", "META_POLICY"];
 
   const testCases = [
     {ACTION: ["generate-iframe-policy-test"],
       TESTS: [
         {ATTRIBUTE_POLICY: 'unsafe-url',
          NAME: 'unsafe-url-with-origin-in-meta',
          META_POLICY: 'origin',
--- a/dom/base/test/test_iframe_referrer_changing.html
+++ b/dom/base/test/test_iframe_referrer_changing.html
@@ -9,17 +9,17 @@
   <!--
   Testing that iframe referrer attribute is honoured correctly
   * testing setAttribute and .referrer
   https://bugzilla.mozilla.org/show_bug.cgi?id=1175736
   -->
 
   <script type="application/javascript;version=1.7">
 
-  const SJS = "/tests/dom/base/test/referrer_testserver.sjs?";
+  const SJS = "://example.com/tests/dom/base/test/referrer_testserver.sjs?";
   const PARAMS = ["ATTRIBUTE_POLICY", "NEW_ATTRIBUTE_POLICY", "META_POLICY"];
 
   const testCases = [
     {ACTION: ["generate-iframe-changing-policy-test-set-attribute"],
       TESTS: [
         {ATTRIBUTE_POLICY: 'unsafe-url',
          NEW_ATTRIBUTE_POLICY: 'no-referrer',
          NAME: 'no-referrer-unsafe-url-with-origin-in-meta',
--- a/dom/base/test/test_iframe_referrer_invalid.html
+++ b/dom/base/test/test_iframe_referrer_invalid.html
@@ -9,53 +9,64 @@
   <!--
   Testing that iframe referrer attribute is honoured correctly
   * invalid referrer policies
   https://bugzilla.mozilla.org/show_bug.cgi?id=1175736
   -->
 
   <script type="application/javascript;version=1.7">
 
-  const SJS = "/tests/dom/base/test/referrer_testserver.sjs?";
-  const PARAMS = ["ATTRIBUTE_POLICY", "NEW_ATTRIBUTE_POLICY", "META_POLICY"];
+  const SJS = "://example.com/tests/dom/base/test/referrer_testserver.sjs?";
+  const PARAMS = ["ATTRIBUTE_POLICY", "NEW_ATTRIBUTE_POLICY", "META_POLICY", "SCHEME_FROM", "SCHEME_TO"];
 
   const testCases = [
     {ACTION: ["generate-iframe-policy-test"],
       TESTS: [
         // setting invalid refer values -> we expect either full referrer (default)
         // or whatever is specified in the meta referrer policy
+
+        // Note that for those test cases which require cross-origin test, we use different
+        // scheme to result in cross-origin request.
         {ATTRIBUTE_POLICY: 'origin-when-cross-origin',
          NAME: 'origin-when-cross-origin-with-no-meta',
          META_POLICY: '',
          DESC: "origin-when-cross-origin (iframe) with no meta",
-         RESULT: 'full'},
+         SCHEME_FROM: 'https',
+         SCHEME_TO: 'http',
+         RESULT: 'origin'},
         {ATTRIBUTE_POLICY: 'default',
          NAME: 'default-with-no-meta',
          META_POLICY: '',
          DESC: "default (iframe) with no meta",
          RESULT: 'full'},
         {ATTRIBUTE_POLICY: 'something',
          NAME: 'something-with-no-meta',
          META_POLICY: '',
          DESC: "something (iframe) with no meta",
          RESULT: 'full'},
         {ATTRIBUTE_POLICY: 'origin-when-cross-origin',
          NAME: 'origin-when-cross-origin-with-no-referrer-in-meta',
          META_POLICY: 'no-referrer',
          DESC: "origin-when-cross-origin (iframe) with no-referrer in meta",
-         RESULT: 'none'},
+         SCHEME_FROM: 'https',
+         SCHEME_TO: 'http',
+         RESULT: 'origin'},
         {ATTRIBUTE_POLICY: 'origin-when-cross-origin',
          NAME: 'origin-when-cross-origin-with-unsafe-url-in-meta',
          META_POLICY: 'unsafe-url',
          DESC: "origin-when-cross-origin (iframe) with unsafe-url in meta",
-         RESULT: 'full'},
+         SCHEME_FROM: 'https',
+         SCHEME_TO: 'http',
+         RESULT: 'origin'},
         {ATTRIBUTE_POLICY: 'origin-when-cross-origin',
          NAME: 'origin-when-cross-origin-with-origin-in-meta',
          META_POLICY: 'origin',
          DESC: "origin-when-cross-origin (iframe) with origin in meta",
+         SCHEME_FROM: 'https',
+         SCHEME_TO: 'http',
          RESULT: 'origin'},
         {NAME: 'origin-in-meta',
          META_POLICY: 'origin',
          DESC: "origin in meta",
          RESULT: 'origin'},
         {NAME: 'no-referrer-in-meta',
          META_POLICY: 'no-referrer',
          DESC: "no-referrer in meta",
--- a/dom/base/test/test_referrer_redirect.html
+++ b/dom/base/test/test_referrer_redirect.html
@@ -8,17 +8,17 @@
 
   <!--
   Testing referrer headers after redirects.
   https://bugzilla.mozilla.org/show_bug.cgi?id=1184781
   -->
 
   <script type="application/javascript;version=1.8">
 
-  const SJS = "/tests/dom/base/test/referrer_testserver.sjs?";
+  const SJS = "://example.com/tests/dom/base/test/referrer_testserver.sjs?";
   const PARAMS = ["ATTRIBUTE_POLICY", "NEW_ATTRIBUTE_POLICY", "META_POLICY"];
 
   const testCases = [
     {ACTION: ["generate-img-redirect-policy-test", "generate-iframe-redirect-policy-test"],
       TESTS: [
         {
           ATTRIBUTE_POLICY: "no-referrer",
            NAME: "no-referrer-with-no-meta",
--- a/dom/canvas/moz.build
+++ b/dom/canvas/moz.build
@@ -6,18 +6,19 @@
 
 TEST_DIRS += ['compiledtest']
 
 # Number changes to this file to avoid bug 1081323 (clobber after changing a manifest):
 # 12
 
 MOCHITEST_MANIFESTS += [
     'test/crossorigin/mochitest.ini',
-    'test/mochitest-subsuite-webgl.ini',
     'test/mochitest.ini',
+    'test/webgl-conf/generated-mochitest.ini',
+    'test/webgl-mochitest/mochitest.ini',
 ]
 
 MOCHITEST_CHROME_MANIFESTS += ['test/chrome/chrome.ini']
 
 EXPORTS += [
     'nsICanvasRenderingContextInternal.h',
 ]
 
deleted file mode 100644
--- a/dom/canvas/test/_webgl-conformance.ini
+++ /dev/null
@@ -1,847 +0,0 @@
-# This is a GENERATED FILE. Do not edit it directly.
-# Regenerated it by using `python generate-wrappers-and-manifest.py`.
-# Mark skipped tests in mochitest-errata.ini.
-# Mark failing tests in mochi-single.html.
-
-[DEFAULT]
-subsuite = webgl
-skip-if = os == 'b2g' || ((os == 'linux') && (buildapp == 'b2g')) || ((os == 'linux') && (buildapp == 'mulet'))
-
-support-files = webgl-conformance/../webgl-mochitest/driver-info.js
-                webgl-conformance/always-fail.html
-                webgl-conformance/conformance/00_readme.txt
-                webgl-conformance/conformance/00_test_list.txt
-                webgl-conformance/conformance/LICENSE_CHROMIUM
-                webgl-conformance/conformance/attribs/00_test_list.txt
-                webgl-conformance/conformance/attribs/gl-enable-vertex-attrib.html
-                webgl-conformance/conformance/attribs/gl-vertex-attrib-zero-issues.html
-                webgl-conformance/conformance/attribs/gl-vertex-attrib.html
-                webgl-conformance/conformance/attribs/gl-vertexattribpointer-offsets.html
-                webgl-conformance/conformance/attribs/gl-vertexattribpointer.html
-                webgl-conformance/conformance/buffers/00_test_list.txt
-                webgl-conformance/conformance/buffers/buffer-bind-test.html
-                webgl-conformance/conformance/buffers/buffer-data-array-buffer.html
-                webgl-conformance/conformance/buffers/index-validation-copies-indices.html
-                webgl-conformance/conformance/buffers/index-validation-crash-with-buffer-sub-data.html
-                webgl-conformance/conformance/buffers/index-validation-verifies-too-many-indices.html
-                webgl-conformance/conformance/buffers/index-validation-with-resized-buffer.html
-                webgl-conformance/conformance/buffers/index-validation.html
-                webgl-conformance/conformance/canvas/00_test_list.txt
-                webgl-conformance/conformance/canvas/buffer-offscreen-test.html
-                webgl-conformance/conformance/canvas/buffer-preserve-test.html
-                webgl-conformance/conformance/canvas/canvas-test.html
-                webgl-conformance/conformance/canvas/canvas-zero-size.html
-                webgl-conformance/conformance/canvas/drawingbuffer-static-canvas-test.html
-                webgl-conformance/conformance/canvas/drawingbuffer-test.html
-                webgl-conformance/conformance/canvas/viewport-unchanged-upon-resize.html
-                webgl-conformance/conformance/context/00_test_list.txt
-                webgl-conformance/conformance/context/constants.html
-                webgl-conformance/conformance/context/context-attribute-preserve-drawing-buffer.html
-                webgl-conformance/conformance/context/context-attributes-alpha-depth-stencil-antialias.html
-                webgl-conformance/conformance/context/context-lost-restored.html
-                webgl-conformance/conformance/context/context-lost.html
-                webgl-conformance/conformance/context/context-type-test.html
-                webgl-conformance/conformance/context/incorrect-context-object-behaviour.html
-                webgl-conformance/conformance/context/methods.html
-                webgl-conformance/conformance/context/premultiplyalpha-test.html
-                webgl-conformance/conformance/context/resource-sharing-test.html
-                webgl-conformance/conformance/extensions/00_test_list.txt
-                webgl-conformance/conformance/extensions/ext-sRGB.html
-                webgl-conformance/conformance/extensions/ext-shader-texture-lod.html
-                webgl-conformance/conformance/extensions/ext-texture-filter-anisotropic.html
-                webgl-conformance/conformance/extensions/oes-standard-derivatives.html
-                webgl-conformance/conformance/extensions/oes-texture-float.html
-                webgl-conformance/conformance/extensions/oes-vertex-array-object.html
-                webgl-conformance/conformance/extensions/webgl-compressed-texture-etc1.html
-                webgl-conformance/conformance/extensions/webgl-compressed-texture-s3tc.html
-                webgl-conformance/conformance/extensions/webgl-debug-renderer-info.html
-                webgl-conformance/conformance/extensions/webgl-debug-shaders.html
-                webgl-conformance/conformance/extensions/webgl-depth-texture.html
-                webgl-conformance/conformance/glsl/00_test_list.txt
-                webgl-conformance/conformance/glsl/functions/00_test_list.txt
-                webgl-conformance/conformance/glsl/functions/glsl-function-abs.html
-                webgl-conformance/conformance/glsl/functions/glsl-function-acos.html
-                webgl-conformance/conformance/glsl/functions/glsl-function-asin.html
-                webgl-conformance/conformance/glsl/functions/glsl-function-atan-xy.html
-                webgl-conformance/conformance/glsl/functions/glsl-function-atan.html
-                webgl-conformance/conformance/glsl/functions/glsl-function-ceil.html
-                webgl-conformance/conformance/glsl/functions/glsl-function-clamp-float.html
-                webgl-conformance/conformance/glsl/functions/glsl-function-clamp-gentype.html
-                webgl-conformance/conformance/glsl/functions/glsl-function-cos.html
-                webgl-conformance/conformance/glsl/functions/glsl-function-cross.html
-                webgl-conformance/conformance/glsl/functions/glsl-function-distance.html
-                webgl-conformance/conformance/glsl/functions/glsl-function-dot.html
-                webgl-conformance/conformance/glsl/functions/glsl-function-faceforward.html
-                webgl-conformance/conformance/glsl/functions/glsl-function-floor.html
-                webgl-conformance/conformance/glsl/functions/glsl-function-fract.html
-                webgl-conformance/conformance/glsl/functions/glsl-function-length.html
-                webgl-conformance/conformance/glsl/functions/glsl-function-lessThan.html
-                webgl-conformance/conformance/glsl/functions/glsl-function-max-float.html
-                webgl-conformance/conformance/glsl/functions/glsl-function-max-gentype.html
-                webgl-conformance/conformance/glsl/functions/glsl-function-min-float.html
-                webgl-conformance/conformance/glsl/functions/glsl-function-min-gentype.html
-                webgl-conformance/conformance/glsl/functions/glsl-function-mix-float.html
-                webgl-conformance/conformance/glsl/functions/glsl-function-mix-gentype.html
-                webgl-conformance/conformance/glsl/functions/glsl-function-mod-float.html
-                webgl-conformance/conformance/glsl/functions/glsl-function-mod-gentype.html
-                webgl-conformance/conformance/glsl/functions/glsl-function-normalize.html
-                webgl-conformance/conformance/glsl/functions/glsl-function-reflect.html
-                webgl-conformance/conformance/glsl/functions/glsl-function-refract.html
-                webgl-conformance/conformance/glsl/functions/glsl-function-sign.html
-                webgl-conformance/conformance/glsl/functions/glsl-function-sin.html
-                webgl-conformance/conformance/glsl/functions/glsl-function-smoothstep-float.html
-                webgl-conformance/conformance/glsl/functions/glsl-function-smoothstep-gentype.html
-                webgl-conformance/conformance/glsl/functions/glsl-function-step-float.html
-                webgl-conformance/conformance/glsl/functions/glsl-function-step-gentype.html
-                webgl-conformance/conformance/glsl/functions/glsl-function.html
-                webgl-conformance/conformance/glsl/implicit/00_test_list.txt
-                webgl-conformance/conformance/glsl/implicit/add_int_float.vert.html
-                webgl-conformance/conformance/glsl/implicit/add_int_mat2.vert.html
-                webgl-conformance/conformance/glsl/implicit/add_int_mat3.vert.html
-                webgl-conformance/conformance/glsl/implicit/add_int_mat4.vert.html
-                webgl-conformance/conformance/glsl/implicit/add_int_vec2.vert.html
-                webgl-conformance/conformance/glsl/implicit/add_int_vec3.vert.html
-                webgl-conformance/conformance/glsl/implicit/add_int_vec4.vert.html
-                webgl-conformance/conformance/glsl/implicit/add_ivec2_vec2.vert.html
-                webgl-conformance/conformance/glsl/implicit/add_ivec3_vec3.vert.html
-                webgl-conformance/conformance/glsl/implicit/add_ivec4_vec4.vert.html
-                webgl-conformance/conformance/glsl/implicit/assign_int_to_float.vert.html
-                webgl-conformance/conformance/glsl/implicit/assign_ivec2_to_vec2.vert.html
-                webgl-conformance/conformance/glsl/implicit/assign_ivec3_to_vec3.vert.html
-                webgl-conformance/conformance/glsl/implicit/assign_ivec4_to_vec4.vert.html
-                webgl-conformance/conformance/glsl/implicit/construct_struct.vert.html
-                webgl-conformance/conformance/glsl/implicit/divide_int_float.vert.html
-                webgl-conformance/conformance/glsl/implicit/divide_int_mat2.vert.html
-                webgl-conformance/conformance/glsl/implicit/divide_int_mat3.vert.html
-                webgl-conformance/conformance/glsl/implicit/divide_int_mat4.vert.html
-                webgl-conformance/conformance/glsl/implicit/divide_int_vec2.vert.html
-                webgl-conformance/conformance/glsl/implicit/divide_int_vec3.vert.html
-                webgl-conformance/conformance/glsl/implicit/divide_int_vec4.vert.html
-                webgl-conformance/conformance/glsl/implicit/divide_ivec2_vec2.vert.html
-                webgl-conformance/conformance/glsl/implicit/divide_ivec3_vec3.vert.html
-                webgl-conformance/conformance/glsl/implicit/divide_ivec4_vec4.vert.html
-                webgl-conformance/conformance/glsl/implicit/equal_int_float.vert.html
-                webgl-conformance/conformance/glsl/implicit/equal_ivec2_vec2.vert.html
-                webgl-conformance/conformance/glsl/implicit/equal_ivec3_vec3.vert.html
-                webgl-conformance/conformance/glsl/implicit/equal_ivec4_vec4.vert.html
-                webgl-conformance/conformance/glsl/implicit/function_int_float.vert.html
-                webgl-conformance/conformance/glsl/implicit/function_ivec2_vec2.vert.html
-                webgl-conformance/conformance/glsl/implicit/function_ivec3_vec3.vert.html
-                webgl-conformance/conformance/glsl/implicit/function_ivec4_vec4.vert.html
-                webgl-conformance/conformance/glsl/implicit/greater_than.vert.html
-                webgl-conformance/conformance/glsl/implicit/greater_than_equal.vert.html
-                webgl-conformance/conformance/glsl/implicit/less_than.vert.html
-                webgl-conformance/conformance/glsl/implicit/less_than_equal.vert.html
-                webgl-conformance/conformance/glsl/implicit/multiply_int_float.vert.html
-                webgl-conformance/conformance/glsl/implicit/multiply_int_mat2.vert.html
-                webgl-conformance/conformance/glsl/implicit/multiply_int_mat3.vert.html
-                webgl-conformance/conformance/glsl/implicit/multiply_int_mat4.vert.html
-                webgl-conformance/conformance/glsl/implicit/multiply_int_vec2.vert.html
-                webgl-conformance/conformance/glsl/implicit/multiply_int_vec3.vert.html
-                webgl-conformance/conformance/glsl/implicit/multiply_int_vec4.vert.html
-                webgl-conformance/conformance/glsl/implicit/multiply_ivec2_vec2.vert.html
-                webgl-conformance/conformance/glsl/implicit/multiply_ivec3_vec3.vert.html
-                webgl-conformance/conformance/glsl/implicit/multiply_ivec4_vec4.vert.html
-                webgl-conformance/conformance/glsl/implicit/not_equal_int_float.vert.html
-                webgl-conformance/conformance/glsl/implicit/not_equal_ivec2_vec2.vert.html
-                webgl-conformance/conformance/glsl/implicit/not_equal_ivec3_vec3.vert.html
-                webgl-conformance/conformance/glsl/implicit/not_equal_ivec4_vec4.vert.html
-                webgl-conformance/conformance/glsl/implicit/subtract_int_float.vert.html
-                webgl-conformance/conformance/glsl/implicit/subtract_int_mat2.vert.html
-                webgl-conformance/conformance/glsl/implicit/subtract_int_mat3.vert.html
-                webgl-conformance/conformance/glsl/implicit/subtract_int_mat4.vert.html
-                webgl-conformance/conformance/glsl/implicit/subtract_int_vec2.vert.html
-                webgl-conformance/conformance/glsl/implicit/subtract_int_vec3.vert.html
-                webgl-conformance/conformance/glsl/implicit/subtract_int_vec4.vert.html
-                webgl-conformance/conformance/glsl/implicit/subtract_ivec2_vec2.vert.html
-                webgl-conformance/conformance/glsl/implicit/subtract_ivec3_vec3.vert.html
-                webgl-conformance/conformance/glsl/implicit/subtract_ivec4_vec4.vert.html
-                webgl-conformance/conformance/glsl/implicit/ternary_int_float.vert.html
-                webgl-conformance/conformance/glsl/implicit/ternary_ivec2_vec2.vert.html
-                webgl-conformance/conformance/glsl/implicit/ternary_ivec3_vec3.vert.html
-                webgl-conformance/conformance/glsl/implicit/ternary_ivec4_vec4.vert.html
-                webgl-conformance/conformance/glsl/matrices/00_test_list.txt
-                webgl-conformance/conformance/glsl/matrices/glsl-mat4-to-mat3.html
-                webgl-conformance/conformance/glsl/misc/00_test_list.txt
-                webgl-conformance/conformance/glsl/misc/attrib-location-length-limits.html
-                webgl-conformance/conformance/glsl/misc/embedded-struct-definitions-forbidden.html
-                webgl-conformance/conformance/glsl/misc/glsl-2types-of-textures-on-same-unit.html
-                webgl-conformance/conformance/glsl/misc/glsl-function-nodes.html
-                webgl-conformance/conformance/glsl/misc/glsl-long-variable-names.html
-                webgl-conformance/conformance/glsl/misc/glsl-vertex-branch.html
-                webgl-conformance/conformance/glsl/misc/include.vs
-                webgl-conformance/conformance/glsl/misc/non-ascii-comments.vert.html
-                webgl-conformance/conformance/glsl/misc/non-ascii.vert.html
-                webgl-conformance/conformance/glsl/misc/re-compile-re-link.html
-                webgl-conformance/conformance/glsl/misc/shader-with-256-character-identifier.frag.html
-                webgl-conformance/conformance/glsl/misc/shader-with-257-character-identifier.frag.html
-                webgl-conformance/conformance/glsl/misc/shader-with-_webgl-identifier.vert.html
-                webgl-conformance/conformance/glsl/misc/shader-with-arbitrary-indexing.frag.html
-                webgl-conformance/conformance/glsl/misc/shader-with-arbitrary-indexing.vert.html
-                webgl-conformance/conformance/glsl/misc/shader-with-attrib-array.vert.html
-                webgl-conformance/conformance/glsl/misc/shader-with-attrib-struct.vert.html
-                webgl-conformance/conformance/glsl/misc/shader-with-clipvertex.vert.html
-                webgl-conformance/conformance/glsl/misc/shader-with-comma-assignment.html
-                webgl-conformance/conformance/glsl/misc/shader-with-comma-conditional-assignment.html
-                webgl-conformance/conformance/glsl/misc/shader-with-conditional-scoping.html
-                webgl-conformance/conformance/glsl/misc/shader-with-default-precision.frag.html
-                webgl-conformance/conformance/glsl/misc/shader-with-default-precision.vert.html
-                webgl-conformance/conformance/glsl/misc/shader-with-define-line-continuation.frag.html
-                webgl-conformance/conformance/glsl/misc/shader-with-dfdx-no-ext.frag.html
-                webgl-conformance/conformance/glsl/misc/shader-with-dfdx.frag.html
-                webgl-conformance/conformance/glsl/misc/shader-with-do-scoping.html
-                webgl-conformance/conformance/glsl/misc/shader-with-error-directive.html
-                webgl-conformance/conformance/glsl/misc/shader-with-explicit-int-cast.vert.html
-                webgl-conformance/conformance/glsl/misc/shader-with-float-return-value.frag.html
-                webgl-conformance/conformance/glsl/misc/shader-with-for-loop.html
-                webgl-conformance/conformance/glsl/misc/shader-with-for-scoping.html
-                webgl-conformance/conformance/glsl/misc/shader-with-frag-depth.frag.html
-                webgl-conformance/conformance/glsl/misc/shader-with-function-recursion.frag.html
-                webgl-conformance/conformance/glsl/misc/shader-with-function-scoped-struct.html
-                webgl-conformance/conformance/glsl/misc/shader-with-functional-scoping.html
-                webgl-conformance/conformance/glsl/misc/shader-with-glcolor.vert.html
-                webgl-conformance/conformance/glsl/misc/shader-with-gles-1.frag.html
-                webgl-conformance/conformance/glsl/misc/shader-with-gles-symbol.frag.html
-                webgl-conformance/conformance/glsl/misc/shader-with-glprojectionmatrix.vert.html
-                webgl-conformance/conformance/glsl/misc/shader-with-hex-int-constant-macro.html
-                webgl-conformance/conformance/glsl/misc/shader-with-implicit-vec3-to-vec4-cast.vert.html
-                webgl-conformance/conformance/glsl/misc/shader-with-include.vert.html
-                webgl-conformance/conformance/glsl/misc/shader-with-int-return-value.frag.html
-                webgl-conformance/conformance/glsl/misc/shader-with-invalid-identifier.frag.html
-                webgl-conformance/conformance/glsl/misc/shader-with-ivec2-return-value.frag.html
-                webgl-conformance/conformance/glsl/misc/shader-with-ivec3-return-value.frag.html
-                webgl-conformance/conformance/glsl/misc/shader-with-ivec4-return-value.frag.html
-                webgl-conformance/conformance/glsl/misc/shader-with-limited-indexing.frag.html
-                webgl-conformance/conformance/glsl/misc/shader-with-line-directive.html
-                webgl-conformance/conformance/glsl/misc/shader-with-long-line.html
-                webgl-conformance/conformance/glsl/misc/shader-with-non-ascii-error.frag.html
-                webgl-conformance/conformance/glsl/misc/shader-with-precision.frag.html
-                webgl-conformance/conformance/glsl/misc/shader-with-quoted-error.frag.html
-                webgl-conformance/conformance/glsl/misc/shader-with-undefined-preprocessor-symbol.frag.html
-                webgl-conformance/conformance/glsl/misc/shader-with-uniform-in-loop-condition.vert.html
-                webgl-conformance/conformance/glsl/misc/shader-with-vec2-return-value.frag.html
-                webgl-conformance/conformance/glsl/misc/shader-with-vec3-return-value.frag.html
-                webgl-conformance/conformance/glsl/misc/shader-with-vec4-return-value.frag.html
-                webgl-conformance/conformance/glsl/misc/shader-with-vec4-vec3-vec4-conditional.html
-                webgl-conformance/conformance/glsl/misc/shader-with-version-100.frag.html
-                webgl-conformance/conformance/glsl/misc/shader-with-version-100.vert.html
-                webgl-conformance/conformance/glsl/misc/shader-with-version-120.vert.html
-                webgl-conformance/conformance/glsl/misc/shader-with-version-130.vert.html
-                webgl-conformance/conformance/glsl/misc/shader-with-webgl-identifier.vert.html
-                webgl-conformance/conformance/glsl/misc/shader-without-precision.frag.html
-                webgl-conformance/conformance/glsl/misc/shared.html
-                webgl-conformance/conformance/glsl/misc/struct-nesting-exceeds-maximum.html
-                webgl-conformance/conformance/glsl/misc/struct-nesting-under-maximum.html
-                webgl-conformance/conformance/glsl/misc/uniform-location-length-limits.html
-                webgl-conformance/conformance/glsl/reserved/00_test_list.txt
-                webgl-conformance/conformance/glsl/reserved/_webgl_field.vert.html
-                webgl-conformance/conformance/glsl/reserved/_webgl_function.vert.html
-                webgl-conformance/conformance/glsl/reserved/_webgl_struct.vert.html
-                webgl-conformance/conformance/glsl/reserved/_webgl_variable.vert.html
-                webgl-conformance/conformance/glsl/reserved/webgl_field.vert.html
-                webgl-conformance/conformance/glsl/reserved/webgl_function.vert.html
-                webgl-conformance/conformance/glsl/reserved/webgl_struct.vert.html
-                webgl-conformance/conformance/glsl/reserved/webgl_variable.vert.html
-                webgl-conformance/conformance/glsl/samplers/00_test_list.txt
-                webgl-conformance/conformance/glsl/samplers/glsl-function-texture2d-bias.html
-                webgl-conformance/conformance/glsl/samplers/glsl-function-texture2dlod.html
-                webgl-conformance/conformance/glsl/samplers/glsl-function-texture2dproj.html
-                webgl-conformance/conformance/glsl/variables/00_test_list.txt
-                webgl-conformance/conformance/glsl/variables/gl-fragcoord.html
-                webgl-conformance/conformance/glsl/variables/gl-frontfacing.html
-                webgl-conformance/conformance/glsl/variables/gl-pointcoord.html
-                webgl-conformance/conformance/limits/00_test_list.txt
-                webgl-conformance/conformance/limits/gl-max-texture-dimensions.html
-                webgl-conformance/conformance/limits/gl-min-attribs.html
-                webgl-conformance/conformance/limits/gl-min-textures.html
-                webgl-conformance/conformance/limits/gl-min-uniforms.html
-                webgl-conformance/conformance/misc/00_test_list.txt
-                webgl-conformance/conformance/misc/bad-arguments-test.html
-                webgl-conformance/conformance/misc/delayed-drawing.html
-                webgl-conformance/conformance/misc/error-reporting.html
-                webgl-conformance/conformance/misc/functions-returning-strings.html
-                webgl-conformance/conformance/misc/instanceof-test.html
-                webgl-conformance/conformance/misc/invalid-passed-params.html
-                webgl-conformance/conformance/misc/is-object.html
-                webgl-conformance/conformance/misc/null-object-behaviour.html
-                webgl-conformance/conformance/misc/object-deletion-behaviour.html
-                webgl-conformance/conformance/misc/shader-precision-format.html
-                webgl-conformance/conformance/misc/type-conversion-test.html
-                webgl-conformance/conformance/misc/uninitialized-test.html
-                webgl-conformance/conformance/misc/webgl-specific.html
-                webgl-conformance/conformance/more/00_test_list.txt
-                webgl-conformance/conformance/more/README.md
-                webgl-conformance/conformance/more/all_tests.html
-                webgl-conformance/conformance/more/all_tests_linkonly.html
-                webgl-conformance/conformance/more/all_tests_sequential.html
-                webgl-conformance/conformance/more/conformance/argGenerators-A.js
-                webgl-conformance/conformance/more/conformance/argGenerators-B1.js
-                webgl-conformance/conformance/more/conformance/argGenerators-B2.js
-                webgl-conformance/conformance/more/conformance/argGenerators-B3.js
-                webgl-conformance/conformance/more/conformance/argGenerators-B4.js
-                webgl-conformance/conformance/more/conformance/argGenerators-C.js
-                webgl-conformance/conformance/more/conformance/argGenerators-D_G.js
-                webgl-conformance/conformance/more/conformance/argGenerators-G_I.js
-                webgl-conformance/conformance/more/conformance/argGenerators-L_S.js
-                webgl-conformance/conformance/more/conformance/argGenerators-S_V.js
-                webgl-conformance/conformance/more/conformance/badArgsArityLessThanArgc.html
-                webgl-conformance/conformance/more/conformance/constants.html
-                webgl-conformance/conformance/more/conformance/fuzzTheAPI.html
-                webgl-conformance/conformance/more/conformance/getContext.html
-                webgl-conformance/conformance/more/conformance/methods.html
-                webgl-conformance/conformance/more/conformance/quickCheckAPI-A.html
-                webgl-conformance/conformance/more/conformance/quickCheckAPI-B1.html
-                webgl-conformance/conformance/more/conformance/quickCheckAPI-B2.html
-                webgl-conformance/conformance/more/conformance/quickCheckAPI-B3.html
-                webgl-conformance/conformance/more/conformance/quickCheckAPI-B4.html
-                webgl-conformance/conformance/more/conformance/quickCheckAPI-C.html
-                webgl-conformance/conformance/more/conformance/quickCheckAPI-D_G.html
-                webgl-conformance/conformance/more/conformance/quickCheckAPI-G_I.html
-                webgl-conformance/conformance/more/conformance/quickCheckAPI-L_S.html
-                webgl-conformance/conformance/more/conformance/quickCheckAPI-S_V.html
-                webgl-conformance/conformance/more/conformance/quickCheckAPI.js
-                webgl-conformance/conformance/more/conformance/quickCheckAPIBadArgs.html
-                webgl-conformance/conformance/more/conformance/webGLArrays.html
-                webgl-conformance/conformance/more/demos/opengl_web.html
-                webgl-conformance/conformance/more/demos/video.html
-                webgl-conformance/conformance/more/functions/bindBuffer.html
-                webgl-conformance/conformance/more/functions/bindBufferBadArgs.html
-                webgl-conformance/conformance/more/functions/bindFramebufferLeaveNonZero.html
-                webgl-conformance/conformance/more/functions/bufferData.html
-                webgl-conformance/conformance/more/functions/bufferDataBadArgs.html
-                webgl-conformance/conformance/more/functions/bufferSubData.html
-                webgl-conformance/conformance/more/functions/bufferSubDataBadArgs.html
-                webgl-conformance/conformance/more/functions/copyTexImage2D.html
-                webgl-conformance/conformance/more/functions/copyTexImage2DBadArgs.html
-                webgl-conformance/conformance/more/functions/copyTexSubImage2D.html
-                webgl-conformance/conformance/more/functions/copyTexSubImage2DBadArgs.html
-                webgl-conformance/conformance/more/functions/deleteBufferBadArgs.html
-                webgl-conformance/conformance/more/functions/drawArrays.html
-                webgl-conformance/conformance/more/functions/drawArraysOutOfBounds.html
-                webgl-conformance/conformance/more/functions/drawElements.html
-                webgl-conformance/conformance/more/functions/drawElementsBadArgs.html
-                webgl-conformance/conformance/more/functions/isTests.html
-                webgl-conformance/conformance/more/functions/readPixels.html
-                webgl-conformance/conformance/more/functions/readPixelsBadArgs.html
-                webgl-conformance/conformance/more/functions/texImage2D.html
-                webgl-conformance/conformance/more/functions/texImage2DBadArgs.html
-                webgl-conformance/conformance/more/functions/texImage2DHTML.html
-                webgl-conformance/conformance/more/functions/texImage2DHTMLBadArgs.html
-                webgl-conformance/conformance/more/functions/texSubImage2D.html
-                webgl-conformance/conformance/more/functions/texSubImage2DBadArgs.html
-                webgl-conformance/conformance/more/functions/texSubImage2DHTML.html
-                webgl-conformance/conformance/more/functions/texSubImage2DHTMLBadArgs.html
-                webgl-conformance/conformance/more/functions/uniformMatrix.html
-                webgl-conformance/conformance/more/functions/uniformMatrixBadArgs.html
-                webgl-conformance/conformance/more/functions/uniformf.html
-                webgl-conformance/conformance/more/functions/uniformfArrayLen1.html
-                webgl-conformance/conformance/more/functions/uniformfBadArgs.html
-                webgl-conformance/conformance/more/functions/uniformi.html
-                webgl-conformance/conformance/more/functions/uniformiBadArgs.html
-                webgl-conformance/conformance/more/functions/vertexAttrib.html
-                webgl-conformance/conformance/more/functions/vertexAttribBadArgs.html
-                webgl-conformance/conformance/more/functions/vertexAttribPointer.html
-                webgl-conformance/conformance/more/functions/vertexAttribPointerBadArgs.html
-                webgl-conformance/conformance/more/glsl/arrayOutOfBounds.html
-                webgl-conformance/conformance/more/glsl/longLoops.html
-                webgl-conformance/conformance/more/glsl/uniformOutOfBounds.html
-                webgl-conformance/conformance/more/glsl/unusedAttribsUniforms.html
-                webgl-conformance/conformance/more/index.html
-                webgl-conformance/conformance/more/performance/CPUvsGPU.html
-                webgl-conformance/conformance/more/performance/bandwidth.html
-                webgl-conformance/conformance/more/performance/jsGCPause.html
-                webgl-conformance/conformance/more/performance/jsMatrixMult.html
-                webgl-conformance/conformance/more/performance/jsToGLOverhead.html
-                webgl-conformance/conformance/more/unit.css
-                webgl-conformance/conformance/more/unit.js
-                webgl-conformance/conformance/more/util.js
-                webgl-conformance/conformance/programs/00_test_list.txt
-                webgl-conformance/conformance/programs/get-active-test.html
-                webgl-conformance/conformance/programs/gl-bind-attrib-location-test.html
-                webgl-conformance/conformance/programs/gl-get-active-attribute.html
-                webgl-conformance/conformance/programs/gl-get-active-uniform.html
-                webgl-conformance/conformance/programs/gl-getshadersource.html
-                webgl-conformance/conformance/programs/gl-shader-test.html
-                webgl-conformance/conformance/programs/invalid-UTF-16.html
-                webgl-conformance/conformance/programs/program-test.html
-                webgl-conformance/conformance/reading/00_test_list.txt
-                webgl-conformance/conformance/reading/read-pixels-pack-alignment.html
-                webgl-conformance/conformance/reading/read-pixels-test.html
-                webgl-conformance/conformance/renderbuffers/00_test_list.txt
-                webgl-conformance/conformance/renderbuffers/framebuffer-object-attachment.html
-                webgl-conformance/conformance/renderbuffers/framebuffer-test.html
-                webgl-conformance/conformance/renderbuffers/renderbuffer-initialization.html
-                webgl-conformance/conformance/rendering/00_test_list.txt
-                webgl-conformance/conformance/rendering/draw-arrays-out-of-bounds.html
-                webgl-conformance/conformance/rendering/draw-elements-out-of-bounds.html
-                webgl-conformance/conformance/rendering/gl-clear.html
-                webgl-conformance/conformance/rendering/gl-drawelements.html
-                webgl-conformance/conformance/rendering/gl-scissor-test.html
-                webgl-conformance/conformance/rendering/line-loop-tri-fan.html
-                webgl-conformance/conformance/rendering/more-than-65536-indices.html
-                webgl-conformance/conformance/rendering/point-size.html
-                webgl-conformance/conformance/rendering/triangle.html
-                webgl-conformance/conformance/resources/3x3.png
-                webgl-conformance/conformance/resources/blue-1x1.jpg
-                webgl-conformance/conformance/resources/boolUniformShader.vert
-                webgl-conformance/conformance/resources/bug-32888-texture.png
-                webgl-conformance/conformance/resources/floatUniformShader.vert
-                webgl-conformance/conformance/resources/fragmentShader.frag
-                webgl-conformance/conformance/resources/glsl-conformance-test.js
-                webgl-conformance/conformance/resources/glsl-feature-tests.css
-                webgl-conformance/conformance/resources/glsl-generator.js
-                webgl-conformance/conformance/resources/gray-ramp-256-with-128-alpha.png
-                webgl-conformance/conformance/resources/gray-ramp-256.png
-                webgl-conformance/conformance/resources/gray-ramp-default-gamma.png
-                webgl-conformance/conformance/resources/gray-ramp-gamma0.1.png
-                webgl-conformance/conformance/resources/gray-ramp-gamma1.0.png
-                webgl-conformance/conformance/resources/gray-ramp-gamma2.0.png
-                webgl-conformance/conformance/resources/gray-ramp-gamma4.0.png
-                webgl-conformance/conformance/resources/gray-ramp-gamma9.0.png
-                webgl-conformance/conformance/resources/gray-ramp.png
-                webgl-conformance/conformance/resources/green-2x2-16bit.png
-                webgl-conformance/conformance/resources/intArrayUniformShader.vert
-                webgl-conformance/conformance/resources/intUniformShader.vert
-                webgl-conformance/conformance/resources/matUniformShader.vert
-                webgl-conformance/conformance/resources/noopUniformShader.frag
-                webgl-conformance/conformance/resources/noopUniformShader.vert
-                webgl-conformance/conformance/resources/npot-video.mp4
-                webgl-conformance/conformance/resources/npot-video.theora.ogv
-                webgl-conformance/conformance/resources/npot-video.webmvp8.webm
-                webgl-conformance/conformance/resources/pnglib.js
-                webgl-conformance/conformance/resources/red-green.mp4
-                webgl-conformance/conformance/resources/red-green.png
-                webgl-conformance/conformance/resources/red-green.theora.ogv
-                webgl-conformance/conformance/resources/red-green.webmvp8.webm
-                webgl-conformance/conformance/resources/red-indexed.png
-                webgl-conformance/conformance/resources/samplerUniformShader.frag
-                webgl-conformance/conformance/resources/small-square-with-cie-rgb-profile.png
-                webgl-conformance/conformance/resources/small-square-with-colormatch-profile.png
-                webgl-conformance/conformance/resources/small-square-with-colorspin-profile.jpg
-                webgl-conformance/conformance/resources/small-square-with-colorspin-profile.png
-                webgl-conformance/conformance/resources/small-square-with-e-srgb-profile.png
-                webgl-conformance/conformance/resources/small-square-with-smpte-c-profile.png
-                webgl-conformance/conformance/resources/small-square-with-srgb-iec61966-2.1-profile.png
-                webgl-conformance/conformance/resources/structUniformShader.vert
-                webgl-conformance/conformance/resources/vertexShader.vert
-                webgl-conformance/conformance/resources/webgl-test-utils.js
-                webgl-conformance/conformance/resources/webgl-test.js
-                webgl-conformance/conformance/resources/zero-alpha.png
-                webgl-conformance/conformance/state/00_test_list.txt
-                webgl-conformance/conformance/state/gl-enable-enum-test.html
-                webgl-conformance/conformance/state/gl-enum-tests.html
-                webgl-conformance/conformance/state/gl-get-calls.html
-                webgl-conformance/conformance/state/gl-geterror.html
-                webgl-conformance/conformance/state/gl-getstring.html
-                webgl-conformance/conformance/state/gl-object-get-calls.html
-                webgl-conformance/conformance/textures/00_test_list.txt
-                webgl-conformance/conformance/textures/compressed-tex-image.html
-                webgl-conformance/conformance/textures/copy-tex-image-and-sub-image-2d.html
-                webgl-conformance/conformance/textures/gl-pixelstorei.html
-                webgl-conformance/conformance/textures/gl-teximage.html
-                webgl-conformance/conformance/textures/origin-clean-conformance.html
-                webgl-conformance/conformance/textures/tex-image-and-sub-image-2d-with-array-buffer-view.html
-                webgl-conformance/conformance/textures/tex-image-and-sub-image-2d-with-canvas.html
-                webgl-conformance/conformance/textures/tex-image-and-sub-image-2d-with-image-data.html
-                webgl-conformance/conformance/textures/tex-image-and-sub-image-2d-with-image.html
-                webgl-conformance/conformance/textures/tex-image-and-sub-image-2d-with-video.html
-                webgl-conformance/conformance/textures/tex-image-and-uniform-binding-bugs.html
-                webgl-conformance/conformance/textures/tex-image-with-format-and-type.html
-                webgl-conformance/conformance/textures/tex-image-with-invalid-data.html
-                webgl-conformance/conformance/textures/tex-input-validation.html
-                webgl-conformance/conformance/textures/tex-sub-image-2d-bad-args.html
-                webgl-conformance/conformance/textures/tex-sub-image-2d.html
-                webgl-conformance/conformance/textures/texparameter-test.html
-                webgl-conformance/conformance/textures/texture-active-bind-2.html
-                webgl-conformance/conformance/textures/texture-active-bind.html
-                webgl-conformance/conformance/textures/texture-clear.html
-                webgl-conformance/conformance/textures/texture-complete.html
-                webgl-conformance/conformance/textures/texture-formats-test.html
-                webgl-conformance/conformance/textures/texture-mips.html
-                webgl-conformance/conformance/textures/texture-npot-video.html
-                webgl-conformance/conformance/textures/texture-npot.html
-                webgl-conformance/conformance/textures/texture-size-cube-maps.html
-                webgl-conformance/conformance/textures/texture-size.html
-                webgl-conformance/conformance/textures/texture-transparent-pixels-initialized.html
-                webgl-conformance/conformance/typedarrays/00_test_list.txt
-                webgl-conformance/conformance/typedarrays/array-buffer-crash.html
-                webgl-conformance/conformance/typedarrays/array-buffer-view-crash.html
-                webgl-conformance/conformance/typedarrays/array-unit-tests.html
-                webgl-conformance/conformance/uniforms/00_test_list.txt
-                webgl-conformance/conformance/uniforms/gl-uniform-arrays.html
-                webgl-conformance/conformance/uniforms/gl-uniform-bool.html
-                webgl-conformance/conformance/uniforms/gl-uniformmatrix4fv.html
-                webgl-conformance/conformance/uniforms/gl-unknown-uniform.html
-                webgl-conformance/conformance/uniforms/null-uniform-location.html
-                webgl-conformance/conformance/uniforms/uniform-location.html
-                webgl-conformance/conformance/uniforms/uniform-samplers-test.html
-                webgl-conformance/iframe-autoresize.js
-                webgl-conformance/mochi-single.html
-                webgl-conformance/resources/cors-util.js
-                webgl-conformance/resources/desktop-gl-constants.js
-                webgl-conformance/resources/js-test-pre.js
-                webgl-conformance/resources/js-test-style.css
-                webgl-conformance/resources/opengl_logo.jpg
-                webgl-conformance/resources/thunderbird-logo-64x64.png
-                webgl-conformance/resources/webgl-logo.png
-                webgl-conformance/resources/webgl-test-harness.js
-
-[webgl-conformance/_wrappers/test_always-fail.html]
-[webgl-conformance/_wrappers/test_conformance__attribs__gl-enable-vertex-attrib.html]
-[webgl-conformance/_wrappers/test_conformance__attribs__gl-vertex-attrib-zero-issues.html]
-[webgl-conformance/_wrappers/test_conformance__attribs__gl-vertex-attrib.html]
-[webgl-conformance/_wrappers/test_conformance__attribs__gl-vertexattribpointer-offsets.html]
-[webgl-conformance/_wrappers/test_conformance__attribs__gl-vertexattribpointer.html]
-[webgl-conformance/_wrappers/test_conformance__buffers__buffer-bind-test.html]
-[webgl-conformance/_wrappers/test_conformance__buffers__buffer-data-array-buffer.html]
-[webgl-conformance/_wrappers/test_conformance__buffers__index-validation-copies-indices.html]
-[webgl-conformance/_wrappers/test_conformance__buffers__index-validation-crash-with-buffer-sub-data.html]
-[webgl-conformance/_wrappers/test_conformance__buffers__index-validation-verifies-too-many-indices.html]
-[webgl-conformance/_wrappers/test_conformance__buffers__index-validation-with-resized-buffer.html]
-[webgl-conformance/_wrappers/test_conformance__buffers__index-validation.html]
-[webgl-conformance/_wrappers/test_conformance__canvas__buffer-offscreen-test.html]
-skip-if = os == 'android'
-[webgl-conformance/_wrappers/test_conformance__canvas__buffer-preserve-test.html]
-[webgl-conformance/_wrappers/test_conformance__canvas__canvas-test.html]
-[webgl-conformance/_wrappers/test_conformance__canvas__canvas-zero-size.html]
-[webgl-conformance/_wrappers/test_conformance__canvas__drawingbuffer-static-canvas-test.html]
-skip-if = os == 'mac'
-[webgl-conformance/_wrappers/test_conformance__canvas__drawingbuffer-test.html]
-[webgl-conformance/_wrappers/test_conformance__canvas__viewport-unchanged-upon-resize.html]
-skip-if = os == 'mac'
-[webgl-conformance/_wrappers/test_conformance__context__constants.html]
-[webgl-conformance/_wrappers/test_conformance__context__context-attributes-alpha-depth-stencil-antialias.html]
-skip-if = (os == 'b2g')
-[webgl-conformance/_wrappers/test_conformance__context__context-lost-restored.html]
-[webgl-conformance/_wrappers/test_conformance__context__context-lost.html]
-[webgl-conformance/_wrappers/test_conformance__context__context-type-test.html]
-[webgl-conformance/_wrappers/test_conformance__context__incorrect-context-object-behaviour.html]
-[webgl-conformance/_wrappers/test_conformance__context__methods.html]
-[webgl-conformance/_wrappers/test_conformance__context__premultiplyalpha-test.html]
-[webgl-conformance/_wrappers/test_conformance__context__resource-sharing-test.html]
-[webgl-conformance/_wrappers/test_conformance__extensions__oes-standard-derivatives.html]
-[webgl-conformance/_wrappers/test_conformance__extensions__ext-texture-filter-anisotropic.html]
-[webgl-conformance/_wrappers/test_conformance__extensions__oes-texture-float.html]
-skip-if = (os == 'linux')
-[webgl-conformance/_wrappers/test_conformance__extensions__oes-vertex-array-object.html]
-[webgl-conformance/_wrappers/test_conformance__extensions__webgl-debug-renderer-info.html]
-[webgl-conformance/_wrappers/test_conformance__extensions__webgl-debug-shaders.html]
-[webgl-conformance/_wrappers/test_conformance__extensions__webgl-compressed-texture-etc1.html]
-[webgl-conformance/_wrappers/test_conformance__extensions__webgl-compressed-texture-s3tc.html]
-[webgl-conformance/_wrappers/test_conformance__extensions__ext-sRGB.html]
-[webgl-conformance/_wrappers/test_conformance__extensions__ext-shader-texture-lod.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-abs.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-acos.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-asin.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-atan.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-atan-xy.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-ceil.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-clamp-float.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-clamp-gentype.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-cos.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-cross.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-distance.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-dot.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-faceforward.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-floor.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-fract.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-length.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-max-float.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-max-gentype.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-min-float.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-min-gentype.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-mix-float.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-mix-gentype.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-mod-float.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-mod-gentype.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-normalize.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-reflect.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-sign.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-sin.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-step-float.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-step-gentype.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-smoothstep-float.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__functions__glsl-function-smoothstep-gentype.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__add_int_float.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__add_int_mat2.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__add_int_mat3.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__add_int_mat4.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__add_int_vec2.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__add_int_vec3.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__add_int_vec4.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__add_ivec2_vec2.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__add_ivec3_vec3.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__add_ivec4_vec4.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__assign_int_to_float.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__assign_ivec2_to_vec2.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__assign_ivec3_to_vec3.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__assign_ivec4_to_vec4.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__construct_struct.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__divide_int_float.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__divide_int_mat2.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__divide_int_mat3.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__divide_int_mat4.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__divide_int_vec2.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__divide_int_vec3.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__divide_int_vec4.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__divide_ivec2_vec2.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__divide_ivec3_vec3.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__divide_ivec4_vec4.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__equal_int_float.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__equal_ivec2_vec2.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__equal_ivec3_vec3.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__equal_ivec4_vec4.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__function_int_float.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__function_ivec2_vec2.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__function_ivec3_vec3.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__function_ivec4_vec4.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__greater_than.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__greater_than_equal.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__less_than.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__less_than_equal.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__multiply_int_float.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__multiply_int_mat2.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__multiply_int_mat3.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__multiply_int_mat4.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__multiply_int_vec2.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__multiply_int_vec3.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__multiply_int_vec4.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__multiply_ivec2_vec2.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__multiply_ivec3_vec3.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__multiply_ivec4_vec4.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__not_equal_int_float.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__not_equal_ivec2_vec2.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__not_equal_ivec3_vec3.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__not_equal_ivec4_vec4.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__subtract_int_float.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__subtract_int_mat2.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__subtract_int_mat3.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__subtract_int_mat4.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__subtract_int_vec2.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__subtract_int_vec3.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__subtract_int_vec4.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__subtract_ivec2_vec2.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__subtract_ivec3_vec3.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__subtract_ivec4_vec4.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__ternary_int_float.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__ternary_ivec2_vec2.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__ternary_ivec3_vec3.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__implicit__ternary_ivec4_vec4.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__attrib-location-length-limits.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__embedded-struct-definitions-forbidden.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__glsl-function-nodes.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__glsl-long-variable-names.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__non-ascii-comments.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__non-ascii.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-256-character-identifier.frag.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-257-character-identifier.frag.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-_webgl-identifier.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-arbitrary-indexing.frag.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-arbitrary-indexing.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-attrib-array.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-attrib-struct.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-clipvertex.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-default-precision.frag.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-default-precision.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-define-line-continuation.frag.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-dfdx-no-ext.frag.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-dfdx.frag.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-error-directive.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-explicit-int-cast.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-float-return-value.frag.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-frag-depth.frag.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-function-recursion.frag.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-glcolor.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-gles-1.frag.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-gles-symbol.frag.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-glprojectionmatrix.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-implicit-vec3-to-vec4-cast.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-include.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-int-return-value.frag.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-invalid-identifier.frag.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-ivec2-return-value.frag.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-ivec3-return-value.frag.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-ivec4-return-value.frag.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-limited-indexing.frag.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-long-line.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-non-ascii-error.frag.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-precision.frag.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-quoted-error.frag.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-undefined-preprocessor-symbol.frag.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-uniform-in-loop-condition.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-vec2-return-value.frag.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-vec3-return-value.frag.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-vec4-return-value.frag.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-version-100.frag.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-version-100.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-version-120.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-version-130.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-with-webgl-identifier.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shader-without-precision.frag.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__shared.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__struct-nesting-exceeds-maximum.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__struct-nesting-under-maximum.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__misc__uniform-location-length-limits.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__reserved___webgl_field.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__reserved___webgl_function.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__reserved___webgl_struct.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__reserved___webgl_variable.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__reserved__webgl_field.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__reserved__webgl_function.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__reserved__webgl_struct.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__reserved__webgl_variable.vert.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__variables__gl-fragcoord.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__variables__gl-frontfacing.html]
-[webgl-conformance/_wrappers/test_conformance__glsl__variables__gl-pointcoord.html]
-[webgl-conformance/_wrappers/test_conformance__limits__gl-min-attribs.html]
-[webgl-conformance/_wrappers/test_conformance__limits__gl-max-texture-dimensions.html]
-[webgl-conformance/_wrappers/test_conformance__limits__gl-min-textures.html]
-skip-if = (os == 'linux')
-[webgl-conformance/_wrappers/test_conformance__limits__gl-min-uniforms.html]
-[webgl-conformance/_wrappers/test_conformance__misc__bad-arguments-test.html]
-[webgl-conformance/_wrappers/test_conformance__misc__error-reporting.html]
-[webgl-conformance/_wrappers/test_conformance__misc__instanceof-test.html]
-[webgl-conformance/_wrappers/test_conformance__misc__invalid-passed-params.html]
-skip-if = (os == 'android') || (os == 'b2g') || (os == 'linux')
-[webgl-conformance/_wrappers/test_conformance__misc__is-object.html]
-[webgl-conformance/_wrappers/test_conformance__misc__null-object-behaviour.html]
-[webgl-conformance/_wrappers/test_conformance__misc__functions-returning-strings.html]
-[webgl-conformance/_wrappers/test_conformance__misc__object-deletion-behaviour.html]
-[webgl-conformance/_wrappers/test_conformance__misc__shader-precision-format.html]
-[webgl-conformance/_wrappers/test_conformance__misc__type-conversion-test.html]
-skip-if = (os == 'android') || (os == 'b2g') || (os == 'linux')
-[webgl-conformance/_wrappers/test_conformance__misc__uninitialized-test.html]
-skip-if = os == 'android'
-[webgl-conformance/_wrappers/test_conformance__misc__webgl-specific.html]
-[webgl-conformance/_wrappers/test_conformance__programs__get-active-test.html]
-[webgl-conformance/_wrappers/test_conformance__programs__gl-bind-attrib-location-test.html]
-[webgl-conformance/_wrappers/test_conformance__programs__gl-get-active-attribute.html]
-[webgl-conformance/_wrappers/test_conformance__programs__gl-get-active-uniform.html]
-[webgl-conformance/_wrappers/test_conformance__programs__gl-getshadersource.html]
-[webgl-conformance/_wrappers/test_conformance__programs__gl-shader-test.html]
-[webgl-conformance/_wrappers/test_conformance__programs__invalid-UTF-16.html]
-[webgl-conformance/_wrappers/test_conformance__programs__program-test.html]
-[webgl-conformance/_wrappers/test_conformance__reading__read-pixels-pack-alignment.html]
-[webgl-conformance/_wrappers/test_conformance__reading__read-pixels-test.html]
-skip-if = (os == 'android') || (os == 'b2g') || (os == 'linux')
-[webgl-conformance/_wrappers/test_conformance__renderbuffers__framebuffer-object-attachment.html]
-skip-if = os == 'android'
-[webgl-conformance/_wrappers/test_conformance__renderbuffers__framebuffer-test.html]
-[webgl-conformance/_wrappers/test_conformance__renderbuffers__renderbuffer-initialization.html]
-[webgl-conformance/_wrappers/test_conformance__rendering__draw-arrays-out-of-bounds.html]
-[webgl-conformance/_wrappers/test_conformance__rendering__draw-elements-out-of-bounds.html]
-[webgl-conformance/_wrappers/test_conformance__rendering__gl-clear.html]
-[webgl-conformance/_wrappers/test_conformance__rendering__gl-drawelements.html]
-[webgl-conformance/_wrappers/test_conformance__rendering__gl-scissor-test.html]
-[webgl-conformance/_wrappers/test_conformance__rendering__more-than-65536-indices.html]
-[webgl-conformance/_wrappers/test_conformance__rendering__point-size.html]
-[webgl-conformance/_wrappers/test_conformance__rendering__triangle.html]
-[webgl-conformance/_wrappers/test_conformance__rendering__line-loop-tri-fan.html]
-[webgl-conformance/_wrappers/test_conformance__state__gl-enable-enum-test.html]
-[webgl-conformance/_wrappers/test_conformance__state__gl-enum-tests.html]
-[webgl-conformance/_wrappers/test_conformance__state__gl-get-calls.html]
-[webgl-conformance/_wrappers/test_conformance__state__gl-geterror.html]
-[webgl-conformance/_wrappers/test_conformance__state__gl-getstring.html]
-[webgl-conformance/_wrappers/test_conformance__state__gl-object-get-calls.html]
-[webgl-conformance/_wrappers/test_conformance__textures__compressed-tex-image.html]
-[webgl-conformance/_wrappers/test_conformance__textures__copy-tex-image-and-sub-image-2d.html]
-[webgl-conformance/_wrappers/test_conformance__textures__gl-pixelstorei.html]
-[webgl-conformance/_wrappers/test_conformance__textures__gl-teximage.html]
-skip-if = (os == 'android') || (os == 'b2g') || (os == 'linux')
-[webgl-conformance/_wrappers/test_conformance__textures__origin-clean-conformance.html]
-[webgl-conformance/_wrappers/test_conformance__textures__tex-image-and-sub-image-2d-with-array-buffer-view.html]
-[webgl-conformance/_wrappers/test_conformance__textures__tex-image-and-sub-image-2d-with-canvas.html]
-[webgl-conformance/_wrappers/test_conformance__textures__tex-image-and-sub-image-2d-with-image-data.html]
-[webgl-conformance/_wrappers/test_conformance__textures__tex-image-and-sub-image-2d-with-image.html]
-[webgl-conformance/_wrappers/test_conformance__textures__tex-image-and-sub-image-2d-with-video.html]
-skip-if = (os == 'android') || (os == 'b2g') || (os == 'linux') || (os == 'win')
-[webgl-conformance/_wrappers/test_conformance__textures__tex-image-and-uniform-binding-bugs.html]
-skip-if = (os == 'b2g')
-[webgl-conformance/_wrappers/test_conformance__textures__tex-image-with-format-and-type.html]
-skip-if = (os == 'android') || (os == 'b2g') || (os == 'linux')
-[webgl-conformance/_wrappers/test_conformance__textures__tex-image-with-invalid-data.html]
-[webgl-conformance/_wrappers/test_conformance__textures__tex-input-validation.html]
-skip-if = (os == 'android') || (os == 'b2g') || (os == 'linux')
-[webgl-conformance/_wrappers/test_conformance__textures__tex-sub-image-2d-bad-args.html]
-[webgl-conformance/_wrappers/test_conformance__textures__tex-sub-image-2d.html]
-[webgl-conformance/_wrappers/test_conformance__textures__texparameter-test.html]
-[webgl-conformance/_wrappers/test_conformance__textures__texture-active-bind-2.html]
-[webgl-conformance/_wrappers/test_conformance__textures__texture-active-bind.html]
-[webgl-conformance/_wrappers/test_conformance__textures__texture-complete.html]
-[webgl-conformance/_wrappers/test_conformance__textures__texture-formats-test.html]
-[webgl-conformance/_wrappers/test_conformance__textures__texture-mips.html]
-skip-if = (os == 'linux')
-[webgl-conformance/_wrappers/test_conformance__textures__texture-npot-video.html]
-skip-if = (os == 'android') || (os == 'win')
-[webgl-conformance/_wrappers/test_conformance__textures__texture-npot.html]
-skip-if = os == 'android'
-[webgl-conformance/_wrappers/test_conformance__textures__texture-size.html]
-skip-if = os == 'android'
-[webgl-conformance/_wrappers/test_conformance__textures__texture-size-cube-maps.html]
-skip-if = (os == 'android') || (os == 'linux')
-[webgl-conformance/_wrappers/test_conformance__textures__texture-transparent-pixels-initialized.html]
-[webgl-conformance/_wrappers/test_conformance__typedarrays__array-buffer-crash.html]
-[webgl-conformance/_wrappers/test_conformance__typedarrays__array-buffer-view-crash.html]
-[webgl-conformance/_wrappers/test_conformance__typedarrays__array-unit-tests.html]
-[webgl-conformance/_wrappers/test_conformance__uniforms__gl-uniform-arrays.html]
-[webgl-conformance/_wrappers/test_conformance__uniforms__gl-uniform-bool.html]
-[webgl-conformance/_wrappers/test_conformance__uniforms__gl-uniformmatrix4fv.html]
-[webgl-conformance/_wrappers/test_conformance__uniforms__gl-unknown-uniform.html]
-[webgl-conformance/_wrappers/test_conformance__uniforms__null-uniform-location.html]
-[webgl-conformance/_wrappers/test_conformance__uniforms__uniform-location.html]
-[webgl-conformance/_wrappers/test_conformance__uniforms__uniform-samplers-test.html]
-[webgl-conformance/_wrappers/test_conformance__more__conformance__constants.html]
-[webgl-conformance/_wrappers/test_conformance__more__conformance__getContext.html]
-[webgl-conformance/_wrappers/test_conformance__more__conformance__methods.html]
-[webgl-conformance/_wrappers/test_conformance__more__conformance__quickCheckAPI-A.html]
-[webgl-conformance/_wrappers/test_conformance__more__conformance__quickCheckAPI-B1.html]
-[webgl-conformance/_wrappers/test_conformance__more__conformance__quickCheckAPI-B2.html]
-[webgl-conformance/_wrappers/test_conformance__more__conformance__quickCheckAPI-B3.html]
-[webgl-conformance/_wrappers/test_conformance__more__conformance__quickCheckAPI-B4.html]
-[webgl-conformance/_wrappers/test_conformance__more__conformance__quickCheckAPI-C.html]
-[webgl-conformance/_wrappers/test_conformance__more__conformance__quickCheckAPI-D_G.html]
-[webgl-conformance/_wrappers/test_conformance__more__conformance__quickCheckAPI-G_I.html]
-[webgl-conformance/_wrappers/test_conformance__more__conformance__quickCheckAPI-L_S.html]
-[webgl-conformance/_wrappers/test_conformance__more__conformance__quickCheckAPI-S_V.html]
-[webgl-conformance/_wrappers/test_conformance__more__conformance__webGLArrays.html]
-[webgl-conformance/_wrappers/test_conformance__more__functions__bindBuffer.html]
-[webgl-conformance/_wrappers/test_conformance__more__functions__bindBufferBadArgs.html]
-[webgl-conformance/_wrappers/test_conformance__more__functions__bindFramebufferLeaveNonZero.html]
-[webgl-conformance/_wrappers/test_conformance__more__functions__bufferData.html]
-[webgl-conformance/_wrappers/test_conformance__more__functions__bufferDataBadArgs.html]
-[webgl-conformance/_wrappers/test_conformance__more__functions__bufferSubData.html]
-[webgl-conformance/_wrappers/test_conformance__more__functions__bufferSubDataBadArgs.html]
-[webgl-conformance/_wrappers/test_conformance__more__functions__copyTexImage2D.html]
-[webgl-conformance/_wrappers/test_conformance__more__functions__copyTexImage2DBadArgs.html]
-[webgl-conformance/_wrappers/test_conformance__more__functions__copyTexSubImage2D.html]
-[webgl-conformance/_wrappers/test_conformance__more__functions__copyTexSubImage2DBadArgs.html]
-[webgl-conformance/_wrappers/test_conformance__more__functions__deleteBufferBadArgs.html]
-[webgl-conformance/_wrappers/test_conformance__more__functions__drawArrays.html]
-[webgl-conformance/_wrappers/test_conformance__more__functions__drawArraysOutOfBounds.html]
-[webgl-conformance/_wrappers/test_conformance__more__functions__drawElements.html]
-[webgl-conformance/_wrappers/test_conformance__more__functions__drawElementsBadArgs.html]
-[webgl-conformance/_wrappers/test_conformance__more__functions__isTests.html]
-[webgl-conformance/_wrappers/test_conformance__more__functions__readPixels.html]
-[webgl-conformance/_wrappers/test_conformance__more__functions__readPixelsBadArgs.html]
-[webgl-conformance/_wrappers/test_conformance__more__functions__texImage2D.html]
-[webgl-conformance/_wrappers/test_conformance__more__functions__texImage2DBadArgs.html]
-[webgl-conformance/_wrappers/test_conformance__more__functions__texImage2DHTML.html]
-[webgl-conformance/_wrappers/test_conformance__more__functions__texImage2DHTMLBadArgs.html]
-[webgl-conformance/_wrappers/test_conformance__more__functions__texSubImage2D.html]
-[webgl-conformance/_wrappers/test_conformance__more__functions__texSubImage2DBadArgs.html]
-[webgl-conformance/_wrappers/test_conformance__more__functions__texSubImage2DHTML.html]
-[webgl-conformance/_wrappers/test_conformance__more__functions__texSubImage2DHTMLBadArgs.html]
-[webgl-conformance/_wrappers/test_conformance__more__functions__uniformf.html]
-[webgl-conformance/_wrappers/test_conformance__more__functions__uniformfBadArgs.html]
-[webgl-conformance/_wrappers/test_conformance__more__functions__uniformfArrayLen1.html]
-[webgl-conformance/_wrappers/test_conformance__more__functions__uniformi.html]
-[webgl-conformance/_wrappers/test_conformance__more__functions__uniformiBadArgs.html]
-[webgl-conformance/_wrappers/test_conformance__more__functions__uniformMatrix.html]
-[webgl-conformance/_wrappers/test_conformance__more__functions__uniformMatrixBadArgs.html]
-[webgl-conformance/_wrappers/test_conformance__more__functions__vertexAttrib.html]
-[webgl-conformance/_wrappers/test_conformance__more__functions__vertexAttribBadArgs.html]
-[webgl-conformance/_wrappers/test_conformance__more__functions__vertexAttribPointer.html]
-[webgl-conformance/_wrappers/test_conformance__more__functions__vertexAttribPointerBadArgs.html]
-[webgl-conformance/_wrappers/test_conformance__more__glsl__arrayOutOfBounds.html]
-[webgl-conformance/_wrappers/test_conformance__more__glsl__uniformOutOfBounds.html]
rename from dom/canvas/test/webgl-conformance/always-fail.html
rename to dom/canvas/test/webgl-conf/always-fail.html
--- a/dom/canvas/test/webgl-conformance/always-fail.html
+++ b/dom/canvas/test/webgl-conf/always-fail.html
@@ -1,15 +1,14 @@
 <!DOCTYPE html>
-<meta charset='utf-8'>
 <html>
 <head>
-    <title>Always fail test</title>
-    <link rel='stylesheet' href='resources/js-test-style.css'/>
-    <script src='resources/js-test-pre.js'></script>
+  <meta charset='utf-8'>
+  <link rel='stylesheet' href='checkout/resources/js-test-style.css'/>
+  <script src='checkout/resources/js-test-pre.js'></script>
 </head>
 <body>
   <div id='description'></div>
   <div id='console'></div>
 
   <script>
     description('Deliberately fail so as to test our harness.');
 
new file mode 100644
--- /dev/null
+++ b/dom/canvas/test/webgl-conf/checkout/00_test_list.txt
@@ -0,0 +1,6 @@
+// files that end in .txt list other tests
+// other lines are assumed to be .html files
+
+conformance/00_test_list.txt
+conformance/more/00_test_list.txt
+
new file mode 100644
--- /dev/null
+++ b/dom/canvas/test/webgl-conf/checkout/CONFORMANCE_RULES.txt
@@ -0,0 +1,132 @@
+Rules for Claiming a Conformant WebGL Implementation
+====================================================
+
+The WebGL API is a web standard, and many web browser implementers
+deliver their browser on multiple operating systems (OSs). WebGL
+implementations also typically rely on the presence of an OpenGL or
+OpenGL ES implementation on the OS. It can be appreciated that a WebGL
+implementation therefore has many dependencies. This document attempts
+to clarify to potential implementers the rules the Khronos Group uses
+to judge whether a particular WebGL implementation is conformant.
+
+There are two primary reasons to submit conformance results:
+
+  A) A web browser implementer desires to certify their WebGL
+     implementation as conformant.
+
+  B) A GPU manufacturer delivering an embedded system including web
+     browser with WebGL support desires to certify their WebGL
+     implementation as conformant.
+
+Each of these situations carries different constraints, so the
+conformance rules are phrased differently for each. Typically, a web
+browser implementer aims to certify that the WebGL "layer" is correct.
+A GPU vendor typically aims to certify that a given device is
+physically capable of passing the tests.
+
+A newly-developed WebGL implementation should not support the "webgl"
+HTML Canvas context type by default in a shipping version of the
+product until reaching conformance. It is acceptable to give end users
+an option to turn on WebGL support in a non-conformant implementation
+as long as the documentation for that option clearly indicates that
+the implementation is not yet conformant and may have compatibility
+issues. It is suggested that the Canvas context type
+"experimental-webgl" may be supported by default in such
+implementations.
+
+A WebGL implementation might reach conformance, but a subsequent
+graphics driver release on a particular OS might introduce a
+regression causing failures of one or more of the WebGL conformance
+tests. In this situation it is not required to revoke support for the
+"webgl" HTML Canvas context type. The WebGL implementer should work
+with the GPU vendor to ensure the driver regression is fixed. A
+situation like this would, however, prevent the WebGL implementer from
+conforming to a subsequent version of the test suite.
+
+(A) Conformance Rules for a Web Browser Implementer
+===================================================
+
+1. Conformance on a particular operating system
+
+On a given OS, a WebGL implementation will be considered to conform to
+a particular version of the conformance suite if the suite passes with
+no test failures on at least two GPUs, each from a different
+vendor. If the OS only supports a GPU from one vendor, the two-GPU
+requirement is dropped.
+
+2. Conformance across multiple operating systems
+
+A WebGL implementation will be considered to conform to a particular
+version of the conformance suite if it passes rule (1) on all of the
+OSs on which the WebGL implementation is intended to be supported.
+
+3. Conformance as the web browser is upgraded
+
+WebGL conformance results submitted for an earlier version of the
+browser carry forward to later versions of the browser, unless the
+WebGL implementation changes substantially enough that it is expected
+that conformance may have been affected. In that case, the browser
+implementer should submit new conformance results.
+
+4. Conformance as the operating system is upgraded
+
+If a new version is released of one of the OSs on which a WebGL
+implementation is intended to run, then WebGL conformance results
+submitted for earlier versions of that OS carry forward. Future
+conformance results must be submitted against the new version of the
+OS. If it is anticipated that the older OS version will be supported
+for some time, then future conformance results must be submitted
+separately for both the old and new versions of the OS.
+
+(B) Conformance Rules for a GPU Vendor
+======================================
+
+A GPU vendor submitting conformance results for a WebGL implementation
+typically does so because the device containing the GPU includes a
+built-in web browser. In this case the following rules apply:
+
+1. Conformance results must be submitted for each GPU and operating<