diff --git a/components/script/dom/htmlimageelement.rs b/components/script/dom/htmlimageelement.rs
index c36bcb02651..92291600ca3 100644
--- a/components/script/dom/htmlimageelement.rs
+++ b/components/script/dom/htmlimageelement.rs
@@ -21,6 +21,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::{Node, NodeDamage, document_from_node, window_from_node};
use dom::values::UNSIGNED_LONG_MAX;
use dom::virtualmethods::VirtualMethods;
+use heapsize::HeapSizeOf;
use ipc_channel::ipc;
use ipc_channel::router::ROUTER;
use net_traits::image::base::{Image, ImageMetadata};
@@ -33,17 +34,31 @@ use string_cache::Atom;
use url::Url;
use util::str::{DOMString, LengthOrPercentageOrAuto};
+#[derive(JSTraceable, HeapSizeOf)]
+#[allow(dead_code)]
+enum State {
+ Unavailable,
+ PartiallyAvailable,
+ CompletelyAvailable,
+ Broken,
+}
+#[derive(JSTraceable, HeapSizeOf)]
+struct ImageRequest {
+ state: State,
+ url: Option,
+ image: Option>,
+ metadata: Option,
+}
#[dom_struct]
pub struct HTMLImageElement {
htmlelement: HTMLElement,
- url: DOMRefCell