diff --git a/third_party/blink/renderer/core/dom/element.h b/third_party/blink/renderer/core/dom/element.h
index a9798ae7eb69c8..87837d40183256 100644
--- a/third_party/blink/renderer/core/dom/element.h
+++ b/third_party/blink/renderer/core/dom/element.h
@@ -173,7 +173,6 @@ class CORE_EXPORT Element : public ContainerNode, public Animatable {
DEFINE_ATTRIBUTE_EVENT_LISTENER(beforecut, kBeforecut)
DEFINE_ATTRIBUTE_EVENT_LISTENER(beforepaste, kBeforepaste)
DEFINE_ATTRIBUTE_EVENT_LISTENER(search, kSearch)
- DEFINE_ATTRIBUTE_EVENT_LISTENER(beforematch, kBeforematch)
bool hasAttribute(const QualifiedName&) const;
const AtomicString& getAttribute(const QualifiedName&) const;
diff --git a/third_party/blink/renderer/core/dom/element.idl b/third_party/blink/renderer/core/dom/element.idl
index f168170b223904..8d3531c968a780 100644
--- a/third_party/blink/renderer/core/dom/element.idl
+++ b/third_party/blink/renderer/core/dom/element.idl
@@ -150,7 +150,6 @@ callback ScrollStateCallback = void (ScrollState scrollState);
attribute EventHandler onbeforecut;
attribute EventHandler onbeforepaste;
attribute EventHandler onsearch;
- [RuntimeEnabled=BeforeMatchEvent] attribute EventHandler onbeforematch;
// Element Timing
[CEReactions, Reflect=elementtiming] attribute DOMString elementTiming;
diff --git a/third_party/blink/renderer/core/dom/global_event_handlers.h b/third_party/blink/renderer/core/dom/global_event_handlers.h
index 4581d590abc9fa..53899f8c092b49 100644
--- a/third_party/blink/renderer/core/dom/global_event_handlers.h
+++ b/third_party/blink/renderer/core/dom/global_event_handlers.h
@@ -45,6 +45,7 @@ class GlobalEventHandlers {
kAnimationiteration)
DEFINE_STATIC_ATTRIBUTE_EVENT_LISTENER(animationstart, kAnimationstart)
DEFINE_STATIC_ATTRIBUTE_EVENT_LISTENER(auxclick, kAuxclick)
+ DEFINE_STATIC_ATTRIBUTE_EVENT_LISTENER(beforematch, kBeforematch)
DEFINE_STATIC_ATTRIBUTE_EVENT_LISTENER(blur, kBlur)
DEFINE_STATIC_ATTRIBUTE_EVENT_LISTENER(cancel, kCancel)
DEFINE_STATIC_ATTRIBUTE_EVENT_LISTENER(canplay, kCanplay)
diff --git a/third_party/blink/renderer/core/dom/global_event_handlers.idl b/third_party/blink/renderer/core/dom/global_event_handlers.idl
index fd2e51a108bfee..87683e6c263d58 100644
--- a/third_party/blink/renderer/core/dom/global_event_handlers.idl
+++ b/third_party/blink/renderer/core/dom/global_event_handlers.idl
@@ -33,6 +33,7 @@
LegacyTreatAsPartialInterface
] interface mixin GlobalEventHandlers {
attribute EventHandler onabort;
+ [RuntimeEnabled=BeforeMatchEvent] attribute EventHandler onbeforematch;
attribute EventHandler onblur;
attribute EventHandler oncancel;
attribute EventHandler oncanplay;
diff --git a/third_party/blink/web_tests/editing/text-iterator/onbeforematch.html b/third_party/blink/web_tests/editing/text-iterator/onbeforematch.html
new file mode 100644
index 00000000000000..99352fc23a2fbf
--- /dev/null
+++ b/third_party/blink/web_tests/editing/text-iterator/onbeforematch.html
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
hello
+
+
diff --git a/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-window-after-frame-navigated-expected.txt b/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-window-after-frame-navigated-expected.txt
index 5a99b34d246224..cf7c2fb469ae38 100644
--- a/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-window-after-frame-navigated-expected.txt
+++ b/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-window-after-frame-navigated-expected.txt
@@ -106,6 +106,7 @@ PASS oldChildWindow.onanimationstart is newChildWindow.onanimationstart
PASS oldChildWindow.onappinstalled is newChildWindow.onappinstalled
PASS oldChildWindow.onauxclick is newChildWindow.onauxclick
PASS oldChildWindow.onbeforeinstallprompt is newChildWindow.onbeforeinstallprompt
+PASS oldChildWindow.onbeforematch is newChildWindow.onbeforematch
PASS oldChildWindow.onbeforeprint is newChildWindow.onbeforeprint
PASS oldChildWindow.onbeforeunload is newChildWindow.onbeforeunload
PASS oldChildWindow.onbeforexrselect is newChildWindow.onbeforexrselect
diff --git a/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-window-after-frame-removed-and-gced-expected.txt b/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-window-after-frame-removed-and-gced-expected.txt
index eb291afe805a89..ccc01912b38d97 100644
--- a/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-window-after-frame-removed-and-gced-expected.txt
+++ b/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-window-after-frame-removed-and-gced-expected.txt
@@ -51,6 +51,7 @@ PASS childWindow.onanimationstart is null
PASS childWindow.onappinstalled is null
PASS childWindow.onauxclick is null
PASS childWindow.onbeforeinstallprompt is null
+PASS childWindow.onbeforematch is null
PASS childWindow.onbeforeprint is null
PASS childWindow.onbeforeunload is null
PASS childWindow.onbeforexrselect is null
diff --git a/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-window-after-frame-removed-expected.txt b/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-window-after-frame-removed-expected.txt
index 8ccb81fa5a0ecd..eec14d07ad382d 100644
--- a/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-window-after-frame-removed-expected.txt
+++ b/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-window-after-frame-removed-expected.txt
@@ -51,6 +51,7 @@ PASS childWindow.onanimationstart is null
PASS childWindow.onappinstalled is null
PASS childWindow.onauxclick is null
PASS childWindow.onbeforeinstallprompt is null
+PASS childWindow.onbeforematch is null
PASS childWindow.onbeforeprint is null
PASS childWindow.onbeforeunload is null
PASS childWindow.onbeforexrselect is null
diff --git a/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt b/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt
index d5ba376c7e78e6..939d9503a4195c 100644
--- a/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt
+++ b/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt
@@ -1775,6 +1775,7 @@ interface Document : Node
getter onauxclick
getter onbeforecopy
getter onbeforecut
+ getter onbeforematch
getter onbeforepaste
getter onbeforexrselect
getter onblur
@@ -1980,6 +1981,7 @@ interface Document : Node
setter onauxclick
setter onbeforecopy
setter onbeforecut
+ setter onbeforematch
setter onbeforepaste
setter onbeforexrselect
setter onblur
@@ -2239,7 +2241,6 @@ interface Element : Node
getter nextElementSibling
getter onbeforecopy
getter onbeforecut
- getter onbeforematch
getter onbeforepaste
getter onfullscreenchange
getter onfullscreenerror
@@ -2368,7 +2369,6 @@ interface Element : Node
setter innerHTML
setter onbeforecopy
setter onbeforecut
- setter onbeforematch
setter onbeforepaste
setter onfullscreenchange
setter onfullscreenerror
@@ -3170,6 +3170,7 @@ interface HTMLElement : Element
getter onanimationiteration
getter onanimationstart
getter onauxclick
+ getter onbeforematch
getter onbeforexrselect
getter onblur
getter oncancel
@@ -3294,6 +3295,7 @@ interface HTMLElement : Element
setter onanimationiteration
setter onanimationstart
setter onauxclick
+ setter onbeforematch
setter onbeforexrselect
setter onblur
setter oncancel
@@ -5071,6 +5073,7 @@ interface MathMLElement : Element
getter onanimationiteration
getter onanimationstart
getter onauxclick
+ getter onbeforematch
getter onbeforexrselect
getter onblur
getter oncancel
@@ -5177,6 +5180,7 @@ interface MathMLElement : Element
setter onanimationiteration
setter onanimationstart
setter onauxclick
+ setter onbeforematch
setter onbeforexrselect
setter onblur
setter oncancel
@@ -7271,6 +7275,7 @@ interface SVGElement : Element
getter onanimationiteration
getter onanimationstart
getter onauxclick
+ getter onbeforematch
getter onbeforexrselect
getter onblur
getter oncancel
@@ -7379,6 +7384,7 @@ interface SVGElement : Element
setter onanimationiteration
setter onanimationstart
setter onauxclick
+ setter onbeforematch
setter onbeforexrselect
setter onblur
setter oncancel
@@ -11520,6 +11526,7 @@ namespace CSS
getter onappinstalled
getter onauxclick
getter onbeforeinstallprompt
+ getter onbeforematch
getter onbeforeprint
getter onbeforeunload
getter onbeforexrselect
@@ -11741,6 +11748,7 @@ namespace CSS
setter onappinstalled
setter onauxclick
setter onbeforeinstallprompt
+ setter onbeforematch
setter onbeforeprint
setter onbeforeunload
setter onbeforexrselect