Bug 1323122 - Update WebGL Conformance Test with html/js. r=jgilbert
authorvincentliu <vliu@mozilla.com>
Sun, 15 Jan 2017 23:29:56 +0800
changeset 374501 1c68d650f3b16cb84ea9c96a1aa72d2be9aa1b1f
parent 374500 d34b196990a0bbeaca6deef32b83daac57c6fb09
child 374502 5e64e0d0d90f5fa5d297ded6704dc34a073d0aa7
push id6996
push userjlorenzo@mozilla.com
push dateMon, 06 Mar 2017 20:48:21 +0000
treeherdermozilla-beta@d89512dab048 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjgilbert
bugs1323122, 37322, 13201, 100644
milestone53.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1323122 - Update WebGL Conformance Test with html/js. r=jgilbert --- .../attribs/gl-bindAttribLocation-aliasing.html | 2 +- .../attribs/gl-vertexattribpointer.html | 23 +- .../conformance/buffers/buffer-uninitialized.html | 123 + .../context/constants-and-properties.html | 96 +- ...t-attributes-alpha-depth-stencil-antialias.html | 28 +- .../context/context-no-alpha-fbo-with-alpha.html | 98 + .../checkout/conformance/context/methods.html | 3 + .../extensions/angle-instanced-arrays.html | 4 +- .../extensions/ext-disjoint-timer-query.html | 60 +- .../conformance/extensions/ext-frag-depth.html | 2 +- .../extensions/ext-texture-filter-anisotropic.html | 18 +- .../extensions/oes-element-index-uint.html | 8 +- .../oes-vertex-array-object-bufferData.html | 48 +- .../extensions/oes-vertex-array-object.html | 30 +- .../extensions/webgl-compressed-texture-atc.html | 7 +- .../extensions/webgl-compressed-texture-etc.html | 154 + .../extensions/webgl-compressed-texture-pvrtc.html | 1 + .../webgl-compressed-texture-s3tc-srgb.html | 711 ++++ .../extensions/webgl-compressed-texture-s3tc.html | 113 +- .../extensions/webgl-debug-shaders.html | 1 + .../extensions/webgl-depth-texture.html | 232 +- ...webgl-draw-buffers-framebuffer-unsupported.html | 147 + .../conformance/extensions/webgl-draw-buffers.html | 103 +- .../glsl/bugs/bool-type-cast-bug-int-float.html | 333 ++ .../bugs/compound-assignment-type-combination.html | 97 +- .../glsl/bugs/conditional-discard-in-loop.html | 56 +- ...bal-invariant-does-not-leak-across-shaders.html | 98 + .../invariant-does-not-leak-across-shaders.html | 95 + .../glsl/bugs/loop-if-loop-gradient.html | 2 +- .../glsl/bugs/nested-sequence-operator.html | 68 + .../conformance/glsl/bugs/qualcomm-crash.html | 2 +- .../glsl/bugs/sampler-struct-function-arg.html | 2 +- .../bugs/sequence-operator-evaluation-order.html | 102 +- .../glsl/constructors/glsl-construct-bvec2.html | 6 +- .../glsl/constructors/glsl-construct-bvec3.html | 6 +- .../glsl/constructors/glsl-construct-bvec4.html | 6 +- .../glsl/constructors/glsl-construct-ivec2.html | 6 +- .../glsl/constructors/glsl-construct-ivec3.html | 6 +- .../glsl/constructors/glsl-construct-ivec4.html | 6 +- .../glsl/constructors/glsl-construct-mat2.html | 6 +- .../glsl/constructors/glsl-construct-mat3.html | 6 +- .../glsl/constructors/glsl-construct-mat4.html | 6 +- .../glsl/constructors/glsl-construct-vec2.html | 6 +- .../glsl/constructors/glsl-construct-vec3.html | 6 +- .../glsl/constructors/glsl-construct-vec4.html | 6 +- .../glsl/functions/glsl-function-distance.html | 4 +- .../glsl/functions/glsl-function-dot.html | 4 +- .../shader-with-short-circuiting-operators.html | 4 +- .../glsl/misc/shaders-with-invariance.html | 38 +- .../glsl/misc/shaders-with-uniform-structs.html | 22 +- .../glsl/misc/struct-specifiers-in-uniforms.html | 2 +- .../samplers/glsl-function-texture2dprojlod.html | 4 +- .../glsl/variables/gl-fragcoord-xy-values.html | 72 +- .../conformance/glsl/variables/gl-frontfacing.html | 6 +- .../conformance/misc/bad-arguments-test.html | 64 +- .../checkout/conformance/misc/expando-loss.html | 8 +- .../checkout/conformance/more/all_tests.html | 114 +- .../conformance/more/all_tests_linkonly.html | 114 +- .../conformance/more/all_tests_sequential.html | 114 +- .../conformance/more/functions/texImage2D.html | 2 +- .../checkout/conformance/more/index.html | 4 +- .../conformance/ogles/GL/abs/abs_001_to_006.html | 82 +- .../conformance/ogles/GL/acos/acos_001_to_006.html | 82 +- .../conformance/ogles/GL/all/all_001_to_004.html | 54 +- .../conformance/ogles/GL/any/any_001_to_004.html | 54 +- .../ogles/GL/array/array_001_to_006.html | 170 +- .../conformance/ogles/GL/asin/asin_001_to_006.html | 82 +- .../conformance/ogles/GL/atan/atan_001_to_008.html | 110 +- .../conformance/ogles/GL/atan/atan_009_to_012.html | 54 +- .../GL/biConstants/biConstants_001_to_008.html | 206 +- .../GL/biConstants/biConstants_009_to_016.html | 206 +- .../ogles/GL/build/build_001_to_008.html | 94 +- .../ogles/GL/build/build_009_to_016.html | 94 +- .../ogles/GL/build/build_017_to_024.html | 94 +- .../ogles/GL/build/build_025_to_032.html | 94 +- .../ogles/GL/build/build_033_to_040.html | 94 +- .../ogles/GL/build/build_041_to_048.html | 94 +- .../ogles/GL/build/build_049_to_056.html | 94 +- .../ogles/GL/build/build_057_to_064.html | 94 +- .../ogles/GL/build/build_065_to_072.html | 94 +- .../ogles/GL/build/build_073_to_080.html | 94 +- .../ogles/GL/build/build_081_to_088.html | 94 +- .../ogles/GL/build/build_089_to_096.html | 94 +- .../ogles/GL/build/build_097_to_104.html | 94 +- .../ogles/GL/build/build_105_to_112.html | 94 +- .../ogles/GL/build/build_113_to_120.html | 94 +- .../ogles/GL/build/build_121_to_128.html | 94 +- .../ogles/GL/build/build_129_to_136.html | 94 +- .../ogles/GL/build/build_137_to_144.html | 94 +- .../ogles/GL/build/build_145_to_152.html | 94 +- .../ogles/GL/build/build_153_to_160.html | 94 +- .../ogles/GL/build/build_161_to_168.html | 94 +- .../ogles/GL/build/build_169_to_176.html | 94 +- .../ogles/GL/build/build_177_to_178.html | 22 +- ..._in_varying_array_out_of_bounds_001_to_001.html | 10 +- .../conformance/ogles/GL/ceil/ceil_001_to_006.html | 82 +- .../ogles/GL/clamp/clamp_001_to_006.html | 82 +- .../GL/control_flow/control_flow_001_to_008.html | 206 +- .../GL/control_flow/control_flow_009_to_010.html | 50 +- .../conformance/ogles/GL/cos/cos_001_to_006.html | 82 +- .../ogles/GL/cross/cross_001_to_002.html | 26 +- .../ogles/GL/default/default_001_to_001.html | 12 +- .../ogles/GL/degrees/degrees_001_to_006.html | 82 +- .../ogles/GL/discard/discard_001_to_002.html | 38 +- .../ogles/GL/distance/distance_001_to_006.html | 82 +- .../conformance/ogles/GL/dot/dot_001_to_006.html | 82 +- .../ogles/GL/equal/equal_001_to_008.html | 110 +- .../ogles/GL/equal/equal_009_to_012.html | 54 +- .../conformance/ogles/GL/exp/exp_001_to_008.html | 110 +- .../conformance/ogles/GL/exp/exp_009_to_012.html | 54 +- .../conformance/ogles/GL/exp2/exp2_001_to_008.html | 110 +- .../conformance/ogles/GL/exp2/exp2_009_to_012.html | 54 +- .../GL/faceforward/faceforward_001_to_006.html | 82 +- .../ogles/GL/floor/floor_001_to_006.html | 82 +- .../ogles/GL/fract/fract_001_to_006.html | 82 +- .../ogles/GL/functions/functions_001_to_008.html | 206 +- .../ogles/GL/functions/functions_009_to_016.html | 206 +- .../ogles/GL/functions/functions_017_to_024.html | 206 +- .../ogles/GL/functions/functions_025_to_032.html | 206 +- .../ogles/GL/functions/functions_033_to_040.html | 206 +- .../ogles/GL/functions/functions_041_to_048.html | 206 +- .../ogles/GL/functions/functions_049_to_056.html | 206 +- .../ogles/GL/functions/functions_057_to_064.html | 206 +- .../ogles/GL/functions/functions_065_to_072.html | 206 +- .../ogles/GL/functions/functions_073_to_080.html | 206 +- .../ogles/GL/functions/functions_081_to_088.html | 206 +- .../ogles/GL/functions/functions_089_to_096.html | 206 +- .../ogles/GL/functions/functions_097_to_104.html | 206 +- .../ogles/GL/functions/functions_105_to_112.html | 206 +- .../ogles/GL/functions/functions_113_to_120.html | 206 +- .../ogles/GL/functions/functions_121_to_126.html | 154 +- .../GL/gl_FragCoord/gl_FragCoord_001_to_003.html | 52 +- .../gl_FrontFacing/gl_FrontFacing_001_to_001.html | 12 +- .../GL/greaterThan/greaterThan_001_to_008.html | 110 +- .../greaterThanEqual_001_to_008.html | 110 +- .../GL/inversesqrt/inversesqrt_001_to_006.html | 82 +- .../ogles/GL/length/length_001_to_006.html | 82 +- .../ogles/GL/lessThan/lessThan_001_to_008.html | 110 +- .../GL/lessThanEqual/lessThanEqual_001_to_008.html | 110 +- .../conformance/ogles/GL/log/log_001_to_008.html | 110 +- .../conformance/ogles/GL/log/log_009_to_012.html | 54 +- .../conformance/ogles/GL/log2/log2_001_to_008.html | 110 +- .../conformance/ogles/GL/log2/log2_009_to_012.html | 54 +- .../conformance/ogles/GL/mat/mat_001_to_008.html | 206 +- .../conformance/ogles/GL/mat/mat_009_to_016.html | 206 +- .../conformance/ogles/GL/mat/mat_017_to_024.html | 206 +- .../conformance/ogles/GL/mat/mat_025_to_032.html | 206 +- .../conformance/ogles/GL/mat/mat_033_to_040.html | 206 +- .../conformance/ogles/GL/mat/mat_041_to_046.html | 154 +- .../conformance/ogles/GL/mat3/mat3_001_to_006.html | 406 +- .../matrixCompMult/matrixCompMult_001_to_004.html | 54 +- .../conformance/ogles/GL/max/max_001_to_006.html | 82 +- .../conformance/ogles/GL/min/min_001_to_006.html | 82 +- .../conformance/ogles/GL/mix/mix_001_to_006.html | 82 +- .../conformance/ogles/GL/mod/mod_001_to_008.html | 134 +- .../ogles/GL/normalize/normalize_001_to_006.html | 82 +- .../conformance/ogles/GL/not/not_001_to_004.html | 54 +- .../ogles/GL/notEqual/notEqual_001_to_008.html | 110 +- .../ogles/GL/notEqual/notEqual_009_to_012.html | 54 +- .../ogles/GL/operators/operators_001_to_008.html | 206 +- .../ogles/GL/operators/operators_009_to_016.html | 206 +- .../ogles/GL/operators/operators_017_to_024.html | 206 +- .../ogles/GL/operators/operators_025_to_026.html | 50 +- .../conformance/ogles/GL/pow/pow_001_to_008.html | 110 +- .../conformance/ogles/GL/pow/pow_009_to_016.html | 110 +- .../conformance/ogles/GL/pow/pow_017_to_024.html | 110 +- .../ogles/GL/radians/radians_001_to_006.html | 82 +- .../ogles/GL/reflect/reflect_001_to_006.html | 82 +- .../ogles/GL/refract/refract_001_to_006.html | 82 +- .../conformance/ogles/GL/sign/sign_001_to_006.html | 82 +- .../conformance/ogles/GL/sin/sin_001_to_006.html | 82 +- .../ogles/GL/smoothstep/smoothstep_001_to_006.html | 82 +- .../conformance/ogles/GL/sqrt/sqrt_001_to_006.html | 82 +- .../conformance/ogles/GL/step/step_001_to_006.html | 82 +- .../ogles/GL/struct/struct_001_to_008.html | 206 +- .../ogles/GL/struct/struct_009_to_016.html | 206 +- .../ogles/GL/struct/struct_017_to_024.html | 206 +- .../ogles/GL/struct/struct_025_to_032.html | 206 +- .../ogles/GL/struct/struct_033_to_040.html | 206 +- .../ogles/GL/struct/struct_041_to_048.html | 206 +- .../ogles/GL/struct/struct_049_to_056.html | 206 +- .../ogles/GL/swizzlers/swizzlers_001_to_008.html | 110 +- .../ogles/GL/swizzlers/swizzlers_009_to_016.html | 110 +- .../ogles/GL/swizzlers/swizzlers_017_to_024.html | 110 +- .../ogles/GL/swizzlers/swizzlers_025_to_032.html | 110 +- .../ogles/GL/swizzlers/swizzlers_033_to_040.html | 110 +- .../ogles/GL/swizzlers/swizzlers_041_to_048.html | 110 +- .../ogles/GL/swizzlers/swizzlers_049_to_056.html | 110 +- .../ogles/GL/swizzlers/swizzlers_057_to_064.html | 110 +- .../ogles/GL/swizzlers/swizzlers_065_to_072.html | 110 +- .../ogles/GL/swizzlers/swizzlers_073_to_080.html | 110 +- .../ogles/GL/swizzlers/swizzlers_081_to_088.html | 110 +- .../ogles/GL/swizzlers/swizzlers_089_to_096.html | 110 +- .../ogles/GL/swizzlers/swizzlers_097_to_104.html | 110 +- .../ogles/GL/swizzlers/swizzlers_105_to_112.html | 110 +- .../ogles/GL/swizzlers/swizzlers_113_to_120.html | 110 +- .../conformance/ogles/GL/tan/tan_001_to_006.html | 82 +- .../conformance/ogles/GL/vec/vec_001_to_008.html | 206 +- .../conformance/ogles/GL/vec/vec_009_to_016.html | 206 +- .../conformance/ogles/GL/vec/vec_017_to_018.html | 50 +- .../conformance/ogles/GL/vec3/vec3_001_to_008.html | 298 +- .../checkout/conformance/ogles/ogles-utils.js | 2 +- .../conformance/programs/program-infolog.html | 83 + .../conformance/renderbuffers/feedback-loop.html | 2 +- .../framebuffer-object-attachment.html | 4 +- .../rendering/clipping-wide-points.html | 47 + .../rendering/default-texture-draw-bug.html | 2 +- .../conformance/rendering/gl-viewport-test-2.html | 76 + .../conformance/rendering/line-loop-tri-fan.html | 2 +- .../rendering/out-of-bounds-index-buffers.html | 156 + .../checkout/conformance/rendering/point-size.html | 4 +- .../conformance/rendering/polygon-offset.html | 2 +- .../conformance/state/gl-enable-enum-test.html | 6 +- .../checkout/conformance/state/gl-get-calls.html | 8 +- .../tex-2d-rgb-rgb-unsigned_byte.html | 57 + .../tex-2d-rgb-rgb-unsigned_short_5_6_5.html | 57 + .../tex-2d-rgba-rgba-unsigned_byte.html | 57 + .../tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html | 57 + .../tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html | 57 + .../conformance/textures/misc/mipmap-fbo.html | 8 +- .../textures/misc/tex-sub-image-2d-bad-args.html | 51 +- .../conformance/textures/misc/texture-size.html | 2 +- .../textures/misc/texture-upload-size.html | 1 + .../typedarrays/array-large-array-tests.html | 2 +- .../conformance/typedarrays/array-unit-tests.html | 20 +- .../conformance/typedarrays/data-view-test.html | 127 +- .../conformance/uniforms/gl-uniform-arrays.html | 4 +- .../out-of-bounds-uniform-array-access.html | 30 +- ...buffer-data-and-buffer-sub-data-sub-source.html | 204 + .../buffers/buffer-type-restrictions.html | 3 +- .../conformance2/buffers/get-buffer-sub-data.html | 176 + .../buffers/one-large-uniform-buffer.html | 152 + .../checkout/conformance2/context/methods-2.html | 3 + .../extensions/ext-color-buffer-float.html | 121 +- .../ext-disjoint-timer-query-webgl2.html | 335 ++ .../glsl3/array-element-increment.html | 152 + .../glsl3/bool-type-cast-bug-uint-ivec-uvec.html | 389 ++ .../compound-assignment-type-combination.html | 47 + .../checkout/conformance2/glsl3/frag-depth.html | 2 +- .../conformance2/glsl3/invalid-invariant.html | 109 + .../glsl3/no-attribute-vertex-shader.html | 84 + .../glsl3/shader-with-invalid-characters.html | 58 + .../shader-with-mis-matching-uniform-block.html | 80 + .../glsl3/texture-offset-out-of-range.html | 103 +- .../texture-offset-uniform-texture-coordinate.html | 191 + .../conformance2/glsl3/tricky-loop-conditions.html | 348 ++ .../unary-minus-operator-in-dynamic-loop.html | 269 ++ .../glsl3/uniform-block-layout-match.html | 78 + .../conformance2/glsl3/uniform-block-layouts.html | 84 + .../conformance2/glsl3/valid-invariant.html | 116 + .../vector-dynamic-indexing-nv-driver-bug.html | 88 + .../glsl3/vector-dynamic-indexing.html | 60 +- .../checkout/conformance2/misc/expando-loss-2.html | 145 +- .../getextension-while-pbo-bound-stability.html | 78 + .../misc/object-deletion-behaviour-2.html | 136 + .../conformance2/misc/uninitialized-test-2.html | 2 +- .../conformance2/misc/views-with-offsets.html | 341 ++ .../conformance2/query/occlusion-query.html | 4 +- .../reading/format-r11f-g11f-b10f.html | 287 ++ .../reading/read-pixels-from-fbo-test.html | 4 +- .../read-pixels-from-rgb8-into-pbo-bug.html | 106 + .../reading/read-pixels-pack-parameters.html | 140 +- .../renderbuffers/invalidate-framebuffer.html | 4 +- .../multisample-with-full-sample-counts.html | 119 + .../conformance2/rendering/attrib-type-match.html | 582 +++ .../blitframebuffer-filter-outofbounds.html | 199 + .../rendering/blitframebuffer-filter-srgb.html | 183 + .../blitframebuffer-multisampled-readbuffer.html | 134 + .../blitframebuffer-outside-readbuffer.html | 289 ++ .../rendering/blitframebuffer-scissor-enabled.html | 182 + .../rendering/blitframebuffer-size-overflow.html | 98 + ...litframebuffer-srgb-and-linear-drawbuffers.html | 229 ++ .../rendering/blitframebuffer-stencil-only.html | 192 + .../rendering/blitframebuffer-test.html | 342 ++ .../rendering/canvas-resizing-with-pbo-bound.html | 130 + .../rendering/clear-func-buffer-type-match.html | 166 + .../rendering/clear-srgb-color-buffer.html | 109 + .../rendering/clipping-wide-points.html | 47 + .../conformance2/rendering/draw-buffers.html | 11 +- .../conformance2/rendering/element-index-uint.html | 8 +- .../framebuffer-completeness-unaffected.html | 9 +- .../rendering/framebuffer-unsupported.html | 155 + .../fs-color-type-mismatch-color-buffer-type.html | 190 + .../rendering/instanced-rendering-bug.html | 275 ++ .../out-of-bounds-index-buffers-after-copying.html | 207 + .../rendering-sampling-feedback-loop.html | 148 + .../conformance2/rendering/rgb-format-support.html | 132 + .../rendering/uniform-block-buffer-size.html | 249 ++ .../conformance2/sync/sync-webgl-specific.html | 87 + .../tex-2d-r11f_g11f_b10f-rgb-float.html | 57 + .../tex-2d-r11f_g11f_b10f-rgb-half_float.html | 57 + ...g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html | 57 + .../tex-2d-r16f-red-float.html | 57 + .../tex-2d-r16f-red-half_float.html | 57 + .../tex-2d-r32f-red-float.html | 57 + .../tex-2d-r8-red-unsigned_byte.html | 57 + .../tex-2d-r8ui-red_integer-unsigned_byte.html | 57 + .../tex-2d-rg16f-rg-float.html | 57 + .../tex-2d-rg16f-rg-half_float.html | 57 + .../tex-2d-rg32f-rg-float.html | 57 + .../tex-2d-rg8-rg-unsigned_byte.html | 57 + .../tex-2d-rg8ui-rg_integer-unsigned_byte.html | 57 + .../tex-2d-rgb16f-rgb-float.html | 57 + .../tex-2d-rgb16f-rgb-half_float.html | 57 + .../tex-2d-rgb32f-rgb-float.html | 57 + .../tex-2d-rgb565-rgb-unsigned_byte.html | 57 + .../tex-2d-rgb565-rgb-unsigned_short_5_6_5.html | 57 + .../tex-2d-rgb5_a1-rgba-unsigned_byte.html | 57 + ...tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html | 57 + .../tex-2d-rgb8-rgb-unsigned_byte.html | 57 + .../tex-2d-rgb8ui-rgb_integer-unsigned_byte.html | 57 + .../tex-2d-rgb9_e5-rgb-float.html | 57 + .../tex-2d-rgb9_e5-rgb-half_float.html | 57 + .../tex-2d-rgba16f-rgba-float.html | 57 + .../tex-2d-rgba16f-rgba-half_float.html | 57 + .../tex-2d-rgba32f-rgba-float.html | 57 + .../tex-2d-rgba4-rgba-unsigned_byte.html | 57 + .../tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html | 57 + .../tex-2d-rgba8-rgba-unsigned_byte.html | 57 + .../tex-2d-rgba8ui-rgba_integer-unsigned_byte.html | 57 + .../tex-2d-srgb8-rgb-unsigned_byte.html | 57 + .../tex-2d-srgb8_alpha8-rgba-unsigned_byte.html | 57 + .../tex-3d-r11f_g11f_b10f-rgb-float.html | 57 + .../tex-3d-r11f_g11f_b10f-rgb-half_float.html | 57 + ...g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html | 57 + .../tex-3d-r16f-red-float.html | 57 + .../tex-3d-r16f-red-half_float.html | 57 + .../tex-3d-r32f-red-float.html | 57 + .../tex-3d-r8-red-unsigned_byte.html | 57 + .../tex-3d-r8ui-red_integer-unsigned_byte.html | 57 + .../tex-3d-rg16f-rg-float.html | 57 + .../tex-3d-rg16f-rg-half_float.html | 57 + .../tex-3d-rg32f-rg-float.html | 57 + .../tex-3d-rg8-rg-unsigned_byte.html | 57 + .../tex-3d-rg8ui-rg_integer-unsigned_byte.html | 57 + .../tex-3d-rgb16f-rgb-float.html | 57 + .../tex-3d-rgb16f-rgb-half_float.html | 57 + .../tex-3d-rgb32f-rgb-float.html | 57 + .../tex-3d-rgb565-rgb-unsigned_byte.html | 57 + .../tex-3d-rgb565-rgb-unsigned_short_5_6_5.html | 57 + .../tex-3d-rgb5_a1-rgba-unsigned_byte.html | 57 + ...tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html | 57 + .../tex-3d-rgb8-rgb-unsigned_byte.html | 57 + .../tex-3d-rgb8ui-rgb_integer-unsigned_byte.html | 57 + .../tex-3d-rgb9_e5-rgb-float.html | 57 + .../tex-3d-rgb9_e5-rgb-half_float.html | 57 + .../tex-3d-rgba16f-rgba-float.html | 57 + .../tex-3d-rgba16f-rgba-half_float.html | 57 + .../tex-3d-rgba32f-rgba-float.html | 57 + .../tex-3d-rgba4-rgba-unsigned_byte.html | 57 + .../tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html | 57 + .../tex-3d-rgba8-rgba-unsigned_byte.html | 57 + .../tex-3d-rgba8ui-rgba_integer-unsigned_byte.html | 57 + .../tex-3d-srgb8-rgb-unsigned_byte.html | 57 + .../tex-3d-srgb8_alpha8-rgba-unsigned_byte.html | 57 + .../textures/misc/active-3d-texture-bug.html | 145 + .../misc/copy-texture-image-luma-format.html | 187 + .../misc/copy-texture-image-webgl-specific.html | 324 ++ .../integer-cubemap-specification-order-bug.html | 190 + .../misc/integer-cubemap-texture-sampling.html | 190 + ...ub-image-with-array-buffer-view-sub-source.html | 218 ++ .../tex-image-with-bad-args-from-dom-elements.html | 149 + .../textures/misc/tex-image-with-bad-args.html | 76 + .../misc/tex-image-with-different-data-source.html | 72 + .../textures/misc/tex-mipmap-levels.html | 80 + .../textures/misc/tex-srgb-mipmap.html | 227 ++ .../misc/tex-storage-compressed-formats.html | 23 +- .../textures/misc/tex-unpack-params.html | 154 +- .../textures/misc/texel-fetch-undefined.html | 2 +- .../transform_feedback/transform_feedback.html | 147 +- .../two-unreferenced-varyings.html | 157 + .../unwritten-output-defaults-to-zero.html | 154 + .../vertex_arrays/vertex-array-object.html | 80 +- .../deqp/data/gles2/shaders/conditionals.html | 2 +- .../data/gles2/shaders/constant_expressions.html | 2 +- .../deqp/data/gles2/shaders/constants.html | 2 +- .../deqp/data/gles2/shaders/conversions.html | 2 +- .../deqp/data/gles2/shaders/declarations.html | 2 +- .../checkout/deqp/data/gles2/shaders/fragdata.html | 2 +- .../deqp/data/gles2/shaders/functions.html | 2 +- .../gles2/shaders/invalid_texture_functions.html | 2 +- .../checkout/deqp/data/gles2/shaders/keywords.html | 2 +- .../checkout/deqp/data/gles2/shaders/linkage.html | 2 +- .../deqp/data/gles2/shaders/preprocessor.html | 2 +- .../data/gles2/shaders/qualification_order.html | 2 +- .../data/gles2/shaders/reserved_operators.html | 2 +- .../checkout/deqp/data/gles2/shaders/scoping.html | 2 +- .../deqp/data/gles2/shaders/shader-lib-test.html | 884 ++--- .../checkout/deqp/data/gles2/shaders/swizzles.html | 2 +- .../checkout/deqp/data/gles2/shaders/template.html | 2 +- .../deqp/framework/common/tcuCompressedTexture.js | 1 - .../deqp/framework/common/tcuImageCompare.js | 22 +- .../checkout/deqp/framework/common/tcuRGBA.js | 13 + .../checkout/deqp/framework/common/tcuSkipList.js | 227 +- .../checkout/deqp/framework/common/tcuTexture.js | 5 +- .../deqp/framework/delibs/debase/deMath.js | 12 +- .../deqp/framework/opengl/gluShaderProgram.js | 8 +- .../checkout/deqp/framework/opengl/gluTexture.js | 2 - .../deqp/framework/opengl/gluTextureUtil.js | 31 + .../opengl/simplereference/sglrReferenceContext.js | 27 +- .../simplereference/sglrReferenceContextTest.js | 2 +- .../referencerenderer/rrFragmentOperations.js | 26 +- .../deqp/framework/referencerenderer/rrRenderer.js | 460 ++- .../deqp/framework/referencerenderer/rrUtil.js | 36 +- .../checkout/deqp/functional/gles3/es3fApiCase.js | 9 + .../functional/gles3/es3fFboColorbufferTests.js | 49 +- .../functional/gles3/es3fFboCompletenessTests.js | 1 - .../functional/gles3/es3fFboDepthbufferTests.js | 3 + .../functional/gles3/es3fFboInvalidateTests.js | 34 +- .../functional/gles3/es3fFboMultisampleTests.js | 27 +- .../deqp/functional/gles3/es3fFboRenderTest.js | 93 +- .../functional/gles3/es3fFboStencilbufferTests.js | 1 + .../deqp/functional/gles3/es3fFboTestCase.js | 20 +- .../deqp/functional/gles3/es3fFboTestUtil.js | 10 +- .../functional/gles3/es3fFragmentOutputTests.js | 64 +- .../functional/gles3/es3fFramebufferBlitTests.js | 62 +- .../gles3/es3fInstancedRenderingTests.js | 8 + .../functional/gles3/es3fIntegerStateQueryTests.js | 4092 ++++++++++---------- .../deqp/functional/gles3/es3fMultisampleTests.js | 56 +- .../functional/gles3/es3fNegativeBufferApiTests.js | 8 +- .../gles3/es3fNegativeFragmentApiTests.js | 27 +- .../functional/gles3/es3fNegativeShaderApiTests.js | 21 +- .../functional/gles3/es3fNegativeStateApiTests.js | 127 +- .../gles3/es3fNegativeTextureApiTests.js | 81 +- .../functional/gles3/es3fOcclusionQueryTests.js | 4 +- .../functional/gles3/es3fPixelBufferObjectTest.js | 16 +- .../functional/gles3/es3fPrimitiveRestartTests.js | 4 +- .../functional/gles3/es3fRasterizerDiscardTests.js | 14 +- .../functional/gles3/es3fShaderBuiltinVarTests.js | 2 +- .../gles3/es3fShaderCommonFunctionTests.js | 7 +- .../functional/gles3/es3fShaderDerivateTests.js | 41 +- .../gles3/es3fShaderTextureFunctionTests.js | 7 +- .../deqp/functional/gles3/es3fSyncTests.js | 7 +- .../functional/gles3/es3fTextureFilteringTests.js | 8 +- .../functional/gles3/es3fTextureFormatTests.js | 30 +- .../deqp/functional/gles3/es3fTextureWrapTests.js | 4 + .../functional/gles3/es3fTransformFeedbackTests.js | 6 +- .../deqp/functional/gles3/es3fUniformBlockTests.js | 5 +- .../functional/gles3/fbocolorbuffer/blend.html | 2 +- .../functional/gles3/fbocolorbuffer/tex2d_00.html | 32 + .../functional/gles3/fbocolorbuffer/tex2d_01.html | 32 + .../functional/gles3/fbocolorbuffer/tex2d_02.html | 32 + .../functional/gles3/fbocolorbuffer/tex2d_03.html | 32 + .../functional/gles3/fbocolorbuffer/tex2d_04.html | 32 + .../functional/gles3/fbocolorbuffer/tex2d_05.html | 32 + .../gles3/fbocolorbuffer/tex2darray_00.html | 32 + .../gles3/fbocolorbuffer/tex2darray_01.html | 32 + .../gles3/fbocolorbuffer/tex2darray_02.html | 32 + .../gles3/fbocolorbuffer/tex2darray_03.html | 32 + .../gles3/fbocolorbuffer/tex2darray_04.html | 32 + .../gles3/fbocolorbuffer/tex2darray_05.html | 32 + .../functional/gles3/fbocolorbuffer/tex3d_00.html | 32 + .../functional/gles3/fbocolorbuffer/tex3d_01.html | 32 + .../functional/gles3/fbocolorbuffer/tex3d_02.html | 32 + .../functional/gles3/fbocolorbuffer/tex3d_03.html | 32 + .../functional/gles3/fbocolorbuffer/tex3d_04.html | 32 + .../functional/gles3/fbocolorbuffer/tex3d_05.html | 32 + .../gles3/fbocolorbuffer/texcube_00.html | 32 + .../gles3/fbocolorbuffer/texcube_01.html | 32 + .../gles3/fbocolorbuffer/texcube_02.html | 32 + .../gles3/fbocolorbuffer/texcube_03.html | 32 + .../gles3/fbocolorbuffer/texcube_04.html | 32 + .../gles3/fbocolorbuffer/texcube_05.html | 32 + .../functional/gles3/fboinvalidate/default.html | 32 + .../functional/gles3/fboinvalidate/format_00.html | 32 + .../functional/gles3/fboinvalidate/format_01.html | 32 + .../functional/gles3/fboinvalidate/format_02.html | 32 + .../deqp/functional/gles3/fboinvalidate/sub.html | 32 + .../functional/gles3/fboinvalidate/target.html | 32 + .../deqp/functional/gles3/fboinvalidate/whole.html | 32 + .../functional/gles3/fbomultisample.2_samples.html | 24 + .../functional/gles3/fbomultisample.4_samples.html | 24 + .../functional/gles3/fbomultisample.8_samples.html | 24 + .../gles3/fborender/recreate_color_00.html | 31 + .../gles3/fborender/recreate_color_01.html | 31 + .../gles3/fborender/recreate_color_02.html | 31 + .../gles3/fborender/recreate_color_03.html | 31 + .../gles3/fborender/recreate_color_04.html | 31 + .../gles3/fborender/recreate_color_05.html | 31 + .../gles3/fborender/recreate_color_06.html | 31 + .../gles3/fborender/recreate_depth_stencil.html | 31 + .../deqp/functional/gles3/fborender/resize_00.html | 31 + .../deqp/functional/gles3/fborender/resize_01.html | 31 + .../deqp/functional/gles3/fborender/resize_02.html | 31 + .../deqp/functional/gles3/fborender/resize_03.html | 31 + .../gles3/fborender/shared_colorbuffer_00.html | 31 + .../gles3/fborender/shared_colorbuffer_01.html | 31 + .../gles3/fborender/shared_colorbuffer_02.html | 31 + .../gles3/fborender/shared_colorbuffer_clear.html | 31 + .../gles3/fborender/shared_depth_stencil.html | 31 + .../functional/gles3/fborender/stencil_clear.html | 31 + .../gles3/fragmentoutput/array.fixed.html | 31 + .../gles3/fragmentoutput/array.float.html | 31 + .../functional/gles3/fragmentoutput/array.int.html | 31 + .../gles3/fragmentoutput/array.uint.html | 31 + .../gles3/fragmentoutput/basic.fixed.html | 31 + .../gles3/fragmentoutput/basic.float.html | 31 + .../functional/gles3/fragmentoutput/basic.int.html | 31 + .../gles3/fragmentoutput/basic.uint.html | 31 + .../functional/gles3/fragmentoutput/random_00.html | 31 + .../functional/gles3/fragmentoutput/random_01.html | 31 + .../functional/gles3/fragmentoutput/random_02.html | 31 + .../gles3/framebufferblit/conversion_00.html | 31 + .../gles3/framebufferblit/conversion_01.html | 31 + .../gles3/framebufferblit/conversion_02.html | 31 + .../gles3/framebufferblit/conversion_03.html | 31 + .../gles3/framebufferblit/conversion_04.html | 31 + .../gles3/framebufferblit/conversion_05.html | 31 + .../gles3/framebufferblit/conversion_06.html | 31 + .../gles3/framebufferblit/conversion_07.html | 31 + .../gles3/framebufferblit/conversion_08.html | 31 + .../gles3/framebufferblit/conversion_09.html | 31 + .../gles3/framebufferblit/conversion_10.html | 31 + .../gles3/framebufferblit/conversion_11.html | 31 + .../gles3/framebufferblit/conversion_12.html | 31 + .../gles3/framebufferblit/conversion_13.html | 31 + .../gles3/framebufferblit/conversion_14.html | 31 + .../gles3/framebufferblit/conversion_15.html | 31 + .../gles3/framebufferblit/conversion_16.html | 31 + .../gles3/framebufferblit/conversion_17.html | 31 + .../gles3/framebufferblit/conversion_18.html | 31 + .../gles3/framebufferblit/conversion_19.html | 31 + .../gles3/framebufferblit/conversion_20.html | 31 + .../gles3/framebufferblit/conversion_21.html | 31 + .../gles3/framebufferblit/conversion_22.html | 31 + .../gles3/framebufferblit/conversion_23.html | 31 + .../gles3/framebufferblit/conversion_24.html | 31 + .../gles3/framebufferblit/conversion_25.html | 31 + .../gles3/framebufferblit/conversion_26.html | 31 + .../gles3/framebufferblit/conversion_27.html | 31 + .../gles3/framebufferblit/conversion_28.html | 31 + .../gles3/framebufferblit/conversion_29.html | 31 + .../gles3/framebufferblit/conversion_30.html | 31 + .../gles3/framebufferblit/conversion_31.html | 31 + .../gles3/framebufferblit/conversion_32.html | 31 + .../gles3/framebufferblit/conversion_33.html | 31 + .../gles3/framebufferblit/conversion_34.html | 31 + .../framebufferblit/default_framebuffer_00.html | 31 + .../framebufferblit/default_framebuffer_01.html | 31 + .../framebufferblit/default_framebuffer_02.html | 31 + .../framebufferblit/default_framebuffer_03.html | 31 + .../framebufferblit/default_framebuffer_04.html | 31 + .../framebufferblit/default_framebuffer_05.html | 31 + .../framebufferblit/default_framebuffer_06.html | 31 + .../gles3/framebufferblit/depth_stencil.html | 31 + .../functional/gles3/framebufferblit/rect_00.html | 31 + .../functional/gles3/framebufferblit/rect_01.html | 31 + .../functional/gles3/framebufferblit/rect_02.html | 31 + .../functional/gles3/framebufferblit/rect_03.html | 31 + .../functional/gles3/framebufferblit/rect_04.html | 31 + .../functional/gles3/framebufferblit/rect_05.html | 31 + .../functional/gles3/framebufferblit/rect_06.html | 31 + .../gles3/occlusionquery_conservative.html | 26 + .../functional/gles3/occlusionquery_strict.html | 26 + .../deqp/functional/gles3/pixelbufferobject.html | 2 +- .../deqp/functional/gles3/primitiverestart/00.html | 31 + .../deqp/functional/gles3/primitiverestart/01.html | 31 + .../deqp/functional/gles3/primitiverestart/02.html | 31 + .../deqp/functional/gles3/primitiverestart/03.html | 31 + .../deqp/functional/gles3/primitiverestart/04.html | 31 + .../deqp/functional/gles3/primitiverestart/05.html | 31 + .../deqp/functional/gles3/primitiverestart/06.html | 31 + .../deqp/functional/gles3/primitiverestart/07.html | 31 + .../checkout/deqp/functional/gles3/readpixel.html | 4 +- .../deqp/functional/gles3/shaderderivate_dfdx.html | 24 + .../deqp/functional/gles3/shaderderivate_dfdy.html | 24 + .../functional/gles3/shaderderivate_fwidth.html | 24 + .../gles3/shaderoperator/common_functions.html | 33 + .../deqp/modules/shared/glsBufferTestUtil.js | 4 +- .../modules/shared/glsBuiltinPrecisionTests.js | 44 +- .../deqp/modules/shared/glsFboCompletenessTests.js | 3 +- .../deqp/modules/shared/glsSamplerObjectTest.js | 4 + .../deqp/modules/shared/glsShaderExecUtil.js | 2 +- .../deqp/modules/shared/glsShaderLibrary.js | 3 - .../deqp/modules/shared/glsShaderRenderCase.js | 2 +- .../checkout/deqp/modules/shared/glsStateQuery.js | 36 +- .../deqp/modules/shared/glsTextureTestUtil.js | 9 +- .../deqp/modules/shared/glsVertexArrayTests.js | 2 +- .../checkout/deqp/temp_externs/w3c_css.js | 6 + dom/canvas/test/webgl-conf/checkout/deqp/webgl2.js | 60 - .../checkout/extra/big-fbos-example.html | 2 +- .../extra/lots-of-polys-shader-example.html | 22 +- .../webgl-conf/checkout/extra/out-of-vram.html | 2 +- .../checkout/extra/tex-image-with-video-test.js | 1 + .../js/glsl-constructor-tests-generator.js | 390 +- .../test/webgl-conf/checkout/js/glsl-generator.js | 18 +- .../test/webgl-conf/checkout/js/js-test-pre.js | 16 +- .../checkout/js/tests/clipping-wide-points.js | 109 + .../tests/compound-assignment-type-combination.js | 150 + .../checkout/js/tests/instanceof-test.js | 6 +- ...e-and-sub-image-2d-with-canvas-sub-rectangle.js | 329 ++ .../tex-image-and-sub-image-2d-with-canvas.js | 20 +- ...nd-sub-image-2d-with-image-bitmap-from-image.js | 1 + .../tex-image-and-sub-image-2d-with-image-data.js | 143 +- .../tests/tex-image-and-sub-image-2d-with-image.js | 111 +- .../tests/tex-image-and-sub-image-2d-with-video.js | 105 +- ...tex-image-and-sub-image-2d-with-webgl-canvas.js | 17 +- ...e-and-sub-image-3d-with-canvas-sub-rectangle.js | 304 ++ .../tex-image-and-sub-image-3d-with-canvas.js | 3 +- ...d-sub-image-3d-with-image-bitmap-from-canvas.js | 4 +- .../tex-image-and-sub-image-3d-with-image-data.js | 242 +- .../tests/tex-image-and-sub-image-3d-with-image.js | 248 +- .../tex-image-and-sub-image-3d-with-svg-image.js | 3 +- .../tests/tex-image-and-sub-image-3d-with-video.js | 89 +- ...tex-image-and-sub-image-3d-with-webgl-canvas.js | 5 +- .../js/tests/tex-image-and-sub-image-utils.js | 333 +- ...-image-and-sub-image-with-image-bitmap-utils.js | 236 +- .../webgl-conf/checkout/js/webgl-test-utils.js | 85 +- .../checkout/resources/glsl-generator.js | 18 +- .../checkout/webgl-conformance-tests.html | 13 +- 610 files changed, 37322 insertions(+), 13201 deletions(-) create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/buffers/buffer-uninitialized.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/context/context-no-alpha-fbo-with-alpha.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/extensions/webgl-compressed-texture-etc.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/extensions/webgl-compressed-texture-s3tc-srgb.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/extensions/webgl-draw-buffers-framebuffer-unsupported.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/glsl/bugs/bool-type-cast-bug-int-float.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/glsl/bugs/global-invariant-does-not-leak-across-shaders.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/glsl/bugs/invariant-does-not-leak-across-shaders.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/glsl/bugs/nested-sequence-operator.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/programs/program-infolog.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/rendering/clipping-wide-points.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/rendering/gl-viewport-test-2.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/rendering/out-of-bounds-index-buffers.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/textures/canvas_sub_rectangle/tex-2d-rgb-rgb-unsigned_byte.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/textures/canvas_sub_rectangle/tex-2d-rgb-rgb-unsigned_short_5_6_5.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/textures/canvas_sub_rectangle/tex-2d-rgba-rgba-unsigned_byte.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/textures/canvas_sub_rectangle/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/textures/canvas_sub_rectangle/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/buffers/buffer-data-and-buffer-sub-data-sub-source.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/buffers/get-buffer-sub-data.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/buffers/one-large-uniform-buffer.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/extensions/ext-disjoint-timer-query-webgl2.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/array-element-increment.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/bool-type-cast-bug-uint-ivec-uvec.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/compound-assignment-type-combination.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/invalid-invariant.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/no-attribute-vertex-shader.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/shader-with-invalid-characters.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/shader-with-mis-matching-uniform-block.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/texture-offset-uniform-texture-coordinate.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/tricky-loop-conditions.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/unary-minus-operator-in-dynamic-loop.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/uniform-block-layout-match.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/uniform-block-layouts.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/valid-invariant.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/vector-dynamic-indexing-nv-driver-bug.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/misc/getextension-while-pbo-bound-stability.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/misc/object-deletion-behaviour-2.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/misc/views-with-offsets.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/reading/format-r11f-g11f-b10f.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/reading/read-pixels-from-rgb8-into-pbo-bug.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/renderbuffers/multisample-with-full-sample-counts.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/rendering/attrib-type-match.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/rendering/blitframebuffer-filter-outofbounds.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/rendering/blitframebuffer-filter-srgb.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/rendering/blitframebuffer-multisampled-readbuffer.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/rendering/blitframebuffer-outside-readbuffer.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/rendering/blitframebuffer-scissor-enabled.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/rendering/blitframebuffer-size-overflow.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/rendering/blitframebuffer-srgb-and-linear-drawbuffers.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/rendering/blitframebuffer-stencil-only.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/rendering/blitframebuffer-test.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/rendering/canvas-resizing-with-pbo-bound.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/rendering/clear-func-buffer-type-match.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/rendering/clear-srgb-color-buffer.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/rendering/clipping-wide-points.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/rendering/framebuffer-unsupported.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/rendering/fs-color-type-mismatch-color-buffer-type.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/rendering/instanced-rendering-bug.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/rendering/out-of-bounds-index-buffers-after-copying.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/rendering/rendering-sampling-feedback-loop.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/rendering/rgb-format-support.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/rendering/uniform-block-buffer-size.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/sync/sync-webgl-specific.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-float.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-half_float.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-r16f-red-float.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-r16f-red-half_float.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-r32f-red-float.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-r8-red-unsigned_byte.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-r8ui-red_integer-unsigned_byte.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rg16f-rg-float.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rg16f-rg-half_float.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rg32f-rg-float.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rg8-rg-unsigned_byte.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rg8ui-rg_integer-unsigned_byte.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb16f-rgb-float.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb16f-rgb-half_float.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb32f-rgb-float.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb565-rgb-unsigned_byte.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb5_a1-rgba-unsigned_byte.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb8-rgb-unsigned_byte.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb9_e5-rgb-float.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb9_e5-rgb-half_float.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba16f-rgba-float.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba16f-rgba-half_float.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba32f-rgba-float.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba4-rgba-unsigned_byte.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba8-rgba-unsigned_byte.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-srgb8-rgb-unsigned_byte.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-float.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-half_float.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-r16f-red-float.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-r16f-red-half_float.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-r32f-red-float.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-r8-red-unsigned_byte.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-r8ui-red_integer-unsigned_byte.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rg16f-rg-float.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rg16f-rg-half_float.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rg32f-rg-float.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rg8-rg-unsigned_byte.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rg8ui-rg_integer-unsigned_byte.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb16f-rgb-float.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb16f-rgb-half_float.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb32f-rgb-float.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb565-rgb-unsigned_byte.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb5_a1-rgba-unsigned_byte.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb8-rgb-unsigned_byte.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb9_e5-rgb-float.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb9_e5-rgb-half_float.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba16f-rgba-float.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba16f-rgba-half_float.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba32f-rgba-float.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba4-rgba-unsigned_byte.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba8-rgba-unsigned_byte.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-srgb8-rgb-unsigned_byte.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/misc/active-3d-texture-bug.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/misc/copy-texture-image-luma-format.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/misc/copy-texture-image-webgl-specific.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/misc/integer-cubemap-specification-order-bug.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/misc/integer-cubemap-texture-sampling.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/misc/tex-image-and-sub-image-with-array-buffer-view-sub-source.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/misc/tex-image-with-bad-args-from-dom-elements.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/misc/tex-image-with-bad-args.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/misc/tex-image-with-different-data-source.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/textures/misc/tex-srgb-mipmap.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/transform_feedback/two-unreferenced-varyings.html create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance2/transform_feedback/unwritten-output-defaults-to-zero.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/tex2d_00.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/tex2d_01.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/tex2d_02.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/tex2d_03.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/tex2d_04.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/tex2d_05.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/tex2darray_00.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/tex2darray_01.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/tex2darray_02.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/tex2darray_03.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/tex2darray_04.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/tex2darray_05.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/tex3d_00.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/tex3d_01.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/tex3d_02.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/tex3d_03.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/tex3d_04.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/tex3d_05.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/texcube_00.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/texcube_01.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/texcube_02.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/texcube_03.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/texcube_04.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/texcube_05.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fboinvalidate/default.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fboinvalidate/format_00.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fboinvalidate/format_01.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fboinvalidate/format_02.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fboinvalidate/sub.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fboinvalidate/target.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fboinvalidate/whole.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbomultisample.2_samples.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbomultisample.4_samples.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbomultisample.8_samples.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fborender/recreate_color_00.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fborender/recreate_color_01.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fborender/recreate_color_02.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fborender/recreate_color_03.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fborender/recreate_color_04.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fborender/recreate_color_05.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fborender/recreate_color_06.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fborender/recreate_depth_stencil.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fborender/resize_00.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fborender/resize_01.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fborender/resize_02.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fborender/resize_03.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fborender/shared_colorbuffer_00.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fborender/shared_colorbuffer_01.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fborender/shared_colorbuffer_02.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fborender/shared_colorbuffer_clear.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fborender/shared_depth_stencil.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fborender/stencil_clear.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fragmentoutput/array.fixed.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fragmentoutput/array.float.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fragmentoutput/array.int.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fragmentoutput/array.uint.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fragmentoutput/basic.fixed.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fragmentoutput/basic.float.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fragmentoutput/basic.int.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fragmentoutput/basic.uint.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fragmentoutput/random_00.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fragmentoutput/random_01.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fragmentoutput/random_02.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_00.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_01.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_02.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_03.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_04.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_05.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_06.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_07.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_08.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_09.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_10.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_11.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_12.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_13.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_14.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_15.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_16.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_17.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_18.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_19.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_20.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_21.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_22.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_23.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_24.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_25.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_26.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_27.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_28.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_29.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_30.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_31.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_32.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_33.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_34.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/default_framebuffer_00.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/default_framebuffer_01.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/default_framebuffer_02.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/default_framebuffer_03.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/default_framebuffer_04.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/default_framebuffer_05.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/default_framebuffer_06.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/depth_stencil.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/rect_00.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/rect_01.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/rect_02.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/rect_03.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/rect_04.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/rect_05.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/rect_06.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/occlusionquery_conservative.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/occlusionquery_strict.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/primitiverestart/00.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/primitiverestart/01.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/primitiverestart/02.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/primitiverestart/03.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/primitiverestart/04.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/primitiverestart/05.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/primitiverestart/06.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/primitiverestart/07.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/shaderderivate_dfdx.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/shaderderivate_dfdy.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/shaderderivate_fwidth.html create mode 100644 dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/shaderoperator/common_functions.html create mode 100644 dom/canvas/test/webgl-conf/checkout/js/tests/clipping-wide-points.js create mode 100644 dom/canvas/test/webgl-conf/checkout/js/tests/compound-assignment-type-combination.js create mode 100644 dom/canvas/test/webgl-conf/checkout/js/tests/tex-image-and-sub-image-2d-with-canvas-sub-rectangle.js create mode 100644 dom/canvas/test/webgl-conf/checkout/js/tests/tex-image-and-sub-image-3d-with-canvas-sub-rectangle.js
dom/canvas/test/webgl-conf/checkout/conformance/attribs/gl-bindAttribLocation-aliasing.html
dom/canvas/test/webgl-conf/checkout/conformance/attribs/gl-vertexattribpointer.html
dom/canvas/test/webgl-conf/checkout/conformance/buffers/buffer-uninitialized.html
dom/canvas/test/webgl-conf/checkout/conformance/context/constants-and-properties.html
dom/canvas/test/webgl-conf/checkout/conformance/context/context-attributes-alpha-depth-stencil-antialias.html
dom/canvas/test/webgl-conf/checkout/conformance/context/context-no-alpha-fbo-with-alpha.html
dom/canvas/test/webgl-conf/checkout/conformance/context/methods.html
dom/canvas/test/webgl-conf/checkout/conformance/extensions/angle-instanced-arrays.html
dom/canvas/test/webgl-conf/checkout/conformance/extensions/ext-disjoint-timer-query.html
dom/canvas/test/webgl-conf/checkout/conformance/extensions/ext-frag-depth.html
dom/canvas/test/webgl-conf/checkout/conformance/extensions/ext-texture-filter-anisotropic.html
dom/canvas/test/webgl-conf/checkout/conformance/extensions/oes-element-index-uint.html
dom/canvas/test/webgl-conf/checkout/conformance/extensions/oes-vertex-array-object-bufferData.html
dom/canvas/test/webgl-conf/checkout/conformance/extensions/oes-vertex-array-object.html
dom/canvas/test/webgl-conf/checkout/conformance/extensions/webgl-compressed-texture-atc.html
dom/canvas/test/webgl-conf/checkout/conformance/extensions/webgl-compressed-texture-etc.html
dom/canvas/test/webgl-conf/checkout/conformance/extensions/webgl-compressed-texture-pvrtc.html
dom/canvas/test/webgl-conf/checkout/conformance/extensions/webgl-compressed-texture-s3tc-srgb.html
dom/canvas/test/webgl-conf/checkout/conformance/extensions/webgl-compressed-texture-s3tc.html
dom/canvas/test/webgl-conf/checkout/conformance/extensions/webgl-debug-shaders.html
dom/canvas/test/webgl-conf/checkout/conformance/extensions/webgl-depth-texture.html
dom/canvas/test/webgl-conf/checkout/conformance/extensions/webgl-draw-buffers-framebuffer-unsupported.html
dom/canvas/test/webgl-conf/checkout/conformance/extensions/webgl-draw-buffers.html
dom/canvas/test/webgl-conf/checkout/conformance/glsl/bugs/bool-type-cast-bug-int-float.html
dom/canvas/test/webgl-conf/checkout/conformance/glsl/bugs/compound-assignment-type-combination.html
dom/canvas/test/webgl-conf/checkout/conformance/glsl/bugs/conditional-discard-in-loop.html
dom/canvas/test/webgl-conf/checkout/conformance/glsl/bugs/global-invariant-does-not-leak-across-shaders.html
dom/canvas/test/webgl-conf/checkout/conformance/glsl/bugs/invariant-does-not-leak-across-shaders.html
dom/canvas/test/webgl-conf/checkout/conformance/glsl/bugs/loop-if-loop-gradient.html
dom/canvas/test/webgl-conf/checkout/conformance/glsl/bugs/nested-sequence-operator.html
dom/canvas/test/webgl-conf/checkout/conformance/glsl/bugs/qualcomm-crash.html
dom/canvas/test/webgl-conf/checkout/conformance/glsl/bugs/sampler-struct-function-arg.html
dom/canvas/test/webgl-conf/checkout/conformance/glsl/bugs/sequence-operator-evaluation-order.html
dom/canvas/test/webgl-conf/checkout/conformance/glsl/constructors/glsl-construct-bvec2.html
dom/canvas/test/webgl-conf/checkout/conformance/glsl/constructors/glsl-construct-bvec3.html
dom/canvas/test/webgl-conf/checkout/conformance/glsl/constructors/glsl-construct-bvec4.html
dom/canvas/test/webgl-conf/checkout/conformance/glsl/constructors/glsl-construct-ivec2.html
dom/canvas/test/webgl-conf/checkout/conformance/glsl/constructors/glsl-construct-ivec3.html
dom/canvas/test/webgl-conf/checkout/conformance/glsl/constructors/glsl-construct-ivec4.html
dom/canvas/test/webgl-conf/checkout/conformance/glsl/constructors/glsl-construct-mat2.html
dom/canvas/test/webgl-conf/checkout/conformance/glsl/constructors/glsl-construct-mat3.html
dom/canvas/test/webgl-conf/checkout/conformance/glsl/constructors/glsl-construct-mat4.html
dom/canvas/test/webgl-conf/checkout/conformance/glsl/constructors/glsl-construct-vec2.html
dom/canvas/test/webgl-conf/checkout/conformance/glsl/constructors/glsl-construct-vec3.html
dom/canvas/test/webgl-conf/checkout/conformance/glsl/constructors/glsl-construct-vec4.html
dom/canvas/test/webgl-conf/checkout/conformance/glsl/functions/glsl-function-distance.html
dom/canvas/test/webgl-conf/checkout/conformance/glsl/functions/glsl-function-dot.html
dom/canvas/test/webgl-conf/checkout/conformance/glsl/misc/shader-with-short-circuiting-operators.html
dom/canvas/test/webgl-conf/checkout/conformance/glsl/misc/shaders-with-invariance.html
dom/canvas/test/webgl-conf/checkout/conformance/glsl/misc/shaders-with-uniform-structs.html
dom/canvas/test/webgl-conf/checkout/conformance/glsl/misc/struct-specifiers-in-uniforms.html
dom/canvas/test/webgl-conf/checkout/conformance/glsl/samplers/glsl-function-texture2dprojlod.html
dom/canvas/test/webgl-conf/checkout/conformance/glsl/variables/gl-fragcoord-xy-values.html
dom/canvas/test/webgl-conf/checkout/conformance/glsl/variables/gl-frontfacing.html
dom/canvas/test/webgl-conf/checkout/conformance/misc/bad-arguments-test.html
dom/canvas/test/webgl-conf/checkout/conformance/misc/expando-loss.html
dom/canvas/test/webgl-conf/checkout/conformance/more/all_tests.html
dom/canvas/test/webgl-conf/checkout/conformance/more/all_tests_linkonly.html
dom/canvas/test/webgl-conf/checkout/conformance/more/all_tests_sequential.html
dom/canvas/test/webgl-conf/checkout/conformance/more/functions/texImage2D.html
dom/canvas/test/webgl-conf/checkout/conformance/more/index.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/abs/abs_001_to_006.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/acos/acos_001_to_006.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/all/all_001_to_004.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/any/any_001_to_004.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/array/array_001_to_006.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/asin/asin_001_to_006.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/atan/atan_001_to_008.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/atan/atan_009_to_012.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/biConstants/biConstants_001_to_008.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/biConstants/biConstants_009_to_016.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_001_to_008.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_009_to_016.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_017_to_024.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_025_to_032.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_033_to_040.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_041_to_048.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_049_to_056.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_057_to_064.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_065_to_072.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_073_to_080.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_081_to_088.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_089_to_096.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_097_to_104.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_105_to_112.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_113_to_120.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_121_to_128.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_129_to_136.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_137_to_144.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_145_to_152.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_153_to_160.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_161_to_168.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_169_to_176.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/build/build_177_to_178.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/built_in_varying_array_out_of_bounds/built_in_varying_array_out_of_bounds_001_to_001.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/ceil/ceil_001_to_006.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/clamp/clamp_001_to_006.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/control_flow/control_flow_001_to_008.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/control_flow/control_flow_009_to_010.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/cos/cos_001_to_006.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/cross/cross_001_to_002.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/default/default_001_to_001.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/degrees/degrees_001_to_006.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/discard/discard_001_to_002.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/distance/distance_001_to_006.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/dot/dot_001_to_006.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/equal/equal_001_to_008.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/equal/equal_009_to_012.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/exp/exp_001_to_008.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/exp/exp_009_to_012.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/exp2/exp2_001_to_008.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/exp2/exp2_009_to_012.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/faceforward/faceforward_001_to_006.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/floor/floor_001_to_006.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/fract/fract_001_to_006.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/functions/functions_001_to_008.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/functions/functions_009_to_016.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/functions/functions_017_to_024.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/functions/functions_025_to_032.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/functions/functions_033_to_040.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/functions/functions_041_to_048.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/functions/functions_049_to_056.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/functions/functions_057_to_064.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/functions/functions_065_to_072.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/functions/functions_073_to_080.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/functions/functions_081_to_088.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/functions/functions_089_to_096.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/functions/functions_097_to_104.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/functions/functions_105_to_112.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/functions/functions_113_to_120.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/functions/functions_121_to_126.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/gl_FragCoord/gl_FragCoord_001_to_003.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/gl_FrontFacing/gl_FrontFacing_001_to_001.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/greaterThan/greaterThan_001_to_008.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/greaterThanEqual/greaterThanEqual_001_to_008.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/inversesqrt/inversesqrt_001_to_006.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/length/length_001_to_006.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_001_to_008.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThanEqual/lessThanEqual_001_to_008.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_001_to_008.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log/log_009_to_012.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log2/log2_001_to_008.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/log2/log2_009_to_012.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/mat/mat_001_to_008.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/mat/mat_009_to_016.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/mat/mat_017_to_024.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/mat/mat_025_to_032.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/mat/mat_033_to_040.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/mat/mat_041_to_046.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/mat3/mat3_001_to_006.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/matrixCompMult/matrixCompMult_001_to_004.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/max/max_001_to_006.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/min/min_001_to_006.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/mix/mix_001_to_006.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/mod/mod_001_to_008.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/normalize/normalize_001_to_006.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/not/not_001_to_004.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/notEqual/notEqual_001_to_008.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/notEqual/notEqual_009_to_012.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/operators/operators_001_to_008.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/operators/operators_009_to_016.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/operators/operators_017_to_024.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/operators/operators_025_to_026.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/pow/pow_001_to_008.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/pow/pow_009_to_016.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/pow/pow_017_to_024.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/radians/radians_001_to_006.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/reflect/reflect_001_to_006.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/refract/refract_001_to_006.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/sign/sign_001_to_006.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/sin/sin_001_to_006.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/smoothstep/smoothstep_001_to_006.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/sqrt/sqrt_001_to_006.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/step/step_001_to_006.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/struct/struct_001_to_008.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/struct/struct_009_to_016.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/struct/struct_017_to_024.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/struct/struct_025_to_032.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/struct/struct_033_to_040.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/struct/struct_041_to_048.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/struct/struct_049_to_056.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/swizzlers/swizzlers_001_to_008.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/swizzlers/swizzlers_009_to_016.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/swizzlers/swizzlers_017_to_024.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/swizzlers/swizzlers_025_to_032.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/swizzlers/swizzlers_033_to_040.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/swizzlers/swizzlers_041_to_048.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/swizzlers/swizzlers_049_to_056.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/swizzlers/swizzlers_057_to_064.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/swizzlers/swizzlers_065_to_072.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/swizzlers/swizzlers_073_to_080.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/swizzlers/swizzlers_081_to_088.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/swizzlers/swizzlers_089_to_096.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/swizzlers/swizzlers_097_to_104.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/swizzlers/swizzlers_105_to_112.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/swizzlers/swizzlers_113_to_120.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/tan/tan_001_to_006.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/vec/vec_001_to_008.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/vec/vec_009_to_016.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/vec/vec_017_to_018.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/vec3/vec3_001_to_008.html
dom/canvas/test/webgl-conf/checkout/conformance/ogles/ogles-utils.js
dom/canvas/test/webgl-conf/checkout/conformance/programs/program-infolog.html
dom/canvas/test/webgl-conf/checkout/conformance/renderbuffers/feedback-loop.html
dom/canvas/test/webgl-conf/checkout/conformance/renderbuffers/framebuffer-object-attachment.html
dom/canvas/test/webgl-conf/checkout/conformance/rendering/clipping-wide-points.html
dom/canvas/test/webgl-conf/checkout/conformance/rendering/default-texture-draw-bug.html
dom/canvas/test/webgl-conf/checkout/conformance/rendering/gl-viewport-test-2.html
dom/canvas/test/webgl-conf/checkout/conformance/rendering/line-loop-tri-fan.html
dom/canvas/test/webgl-conf/checkout/conformance/rendering/out-of-bounds-index-buffers.html
dom/canvas/test/webgl-conf/checkout/conformance/rendering/point-size.html
dom/canvas/test/webgl-conf/checkout/conformance/rendering/polygon-offset.html
dom/canvas/test/webgl-conf/checkout/conformance/state/gl-enable-enum-test.html
dom/canvas/test/webgl-conf/checkout/conformance/state/gl-get-calls.html
dom/canvas/test/webgl-conf/checkout/conformance/textures/canvas_sub_rectangle/tex-2d-rgb-rgb-unsigned_byte.html
dom/canvas/test/webgl-conf/checkout/conformance/textures/canvas_sub_rectangle/tex-2d-rgb-rgb-unsigned_short_5_6_5.html
dom/canvas/test/webgl-conf/checkout/conformance/textures/canvas_sub_rectangle/tex-2d-rgba-rgba-unsigned_byte.html
dom/canvas/test/webgl-conf/checkout/conformance/textures/canvas_sub_rectangle/tex-2d-rgba-rgba-unsigned_short_4_4_4_4.html
dom/canvas/test/webgl-conf/checkout/conformance/textures/canvas_sub_rectangle/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html
dom/canvas/test/webgl-conf/checkout/conformance/textures/misc/mipmap-fbo.html
dom/canvas/test/webgl-conf/checkout/conformance/textures/misc/tex-sub-image-2d-bad-args.html
dom/canvas/test/webgl-conf/checkout/conformance/textures/misc/texture-size.html
dom/canvas/test/webgl-conf/checkout/conformance/textures/misc/texture-upload-size.html
dom/canvas/test/webgl-conf/checkout/conformance/typedarrays/array-large-array-tests.html
dom/canvas/test/webgl-conf/checkout/conformance/typedarrays/array-unit-tests.html
dom/canvas/test/webgl-conf/checkout/conformance/typedarrays/data-view-test.html
dom/canvas/test/webgl-conf/checkout/conformance/uniforms/gl-uniform-arrays.html
dom/canvas/test/webgl-conf/checkout/conformance/uniforms/out-of-bounds-uniform-array-access.html
dom/canvas/test/webgl-conf/checkout/conformance2/buffers/buffer-data-and-buffer-sub-data-sub-source.html
dom/canvas/test/webgl-conf/checkout/conformance2/buffers/buffer-type-restrictions.html
dom/canvas/test/webgl-conf/checkout/conformance2/buffers/get-buffer-sub-data.html
dom/canvas/test/webgl-conf/checkout/conformance2/buffers/one-large-uniform-buffer.html
dom/canvas/test/webgl-conf/checkout/conformance2/context/methods-2.html
dom/canvas/test/webgl-conf/checkout/conformance2/extensions/ext-color-buffer-float.html
dom/canvas/test/webgl-conf/checkout/conformance2/extensions/ext-disjoint-timer-query-webgl2.html
dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/array-element-increment.html
dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/bool-type-cast-bug-uint-ivec-uvec.html
dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/compound-assignment-type-combination.html
dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/frag-depth.html
dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/invalid-invariant.html
dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/no-attribute-vertex-shader.html
dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/shader-with-invalid-characters.html
dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/shader-with-mis-matching-uniform-block.html
dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/texture-offset-out-of-range.html
dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/texture-offset-uniform-texture-coordinate.html
dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/tricky-loop-conditions.html
dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/unary-minus-operator-in-dynamic-loop.html
dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/uniform-block-layout-match.html
dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/uniform-block-layouts.html
dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/valid-invariant.html
dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/vector-dynamic-indexing-nv-driver-bug.html
dom/canvas/test/webgl-conf/checkout/conformance2/glsl3/vector-dynamic-indexing.html
dom/canvas/test/webgl-conf/checkout/conformance2/misc/expando-loss-2.html
dom/canvas/test/webgl-conf/checkout/conformance2/misc/getextension-while-pbo-bound-stability.html
dom/canvas/test/webgl-conf/checkout/conformance2/misc/object-deletion-behaviour-2.html
dom/canvas/test/webgl-conf/checkout/conformance2/misc/uninitialized-test-2.html
dom/canvas/test/webgl-conf/checkout/conformance2/misc/views-with-offsets.html
dom/canvas/test/webgl-conf/checkout/conformance2/query/occlusion-query.html
dom/canvas/test/webgl-conf/checkout/conformance2/reading/format-r11f-g11f-b10f.html
dom/canvas/test/webgl-conf/checkout/conformance2/reading/read-pixels-from-fbo-test.html
dom/canvas/test/webgl-conf/checkout/conformance2/reading/read-pixels-from-rgb8-into-pbo-bug.html
dom/canvas/test/webgl-conf/checkout/conformance2/reading/read-pixels-pack-parameters.html
dom/canvas/test/webgl-conf/checkout/conformance2/renderbuffers/invalidate-framebuffer.html
dom/canvas/test/webgl-conf/checkout/conformance2/renderbuffers/multisample-with-full-sample-counts.html
dom/canvas/test/webgl-conf/checkout/conformance2/rendering/attrib-type-match.html
dom/canvas/test/webgl-conf/checkout/conformance2/rendering/blitframebuffer-filter-outofbounds.html
dom/canvas/test/webgl-conf/checkout/conformance2/rendering/blitframebuffer-filter-srgb.html
dom/canvas/test/webgl-conf/checkout/conformance2/rendering/blitframebuffer-multisampled-readbuffer.html
dom/canvas/test/webgl-conf/checkout/conformance2/rendering/blitframebuffer-outside-readbuffer.html
dom/canvas/test/webgl-conf/checkout/conformance2/rendering/blitframebuffer-scissor-enabled.html
dom/canvas/test/webgl-conf/checkout/conformance2/rendering/blitframebuffer-size-overflow.html
dom/canvas/test/webgl-conf/checkout/conformance2/rendering/blitframebuffer-srgb-and-linear-drawbuffers.html
dom/canvas/test/webgl-conf/checkout/conformance2/rendering/blitframebuffer-stencil-only.html
dom/canvas/test/webgl-conf/checkout/conformance2/rendering/blitframebuffer-test.html
dom/canvas/test/webgl-conf/checkout/conformance2/rendering/canvas-resizing-with-pbo-bound.html
dom/canvas/test/webgl-conf/checkout/conformance2/rendering/clear-func-buffer-type-match.html
dom/canvas/test/webgl-conf/checkout/conformance2/rendering/clear-srgb-color-buffer.html
dom/canvas/test/webgl-conf/checkout/conformance2/rendering/clipping-wide-points.html
dom/canvas/test/webgl-conf/checkout/conformance2/rendering/draw-buffers.html
dom/canvas/test/webgl-conf/checkout/conformance2/rendering/element-index-uint.html
dom/canvas/test/webgl-conf/checkout/conformance2/rendering/framebuffer-completeness-unaffected.html
dom/canvas/test/webgl-conf/checkout/conformance2/rendering/framebuffer-unsupported.html
dom/canvas/test/webgl-conf/checkout/conformance2/rendering/fs-color-type-mismatch-color-buffer-type.html
dom/canvas/test/webgl-conf/checkout/conformance2/rendering/instanced-rendering-bug.html
dom/canvas/test/webgl-conf/checkout/conformance2/rendering/out-of-bounds-index-buffers-after-copying.html
dom/canvas/test/webgl-conf/checkout/conformance2/rendering/rendering-sampling-feedback-loop.html
dom/canvas/test/webgl-conf/checkout/conformance2/rendering/rgb-format-support.html
dom/canvas/test/webgl-conf/checkout/conformance2/rendering/uniform-block-buffer-size.html
dom/canvas/test/webgl-conf/checkout/conformance2/sync/sync-webgl-specific.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-float.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-half_float.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-r16f-red-float.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-r16f-red-half_float.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-r32f-red-float.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-r8-red-unsigned_byte.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-r8ui-red_integer-unsigned_byte.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rg16f-rg-float.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rg16f-rg-half_float.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rg32f-rg-float.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rg8-rg-unsigned_byte.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rg8ui-rg_integer-unsigned_byte.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb16f-rgb-float.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb16f-rgb-half_float.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb32f-rgb-float.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb565-rgb-unsigned_byte.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb565-rgb-unsigned_short_5_6_5.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb5_a1-rgba-unsigned_byte.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb8-rgb-unsigned_byte.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb9_e5-rgb-float.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb9_e5-rgb-half_float.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba16f-rgba-float.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba16f-rgba-half_float.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba32f-rgba-float.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba4-rgba-unsigned_byte.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba8-rgba-unsigned_byte.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba8ui-rgba_integer-unsigned_byte.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-srgb8-rgb-unsigned_byte.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-float.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-half_float.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-r16f-red-float.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-r16f-red-half_float.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-r32f-red-float.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-r8-red-unsigned_byte.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-r8ui-red_integer-unsigned_byte.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rg16f-rg-float.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rg16f-rg-half_float.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rg32f-rg-float.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rg8-rg-unsigned_byte.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rg8ui-rg_integer-unsigned_byte.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb16f-rgb-float.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb16f-rgb-half_float.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb32f-rgb-float.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb565-rgb-unsigned_byte.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb565-rgb-unsigned_short_5_6_5.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb5_a1-rgba-unsigned_byte.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb8-rgb-unsigned_byte.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb8ui-rgb_integer-unsigned_byte.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb9_e5-rgb-float.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb9_e5-rgb-half_float.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba16f-rgba-float.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba16f-rgba-half_float.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba32f-rgba-float.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba4-rgba-unsigned_byte.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba8-rgba-unsigned_byte.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba8ui-rgba_integer-unsigned_byte.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-srgb8-rgb-unsigned_byte.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/canvas_sub_rectangle/tex-3d-srgb8_alpha8-rgba-unsigned_byte.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/misc/active-3d-texture-bug.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/misc/copy-texture-image-luma-format.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/misc/copy-texture-image-webgl-specific.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/misc/integer-cubemap-specification-order-bug.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/misc/integer-cubemap-texture-sampling.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/misc/tex-image-and-sub-image-with-array-buffer-view-sub-source.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/misc/tex-image-with-bad-args-from-dom-elements.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/misc/tex-image-with-bad-args.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/misc/tex-image-with-different-data-source.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/misc/tex-mipmap-levels.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/misc/tex-srgb-mipmap.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/misc/tex-storage-compressed-formats.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/misc/tex-unpack-params.html
dom/canvas/test/webgl-conf/checkout/conformance2/textures/misc/texel-fetch-undefined.html
dom/canvas/test/webgl-conf/checkout/conformance2/transform_feedback/transform_feedback.html
dom/canvas/test/webgl-conf/checkout/conformance2/transform_feedback/two-unreferenced-varyings.html
dom/canvas/test/webgl-conf/checkout/conformance2/transform_feedback/unwritten-output-defaults-to-zero.html
dom/canvas/test/webgl-conf/checkout/conformance2/vertex_arrays/vertex-array-object.html
dom/canvas/test/webgl-conf/checkout/deqp/data/gles2/shaders/conditionals.html
dom/canvas/test/webgl-conf/checkout/deqp/data/gles2/shaders/constant_expressions.html
dom/canvas/test/webgl-conf/checkout/deqp/data/gles2/shaders/constants.html
dom/canvas/test/webgl-conf/checkout/deqp/data/gles2/shaders/conversions.html
dom/canvas/test/webgl-conf/checkout/deqp/data/gles2/shaders/declarations.html
dom/canvas/test/webgl-conf/checkout/deqp/data/gles2/shaders/fragdata.html
dom/canvas/test/webgl-conf/checkout/deqp/data/gles2/shaders/functions.html
dom/canvas/test/webgl-conf/checkout/deqp/data/gles2/shaders/invalid_texture_functions.html
dom/canvas/test/webgl-conf/checkout/deqp/data/gles2/shaders/keywords.html
dom/canvas/test/webgl-conf/checkout/deqp/data/gles2/shaders/linkage.html
dom/canvas/test/webgl-conf/checkout/deqp/data/gles2/shaders/preprocessor.html
dom/canvas/test/webgl-conf/checkout/deqp/data/gles2/shaders/qualification_order.html
dom/canvas/test/webgl-conf/checkout/deqp/data/gles2/shaders/reserved_operators.html
dom/canvas/test/webgl-conf/checkout/deqp/data/gles2/shaders/scoping.html
dom/canvas/test/webgl-conf/checkout/deqp/data/gles2/shaders/shader-lib-test.html
dom/canvas/test/webgl-conf/checkout/deqp/data/gles2/shaders/swizzles.html
dom/canvas/test/webgl-conf/checkout/deqp/data/gles2/shaders/template.html
dom/canvas/test/webgl-conf/checkout/deqp/framework/common/tcuCompressedTexture.js
dom/canvas/test/webgl-conf/checkout/deqp/framework/common/tcuImageCompare.js
dom/canvas/test/webgl-conf/checkout/deqp/framework/common/tcuRGBA.js
dom/canvas/test/webgl-conf/checkout/deqp/framework/common/tcuSkipList.js
dom/canvas/test/webgl-conf/checkout/deqp/framework/common/tcuTexture.js
dom/canvas/test/webgl-conf/checkout/deqp/framework/delibs/debase/deMath.js
dom/canvas/test/webgl-conf/checkout/deqp/framework/opengl/gluShaderProgram.js
dom/canvas/test/webgl-conf/checkout/deqp/framework/opengl/gluTexture.js
dom/canvas/test/webgl-conf/checkout/deqp/framework/opengl/gluTextureUtil.js
dom/canvas/test/webgl-conf/checkout/deqp/framework/opengl/simplereference/sglrReferenceContext.js
dom/canvas/test/webgl-conf/checkout/deqp/framework/opengl/simplereference/sglrReferenceContextTest.js
dom/canvas/test/webgl-conf/checkout/deqp/framework/referencerenderer/rrFragmentOperations.js
dom/canvas/test/webgl-conf/checkout/deqp/framework/referencerenderer/rrRenderer.js
dom/canvas/test/webgl-conf/checkout/deqp/framework/referencerenderer/rrUtil.js
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fApiCase.js
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fFboColorbufferTests.js
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fFboCompletenessTests.js
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fFboDepthbufferTests.js
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fFboInvalidateTests.js
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fFboMultisampleTests.js
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fFboRenderTest.js
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fFboStencilbufferTests.js
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fFboTestCase.js
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fFboTestUtil.js
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fFragmentOutputTests.js
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fFramebufferBlitTests.js
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fInstancedRenderingTests.js
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fIntegerStateQueryTests.js
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fMultisampleTests.js
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fNegativeBufferApiTests.js
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fNegativeFragmentApiTests.js
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fNegativeShaderApiTests.js
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fNegativeStateApiTests.js
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fNegativeTextureApiTests.js
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fOcclusionQueryTests.js
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fPixelBufferObjectTest.js
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fPrimitiveRestartTests.js
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fRasterizerDiscardTests.js
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fShaderBuiltinVarTests.js
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fShaderCommonFunctionTests.js
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fShaderDerivateTests.js
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fShaderTextureFunctionTests.js
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fSyncTests.js
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fTextureFilteringTests.js
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fTextureFormatTests.js
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fTextureWrapTests.js
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fTransformFeedbackTests.js
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fUniformBlockTests.js
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/blend.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/tex2d_00.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/tex2d_01.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/tex2d_02.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/tex2d_03.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/tex2d_04.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/tex2d_05.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/tex2darray_00.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/tex2darray_01.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/tex2darray_02.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/tex2darray_03.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/tex2darray_04.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/tex2darray_05.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/tex3d_00.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/tex3d_01.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/tex3d_02.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/tex3d_03.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/tex3d_04.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/tex3d_05.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/texcube_00.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/texcube_01.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/texcube_02.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/texcube_03.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/texcube_04.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbocolorbuffer/texcube_05.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fboinvalidate/default.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fboinvalidate/format_00.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fboinvalidate/format_01.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fboinvalidate/format_02.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fboinvalidate/sub.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fboinvalidate/target.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fboinvalidate/whole.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbomultisample.2_samples.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbomultisample.4_samples.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fbomultisample.8_samples.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fborender/recreate_color_00.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fborender/recreate_color_01.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fborender/recreate_color_02.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fborender/recreate_color_03.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fborender/recreate_color_04.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fborender/recreate_color_05.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fborender/recreate_color_06.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fborender/recreate_depth_stencil.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fborender/resize_00.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fborender/resize_01.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fborender/resize_02.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fborender/resize_03.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fborender/shared_colorbuffer_00.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fborender/shared_colorbuffer_01.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fborender/shared_colorbuffer_02.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fborender/shared_colorbuffer_clear.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fborender/shared_depth_stencil.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fborender/stencil_clear.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fragmentoutput/array.fixed.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fragmentoutput/array.float.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fragmentoutput/array.int.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fragmentoutput/array.uint.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fragmentoutput/basic.fixed.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fragmentoutput/basic.float.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fragmentoutput/basic.int.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fragmentoutput/basic.uint.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fragmentoutput/random_00.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fragmentoutput/random_01.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/fragmentoutput/random_02.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_00.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_01.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_02.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_03.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_04.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_05.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_06.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_07.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_08.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_09.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_10.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_11.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_12.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_13.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_14.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_15.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_16.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_17.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_18.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_19.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_20.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_21.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_22.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_23.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_24.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_25.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_26.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_27.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_28.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_29.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_30.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_31.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_32.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_33.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/conversion_34.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/default_framebuffer_00.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/default_framebuffer_01.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/default_framebuffer_02.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/default_framebuffer_03.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/default_framebuffer_04.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/default_framebuffer_05.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/default_framebuffer_06.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/depth_stencil.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/rect_00.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/rect_01.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/rect_02.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/rect_03.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/rect_04.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/rect_05.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/framebufferblit/rect_06.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/occlusionquery_conservative.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/occlusionquery_strict.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/pixelbufferobject.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/primitiverestart/00.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/primitiverestart/01.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/primitiverestart/02.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/primitiverestart/03.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/primitiverestart/04.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/primitiverestart/05.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/primitiverestart/06.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/primitiverestart/07.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/readpixel.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/shaderderivate_dfdx.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/shaderderivate_dfdy.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/shaderderivate_fwidth.html
dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/shaderoperator/common_functions.html
dom/canvas/test/webgl-conf/checkout/deqp/modules/shared/glsBufferTestUtil.js
dom/canvas/test/webgl-conf/checkout/deqp/modules/shared/glsBuiltinPrecisionTests.js
dom/canvas/test/webgl-conf/checkout/deqp/modules/shared/glsFboCompletenessTests.js
dom/canvas/test/webgl-conf/checkout/deqp/modules/shared/glsSamplerObjectTest.js
dom/canvas/test/webgl-conf/checkout/deqp/modules/shared/glsShaderExecUtil.js
dom/canvas/test/webgl-conf/checkout/deqp/modules/shared/glsShaderLibrary.js
dom/canvas/test/webgl-conf/checkout/deqp/modules/shared/glsShaderRenderCase.js
dom/canvas/test/webgl-conf/checkout/deqp/modules/shared/glsStateQuery.js
dom/canvas/test/webgl-conf/checkout/deqp/modules/shared/glsTextureTestUtil.js
dom/canvas/test/webgl-conf/checkout/deqp/modules/shared/glsVertexArrayTests.js
dom/canvas/test/webgl-conf/checkout/deqp/temp_externs/w3c_css.js
dom/canvas/test/webgl-conf/checkout/deqp/webgl2.js
dom/canvas/test/webgl-conf/checkout/extra/big-fbos-example.html
dom/canvas/test/webgl-conf/checkout/extra/lots-of-polys-shader-example.html
dom/canvas/test/webgl-conf/checkout/extra/out-of-vram.html
dom/canvas/test/webgl-conf/checkout/extra/tex-image-with-video-test.js
dom/canvas/test/webgl-conf/checkout/js/glsl-constructor-tests-generator.js
dom/canvas/test/webgl-conf/checkout/js/glsl-generator.js
dom/canvas/test/webgl-conf/checkout/js/js-test-pre.js
dom/canvas/test/webgl-conf/checkout/js/tests/clipping-wide-points.js
dom/canvas/test/webgl-conf/checkout/js/tests/compound-assignment-type-combination.js
dom/canvas/test/webgl-conf/checkout/js/tests/instanceof-test.js
dom/canvas/test/webgl-conf/checkout/js/tests/tex-image-and-sub-image-2d-with-canvas-sub-rectangle.js
dom/canvas/test/webgl-conf/checkout/js/tests/tex-image-and-sub-image-2d-with-canvas.js
dom/canvas/test/webgl-conf/checkout/js/tests/tex-image-and-sub-image-2d-with-image-bitmap-from-image.js
dom/canvas/test/webgl-conf/checkout/js/tests/tex-image-and-sub-image-2d-with-image-data.js
dom/canvas/test/webgl-conf/checkout/js/tests/tex-image-and-sub-image-2d-with-image.js
dom/canvas/test/webgl-conf/checkout/js/tests/tex-image-and-sub-image-2d-with-video.js
dom/canvas/test/webgl-conf/checkout/js/tests/tex-image-and-sub-image-2d-with-webgl-canvas.js
dom/canvas/test/webgl-conf/checkout/js/tests/tex-image-and-sub-image-3d-with-canvas-sub-rectangle.js
dom/canvas/test/webgl-conf/checkout/js/tests/tex-image-and-sub-image-3d-with-canvas.js
dom/canvas/test/webgl-conf/checkout/js/tests/tex-image-and-sub-image-3d-with-image-bitmap-from-canvas.js
dom/canvas/test/webgl-conf/checkout/js/tests/tex-image-and-sub-image-3d-with-image-data.js
dom/canvas/test/webgl-conf/checkout/js/tests/tex-image-and-sub-image-3d-with-image.js
dom/canvas/test/webgl-conf/checkout/js/tests/tex-image-and-sub-image-3d-with-svg-image.js
dom/canvas/test/webgl-conf/checkout/js/tests/tex-image-and-sub-image-3d-with-video.js
dom/canvas/test/webgl-conf/checkout/js/tests/tex-image-and-sub-image-3d-with-webgl-canvas.js
dom/canvas/test/webgl-conf/checkout/js/tests/tex-image-and-sub-image-utils.js
dom/canvas/test/webgl-conf/checkout/js/tests/tex-image-and-sub-image-with-image-bitmap-utils.js
dom/canvas/test/webgl-conf/checkout/js/webgl-test-utils.js
dom/canvas/test/webgl-conf/checkout/resources/glsl-generator.js
dom/canvas/test/webgl-conf/checkout/webgl-conformance-tests.html
--- a/dom/canvas/test/webgl-conf/checkout/conformance/attribs/gl-bindAttribLocation-aliasing.html
+++ b/dom/canvas/test/webgl-conf/checkout/conformance/attribs/gl-bindAttribLocation-aliasing.html
@@ -65,17 +65,17 @@ typeInfo.forEach(function(typeInfo1) {
             type_1: typeInfo1.type,
             type_2: typeInfo2.type,
             gl_Position_1: wtu.replaceParams(typeInfo1.asVec4, {var: 'a_1'}),
             gl_Position_2: wtu.replaceParams(typeInfo2.asVec4, {var: 'a_2'})
         };
         var strVertexShader = wtu.replaceParams(wtu.getScript('vertexShader'), replaceParams);
         var glVertexShader = wtu.loadShader(gl, strVertexShader, gl.VERTEX_SHADER);
         assertMsg(glVertexShader != null, "Vertex shader compiled successfully.");
-        // Bind both a_1 and a_2 to the same position and verify the link fails.  
+        // Bind both a_1 and a_2 to the same position and verify the link fails.
         // Do so for all valid positions available.
         for (var l = 0; l < maxAttributes; l++) {
             var glProgram = gl.createProgram();
             gl.bindAttribLocation(glProgram, l, 'a_1');
             gl.bindAttribLocation(glProgram, l, 'a_2');
             gl.attachShader(glProgram, glVertexShader);
             gl.attachShader(glProgram, glFragmentShader);
             gl.linkProgram(glProgram);
--- a/dom/canvas/test/webgl-conf/checkout/conformance/attribs/gl-vertexattribpointer.html
+++ b/dom/canvas/test/webgl-conf/checkout/conformance/attribs/gl-vertexattribpointer.html
@@ -61,44 +61,47 @@ if (!gl) {
 
   gl.vertexAttribPointer(0, 3, gl.FLOAT, 0, 0, 12);
   wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION,
       "vertexAttribPointer should fail if no buffer is bound");
 
   var vertexObject = gl.createBuffer();
   gl.bindBuffer(gl.ARRAY_BUFFER, vertexObject);
   gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(0), gl.STATIC_DRAW);
-  
+
   if (wtu.getDefault3DContextVersion() < 2) {
     gl.vertexAttribPointer(0, 1, gl.INT, 0, 0, 0);
     wtu.glErrorShouldBe(gl, gl.INVALID_ENUM,
-	    "vertexAttribPointer should not support INT");
+            "vertexAttribPointer should not support INT");
     gl.vertexAttribPointer(0, 1, gl.UNSIGNED_INT, 0, 0, 0);
     wtu.glErrorShouldBe(gl, gl.INVALID_ENUM,
-	    "vertexAttribPointer should not support UNSIGNED_INT");
+            "vertexAttribPointer should not support UNSIGNED_INT");
     gl.vertexAttribPointer(0, 1, gl.FIXED, 0, 0, 0);
     wtu.glErrorShouldBe(gl, gl.INVALID_ENUM,
-	    "vertexAttribPointer should not support FIXED");
+            "vertexAttribPointer should not support FIXED");
   }
 
   var checkVertexAttribPointer = function(
       gl, err, reason, size, type, normalize, stride, offset) {
     gl.vertexAttribPointer(0, size, type, normalize, stride, offset);
+    var succeeded = (err == gl.NO_ERROR);
     wtu.glErrorShouldBe(gl, err,
         "gl.vertexAttribPointer(0, " + size +
         ", gl." + wtu.glEnumToString(gl, type) +
         ", " + normalize +
         ", " + stride +
         ", " + offset +
-        ") should " + (err == gl.NO_ERROR ? "succeed " : "fail ") + reason);
-    shouldBe('gl.getVertexAttrib(0, gl.VERTEX_ATTRIB_ARRAY_SIZE)', size.toString());
-    shouldBe('gl.getVertexAttrib(0, gl.VERTEX_ATTRIB_ARRAY_TYPE)', 'gl.' + wtu.glEnumToString(gl, type));
-    shouldBe('gl.getVertexAttrib(0, gl.VERTEX_ATTRIB_ARRAY_NORMALIZED)', normalize.toString());
-    shouldBe('gl.getVertexAttrib(0, gl.VERTEX_ATTRIB_ARRAY_STRIDE)', stride.toString());
-    shouldBe('gl.getVertexAttribOffset(0, gl.VERTEX_ATTRIB_ARRAY_POINTER)', offset.toString());
+        ") should " + (succeeded ? "succeed " : "fail ") + reason);
+    if (succeeded) {
+      shouldBe('gl.getVertexAttrib(0, gl.VERTEX_ATTRIB_ARRAY_SIZE)', size.toString());
+      shouldBe('gl.getVertexAttrib(0, gl.VERTEX_ATTRIB_ARRAY_TYPE)', 'gl.' + wtu.glEnumToString(gl, type));
+      shouldBe('gl.getVertexAttrib(0, gl.VERTEX_ATTRIB_ARRAY_NORMALIZED)', normalize.toString());
+      shouldBe('gl.getVertexAttrib(0, gl.VERTEX_ATTRIB_ARRAY_STRIDE)', stride.toString());
+      shouldBe('gl.getVertexAttribOffset(0, gl.VERTEX_ATTRIB_ARRAY_POINTER)', offset.toString());
+    }
   }
 
   var types = [
     { type:gl.BYTE,           bytesPerComponent: 1 },
     { type:gl.UNSIGNED_BYTE,  bytesPerComponent: 1 },
     { type:gl.SHORT,          bytesPerComponent: 2 },
     { type:gl.UNSIGNED_SHORT, bytesPerComponent: 2 },
     { type:gl.FLOAT,          bytesPerComponent: 4 },
new file mode 100644
--- /dev/null
+++ b/dom/canvas/test/webgl-conf/checkout/conformance/buffers/buffer-uninitialized.html
@@ -0,0 +1,123 @@
+<!--
+/*
+** Copyright (c) 2016 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
+-->
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<link rel="stylesheet" href="../../resources/js-test-style.css"/>
+<script src="../../js/js-test-pre.js"></script>
+<script src="../../js/webgl-test-utils.js"></script>
+</head>
+<body>
+<div id="description"></div>
+<div id="console"></div>
+
+<canvas id="canvas" width="1" height="1"></canvas>
+
+<script id="vshader" type="x-shader/x-vertex">
+attribute float a_vertex;
+void main()
+{
+    gl_Position = a_vertex == 0.0 ? vec4(9, 9, 9, 1) : vec4(0.5, 0.5, 0.5, 1);
+}
+</script>
+
+<script id="fshader" type="x-shader/x-fragment">
+void main()
+{
+    gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
+}
+</script>
+
+<script>
+"use strict";
+description("Tests that uninitialized WebGLBuffers are zeroed out");
+
+var wtu = WebGLTestUtils;
+var gl = wtu.create3DContext(document.getElementById("canvas"));
+var program = wtu.setupProgram(gl, ["vshader", "fshader"], ["a_vertex"]);
+shouldBeTrue("program != null");
+
+var TEST_LENGTH = 1024;
+var TEST_BUFSIZE = TEST_LENGTH * 4;
+var data = new Float32Array(TEST_LENGTH / 4); // this array is zeroed
+
+var indices = new Uint16Array(TEST_LENGTH);
+for (var i = 0; i < TEST_LENGTH; i++) {
+  indices[i] = i;
+}
+
+gl.clearColor(0, 1, 0, 1);
+
+function test(initFunction) {
+  var uninitializedBuffer = gl.createBuffer();
+  gl.bindBuffer(gl.ARRAY_BUFFER, uninitializedBuffer);
+  initFunction();
+
+  var elements = gl.createBuffer();
+  gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, elements);
+  gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, indices, gl.STATIC_DRAW);
+
+  gl.useProgram(program);
+  var vertexLoc = gl.getAttribLocation(program, "a_vertex");
+  gl.vertexAttribPointer(vertexLoc, 1, gl.FLOAT, gl.FALSE, 0, 0);
+  gl.enableVertexAttribArray(vertexLoc);
+
+  wtu.glErrorShouldBe(gl, gl.NO_ERROR, "no error should result from setup");
+
+  gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
+  gl.drawElements(gl.POINTS, TEST_LENGTH, gl.UNSIGNED_SHORT, 0);
+  wtu.checkCanvasRect(gl, 0, 0, 1, 1, [0, 255, 0, 255], "buffer should be initialized to zero");
+
+  gl.deleteBuffer(uninitializedBuffer);
+}
+
+var REPETITIONS = 50;
+
+var j;
+debug("");
+debug("testing bufferData(..., size, ...)");
+for (j = 0; j < REPETITIONS; j++) {
+  test(function() {
+    gl.bufferData(gl.ARRAY_BUFFER, TEST_BUFSIZE, gl.STATIC_DRAW);
+  });
+}
+
+debug("");
+debug("testing bufferSubData(..., offset, data) of uninitialized buffer");
+for (j = 0; j < REPETITIONS; j++) {
+  test(function() {
+    gl.bufferData(gl.ARRAY_BUFFER, TEST_BUFSIZE, gl.STATIC_DRAW);
+    // bufferSubData the second quarter of the buffer
+    gl.bufferSubData(gl.ARRAY_BUFFER, TEST_BUFSIZE / 4, data);
+  });
+}
+
+var successfullyParsed = true;
+</script>
+
+<script src="../../js/js-test-post.js"></script>
+</body>
+</html>
--- a/dom/canvas/test/webgl-conf/checkout/conformance/context/constants-and-properties.html
+++ b/dom/canvas/test/webgl-conf/checkout/conformance/context/constants-and-properties.html
@@ -41,131 +41,131 @@
 "use strict";
 description("This test ensures that the WebGL context has all the constants and (non-function) properties in the specification.");
 
 var constants = {
     /* ClearBufferMask */
 DEPTH_BUFFER_BIT               : 0x00000100,
 STENCIL_BUFFER_BIT             : 0x00000400,
 COLOR_BUFFER_BIT               : 0x00004000,
-    
+
     /* BeginMode */
 POINTS                         : 0x0000,
 LINES                          : 0x0001,
 LINE_LOOP                      : 0x0002,
 LINE_STRIP                     : 0x0003,
 TRIANGLES                      : 0x0004,
 TRIANGLE_STRIP                 : 0x0005,
 TRIANGLE_FAN                   : 0x0006,
-    
+
     /* AlphaFunction (not supported in ES20) */
     /*      NEVER */
     /*      LESS */
     /*      EQUAL */
     /*      LEQUAL */
     /*      GREATER */
     /*      NOTEQUAL */
     /*      GEQUAL */
     /*      ALWAYS */
-    
+
     /* BlendingFactorDest */
 ZERO                           : 0,
 ONE                            : 1,
 SRC_COLOR                      : 0x0300,
 ONE_MINUS_SRC_COLOR            : 0x0301,
 SRC_ALPHA                      : 0x0302,
 ONE_MINUS_SRC_ALPHA            : 0x0303,
 DST_ALPHA                      : 0x0304,
 ONE_MINUS_DST_ALPHA            : 0x0305,
-    
+
     /* BlendingFactorSrc */
     /*      ZERO */
     /*      ONE */
 DST_COLOR                      : 0x0306,
 ONE_MINUS_DST_COLOR            : 0x0307,
 SRC_ALPHA_SATURATE             : 0x0308,
     /*      SRC_ALPHA */
     /*      ONE_MINUS_SRC_ALPHA */
     /*      DST_ALPHA */
     /*      ONE_MINUS_DST_ALPHA */
-    
+
     /* BlendEquationSeparate */
 FUNC_ADD                       : 0x8006,
 BLEND_EQUATION                 : 0x8009,
 BLEND_EQUATION_RGB             : 0x8009,   /* same as BLEND_EQUATION */
 BLEND_EQUATION_ALPHA           : 0x883D,
-    
+
     /* BlendSubtract */
 FUNC_SUBTRACT                  : 0x800A,
 FUNC_REVERSE_SUBTRACT          : 0x800B,
-    
+
     /* Separate Blend Functions */
 BLEND_DST_RGB                  : 0x80C8,
 BLEND_SRC_RGB                  : 0x80C9,
 BLEND_DST_ALPHA                : 0x80CA,
 BLEND_SRC_ALPHA                : 0x80CB,
 CONSTANT_COLOR                 : 0x8001,
 ONE_MINUS_CONSTANT_COLOR       : 0x8002,
 CONSTANT_ALPHA                 : 0x8003,
 ONE_MINUS_CONSTANT_ALPHA       : 0x8004,
 BLEND_COLOR                    : 0x8005,
-    
+
     /* Buffer Objects */
 ARRAY_BUFFER                   : 0x8892,
 ELEMENT_ARRAY_BUFFER           : 0x8893,
 ARRAY_BUFFER_BINDING           : 0x8894,
 ELEMENT_ARRAY_BUFFER_BINDING   : 0x8895,
-    
+
 STREAM_DRAW                    : 0x88E0,
 STATIC_DRAW                    : 0x88E4,
 DYNAMIC_DRAW                   : 0x88E8,
-    
+
 BUFFER_SIZE                    : 0x8764,
 BUFFER_USAGE                   : 0x8765,
-    
+
 CURRENT_VERTEX_ATTRIB          : 0x8626,
-    
+
     /* CullFaceMode */
 FRONT                          : 0x0404,
 BACK                           : 0x0405,
 FRONT_AND_BACK                 : 0x0408,
-    
+
     /* DepthFunction */
     /*      NEVER */
     /*      LESS */
     /*      EQUAL */
     /*      LEQUAL */
     /*      GREATER */
     /*      NOTEQUAL */
     /*      GEQUAL */
     /*      ALWAYS */
-    
+
     /* EnableCap */
     /* TEXTURE_2D */
 CULL_FACE                      : 0x0B44,
 BLEND                          : 0x0BE2,
 DITHER                         : 0x0BD0,
 STENCIL_TEST                   : 0x0B90,
 DEPTH_TEST                     : 0x0B71,
 SCISSOR_TEST                   : 0x0C11,
 POLYGON_OFFSET_FILL            : 0x8037,
 SAMPLE_ALPHA_TO_COVERAGE       : 0x809E,
 SAMPLE_COVERAGE                : 0x80A0,
-    
+
     /* ErrorCode */
 NO_ERROR                       : 0,
 INVALID_ENUM                   : 0x0500,
 INVALID_VALUE                  : 0x0501,
 INVALID_OPERATION              : 0x0502,
 OUT_OF_MEMORY                  : 0x0505,
-    
+
     /* FrontFaceDirection */
 CW                             : 0x0900,
 CCW                            : 0x0901,
-    
+
     /* GetPName */
 LINE_WIDTH                     : 0x0B21,
 ALIASED_POINT_SIZE_RANGE       : 0x846D,
 ALIASED_LINE_WIDTH_RANGE       : 0x846E,
 CULL_FACE_MODE                 : 0x0B45,
 FRONT_FACE                     : 0x0B46,
 DEPTH_RANGE                    : 0x0B70,
 DEPTH_WRITEMASK                : 0x0B72,
@@ -205,56 +205,56 @@ STENCIL_BITS                   : 0x0D57,
 POLYGON_OFFSET_UNITS           : 0x2A00,
     /*      POLYGON_OFFSET_FILL */
 POLYGON_OFFSET_FACTOR          : 0x8038,
 TEXTURE_BINDING_2D             : 0x8069,
 SAMPLE_BUFFERS                 : 0x80A8,
 SAMPLES                        : 0x80A9,
 SAMPLE_COVERAGE_VALUE          : 0x80AA,
 SAMPLE_COVERAGE_INVERT         : 0x80AB,
-    
+
     /* GetTextureParameter */
     /*      TEXTURE_MAG_FILTER */
     /*      TEXTURE_MIN_FILTER */
     /*      TEXTURE_WRAP_S */
     /*      TEXTURE_WRAP_T */
-    
+
 COMPRESSED_TEXTURE_FORMATS     : 0x86A3,
-    
+
     /* HintMode */
 DONT_CARE                      : 0x1100,
 FASTEST                        : 0x1101,
 NICEST                         : 0x1102,
-    
+
     /* HintTarget */
 GENERATE_MIPMAP_HINT            : 0x8192,
-    
+
     /* DataType */
 BYTE                           : 0x1400,
 UNSIGNED_BYTE                  : 0x1401,
 SHORT                          : 0x1402,
 UNSIGNED_SHORT                 : 0x1403,
 INT                            : 0x1404,
 UNSIGNED_INT                   : 0x1405,
 FLOAT                          : 0x1406,
-    
+
     /* PixelFormat */
 DEPTH_COMPONENT                : 0x1902,
 ALPHA                          : 0x1906,
 RGB                            : 0x1907,
 RGBA                           : 0x1908,
 LUMINANCE                      : 0x1909,
 LUMINANCE_ALPHA                : 0x190A,
-    
+
     /* PixelType */
     /*      UNSIGNED_BYTE */
 UNSIGNED_SHORT_4_4_4_4         : 0x8033,
 UNSIGNED_SHORT_5_5_5_1         : 0x8034,
 UNSIGNED_SHORT_5_6_5           : 0x8363,
-    
+
     /* Shaders */
 FRAGMENT_SHADER                  : 0x8B30,
 VERTEX_SHADER                    : 0x8B31,
 MAX_VERTEX_ATTRIBS               : 0x8869,
 MAX_VERTEX_UNIFORM_VECTORS       : 0x8DFB,
 MAX_VARYING_VECTORS              : 0x8DFC,
 MAX_COMBINED_TEXTURE_IMAGE_UNITS : 0x8B4D,
 MAX_VERTEX_TEXTURE_IMAGE_UNITS   : 0x8B4C,
@@ -264,74 +264,74 @@ SHADER_TYPE                      : 0x8B4
 DELETE_STATUS                    : 0x8B80,
 LINK_STATUS                      : 0x8B82,
 VALIDATE_STATUS                  : 0x8B83,
 ATTACHED_SHADERS                 : 0x8B85,
 ACTIVE_UNIFORMS                  : 0x8B86,
 ACTIVE_ATTRIBUTES                : 0x8B89,
 SHADING_LANGUAGE_VERSION         : 0x8B8C,
 CURRENT_PROGRAM                  : 0x8B8D,
-    
+
     /* StencilFunction */
 NEVER                          : 0x0200,
 LESS                           : 0x0201,
 EQUAL                          : 0x0202,
 LEQUAL                         : 0x0203,
 GREATER                        : 0x0204,
 NOTEQUAL                       : 0x0205,
 GEQUAL                         : 0x0206,
 ALWAYS                         : 0x0207,
-    
+
     /* StencilOp */
     /*      ZERO */
 KEEP                           : 0x1E00,
 REPLACE                        : 0x1E01,
 INCR                           : 0x1E02,
 DECR                           : 0x1E03,
 INVERT                         : 0x150A,
 INCR_WRAP                      : 0x8507,
 DECR_WRAP                      : 0x8508,
-    
+
     /* StringName */
 VENDOR                         : 0x1F00,
 RENDERER                       : 0x1F01,
 VERSION                        : 0x1F02,
-    
+
     /* TextureMagFilter */
 NEAREST                        : 0x2600,
 LINEAR                         : 0x2601,
-    
+
     /* TextureMinFilter */
     /*      NEAREST */
     /*      LINEAR */
 NEAREST_MIPMAP_NEAREST         : 0x2700,
 LINEAR_MIPMAP_NEAREST          : 0x2701,
 NEAREST_MIPMAP_LINEAR          : 0x2702,
 LINEAR_MIPMAP_LINEAR           : 0x2703,
-    
+
     /* TextureParameterName */
 TEXTURE_MAG_FILTER             : 0x2800,
 TEXTURE_MIN_FILTER             : 0x2801,
 TEXTURE_WRAP_S                 : 0x2802,
 TEXTURE_WRAP_T                 : 0x2803,
-    
+
     /* TextureTarget */
 TEXTURE_2D                     : 0x0DE1,
 TEXTURE                        : 0x1702,
-    
+
 TEXTURE_CUBE_MAP               : 0x8513,
 TEXTURE_BINDING_CUBE_MAP       : 0x8514,
 TEXTURE_CUBE_MAP_POSITIVE_X    : 0x8515,
 TEXTURE_CUBE_MAP_NEGATIVE_X    : 0x8516,
 TEXTURE_CUBE_MAP_POSITIVE_Y    : 0x8517,
 TEXTURE_CUBE_MAP_NEGATIVE_Y    : 0x8518,
 TEXTURE_CUBE_MAP_POSITIVE_Z    : 0x8519,
 TEXTURE_CUBE_MAP_NEGATIVE_Z    : 0x851A,
 MAX_CUBE_MAP_TEXTURE_SIZE      : 0x851C,
-    
+
     /* TextureUnit */
 TEXTURE0                       : 0x84C0,
 TEXTURE1                       : 0x84C1,
 TEXTURE2                       : 0x84C2,
 TEXTURE3                       : 0x84C3,
 TEXTURE4                       : 0x84C4,
 TEXTURE5                       : 0x84C5,
 TEXTURE6                       : 0x84C6,
@@ -356,107 +356,107 @@ TEXTURE24                      : 0x84D8,
 TEXTURE25                      : 0x84D9,
 TEXTURE26                      : 0x84DA,
 TEXTURE27                      : 0x84DB,
 TEXTURE28                      : 0x84DC,
 TEXTURE29                      : 0x84DD,
 TEXTURE30                      : 0x84DE,
 TEXTURE31                      : 0x84DF,
 ACTIVE_TEXTURE                 : 0x84E0,
-    
+
     /* TextureWrapMode */
 REPEAT                         : 0x2901,
 CLAMP_TO_EDGE                  : 0x812F,
 MIRRORED_REPEAT                : 0x8370,
-    
+
     /* Uniform Types */
 FLOAT_VEC2                     : 0x8B50,
 FLOAT_VEC3                     : 0x8B51,
 FLOAT_VEC4                     : 0x8B52,
 INT_VEC2                       : 0x8B53,
 INT_VEC3                       : 0x8B54,
 INT_VEC4                       : 0x8B55,
 BOOL                           : 0x8B56,
 BOOL_VEC2                      : 0x8B57,
 BOOL_VEC3                      : 0x8B58,
 BOOL_VEC4                      : 0x8B59,
 FLOAT_MAT2                     : 0x8B5A,
 FLOAT_MAT3                     : 0x8B5B,
 FLOAT_MAT4                     : 0x8B5C,
 SAMPLER_2D                     : 0x8B5E,
 SAMPLER_CUBE                   : 0x8B60,
-    
+
     /* Vertex Arrays */
 VERTEX_ATTRIB_ARRAY_ENABLED        : 0x8622,
 VERTEX_ATTRIB_ARRAY_SIZE           : 0x8623,
 VERTEX_ATTRIB_ARRAY_STRIDE         : 0x8624,
 VERTEX_ATTRIB_ARRAY_TYPE           : 0x8625,
 VERTEX_ATTRIB_ARRAY_NORMALIZED     : 0x886A,
 VERTEX_ATTRIB_ARRAY_POINTER        : 0x8645,
 VERTEX_ATTRIB_ARRAY_BUFFER_BINDING : 0x889F,
-    
+
     /* Read Format */
 IMPLEMENTATION_COLOR_READ_TYPE   : 0x8B9A,
 IMPLEMENTATION_COLOR_READ_FORMAT : 0x8B9B,
 
     /* Shader Source */
 COMPILE_STATUS                 : 0x8B81,
-    
+
     /* Shader Precision-Specified Types */
 LOW_FLOAT                      : 0x8DF0,
 MEDIUM_FLOAT                   : 0x8DF1,
 HIGH_FLOAT                     : 0x8DF2,
 LOW_INT                        : 0x8DF3,
 MEDIUM_INT                     : 0x8DF4,
 HIGH_INT                       : 0x8DF5,
-    
+
     /* Framebuffer Object. */
 FRAMEBUFFER                    : 0x8D40,
 RENDERBUFFER                   : 0x8D41,
-    
+
 RGBA4                          : 0x8056,
 RGB5_A1                        : 0x8057,
 RGB565                         : 0x8D62,
 DEPTH_COMPONENT16              : 0x81A5,
 STENCIL_INDEX                  : 0x1901,
 STENCIL_INDEX8                 : 0x8D48,
 DEPTH_STENCIL                  : 0x84F9,
-    
+
 RENDERBUFFER_WIDTH             : 0x8D42,
 RENDERBUFFER_HEIGHT            : 0x8D43,
 RENDERBUFFER_INTERNAL_FORMAT   : 0x8D44,
 RENDERBUFFER_RED_SIZE          : 0x8D50,
 RENDERBUFFER_GREEN_SIZE        : 0x8D51,
 RENDERBUFFER_BLUE_SIZE         : 0x8D52,
 RENDERBUFFER_ALPHA_SIZE        : 0x8D53,
 RENDERBUFFER_DEPTH_SIZE        : 0x8D54,
 RENDERBUFFER_STENCIL_SIZE      : 0x8D55,
-    
+
 FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE           : 0x8CD0,
 FRAMEBUFFER_ATTACHMENT_OBJECT_NAME           : 0x8CD1,
 FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL         : 0x8CD2,
 FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE : 0x8CD3,
-    
+
 COLOR_ATTACHMENT0              : 0x8CE0,
 DEPTH_ATTACHMENT               : 0x8D00,
 STENCIL_ATTACHMENT             : 0x8D20,
 DEPTH_STENCIL_ATTACHMENT       : 0x821A,
-    
+
 NONE                           : 0,
-    
+
 FRAMEBUFFER_COMPLETE                      : 0x8CD5,
 FRAMEBUFFER_INCOMPLETE_ATTACHMENT         : 0x8CD6,
 FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT : 0x8CD7,
 FRAMEBUFFER_INCOMPLETE_DIMENSIONS         : 0x8CD9,
 FRAMEBUFFER_UNSUPPORTED                   : 0x8CDD,
-  
+
 FRAMEBUFFER_BINDING            : 0x8CA6,
 RENDERBUFFER_BINDING           : 0x8CA7,
 MAX_RENDERBUFFER_SIZE          : 0x84E8,
-    
+
 INVALID_FRAMEBUFFER_OPERATION  : 0x0506,
 
 /* WebGL-specific enums */
 UNPACK_FLIP_Y_WEBGL                : 0x9240,
 UNPACK_PREMULTIPLY_ALPHA_WEBGL     : 0x9241,
 CONTEXT_LOST_WEBGL                 : 0x9242,
 UNPACK_COLORSPACE_CONVERSION_WEBGL : 0x9243,
 BROWSER_DEFAULT_WEBGL              : 0x9244
--- a/dom/canvas/test/webgl-conf/checkout/conformance/context/context-attributes-alpha-depth-stencil-antialias.html
+++ b/dom/canvas/test/webgl-conf/checkout/conformance/context/context-attributes-alpha-depth-stencil-antialias.html
@@ -57,18 +57,17 @@ void main()
 
 <script>
 "use strict";
 
 // These four declarations need to be global for "shouldBe" to see them
 var wtu = WebGLTestUtils;
 var gl;
 var contextAttribs = null;
-var pixel_1 = [0, 0, 0, 1];
-var pixel_2 = [0, 0, 0, 1];
+var redChannels = [0, 0, 0];
 var correctColor = null;
 var framebuffer;
 var fbHasColor;
 var fbHasDepth;
 var fbHasStencil;
 
 function init()
 {
@@ -297,42 +296,41 @@ function testStencilAndDepth(stencil, de
       wtu.checkCanvasRect(gl, 0, 0, 1, 1, [0, 0, 0, 255]);
       gl.bindFramebuffer(gl.FRAMEBUFFER, null);
     }
 }
 
 function testAntialias(antialias)
 {
     debug("Testing antialias = " + antialias);
+    // Both the width and height of canvas are N.
+    // Note that "N = 2" doesn't work for some post processing AA per the discussion at https://github.com/KhronosGroup/WebGL/pull/1977.
+    var N = 3;
     if (antialias)
-        shouldBeNonNull("gl = getWebGL(2, 2, { depth: false, stencil: false, alpha: false, antialias: true }, [ 0, 0, 0, 1 ], 1, 0)");
+        shouldBeNonNull("gl = getWebGL(" + N + ", " + N + ", { depth: false, stencil: false, alpha: false, antialias: true }, [ 0, 0, 0, 1 ], 1, 0)");
     else
-        shouldBeNonNull("gl = getWebGL(2, 2, { depth: false, stencil: false, alpha: false, antialias: false }, [ 0, 0, 0, 1 ], 1, 0)");
+        shouldBeNonNull("gl = getWebGL(" + N + ", " + N + ", { depth: false, stencil: false, alpha: false, antialias: false }, [ 0, 0, 0, 1 ], 1, 0)");
     shouldBeNonNull("contextAttribs = gl.getContextAttributes()");
 
     var vertices = new Float32Array([
          1.0, 1.0, 0.0,
         -1.0, 1.0, 0.0,
         -1.0, -1.0, 0.0]);
     var colors = new Uint8Array([
         255, 0, 0, 255,
         255, 0, 0, 255,
         255, 0, 0, 255]);
     drawAndReadPixel(gl, vertices, colors, 0, 0);
-    var buf_1 = new Uint8Array(1 * 1 * 4);
-    var buf_2 = new Uint8Array(1 * 1 * 4);
-    gl.readPixels(0, 0, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, buf_1);
-    gl.readPixels(0, 1, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, buf_2);
-    pixel_1[0] = buf_1[0];
-    pixel_2[0] = buf_2[0];
-    // For some anti-alias algorithms, effects may be not on diagonal line pixels, so that either:
-    //    - The red channel of the pixel at (0, 0) is not 0 and not 255, or,
-    //    - If it is 0, expect that the red channel of the pixel at (0, 1) is not 0 and not 255.
-    shouldBe("pixel_1[0] != 255 && pixel_1[0] != 0 || pixel_1[0] == 0 && pixel_2[0] != 255 && pixel_2[0] != 0",
-        "contextAttribs.antialias");
+    var buf = new Uint8Array(N * N * 4);
+    gl.readPixels(0, 0, N, N, gl.RGBA, gl.UNSIGNED_BYTE, buf);
+    redChannels[0] = buf[4 * (N + 1)]; // (1, 1)
+    redChannels[1] = buf[4 * N * (N - 1)]; // left top
+    redChannels[2] = buf[4 * (N - 1)]; // right bottom
+    shouldBeTrue("redChannels[1] == 255 && redChannels[2] == 0");
+    shouldBe("redChannels[0] != 255 && redChannels[0] != 0", "contextAttribs.antialias");
 }
 
 function runTest()
 {
     testDefault();
     testAlpha(true);
     testAlpha(false);
     testDepth(true);
new file mode 100644
--- /dev/null
+++ b/dom/canvas/test/webgl-conf/checkout/conformance/context/context-no-alpha-fbo-with-alpha.html
@@ -0,0 +1,98 @@
+<!--
+
+/*
+** Copyright (c) 2016 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
+
+-->
+
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<link rel="stylesheet" href="../../resources/js-test-style.css"/>
+<script src="../../js/js-test-pre.js"></script>
+<script src="../../js/webgl-test-utils.js"></script>
+
+<script>
+"use strict";
+
+var wtu = WebGLTestUtils;
+
+// This declaration needs to be global for "shouldBe" to see it
+var gl;
+
+function init()
+{
+    description('Verify that a WebGL context with alpha:false still works correctly after handling textures with an alpha channel.');
+
+    runTest();
+}
+
+function getWebGL(contextAttribs)
+{
+    return wtu.create3DContext("c", contextAttribs);
+}
+
+function runTest()
+{
+    var buf = new Uint8Array(1 * 1 * 4);
+    shouldBeNonNull("gl = getWebGL({ alpha: false, antialias: false })");
+
+    // Clear to black. Alpha channel of clearColor() is ignored.
+    gl.clearColor(0.0, 0.0, 0.0, 0.7);
+    gl.clear(gl.COLOR_BUFFER_BIT);
+    wtu.checkCanvasRect(gl, 0, 0, 1, 1, [0, 0, 0, 255],
+                        "Alpha channel of clearColor should be ignored");
+
+    wtu.waitForComposite(function() {
+        // Make a new framebuffer and attach a texture with an alpha channel.
+        var fbo = gl.createFramebuffer();
+        gl.bindFramebuffer(gl.FRAMEBUFFER, fbo);
+        var texture = gl.createTexture();
+        gl.bindTexture(gl.TEXTURE_2D, texture);
+        gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 1, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);
+        gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);
+
+        // Clear texture. Note that alpha channel is not 1.0.
+        gl.clearColor(1.0, 0.0, 0.0, 0.5);
+        gl.clear(gl.COLOR_BUFFER_BIT);
+        wtu.checkCanvasRect(gl, 0, 0, 1, 1, [255, 0, 0, 128],
+                            "Alpha channel of clearColor should be obeyed for FBO with alpha channel",
+                            1);
+
+        // Bind back buffer and check that its alpha channel is still 1.0.
+        gl.bindFramebuffer(gl.FRAMEBUFFER, null);
+        wtu.checkCanvasRect(gl, 0, 0, 1, 1, [0, 0, 0, 255],
+                            "Alpha channel of back buffer should still be 255");
+        finishTest();
+    });
+}
+
+</script>
+</head>
+<body onload="init()">
+<div id="description"></div>
+<div id="console"></div>
+<canvas width="20" height="20" style="border: 1px solid blue;" id="c"></canvas>
+</body>
+</html>
--- a/dom/canvas/test/webgl-conf/checkout/conformance/context/methods.html
+++ b/dom/canvas/test/webgl-conf/checkout/conformance/context/methods.html
@@ -178,16 +178,19 @@ var methods = [
   "vertexAttrib4fv",
   "vertexAttribPointer",
   "viewport"
 ];
 
 // Properties to be ignored because they were added in versions of the
 // spec that are backward-compatible with this version
 var ignoredMethods = [
+  // There is no official spec for the commit API yet, the proposal link is:
+  // https://wiki.whatwg.org/wiki/OffscreenCanvas
+  "commit"
 ];
 
 function assertFunction(v, f) {
   try {
     if (typeof v[f] != "function") {
       testFailed("Property either does not exist or is not a function: " + f);
       return false;
     } else {
--- a/dom/canvas/test/webgl-conf/checkout/conformance/extensions/angle-instanced-arrays.html
+++ b/dom/canvas/test/webgl-conf/checkout/conformance/extensions/angle-instanced-arrays.html
@@ -136,17 +136,17 @@ function runSupportedTest(extensionEnabl
         } else {
             testPassed("ANGLE_instanced_arrays not listed as supported and getExtension failed -- this is legal");
         }
     }
 }
 
 function runDivisorTestDisabled() {
     debug("Testing VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE with extension disabled");
-    
+
     var VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE = 0x88FE;
 
     gl.getVertexAttrib(0, VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE);
     wtu.glErrorShouldBe(gl, gl.INVALID_ENUM, "VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE should not be queryable if extension is disabled");
 }
 
 function runDivisorTestEnabled() {
     debug("Testing VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE with extension enabled");
@@ -610,17 +610,17 @@ function runANGLECorruptionTest()
         gl.bufferSubData(gl.ARRAY_BUFFER, offsets.byteLength, nullData);
 
         nullData = new Float32Array(colors.length);
         gl.bindBuffer(gl.ARRAY_BUFFER, colorBuffer);
         gl.bufferSubData(gl.ARRAY_BUFFER, colors.byteLength, nullData);
 
         ext.drawArraysInstancedANGLE(gl.TRIANGLES, 0, 6, instanceCount);
 
-        // Make sure each color was drawn correctly 
+        // Make sure each color was drawn correctly
         var i;
         var passed = true;
         for (i = 0; i < instanceCount; ++i) {
             var w = canvas.width / instanceCount;
             var x = w * i;
             var color =  [colors[(i*4)] * 255, colors[(i*4)+1] * 255, colors[(i*4)+2] * 255, 255]
 
             wtu.checkCanvasRectColor(
--- a/dom/canvas/test/webgl-conf/checkout/conformance/extensions/ext-disjoint-timer-query.html
+++ b/dom/canvas/test/webgl-conf/checkout/conformance/extensions/ext-disjoint-timer-query.html
@@ -46,17 +46,17 @@ var canvas = document.getElementById("ca
 var gl = wtu.create3DContext(canvas);
 var ext = null;
 var query = null;
 var query2 = null;
 var elapsed_query = null;
 var timestamp_query1 = null;
 var timestamp_query2 = null;
 var availability_retry = 500;
-var timestamp_counter_bits = 0; 
+var timestamp_counter_bits = 0;
 
 if (!gl) {
     testFailed("WebGL context does not exist");
     finishTest();
 } else {
     testPassed("WebGL context exists");
 
     // Query the extension and store globally so shouldBe can access it
@@ -90,42 +90,50 @@ function runSanityTests() {
     shouldBe("ext.QUERY_RESULT_EXT", "0x8866");
     shouldBe("ext.QUERY_RESULT_AVAILABLE_EXT", "0x8867");
     shouldBe("ext.TIME_ELAPSED_EXT", "0x88BF");
     shouldBe("ext.TIMESTAMP_EXT", "0x8E28");
     shouldBe("ext.GPU_DISJOINT_EXT", "0x8FBB");
 
     shouldBe("ext.isQueryEXT(null)", "false");
 
-    shouldBe("ext.getQueryEXT(ext.TIME_ELAPSED_EXT, ext.CURRENT_QUERY_EXT)", "null");
-    shouldBe("ext.getQueryEXT(ext.TIME_ELAPSED_EXT, ext.QUERY_COUNTER_BITS_EXT) >= 30", "true");
+    shouldBeTrue("ext.getQueryEXT(ext.TIME_ELAPSED_EXT, ext.CURRENT_QUERY_EXT) === null");
+    wtu.glErrorShouldBe(gl, gl.NO_ERROR);
+    shouldBeTrue("ext.getQueryEXT(ext.TIME_ELAPSED_EXT, ext.QUERY_COUNTER_BITS_EXT) >= 30");
+    wtu.glErrorShouldBe(gl, gl.NO_ERROR);
+
+    shouldBeTrue("ext.getQueryEXT(ext.TIMESTAMP_EXT, ext.CURRENT_QUERY_EXT) === null");
+    wtu.glErrorShouldBe(gl, gl.NO_ERROR);
 
     // Certain drivers set timestamp counter bits to 0 as they don't support timestamps
-    shouldBe("ext.getQueryEXT(ext.TIMESTAMP_EXT, ext.QUERY_COUNTER_BITS_EXT) >= 30 || " +
-             "ext.getQueryEXT(ext.TIMESTAMP_EXT, ext.QUERY_COUNTER_BITS_EXT) == 0", "true");
+    shouldBeTrue("ext.getQueryEXT(ext.TIMESTAMP_EXT, ext.QUERY_COUNTER_BITS_EXT) >= 30 || " +
+             "ext.getQueryEXT(ext.TIMESTAMP_EXT, ext.QUERY_COUNTER_BITS_EXT) === 0");
+    wtu.glErrorShouldBe(gl, gl.NO_ERROR);
 
     debug("");
     debug("Testing time elapsed query lifecycle");
     query = ext.createQueryEXT();
     shouldBe("ext.isQueryEXT(query)", "false");
     wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Query creation must succeed.");
+    shouldThrow("ext.beginQueryEXT(ext.TIMESTAMP_EXT, null)");
     ext.beginQueryEXT(ext.TIMESTAMP_EXT, query);
     wtu.glErrorShouldBe(gl, gl.INVALID_ENUM, "Beginning a timestamp query should fail.");
     ext.beginQueryEXT(ext.TIME_ELAPSED_EXT, query);
     shouldBe("ext.isQueryEXT(query)", "true");
     wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Beginning an inactive time elapsed query should succeed.");
     ext.beginQueryEXT(ext.TIME_ELAPSED_EXT, query);
     wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "Attempting to begin an active query should fail.");
     ext.getQueryObjectEXT(query, ext.QUERY_RESULT_AVAILABLE_EXT);
     wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "Fetching query result availability of an active query should fail.");
     ext.getQueryObjectEXT(query, ext.QUERY_RESULT_EXT);
     wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "Fetching query result of an active query should fail.");
     shouldBe("ext.getQueryEXT(ext.TIME_ELAPSED_EXT, ext.CURRENT_QUERY_EXT)", "query");
     ext.endQueryEXT(ext.TIME_ELAPSED_EXT);
     wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Ending an active time elapsed query should succeed.");
+    shouldThrow("ext.getQueryObjectEXT(null, ext.QUERY_RESULT_AVAILABLE_EXT)");
     ext.getQueryObjectEXT(query, ext.QUERY_RESULT_AVAILABLE_EXT);
     wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Fetching query result availability after query end should succeed.");
     ext.endQueryEXT(ext.TIME_ELAPSED_EXT);
     wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "Attempting to end an inactive query should fail.");
     ext.queryCounterEXT(query, ext.TIMESTAMP_EXT);
     wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "Should not be able to use time elapsed query to store a timestamp.");
     ext.deleteQueryEXT(query);
     wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Query deletion must succeed.");
@@ -133,64 +141,75 @@ function runSanityTests() {
     wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "Beginning a deleted query must fail.");
     ext.getQueryObjectEXT(query, ext.QUERY_RESULT_AVAILABLE_EXT);
     wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "Fetching query result availability after query deletion should fail.");
     shouldBe("ext.isQueryEXT(query)", "false");
 
     debug("");
     debug("Testing timestamp counter");
     query = ext.createQueryEXT();
+    shouldThrow("ext.queryCounterEXT(null, ext.TIMESTAMP_EXT)");
     ext.queryCounterEXT(query, ext.TIMESTAMP_EXT);
     wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Timestamp counter queries should work.");
     ext.deleteQueryEXT(query);
+    wtu.glErrorShouldBe(gl, gl.NO_ERROR);
 
     debug("");
     debug("Performing parameter sanity checks");
     gl.getParameter(ext.TIMESTAMP_EXT);
     wtu.glErrorShouldBe(gl, gl.NO_ERROR, "getParameter timestamp calls should work.");
     gl.getParameter(ext.GPU_DISJOINT_EXT);
     wtu.glErrorShouldBe(gl, gl.NO_ERROR, "getParameter disjoint calls should work.");
 
     debug("");
     debug("Testing current query conditions");
     query = ext.createQueryEXT();
     query2 = ext.createQueryEXT();
     shouldBe("ext.getQueryEXT(ext.TIME_ELAPSED_EXT, ext.CURRENT_QUERY_EXT)", "null");
     ext.beginQueryEXT(ext.TIME_ELAPSED_EXT, query);
     shouldBe("ext.getQueryEXT(ext.TIME_ELAPSED_EXT, ext.CURRENT_QUERY_EXT)", "query");
+    wtu.glErrorShouldBe(gl, gl.NO_ERROR);
 
     debug("");
     debug("Testing failed begin query should not change the current query.");
     ext.beginQueryEXT(ext.TIME_ELAPSED_EXT, query2);
     wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "Beginning an elapsed query without ending should fail.");
     shouldBe("ext.getQueryEXT(ext.TIME_ELAPSED_EXT, ext.CURRENT_QUERY_EXT)", "query");
+    wtu.glErrorShouldBe(gl, gl.NO_ERROR);
 
     debug("");
-    debug("Testing beginning a timestamp query should not change the elapsed query.");
-    ext.beginQueryEXT(ext.TIME_ELAPSED_EXT, query2)
-    shouldBe("ext.getQueryEXT(ext.TIME_ELAPSED_EXT, ext.CURRENT_QUERY_EXT)", "query");;
+    debug("Testing beginning a timestamp query is invalid and should not change the elapsed query.");
+    ext.beginQueryEXT(ext.TIMESTAMP_EXT, query2)
+    wtu.glErrorShouldBe(gl, gl.INVALID_ENUM);
+    shouldBe("ext.getQueryEXT(ext.TIME_ELAPSED_EXT, ext.CURRENT_QUERY_EXT)", "query");
+    wtu.glErrorShouldBe(gl, gl.NO_ERROR);
 
     debug("");
     debug("Testing timestamp queries end immediately so are never current.");
     ext.queryCounterEXT(query2, ext.TIMESTAMP_EXT);
     shouldBe("ext.getQueryEXT(ext.TIMESTAMP_EXT, ext.CURRENT_QUERY_EXT)", "null");
+    wtu.glErrorShouldBe(gl, gl.NO_ERROR);
 
     debug("");
     debug("Testing ending the query should clear the current query.");
     ext.endQueryEXT(ext.TIME_ELAPSED_EXT);
     shouldBe("ext.getQueryEXT(ext.TIME_ELAPSED_EXT, ext.CURRENT_QUERY_EXT)", "null");
+    wtu.glErrorShouldBe(gl, gl.NO_ERROR);
 
     debug("");
     debug("Testing beginning a elapsed query using a timestamp query should fail and not affect current query.")
     ext.beginQueryEXT(ext.TIME_ELAPSED_EXT, query2);
     wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "Switching query targets should fail.");
     shouldBe("ext.getQueryEXT(ext.TIME_ELAPSED_EXT, ext.CURRENT_QUERY_EXT)", "null");
+    wtu.glErrorShouldBe(gl, gl.NO_ERROR);
 
     ext.deleteQueryEXT(query);
     ext.deleteQueryEXT(query2);
+
+    wtu.glErrorShouldBe(gl, gl.NO_ERROR, "Should be no errors at end of sanity tests");
 }
 
 function runElapsedTimeTest() {
     debug("");
     debug("Testing elapsed time query");
 
     elapsed_query = ext.createQueryEXT();
     ext.beginQueryEXT(ext.TIME_ELAPSED_EXT, elapsed_query);
@@ -219,45 +238,48 @@ function verifyQueryResultsNotAvailable(
 
     // Verify as best as possible that the implementation doesn't
     // allow a query's result to become available the same frame, by
     // spin-looping for some time and ensuring that none of the
     // queries' results become available.
     var startTime = Date.now();
     while (Date.now() - startTime < 2000) {
         gl.finish();
-        if (ext.getQueryObjectEXT(elapsed_query, ext.QUERY_RESULT_AVAILABLE_EXT)) { 
+        if (ext.getQueryObjectEXT(elapsed_query, ext.QUERY_RESULT_AVAILABLE_EXT)) {
             testFailed("One of the queries' results became available too early");
             return;
         }
         if (timestamp_counter_bits > 0) {
             if (ext.getQueryObjectEXT(timestamp_query1, ext.QUERY_RESULT_AVAILABLE_EXT) ||
                 ext.getQueryObjectEXT(timestamp_query2, ext.QUERY_RESULT_AVAILABLE_EXT)) {
                 testFailed("One of the queries' results became available too early");
                 return;
             }
         }
     }
 
     testPassed("Queries' results didn't become available in a spin loop");
 }
 
 function checkQueryResults() {
-    if (availability_retry > 0 && (timestamp_counter_bits == 0 ||
-        !ext.getQueryObjectEXT(timestamp_query2, ext.QUERY_RESULT_AVAILABLE_EXT))) {
-        var error = gl.getError();
-        if (error != gl.NO_ERROR) {
-            testFailed("getQueryObjectEXT should have no errors: " + wtu.glEnumToString(gl, error));
-            debug("");
-            finishTest();
+    if (availability_retry > 0) {
+        // Make a reasonable attempt to wait for the queries' results to become available.
+        if (!ext.getQueryObjectEXT(elapsed_query, ext.QUERY_RESULT_AVAILABLE_EXT) ||
+            (timestamp_counter_bits > 0 && !ext.getQueryObjectEXT(timestamp_query2, ext.QUERY_RESULT_AVAILABLE_EXT))) {
+            var error = gl.getError();
+            if (error != gl.NO_ERROR) {
+                testFailed("getQueryObjectEXT should have no errors: " + wtu.glEnumToString(gl, error));
+                debug("");
+                finishTest();
+                return;
+            }
+            availability_retry--;
+            window.requestAnimationFrame(checkQueryResults);
             return;
         }
-        availability_retry--;
-        window.requestAnimationFrame(checkQueryResults);
-        return;
     }
 
     debug("");
     debug("Testing query results");
 
     // Make sure queries are available.
     shouldBe("ext.getQueryObjectEXT(elapsed_query, ext.QUERY_RESULT_AVAILABLE_EXT)", "true");
     if (timestamp_counter_bits > 0) {
--- a/dom/canvas/test/webgl-conf/checkout/conformance/extensions/ext-frag-depth.html
+++ b/dom/canvas/test/webgl-conf/checkout/conformance/extensions/ext-frag-depth.html
@@ -211,17 +211,17 @@ function runShaderTests(extensionEnabled
 
 function runOutputTests() {
     var e = 2; // Amount of variance to allow in result pixels - may need to be tweaked higher
 
     debug("Testing various draws for valid built-in function behavior");
 
     canvas.width = 50; canvas.height = 50;
     gl.viewport(0, 0, canvas.width, canvas.height);
-    
+
     // Enable depth testing with a clearDepth of 0.5
     // This makes it so that fragments are only rendered when
     // gl_fragDepthEXT is < 0.5
     gl.clearDepth(0.5);
     gl.enable(gl.DEPTH_TEST);
 
     var positionLoc = 0;
     var texcoordLoc = 1;
--- a/dom/canvas/test/webgl-conf/checkout/conformance/extensions/ext-texture-filter-anisotropic.html
+++ b/dom/canvas/test/webgl-conf/checkout/conformance/extensions/ext-texture-filter-anisotropic.html
@@ -86,32 +86,32 @@ function runSupportedTest(extensionEnabl
         } else {
             testPassed("EXT_texture_filter_anisotropic not listed as supported and getExtension failed -- this is legal");
         }
     }
 }
 
 function runHintTestDisabled() {
     debug("Testing MAX_TEXTURE_MAX_ANISOTROPY_EXT with extension disabled");
-    
+
     var MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FF;
     gl.getParameter(MAX_TEXTURE_MAX_ANISOTROPY_EXT);
     wtu.glErrorShouldBe(gl, gl.INVALID_ENUM, "MAX_TEXTURE_MAX_ANISOTROPY_EXT should not be queryable if extension is disabled");
-    
+
     debug("Testing TEXTURE_MAX_ANISOTROPY_EXT with extension disabled");
     var TEXTURE_MAX_ANISOTROPY_EXT = 0x84FE;
     var texture = gl.createTexture();
     gl.bindTexture(gl.TEXTURE_2D, texture);
-   
+
     gl.getTexParameter(gl.TEXTURE_2D, TEXTURE_MAX_ANISOTROPY_EXT);
     wtu.glErrorShouldBe(gl, gl.INVALID_ENUM, "TEXTURE_MAX_ANISOTROPY_EXT should not be queryable if extension is disabled");
 
     gl.texParameterf(gl.TEXTURE_2D, TEXTURE_MAX_ANISOTROPY_EXT, 1);
     wtu.glErrorShouldBe(gl, gl.INVALID_ENUM, "TEXTURE_MAX_ANISOTROPY_EXT should not be settable if extension is disabled");
-    
+
     gl.texParameteri(gl.TEXTURE_2D, TEXTURE_MAX_ANISOTROPY_EXT, 1);
     wtu.glErrorShouldBe(gl, gl.INVALID_ENUM, "TEXTURE_MAX_ANISOTROPY_EXT should not be settable if extension is disabled");
 
     gl.deleteTexture(texture);
 }
 
 function runHintTestEnabled() {
     debug("Testing MAX_TEXTURE_MAX_ANISOTROPY_EXT with extension enabled");
@@ -122,44 +122,44 @@ function runHintTestEnabled() {
     wtu.glErrorShouldBe(gl, gl.NO_ERROR, "MAX_TEXTURE_MAX_ANISOTROPY_EXT query should succeed if extension is enabled");
 
     if(max_anisotropy >= 2){
         testPassed("Minimum value of MAX_TEXTURE_MAX_ANISOTROPY_EXT is 2.0");
     }
     else{
         testFailed("Minimum value of MAX_TEXTURE_MAX_ANISOTROPY_EXT is 2.0, returned values was: " + max_anisotropy);
     }
-    
+
     // TODO make a texture and verify initial value == 1 and setting to less than 1 is invalid value
 
     debug("Testing TEXTURE_MAX_ANISOTROPY_EXT with extension disabled");
     shouldBe("ext.TEXTURE_MAX_ANISOTROPY_EXT", "0x84FE");
 
     var texture = gl.createTexture();
     gl.bindTexture(gl.TEXTURE_2D, texture);
-   
+
     var queried_value = gl.getTexParameter(gl.TEXTURE_2D, ext.TEXTURE_MAX_ANISOTROPY_EXT);
     wtu.glErrorShouldBe(gl, gl.NO_ERROR, "TEXTURE_MAX_ANISOTROPY_EXT query should succeed if extension is enabled");
 
     if(queried_value == 1){
         testPassed("Initial value of TEXTURE_MAX_ANISOTROPY_EXT is 1.0");
     }
     else{
         testFailed("Initial value of TEXTURE_MAX_ANISOTROPY_EXT should be 1.0, returned value was: " + queried_value);
     }
 
     gl.texParameterf(gl.TEXTURE_2D, ext.TEXTURE_MAX_ANISOTROPY_EXT, 0);
     wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "texParameterf TEXTURE_MAX_ANISOTROPY_EXT set to < 1 should be an invalid value");
-    
+
     gl.texParameteri(gl.TEXTURE_2D, ext.TEXTURE_MAX_ANISOTROPY_EXT, 0);
     wtu.glErrorShouldBe(gl, gl.INVALID_VALUE, "texParameteri TEXTURE_MAX_ANISOTROPY_EXT set to < 1 should be an invalid value");
-    
+
     gl.texParameterf(gl.TEXTURE_2D, ext.TEXTURE_MAX_ANISOTROPY_EXT, max_anisotropy);
     wtu.glErrorShouldBe(gl, gl.NO_ERROR, "texParameterf TEXTURE_MAX_ANISOTROPY_EXT set to >= 2 should succeed");
-    
+
     gl.texParameteri(gl.TEXTURE_2D, ext.TEXTURE_MAX_ANISOTROPY_EXT, max_anisotropy);
     wtu.glErrorShouldBe(gl, gl.NO_ERROR, "texParameteri TEXTURE_MAX_ANISOTROPY_EXT set to >= 2 should succeed");
 
     var queried_value = gl.getTexParameter(gl.TEXTURE_2D, ext.TEXTURE_MAX_ANISOTROPY_EXT);
     if(queried_value == max_anisotropy){
         testPassed("Set value of TEXTURE_MAX_ANISOTROPY_EXT matches expecation");
     }
     else{
--- a/dom/canvas/test/webgl-conf/checkout/conformance/extensions/oes-element-index-uint.html
+++ b/dom/canvas/test/webgl-conf/checkout/conformance/extensions/oes-element-index-uint.html
@@ -74,17 +74,17 @@ for (var ii = 0; ii < 2; ++ii) {
     canvas.height = 50;
 
     gl = wtu.create3DContext(canvas);
 
     if (!gl) {
         testFailed("WebGL context does not exist");
     } else {
         testPassed("WebGL context exists");
-    
+
         var drawType = (ii == 0) ? gl.STATIC_DRAW : gl.DYNAMIC_DRAW;
         debug("Testing " + ((ii == 0) ? "STATIC_DRAW" : "DYNAMIC_DRAW"));
 
 
         // Query the extension and store globally so shouldBe can access it
         ext = gl.getExtension("OES_element_index_uint");
         if (!ext) {
             testPassed("No OES_element_index_uint support -- this is legal");
@@ -124,27 +124,27 @@ function runSupportedTest(extensionEnabl
         } else {
             testPassed("OES_element_index_uint not listed as supported and getExtension failed -- this is legal");
         }
     }
 }
 
 function runDrawTests(drawType) {
     debug("Test that draws with unsigned integer indices produce the expected results");
-    
+
     canvas.width = 50; canvas.height = 50;
     gl.viewport(0, 0, canvas.width, canvas.height);
-    
+
     var program = wtu.setupSimpleColorProgram(gl);
 
     function setupDraw(s) {
         // Create a vertex buffer that cannot be fully indexed via shorts
         var quadArrayLen = 65537 * 3;
         var quadArray = new Float32Array(quadArrayLen);
-        
+
         // Leave all but the last 4 values zero-ed out
         var idx = quadArrayLen - 12;
 
         // Initialized the last 4 values to a quad
         quadArray[idx++] = 1.0 * s;
         quadArray[idx++] = 1.0 * s;
         quadArray[idx++] = 0.0;
 
--- a/dom/canvas/test/webgl-conf/checkout/conformance/extensions/oes-vertex-array-object-bufferData.html
+++ b/dom/canvas/test/webgl-conf/checkout/conformance/extensions/oes-vertex-array-object-bufferData.html
@@ -94,107 +94,107 @@ if (!gl) {
     }
 }
 
 /**
  * The OES_vertex_array_object extension seems to work incorrectly on some handheld devices,
  * namely the Nexus 5, and Nexus 7 (in 2014/01) when using bufferData before binding the VAO.
  * The tested OS was Android KitKat 4.4.2, the effects were the same in all tested browsers
  * (Chrome, Chrome Beta, Firefox, Firefox Beta), so it is likely a driver bug.
- * These devices have the similar Adreno 320 and Adreno 330 GPUs respectively. 
+ * These devices have the similar Adreno 320 and Adreno 330 GPUs respectively.
  *
  * The issuse resulted from this sequence of actions in a requestAnimationFrame loop:
  * 1. upload some vertex buffers with gl.bufferData (eg. colors)
  * 2. bind the VAO
  * 3. clear the canvas
  * 4. draw (some triangles) to the canvas
  * 5. unbind the VAO
- * 
+ *
  * This caused the drawn triangles to be drawn with black (0) for most of the frames, with some
  * rare frames presenting the correct render results. Interestingly on both devices exactly every
- * 64th frame passed (starting with the very first one), the others failed. 
+ * 64th frame passed (starting with the very first one), the others failed.
  * (Because of this, we test multiple frames.)
- * When positions were uploaded, seemingly nothing was drawn, that's likely because the 
+ * When positions were uploaded, seemingly nothing was drawn, that's likely because the
  * position buffer was also all 0s.
  *
  * The issue did not occur:
  * - if step 1. and 2. were swapped
  * - or if step5 was ommited (probably because that makes step 2 a no-op since the VAO is bound)
  */
 function runBufferDataTest() {
     debug("Testing draws with bufferData");
-    
+
     canvas.width = 50; canvas.height = 50;
     gl.viewport(0, 0, canvas.width, canvas.height);
-    
+
     var testColor = [0, 255, 0, 255];
     var clearColor = [255, 0, 0, 255];
-    
+
     // Where the issue occures, this is the sequence of success/failure every time:
     // result:           success fail fail fail fail ... success fail fail ...
     // currentTestCount: 0       1    2    3    4    ... 64      65   66   ...
     // So with just 1 test it passes, but 2 tests are enough. Here we use 3.
-    var numberOfTests = 3; 
+    var numberOfTests = 3;
     var currentTestCount = 0;
-    
+
     var positionLoc = 0;
     var colorLoc = 1;
     var gridRes = 1;
-    
+
     var program = wtu.setupSimpleVertexColorProgram(gl, positionLoc, colorLoc);
-    
+
     var vao0 = ext.createVertexArrayOES();
     ext.bindVertexArrayOES(vao0);
-    
+
     var buffers = wtu.setupIndexedQuadWithOptions(gl,
     { gridRes: gridRes,
       positionLocation: positionLoc
     });
-    
+
     var colorTypedArray = createColorTypedArray();
-    
+
     var colorBuffer = gl.createBuffer(gl.ARRAY_BUFFER);
     gl.bindBuffer(gl.ARRAY_BUFFER, colorBuffer);
     gl.enableVertexAttribArray(colorLoc);
-    gl.vertexAttribPointer(colorLoc, 4, gl.FLOAT, false, 0, 0); 
-    
+    gl.vertexAttribPointer(colorLoc, 4, gl.FLOAT, false, 0, 0);
+
     ext.bindVertexArrayOES(null);
-    
+
     testDrawing();
-    
+
     function testDrawing() {
         // this order works fine:
         // ext.bindVertexArrayOES(vao0);
         // uploadColor();
-        
+
         // this order doesn't:
         uploadColor();
         ext.bindVertexArrayOES(vao0);
-        
+
         wtu.clearAndDrawIndexedQuad(gl, 1, clearColor);
-        
+
         ext.bindVertexArrayOES(null);
 
         //debug("<span>"+currentTestCount+"</span");
         wtu.checkCanvas(gl, testColor, "should be green")
-        
+
         if (++currentTestCount < numberOfTests) {
             testDrawing();
             // wtu.requestAnimFrame(testDrawing);
         } else {
             // clean up
             ext.deleteVertexArrayOES(vao0);
         }
     }
-    
+
     function uploadColor() {
         gl.bindBuffer(gl.ARRAY_BUFFER, colorBuffer);
         gl.bufferData(gl.ARRAY_BUFFER, colorTypedArray, gl.STREAM_DRAW);
     }
-    
+
     function createColorTypedArray() {
         var colors = [];
         var pOffset = 0;
         for (var yy = 0; yy <= gridRes; ++yy) {
           for (var xx = 0; xx <= gridRes; ++xx) {
             colors[pOffset + 0] = testColor[0];
             colors[pOffset + 1] = testColor[1];
             colors[pOffset + 2] = testColor[2];
--- a/dom/canvas/test/webgl-conf/checkout/conformance/extensions/oes-vertex-array-object.html
+++ b/dom/canvas/test/webgl-conf/checkout/conformance/extensions/oes-vertex-array-object.html
@@ -619,41 +619,35 @@ function runBoundDeleteTests() {
 
     // delete the color buffers AND the position buffer, that are bound to the current VAO
     for (var ii = 0; ii < vaos.length; ++ii) {
         ext.bindVertexArrayOES(vaos[ii]);
 
         gl.deleteBuffer(colorBuffer);
         gl.deleteBuffer(positionBuffer);
 
-        var expectRetained = (ii != 0);
-        var shouldBeStr = (expectRetained ? "retained" : "cleared");
-
+        // The buffers should not be accessible at this point. Deleted objects that are bound
+        // in the current context undergo an automatic unbinding
         var boundPositionBuffer = gl.getVertexAttrib(0, gl.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING);
-        if (expectRetained != (boundPositionBuffer == positionBuffer)) {
-            testFailed("Position attrib stored buffer should be " + shouldBeStr + ".");
+        if(boundPositionBuffer == positionBuffer) {
+            testFailed("Position buffer should be automatically unbound when deleted");
         }
-
         var boundColorBuffer = gl.getVertexAttrib(1, gl.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING);
-        if (expectRetained != (boundColorBuffer == colorBuffer)) {
-            testFailed("Color attrib stored buffer should be " + shouldBeStr + ".");
+        if(boundColorBuffer == colorBuffer) {
+            testFailed("Color buffer should be automatically unbound when deleted");
         }
 
-        // If retained, everything should still work. If cleared, drawing should now fail.
         gl.drawElements(gl.TRIANGLES, 6, gl.UNSIGNED_BYTE, 0);
-        var expectedError = (expectRetained ? gl.NO_ERROR : gl.INVALID_OPERATION);
-        wtu.glErrorShouldBe(gl, expectedError,
-                            "Draw call should " + (expectRetained ? "not " : "") + "fail.");
+        wtu.glErrorShouldBe(gl, gl.INVALID_OPERATION, "Draw call should fail with unbound position and color buffers");
 
-        if (!gl.isBuffer(positionBuffer)) {
-            testFailed("Position buffer should count for isBuffer.");
-        }
-        if (!gl.isBuffer(colorBuffer)) {
-            testFailed("Color buffer should count for isBuffer.");
-        }
+        var isPositionBuffer = gl.isBuffer(positionBuffer);
+        var isColorBuffer    = gl.isBuffer(colorBuffer);
+
+        if(isPositionBuffer)  testFailed("Position buffer should no longer exist after last ref removed");
+        if(isColorBuffer)     testFailed("Color buffer should no longer exist after last ref removed");
     }
 }
 
 function runArrayBufferBindTests() {
     debug("");
     debug("Testing that buffer bindings on VAOs don't affect default VAO ARRAY_BUFFER binding.");
 
     ext.bindVertexArrayOES(null);
--- a/dom/canvas/test/webgl-conf/checkout/conformance/extensions/webgl-compressed-texture-atc.html
+++ b/dom/canvas/test/webgl-conf/checkout/conformance/extensions/webgl-compressed-texture-atc.html
@@ -199,17 +199,22 @@ function runTestExtension() {
     // check that all format enums exist.
     for (name in validFormats) {
         var expected = "0x" + validFormats[name].toString(16);
         var actual = "ext['" + name + "']";
         shouldBe(actual, expected);
     }
 
     supportedFormats = gl.getParameter(gl.COMPRESSED_TEXTURE_FORMATS);
-    shouldBe("supportedFormats.length", "3");
+    // There should be exactly 3 formats for WebGL 1.0 and 13 formats for WebGL 2.0.
+    if (contextVersion < 2) {
+        shouldBe("supportedFormats.length", "3");
+    } else {
+        shouldBe("supportedFormats.length", "13");
+    }
 
     // check that all 3 formats exist
     for (var name in validFormats.length) {
         formatExists(validFormats[name], supportedFormats);
     }
 
     // Test each format
     testATC_RGB();
new file mode 100644
--- /dev/null
+++ b/dom/canvas/test/webgl-conf/checkout/conformance/extensions/webgl-compressed-texture-etc.html
@@ -0,0 +1,154 @@
+<!--
+
+/*
+** Copyright (c) 2015-2016 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
+
+-->
+
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>WebGL WEBGL_compressed_texture_etc Conformance Tests</title>
+<LINK rel="stylesheet" href="../../resources/js-test-style.css"/>
+<script src="../../js/js-test-pre.js"></script>
+<script src="../../js/webgl-test-utils.js"></script>
+</head>
+<body>
+<div id="description"></div>
+<div id="console"></div>
+<script>
+"use strict";
+description("This test verifies the functionality of the WEBGL_compressed_texture_etc extension, if it is available.");
+
+debug("");
+var COMPRESSED_RGB_S3TC_DXT1_EXT              = 0x83F0;
+var COMPRESSED_RGBA_S3TC_DXT1_EXT             = 0x83F1;
+var COMPRESSED_RGBA_S3TC_DXT3_EXT             = 0x83F2;
+var COMPRESSED_RGBA_S3TC_DXT5_EXT             = 0x83F3;
+var COMPRESSED_RGB_PVRTC_4BPPV1_IMG           = 0x8C00;
+var COMPRESSED_RGBA_PVRTC_4BPPV1_IMG          = 0x8C02;
+var ETC1_RGB8_OES                             = 0x8D64;
+var COMPRESSED_R11_EAC                        = 0x9270;
+var COMPRESSED_SIGNED_R11_EAC                 = 0x9271;
+var COMPRESSED_RG11_EAC                       = 0x9272;
+var COMPRESSED_SIGNED_RG11_EAC                = 0x9273;
+var COMPRESSED_RGB8_ETC2                      = 0x9274;
+var COMPRESSED_SRGB8_ETC2                     = 0x9275;
+var COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2  = 0x9276;
+var COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9277;
+var COMPRESSED_RGBA8_ETC2_EAC                 = 0x9278;
+var COMPRESSED_SRGB8_ALPHA8_ETC2_EAC          = 0x9279;
+
+var wtu = WebGLTestUtils;
+var gl = wtu.create3DContext(undefined, undefined);
+var WEBGL_compressed_texture_etc;
+
+var formats = null;
+
+function runTest() {
+  if (!gl) {
+    testFailed("context does not exist");
+  } else {
+    testPassed("context exists");
+
+    var tex = gl.createTexture();
+    gl.bindTexture(gl.TEXTURE_2D, tex);
+
+    var haveExt = gl.getSupportedExtensions().indexOf("WEBGL_compressed_texture_etc") >= 0;
+    WEBGL_compressed_texture_etc = gl.getExtension("WEBGL_compressed_texture_etc");
+
+    var isPositive = true;
+
+    if (haveExt) {
+      if (WEBGL_compressed_texture_etc !== null) {
+        testPassed("WEBGL_compressed_texture_etc listed as supported and getExtension succeeded");
+      } else {
+        testFailed("WEBGL_compressed_texture_etc listed as supported but getExtension failed");
+        return;
+      }
+    } else {
+      if (WEBGL_compressed_texture_etc !== null) {
+        testFailed("WEBGL_compressed_texture_etc listed as supported but getExtension failed");
+        return;
+      } else {
+        testPassed("No WEBGL_compressed_texture_etc support -- this is legal");
+        isPositive = false;
+      }
+    }
+
+    if (isPositive) {
+      shouldBe("WEBGL_compressed_texture_etc.COMPRESSED_R11_EAC", "0x9270");
+      shouldBe("WEBGL_compressed_texture_etc.COMPRESSED_SIGNED_R11_EAC", "0x9271");
+      shouldBe("WEBGL_compressed_texture_etc.COMPRESSED_RG11_EAC", "0x9272");
+      shouldBe("WEBGL_compressed_texture_etc.COMPRESSED_SIGNED_RG11_EAC", "0x9273");
+      shouldBe("WEBGL_compressed_texture_etc.COMPRESSED_RGB8_ETC2", "0x9274");
+      shouldBe("WEBGL_compressed_texture_etc.COMPRESSED_SRGB8_ETC2", "0x9275");
+      shouldBe("WEBGL_compressed_texture_etc.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2", "0x9276");
+      shouldBe("WEBGL_compressed_texture_etc.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2", "0x9277");
+      shouldBe("WEBGL_compressed_texture_etc.COMPRESSED_RGBA8_ETC2_EAC", "0x9278");
+      shouldBe("WEBGL_compressed_texture_etc.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC", "0x9279");
+    }
+
+    wtu.shouldGenerateGLError(gl, gl.INVALID_ENUM, "gl.compressedTexImage2D(gl.TEXTURE_2D, 0, COMPRESSED_RGB_S3TC_DXT1_EXT, 4, 4, 0, new Uint8Array(8))");
+    wtu.shouldGenerateGLError(gl, gl.INVALID_ENUM, "gl.compressedTexImage2D(gl.TEXTURE_2D, 0, COMPRESSED_RGBA_S3TC_DXT1_EXT, 4, 4, 0, new Uint8Array(8))");
+    wtu.shouldGenerateGLError(gl, gl.INVALID_ENUM, "gl.compressedTexImage2D(gl.TEXTURE_2D, 0, COMPRESSED_RGBA_S3TC_DXT5_EXT, 4, 4, 0, new Uint8Array(16))");
+    wtu.shouldGenerateGLError(gl, gl.INVALID_ENUM, "gl.compressedTexImage2D(gl.TEXTURE_2D, 0, ETC1_RGB8_OES, 4, 4, 0, new Uint8Array(8))");
+    wtu.shouldGenerateGLError(gl, gl.INVALID_ENUM, "gl.compressedTexImage2D(gl.TEXTURE_2D, 0, COMPRESSED_RGB_PVRTC_4BPPV1_IMG, 8, 8, 0, new Uint8Array(8))");
+    wtu.shouldGenerateGLError(gl, gl.INVALID_ENUM, "gl.compressedTexImage2D(gl.TEXTURE_2D, 0, COMPRESSED_RGBA_PVRTC_4BPPV1_IMG, 8, 8, 0, new Uint8Array(8))");
+    wtu.shouldGenerateGLError(gl, gl.INVALID_ENUM, "gl.compressedTexImage2D(gl.TEXTURE_3D, 0, COMPRESSED_R11_EAC, 4, 4, 0, new Uint8Array(8))");
+    wtu.shouldGenerateGLError(gl, gl.INVALID_ENUM, "gl.compressedTexSubImage2D(gl.TEXTURE_3D, 0, 0, 0, 4, 4, COMPRESSED_R11_EAC, new Uint8Array(8))");
+
+    var expected = isPositive ? gl.NO_ERROR : gl.INVALID_ENUM;
+    var expectedSub = isPositive ? gl.NO_ERROR : [gl.INVALID_ENUM, gl.INVALID_OPERATION];
+    wtu.shouldGenerateGLError(gl, expected, "gl.compressedTexImage2D(gl.TEXTURE_2D, 0, COMPRESSED_R11_EAC, 4, 4, 0, new Uint8Array(8))");
+    wtu.shouldGenerateGLError(gl, expectedSub, "gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, 4, 4, COMPRESSED_R11_EAC, new Uint8Array(8))");
+    wtu.shouldGenerateGLError(gl, expected, "gl.compressedTexImage2D(gl.TEXTURE_2D, 0, COMPRESSED_SIGNED_R11_EAC, 4, 4, 0, new Uint8Array(8))");
+    wtu.shouldGenerateGLError(gl, expected, "gl.compressedTexImage2D(gl.TEXTURE_2D, 0, COMPRESSED_RG11_EAC, 4, 4, 0, new Uint8Array(16))");
+    wtu.shouldGenerateGLError(gl, expected, "gl.compressedTexImage2D(gl.TEXTURE_2D, 0, COMPRESSED_SIGNED_RG11_EAC, 4, 4, 0, new Uint8Array(16))");
+    wtu.shouldGenerateGLError(gl, expected, "gl.compressedTexImage2D(gl.TEXTURE_2D, 0, COMPRESSED_RGB8_ETC2, 4, 4, 0, new Uint8Array(8))");
+    wtu.shouldGenerateGLError(gl, expected, "gl.compressedTexImage2D(gl.TEXTURE_2D, 0, COMPRESSED_SRGB8_ETC2, 4, 4, 0, new Uint8Array(8))");
+    wtu.shouldGenerateGLError(gl, expected, "gl.compressedTexImage2D(gl.TEXTURE_2D, 0, COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2, 4, 4, 0, new Uint8Array(8))");
+    wtu.shouldGenerateGLError(gl, expected, "gl.compressedTexImage2D(gl.TEXTURE_2D, 0, COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2, 4, 4, 0, new Uint8Array(8))");
+    wtu.shouldGenerateGLError(gl, expected, "gl.compressedTexImage2D(gl.TEXTURE_2D, 0, COMPRESSED_RGBA8_ETC2_EAC, 4, 4, 0, new Uint8Array(16))");
+    wtu.shouldGenerateGLError(gl, expected, "gl.compressedTexImage2D(gl.TEXTURE_2D, 0, COMPRESSED_SRGB8_ALPHA8_ETC2_EAC, 4, 4, 0, new Uint8Array(16))");
+
+    wtu.shouldGenerateGLError(gl, gl.NO_ERROR, "formats = gl.getParameter(gl.COMPRESSED_TEXTURE_FORMATS)");
+    shouldBeNonNull("formats");
+    shouldBe("formats.length", isPositive ? "10" : "0");
+
+    debug("");
+    shouldThrow("gl.compressedTexImage2D(gl.TEXTURE_2D, 0, COMPRESSED_R11_EAC, 4, 4, 0, null)");
+    shouldThrow("gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, 0, 0, COMPRESSED_R11_EAC, null)");
+    shouldThrow("gl.compressedTexImage3D(gl.TEXTURE_2D_ARRAY, 0, COMPRESSED_R11_EAC, 4, 4, 4, 0, null)");
+    shouldThrow("gl.compressedTexSubImage3D(gl.TEXTURE_2D_ARRAY, 0, 0, 0, 0, 0, 0, 0, COMPRESSED_R11_EAC, null)");
+  }
+}
+
+runTest();
+
+var successfullyParsed = true;
+</script>
+<script src="../../js/js-test-post.js"></script>
+</body>
+</html>
--- a/dom/canvas/test/webgl-conf/checkout/conformance/extensions/webgl-compressed-texture-pvrtc.html
+++ b/dom/canvas/test/webgl-conf/checkout/conformance/extensions/webgl-compressed-texture-pvrtc.html
@@ -172,16 +172,17 @@ function runTestExtension() {
     // check that all format enums exist.
     for (name in validFormats) {
         var expected = "0x" + validFormats[name].toString(16);
         var actual = "ext['" + name + "']";
         shouldBe(actual, expected);
     }
 
     supportedFormats = gl.getParameter(gl.COMPRESSED_TEXTURE_FORMATS);
+    // There should be exactly 4 formats for both WebGL 1.0 and WebGL 2.0.
     shouldBe("supportedFormats.length", "4");
 
     // check that all 4 formats exist
     for (var name in validFormats.length) {
         formatExists(validFormats[name], supportedFormats);
     }
 
     // Test each format
new file mode 100644
--- /dev/null
+++ b/dom/canvas/test/webgl-conf/checkout/conformance/extensions/webgl-compressed-texture-s3tc-srgb.html
@@ -0,0 +1,711 @@
+<!--
+
+/*
+** Copyright (c) 2012-2016 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
+
+-->
+
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<link rel="stylesheet" href="../../resources/js-test-style.css"/>
+<script src="../../js/js-test-pre.js"></script>
+<script src="../../js/webgl-test-utils.js"></script>
+<title>WebGL WEBGL_compressed_texture_s3tc_srgb Conformance Tests</title>
+<style>
+img {
+ border: 1px solid black;
+ margin-right: 1em;
+}
+.testimages {
+}
+
+.testimages br {
+  clear: both;
+}
+
+.testimages > div {
+  float: left;
+  margin: 1em;
+}
+</style>
+</head>
+<body>
+<div id="description"></div>
+<canvas id="canvas" width="8" height="8" style="width: 8px; height: 8px;"></canvas>
+<div id="console"></div>
+<script>
+"use strict";
+description("This test verifies the functionality of the WEBGL_compressed_texture_s3tc_srgb extension, if it is available.");
+
+debug("");
+
+// This is the original image from webgl-compressed-texture-s3tc.html but
+// scaled to 0x40..0xbf inclusive and alpha changed from 0x69 to 0x7f.
+var img_4x4_rgba_raw = new Uint8Array([
+    0xbf,0x40,0x40,0x7f,0x40,0xbf,0x40,0xff,0xbf,0x40,0x40,0xff,0x40,0xbf,0x40,0xff,
+    0x40,0xbf,0x40,0xff,0x40,0xbf,0x40,0xff,0xbf,0x40,0x40,0xff,0x40,0xbf,0x40,0xff,
+    0xbf,0x40,0x40,0xff,0xbf,0x40,0x40,0xff,0xbf,0x40,0x40,0xff,0x40,0xbf,0x40,0xff,
+    0x40,0xbf,0x40,0xff,0x40,0xbf,0x40,0xff,0x40,0xbf,0x40,0xff,0x40,0xbf,0x40,0xff,
+]);
+var img_4x4_rgb_dxt1 = new Uint8Array([
+    0x08,0xba,0xe8,0x45,0x44,0x45,0x40,0x55,