Bug 1494809 - Remove WebGL ATC support. - r=kvark,qdot
authorJeff Gilbert <jgilbert@mozilla.com>
Fri, 05 Oct 2018 18:06:16 -0700
changeset 488934 9e4cbde27912f300400c5d9c306272156bd64ee9
parent 488933 798ec47e6c16bdf317c71c92eb986c674afe5127
child 488935 6e5f7a79d01182b94212b3bc82bd0a5546c051db
push id246
push userfmarier@mozilla.com
push dateSat, 13 Oct 2018 00:15:40 +0000
reviewerskvark, qdot
bugs1494809
milestone64.0a1
Bug 1494809 - Remove WebGL ATC support. - r=kvark,qdot The WG rejected this extension.
dom/bindings/Bindings.conf
dom/canvas/WebGLContext.h
dom/canvas/WebGLContextExtensions.cpp
dom/canvas/WebGLContextUtils.cpp
dom/canvas/WebGLExtensionCompressedTextureATC.cpp
dom/canvas/WebGLExtensions.h
dom/canvas/WebGLFormats.cpp
dom/canvas/WebGLFormats.h
dom/canvas/WebGLStrongTypes.h
dom/canvas/WebGLTextureUpload.cpp
dom/canvas/WebGLTypes.h
dom/canvas/moz.build
dom/canvas/test/webgl-mochitest/ensure-exts/test_WEBGL_compressed_texture_astc.html
dom/canvas/test/webgl-mochitest/ensure-exts/test_WEBGL_compressed_texture_atc.html
dom/canvas/test/webgl-mochitest/ensure-exts/test_WEBGL_compressed_texture_es3.html
dom/canvas/test/webgl-mochitest/ensure-exts/test_WEBGL_compressed_texture_etc.html
dom/canvas/test/webgl-mochitest/mochitest.ini
dom/canvas/test/webgl-mochitest/test_webgl_compressed_texture_es3.html
dom/webidl/WebGLRenderingContext.webidl
--- a/dom/bindings/Bindings.conf
+++ b/dom/bindings/Bindings.conf
@@ -1124,21 +1124,16 @@ DOMInterfaces = {
     'headerFile': 'WebGLExtensions.h'
 },
 
 'WEBGL_compressed_texture_astc': {
     'nativeType': 'mozilla::WebGLExtensionCompressedTextureASTC',
     'headerFile': 'WebGLExtensions.h'
 },
 
