diff --git a/src/dawn_native/RenderPassEncoder.cpp b/src/dawn_native/RenderPassEncoder.cpp
index 7c1a81a..b9cee4f 100644
--- a/src/dawn_native/RenderPassEncoder.cpp
+++ b/src/dawn_native/RenderPassEncoder.cpp
@@ -125,12 +125,6 @@
         });
     }
 
-    void RenderPassEncoder::APISetBlendColor(const Color* color) {
-        GetDevice()->EmitDeprecationWarning(
-            "SetBlendColor has been deprecated in favor of SetBlendConstant.");
-        APISetBlendConstant(color);
-    }
-
     void RenderPassEncoder::APISetViewport(float x,
                                            float y,
                                            float width,
diff --git a/src/dawn_native/RenderPassEncoder.h b/src/dawn_native/RenderPassEncoder.h
index 19fcc80..e7360c5 100644
--- a/src/dawn_native/RenderPassEncoder.h
+++ b/src/dawn_native/RenderPassEncoder.h
@@ -41,7 +41,6 @@
 
         void APISetStencilReference(uint32_t reference);
         void APISetBlendConstant(const Color* color);
-        void APISetBlendColor(const Color* color);  // Deprecated
         void APISetViewport(float x,
                             float y,
                             float width,
diff --git a/src/dawn_native/vulkan/VulkanBackend.cpp b/src/dawn_native/vulkan/VulkanBackend.cpp
index 8e1304f..30aa336 100644
--- a/src/dawn_native/vulkan/VulkanBackend.cpp
+++ b/src/dawn_native/vulkan/VulkanBackend.cpp
@@ -75,19 +75,6 @@
     ExternalImageExportInfoDmaBuf::ExternalImageExportInfoDmaBuf()
         : ExternalImageExportInfoFD(ExternalImageType::DmaBuf) {
     }
-
-    int ExportSignalSemaphoreOpaqueFD(WGPUDevice cDevice, WGPUTexture cTexture) {
-        // Doesn't actually matter if we use OpaqueFD or DmaBuf since these paths are the same right
-        // now. This function will be removed.
-        Device* device = reinterpret_cast<Device*>(cDevice);
-        device->EmitDeprecationWarning(
-            "ExportSignalSemaphoreOpaqueFD is deprecated. Please use ExportVulkanImage instead.");
-        ExternalImageExportInfoOpaqueFD info;
-        if (!ExportVulkanImage(cTexture, VK_IMAGE_LAYOUT_GENERAL, &info)) {
-            return -1;
-        }
-        return info.semaphoreHandles[0];
-    }
 #endif  // DAWN_PLATFORM_LINUX
 
     WGPUTexture WrapVulkanImage(WGPUDevice cDevice, const ExternalImageDescriptorVk* descriptor) {
diff --git a/src/include/dawn_native/VulkanBackend.h b/src/include/dawn_native/VulkanBackend.h
index 88cf03d..ce354b2 100644
--- a/src/include/dawn_native/VulkanBackend.h
+++ b/src/include/dawn_native/VulkanBackend.h
@@ -114,12 +114,6 @@
 
 #endif  // __linux__
 
-        // Exports a signal semaphore from a wrapped texture. This must be called on wrapped
-        // textures before they are destroyed. On failure, returns -1
-        // TODO(enga): Remove after updating Chromium to use ExportVulkanImage.
-        DAWN_NATIVE_EXPORT int ExportSignalSemaphoreOpaqueFD(WGPUDevice cDevice,
-                                                             WGPUTexture cTexture);
-
         // Imports external memory into a Vulkan image. Internally, this uses external memory /
         // semaphore extensions to import the image and wait on the provided synchronizaton
         // primitives before the texture can be used.
diff --git a/src/tests/end2end/QueryTests.cpp b/src/tests/end2end/QueryTests.cpp
index 068117c..5e0b8e0 100644
--- a/src/tests/end2end/QueryTests.cpp
+++ b/src/tests/end2end/QueryTests.cpp
@@ -12,11 +12,6 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-// This file contains test for deprecated parts of Dawn's API while following WebGPU's evolution.
-// It contains test for the "old" behavior that will be deleted once users are migrated, tests that
-// a deprecation warning is emitted when the "old" behavior is used, and tests that an error is
-// emitted when both the old and the new behavior are used (when applicable).
-
 #include "tests/DawnTest.h"
 
 #include "utils/ComboRenderPipelineDescriptor.h"
diff --git a/src/tests/end2end/QueueTests.cpp b/src/tests/end2end/QueueTests.cpp
index bc68d67..d2288e0 100644
--- a/src/tests/end2end/QueueTests.cpp
+++ b/src/tests/end2end/QueueTests.cpp
@@ -12,11 +12,6 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-// This file contains test for deprecated parts of Dawn's API while following WebGPU's evolution.
-// It contains test for the "old" behavior that will be deleted once users are migrated, tests that
-// a deprecation warning is emitted when the "old" behavior is used, and tests that an error is
-// emitted when both the old and the new behavior are used (when applicable).
-
 #include "tests/DawnTest.h"
 
 #include "common/Math.h"
diff --git a/src/utils/ComboRenderPipelineDescriptor.cpp b/src/utils/ComboRenderPipelineDescriptor.cpp
index ab2b5a8..3906830 100644
--- a/src/utils/ComboRenderPipelineDescriptor.cpp
+++ b/src/utils/ComboRenderPipelineDescriptor.cpp
@@ -18,8 +18,6 @@
 
 namespace utils {
 
-    // For creating deprecated render pipeline descriptors
-
     ComboVertexState::ComboVertexState() {
         vertexBufferCount = 0;
 
