diff --git a/Userland/Libraries/LibWeb/HTML/ServiceWorkerContainer.cpp b/Userland/Libraries/LibWeb/HTML/ServiceWorkerContainer.cpp
index 7f6fd502b19..7f0f0c622c2 100644
--- a/Userland/Libraries/LibWeb/HTML/ServiceWorkerContainer.cpp
+++ b/Userland/Libraries/LibWeb/HTML/ServiceWorkerContainer.cpp
@@ -43,4 +43,16 @@ void ServiceWorkerContainer::set_onmessage(WebIDL::CallbackType* event_handler)
set_event_handler_attribute(HTML::EventNames::message, event_handler);
}
+// https://w3c.github.io/ServiceWorker/#dom-serviceworkercontainer-onmessageerror
+WebIDL::CallbackType* ServiceWorkerContainer::onmessageerror()
+{
+ return event_handler_attribute(HTML::EventNames::messageerror);
+}
+
+// https://w3c.github.io/ServiceWorker/#dom-serviceworkercontainer-onmessageerror
+void ServiceWorkerContainer::set_onmessageerror(WebIDL::CallbackType* event_handler)
+{
+ set_event_handler_attribute(HTML::EventNames::messageerror, event_handler);
+}
+
}
diff --git a/Userland/Libraries/LibWeb/HTML/ServiceWorkerContainer.h b/Userland/Libraries/LibWeb/HTML/ServiceWorkerContainer.h
index 66a658cf53b..164de1fc53a 100644
--- a/Userland/Libraries/LibWeb/HTML/ServiceWorkerContainer.h
+++ b/Userland/Libraries/LibWeb/HTML/ServiceWorkerContainer.h
@@ -21,6 +21,8 @@ public:
WebIDL::CallbackType* onmessage();
void set_onmessage(WebIDL::CallbackType*);
+ WebIDL::CallbackType* onmessageerror();
+ void set_onmessageerror(WebIDL::CallbackType*);
private:
explicit ServiceWorkerContainer(JS::Realm&);
diff --git a/Userland/Libraries/LibWeb/HTML/ServiceWorkerContainer.idl b/Userland/Libraries/LibWeb/HTML/ServiceWorkerContainer.idl
index dad3b0f975a..ecf5163dd7b 100644
--- a/Userland/Libraries/LibWeb/HTML/ServiceWorkerContainer.idl
+++ b/Userland/Libraries/LibWeb/HTML/ServiceWorkerContainer.idl
@@ -19,7 +19,7 @@ interface ServiceWorkerContainer : EventTarget {
// events
[FIXME] attribute EventHandler oncontrollerchange;
attribute EventHandler onmessage; // event.source of message events is ServiceWorker object
- [FIXME] attribute EventHandler onmessageerror;
+ attribute EventHandler onmessageerror;
};
dictionary RegistrationOptions {