-'WEBGL_compressed_texture_atc': {
-    'nativeType': 'mozilla::WebGLExtensionCompressedTextureATC',
-    'headerFile': 'WebGLExtensions.h'
-},
-
 'WEBGL_compressed_texture_etc': {
     'nativeType': 'mozilla::WebGLExtensionCompressedTextureES3',
     'headerFile': 'WebGLExtensions.h'
 },
 
 'WEBGL_compressed_texture_etc1': {
     'nativeType': 'mozilla::WebGLExtensionCompressedTextureETC1',
     'headerFile': 'WebGLExtensions.h'
--- a/dom/canvas/WebGLContext.h
+++ b/dom/canvas/WebGLContext.h
@@ -285,17 +285,16 @@ class WebGLContext
 {
     friend class ScopedDrawCallWrapper;
     friend class ScopedDrawWithTransformFeedback;
     friend class ScopedFakeVertexAttrib0;
     friend class ScopedFBRebinder;
     friend class WebGL2Context;
     friend class WebGLContextUserData;
     friend class WebGLExtensionCompressedTextureASTC;
-    friend class WebGLExtensionCompressedTextureATC;
     friend class WebGLExtensionCompressedTextureBPTC;
     friend class WebGLExtensionCompressedTextureES3;
     friend class WebGLExtensionCompressedTextureETC1;
     friend class WebGLExtensionCompressedTexturePVRTC;
     friend class WebGLExtensionCompressedTextureRGTC;
     friend class WebGLExtensionCompressedTextureS3TC;
     friend class WebGLExtensionCompressedTextureS3TC_SRGB;
     friend class WebGLExtensionDepthTexture;
--- a/dom/canvas/WebGLContextExtensions.cpp
+++ b/dom/canvas/WebGLContextExtensions.cpp
@@ -48,17 +48,16 @@ WebGLContext::GetExtensionString(WebGLEx
         WEBGL_EXTENSION_IDENTIFIER(OES_standard_derivatives)
         WEBGL_EXTENSION_IDENTIFIER(OES_texture_float)
         WEBGL_EXTENSION_IDENTIFIER(OES_texture_float_linear)
         WEBGL_EXTENSION_IDENTIFIER(OES_texture_half_float)
         WEBGL_EXTENSION_IDENTIFIER(OES_texture_half_float_linear)
         WEBGL_EXTENSION_IDENTIFIER(OES_vertex_array_object)
         WEBGL_EXTENSION_IDENTIFIER(WEBGL_color_buffer_float)
         WEBGL_EXTENSION_IDENTIFIER(WEBGL_compressed_texture_astc)
-        WEBGL_EXTENSION_IDENTIFIER(WEBGL_compressed_texture_atc)
         WEBGL_EXTENSION_IDENTIFIER(WEBGL_compressed_texture_etc)
         WEBGL_EXTENSION_IDENTIFIER(WEBGL_compressed_texture_etc1)
         WEBGL_EXTENSION_IDENTIFIER(WEBGL_compressed_texture_pvrtc)
         WEBGL_EXTENSION_IDENTIFIER(WEBGL_compressed_texture_s3tc)
         WEBGL_EXTENSION_IDENTIFIER(WEBGL_compressed_texture_s3tc_srgb)
         WEBGL_EXTENSION_IDENTIFIER(WEBGL_debug_renderer_info)
         WEBGL_EXTENSION_IDENTIFIER(WEBGL_debug_shaders)
         WEBGL_EXTENSION_IDENTIFIER(WEBGL_depth_texture)
@@ -137,18 +136,16 @@ WebGLContext::IsExtensionSupported(WebGL
 
     // OES_
     case WebGLExtensionID::OES_texture_float_linear:
         return gl->IsSupported(gl::GLFeature::texture_float_linear);
 
     // WEBGL_
     case WebGLExtensionID::WEBGL_compressed_texture_astc:
         return WebGLExtensionCompressedTextureASTC::IsSupported(this);
-    case WebGLExtensionID::WEBGL_compressed_texture_atc:
-        return gl->IsExtensionSupported(gl::GLContext::AMD_compressed_ATC_texture);
     case WebGLExtensionID::WEBGL_compressed_texture_etc:
         return gl->IsSupported(gl::GLFeature::ES3_compatibility) &&
                !gl->IsANGLE();
     case WebGLExtensionID::WEBGL_compressed_texture_etc1:
         return gl->IsExtensionSupported(gl::GLContext::OES_compressed_ETC1_RGB8_texture) &&
                !gl->IsANGLE();
     case WebGLExtensionID::WEBGL_compressed_texture_pvrtc:
         return gl->IsExtensionSupported(gl::GLContext::IMG_texture_compression_pvrtc);
@@ -397,19 +394,16 @@ WebGLContext::EnableExtension(WebGLExten
 
     // WEBGL_
     case WebGLExtensionID::WEBGL_color_buffer_float:
         obj = new WebGLExtensionColorBufferFloat(this);
         break;
     case WebGLExtensionID::WEBGL_compressed_texture_astc:
         obj = new WebGLExtensionCompressedTextureASTC(this);
         break;
-    case WebGLExtensionID::WEBGL_compressed_texture_atc:
-        obj = new WebGLExtensionCompressedTextureATC(this);
-        break;
     case WebGLExtensionID::WEBGL_compressed_texture_etc:
         obj = new WebGLExtensionCompressedTextureES3(this);
         break;
     case WebGLExtensionID::WEBGL_compressed_texture_etc1:
         obj = new WebGLExtensionCompressedTextureETC1(this);
         break;
     case WebGLExtensionID::WEBGL_compressed_texture_pvrtc:
         obj = new WebGLExtensionCompressedTexturePVRTC(this);
--- a/dom/canvas/WebGLContextUtils.cpp
+++ b/dom/canvas/WebGLContextUtils.cpp
@@ -276,19 +276,16 @@ WebGLContext::ErrorName(GLenum error)
 // This version is fallible and will return nullptr if unrecognized.
 const char*
 GetEnumName(const GLenum val, const char* const defaultRet)
 {
     switch (val) {
 #define XX(x) case LOCAL_GL_##x: return #x
         XX(NONE);
         XX(ALPHA);
-        XX(ATC_RGB);
-        XX(ATC_RGBA_EXPLICIT_ALPHA);
-        XX(ATC_RGBA_INTERPOLATED_ALPHA);
         XX(COMPRESSED_RGBA_PVRTC_2BPPV1);
         XX(COMPRESSED_RGBA_PVRTC_4BPPV1);
         XX(COMPRESSED_RGBA_S3TC_DXT1_EXT);
         XX(COMPRESSED_RGBA_S3TC_DXT3_EXT);
         XX(COMPRESSED_RGBA_S3TC_DXT5_EXT);
         XX(COMPRESSED_RGB_PVRTC_2BPPV1);
         XX(COMPRESSED_RGB_PVRTC_4BPPV1);
         XX(COMPRESSED_RGB_S3TC_DXT1_EXT);
@@ -630,59 +627,16 @@ EnumString(const GLenum val)
 void
 WebGLContext::ErrorInvalidEnumArg(const char* argName, GLenum val) const
 {
     nsCString enumName;
     EnumName(val, &enumName);
     ErrorInvalidEnum("Bad `%s`: %s", argName, enumName.BeginReading());
 }
 
-bool
-IsCompressedTextureFormat(GLenum format)
-{
-    switch (format) {
-    case LOCAL_GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
-    case LOCAL_GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
-    case LOCAL_GL_COMPRESSED_RGBA_S3TC_DXT3_EXT:
-    case LOCAL_GL_COMPRESSED_RGBA_S3TC_DXT5_EXT:
-    case LOCAL_GL_COMPRESSED_SRGB_S3TC_DXT1_EXT:
-    case LOCAL_GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT:
-    case LOCAL_GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT:
-    case LOCAL_GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT:
-    case LOCAL_GL_ATC_RGB:
-    case LOCAL_GL_ATC_RGBA_EXPLICIT_ALPHA:
-    case LOCAL_GL_ATC_RGBA_INTERPOLATED_ALPHA:
-    case LOCAL_GL_COMPRESSED_RGB_PVRTC_4BPPV1:
-    case LOCAL_GL_COMPRESSED_RGB_PVRTC_2BPPV1:
-    case LOCAL_GL_COMPRESSED_RGBA_PVRTC_4BPPV1:
-    case LOCAL_GL_COMPRESSED_RGBA_PVRTC_2BPPV1:
-    case LOCAL_GL_ETC1_RGB8_OES:
-    case LOCAL_GL_COMPRESSED_R11_EAC:
-    case LOCAL_GL_COMPRESSED_SIGNED_R11_EAC:
-    case LOCAL_GL_COMPRESSED_RG11_EAC:
-    case LOCAL_GL_COMPRESSED_SIGNED_RG11_EAC:
-    case LOCAL_GL_COMPRESSED_RGB8_ETC2:
-    case LOCAL_GL_COMPRESSED_SRGB8_ETC2:
-    case LOCAL_GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:
-    case LOCAL_GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:
-    case LOCAL_GL_COMPRESSED_RGBA8_ETC2_EAC:
-    case LOCAL_GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:
-        return true;
-    default:
-        return false;
-    }
-}
-
-
-bool
-IsTextureFormatCompressed(TexInternalFormat format)
-{
-    return IsCompressedTextureFormat(format.get());
-}
-
 GLenum
 WebGLContext::GetAndFlushUnderlyingGLErrors() const
 {
     // Get and clear GL error in ALL cases.
     GLenum error = gl->fGetError();
 
     // Only store in mUnderlyingGLError if is hasn't already recorded an
     // error.
deleted file mode 100644
--- a/dom/canvas/WebGLExtensionCompressedTextureATC.cpp
+++ /dev/null
@@ -1,47 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this file,
- * You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#include "WebGLExtensions.h"
-
-#include "GLContext.h"
-#include "mozilla/dom/WebGLRenderingContextBinding.h"
-#include "WebGLContext.h"
-#include "WebGLFormats.h"
-
-#ifdef FOO
-#error FOO is already defined! We use FOO() macros to keep things succinct in this file.
-#endif
-
-namespace mozilla {
-
-WebGLExtensionCompressedTextureATC::WebGLExtensionCompressedTextureATC(WebGLContext* webgl)
-    : WebGLExtensionBase(webgl)
-{
-    RefPtr<WebGLContext> webgl_ = webgl; // Bug 1201275
-    const auto fnAdd = [&webgl_](GLenum sizedFormat, webgl::EffectiveFormat effFormat) {
-        auto& fua = webgl_->mFormatUsage;
-
-        auto usage = fua->EditUsage(effFormat);
-        usage->isFilterable = true;
-        fua->AllowSizedTexFormat(sizedFormat, usage);
-
-        webgl_->mCompressedTextureFormats.AppendElement(sizedFormat);
-    };
-
-#define FOO(x) LOCAL_GL_ ## x, webgl::EffectiveFormat::x
-
-    fnAdd(FOO(ATC_RGB_AMD));
-    fnAdd(FOO(ATC_RGBA_EXPLICIT_ALPHA_AMD));
-    fnAdd(FOO(ATC_RGBA_INTERPOLATED_ALPHA_AMD));
-
-#undef FOO
-}
-
-WebGLExtensionCompressedTextureATC::~WebGLExtensionCompressedTextureATC()
-{
-}
-
-IMPL_WEBGL_EXTENSION_GOOP(WebGLExtensionCompressedTextureATC, WEBGL_compressed_texture_atc)
-
-} // namespace mozilla
--- a/dom/canvas/WebGLExtensions.h
+++ b/dom/canvas/WebGLExtensions.h
@@ -74,26 +74,16 @@ public:
 
     void GetSupportedProfiles(dom::Nullable< nsTArray<nsString> >& retval) const;
 
     static bool IsSupported(const WebGLContext* webgl);
 
     DECL_WEBGL_EXTENSION_GOOP
 };
 
-class WebGLExtensionCompressedTextureATC
-    : public WebGLExtensionBase
-{
-public:
-    explicit WebGLExtensionCompressedTextureATC(WebGLContext*);
-    virtual ~WebGLExtensionCompressedTextureATC();
-
-    DECL_WEBGL_EXTENSION_GOOP
-};
-
 class WebGLExtensionCompressedTextureBPTC final
     : public WebGLExtensionBase
 {
 public:
     explicit WebGLExtensionCompressedTextureBPTC(WebGLContext* webgl);
 
     static bool IsSupported(const WebGLContext* webgl);
 
--- a/dom/canvas/WebGLFormats.cpp
+++ b/dom/canvas/WebGLFormats.cpp
@@ -97,21 +97,16 @@ InitCompressedFormatInfo()
     AddCompressedFormatInfo(EffectiveFormat::COMPRESSED_SRGB8_ALPHA8_ETC2_EAC         , 128, 4, 4, CompressionFamily::ES3);
     AddCompressedFormatInfo(EffectiveFormat::COMPRESSED_R11_EAC                       ,  64, 4, 4, CompressionFamily::ES3);
     AddCompressedFormatInfo(EffectiveFormat::COMPRESSED_RG11_EAC                      , 128, 4, 4, CompressionFamily::ES3);
     AddCompressedFormatInfo(EffectiveFormat::COMPRESSED_SIGNED_R11_EAC                ,  64, 4, 4, CompressionFamily::ES3);
     AddCompressedFormatInfo(EffectiveFormat::COMPRESSED_SIGNED_RG11_EAC               , 128, 4, 4, CompressionFamily::ES3);
     AddCompressedFormatInfo(EffectiveFormat::COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 ,  64, 4, 4, CompressionFamily::ES3);
     AddCompressedFormatInfo(EffectiveFormat::COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,  64, 4, 4, CompressionFamily::ES3);
 
-    // AMD_compressed_ATC_texture
-    AddCompressedFormatInfo(EffectiveFormat::ATC_RGB_AMD                    ,  64, 4, 4, CompressionFamily::ATC);
-    AddCompressedFormatInfo(EffectiveFormat::ATC_RGBA_EXPLICIT_ALPHA_AMD    , 128, 4, 4, CompressionFamily::ATC);
-    AddCompressedFormatInfo(EffectiveFormat::ATC_RGBA_INTERPOLATED_ALPHA_AMD, 128, 4, 4, CompressionFamily::ATC);
-
     // EXT_texture_compression_bptc
     AddCompressedFormatInfo(EffectiveFormat::COMPRESSED_RGBA_BPTC_UNORM        , 16*8, 4, 4, CompressionFamily::BPTC);
     AddCompressedFormatInfo(EffectiveFormat::COMPRESSED_SRGB_ALPHA_BPTC_UNORM  , 16*8, 4, 4, CompressionFamily::BPTC);
     AddCompressedFormatInfo(EffectiveFormat::COMPRESSED_RGB_BPTC_SIGNED_FLOAT  , 16*8, 4, 4, CompressionFamily::BPTC);
     AddCompressedFormatInfo(EffectiveFormat::COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT, 16*8, 4, 4, CompressionFamily::BPTC);
 
     // EXT_texture_compression_rgtc
     AddCompressedFormatInfo(EffectiveFormat::COMPRESSED_RED_RGTC1       ,  8*8, 4, 4, CompressionFamily::RGTC);
@@ -325,21 +320,16 @@ InitFormatInfo()
     AddFormatInfo(FOO(COMPRESSED_SRGB8_ALPHA8_ETC2_EAC         ), 0, 1,1,1,1, 0,0, UnsizedFormat::RGBA, true , ComponentType::NormUInt);
     AddFormatInfo(FOO(COMPRESSED_R11_EAC                       ), 0, 1,0,0,0, 0,0, UnsizedFormat::R   , false, ComponentType::NormUInt);
     AddFormatInfo(FOO(COMPRESSED_RG11_EAC                      ), 0, 1,1,0,0, 0,0, UnsizedFormat::RG  , false, ComponentType::NormUInt);
     AddFormatInfo(FOO(COMPRESSED_SIGNED_R11_EAC                ), 0, 1,0,0,0, 0,0, UnsizedFormat::R   , false, ComponentType::NormInt );
     AddFormatInfo(FOO(COMPRESSED_SIGNED_RG11_EAC               ), 0, 1,1,0,0, 0,0, UnsizedFormat::RG  , false, ComponentType::NormInt );
     AddFormatInfo(FOO(COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 ), 0, 1,1,1,1, 0,0, UnsizedFormat::RGBA, false, ComponentType::NormUInt);
     AddFormatInfo(FOO(COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2), 0, 1,1,1,1, 0,0, UnsizedFormat::RGBA, true , ComponentType::NormUInt);
 
-    // AMD_compressed_ATC_texture
-    AddFormatInfo(FOO(ATC_RGB_AMD                    ), 0, 1,1,1,0, 0,0, UnsizedFormat::RGB , false, ComponentType::NormUInt);
-    AddFormatInfo(FOO(ATC_RGBA_EXPLICIT_ALPHA_AMD    ), 0, 1,1,1,1, 0,0, UnsizedFormat::RGBA, false, ComponentType::NormUInt);
-    AddFormatInfo(FOO(ATC_RGBA_INTERPOLATED_ALPHA_AMD), 0, 1,1,1,1, 0,0, UnsizedFormat::RGBA, false, ComponentType::NormUInt);
-
     // EXT_texture_compression_bptc
     AddFormatInfo(FOO(COMPRESSED_RGBA_BPTC_UNORM        ), 0, 1,1,1,1, 0,0, UnsizedFormat::RGBA, false, ComponentType::NormUInt);
     AddFormatInfo(FOO(COMPRESSED_SRGB_ALPHA_BPTC_UNORM  ), 0, 1,1,1,1, 0,0, UnsizedFormat::RGBA, true , ComponentType::NormUInt);
     AddFormatInfo(FOO(COMPRESSED_RGB_BPTC_SIGNED_FLOAT  ), 0, 1,1,1,0, 0,0, UnsizedFormat::RGB , false, ComponentType::Float   );
     AddFormatInfo(FOO(COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT), 0, 1,1,1,0, 0,0, UnsizedFormat::RGB , false, ComponentType::Float   );
 
     // EXT_texture_compression_rgtc
     AddFormatInfo(FOO(COMPRESSED_RED_RGTC1       ), 0, 1,0,0,0, 0,0, UnsizedFormat::R , false, ComponentType::NormUInt);
--- a/dom/canvas/WebGLFormats.h
+++ b/dom/canvas/WebGLFormats.h
@@ -103,21 +103,16 @@ enum class EffectiveFormat : EffectiveFo
     COMPRESSED_SIGNED_RG11_EAC,
     COMPRESSED_RGB8_ETC2,
     COMPRESSED_SRGB8_ETC2,
     COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,
     COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,
     COMPRESSED_RGBA8_ETC2_EAC,
     COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,
 
-    // AMD_compressed_ATC_texture
-    ATC_RGB_AMD,
-    ATC_RGBA_EXPLICIT_ALPHA_AMD,
-    ATC_RGBA_INTERPOLATED_ALPHA_AMD,
-
     // EXT_texture_compression_bptc
     COMPRESSED_RGBA_BPTC_UNORM,
     COMPRESSED_SRGB_ALPHA_BPTC_UNORM,
     COMPRESSED_RGB_BPTC_SIGNED_FLOAT,
     COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT,
 
     // EXT_texture_compression_rgtc
     COMPRESSED_RED_RGTC1,
@@ -218,17 +213,16 @@ enum class ComponentType : uint8_t {
     NormInt,      // RGBA8_SNORM
     NormUInt,     // RGBA8, DEPTH_COMPONENT16
     Float,        // RGBA32F
     Special,      // DEPTH24_STENCIL8
 };
 
 enum class CompressionFamily : uint8_t {
     ASTC,
-    ATC,
     BPTC,
     ES3, // ETC2 or EAC
     ETC1,
     PVRTC,
     RGTC,
     S3TC,
 };
 
--- a/dom/canvas/WebGLStrongTypes.h
+++ b/dom/canvas/WebGLStrongTypes.h
@@ -345,17 +345,16 @@ STRONG_GLENUM_BEGIN(TexInternalFormat)
     STRONG_GLENUM_VALUE(COMPRESSED_RGBA_S3TC_DXT1_EXT),
     STRONG_GLENUM_VALUE(COMPRESSED_RGBA_S3TC_DXT3_EXT),
     STRONG_GLENUM_VALUE(COMPRESSED_RGBA_S3TC_DXT5_EXT),
     STRONG_GLENUM_VALUE(COMPRESSED_SRGB_S3TC_DXT1_EXT),
     STRONG_GLENUM_VALUE(COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT),
     STRONG_GLENUM_VALUE(COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT),
     STRONG_GLENUM_VALUE(COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT),
     STRONG_GLENUM_VALUE(DEPTH_STENCIL),
-    STRONG_GLENUM_VALUE(ATC_RGBA_INTERPOLATED_ALPHA),
     STRONG_GLENUM_VALUE(RGBA32F),
     STRONG_GLENUM_VALUE(RGB32F),
     STRONG_GLENUM_VALUE(ALPHA32F_EXT),
     STRONG_GLENUM_VALUE(LUMINANCE32F_EXT),
     STRONG_GLENUM_VALUE(LUMINANCE_ALPHA32F_EXT),
     STRONG_GLENUM_VALUE(RGBA16F),
     STRONG_GLENUM_VALUE(RGB16F),
     STRONG_GLENUM_VALUE(ALPHA16F_EXT),
@@ -367,18 +366,16 @@ STRONG_GLENUM_BEGIN(TexInternalFormat)
     STRONG_GLENUM_VALUE(COMPRESSED_RGBA_PVRTC_4BPPV1),
     STRONG_GLENUM_VALUE(COMPRESSED_RGBA_PVRTC_2BPPV1),
     STRONG_GLENUM_VALUE(R11F_G11F_B10F),
     STRONG_GLENUM_VALUE(RGB9_E5),
     STRONG_GLENUM_VALUE(SRGB),
     STRONG_GLENUM_VALUE(SRGB8),
     STRONG_GLENUM_VALUE(SRGB_ALPHA),
     STRONG_GLENUM_VALUE(SRGB8_ALPHA8),
-    STRONG_GLENUM_VALUE(ATC_RGB),
-    STRONG_GLENUM_VALUE(ATC_RGBA_EXPLICIT_ALPHA),
     STRONG_GLENUM_VALUE(DEPTH_COMPONENT32F),
     STRONG_GLENUM_VALUE(DEPTH32F_STENCIL8),
     STRONG_GLENUM_VALUE(RGB565),
     STRONG_GLENUM_VALUE(ETC1_RGB8_OES),
     STRONG_GLENUM_VALUE(RGBA32UI),
     STRONG_GLENUM_VALUE(RGB32UI),
     STRONG_GLENUM_VALUE(RGBA16UI),
     STRONG_GLENUM_VALUE(RGB16UI),
--- a/dom/canvas/WebGLTextureUpload.cpp
+++ b/dom/canvas/WebGLTextureUpload.cpp
@@ -997,17 +997,17 @@ ValidateCompressedTexImageRestrictions(W
                                          " or 2.",
                                          format->name);
             return false;
         }
 
         break;
 
     // Default: There are no restrictions on CompressedTexImage.
-    default: // ATC, ETC1, ES3
+    default: // ETC1, ES3
         break;
     }
 
     return true;
 }
 
 static bool
 ValidateTargetForFormat(WebGLContext* webgl, TexImageTarget target,
@@ -1025,17 +1025,16 @@ ValidateTargetForFormat(WebGLContext* we
         if (format->compression) {
             switch (format->compression->family) {
             case webgl::CompressionFamily::ES3:
             case webgl::CompressionFamily::S3TC:
                 if (target == LOCAL_GL_TEXTURE_3D)
                     return false;
                 break;
 
-            case webgl::CompressionFamily::ATC:
             case webgl::CompressionFamily::ETC1:
             case webgl::CompressionFamily::PVRTC:
             case webgl::CompressionFamily::RGTC:
                 if (target == LOCAL_GL_TEXTURE_3D ||
                     target == LOCAL_GL_TEXTURE_2D_ARRAY)
                 {
                     return false;
                 }
@@ -1561,17 +1560,16 @@ WebGLTexture::CompressedTexSubImage(TexI
     }
 
     ////////////////////////////////////
     // Check that source is compatible with dest
 
     switch (format->compression->family) {
     // Forbidden:
     case webgl::CompressionFamily::ETC1:
-    case webgl::CompressionFamily::ATC:
         mContext->ErrorInvalidOperation("Format does not allow sub-image"
                                         " updates.");
         return;
 
     // Block-aligned:
     case webgl::CompressionFamily::ES3:  // Yes, the ES3 formats don't match the ES3
     case webgl::CompressionFamily::S3TC: // default behavior.
     case webgl::CompressionFamily::BPTC:
--- a/dom/canvas/WebGLTypes.h
+++ b/dom/canvas/WebGLTypes.h
@@ -156,17 +156,16 @@ enum class WebGLExtensionID : uint8_t {
     OES_standard_derivatives,
     OES_texture_float,
     OES_texture_float_linear,
     OES_texture_half_float,
     OES_texture_half_float_linear,
     OES_vertex_array_object,
     WEBGL_color_buffer_float,
     WEBGL_compressed_texture_astc,
-    WEBGL_compressed_texture_atc,
     WEBGL_compressed_texture_etc,
     WEBGL_compressed_texture_etc1,
     WEBGL_compressed_texture_pvrtc,
     WEBGL_compressed_texture_s3tc,
     WEBGL_compressed_texture_s3tc_srgb,
     WEBGL_debug_renderer_info,
     WEBGL_debug_shaders,
     WEBGL_depth_texture,
--- a/dom/canvas/moz.build
+++ b/dom/canvas/moz.build
@@ -120,17 +120,16 @@ UNIFIED_SOURCES += [
     'WebGLContextValidate.cpp',
     'WebGLContextVertexArray.cpp',
     'WebGLContextVertices.cpp',
     'WebGLExtensionBase.cpp',
     'WebGLExtensionBlendMinMax.cpp',
     'WebGLExtensionColorBufferFloat.cpp',
     'WebGLExtensionColorBufferHalfFloat.cpp',
     'WebGLExtensionCompressedTextureASTC.cpp',
-    'WebGLExtensionCompressedTextureATC.cpp',
     'WebGLExtensionCompressedTextureBPTC.cpp',
     'WebGLExtensionCompressedTextureES3.cpp',
     'WebGLExtensionCompressedTextureETC1.cpp',
     'WebGLExtensionCompressedTexturePVRTC.cpp',
     'WebGLExtensionCompressedTextureRGTC.cpp',
     'WebGLExtensionCompressedTextureS3TC.cpp',
     'WebGLExtensionCompressedTextureS3TC_SRGB.cpp',
     'WebGLExtensionDebugRendererInfo.cpp',
new file mode 100644
--- /dev/null
+++ b/dom/canvas/test/webgl-mochitest/ensure-exts/test_WEBGL_compressed_texture_astc.html
@@ -0,0 +1,17 @@
+<!DOCTYPE HTML>
+<html>
+  <head>
+    <meta charset='utf-8'/>
+    <script src='/tests/SimpleTest/SimpleTest.js'></script>
+    <link rel='stylesheet' href='/tests/SimpleTest/test.css'>
+    <script src='ensure-ext.js'></script>
+  </head>
+  <body>
+    <script>
+
+'use strict';
+EnsureExt('WEBGL_compressed_texture_astc');
+
+    </script>
+  </body>
+</html>
deleted file mode 100644
--- a/dom/canvas/test/webgl-mochitest/ensure-exts/test_WEBGL_compressed_texture_atc.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-  <head>
-    <meta charset='utf-8'/>
-    <script src='/tests/SimpleTest/SimpleTest.js'></script>
-    <link rel='stylesheet' href='/tests/SimpleTest/test.css'>
-    <script src='ensure-ext.js'></script>
-  </head>
-  <body>
-    <script>
-
-'use strict';
-EnsureExt('WEBGL_compressed_texture_atc');
-
-    </script>
-  </body>
-</html>
rename from dom/canvas/test/webgl-mochitest/ensure-exts/test_WEBGL_compressed_texture_es3.html
rename to dom/canvas/test/webgl-mochitest/ensure-exts/test_WEBGL_compressed_texture_etc.html
--- a/dom/canvas/test/webgl-mochitest/mochitest.ini
+++ b/dom/canvas/test/webgl-mochitest/mochitest.ini
@@ -31,19 +31,19 @@ fail-if = (os == 'android') || (os == 'l
 [ensure-exts/test_EXT_texture_compression_rgtc.html]
 fail-if = (os == 'android') || (os == 'linux') || (os == 'mac') || (os == 'win')
 [ensure-exts/test_EXT_texture_filter_anisotropic.html]
 fail-if = (os == 'android') || (os == 'linux')
 [ensure-exts/test_OES_standard_derivatives.html]
 fail-if = (os == 'android')
 [ensure-exts/test_WEBGL_color_buffer_float.html]
 fail-if = (os == 'android')
-[ensure-exts/test_WEBGL_compressed_texture_atc.html]
+[ensure-exts/test_WEBGL_compressed_texture_astc.html]
 fail-if = (os == 'android') || (os == 'linux') || (os == 'mac') || (os == 'win')
-[ensure-exts/test_WEBGL_compressed_texture_es3.html]
+[ensure-exts/test_WEBGL_compressed_texture_etc.html]
 fail-if = (os == 'android') || (os == 'mac') || (os == 'win')
 [ensure-exts/test_WEBGL_compressed_texture_etc1.html]
 fail-if = (os == 'linux') || (os == 'mac') || (os == 'win')
 [ensure-exts/test_WEBGL_compressed_texture_pvrtc.html]
 fail-if = (os == 'android') || (os == 'linux') || (os == 'mac') || (os == 'win')
 [ensure-exts/test_WEBGL_compressed_texture_s3tc.html]
 fail-if = (os == 'android')
 [ensure-exts/test_WEBGL_depth_texture.html]
--- a/dom/canvas/test/webgl-mochitest/test_webgl_compressed_texture_es3.html
+++ b/dom/canvas/test/webgl-mochitest/test_webgl_compressed_texture_es3.html
@@ -1,17 +1,17 @@
 <!DOCTYPE html>
 <html>
 <head>
 <meta charset="utf-8">
 <script src="/tests/SimpleTest/SimpleTest.js"></script>
 <link rel="stylesheet" href="/tests/SimpleTest/test.css">
 <script src="webgl-util.js"></script>
 <script src="es3-data.js"></script>
-<title>WebGL test: test WEBGL_compressed_texture_es3 extension</title>
+<title>WebGL test: test WEBGL_compressed_texture_etc extension</title>
 <style>
 img {
  border: 1px solid black;
  margin-right: 1em;
 }
 .testimages {
 }
 
@@ -119,43 +119,43 @@ function runTest() {
     } else {
         ok(true, "WebGL context exists");
         setupUnitQuad();
 
         // Run tests with extension disabled
         runTestDisabled();
 
         // Query the extension and store globally so shouldBe can access it
-        ext = gl.getExtension("WEBGL_compressed_texture_es3");
+        ext = gl.getExtension("WEBGL_compressed_texture_etc");
         if (!ext) {
-            ok(true, "No WEBGL_compressed_texture_es3 support -- this is legal");
+            ok(true, "No WEBGL_compressed_texture_etc support -- this is legal");
             runSupportedTest(false);
         } else {
-            ok(true, "Successfully enabled WEBGL_compressed_texture_es3 extension");
+            ok(true, "Successfully enabled WEBGL_compressed_texture_etc extension");
 
             runSupportedTest(true);
             runTestExtension();
         }
     }
     SimpleTest.finish();
 }
 
 function runSupportedTest(extensionEnabled) {
     var supported = gl.getSupportedExtensions();
-    if (supported.includes("WEBGL_compressed_texture_es3")) {
+    if (supported.includes("WEBGL_compressed_texture_etc")) {
         if (extensionEnabled) {
-            ok(true, "WEBGL_compressed_texture_es3 listed as supported and getExtension succeeded");
+            ok(true, "WEBGL_compressed_texture_etc listed as supported and getExtension succeeded");
         } else {
-            ok(false, "WEBGL_compressed_texture_es3 listed as supported but getExtension failed");
+            ok(false, "WEBGL_compressed_texture_etc listed as supported but getExtension failed");
         }
     } else {
         if (extensionEnabled) {
-            ok(false, "WEBGL_compressed_texture_es3 not listed as supported but getExtension succeeded");
+            ok(false, "WEBGL_compressed_texture_etc not listed as supported but getExtension succeeded");
         } else {
-            ok(true, "WEBGL_compressed_texture_es3 not listed as supported and getExtension failed -- this is legal");
+            ok(true, "WEBGL_compressed_texture_etc not listed as supported and getExtension failed -- this is legal");
         }
     }
 }
 
 function runTestDisabled() {
     is(gl.getParameter(gl.COMPRESSED_TEXTURE_FORMATS).length, 0,
        "Should be no compressed texture formats");
 }
--- a/dom/webidl/WebGLRenderingContext.webidl
+++ b/dom/webidl/WebGLRenderingContext.webidl
@@ -882,24 +882,16 @@ interface WEBGL_compressed_texture_astc 
     const GLenum COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR = 0x93DC;
     const GLenum COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR = 0x93DD;
 
     // Profile query support.
     sequence<DOMString>? getSupportedProfiles();
 };
 
 [NoInterfaceObject]
-interface WEBGL_compressed_texture_atc
-{
-    const GLenum COMPRESSED_RGB_ATC_WEBGL                     = 0x8C92;
-    const GLenum COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL     = 0x8C93;
-    const GLenum COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL = 0x87EE;
-};
-
-[NoInterfaceObject]
 interface WEBGL_compressed_texture_etc
 {
     const GLenum COMPRESSED_R11_EAC                                 = 0x9270;
     const GLenum COMPRESSED_SIGNED_R11_EAC                          = 0x9271;
     const GLenum COMPRESSED_RG11_EAC                                = 0x9272;
     const GLenum COMPRESSED_SIGNED_RG11_EAC                         = 0x9273;
     const GLenum COMPRESSED_RGB8_ETC2                               = 0x9274;
     const GLenum COMPRESSED_SRGB8_ETC2                              = 0x9275;