diff --git a/components/script/dom/event.rs b/components/script/dom/event.rs
index a225c7b34392..aa588d099845 100644
--- a/components/script/dom/event.rs
+++ b/components/script/dom/event.rs
@@ -37,6 +37,7 @@ pub enum EventTypeId {
MessageEvent,
MouseEvent,
ProgressEvent,
+ StorageEvent,
UIEvent,
ErrorEvent
}
diff --git a/components/script/dom/mod.rs b/components/script/dom/mod.rs
index 9f12913e23ce..63170f8b70bd 100644
--- a/components/script/dom/mod.rs
+++ b/components/script/dom/mod.rs
@@ -310,6 +310,7 @@ pub mod range;
pub mod screen;
pub mod servohtmlparser;
pub mod storage;
+pub mod storageevent;
pub mod text;
pub mod treewalker;
pub mod uievent;
diff --git a/components/script/dom/storageevent.rs b/components/script/dom/storageevent.rs
new file mode 100644
index 000000000000..18de6ae88f0c
--- /dev/null
+++ b/components/script/dom/storageevent.rs
@@ -0,0 +1,113 @@
+/* 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/. */
+
+use dom::bindings::cell::DOMRefCell;
+use dom::bindings::codegen::Bindings::EventBinding::{EventMethods};
+use dom::bindings::codegen::Bindings::StorageEventBinding;
+use dom::bindings::codegen::Bindings::StorageEventBinding::{StorageEventMethods};
+
+use dom::bindings::codegen::InheritTypes::{EventCast};
+use dom::bindings::error::Fallible;
+use dom::bindings::global::GlobalRef;
+use dom::bindings::js::{MutNullableJS, JSRef, RootedReference, Temporary};
+use dom::bindings::utils::{reflect_dom_object};
+use dom::event::{Event, EventTypeId, EventBubbles, EventCancelable};
+use dom::storage::Storage;
+use util::str::DOMString;
+
+#[dom_struct]
+pub struct StorageEvent {
+ event: Event,
+ key: DOMRefCell