Remove MicroData implementation

Per the discussion on blink-dev we should remove the MicroData implementation.
There's questions of quality, a maintainer, and that no port of WebKit ever
turned it on.

See: https://groups.google.com/a/chromium.org/forum/?fromgroups=#!topic/blink-dev/b54nW_mGSVU

R=ojan@chromium.org,abarth@chromium.org

Review URL: https://codereview.chromium.org/14028014

git-svn-id: svn://svn.chromium.org/blink/trunk@148315 bbb929c8-8fbe-4397-9dbb-9b2b20218538
diff --git a/LayoutTests/fast/dom/MicroData/001-expected.txt b/LayoutTests/fast/dom/MicroData/001-expected.txt
deleted file mode 100644
index 420190e..0000000
--- a/LayoutTests/fast/dom/MicroData/001-expected.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-This test ensures that document.getItems DOM API must exist.
-
-PASS NodeList is defined.
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/001.html b/LayoutTests/fast/dom/MicroData/001.html
deleted file mode 100644
index a2b6e08..0000000
--- a/LayoutTests/fast/dom/MicroData/001.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-</head>
-<body>
-<p>This test ensures that document.getItems DOM API must exist.</p>
-<div id="console"></div>
-<script>
-var NodeList = document.getItems;
-shouldBeDefined("NodeList");
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/002-expected.txt b/LayoutTests/fast/dom/MicroData/002-expected.txt
deleted file mode 100644
index 366cb58..0000000
--- a/LayoutTests/fast/dom/MicroData/002-expected.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-This test ensures that document.getItems().length must return the correct number of MicroData Items in the Document. 
-Also it tests that document.getItems must return a live NodeList.
-
-document.getItems() without aurgument: PASS
-document.getItems() with empty string in the aurgument: PASS
-document.getItems() with 'http://example.com/foo' itemtype in the aurgument: PASS
-document.getItems() with 'http://example.com/bar' itemtype in the aurgument: PASS
-document.getItems() with 'http://example.com/f1' itemtype in the aurgument: PASS
-Created element of type: div
-Set attribute: itemscope, value: itemscope
-Newly appended item should be noticed in the NodeList: PASS
-Removing item should be noticed in the NodeList: PASS
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/002.html b/LayoutTests/fast/dom/MicroData/002.html
deleted file mode 100644
index 3e5478f..0000000
--- a/LayoutTests/fast/dom/MicroData/002.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>This test ensures that document.getItems().length must return the correct number of MicroData Items in the Document.
-<br>Also it tests that document.getItems must return a live NodeList.
-</p>
-
-<div itemscope itemtype="http://example.com/foo" id="one"></div>
-<div itemscope itemtype="http://example.com/bar" id="two"></div>
-<div itemscope itemtype="http://example.com/foo" id="three">
-<div itemscope itemtype="http://example.com/f1" id="four"></div>
-</div>
-<div id="console"></div>
-<script>
-var one = document.getElementById('one');
-var two = document.getElementById('two');
-var three = document.getElementById('three');
-var four = document.getElementById('four');
-
-runTest(document.getItems(), [one, two, three, four], "document.getItems() without aurgument");
-runTest(document.getItems(''), [one, two, three, four], "document.getItems() with empty string in the aurgument");
-runTest(document.getItems('http://example.com/foo'), [one, three], "document.getItems() with 'http://example.com/foo' itemtype in the aurgument");
-runTest(document.getItems('http://example.com/bar'), [two], "document.getItems() with 'http://example.com/bar' itemtype in the aurgument");
-runTest(document.getItems('http://example.com/f1'), [four], "document.getItems() with 'http://example.com/f1' itemtype in the aurgument");
-
-var element = createElement('div', {itemscope:'itemscope'});
-
-// Append newly created item to body
-document.body.appendChild(element);
-runTest(document.getItems(), [one, two, three, four, element], "Newly appended item should be noticed in the NodeList");
-
-// Remove the element
-document.body.removeChild(element);
-runTest(document.getItems(), [one, two, three, four], "Removing item should be noticed in the NodeList");
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/003-expected.txt b/LayoutTests/fast/dom/MicroData/003-expected.txt
deleted file mode 100644
index c217101..0000000
--- a/LayoutTests/fast/dom/MicroData/003-expected.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-This test ensures that live NodeList must notice when itemscope attribute changes.
-
-This test page contain two microdata items: PASS
-Removing itemscope attribute should reflect in the NodeList: PASS
-Set itemscope attribute should reflect in the NodeList: PASS
-Set element.itemScope to false should notice in the NodeList: PASS
-Set element.itemScope to true should notice in the NodeList: PASS
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/003.html b/LayoutTests/fast/dom/MicroData/003.html
deleted file mode 100644
index 48e128f..0000000
--- a/LayoutTests/fast/dom/MicroData/003.html
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>This test ensures that live NodeList must notice when itemscope attribute changes.</p>
-<div itemscope itemtype="http://example.com/foo" id="one"></div>
-<div itemscope itemtype="http://example.com/bar" id="two"></div>
-<div id="console"></div>
-<script>
-var one = document.getElementById('one');
-var two = document.getElementById('two');
-
-runTest(document.getItems(), [one, two], "This test page contain two microdata items");
-
-// Remove itemscope attribute
-one.removeAttribute('itemscope');
-runTest(document.getItems(), [two], "Removing itemscope attribute should reflect in the NodeList");
-
-// Setting itemscope attribute
-one.setAttribute('itemscope','itemscope');
-runTest(document.getItems(), [one, two], "Set itemscope attribute should reflect in the NodeList");
-
-// Setting itemscope attribute to false
-two.itemScope = false;
-runTest(document.getItems(), [one], "Set element.itemScope to false should notice in the NodeList");
-
-// Setting itemscope attribute to true
-two.itemScope = true;
-runTest(document.getItems(), [one, two], "Set element.itemScope to true should notice in the NodeList");
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/004-expected.txt b/LayoutTests/fast/dom/MicroData/004-expected.txt
deleted file mode 100644
index a0abf27..0000000
--- a/LayoutTests/fast/dom/MicroData/004-expected.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-This test ensures that document.getItems must be case sensitive.
-
-PASS document.getItems('http://example.com/Foo').length == 0 is true
-PASS document.getItems('http://example.com/foo').length == 1 is true
-PASS document.getItems('http://example.com/BAR').length == 1 is true
-PASS document.getItems('http://example.com/bar').length == 0 is true
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/004.html b/LayoutTests/fast/dom/MicroData/004.html
deleted file mode 100644
index 2ef3771..0000000
--- a/LayoutTests/fast/dom/MicroData/004.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-</head>
-<body>
-<p>This test ensures that document.getItems must be case sensitive.</p>
-<div itemscope itemtype="http://example.com/foo" id="one"></div>
-<div itemscope itemtype="http://example.com/BAR" id="two"></div>
-<div id="console"></div>
-
-<script>
-shouldBeTrue("document.getItems('http://example.com/Foo').length == 0");
-shouldBeTrue("document.getItems('http://example.com/foo').length == 1");
-
-shouldBeTrue("document.getItems('http://example.com/BAR').length == 1");
-shouldBeTrue("document.getItems('http://example.com/bar').length == 0");
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/005-expected.txt b/LayoutTests/fast/dom/MicroData/005-expected.txt
deleted file mode 100644
index 5eaea99..0000000
--- a/LayoutTests/fast/dom/MicroData/005-expected.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-This tests that live NodeList must notice when itemtype changes.
-
-This test page contain two microdata items: PASS
-NodeList must notice on remove attribute itemtype: PASS
-NodeList must notice on set attribute itemtype: PASS
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/005.html b/LayoutTests/fast/dom/MicroData/005.html
deleted file mode 100644
index 4a0c8d3..0000000
--- a/LayoutTests/fast/dom/MicroData/005.html
+++ /dev/null
@@ -1,29 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>This tests that live NodeList must notice when itemtype changes.</p>
-<div itemscope itemtype="http://example.com/foo" id="one"></div>
-<div itemscope itemtype="http://example.com/foo" id="two"></div>
-<div id="console"></div>
-<script>
-var one = document.getElementById('one');
-var two = document.getElementById('two');
-
-runTest(document.getItems('http://example.com/foo'), [one, two], "This test page contain two microdata items");
-
-// Remove itemtype attribute
-one.removeAttribute('itemtype');
-runTest(document.getItems('http://example.com/foo'), [two], "NodeList must notice on remove attribute itemtype");
-
-// Set itemtype attribute
-one.setAttribute('itemtype','http://example.com/foo');
-runTest(document.getItems('http://example.com/foo'), [one, two], "NodeList must notice on set attribute itemtype");
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/006-expected.txt b/LayoutTests/fast/dom/MicroData/006-expected.txt
deleted file mode 100644
index d6b8b6a..0000000
--- a/LayoutTests/fast/dom/MicroData/006-expected.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-This tests that document.getItems must locate items when parameters are separated by spaces. 
-This test also ensure that document.getItems must ignore duplicated tokens.
-
-PASS document.getItems(' http://example.com/foo http://example.com/bar ').length == 2 is true
-PASS document.getItems(' http://example.com/foo  data:text/plain  ').length == 2 is true
-PASS document.getItems('  http://example.com/foo  data:text/plain  http://example.com/foo').length == 2 is true
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/006.html b/LayoutTests/fast/dom/MicroData/006.html
deleted file mode 100644
index ef8fd0d..0000000
--- a/LayoutTests/fast/dom/MicroData/006.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-</head>
-<body>
-<p>This tests that document.getItems must locate items when parameters are separated by spaces.
-<br>This test also ensure that document.getItems must ignore duplicated tokens.
-</p>
-<div itemscope itemtype="http://example.com/foo http://example.com/bar data:text/plain"></div>
-<div itemscope itemtype="http://example.com/bar http://example.com/foo">
-<div itemscope itemtype="data:text/plain http://example.com/foo"></div>
-</div>
-<div id="console"></div>
-<script>
-shouldBeTrue("document.getItems(' http://example.com/foo http://example.com/bar ').length == 2");
-shouldBeTrue("document.getItems(' http://example.com/foo  data:text/plain  ').length == 2");
-shouldBeTrue("document.getItems('  http://example.com/foo  data:text/plain  http://example.com/foo').length == 2");
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/007-expected.txt b/LayoutTests/fast/dom/MicroData/007-expected.txt
deleted file mode 100644
index 4c7c816..0000000
--- a/LayoutTests/fast/dom/MicroData/007-expected.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-This tests that document.getItems NodeList must be in source tree order.
-
-PASS nodeList[0].id is 'one'
-PASS nodeList[1].id is 'two'
-PASS nodeList[2].id is 'three'
-PASS nodeList[3].id is 'four'
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/007.html b/LayoutTests/fast/dom/MicroData/007.html
deleted file mode 100644
index 16b7a31..0000000
--- a/LayoutTests/fast/dom/MicroData/007.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-</head>
-<body>
-<p>This tests that document.getItems NodeList must be in source tree order.</p>
-
-<div itemscope itemtype="http://example.com/foo" id="one"></div>
-<div itemscope itemtype="http://example.com/bar" id="two"></div>
-<div itemscope itemtype="http://example.com/foo" id="three">
-<div itemscope itemtype="data:text/plain," id="four"></div>
-</div>
-<div itemscope id="five"></div>
-<div id="console"></div>
-<script>
-var nodeList = document.getItems();
-
-shouldBe("nodeList[0].id", "'one'");
-shouldBe("nodeList[1].id", "'two'");
-shouldBe("nodeList[2].id", "'three'");
-shouldBe("nodeList[3].id", "'four'");
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/008-expected.txt b/LayoutTests/fast/dom/MicroData/008-expected.txt
deleted file mode 100644
index c2937a2..0000000
--- a/LayoutTests/fast/dom/MicroData/008-expected.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-This test ensures that document.getItems must not find items with itemtype but not itemscope.
-
-PASS document.getItems('http://example.com/bar').length == 0 is true
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/008.html b/LayoutTests/fast/dom/MicroData/008.html
deleted file mode 100644
index d5277c1..0000000
--- a/LayoutTests/fast/dom/MicroData/008.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-</head>
-<body>
-<p>This test ensures that document.getItems must not find items with itemtype but not itemscope.</p>
-<div itemscope itemtype="http://example.com/foo"></div>
-<div itemtype="http://example.com/bar"></div>
-<div id="console"></div>
-<script>
-shouldBeTrue("document.getItems('http://example.com/bar').length == 0");
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/009-expected.txt b/LayoutTests/fast/dom/MicroData/009-expected.txt
deleted file mode 100644
index 91b98aa..0000000
--- a/LayoutTests/fast/dom/MicroData/009-expected.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-This test ensures that document.getItems must not contain the items that have the itemprop attribute set. It must return a NodeList containing the top-level microdata items in the document.
-
-Name: Amanda
-
-Band: Jazz Band (12 players)
-
-PASS document.getItems().length == 6 is true
-PASS document.getItems().length == 4 is true
-PASS document.getItems().length == 5 is true
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/009.html b/LayoutTests/fast/dom/MicroData/009.html
deleted file mode 100644
index fa1b815..0000000
--- a/LayoutTests/fast/dom/MicroData/009.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-</head>
-<body>
-<p>This test ensures that document.getItems must not contain the items that have the itemprop attribute set.
-It must return a NodeList containing the top-level microdata items in the document.</p>
-
-<div itemscope itemtype="http://example.com/foo" id="one"></div>
-<div itemscope itemtype="http://example.com/bar" id="two"></div>
-
-<div itemscope>
-<p>Name: <span itemprop="name">Amanda</span></p>
-<p>Band: <span itemprop="band" itemscope> <span itemprop="name">Jazz Band</span> (<span itemprop="size">12</span> players)</span></p>
-</div>
-
-<div itemscope itemtype="http://example.com/foo" id="three">
-<div itemscope itemtype="http://example.com/f1" id="four"></div>
-</div>
-<div itemscope id="five"></div>
-<div id="console"></div>
-<script>
-shouldBeTrue("document.getItems().length == 6");
-
-document.getElementById('one').setAttribute('itemprop', 'test');
-document.getElementById('five').setAttribute('itemprop', 'test');
-shouldBeTrue("document.getItems().length == 4");
-
-document.getElementById('five').removeAttribute('itemprop');
-shouldBeTrue("document.getItems().length == 5");
-</script>
-
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/add-remove-property-to-item-which-is-not-attached-to-domtree-expected.txt b/LayoutTests/fast/dom/MicroData/add-remove-property-to-item-which-is-not-attached-to-domtree-expected.txt
deleted file mode 100644
index 0f1243a..0000000
--- a/LayoutTests/fast/dom/MicroData/add-remove-property-to-item-which-is-not-attached-to-domtree-expected.txt
+++ /dev/null
@@ -1,55 +0,0 @@
-Test to ensure that modifing properties of an item which is not attached to the DOM tree must update its HTMLPropertiesCollection.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-Created element of type: div
-PASS item.properties.length is 1
-PASS item.properties.item(0) is item.firstChild
-PASS item.properties[0] is item.firstChild
-
-Add properties through itemref attribute.
-PASS item.properties.length is 2
-PASS item.properties.item(0) is parent.firstChild
-PASS item.properties[0] is parent.firstChild
-PASS item.properties.item(1) is item.firstChild
-PASS item.properties[1] is item.firstChild
-
-Add property to ref element
-Created element of type: div
-Set attribute: itemprop, value: qux
-PASS item.properties.length is 3
-PASS item.properties.item(0) is parent.firstChild
-PASS item.properties[0] is parent.firstChild
-PASS item.properties.item(1) is parent.firstChild.firstChild
-PASS item.properties[1] is parent.firstChild.firstChild
-PASS item.properties.item(2) is item.firstChild
-PASS item.properties[2] is item.firstChild
-
-Add properties direct to the item
-Created element of type: div
-Set attribute: itemprop, value: baz
-PASS item.properties.length is 4
-PASS item.properties.item(3) is item.childNodes[1]
-PASS item.properties[3] is item.childNodes[1]
-
-Remove property
-PASS item.properties.length is 3
-PASS item.properties.item(3) is null
-PASS item.properties[3] is undefined.
-
-Remove property from ref element
-PASS item.properties.length is 2
-PASS item.properties.item(0) is parent.firstChild
-PASS item.properties[0] is parent.firstChild
-PASS item.properties.item(1) is item.firstChild
-PASS item.properties[1] is item.firstChild
-
-Remove property added through itemref
-PASS item.properties.length is 1
-PASS item.properties.item(0) is item.firstChild
-PASS item.properties[0] is item.firstChild
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/add-remove-property-to-item-which-is-not-attached-to-domtree.html b/LayoutTests/fast/dom/MicroData/add-remove-property-to-item-which-is-not-attached-to-domtree.html
deleted file mode 100644
index da443b2..0000000
--- a/LayoutTests/fast/dom/MicroData/add-remove-property-to-item-which-is-not-attached-to-domtree.html
+++ /dev/null
@@ -1,69 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<script>
-description("Test to ensure that modifing properties of an item which is not attached to the DOM tree must update its HTMLPropertiesCollection.");
-var parent = createElement('div', {}, '<div itemprop="foo" id="id1"></div><div itemscope><div itemprop="bar"></div></div>');
-var item = parent.childNodes[1];
-
-shouldBe("item.properties.length", "1");
-shouldBe("item.properties.item(0)", "item.firstChild");
-shouldBe("item.properties[0]", "item.firstChild");
-
-debug("");
-debug("Add properties through itemref attribute.");
-item.setAttribute("itemref", "id1");
-shouldBe("item.properties.length", "2");
-shouldBe("item.properties.item(0)", "parent.firstChild");
-shouldBe("item.properties[0]", "parent.firstChild");
-shouldBe("item.properties.item(1)", "item.firstChild");
-shouldBe("item.properties[1]", "item.firstChild");
-
-debug("");
-debug("Add property to ref element");
-parent.firstChild.appendChild(createElement('div', {itemprop: 'qux'}));
-shouldBe("item.properties.length", "3");
-shouldBe("item.properties.item(0)", "parent.firstChild");
-shouldBe("item.properties[0]", "parent.firstChild");
-shouldBe("item.properties.item(1)", "parent.firstChild.firstChild");
-shouldBe("item.properties[1]", "parent.firstChild.firstChild");
-shouldBe("item.properties.item(2)", "item.firstChild");
-shouldBe("item.properties[2]", "item.firstChild");
-
-debug("");
-debug("Add properties direct to the item");
-item.appendChild(createElement('div', {itemprop: 'baz'}));
-shouldBe("item.properties.length", "4");
-shouldBe("item.properties.item(3)", "item.childNodes[1]");
-shouldBe("item.properties[3]", "item.childNodes[1]");
-
-debug("");
-debug("Remove property");
-item.removeChild(item.lastChild);
-shouldBe("item.properties.length", "3");
-shouldBeNull("item.properties.item(3)");
-shouldBeUndefined("item.properties[3]");
-
-debug("");
-debug("Remove property from ref element");
-parent.firstChild.removeChild(parent.firstChild.firstChild);
-shouldBe("item.properties.length", "2");
-shouldBe("item.properties.item(0)", "parent.firstChild");
-shouldBe("item.properties[0]", "parent.firstChild");
-shouldBe("item.properties.item(1)", "item.firstChild");
-shouldBe("item.properties[1]", "item.firstChild");
-
-debug("");
-debug("Remove property added through itemref");
-item.removeAttribute("itemref");
-shouldBe("item.properties.length", "1");
-shouldBe("item.properties.item(0)", "item.firstChild");
-shouldBe("item.properties[0]", "item.firstChild");
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/domsettabletokenlist-attributes-add-token-expected.txt b/LayoutTests/fast/dom/MicroData/domsettabletokenlist-attributes-add-token-expected.txt
deleted file mode 100644
index 0254770..0000000
--- a/LayoutTests/fast/dom/MicroData/domsettabletokenlist-attributes-add-token-expected.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-This test verifies itemtype, itemref, itemprop attributes behavior on adding a token in presence of trailing space characters.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-Test itemRef attribute's behavior
-PASS itemRef.add should treat ' ' as a space
-PASS itemRef.add should treat '\t' as a space
-PASS itemRef.add should treat '\f' as a space
-PASS itemRef.add should treat '\r' as a space
-PASS itemRef.add should treat '\n' as a space
-
-Test itemType attribute's behavior
-PASS itemType.add should treat ' ' as a space
-PASS itemType.add should treat '\t' as a space
-PASS itemType.add should treat '\f' as a space
-PASS itemType.add should treat '\r' as a space
-PASS itemType.add should treat '\n' as a space
-
-Test itemProp attribute's behavior
-PASS itemType.add should treat ' ' as a space
-PASS itemType.add should treat '\t' as a space
-PASS itemType.add should treat '\f' as a space
-PASS itemType.add should treat '\r' as a space
-PASS itemType.add should treat '\n' as a space
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/domsettabletokenlist-attributes-add-token.html b/LayoutTests/fast/dom/MicroData/domsettabletokenlist-attributes-add-token.html
deleted file mode 100644
index 518e1ee..0000000
--- a/LayoutTests/fast/dom/MicroData/domsettabletokenlist-attributes-add-token.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-</head>
-<body>
-<script>
-description("This test verifies itemtype, itemref, itemprop attributes behavior on adding a token in presence of trailing space characters.");
-
-var element;
-
-function createDivWithAttribute(attrName, value)
-{
-    element = document.createElement('div');
-    element.setAttribute(attrName, value);
-}
-
-function checkResult(actual, expected, description)
-{
-    if (actual == expected)
-        testPassed(description);
-    else
-        testFailed(description + " expected '" + expected + "' but got " + actual);
-}
-
-debug("Test itemRef attribute's behavior");
-createDivWithAttribute('itemref', 'a ');
-element.itemRef.add('b');
-checkResult(element.itemRef.toString(), "a b", "itemRef.add should treat ' ' as a space");
-
-createDivWithAttribute('itemref', 'a\t');
-element.itemRef.add('b');
-checkResult(element.itemRef.toString(), "a\tb", "itemRef.add should treat '\\t' as a space");
-
-createDivWithAttribute('itemref', 'a\f');
-element.itemRef.add('b');
-checkResult(element.itemRef.toString(), "a\fb", "itemRef.add should treat '\\f' as a space");
-
-createDivWithAttribute('itemref', 'a\r');
-element.itemRef.add('b');
-checkResult(element.itemRef.toString(), "a\rb", "itemRef.add should treat '\\r' as a space");
-
-createDivWithAttribute('itemref', 'a\n');
-element.itemRef.add('b');
-checkResult(element.itemRef.toString(), "a\nb", "itemRef.add should treat '\\n' as a space");
-
-debug("");
-debug("Test itemType attribute's behavior");
-createDivWithAttribute('itemtype', 'a ');
-element.itemType.add('b');
-checkResult(element.itemType.toString(), "a b", "itemType.add should treat ' ' as a space");
-
-createDivWithAttribute('itemtype', 'a\t');
-element.itemType.add('b');
-checkResult(element.itemType.toString(), "a\tb", "itemType.add should treat '\\t' as a space");
-
-createDivWithAttribute('itemtype', 'a\f');
-element.itemType.add('b');
-checkResult(element.itemType.toString(), "a\fb", "itemType.add should treat '\\f' as a space");
-
-createDivWithAttribute('itemtype', 'a\r');
-element.itemType.add('b');
-checkResult(element.itemType.toString(), "a\rb", "itemType.add should treat '\\r' as a space");
-
-createDivWithAttribute('itemtype', 'a\n');
-element.itemType.add('b');
-checkResult(element.itemType.toString(), "a\nb", "itemType.add should treat '\\n' as a space");
-
-debug("");
-debug("Test itemProp attribute's behavior");
-createDivWithAttribute('itemprop', 'a ');
-element.itemProp.add('b');
-checkResult(element.itemProp.toString(), "a b", "itemType.add should treat ' ' as a space");
-
-createDivWithAttribute('itemprop', 'a\t');
-element.itemProp.add('b');
-checkResult(element.itemProp.toString(), "a\tb", "itemType.add should treat '\\t' as a space");
-
-createDivWithAttribute('itemprop', 'a\f');
-element.itemProp.add('b');
-checkResult(element.itemProp.toString(), "a\fb", "itemType.add should treat '\\f' as a space");
-
-createDivWithAttribute('itemprop', 'a\r');
-element.itemProp.add('b');
-checkResult(element.itemProp.toString(), "a\rb", "itemType.add should treat '\\r' as a space");
-
-createDivWithAttribute('itemprop', 'a\n');
-element.itemProp.add('b');
-checkResult(element.itemProp.toString(), "a\nb", "itemType.add should treat '\\n' as a space");
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/domsettabletokenlist-attributes-out-of-range-index-expected.txt b/LayoutTests/fast/dom/MicroData/domsettabletokenlist-attributes-out-of-range-index-expected.txt
deleted file mode 100644
index ea0607c..0000000
--- a/LayoutTests/fast/dom/MicroData/domsettabletokenlist-attributes-out-of-range-index-expected.txt
+++ /dev/null
@@ -1,38 +0,0 @@
-This test verifies itemType[index], itemRef[index], itemProp[index] behavior for out-of-range index.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-Test itemType[index]
-PASS element.itemType.item(0) is null
-PASS element.itemType[0] is undefined.
-PASS element.itemType.item(1) is null
-PASS element.itemType[1] is undefined.
-PASS element.itemType.item(0) is null
-PASS element.itemType[0] is undefined.
-PASS element.itemType.item(-1) is null
-PASS element.itemType[-1] is undefined.
-
-Test itemRef[index]
-PASS element.itemRef.item(0) is null
-PASS element.itemRef[0] is undefined.
-PASS element.itemRef.item(1) is null
-PASS element.itemRef[1] is undefined.
-PASS element.itemRef.item(0) is null
-PASS element.itemRef[0] is undefined.
-PASS element.itemRef.item(-1) is null
-PASS element.itemRef[-1] is undefined.
-
-Test itemProp[index]
-PASS element.itemProp.item(0) is null
-PASS element.itemProp[0] is undefined.
-PASS element.itemProp.item(1) is null
-PASS element.itemProp[1] is undefined.
-PASS element.itemProp.item(0) is null
-PASS element.itemProp[0] is undefined.
-PASS element.itemProp.item(-1) is null
-PASS element.itemProp[-1] is undefined.
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/domsettabletokenlist-attributes-out-of-range-index.html b/LayoutTests/fast/dom/MicroData/domsettabletokenlist-attributes-out-of-range-index.html
deleted file mode 100644
index 5db39ce..0000000
--- a/LayoutTests/fast/dom/MicroData/domsettabletokenlist-attributes-out-of-range-index.html
+++ /dev/null
@@ -1,55 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-</head>
-<body>
-<div itemtype="" id="mydiv"></div>
-<script>
-description("This test verifies itemType[index], itemRef[index], itemProp[index] behavior for out-of-range index.");
-
-debug("Test itemType[index]");
-var element = document.getElementById("mydiv");
-shouldBeNull("element.itemType.item(0)");
-shouldBeUndefined("element.itemType[0]");
-element.itemType.add("foo");
-shouldBeNull("element.itemType.item(1)");
-shouldBeUndefined("element.itemType[1]");
-element.itemType.remove("foo");
-shouldBeNull("element.itemType.item(0)");
-shouldBeUndefined("element.itemType[0]");
-//Test with invalid index
-shouldBeNull("element.itemType.item(-1)");
-shouldBeUndefined("element.itemType[-1]");
-
-debug("\nTest itemRef[index]");
-var element = document.getElementById("mydiv");
-shouldBeNull("element.itemRef.item(0)");
-shouldBeUndefined("element.itemRef[0]");
-element.itemRef.add("foo");
-shouldBeNull("element.itemRef.item(1)");
-shouldBeUndefined("element.itemRef[1]");
-element.itemRef.remove("foo");
-shouldBeNull("element.itemRef.item(0)");
-shouldBeUndefined("element.itemRef[0]");
-//Test with invalid index
-shouldBeNull("element.itemRef.item(-1)");
-shouldBeUndefined("element.itemRef[-1]");
-
-debug("\nTest itemProp[index]");
-var element = document.getElementById("mydiv");
-shouldBeNull("element.itemProp.item(0)");
-shouldBeUndefined("element.itemProp[0]");
-element.itemProp.add("foo");
-shouldBeNull("element.itemProp.item(1)");
-shouldBeUndefined("element.itemProp[1]");
-element.itemProp.remove("foo");
-shouldBeNull("element.itemProp.item(0)");
-shouldBeUndefined("element.itemProp[0]");
-//Test with invalid index
-shouldBeNull("element.itemProp.item(-1)");
-shouldBeUndefined("element.itemProp[-1]");
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/element-with-empty-itemprop-expected.txt b/LayoutTests/fast/dom/MicroData/element-with-empty-itemprop-expected.txt
deleted file mode 100644
index bbdbae8..0000000
--- a/LayoutTests/fast/dom/MicroData/element-with-empty-itemprop-expected.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-This test ensures that an element with empty itemprop="" doesn't get listed in the .properties list.
-
-PASS item.properties.length is 1
-PASS item.children[1].itemProp.add('buz'); item.properties.length is 2
-PASS item.children[1].itemProp.remove('buz'); item.properties.length is 1
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/element-with-empty-itemprop.html b/LayoutTests/fast/dom/MicroData/element-with-empty-itemprop.html
deleted file mode 100644
index 119b8c3..0000000
--- a/LayoutTests/fast/dom/MicroData/element-with-empty-itemprop.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-</head>
-<body>
-<p>This test ensures that an element with empty itemprop="" doesn't get listed in the .properties list.</p>
-<div itemscope id="microdata-item">
-<div itemprop="foo"></div>
-<div itemprop=""></div>
-</div>
-<div id="console"></div>
-<script>
-var item = document.getElementById('microdata-item');
-shouldBe("item.properties.length", "1");
-shouldBe("item.children[1].itemProp.add('buz'); item.properties.length", "2");
-shouldBe("item.children[1].itemProp.remove('buz'); item.properties.length", "1");
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/getitems-empty-string-as-arg-expected.txt b/LayoutTests/fast/dom/MicroData/getitems-empty-string-as-arg-expected.txt
deleted file mode 100644
index d924553..0000000
--- a/LayoutTests/fast/dom/MicroData/getitems-empty-string-as-arg-expected.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-This test verifies that document.getItems() returns all top-level microdata items in the document when no tokens specified in the argement.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-document.getItems('') with empty string as argument: PASS
-document.getItems('  ') string with spaces as argument: PASS
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/getitems-empty-string-as-arg.html b/LayoutTests/fast/dom/MicroData/getitems-empty-string-as-arg.html
deleted file mode 100644
index 771041a..0000000
--- a/LayoutTests/fast/dom/MicroData/getitems-empty-string-as-arg.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<div itemscope itemtype="http://example.com/foo http://example.com/bar" id="one"></div>
-<div itemscope itemtype="http://example.com/foo" id="two">
-<div itemscope itemtype="http://example.com/foo data:text/plain" id="three"></div>
-</div>
-<div itemscope id="four"></div>
-<script>
-description("This test verifies that document.getItems() returns all top-level microdata items in the document when no tokens specified in the argement.")
-var one = document.getElementById('one');
-var two = document.getElementById('two');
-var three = document.getElementById('three');
-var four = document.getElementById('four');
-
-runTest(document.getItems(''), [one, two, three, four], "document.getItems('') with empty string as argument");
-runTest(document.getItems('  '), [one, two, three, four], "document.getItems('  ') string with spaces as argument");
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
-
diff --git a/LayoutTests/fast/dom/MicroData/getitems-multiple-itemtypes-expected.txt b/LayoutTests/fast/dom/MicroData/getitems-multiple-itemtypes-expected.txt
deleted file mode 100644
index b949d73..0000000
--- a/LayoutTests/fast/dom/MicroData/getitems-multiple-itemtypes-expected.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-document.getItems() with multiple itemtypes: PASS
-document.getItems() with multiple itemtypes: PASS
-document.getItems() with 'http://example.com/foo' itemtype in the aurgument: PASS
-document.getItems() with 'http://example.com/bar' itemtype in the aurgument: PASS
-PASS successfullyParsed is true
-
-TEST COMPLETE
-This test ensures that document.getItems() returns nodes that match all the types specified in the method's argument.
-
-
diff --git a/LayoutTests/fast/dom/MicroData/getitems-multiple-itemtypes.html b/LayoutTests/fast/dom/MicroData/getitems-multiple-itemtypes.html
deleted file mode 100644
index 239c6b5..0000000
--- a/LayoutTests/fast/dom/MicroData/getitems-multiple-itemtypes.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>This test ensures that document.getItems() returns nodes that match all the types specified in the method's argument.</p>
-
-<div itemscope itemtype="http://example.com/foo http://example.com/bar" id="one"></div>
-<div itemscope itemtype="http://example.com/foo" id="two"></div>
-
-<script>
-var one = document.getElementById('one');
-var two = document.getElementById('two');
-
-runTest(document.getItems('http://example.com/foo http://example.com/bar'), [one], "document.getItems() with multiple itemtypes");
-runTest(document.getItems('http://example.com/bar http://example.com/foo'), [one], "document.getItems() with multiple itemtypes");
-runTest(document.getItems('http://example.com/foo'), [one, two], "document.getItems() with 'http://example.com/foo' itemtype in the aurgument");
-runTest(document.getItems('http://example.com/bar'), [one], "document.getItems() with 'http://example.com/bar' itemtype in the aurgument");
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/item-not-attached-to-domtree-expected.txt b/LayoutTests/fast/dom/MicroData/item-not-attached-to-domtree-expected.txt
deleted file mode 100644
index 67555e1..0000000
--- a/LayoutTests/fast/dom/MicroData/item-not-attached-to-domtree-expected.txt
+++ /dev/null
@@ -1,96 +0,0 @@
-Test to ensure that HTMLPropertiesCollection contains all item properties when item is not attached to the DOM tree.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-Created element of type: div
-Item not attached to the dom tree
-PASS item.properties.length is 4
-PASS item.properties.item(0) is parent.firstChild
-PASS item.properties[0] is parent.firstChild
-PASS item.properties.item(1) is item.firstChild
-PASS item.properties[1] is item.firstChild
-PASS item.properties.item(2) is parent.childNodes[2]
-PASS item.properties[2] is parent.childNodes[2]
-PASS item.properties.item(3) is parent.childNodes[2].firstChild
-PASS item.properties[3] is parent.childNodes[2].firstChild
-PASS item.properties.names.length is 3
-PASS item.properties.names.item(0) is 'foo'
-PASS item.properties.names[0] is 'foo'
-PASS item.properties.names.item(1) is 'bar'
-PASS item.properties.names[1] is 'bar'
-PASS item.properties.names.item(2) is 'baz'
-PASS item.properties.names[2] is 'baz'
-PASS item.properties.namedItem('foo').length is 2
-PASS item.properties.namedItem('foo').item(0) is parent.firstChild
-PASS item.properties.namedItem('foo')[0] is parent.firstChild
-PASS item.properties.namedItem('foo').item(1) is parent.childNodes[2]
-PASS item.properties.namedItem('foo')[1] is parent.childNodes[2]
-PASS item.properties.namedItem('bar').length is 1
-PASS item.properties.namedItem('bar').item(0) is item.firstChild
-PASS item.properties.namedItem('bar')[0] is item.firstChild
-PASS item.properties.namedItem('baz').length is 1
-PASS item.properties.namedItem('baz').item(0) is parent.childNodes[2].firstChild
-PASS item.properties.namedItem('baz')[0] is parent.childNodes[2].firstChild
-
-Item added to the dom tree
-PASS item.properties.length is 4
-PASS item.properties.item(0) is parent.firstChild
-PASS item.properties[0] is parent.firstChild
-PASS item.properties.item(1) is item.firstChild
-PASS item.properties[1] is item.firstChild
-PASS item.properties.item(2) is parent.childNodes[2]
-PASS item.properties[2] is parent.childNodes[2]
-PASS item.properties.item(3) is parent.childNodes[2].firstChild
-PASS item.properties[3] is parent.childNodes[2].firstChild
-PASS item.properties.names.length is 3
-PASS item.properties.names.item(0) is 'foo'
-PASS item.properties.names[0] is 'foo'
-PASS item.properties.names.item(1) is 'bar'
-PASS item.properties.names[1] is 'bar'
-PASS item.properties.names.item(2) is 'baz'
-PASS item.properties.names[2] is 'baz'
-PASS item.properties.namedItem('foo').length is 2
-PASS item.properties.namedItem('foo').item(0) is parent.firstChild
-PASS item.properties.namedItem('foo')[0] is parent.firstChild
-PASS item.properties.namedItem('foo').item(1) is parent.childNodes[2]
-PASS item.properties.namedItem('foo')[1] is parent.childNodes[2]
-PASS item.properties.namedItem('bar').length is 1
-PASS item.properties.namedItem('bar').item(0) is item.firstChild
-PASS item.properties.namedItem('bar')[0] is item.firstChild
-PASS item.properties.namedItem('baz').length is 1
-PASS item.properties.namedItem('baz').item(0) is parent.childNodes[2].firstChild
-PASS item.properties.namedItem('baz')[0] is parent.childNodes[2].firstChild
-
-Item detached from the dom tree
-PASS item.properties.length is 4
-PASS item.properties.item(0) is parent.firstChild
-PASS item.properties[0] is parent.firstChild
-PASS item.properties.item(1) is item.firstChild
-PASS item.properties[1] is item.firstChild
-PASS item.properties.item(2) is parent.childNodes[2]
-PASS item.properties[2] is parent.childNodes[2]
-PASS item.properties.item(3) is parent.childNodes[2].firstChild
-PASS item.properties[3] is parent.childNodes[2].firstChild
-PASS item.properties.names.length is 3
-PASS item.properties.names.item(0) is 'foo'
-PASS item.properties.names[0] is 'foo'
-PASS item.properties.names.item(1) is 'bar'
-PASS item.properties.names[1] is 'bar'
-PASS item.properties.names.item(2) is 'baz'
-PASS item.properties.names[2] is 'baz'
-PASS item.properties.namedItem('foo').length is 2
-PASS item.properties.namedItem('foo').item(0) is parent.firstChild
-PASS item.properties.namedItem('foo')[0] is parent.firstChild
-PASS item.properties.namedItem('foo').item(1) is parent.childNodes[2]
-PASS item.properties.namedItem('foo')[1] is parent.childNodes[2]
-PASS item.properties.namedItem('bar').length is 1
-PASS item.properties.namedItem('bar').item(0) is item.firstChild
-PASS item.properties.namedItem('bar')[0] is item.firstChild
-PASS item.properties.namedItem('baz').length is 1
-PASS item.properties.namedItem('baz').item(0) is parent.childNodes[2].firstChild
-PASS item.properties.namedItem('baz')[0] is parent.childNodes[2].firstChild
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/item-not-attached-to-domtree.html b/LayoutTests/fast/dom/MicroData/item-not-attached-to-domtree.html
deleted file mode 100644
index 0d8818b..0000000
--- a/LayoutTests/fast/dom/MicroData/item-not-attached-to-domtree.html
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<script>
-description("Test to ensure that HTMLPropertiesCollection contains all item properties when item is not attached to the DOM tree.");
-var parent = createElement('div', {}, '<div itemprop="foo" id="id1"></div><div itemscope itemref="id1 id2"><div itemprop="bar"></div></div><div itemprop="foo" id="id2"><div itemprop="baz"></div></div>');
-var item = parent.childNodes[1];
-
-function executeTest() {
-    shouldBe("item.properties.length", "4");
-    shouldBe("item.properties.item(0)", "parent.firstChild");
-    shouldBe("item.properties[0]", "parent.firstChild");
-    shouldBe("item.properties.item(1)", "item.firstChild");
-    shouldBe("item.properties[1]", "item.firstChild");
-    shouldBe("item.properties.item(2)", "parent.childNodes[2]");
-    shouldBe("item.properties[2]", "parent.childNodes[2]");
-    shouldBe("item.properties.item(3)", "parent.childNodes[2].firstChild");
-    shouldBe("item.properties[3]", "parent.childNodes[2].firstChild");
-    shouldBe("item.properties.names.length", "3");
-    shouldBe("item.properties.names.item(0)", "'foo'");
-    shouldBe("item.properties.names[0]", "'foo'");
-    shouldBe("item.properties.names.item(1)", "'bar'");
-    shouldBe("item.properties.names[1]", "'bar'");
-    shouldBe("item.properties.names.item(2)", "'baz'");
-    shouldBe("item.properties.names[2]", "'baz'");
-    shouldBe("item.properties.namedItem('foo').length", "2");
-    shouldBe("item.properties.namedItem('foo').item(0)", "parent.firstChild");
-    shouldBe("item.properties.namedItem('foo')[0]", "parent.firstChild");
-    shouldBe("item.properties.namedItem('foo').item(1)", "parent.childNodes[2]");
-    shouldBe("item.properties.namedItem('foo')[1]", "parent.childNodes[2]");
-    shouldBe("item.properties.namedItem('bar').length", "1");
-    shouldBe("item.properties.namedItem('bar').item(0)", "item.firstChild");
-    shouldBe("item.properties.namedItem('bar')[0]", "item.firstChild");
-    shouldBe("item.properties.namedItem('baz').length", "1");
-    shouldBe("item.properties.namedItem('baz').item(0)", "parent.childNodes[2].firstChild");
-    shouldBe("item.properties.namedItem('baz')[0]", "parent.childNodes[2].firstChild");
-}
-
-debug("Item not attached to the dom tree");
-executeTest();
-
-document.body.appendChild(parent);
-debug("");
-debug("Item added to the dom tree");
-executeTest();
-
-document.body.removeChild(parent);
-debug("");
-debug("Item detached from the dom tree");
-executeTest();
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/item-with-itemprop-attr-expected.txt b/LayoutTests/fast/dom/MicroData/item-with-itemprop-attr-expected.txt
deleted file mode 100644
index a4e0e72..0000000
--- a/LayoutTests/fast/dom/MicroData/item-with-itemprop-attr-expected.txt
+++ /dev/null
@@ -1,43 +0,0 @@
-Test to ensure that item with itemprop attribute should not include itself in its HTMLPropetiesCollection.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-Created element of type: div
-Set attribute: itemscope, value: itemscope
-
-Item not attached to dom tree
-PASS item.properties.length is 1
-PASS item.properties.item(0) is item.firstChild
-PASS item.properties[0] is item.firstChild
-PASS item.properties.namedItem('foo').length is 0
-PASS item.properties.namedItem('foo').item(0) is null
-PASS item.properties.namedItem('foo')[0] is undefined.
-PASS item.properties.namedItem('bar').length is 1
-PASS item.properties.namedItem('bar').item(0) is item.firstChild
-PASS item.properties.namedItem('bar')[0] is item.firstChild
-PASS item.properties.names.length is 1
-PASS item.properties.names.contains('foo') is false
-PASS item.properties.names.contains('bar') is true
-PASS item.properties.names.item(0) is 'bar'
-PASS item.properties.names[0] is 'bar'
-
-Attached item to dom tree
-PASS item.properties.length is 1
-PASS item.properties.item(0) is item.firstChild
-PASS item.properties[0] is item.firstChild
-PASS item.properties.namedItem('foo').length is 0
-PASS item.properties.namedItem('foo').item(0) is null
-PASS item.properties.namedItem('foo')[0] is undefined.
-PASS item.properties.namedItem('bar').length is 1
-PASS item.properties.namedItem('bar').item(0) is item.firstChild
-PASS item.properties.namedItem('bar')[0] is item.firstChild
-PASS item.properties.names.length is 1
-PASS item.properties.names.contains('foo') is false
-PASS item.properties.names.contains('bar') is true
-PASS item.properties.names.item(0) is 'bar'
-PASS item.properties.names[0] is 'bar'
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/item-with-itemprop-attr.html b/LayoutTests/fast/dom/MicroData/item-with-itemprop-attr.html
deleted file mode 100644
index 27b36eb..0000000
--- a/LayoutTests/fast/dom/MicroData/item-with-itemprop-attr.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<script>
-description("Test to ensure that item with itemprop attribute should not include itself in its HTMLPropetiesCollection.");
-
-var parent = createElement('div', {itemscope: 'itemscope'}, '<div itemscope itemprop="foo"><div itemprop="bar"></div></div>');
-var item = parent.firstChild;
-
-function executeTest()
-{
-    shouldBe("item.properties.length", "1");
-    shouldBe("item.properties.item(0)", "item.firstChild");
-    shouldBe("item.properties[0]", "item.firstChild");
-    shouldBe("item.properties.namedItem('foo').length", "0");
-    shouldBeNull("item.properties.namedItem('foo').item(0)");
-    shouldBeUndefined("item.properties.namedItem('foo')[0]");
-    shouldBe("item.properties.namedItem('bar').length", "1");
-    shouldBe("item.properties.namedItem('bar').item(0)", "item.firstChild");
-    shouldBe("item.properties.namedItem('bar')[0]", "item.firstChild");
-    shouldBe("item.properties.names.length", "1");
-    shouldBeFalse("item.properties.names.contains('foo')");
-    shouldBeTrue("item.properties.names.contains('bar')");
-    shouldBe("item.properties.names.item(0)", "'bar'");
-    shouldBe("item.properties.names[0]", "'bar'");
-}
-
-debug("");
-debug("Item not attached to dom tree");
-executeTest();
-
-debug("");
-debug("Attached item to dom tree");
-document.body.appendChild(parent);
-executeTest();
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/item-with-itemref-pointing-to-itself-expected.txt b/LayoutTests/fast/dom/MicroData/item-with-itemref-pointing-to-itself-expected.txt
deleted file mode 100644
index 42608fa..0000000
--- a/LayoutTests/fast/dom/MicroData/item-with-itemref-pointing-to-itself-expected.txt
+++ /dev/null
@@ -1,38 +0,0 @@
-Test to verify HTMLPropertiesCollection's behavior of Microdata item with itemprop attribute and itemref pointing to itself.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-Created element of type: div
-Set attribute: itemscope, value: itemscope
-Set attribute: id, value: id1
-Set attribute: itemref, value: id1
-Set attribute: itemprop, value: foo
-
-Item not attached to dom tree
-PASS item.properties.length is 0
-PASS item.properties.item(0) is null
-PASS item.properties[0] is undefined.
-PASS item.properties.namedItem('foo').length is 0
-PASS item.properties.namedItem('foo').item(0) is null
-PASS item.properties.namedItem('foo')[0] is undefined.
-PASS item.properties.names.length is 0
-PASS item.properties.names.contains('foo') is false
-PASS item.properties.names.item(0) is null
-PASS item.properties.names.length[0] is undefined.
-
-Attached item to dom tree
-PASS item.properties.length is 0
-PASS item.properties.item(0) is null
-PASS item.properties[0] is undefined.
-PASS item.properties.namedItem('foo').length is 0
-PASS item.properties.namedItem('foo').item(0) is null
-PASS item.properties.namedItem('foo')[0] is undefined.
-PASS item.properties.names.length is 0
-PASS item.properties.names.contains('foo') is false
-PASS item.properties.names.item(0) is null
-PASS item.properties.names.length[0] is undefined.
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/item-with-itemref-pointing-to-itself.html b/LayoutTests/fast/dom/MicroData/item-with-itemref-pointing-to-itself.html
deleted file mode 100644
index 78b8a20..0000000
--- a/LayoutTests/fast/dom/MicroData/item-with-itemref-pointing-to-itself.html
+++ /dev/null
@@ -1,37 +0,0 @@
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<script>
-description("Test to verify HTMLPropertiesCollection's behavior of Microdata item with itemprop attribute and itemref pointing to itself.");
-
-var item = createElement('div', {itemscope: 'itemscope', id: 'id1', itemref:'id1', itemprop:'foo'});
-
-function executeTest()
-{
-    shouldBe("item.properties.length", "0");
-    shouldBeNull("item.properties.item(0)");
-    shouldBeUndefined("item.properties[0]");
-    shouldBe("item.properties.namedItem('foo').length", "0");
-    shouldBeNull("item.properties.namedItem('foo').item(0)");
-    shouldBeUndefined("item.properties.namedItem('foo')[0]");
-    shouldBe("item.properties.names.length", "0");
-    shouldBeFalse("item.properties.names.contains('foo')");
-    shouldBeNull("item.properties.names.item(0)");
-    shouldBeUndefined("item.properties.names.length[0]");
-}
-
-debug("");
-debug("Item not attached to dom tree");
-executeTest();
-
-debug("");
-debug("Attached item to dom tree");
-document.body.appendChild(item);
-executeTest();
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/itemid-attribute-test-001-expected.txt b/LayoutTests/fast/dom/MicroData/itemid-attribute-test-001-expected.txt
deleted file mode 100644
index d3550b1..0000000
--- a/LayoutTests/fast/dom/MicroData/itemid-attribute-test-001-expected.txt
+++ /dev/null
@@ -1,124 +0,0 @@
-Test for bug: https://bugs.webkit.org/show_bug.cgi?id=71510. Assertion failure in Element::getURLAttribute() while retriving itemid of a Microdata item.
-
-Created element of type: a
-Set attribute: itemid, value: http://example.com/foo
-Set attribute: href, value: http://www.webkit.org/
-PASS createElement('a', {itemid: 'http://example.com/foo', href: 'http://www.webkit.org/'}).itemId == 'http://example.com/foo'; is true
-
-Created element of type: audio
-Set attribute: itemid, value: http://example.com/foo
-Set attribute: src, value: test.mp3
-PASS createElement('audio', {itemid: 'http://example.com/foo', src: 'test.mp3'}).itemId == 'http://example.com/foo'; is true
-
-Created element of type: base
-Set attribute: itemid, value: http://example.com/foo
-Set attribute: href, value: http://www.webkit.org/
-PASS createElement('base', {itemid: 'http://example.com/foo', href: 'http://www.webkit.org/'}).itemId == 'http://example.com/foo'; is true
-
-Created element of type: blockquote
-Set attribute: itemid, value: http://example.com/foo
-PASS createElement('blockquote', {itemid: 'http://example.com/foo'}).itemId == 'http://example.com/foo'; is true
-
-Created element of type: body
-Set attribute: itemid, value: http://example.com/foo
-PASS createElement('body', {itemid: 'http://example.com/foo'}).itemId == 'http://example.com/foo'; is true
-
-Created element of type: button
-Set attribute: itemid, value: http://example.com/foo
-Set attribute: type, value: button
-PASS createElement('button', {itemid: 'http://example.com/foo', type: 'button'}).itemId == 'http://example.com/foo'; is true
-
-Created element of type: del
-Set attribute: itemid, value: http://example.com/foo
-PASS createElement('del', {itemid: 'http://example.com/foo'}).itemId == 'http://example.com/foo'; is true
-
-Created element of type: div
-Set attribute: itemid, value: http://example.com/foo
-PASS createElement('div', {itemid: 'http://example.com/foo'}).itemId == 'http://example.com/foo'; is true
-
-Created element of type: embed
-Set attribute: itemid, value: http://example.com/foo
-Set attribute: src, value: test.swf
-PASS createElement('embed', {itemid: 'http://example.com/foo', src: 'test.swf'}).itemId == 'http://example.com/foo'; is true
-
-Created element of type: form
-Set attribute: itemid, value: http://example.com/foo
-PASS createElement('form', {itemid: 'http://example.com/foo'}).itemId == 'http://example.com/foo'; is true
-
-Created element of type: frame
-Set attribute: itemid, value: http://example.com/foo
-Set attribute: src, value: test.html
-PASS createElement('frame', {itemid: 'http://example.com/foo', src: 'test.html'}).itemId == 'http://example.com/foo'; is true
-
-Created element of type: html
-Set attribute: itemid, value: http://example.com/foo
-PASS createElement('html', {itemid: 'http://example.com/foo'}).itemId == 'http://example.com/foo'; is true
-
-Created element of type: iframe
-Set attribute: itemid, value: http://example.com/foo
-Set attribute: src, value: test.html
-PASS createElement('iframe', {itemid: 'http://example.com/foo', src: 'test.html'}).itemId == 'http://example.com/foo'; is true
-
-Created element of type: img
-Set attribute: itemid, value: http://example.com/foo
-Set attribute: src, value: image.png
-PASS createElement('img', {itemid: 'http://example.com/foo', src: 'image.png'}).itemId == 'http://example.com/foo'; is true
-
-Created element of type: input
-Set attribute: itemid, value: http://example.com/foo
-Set attribute: type, value: button
-PASS createElement('input', {itemid: 'http://example.com/foo', type: 'button'}).itemId == 'http://example.com/foo'; is true
-
-Created element of type: ins
-Set attribute: itemid, value: http://example.com/foo
-PASS createElement('ins', {itemid: 'http://example.com/foo'}).itemId == 'http://example.com/foo'; is true
-
-Created element of type: link
-Set attribute: itemid, value: http://example.com/foo
-Set attribute: type, value: text/css
-Set attribute: href, value: test.css
-PASS createElement('link', {itemid: 'http://example.com/foo', type: 'text/css', href: 'test.css'}).itemId == 'http://example.com/foo'; is true
-
-Created element of type: object
-Set attribute: itemid, value: http://example.com/foo
-Set attribute: data, value: test.swf
-PASS createElement('object', {itemid: 'http://example.com/foo', data: 'test.swf'}).itemId == 'http://example.com/foo'; is true
-
-Created element of type: param
-Set attribute: itemid, value: http://example.com/foo
-Set attribute: name, value: my_param
-PASS createElement('param', {itemid: 'http://example.com/foo', name: 'my_param'}).itemId == 'http://example.com/foo'; is true
-
-Created element of type: q
-Set attribute: itemid, value: http://example.com/foo
-PASS createElement('q', {itemid: 'http://example.com/foo'}).itemId == 'http://example.com/foo'; is true
-
-Created element of type: source
-Set attribute: itemid, value: http://example.com/foo
-Set attribute: type, value: audio/mpeg
-Set attribute: src, value: test.mp3
-PASS createElement('source', {itemid: 'http://example.com/foo', type: 'audio/mpeg', src: 'test.mp3'}).itemId == 'http://example.com/foo'; is true
-
-Created element of type: table
-Set attribute: itemid, value: http://example.com/foo
-PASS createElement('table', {itemid: 'http://example.com/foo'}).itemId == 'http://example.com/foo'; is true
-
-Created element of type: td
-Set attribute: itemid, value: http://example.com/foo
-PASS createElement('td', {itemid: 'http://example.com/foo'}).itemId == 'http://example.com/foo'; is true
-
-Created element of type: track
-Set attribute: itemid, value: http://example.com/foo
-Set attribute: type, value: audio/mpeg
-Set attribute: src, value: test.vtt
-PASS createElement('track', {itemid: 'http://example.com/foo', type: 'audio/mpeg', src: 'test.vtt'}).itemId == 'http://example.com/foo'; is true
-
-Created element of type: video
-Set attribute: itemid, value: http://example.com/foo
-Set attribute: src, value: test.mp4
-PASS createElement('video', {itemid: 'http://example.com/foo', src: 'test.mp4'}).itemId == 'http://example.com/foo'; is true
-
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/itemid-attribute-test-001.html b/LayoutTests/fast/dom/MicroData/itemid-attribute-test-001.html
deleted file mode 100644
index 1ff6cb1..0000000
--- a/LayoutTests/fast/dom/MicroData/itemid-attribute-test-001.html
+++ /dev/null
@@ -1,65 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>Test for bug: https://bugs.webkit.org/show_bug.cgi?id=71510. Assertion failure in Element::getURLAttribute() while retriving itemid of a Microdata item.</p>
-<div id="console"></div>
-<script>
-shouldBeTrue("createElement('a', {itemid: 'http://example.com/foo', href: 'http://www.webkit.org/'}).itemId == 'http://example.com/foo';");
-debug('');
-shouldBeTrue("createElement('audio', {itemid: 'http://example.com/foo', src: 'test.mp3'}).itemId == 'http://example.com/foo';");
-debug('');
-shouldBeTrue("createElement('base', {itemid: 'http://example.com/foo', href: 'http://www.webkit.org/'}).itemId == 'http://example.com/foo';");
-debug('');
-shouldBeTrue("createElement('blockquote', {itemid: 'http://example.com/foo'}).itemId == 'http://example.com/foo';");
-debug('');
-shouldBeTrue("createElement('body', {itemid: 'http://example.com/foo'}).itemId == 'http://example.com/foo';");
-debug('');
-shouldBeTrue("createElement('button', {itemid: 'http://example.com/foo', type: 'button'}).itemId == 'http://example.com/foo';");
-debug('');
-shouldBeTrue("createElement('del', {itemid: 'http://example.com/foo'}).itemId == 'http://example.com/foo';");
-debug('');
-shouldBeTrue("createElement('div', {itemid: 'http://example.com/foo'}).itemId == 'http://example.com/foo';");
-debug('');
-shouldBeTrue("createElement('embed', {itemid: 'http://example.com/foo', src: 'test.swf'}).itemId == 'http://example.com/foo';");
-debug('');
-shouldBeTrue("createElement('form', {itemid: 'http://example.com/foo'}).itemId == 'http://example.com/foo';");
-debug('');
-shouldBeTrue("createElement('frame', {itemid: 'http://example.com/foo', src: 'test.html'}).itemId == 'http://example.com/foo';");
-debug('');
-shouldBeTrue("createElement('html', {itemid: 'http://example.com/foo'}).itemId == 'http://example.com/foo';");
-debug('');
-shouldBeTrue("createElement('iframe', {itemid: 'http://example.com/foo', src: 'test.html'}).itemId == 'http://example.com/foo';");
-debug('');
-shouldBeTrue("createElement('img', {itemid: 'http://example.com/foo', src: 'image.png'}).itemId == 'http://example.com/foo';");
-debug('');
-shouldBeTrue("createElement('input', {itemid: 'http://example.com/foo', type: 'button'}).itemId == 'http://example.com/foo';");
-debug('');
-shouldBeTrue("createElement('ins', {itemid: 'http://example.com/foo'}).itemId == 'http://example.com/foo';");
-debug('');
-shouldBeTrue("createElement('link', {itemid: 'http://example.com/foo', type: 'text/css', href: 'test.css'}).itemId == 'http://example.com/foo';");
-debug('');
-shouldBeTrue("createElement('object', {itemid: 'http://example.com/foo', data: 'test.swf'}).itemId == 'http://example.com/foo';");
-debug('');
-shouldBeTrue("createElement('param', {itemid: 'http://example.com/foo', name: 'my_param'}).itemId == 'http://example.com/foo';");
-debug('');
-shouldBeTrue("createElement('q', {itemid: 'http://example.com/foo'}).itemId == 'http://example.com/foo';");
-debug('');
-shouldBeTrue("createElement('source', {itemid: 'http://example.com/foo', type: 'audio/mpeg', src: 'test.mp3'}).itemId == 'http://example.com/foo';");
-debug('');
-shouldBeTrue("createElement('table', {itemid: 'http://example.com/foo'}).itemId == 'http://example.com/foo';");
-debug('');
-shouldBeTrue("createElement('td', {itemid: 'http://example.com/foo'}).itemId == 'http://example.com/foo';");
-debug('');
-shouldBeTrue("createElement('track', {itemid: 'http://example.com/foo', type: 'audio/mpeg', src: 'test.vtt'}).itemId == 'http://example.com/foo';");
-debug('');
-shouldBeTrue("createElement('video', {itemid: 'http://example.com/foo', src: 'test.mp4'}).itemId == 'http://example.com/foo';");
-debug('');
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/itemid-attribute-test-expected.txt b/LayoutTests/fast/dom/MicroData/itemid-attribute-test-expected.txt
deleted file mode 100644
index fef8769..0000000
--- a/LayoutTests/fast/dom/MicroData/itemid-attribute-test-expected.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-itemid attribute simple test.
-
-Created element of type: div
-Set attribute: itemid, value: http://example.com/foo
-
-The itemId attribute must be defined.
-PASS element.itemId is defined.
-PASS element.itemId is 'http://example.com/foo'
-
-itemId attribute must be case-senaitive.
-Created element of type: div
-Set attribute: itemid, value: http://example.com/FOO
-PASS createElement('div', {itemid: 'http://example.com/FOO'}).itemId == 'http://example.com/FOO'; is true
-
-itemId must strip leading and trailing whitespace.
-Created element of type: div
-Set attribute: itemid, value:  http://example.com/foo 
-PASS createElement('div', {itemid: ' http://example.com/foo '}).itemId == 'http://example.com/foo'; is true
-
-itemId must strip leading whitespace.
-Created element of type: div
-Set attribute: itemid, value:   http://example.com/foo
-PASS createElement('div', {itemid: '  http://example.com/foo'}).itemId == 'http://example.com/foo'; is true
-
-itemId must strip trailing whitespace.
-Created element of type: div
-Set attribute: itemid, value: http://example.com/foo  
-PASS createElement('div', {itemid: 'http://example.com/foo  '}).itemId == 'http://example.com/foo'; is true
-
-itemId must be read/write.
-PASS element.itemId = 'http://example.com/bar'; element.itemId == 'http://example.com/bar' is true
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/itemid-attribute-test.html b/LayoutTests/fast/dom/MicroData/itemid-attribute-test.html
deleted file mode 100644
index f2644c5..0000000
--- a/LayoutTests/fast/dom/MicroData/itemid-attribute-test.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>itemid attribute simple test.</p>
-<div id="console"></div>
-<script>
-var element = createElement('div', {itemid: 'http://example.com/foo'});
-
-debug("<br>The itemId attribute must be defined.");
-shouldBeDefined("element.itemId");
-shouldBe("element.itemId", "'http://example.com/foo'");
-
-debug("<br>itemId attribute must be case-senaitive.");
-shouldBeTrue("createElement('div', {itemid: 'http://example.com/FOO'}).itemId == 'http://example.com/FOO';");
-
-debug("<br>itemId must strip leading and trailing whitespace.");
-shouldBeTrue("createElement('div', {itemid: ' http://example.com/foo '}).itemId == 'http://example.com/foo';");
-
-debug("<br>itemId must strip leading whitespace.");
-shouldBeTrue("createElement('div', {itemid: '  http://example.com/foo'}).itemId == 'http://example.com/foo';");
-
-debug("<br>itemId must strip trailing whitespace.");
-shouldBeTrue("createElement('div', {itemid: 'http://example.com/foo  '}).itemId == 'http://example.com/foo';");
-
-debug("<br>itemId must be read/write.");
-shouldBeTrue("element.itemId = 'http://example.com/bar'; element.itemId == 'http://example.com/bar'");
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/itemid-must-see-resolved-url-expected.txt b/LayoutTests/fast/dom/MicroData/itemid-must-see-resolved-url-expected.txt
deleted file mode 100644
index 59e18fd..0000000
--- a/LayoutTests/fast/dom/MicroData/itemid-must-see-resolved-url-expected.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-This tests the itemid attribute must see the resolved itemId URL.
-
-Created element of type: div
-Set attribute: itemid, value: foo
-PASS createElement('div',{itemid:'foo'}).itemId == currentUri.substring(0, currentUri.lastIndexOf('/')) + '/foo' is true
-
-Created element of type: div
-Set attribute: itemid, value: foo bar
-PASS createElement('div',{itemid:'foo bar'}).itemId == currentUri.substring(0, currentUri.lastIndexOf('/')) + '/foo%20bar' is true
-
-Created element of type: div
-PASS element.itemId == currentUri.substring(0, currentUri.lastIndexOf('/')) + '/bar' is true
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/itemid-must-see-resolved-url.html b/LayoutTests/fast/dom/MicroData/itemid-must-see-resolved-url.html
deleted file mode 100644
index 929ee71..0000000
--- a/LayoutTests/fast/dom/MicroData/itemid-must-see-resolved-url.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>This tests the itemid attribute must see the resolved itemId URL.</p>
-<div id="console"></div>
-<script>
-var currentUri = location.href;
-
-shouldBeTrue("createElement('div',{itemid:'foo'}).itemId == currentUri.substring(0, currentUri.lastIndexOf('/')) + '/foo'");
-debug('');
-shouldBeTrue("createElement('div',{itemid:'foo bar'}).itemId == currentUri.substring(0, currentUri.lastIndexOf('/')) + '/foo%20bar'");
-debug('');
-
-var element = createElement('div',{});
-element.itemId = 'bar'
-shouldBeTrue("element.itemId == currentUri.substring(0, currentUri.lastIndexOf('/')) + '/bar'");
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/itemprop-add-remove-tokens-expected.txt b/LayoutTests/fast/dom/MicroData/itemprop-add-remove-tokens-expected.txt
deleted file mode 100644
index ed4e0bd..0000000
--- a/LayoutTests/fast/dom/MicroData/itemprop-add-remove-tokens-expected.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-This tests that itemProp attribute must update correctly when token have been added or removed.
-
-Created element of type: div
-itemProp.add must reflect correctly.
-PASS element.itemProp.length == 2 is true
-PASS element.itemProp.toString() == 'foo FOO' is true
-PASS element.itemProp[0] is 'foo'
-PASS element.itemProp[1] is 'FOO'
-
-itemProp.add must not make any changes if an existing token is added.
-PASS element.itemProp.length == 2 is true
-PASS element.itemProp.toString() == 'foo FOO' is true
-
-itemProp.remove must reflect correctly.
-PASS element.itemProp.length == 1 is true
-PASS element.itemProp.contains('foo') is false
-PASS element.itemProp.toString() == 'FOO' is true
-
-itemProp.remove must not make any changes if a non-existing token is removed.
-PASS element.itemProp.length == 1 is true
-PASS element.itemProp.contains('foo') is false
-PASS element.itemProp.toString() == 'FOO' is true
-
-itemProp.length must be 0 when all tokens are removed.
-PASS element.itemProp.length == 0 is true
-PASS element.itemProp.contains('foo') is false
-PASS element.itemProp.contains('FOO') is false
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/itemprop-add-remove-tokens.html b/LayoutTests/fast/dom/MicroData/itemprop-add-remove-tokens.html
deleted file mode 100644
index ec6c0db..0000000
--- a/LayoutTests/fast/dom/MicroData/itemprop-add-remove-tokens.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>This tests that itemProp attribute must update correctly when token have been added or removed.</p>
-<div id="console"></div>
-<script>
-var element = createElement('div', {});
-
-debug("itemProp.add must reflect correctly.");
-element.itemProp.add('foo');
-element.itemProp.add('FOO');
-shouldBeTrue("element.itemProp.length == 2");
-shouldBeTrue("element.itemProp.toString() == 'foo FOO'");
-shouldBe("element.itemProp[0]", "'foo'");
-shouldBe("element.itemProp[1]", "'FOO'");
-
-debug("<br>itemProp.add must not make any changes if an existing token is added.");
-element.itemProp.add('foo');
-shouldBeTrue("element.itemProp.length == 2");
-shouldBeTrue("element.itemProp.toString() == 'foo FOO'");
-
-debug("<br>itemProp.remove must reflect correctly.");
-element.itemProp.remove('foo');
-shouldBeTrue("element.itemProp.length == 1");
-shouldBeFalse("element.itemProp.contains('foo')")
-shouldBeTrue("element.itemProp.toString() == 'FOO'");
-
-debug("<br>itemProp.remove must not make any changes if a non-existing token is removed.");
-element.itemProp.remove('foo');
-shouldBeTrue("element.itemProp.length == 1");
-shouldBeFalse("element.itemProp.contains('foo')");
-shouldBeTrue("element.itemProp.toString() == 'FOO'");
-
-debug("<br>itemProp.length must be 0 when all tokens are removed.");
-element.itemProp.remove('FOO');
-shouldBeTrue("element.itemProp.length == 0");
-shouldBeFalse("element.itemProp.contains('foo')");
-shouldBeFalse("element.itemProp.contains('FOO')");
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/itemprop-for-an-element-must-be-correct-expected.txt b/LayoutTests/fast/dom/MicroData/itemprop-for-an-element-must-be-correct-expected.txt
deleted file mode 100644
index abdf57f..0000000
--- a/LayoutTests/fast/dom/MicroData/itemprop-for-an-element-must-be-correct-expected.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-This test that the itemProp should be correct for an element that has itemProp attribute.
-
-Created element of type: div
-Set attribute: itemprop, value: foo bar FOO FOo
-PASS element.itemProp.length == 4 is true
-PASS element.itemProp.toString() == 'foo bar FOO FOo' is true
-PASS element.itemProp.item(0) == 'foo' is true
-PASS element.itemProp.item(1) == 'bar' is true
-PASS element.itemProp[0] == 'foo' is true
-PASS element.itemProp[1] == 'bar' is true
-PASS element.itemProp.contains('bar') is true
-
-itemProp should return case-sensitive strings.
-PASS element.itemProp.item(2) == 'FOO' is true
-PASS element.itemProp[2] == 'FOO' is true
-PASS element.itemProp.item(3) == 'FOo' is true
-FAIL element.itemProp[2] == 'FOo' should be true. Was false.
-
-itemProp should not contain an undefined token.
-PASS element.itemProp.contains('test') is false
-
-itemProp.length should be 0 if element doesn't have any tokens.
-Created element of type: div
-Set attribute: itemprop, value: 
-PASS element1.itemProp.length == 0 is true
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/itemprop-for-an-element-must-be-correct.html b/LayoutTests/fast/dom/MicroData/itemprop-for-an-element-must-be-correct.html
deleted file mode 100644
index b935f18..0000000
--- a/LayoutTests/fast/dom/MicroData/itemprop-for-an-element-must-be-correct.html
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>This test that the itemProp should be correct for an element that has itemProp attribute.</p>
-<div id="console"></div>
-<script>
-var element = createElement('div', {itemprop: 'foo bar FOO FOo'});
-
-shouldBeTrue("element.itemProp.length == 4");
-shouldBeTrue("element.itemProp.toString() == 'foo bar FOO FOo'");
-shouldBeTrue("element.itemProp.item(0) == 'foo'");
-shouldBeTrue("element.itemProp.item(1) == 'bar'");
-shouldBeTrue("element.itemProp[0] == 'foo'");
-shouldBeTrue("element.itemProp[1] == 'bar'");
-shouldBeTrue("element.itemProp.contains('bar')");
-
-debug("<br>itemProp should return case-sensitive strings.");
-shouldBeTrue("element.itemProp.item(2) == 'FOO'");
-shouldBeTrue("element.itemProp[2] == 'FOO'");
-shouldBeTrue("element.itemProp.item(3) == 'FOo'");
-shouldBeTrue("element.itemProp[2] == 'FOo'");
-
-debug("<br>itemProp should not contain an undefined token.");
-shouldBeFalse("element.itemProp.contains('test')");
-
-debug("<br>itemProp.length should be 0 if element doesn't have any tokens.");
-var element1 = createElement('div', {itemprop: ''});
-shouldBeTrue("element1.itemProp.length == 0");
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/itemprop-must-be-read-only-expected.txt b/LayoutTests/fast/dom/MicroData/itemprop-must-be-read-only-expected.txt
deleted file mode 100644
index 478aa47..0000000
--- a/LayoutTests/fast/dom/MicroData/itemprop-must-be-read-only-expected.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-This tests that itemProp and itemProp.length must be read-only.
-
-Created element of type: div
-Set attribute: itemprop, value: foo
-PASS element.itemProp = 'test'; element.itemProp.toString() == 'foo' is true
-PASS element.itemProp.contains('test') is false
-PASS element.itemProp.length = 0; element.itemProp.length == 1 is true
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/itemprop-must-be-read-only.html b/LayoutTests/fast/dom/MicroData/itemprop-must-be-read-only.html
deleted file mode 100644
index 37c950c..0000000
--- a/LayoutTests/fast/dom/MicroData/itemprop-must-be-read-only.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>This tests that itemProp and itemProp.length must be read-only.</p>
-<div id="console"></div>
-<script>
-var element = createElement('div', {itemprop: 'foo'});
-shouldBeTrue("element.itemProp = 'test'; element.itemProp.toString() == 'foo'");
-shouldBeFalse("element.itemProp.contains('test')");
-
-shouldBeTrue("element.itemProp.length = 0; element.itemProp.length == 1");
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/itemprop-names-override-builtin-properties-expected.txt b/LayoutTests/fast/dom/MicroData/itemprop-names-override-builtin-properties-expected.txt
deleted file mode 100644
index 8e916b9..0000000
--- a/LayoutTests/fast/dom/MicroData/itemprop-names-override-builtin-properties-expected.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Test to verify that itemprop names must not override builtin properties.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-Created element of type: div
-Set attribute: itemscope, value: itemscope
-PASS element.properties['namedItem'] is namedItem
-PASS element.properties['item'] is item
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/itemprop-names-override-builtin-properties.html b/LayoutTests/fast/dom/MicroData/itemprop-names-override-builtin-properties.html
deleted file mode 100644
index 91af471..0000000
--- a/LayoutTests/fast/dom/MicroData/itemprop-names-override-builtin-properties.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<script>
-description("Test to verify that itemprop names must not override builtin properties.");
-
-var element = createElement('div', {itemscope: 'itemscope'});
-
-var namedItem = element.properties.namedItem;
-var item = element.properties.item;
-element.innerHTML = '<div itemprop="namedItem item"></div>';
-
-shouldBe("element.properties['namedItem']", "namedItem");
-shouldBe("element.properties['item']", "item");
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/itemprop-reflected-by-itemProp-property-expected.txt b/LayoutTests/fast/dom/MicroData/itemprop-reflected-by-itemProp-property-expected.txt
deleted file mode 100644
index a18e781..0000000
--- a/LayoutTests/fast/dom/MicroData/itemprop-reflected-by-itemProp-property-expected.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-This test ensures that the itemprop attribute must be reflected by the .itemProp property.
-
-Created element of type: div
-Set attribute: itemprop, value: http://example.com/foo
-PASS element.itemProp is defined.
-PASS element.itemProp.toString() is 'http://example.com/foo'
-PASS element.itemProp.toString() is ''
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/itemprop-reflected-by-itemProp-property.html b/LayoutTests/fast/dom/MicroData/itemprop-reflected-by-itemProp-property.html
deleted file mode 100644
index 7bb5c83..0000000
--- a/LayoutTests/fast/dom/MicroData/itemprop-reflected-by-itemProp-property.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>This test ensures that the itemprop attribute must be reflected by the .itemProp property.</p>
-<div id="console"></div>
-<script>
-var element = createElement('div', {itemprop: 'http://example.com/foo'});
-
-shouldBeDefined("element.itemProp");
-shouldBe("element.itemProp.toString()", "'http://example.com/foo'");
-
-element.removeAttribute('itemProp');
-shouldBe("element.itemProp.toString()", "''");
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/itemref-add-remove-tokens-expected.txt b/LayoutTests/fast/dom/MicroData/itemref-add-remove-tokens-expected.txt
deleted file mode 100644
index 7484a56..0000000
--- a/LayoutTests/fast/dom/MicroData/itemref-add-remove-tokens-expected.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-This tests that itemRef attribute must update correctly when token have been added or removed.
-
-Created element of type: div
-itemRef.add must reflect correctly.
-PASS element.itemRef.length == 2 is true
-PASS element.itemRef.toString() is 'foo FOO'
-PASS element.itemRef[0] is 'foo'
-PASS element.itemRef[1] is 'FOO'
-
-itemRef.add must not make any changes if an existing token is added.
-PASS element.itemRef.length == 2 is true
-PASS element.itemRef.toString() is 'foo FOO'
-
-itemRef.remove must reflect correctly.
-PASS element.itemRef.length == 1 is true
-PASS element.itemRef.toString() is 'FOO'
-PASS element.itemRef.contains('foo') is false
-
-itemRef.remove must not make any changes if a non-existing token is removed.
-PASS element.itemRef.length == 1 is true
-PASS element.itemRef.toString() is 'FOO'
-PASS element.itemRef.contains('foo') is false
-
-itemRef.length must be 0 when all tokens are removed.
-PASS element.itemRef.length == 0 is true
-PASS element.itemRef.contains('foo') is false
-PASS element.itemRef.contains('FOO') is false
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/itemref-add-remove-tokens.html b/LayoutTests/fast/dom/MicroData/itemref-add-remove-tokens.html
deleted file mode 100644
index ec0ecca..0000000
--- a/LayoutTests/fast/dom/MicroData/itemref-add-remove-tokens.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>This tests that itemRef attribute must update correctly when token have been added or removed.</p>
-<div id="console"></div>
-<script>
-var element = createElement('div', {});
-
-debug("itemRef.add must reflect correctly.");
-element.itemRef.add('foo');
-element.itemRef.add('FOO');
-shouldBeTrue("element.itemRef.length == 2");
-shouldBe("element.itemRef.toString()", "'foo FOO'");
-shouldBe("element.itemRef[0]", "'foo'");
-shouldBe("element.itemRef[1]", "'FOO'");
-
-debug("<br>itemRef.add must not make any changes if an existing token is added.");
-element.itemRef.add('foo');
-shouldBeTrue("element.itemRef.length == 2");
-shouldBe("element.itemRef.toString()", "'foo FOO'");
-
-debug("<br>itemRef.remove must reflect correctly.");
-element.itemRef.remove('foo');
-shouldBeTrue("element.itemRef.length == 1");
-shouldBe("element.itemRef.toString()", "'FOO'");
-shouldBeFalse("element.itemRef.contains('foo')");
-
-debug("<br>itemRef.remove must not make any changes if a non-existing token is removed.");
-element.itemRef.remove('foo');
-shouldBeTrue("element.itemRef.length == 1");
-shouldBe("element.itemRef.toString()", "'FOO'");
-shouldBeFalse("element.itemRef.contains('foo')");
-
-debug("<br>itemRef.length must be 0 when all tokens are removed.");
-element.itemRef.remove('FOO');
-shouldBeTrue("element.itemRef.length == 0");
-shouldBeFalse("element.itemRef.contains('foo')");
-shouldBeFalse("element.itemRef.contains('FOO')");
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/itemref-attribute-reflected-by-itemRef-property-expected.txt b/LayoutTests/fast/dom/MicroData/itemref-attribute-reflected-by-itemRef-property-expected.txt
deleted file mode 100644
index 135f3e8..0000000
--- a/LayoutTests/fast/dom/MicroData/itemref-attribute-reflected-by-itemRef-property-expected.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-This test ensures that the itemref attribute must be reflected by the .itemRef property.
-
-Created element of type: div
-Set attribute: itemref, value: foo bar
-PASS element.itemRef is defined.
-PASS element.itemRef.length == 2 is true
-PASS element.itemRef.toString() == 'foo bar' is true
-PASS element.itemRef.toString() == '' is true
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/itemref-attribute-reflected-by-itemRef-property.html b/LayoutTests/fast/dom/MicroData/itemref-attribute-reflected-by-itemRef-property.html
deleted file mode 100644
index 4394b96..0000000
--- a/LayoutTests/fast/dom/MicroData/itemref-attribute-reflected-by-itemRef-property.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>This test ensures that the itemref attribute must be reflected by the .itemRef property.</p>
-<div id="console"></div>
-<script>
-var element = createElement('div', {itemref: 'foo bar'});
-shouldBeDefined("element.itemRef");
-
-shouldBeTrue("element.itemRef.length == 2");
-shouldBeTrue("element.itemRef.toString() == 'foo bar'");
-
-element.removeAttribute('itemref');
-shouldBeTrue("element.itemRef.toString() == ''");
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/itemref-for-an-element-must-be-correct-expected.txt b/LayoutTests/fast/dom/MicroData/itemref-for-an-element-must-be-correct-expected.txt
deleted file mode 100644
index e8281a4..0000000
--- a/LayoutTests/fast/dom/MicroData/itemref-for-an-element-must-be-correct-expected.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-This test that the itemRef should be correct for an element that has itemRef attribute.
-
-Created element of type: div
-Set attribute: itemref, value: foo bar FOO FOo
-PASS element.itemRef.length == 4 is true
-PASS element.itemRef.toString() == 'foo bar FOO FOo' is true
-PASS element.itemRef.item(0) == 'foo' is true
-PASS element.itemRef.item(1) == 'bar' is true
-PASS element.itemRef[0] == 'foo' is true
-PASS element.itemRef[1] == 'bar' is true
-PASS element.itemRef.contains('bar') is true
-PASS element.itemRef.contains('foo') is true
-
-itemRef should return case-sensitive strings.
-PASS element.itemRef.item(2) == 'FOO' is true
-PASS element.itemRef[2] == 'FOO' is true
-PASS element.itemRef.item(3) == 'FOo' is true
-PASS element.itemRef[3] == 'FOo' is true
-
-itemRef should not contain an undefined token.
-PASS element.itemRef.contains('test') is false
-
-itemRef.length should be 0 if element has not tokens.
-Created element of type: div
-Set attribute: itemRef, value: 
-PASS element1.itemRef.length == 0 is true
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/itemref-for-an-element-must-be-correct.html b/LayoutTests/fast/dom/MicroData/itemref-for-an-element-must-be-correct.html
deleted file mode 100644
index a9498a4..0000000
--- a/LayoutTests/fast/dom/MicroData/itemref-for-an-element-must-be-correct.html
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>This test that the itemRef should be correct for an element that has itemRef attribute.</p>
-<div id="console"></div>
-<script>
-var element = createElement('div', {itemref: 'foo bar FOO FOo'});
-
-shouldBeTrue("element.itemRef.length == 4");
-shouldBeTrue("element.itemRef.toString() == 'foo bar FOO FOo'");
-shouldBeTrue("element.itemRef.item(0) == 'foo'");
-shouldBeTrue("element.itemRef.item(1) == 'bar'");
-shouldBeTrue("element.itemRef[0] == 'foo'");
-shouldBeTrue("element.itemRef[1] == 'bar'");
-shouldBeTrue("element.itemRef.contains('bar')");
-shouldBeTrue("element.itemRef.contains('foo')");
-
-debug("<br>itemRef should return case-sensitive strings.");
-shouldBeTrue("element.itemRef.item(2) == 'FOO'");
-shouldBeTrue("element.itemRef[2] == 'FOO'");
-shouldBeTrue("element.itemRef.item(3) == 'FOo'");
-shouldBeTrue("element.itemRef[3] == 'FOo'");
-
-debug("<br>itemRef should not contain an undefined token.");
-shouldBeFalse("element.itemRef.contains('test')");
-
-debug("<br>itemRef.length should be 0 if element has not tokens.");
-var element1 = createElement('div', {itemRef: ''});
-shouldBeTrue("element1.itemRef.length == 0");
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/itemref-must-be-read-only-expected.txt b/LayoutTests/fast/dom/MicroData/itemref-must-be-read-only-expected.txt
deleted file mode 100644
index 5e95821..0000000
--- a/LayoutTests/fast/dom/MicroData/itemref-must-be-read-only-expected.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-This tests that itemRef and itemRef.length must be read-only.
-
-Created element of type: div
-Set attribute: itemref, value: foo
-PASS element.itemref = 'test'; element.itemRef.toString() == 'foo' is true
-PASS element.itemRef.contains('test') is false
-PASS element.itemRef.length = 0; element.itemRef.length == 1 is true
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/itemref-must-be-read-only.html b/LayoutTests/fast/dom/MicroData/itemref-must-be-read-only.html
deleted file mode 100644
index d5d1913..0000000
--- a/LayoutTests/fast/dom/MicroData/itemref-must-be-read-only.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>This tests that itemRef and itemRef.length must be read-only.</p>
-<div id="console"></div>
-<script>
-var element = createElement('div', {itemref: 'foo'});
-shouldBeTrue("element.itemref = 'test'; element.itemRef.toString() == 'foo'");
-shouldBeFalse("element.itemRef.contains('test')");
-
-shouldBeTrue("element.itemRef.length = 0; element.itemRef.length == 1");
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/itemref-pointing-to-root-node-expected.txt b/LayoutTests/fast/dom/MicroData/itemref-pointing-to-root-node-expected.txt
deleted file mode 100644
index 9d8b5d0..0000000
--- a/LayoutTests/fast/dom/MicroData/itemref-pointing-to-root-node-expected.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-Test HTMLPropertiesCollection when itemref pointing to the root node.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-Created element of type: div
-Set attribute: id, value: id1
-PASS item.properties.length is 1
-PASS item.properties.item(0) is root.firstChild
-PASS item.properties[0] is root.firstChild
-PASS item.properties.namedItem('foo').length is 1
-PASS item.properties.namedItem('foo').item(0) is root.firstChild
-PASS item.properties.namedItem('foo')[0] is root.firstChild
-PASS item.properties.names.length is 1
-PASS item.properties.names.item(0) is 'foo'
-PASS item.properties.names[0] is 'foo'
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/itemref-pointing-to-root-node.html b/LayoutTests/fast/dom/MicroData/itemref-pointing-to-root-node.html
deleted file mode 100644
index 7fea970..0000000
--- a/LayoutTests/fast/dom/MicroData/itemref-pointing-to-root-node.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<script>
-description("Test HTMLPropertiesCollection when itemref pointing to the root node.");
-
-var root = createElement('div', {id: 'id1'}, '<div itemprop="foo"></div><div itemscope itemref="id1"></div>');
-var item = root.lastChild;
-shouldBe("item.properties.length", "1");
-shouldBe("item.properties.item(0)", "root.firstChild");
-shouldBe("item.properties[0]", "root.firstChild");
-shouldBe("item.properties.namedItem('foo').length", "1");
-shouldBe("item.properties.namedItem('foo').item(0)", "root.firstChild");
-shouldBe("item.properties.namedItem('foo')[0]", "root.firstChild");
-shouldBe("item.properties.names.length", "1");
-shouldBe("item.properties.names.item(0)", "'foo'");
-shouldBe("item.properties.names[0]", "'foo'");
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/itemref-refers-first-element-with-given-id-expected.txt b/LayoutTests/fast/dom/MicroData/itemref-refers-first-element-with-given-id-expected.txt
deleted file mode 100644
index 01c64d4..0000000
--- a/LayoutTests/fast/dom/MicroData/itemref-refers-first-element-with-given-id-expected.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-This test ensures that itemref must reference the first element with a given id.
-
-Created element of type: div
-PASS item.properties.length == '2' is true
-PASS item.properties.item(0) == element.childNodes[1] is true
-PASS item.properties.item(1) == element.childNodes[1].firstChild is true
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/itemref-refers-first-element-with-given-id.html b/LayoutTests/fast/dom/MicroData/itemref-refers-first-element-with-given-id.html
deleted file mode 100644
index 25c6d2c..0000000
--- a/LayoutTests/fast/dom/MicroData/itemref-refers-first-element-with-given-id.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>This test ensures that itemref must reference the first element with a given id.</p>
-<div id="console"></div>
-<script>
-var element = createElement('div',{},'<div itemscope itemref="id1"></div><div itemprop="foo" id="id1"><div itemprop="bar"></div></div><div itemprop="baz" id="id1"></div>');
-document.body.appendChild(element);
-var item = element.childNodes[0];
-
-shouldBeTrue("item.properties.length == '2'");
-shouldBeTrue("item.properties.item(0) == element.childNodes[1]");
-shouldBeTrue("item.properties.item(1) == element.childNodes[1].firstChild");
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/itemscope-attribute-test-expected.txt b/LayoutTests/fast/dom/MicroData/itemscope-attribute-test-expected.txt
deleted file mode 100644
index 5b60dd7..0000000
--- a/LayoutTests/fast/dom/MicroData/itemscope-attribute-test-expected.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-Microdata itemscope attribute simple test.
-
-Created element of type: div
-Set attribute: itemscope, value: itemscope
-
-The itemScope attribute must be defined.
-PASS element.itemScope is defined.
-PASS typeof element.itemScope == 'boolean' is true
-PASS element.itemScope is true
-
-Created element of type: div
-PASS createElement('div',{}).itemScope == 0 is true
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/itemscope-attribute-test.html b/LayoutTests/fast/dom/MicroData/itemscope-attribute-test.html
deleted file mode 100644
index 21ed5d4..0000000
--- a/LayoutTests/fast/dom/MicroData/itemscope-attribute-test.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>Microdata itemscope attribute simple test.</p>
-<div id="console"></div>
-<script>
-var element = createElement('div',{itemscope:'itemscope'});
-
-debug("<br>The itemScope attribute must be defined.");
-shouldBeDefined("element.itemScope");
-shouldBeTrue("typeof element.itemScope == 'boolean'");
-shouldBeTrue("element.itemScope");
-debug('');
-shouldBeTrue("createElement('div',{}).itemScope == 0");
-
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/itemscope-must-be-read-write-expected.txt b/LayoutTests/fast/dom/MicroData/itemscope-must-be-read-write-expected.txt
deleted file mode 100644
index 3004477..0000000
--- a/LayoutTests/fast/dom/MicroData/itemscope-must-be-read-write-expected.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-This tests that itemscope attribute must be read/write.
-
-Created element of type: div
-PASS element.itemScope = true; element.hasAttribute('itemscope') is true
-PASS element.itemScope is true
-PASS element.itemScope = false; element.hasAttribute('itemscope') is false
-PASS element.itemScope is false
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/itemscope-must-be-read-write.html b/LayoutTests/fast/dom/MicroData/itemscope-must-be-read-write.html
deleted file mode 100644
index 9a179f7..0000000
--- a/LayoutTests/fast/dom/MicroData/itemscope-must-be-read-write.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>This tests that itemscope attribute must be read/write.</p>
-<div id="console"></div>
-<script>
-var element = createElement('div', {});
-
-shouldBeTrue("element.itemScope = true; element.hasAttribute('itemscope')");
-shouldBeTrue("element.itemScope");
-shouldBeFalse("element.itemScope = false; element.hasAttribute('itemscope')");
-shouldBeFalse("element.itemScope");
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/itemtype-add-remove-tokens-expected.txt b/LayoutTests/fast/dom/MicroData/itemtype-add-remove-tokens-expected.txt
deleted file mode 100644
index cf09c67..0000000
--- a/LayoutTests/fast/dom/MicroData/itemtype-add-remove-tokens-expected.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-This tests that itemType attribute must update correctly when token have been added or removed.
-
-Created element of type: div
-itemType.add must reflect correctly.
-PASS element.itemType.length == 2 is true
-PASS element.itemType.toString() == 'http://example.com/foo http://example.com/FOO' is true
-PASS element.itemType[0] is 'http://example.com/foo'
-PASS element.itemType[1] is 'http://example.com/FOO'
-PASS element.itemType.item(0) is 'http://example.com/foo'
-PASS element.itemType.item(1) is 'http://example.com/FOO'
-
-itemType.add must not make any changes if an existing token is added.
-PASS element.itemType.length == 2 is true
-PASS element.itemType.toString() == 'http://example.com/foo http://example.com/FOO' is true
-
-itemType.remove must reflect correctly.
-PASS element.itemType.length == 1 is true
-PASS element.itemType.contains('http://example.com/foo') is false
-PASS element.itemType.toString() == 'http://example.com/FOO' is true
-
-itemType.remove must not make any changes if remove is called for a token that doesn't exist.
-PASS element.itemType.length == 1 is true
-PASS element.itemType.contains('http://example.com/foo') is false
-PASS element.itemType.toString() == 'http://example.com/FOO' is true
-
-itemType.length must be 0 when all tokens are removed.
-PASS element.itemType.length == 0 is true
-PASS element.itemType.contains('http://example.com/foo') is false
-PASS element.itemType.contains('http://example.com/FOO') is false
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/itemtype-add-remove-tokens.html b/LayoutTests/fast/dom/MicroData/itemtype-add-remove-tokens.html
deleted file mode 100644
index 67ac399..0000000
--- a/LayoutTests/fast/dom/MicroData/itemtype-add-remove-tokens.html
+++ /dev/null
@@ -1,50 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>This tests that itemType attribute must update correctly when token have been added or removed.</p>
-<div id="console"></div>
-<script>
-var element = createElement('div', {});
-
-debug("itemType.add must reflect correctly.");
-element.itemType.add('http://example.com/foo');
-element.itemType.add('http://example.com/FOO');
-
-shouldBeTrue("element.itemType.length == 2");
-shouldBeTrue("element.itemType.toString() == 'http://example.com/foo http://example.com/FOO'");
-shouldBe("element.itemType[0]", "'http://example.com/foo'");
-shouldBe("element.itemType[1]", "'http://example.com/FOO'");
-shouldBe("element.itemType.item(0)", "'http://example.com/foo'");
-shouldBe("element.itemType.item(1)", "'http://example.com/FOO'");
-
-debug("<br>itemType.add must not make any changes if an existing token is added.");
-element.itemType.add('http://example.com/foo');
-shouldBeTrue("element.itemType.length == 2");
-shouldBeTrue("element.itemType.toString() == 'http://example.com/foo http://example.com/FOO'");
-
-debug("<br>itemType.remove must reflect correctly.");
-element.itemType.remove('http://example.com/foo');
-shouldBeTrue("element.itemType.length == 1");
-shouldBeFalse("element.itemType.contains('http://example.com/foo')")
-shouldBeTrue("element.itemType.toString() == 'http://example.com/FOO'");
-
-debug("<br>itemType.remove must not make any changes if remove is called for a token that doesn't exist.");
-element.itemType.remove('http://example.com/foo');
-shouldBeTrue("element.itemType.length == 1");
-shouldBeFalse("element.itemType.contains('http://example.com/foo')");
-shouldBeTrue("element.itemType.toString() == 'http://example.com/FOO'");
-
-debug("<br>itemType.length must be 0 when all tokens are removed.");
-element.itemType.remove('http://example.com/FOO');
-shouldBeTrue("element.itemType.length == 0");
-shouldBeFalse("element.itemType.contains('http://example.com/foo')");
-shouldBeFalse("element.itemType.contains('http://example.com/FOO')");
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/itemtype-attribute-test-expected.txt b/LayoutTests/fast/dom/MicroData/itemtype-attribute-test-expected.txt
deleted file mode 100644
index 8a45e6d..0000000
--- a/LayoutTests/fast/dom/MicroData/itemtype-attribute-test-expected.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-itemType attribute simple test.
-
-Created element of type: div
-Set attribute: itemtype, value: http://example.com/foo
-
-The itemType attribute must be defined.
-PASS element.itemType is defined.
-PASS element.itemType.toString() is 'http://example.com/foo'
-
-itemType and itemType.length must be read-only.
-PASS element.itemType = 'http://example.com/test'; element.itemType.toString() == 'http://example.com/foo' is true
-PASS element.itemType.contains('http://example.com/test') is false
-PASS element.itemType.length = 0; element.itemType.length == 1 is true
-
-removeAttribute('itemType') must reflect correctly.
-PASS element.itemType.toString() is ''
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/itemtype-attribute-test.html b/LayoutTests/fast/dom/MicroData/itemtype-attribute-test.html
deleted file mode 100644
index f385217..0000000
--- a/LayoutTests/fast/dom/MicroData/itemtype-attribute-test.html
+++ /dev/null
@@ -1,29 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>itemType attribute simple test.</p>
-<div id="console"></div>
-<script>
-var element = createElement('div', {itemtype: 'http://example.com/foo'});
-
-debug("<br>The itemType attribute must be defined.");
-shouldBeDefined("element.itemType");
-shouldBe("element.itemType.toString()", "'http://example.com/foo'");
-
-debug("<br>itemType and itemType.length must be read-only.");
-shouldBeTrue("element.itemType = 'http://example.com/test'; element.itemType.toString() == 'http://example.com/foo'");
-shouldBeFalse("element.itemType.contains('http://example.com/test')");
-shouldBeTrue("element.itemType.length = 0; element.itemType.length == 1");
-
-debug("<br>removeAttribute('itemType') must reflect correctly.");
-element.removeAttribute('itemType');
-shouldBe("element.itemType.toString()", "''");
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/itemvalue-reflects-data-attr-on-object-element-expected.txt b/LayoutTests/fast/dom/MicroData/itemvalue-reflects-data-attr-on-object-element-expected.txt
deleted file mode 100644
index 59de36e..0000000
--- a/LayoutTests/fast/dom/MicroData/itemvalue-reflects-data-attr-on-object-element-expected.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-This test ensures that itemValue must reflect the data attribute on object element.
-
-Created element of type: object
-Set attribute: itemprop, value: foo
-Set attribute: data, value: http://example.org/
-PASS objectElement.itemValue is 'http://example.org/'
-PASS objectElement.itemValue is 'http://example.net/'
-PASS objectElement.data is 'http://example.com/'
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/itemvalue-reflects-data-attr-on-object-element.html b/LayoutTests/fast/dom/MicroData/itemvalue-reflects-data-attr-on-object-element.html
deleted file mode 100644
index b0c79db..0000000
--- a/LayoutTests/fast/dom/MicroData/itemvalue-reflects-data-attr-on-object-element.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>This test ensures that itemValue must reflect the data attribute on object element.</p>
-<div id="console"></div>
-<script>
-var objectElement = createElement('object', {itemprop: 'foo', data: 'http://example.org/'});
-shouldBe('objectElement.itemValue', "'http://example.org/'");
-objectElement.data = 'http://example.net/';
-shouldBe('objectElement.itemValue', "'http://example.net/'");
-objectElement.itemValue = 'http://example.com/';
-shouldBe('objectElement.data', "'http://example.com/'");
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html
diff --git a/LayoutTests/fast/dom/MicroData/itemvalue-reflects-href-attr-expected.txt b/LayoutTests/fast/dom/MicroData/itemvalue-reflects-href-attr-expected.txt
deleted file mode 100644
index b365e5a..0000000
--- a/LayoutTests/fast/dom/MicroData/itemvalue-reflects-href-attr-expected.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-This test ensures that itemValue must reflect the href attribute if the element is an a, area, or link element.
-
-Testing 'a' element's behavior.
-Created element of type: a
-Set attribute: itemprop, value: foo
-Set attribute: href, value: http://example.org/
-PASS testElement.itemValue is 'http://example.org/'
-PASS testElement.itemValue is 'http://example.net/'
-PASS testElement.href is 'http://example.com/'
-
-Testing 'area' element's behavior.
-Created element of type: area
-Set attribute: itemprop, value: foo
-Set attribute: href, value: http://example.org/
-PASS testElement.itemValue is 'http://example.org/'
-PASS testElement.itemValue is 'http://example.net/'
-PASS testElement.href is 'http://example.com/'
-
-Testing 'link' element's behavior.
-Created element of type: link
-Set attribute: itemprop, value: foo
-Set attribute: href, value: http://example.org/
-PASS testElement.itemValue is 'http://example.org/'
-PASS testElement.itemValue is 'http://example.net/'
-PASS testElement.href is 'http://example.com/'
-
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/itemvalue-reflects-href-attr.html b/LayoutTests/fast/dom/MicroData/itemvalue-reflects-href-attr.html
deleted file mode 100644
index a855fba..0000000
--- a/LayoutTests/fast/dom/MicroData/itemvalue-reflects-href-attr.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>This test ensures that itemValue must reflect the href attribute if the element is an a, area, or link element.</p>
-<div id="console"></div>
-<script>
-var testElement;
-function runTest(tagName)
-{
-    debug("Testing '" + tagName + "' element's behavior.");
-    testElement = createElement(tagName, {itemprop: 'foo', href: 'http://example.org/'});
-    shouldBe("testElement.itemValue", "'http://example.org/'");
-    testElement.href = 'http://example.net/';
-    shouldBe("testElement.itemValue", "'http://example.net/'");
-    testElement.itemValue = 'http://example.com/';
-    shouldBe("testElement.href", "'http://example.com/'");
-    debug('');
-}
-
-runTest('a');
-runTest('area');
-runTest('link');
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html
diff --git a/LayoutTests/fast/dom/MicroData/itemvalue-reflects-src-attribute-on-img-element-expected.txt b/LayoutTests/fast/dom/MicroData/itemvalue-reflects-src-attribute-on-img-element-expected.txt
deleted file mode 100644
index 7cfabd5..0000000
--- a/LayoutTests/fast/dom/MicroData/itemvalue-reflects-src-attribute-on-img-element-expected.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-This test ensures that itemValue must reflect the src attribute on img element.
-
-Created element of type: img
-Set attribute: itemprop, value: foo
-Set attribute: src, value: green.jpg
-PASS imgElement.itemValue is imgElement.src
-PASS imgElement.itemValue is imgElement.src
-PASS imgElement.src is imgElement.itemValue
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/itemvalue-reflects-src-attribute-on-img-element.html b/LayoutTests/fast/dom/MicroData/itemvalue-reflects-src-attribute-on-img-element.html
deleted file mode 100644
index e37f2ea..0000000
--- a/LayoutTests/fast/dom/MicroData/itemvalue-reflects-src-attribute-on-img-element.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>This test ensures that itemValue must reflect the src attribute on img element.</p>
-<div id="console"></div>
-<script>
-var imgElement = createElement('img', {itemprop: 'foo', src: 'green.jpg'});
-shouldBe('imgElement.itemValue', 'imgElement.src');
-imgElement.src = 'red.jpg';
-shouldBe('imgElement.itemValue', "imgElement.src");
-imgElement.itemValue = 'blue.jpeg';
-shouldBe('imgElement.src', "imgElement.itemValue");
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html
diff --git a/LayoutTests/fast/dom/MicroData/itemvalue-reflects-the-content-attr-on-meta-element-expected.txt b/LayoutTests/fast/dom/MicroData/itemvalue-reflects-the-content-attr-on-meta-element-expected.txt
deleted file mode 100644
index 58d987a..0000000
--- a/LayoutTests/fast/dom/MicroData/itemvalue-reflects-the-content-attr-on-meta-element-expected.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-This test ensures that itemValue must reflect the content attribute on meta element.
-
-Created element of type: meta
-Set attribute: itemprop, value: foo
-Set attribute: content, value: test
-PASS metaElement.itemValue is 'test'
-PASS metaElement.itemValue is 'retest'
-PASS metaElement.content is 'bar'
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/itemvalue-reflects-the-content-attr-on-meta-element.html b/LayoutTests/fast/dom/MicroData/itemvalue-reflects-the-content-attr-on-meta-element.html
deleted file mode 100644
index 6652927..0000000
--- a/LayoutTests/fast/dom/MicroData/itemvalue-reflects-the-content-attr-on-meta-element.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>This test ensures that itemValue must reflect the content attribute on meta element.</p>
-<div id="console"></div>
-<script>
-var metaElement = createElement('meta', {itemprop: 'foo',content: 'test'});
-shouldBe('metaElement.itemValue', "'test'");
-metaElement.content = 'retest';
-shouldBe('metaElement.itemValue', "'retest'");
-metaElement.itemValue = 'bar';
-shouldBe('metaElement.content', "'bar'");
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html
diff --git a/LayoutTests/fast/dom/MicroData/itemvalue-reflects-the-src-attr-expected.txt b/LayoutTests/fast/dom/MicroData/itemvalue-reflects-the-src-attr-expected.txt
deleted file mode 100644
index 270eef0..0000000
--- a/LayoutTests/fast/dom/MicroData/itemvalue-reflects-the-src-attr-expected.txt
+++ /dev/null
@@ -1,54 +0,0 @@
-This test ensures that itemValue must reflect the src attribute if the element is an audio, embed, iframe, source, track, or video element.
-
-Testing 'audio' element's behavior.
-Created element of type: audio
-Set attribute: itemprop, value: foo
-Set attribute: src, value: http://example.org/
-PASS testElement.itemValue is 'http://example.org/'
-PASS testElement.itemValue is 'http://example.net/'
-PASS testElement.src is 'http://example.com/'
-
-Testing 'embed' element's behavior.
-Created element of type: embed
-Set attribute: itemprop, value: foo
-Set attribute: src, value: http://example.org/
-PASS testElement.itemValue is 'http://example.org/'
-PASS testElement.itemValue is 'http://example.net/'
-PASS testElement.src is 'http://example.com/'
-
-Testing 'iframe' element's behavior.
-Created element of type: iframe
-Set attribute: itemprop, value: foo
-Set attribute: src, value: http://example.org/
-PASS testElement.itemValue is 'http://example.org/'
-PASS testElement.itemValue is 'http://example.net/'
-PASS testElement.src is 'http://example.com/'
-
-Testing 'source' element's behavior.
-Created element of type: source
-Set attribute: itemprop, value: foo
-Set attribute: src, value: http://example.org/
-PASS testElement.itemValue is 'http://example.org/'
-PASS testElement.itemValue is 'http://example.net/'
-PASS testElement.src is 'http://example.com/'
-
-Testing 'track' element's behavior.
-Created element of type: track
-Set attribute: itemprop, value: foo
-Set attribute: src, value: http://example.org/
-PASS testElement.itemValue is 'http://example.org/'
-PASS testElement.itemValue is 'http://example.net/'
-PASS testElement.src is 'http://example.com/'
-
-Testing 'video' element's behavior.
-Created element of type: video
-Set attribute: itemprop, value: foo
-Set attribute: src, value: http://example.org/
-PASS testElement.itemValue is 'http://example.org/'
-PASS testElement.itemValue is 'http://example.net/'
-PASS testElement.src is 'http://example.com/'
-
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/itemvalue-reflects-the-src-attr.html b/LayoutTests/fast/dom/MicroData/itemvalue-reflects-the-src-attr.html
deleted file mode 100644
index 5562aff..0000000
--- a/LayoutTests/fast/dom/MicroData/itemvalue-reflects-the-src-attr.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>This test ensures that itemValue must reflect the src attribute if the element is an audio, embed, iframe, source, track, or video element.</p>
-<div id="console"></div>
-<script>
-var testElement;
-function runTest(tagName)
-{
-    debug("Testing '" + tagName + "' element's behavior.");
-    testElement = createElement(tagName, {itemprop: 'foo', src: 'http://example.org/'});
-    shouldBe("testElement.itemValue", "'http://example.org/'");
-    testElement.src = 'http://example.net/';
-    shouldBe("testElement.itemValue", "'http://example.net/'");
-    testElement.itemValue = 'http://example.com/';
-    shouldBe("testElement.src", "'http://example.com/'");
-    debug('');
-}
-
-runTest('audio');
-runTest('embed');
-runTest('iframe');
-runTest('source');
-runTest('track');
-runTest('video');
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html
diff --git a/LayoutTests/fast/dom/MicroData/itemvalue-returns-element-itself-expected.txt b/LayoutTests/fast/dom/MicroData/itemvalue-returns-element-itself-expected.txt
deleted file mode 100644
index c38be70..0000000
--- a/LayoutTests/fast/dom/MicroData/itemvalue-returns-element-itself-expected.txt
+++ /dev/null
@@ -1,97 +0,0 @@
-This test ensures that itemValue must return the element itself if the element has an itemscope attribute
-
-Testing 'meta' element's behavior.
-Created element of type: meta
-Set attribute: itemscope, value: itemscope
-Set attribute: itemprop, value: foo
-Set attribute: content, value: test
-PASS testElement.itemValue is testElement
-
-Testing 'audio' element's behavior.
-Created element of type: audio
-Set attribute: itemscope, value: itemscope
-Set attribute: itemprop, value: foo
-Set attribute: content, value: test
-PASS testElement.itemValue is testElement
-
-Testing 'embed' element's behavior.
-Created element of type: embed
-Set attribute: itemscope, value: itemscope
-Set attribute: itemprop, value: foo
-Set attribute: content, value: test
-PASS testElement.itemValue is testElement
-
-Testing 'iframe' element's behavior.
-Created element of type: iframe
-Set attribute: itemscope, value: itemscope
-Set attribute: itemprop, value: foo
-Set attribute: content, value: test
-PASS testElement.itemValue is testElement
-
-Testing 'img' element's behavior.
-Created element of type: img
-Set attribute: itemscope, value: itemscope
-Set attribute: itemprop, value: foo
-Set attribute: content, value: test
-PASS testElement.itemValue is testElement
-
-Testing 'source' element's behavior.
-Created element of type: source
-Set attribute: itemscope, value: itemscope
-Set attribute: itemprop, value: foo
-Set attribute: content, value: test
-PASS testElement.itemValue is testElement
-
-Testing 'track' element's behavior.
-Created element of type: track
-Set attribute: itemscope, value: itemscope
-Set attribute: itemprop, value: foo
-Set attribute: content, value: test
-PASS testElement.itemValue is testElement
-
-Testing 'video' element's behavior.
-Created element of type: video
-Set attribute: itemscope, value: itemscope
-Set attribute: itemprop, value: foo
-Set attribute: content, value: test
-PASS testElement.itemValue is testElement
-
-Testing 'a' element's behavior.
-Created element of type: a
-Set attribute: itemscope, value: itemscope
-Set attribute: itemprop, value: foo
-Set attribute: content, value: test
-PASS testElement.itemValue is testElement
-
-Testing 'area' element's behavior.
-Created element of type: area
-Set attribute: itemscope, value: itemscope
-Set attribute: itemprop, value: foo
-Set attribute: content, value: test
-PASS testElement.itemValue is testElement
-
-Testing 'link' element's behavior.
-Created element of type: link
-Set attribute: itemscope, value: itemscope
-Set attribute: itemprop, value: foo
-Set attribute: content, value: test
-PASS testElement.itemValue is testElement
-
-Testing 'object' element's behavior.
-Created element of type: object
-Set attribute: itemscope, value: itemscope
-Set attribute: itemprop, value: foo
-Set attribute: content, value: test
-PASS testElement.itemValue is testElement
-
-Testing 'div' element's behavior.
-Created element of type: div
-Set attribute: itemscope, value: itemscope
-Set attribute: itemprop, value: foo
-Set attribute: content, value: test
-PASS testElement.itemValue is testElement
-
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/itemvalue-returns-element-itself.html b/LayoutTests/fast/dom/MicroData/itemvalue-returns-element-itself.html
deleted file mode 100644
index 3155948..0000000
--- a/LayoutTests/fast/dom/MicroData/itemvalue-returns-element-itself.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>This test ensures that itemValue must return the element itself if the element has an itemscope attribute</p>
-<div id="console"></div>
-<script>
-var testElement;
-function runTest(tagName) {
-    debug("Testing '" + tagName + "' element's behavior.");
-    testElement = createElement(tagName, {itemscope: 'itemscope', itemprop: 'foo', content: 'test'});
-    shouldBe("testElement.itemValue", "testElement");
-    debug('');
-}
-
-runTest('meta');
-runTest('audio');
-runTest('embed');
-runTest('iframe');
-runTest('img');
-runTest('source');
-runTest('track');
-runTest('video');
-runTest('a');
-runTest('area');
-runTest('link');
-runTest('object');
-runTest('div');
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html
diff --git a/LayoutTests/fast/dom/MicroData/itemvalue-returns-null-expected.txt b/LayoutTests/fast/dom/MicroData/itemvalue-returns-null-expected.txt
deleted file mode 100644
index a55acc5..0000000
--- a/LayoutTests/fast/dom/MicroData/itemvalue-returns-null-expected.txt
+++ /dev/null
@@ -1,66 +0,0 @@
-This tests that itemValue must be null if the element does not have an itemprop attribute
-
-Created element of type: meta
-Set attribute: content, value: test
-PASS createElement('meta', {content: 'test'}).itemValue == null is true
-
-Created element of type: audio
-Set attribute: src, value: test
-PASS createElement('audio', {src: 'test'}).itemValue == null is true
-
-Created element of type: embed
-Set attribute: src, value: test
-PASS createElement('embed', {src: 'test'}).itemValue == null is true
-
-Created element of type: iframe
-Set attribute: src, value: test
-PASS createElement('iframe', {src: 'test'}).itemValue == null is true
-
-Created element of type: img
-Set attribute: src, value: test
-PASS createElement('img', {src: 'test'}).itemValue == null is true
-
-Created element of type: source
-Set attribute: src, value: test
-PASS createElement('source', {src: 'test'}).itemValue == null is true
-
-Created element of type: track
-Set attribute: src, value: test
-PASS createElement('track', {src: 'test'}).itemValue == null is true
-
-Created element of type: video
-Set attribute: src, value: test
-PASS createElement('video', {src: 'test'}).itemValue == null is true
-
-Created element of type: a
-Set attribute: href, value: test
-PASS createElement('a', {href: 'test'}).itemValue == null is true
-
-Created element of type: area
-Set attribute: href, value: test
-PASS createElement('area', {href: 'test'}).itemValue == null is true
-
-Created element of type: link
-Set attribute: href, value: test
-PASS createElement('link', {href: 'test'}).itemValue == null is true
-
-Created element of type: object
-Set attribute: data, value: test
-PASS createElement('object', {data: 'test'}).itemValue == null is true
-
-Created element of type: time
-PASS createElement('time', {}).itemValue == null is true
-
-Created element of type: time
-Set attribute: datetime, value: test
-PASS createElement('time', {datetime: 'test'}).itemValue == null is true
-
-Created element of type: div
-PASS createElement('div', {}, 'test').itemValue == null is true
-
-Created element of type: madeuponthespot
-PASS createElement('madeuponthespot', {}, 'test').itemValue == null is true
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/itemvalue-returns-null.html b/LayoutTests/fast/dom/MicroData/itemvalue-returns-null.html
deleted file mode 100644
index 1dd06a8..0000000
--- a/LayoutTests/fast/dom/MicroData/itemvalue-returns-null.html
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>This tests that itemValue must be null if the element does not have an itemprop attribute</p>
-<div id="console"></div>
-<script>
-shouldBeTrue("createElement('meta', {content: 'test'}).itemValue == null");
-debug('');
-shouldBeTrue("createElement('audio', {src: 'test'}).itemValue == null");
-debug('');
-shouldBeTrue("createElement('embed', {src: 'test'}).itemValue == null");
-debug('');
-shouldBeTrue("createElement('iframe', {src: 'test'}).itemValue == null");
-debug('');
-shouldBeTrue("createElement('img', {src: 'test'}).itemValue == null");
-debug('');
-shouldBeTrue("createElement('source', {src: 'test'}).itemValue == null");
-debug('');
-shouldBeTrue("createElement('track', {src: 'test'}).itemValue == null");
-debug('');
-shouldBeTrue("createElement('video', {src: 'test'}).itemValue == null");
-debug('');
-shouldBeTrue("createElement('a', {href: 'test'}).itemValue == null");
-debug('');
-shouldBeTrue("createElement('area', {href: 'test'}).itemValue == null");
-debug('');
-shouldBeTrue("createElement('link', {href: 'test'}).itemValue == null");
-debug('');
-shouldBeTrue("createElement('object', {data: 'test'}).itemValue == null");
-debug('');
-shouldBeTrue("createElement('time', {}).itemValue == null");
-debug('');
-shouldBeTrue("createElement('time', {datetime: 'test'}).itemValue == null");
-debug('');
-shouldBeTrue("createElement('div', {}, 'test').itemValue == null");
-debug('');
-shouldBeTrue("createElement('madeuponthespot', {}, 'test').itemValue == null");
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html
diff --git a/LayoutTests/fast/dom/MicroData/itemvalue-throws-excpetion-onsetting-001-expected.txt b/LayoutTests/fast/dom/MicroData/itemvalue-throws-excpetion-onsetting-001-expected.txt
deleted file mode 100644
index 01f4752..0000000
--- a/LayoutTests/fast/dom/MicroData/itemvalue-throws-excpetion-onsetting-001-expected.txt
+++ /dev/null
@@ -1,97 +0,0 @@
-This test ensures that writing to itemValue must throw an INVALID_ACCESS_ERR error if the element has an itemscope attribute.
-
-Testing 'meta' element's behavior.
-Created element of type: meta
-Set attribute: itemscope, value: itemscope
-Set attribute: itemprop, value: foo
-Set attribute: content, value: test
-TEST SUCCEEDED: Got the expected exception (15) INVALID_ACCESS_ERR.
-
-Testing 'audio' element's behavior.
-Created element of type: audio
-Set attribute: itemscope, value: itemscope
-Set attribute: itemprop, value: foo
-Set attribute: content, value: test
-TEST SUCCEEDED: Got the expected exception (15) INVALID_ACCESS_ERR.
-
-Testing 'embed' element's behavior.
-Created element of type: embed
-Set attribute: itemscope, value: itemscope
-Set attribute: itemprop, value: foo
-Set attribute: content, value: test
-TEST SUCCEEDED: Got the expected exception (15) INVALID_ACCESS_ERR.
-
-Testing 'iframe' element's behavior.
-Created element of type: iframe
-Set attribute: itemscope, value: itemscope
-Set attribute: itemprop, value: foo
-Set attribute: content, value: test
-TEST SUCCEEDED: Got the expected exception (15) INVALID_ACCESS_ERR.
-
-Testing 'img' element's behavior.
-Created element of type: img
-Set attribute: itemscope, value: itemscope
-Set attribute: itemprop, value: foo
-Set attribute: content, value: test
-TEST SUCCEEDED: Got the expected exception (15) INVALID_ACCESS_ERR.
-
-Testing 'source' element's behavior.
-Created element of type: source
-Set attribute: itemscope, value: itemscope
-Set attribute: itemprop, value: foo
-Set attribute: content, value: test
-TEST SUCCEEDED: Got the expected exception (15) INVALID_ACCESS_ERR.
-
-Testing 'track' element's behavior.
-Created element of type: track
-Set attribute: itemscope, value: itemscope
-Set attribute: itemprop, value: foo
-Set attribute: content, value: test
-TEST SUCCEEDED: Got the expected exception (15) INVALID_ACCESS_ERR.
-
-Testing 'video' element's behavior.
-Created element of type: video
-Set attribute: itemscope, value: itemscope
-Set attribute: itemprop, value: foo
-Set attribute: content, value: test
-TEST SUCCEEDED: Got the expected exception (15) INVALID_ACCESS_ERR.
-
-Testing 'a' element's behavior.
-Created element of type: a
-Set attribute: itemscope, value: itemscope
-Set attribute: itemprop, value: foo
-Set attribute: content, value: test
-TEST SUCCEEDED: Got the expected exception (15) INVALID_ACCESS_ERR.
-
-Testing 'area' element's behavior.
-Created element of type: area
-Set attribute: itemscope, value: itemscope
-Set attribute: itemprop, value: foo
-Set attribute: content, value: test
-TEST SUCCEEDED: Got the expected exception (15) INVALID_ACCESS_ERR.
-
-Testing 'link' element's behavior.
-Created element of type: link
-Set attribute: itemscope, value: itemscope
-Set attribute: itemprop, value: foo
-Set attribute: content, value: test
-TEST SUCCEEDED: Got the expected exception (15) INVALID_ACCESS_ERR.
-
-Testing 'object' element's behavior.
-Created element of type: object
-Set attribute: itemscope, value: itemscope
-Set attribute: itemprop, value: foo
-Set attribute: content, value: test
-TEST SUCCEEDED: Got the expected exception (15) INVALID_ACCESS_ERR.
-
-Testing 'div' element's behavior.
-Created element of type: div
-Set attribute: itemscope, value: itemscope
-Set attribute: itemprop, value: foo
-Set attribute: content, value: test
-TEST SUCCEEDED: Got the expected exception (15) INVALID_ACCESS_ERR.
-
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/itemvalue-throws-excpetion-onsetting-001.html b/LayoutTests/fast/dom/MicroData/itemvalue-throws-excpetion-onsetting-001.html
deleted file mode 100644
index ca0751c..0000000
--- a/LayoutTests/fast/dom/MicroData/itemvalue-throws-excpetion-onsetting-001.html
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>This test ensures that writing to itemValue must throw an INVALID_ACCESS_ERR error if the element has an itemscope attribute.</p>
-<div id="console"></div>
-<script>
-var exceptionCode;
-function runTest(tagName)
-{
-    debug("Testing '" + tagName + "' element's behavior.");
-    exceptionCode = undefined;
-    testElement = createElement(tagName, {itemscope: 'itemscope', itemprop: 'foo', content: 'test'});
-    try {
-        testElement.itemValue = 'test'
-    } catch (exception) {
-        exceptionCode = exception.code;
-    }
-
-    if (exceptionCode == DOMException.INVALID_ACCESS_ERR)
-        debug("TEST SUCCEEDED: Got the expected exception (" + exceptionCode + ") INVALID_ACCESS_ERR.<br>");
-    else
-        debug("TEST FAILED: Should've thrown INVALID_ACCESS_ERR but threw " + exceptionCode + ".<br>");
-}
-
-runTest('meta');
-runTest('audio');
-runTest('embed');
-runTest('iframe');
-runTest('img');
-runTest('source');
-runTest('track');
-runTest('video');
-runTest('a');
-runTest('area');
-runTest('link');
-runTest('object');
-runTest('div');
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html
diff --git a/LayoutTests/fast/dom/MicroData/itemvalue-throws-excpetion-onsetting-002-expected.txt b/LayoutTests/fast/dom/MicroData/itemvalue-throws-excpetion-onsetting-002-expected.txt
deleted file mode 100644
index 64ac84f..0000000
--- a/LayoutTests/fast/dom/MicroData/itemvalue-throws-excpetion-onsetting-002-expected.txt
+++ /dev/null
@@ -1,71 +0,0 @@
-This test ensures that writing to itemValue must throw an INVALID_ACCESS_ERR error if the element does not have an itemprop attribute.
-
-Testing 'meta' element's behavior.
-Created element of type: meta
-Set attribute: content, value: testContent
-TEST SUCCEEDED: Got the expected exception (15) INVALID_ACCESS_ERR.
-
-Testing 'audio' element's behavior.
-Created element of type: audio
-Set attribute: content, value: testContent
-TEST SUCCEEDED: Got the expected exception (15) INVALID_ACCESS_ERR.
-
-Testing 'embed' element's behavior.
-Created element of type: embed
-Set attribute: content, value: testContent
-TEST SUCCEEDED: Got the expected exception (15) INVALID_ACCESS_ERR.
-
-Testing 'iframe' element's behavior.
-Created element of type: iframe
-Set attribute: content, value: testContent
-TEST SUCCEEDED: Got the expected exception (15) INVALID_ACCESS_ERR.
-
-Testing 'img' element's behavior.
-Created element of type: img
-Set attribute: content, value: testContent
-TEST SUCCEEDED: Got the expected exception (15) INVALID_ACCESS_ERR.
-
-Testing 'source' element's behavior.
-Created element of type: source
-Set attribute: content, value: testContent
-TEST SUCCEEDED: Got the expected exception (15) INVALID_ACCESS_ERR.
-
-Testing 'track' element's behavior.
-Created element of type: track
-Set attribute: content, value: testContent
-TEST SUCCEEDED: Got the expected exception (15) INVALID_ACCESS_ERR.
-
-Testing 'video' element's behavior.
-Created element of type: video
-Set attribute: content, value: testContent
-TEST SUCCEEDED: Got the expected exception (15) INVALID_ACCESS_ERR.
-
-Testing 'a' element's behavior.
-Created element of type: a
-Set attribute: content, value: testContent
-TEST SUCCEEDED: Got the expected exception (15) INVALID_ACCESS_ERR.
-
-Testing 'area' element's behavior.
-Created element of type: area
-Set attribute: content, value: testContent
-TEST SUCCEEDED: Got the expected exception (15) INVALID_ACCESS_ERR.
-
-Testing 'link' element's behavior.
-Created element of type: link
-Set attribute: content, value: testContent
-TEST SUCCEEDED: Got the expected exception (15) INVALID_ACCESS_ERR.
-
-Testing 'object' element's behavior.
-Created element of type: object
-Set attribute: content, value: testContent
-TEST SUCCEEDED: Got the expected exception (15) INVALID_ACCESS_ERR.
-
-Testing 'div' element's behavior.
-Created element of type: div
-Set attribute: content, value: testContent
-TEST SUCCEEDED: Got the expected exception (15) INVALID_ACCESS_ERR.
-
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/itemvalue-throws-excpetion-onsetting-002.html b/LayoutTests/fast/dom/MicroData/itemvalue-throws-excpetion-onsetting-002.html
deleted file mode 100644
index bef4c00..0000000
--- a/LayoutTests/fast/dom/MicroData/itemvalue-throws-excpetion-onsetting-002.html
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>This test ensures that writing to itemValue must throw an INVALID_ACCESS_ERR error if the element does not have an itemprop attribute.</p>
-<div id="console"></div>
-<script>
-var exceptionCode;
-function runTest(tagName)
-{
-    debug("Testing '" + tagName + "' element's behavior.");
-    exceptionCode = undefined;
-    testElement = createElement(tagName, {content: 'testContent'});
-    try {
-        testElement.itemValue = 'test'
-    } catch (exception) {
-        exceptionCode = exception.code;
-    }
-
-    if (exceptionCode == DOMException.INVALID_ACCESS_ERR)
-        debug("TEST SUCCEEDED: Got the expected exception (" + exceptionCode + ") INVALID_ACCESS_ERR.<br>");
-    else
-        debug("TEST FAILED: Should've thrown INVALID_ACCESS_ERR but threw " + exceptionCode + ".<br>");
-}
-
-runTest('meta');
-runTest('audio');
-runTest('embed');
-runTest('iframe');
-runTest('img');
-runTest('source');
-runTest('track');
-runTest('video');
-runTest('a');
-runTest('area');
-runTest('link');
-runTest('object');
-runTest('div');
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html
diff --git a/LayoutTests/fast/dom/MicroData/microdata-domtokenlist-attribute-add-remove-tokens-expected.txt b/LayoutTests/fast/dom/MicroData/microdata-domtokenlist-attribute-add-remove-tokens-expected.txt
deleted file mode 100644
index b1ec8e3..0000000
--- a/LayoutTests/fast/dom/MicroData/microdata-domtokenlist-attribute-add-remove-tokens-expected.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-This tests that itemtype, itemprop, itemref attributes must update correctly when tokens have been added or removed.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-itemtype attribute test.
-PASS element.getAttribute('itemtype') is 'foo FOO'
-PASS element.getAttribute('itemtype') is 'FOO'
-PASS element.getAttribute('itemtype') is ''
-
-itemprop attribute test.
-PASS element.getAttribute('itemprop') is 'foo FOO'
-PASS element.getAttribute('itemprop') is 'FOO'
-PASS element.getAttribute('itemprop') is ''
-
-itemref attribute test.
-PASS element.getAttribute('itemref') is 'foo FOO'
-PASS element.getAttribute('itemref') is 'FOO'
-PASS element.getAttribute('itemref') is ''
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/microdata-domtokenlist-attribute-add-remove-tokens.html b/LayoutTests/fast/dom/MicroData/microdata-domtokenlist-attribute-add-remove-tokens.html
deleted file mode 100644
index 3a68f42..0000000
--- a/LayoutTests/fast/dom/MicroData/microdata-domtokenlist-attribute-add-remove-tokens.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-</head>
-<body>
-<div id="mydiv"></div>
-<script>
-description("This tests that itemtype, itemprop, itemref attributes must update correctly when tokens have been added or removed.");
-var element = document.getElementById("mydiv");
-
-debug("itemtype attribute test.");
-element.itemType.add('foo');
-element.itemType.add('FOO');
-shouldBe("element.getAttribute('itemtype')", "'foo FOO'");
-element.itemType.remove('foo');
-shouldBe("element.getAttribute('itemtype')", "'FOO'");
-element.itemType.remove('FOO');
-shouldBe("element.getAttribute('itemtype')", "''");
-
-debug("");
-debug("itemprop attribute test.");
-element.itemProp.add('foo');
-element.itemProp.add('FOO');
-shouldBe("element.getAttribute('itemprop')", "'foo FOO'");
-element.itemProp.remove('foo');
-shouldBe("element.getAttribute('itemprop')", "'FOO'");
-element.itemProp.remove('FOO');
-shouldBe("element.getAttribute('itemprop')", "''");
-
-debug("");
-debug("itemref attribute test.");
-element.itemRef.add('foo');
-element.itemRef.add('FOO');
-shouldBe("element.getAttribute('itemref')", "'foo FOO'");
-element.itemRef.remove('foo');
-shouldBe("element.getAttribute('itemref')", "'FOO'");
-element.itemRef.remove('FOO');
-shouldBe("element.getAttribute('itemref')", "''");
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/nameditem-must-be-case-sensitive-expected.txt b/LayoutTests/fast/dom/MicroData/nameditem-must-be-case-sensitive-expected.txt
deleted file mode 100644
index 0fde4b5..0000000
--- a/LayoutTests/fast/dom/MicroData/nameditem-must-be-case-sensitive-expected.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-This test ensures that namedItem must be case sensitive.
-
-Created element of type: div
-Set attribute: itemscope, value: itemscope
-PASS element.properties.namedItem('foo').length is 2
-PASS element.properties.namedItem('FOO').length is 1
-PASS element.properties.namedItem('FOo').length is 1
-PASS element.properties.namedItem('foo')[0] is element.firstChild
-PASS element.properties.namedItem('foo')[1] is element.childNodes[1].lastChild
-PASS element.properties.namedItem('FOO')[0] is element.childNodes[1].firstChild
-PASS element.properties.namedItem('FOo')[0] is element.childNodes[1].lastChild
-
-PASS element.properties['foo'].length is 2
-PASS element.properties['FOO'].length is 1
-PASS element.properties['FOo'].length is 1
-PASS element.properties['foo'][0] is element.firstChild
-PASS element.properties['foo'][1] is element.childNodes[1].lastChild
-PASS element.properties['FOO'][0] is element.childNodes[1].firstChild
-PASS element.properties['FOo'][0] is element.childNodes[1].lastChild
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/nameditem-must-be-case-sensitive.html b/LayoutTests/fast/dom/MicroData/nameditem-must-be-case-sensitive.html
deleted file mode 100644
index eb8555b..0000000
--- a/LayoutTests/fast/dom/MicroData/nameditem-must-be-case-sensitive.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>This test ensures that namedItem must be case sensitive.</p>
-<div id="console"></div>
-<script>
-var element = createElement('div', {itemscope: 'itemscope'}, '<div itemprop="foo"></div><div itemprop="bar"><div itemprop="FOO"></div><div itemprop="foo FOo foo"></div></div><div itemprop="baz qux"></div>');
-
-shouldBe("element.properties.namedItem('foo').length", '2');
-shouldBe("element.properties.namedItem('FOO').length", '1');
-shouldBe("element.properties.namedItem('FOo').length", '1');
-
-shouldBe("element.properties.namedItem('foo')[0]", 'element.firstChild');
-shouldBe("element.properties.namedItem('foo')[1]", 'element.childNodes[1].lastChild');
-shouldBe("element.properties.namedItem('FOO')[0]", 'element.childNodes[1].firstChild');
-shouldBe("element.properties.namedItem('FOo')[0]", 'element.childNodes[1].lastChild');
-debug('');
-
-shouldBe("element.properties['foo'].length", '2');
-shouldBe("element.properties['FOO'].length", '1');
-shouldBe("element.properties['FOo'].length", '1');
-
-shouldBe("element.properties['foo'][0]", 'element.firstChild');
-shouldBe("element.properties['foo'][1]", 'element.childNodes[1].lastChild');
-shouldBe("element.properties['FOO'][0]", 'element.childNodes[1].firstChild');
-shouldBe("element.properties['FOo'][0]", 'element.childNodes[1].lastChild');
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/nameditem-must-return-correct-item-properties-expected.txt b/LayoutTests/fast/dom/MicroData/nameditem-must-return-correct-item-properties-expected.txt
deleted file mode 100644
index 05f20e3..0000000
--- a/LayoutTests/fast/dom/MicroData/nameditem-must-return-correct-item-properties-expected.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-This test ensures that namedItem must return the correct item properties.
-
-Created element of type: div
-
-Test properties.namedItem(name).
-PASS item.properties.namedItem('foo').length is 2
-PASS item.properties.namedItem('bar').length is 1
-PASS item.properties.namedItem('baz').length is 1
-PASS item.properties.namedItem('qux').length is 1
-PASS item.properties.namedItem('foo')[0] is element.firstChild
-PASS item.properties.namedItem('foo')[1] is item.firstChild
-PASS item.properties.namedItem('bar')[0] is item.firstChild
-PASS item.properties.namedItem('baz')[0] is element.lastChild
-PASS item.properties.namedItem('qux')[0] is element.lastChild.firstChild
-
-Test properties[name].
-PASS item.properties['foo'].length is 2
-PASS item.properties['bar'].length is 1
-PASS item.properties['baz'].length is 1
-PASS item.properties['qux'].length is 1
-PASS item.properties['foo'][0] is element.firstChild
-PASS item.properties['foo'][1] is item.firstChild
-PASS item.properties['bar'][0] is item.firstChild
-PASS item.properties['baz'][0] is element.lastChild
-PASS item.properties['qux'][0] is element.lastChild.firstChild
-
-Test properties[index].
-PASS item.properties[0] is element.firstChild
-PASS item.properties[1] is item.firstChild
-PASS item.properties[2] is element.lastChild
-PASS item.properties[3] is element.lastChild.firstChild
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/nameditem-must-return-correct-item-properties.html b/LayoutTests/fast/dom/MicroData/nameditem-must-return-correct-item-properties.html
deleted file mode 100644
index 216ee54..0000000
--- a/LayoutTests/fast/dom/MicroData/nameditem-must-return-correct-item-properties.html
+++ /dev/null
@@ -1,48 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>This test ensures that namedItem must return the correct item properties.</p>
-<div id="console"></div>
-<script>
-var element = createElement('div', {}, '<div itemprop="foo" id="id1"></div><div itemscope itemref="id2 id1"><div itemprop="foo bar"></div></div><div itemprop="baz" id="id2"><div itemprop="qux">');
-var item = element.childNodes[1];
-document.body.appendChild(element);
-
-debug("<br>Test properties.namedItem(name).");
-shouldBe("item.properties.namedItem('foo').length", '2');
-shouldBe("item.properties.namedItem('bar').length", '1');
-shouldBe("item.properties.namedItem('baz').length", '1');
-shouldBe("item.properties.namedItem('qux').length", '1');
-
-shouldBe("item.properties.namedItem('foo')[0]", 'element.firstChild');
-shouldBe("item.properties.namedItem('foo')[1]", 'item.firstChild');
-shouldBe("item.properties.namedItem('bar')[0]", 'item.firstChild');
-shouldBe("item.properties.namedItem('baz')[0]", 'element.lastChild');
-shouldBe("item.properties.namedItem('qux')[0]", 'element.lastChild.firstChild');
-
-debug("<br>Test properties[name].");
-shouldBe("item.properties['foo'].length", '2');
-shouldBe("item.properties['bar'].length", '1');
-shouldBe("item.properties['baz'].length", '1');
-shouldBe("item.properties['qux'].length", '1');
-
-shouldBe("item.properties['foo'][0]", 'element.firstChild');
-shouldBe("item.properties['foo'][1]", 'item.firstChild');
-shouldBe("item.properties['bar'][0]", 'item.firstChild');
-shouldBe("item.properties['baz'][0]", 'element.lastChild');
-shouldBe("item.properties['qux'][0]", 'element.lastChild.firstChild');
-
-debug("<br>Test properties[index].");
-shouldBe("item.properties[0]", 'element.firstChild');
-shouldBe("item.properties[1]", 'item.firstChild');
-shouldBe("item.properties[2]", 'element.lastChild');
-shouldBe("item.properties[3]", 'element.lastChild.firstChild')
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/nameditem-returns-propertynodelist-expected.txt b/LayoutTests/fast/dom/MicroData/nameditem-returns-propertynodelist-expected.txt
deleted file mode 100644
index b05678c..0000000
--- a/LayoutTests/fast/dom/MicroData/nameditem-returns-propertynodelist-expected.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-PropertiesCollection.namedItem(name) must return PropertyNodeList.
-
-PASS element.properties.namedItem('foo') instanceof PropertyNodeList is true
-PASS element.properties['foo'] instanceof PropertyNodeList is true
-
-PropertyNodeList interface inherited from the NodeList interface.
-PASS element.properties.namedItem('foo') instanceof NodeList is true
-PASS element.properties['foo'] instanceof NodeList is true
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/nameditem-returns-propertynodelist.html b/LayoutTests/fast/dom/MicroData/nameditem-returns-propertynodelist.html
deleted file mode 100644
index 7bf21e4..0000000
--- a/LayoutTests/fast/dom/MicroData/nameditem-returns-propertynodelist.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>PropertiesCollection.namedItem(name) must return PropertyNodeList.</p>
-<div itemscope id="microdataitem">
-<div itemprop="foo"></div>
-</div>
-<div id="console"></div>
-<script>
-var element = document.getElementById("microdataitem");
-
-shouldBeTrue("element.properties.namedItem('foo') instanceof PropertyNodeList");
-shouldBeTrue("element.properties['foo'] instanceof PropertyNodeList");
-
-debug("<br>PropertyNodeList interface inherited from the NodeList interface.")
-shouldBeTrue("element.properties.namedItem('foo') instanceof NodeList");
-shouldBeTrue("element.properties['foo'] instanceof NodeList");
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/names-item-out-of-range-index-expected.txt b/LayoutTests/fast/dom/MicroData/names-item-out-of-range-index-expected.txt
deleted file mode 100644
index 709d36d..0000000
--- a/LayoutTests/fast/dom/MicroData/names-item-out-of-range-index-expected.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-This test verifies properties.names.item(index) behavior for out-of-range index.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-Test itemType[index]
-PASS element.properties.names.item(0) is null
-PASS element.properties.names.item(-1) is null
-PASS element.properties.names.item(0) is 'foo'
-PASS element.properties.names.item(1) is null
-PASS element.properties.names.item(-1) is null
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/names-item-out-of-range-index.html b/LayoutTests/fast/dom/MicroData/names-item-out-of-range-index.html
deleted file mode 100644
index 28a4fac..0000000
--- a/LayoutTests/fast/dom/MicroData/names-item-out-of-range-index.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-</head>
-<body>
-<div itemscope id="mydiv"></div>
-<script>
-description("This test verifies properties.names.item(index) behavior for out-of-range index.");
-
-debug("Test itemType[index]");
-var element = document.getElementById("mydiv");
-shouldBeNull("element.properties.names.item(0)");
-shouldBeNull("element.properties.names.item(-1)");
-element.innerHTML = "<div itemprop='foo'></div";
-shouldBe("element.properties.names.item(0)", "'foo'");
-shouldBeNull("element.properties.names.item(1)");
-shouldBeNull("element.properties.names.item(-1)");
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/names-property-must-be-correct-expected.txt b/LayoutTests/fast/dom/MicroData/names-property-must-be-correct-expected.txt
deleted file mode 100644
index b2e40ec..0000000
--- a/LayoutTests/fast/dom/MicroData/names-property-must-be-correct-expected.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-This tests that names.item() and names[index] must return correct property name in tree order and it should not contain duplicate tokens.
-
-Created element of type: div
-Set attribute: itemscope, value: itemscope
-PASS element.properties.names[0] == 'foo' is true
-PASS element.properties.names[1] == 'bar' is true
-PASS element.properties.names[2] == 'baz' is true
-PASS element.properties.names[3] == 'qux' is true
-
-PASS element.properties.names.item(0) == 'foo' is true
-PASS element.properties.names.item(1) == 'bar' is true
-PASS element.properties.names.item(2) == 'baz' is true
-PASS element.properties.names.item(3) == 'qux' is true
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/names-property-must-be-correct.html b/LayoutTests/fast/dom/MicroData/names-property-must-be-correct.html
deleted file mode 100644
index a562dfc..0000000
--- a/LayoutTests/fast/dom/MicroData/names-property-must-be-correct.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>This tests that names.item() and names[index] must return correct property name in tree order and it should not contain duplicate tokens.</p>
-<div id="console"></div>
-<script>
-var element = createElement('div', {itemscope: 'itemscope'},'<div itemprop="foo"></div><div itemprop="bar"><div itemprop="foo"></div><div itemprop="foo"></div></div><div itemprop="baz qux"></div>');
-shouldBeTrue("element.properties.names[0] == 'foo'");
-shouldBeTrue("element.properties.names[1] == 'bar'");
-shouldBeTrue("element.properties.names[2] == 'baz'");
-shouldBeTrue("element.properties.names[3] == 'qux'");
-
-debug('');
-shouldBeTrue("element.properties.names.item(0) == 'foo'");
-shouldBeTrue("element.properties.names.item(1) == 'bar'");
-shouldBeTrue("element.properties.names.item(2) == 'baz'");
-shouldBeTrue("element.properties.names.item(3) == 'qux'");
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/names-property-test-expected.txt b/LayoutTests/fast/dom/MicroData/names-property-test-expected.txt
deleted file mode 100644
index b96ada7..0000000
--- a/LayoutTests/fast/dom/MicroData/names-property-test-expected.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-names property simple test.
-
-Created element of type: div
-
-The names property must be defined.
-PASS element.properties.names is defined.
-
-The names property must return a DOMStringList object.
-PASS element.properties.names == '[object DOMStringList]' is true
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/names-property-test.html b/LayoutTests/fast/dom/MicroData/names-property-test.html
deleted file mode 100644
index 2e685f1..0000000
--- a/LayoutTests/fast/dom/MicroData/names-property-test.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>names property simple test.</p>
-<div id="console"></div>
-<script>
-var element = createElement('div', {});
-
-debug("<br>The names property must be defined.");
-shouldBeDefined("element.properties.names");
-
-debug("<br>The names property must return a DOMStringList object.");
-shouldBeTrue("element.properties.names == '[object DOMStringList]'");
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/properties-collection-add-remove-itemref-expected.txt b/LayoutTests/fast/dom/MicroData/properties-collection-add-remove-itemref-expected.txt
deleted file mode 100644
index 3db4761..0000000
--- a/LayoutTests/fast/dom/MicroData/properties-collection-add-remove-itemref-expected.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-Microdata properties collection should update properly on adding or removing itemref.
-
-Created element of type: div
-PASS item.properties.length == '0' is true
-
-Set itemref to id1.
-PASS item.properties.length == '1' is true
-PASS item.properties.item(0) == element.firstChild is true
-PASS item.properties[0] == element.firstChild is true
-
-Remove itemref attribute.
-PASS item.properties.length == '0' is true
-PASS item.properties.item(0) == undefined is true
-PASS item.properties[0] == undefined is true
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/properties-collection-add-remove-itemref.html b/LayoutTests/fast/dom/MicroData/properties-collection-add-remove-itemref.html
deleted file mode 100644
index add7452..0000000
--- a/LayoutTests/fast/dom/MicroData/properties-collection-add-remove-itemref.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>Microdata properties collection should update properly on adding or removing itemref.</p>
-<div id="console"></div>
-<script>
-var element = createElement('div', {}, '<div id="id1" itemprop="foo"></div><div itemscope></div>');
-var item = element.childNodes[1];
-document.body.appendChild(element);
-
-shouldBeTrue("item.properties.length == '0'");
-
-debug("<br>Set itemref to id1.");
-item.setAttribute('itemref', 'id1');
-shouldBeTrue("item.properties.length == '1'");
-shouldBeTrue("item.properties.item(0) == element.firstChild");
-shouldBeTrue("item.properties[0] == element.firstChild");
-
-debug("<br>Remove itemref attribute.");
-item.removeAttribute('itemref');
-shouldBeTrue("item.properties.length == '0'");
-shouldBeTrue("item.properties.item(0) == undefined");
-shouldBeTrue("item.properties[0] == undefined");
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/properties-collection-add-remove-property-expected.txt b/LayoutTests/fast/dom/MicroData/properties-collection-add-remove-property-expected.txt
deleted file mode 100644
index c1535bb..0000000
--- a/LayoutTests/fast/dom/MicroData/properties-collection-add-remove-property-expected.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-Microdata properties collection must update on adding or removing property.
-
-Created element of type: div
-Set attribute: itemscope, value: itemscope
-PASS element.properties.length == '1' is true
-PASS element.properties.item(0) == element.firstChild is true
-PASS element.properties[0] == element.firstChild is true
-
-Append a property with itemprop: bar.
-Created element of type: div
-Set attribute: itemprop, value: bar
-PASS element.properties.length == '2' is true
-PASS element.properties.item(1) == element.childNodes[1] is true
-PASS element.properties[1] == element.childNodes[1] is true
-
-Append a property with itemprop: foo.
-Created element of type: div
-Set attribute: itemprop, value: foo
-PASS element.properties.length == '3' is true
-PASS element.properties.item(2) == element.childNodes[1].firstChild is true
-PASS element.properties[2] == element.childNodes[1].firstChild is true
-
-Remove property with itemprop: foo.
-PASS element.properties.length == '2' is true
-PASS element.properties.item(2) == undefined is true
-PASS element.properties[2] == undefined is true
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/properties-collection-add-remove-property.html b/LayoutTests/fast/dom/MicroData/properties-collection-add-remove-property.html
deleted file mode 100644
index 2011e61..0000000
--- a/LayoutTests/fast/dom/MicroData/properties-collection-add-remove-property.html
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>Microdata properties collection must update on adding or removing property.</p>
-<div id="console"></div>
-<script>
-var element = createElement('div', {itemscope: 'itemscope'}, '<div itemprop="foo"></div>');
-
-shouldBeTrue("element.properties.length == '1'");
-shouldBeTrue("element.properties.item(0) == element.firstChild");
-shouldBeTrue("element.properties[0] == element.firstChild");
-
-debug('<br>Append a property with itemprop: bar.');
-element.appendChild(createElement('div',{itemprop:'bar'}));
-shouldBeTrue("element.properties.length == '2'");
-shouldBeTrue("element.properties.item(1) == element.childNodes[1]");
-shouldBeTrue("element.properties[1] == element.childNodes[1]");
-
-debug('<br>Append a property with itemprop: foo.');
-element.lastChild.appendChild(createElement('div',{itemprop:'foo'}));
-shouldBeTrue("element.properties.length == '3'");
-shouldBeTrue("element.properties.item(2) == element.childNodes[1].firstChild");
-shouldBeTrue("element.properties[2] == element.childNodes[1].firstChild");
-
-debug('<br>Remove property with itemprop: foo.');
-element.lastChild.removeChild(element.lastChild.firstChild);
-shouldBeTrue("element.properties.length == '2'");
-shouldBeTrue("element.properties.item(2) == undefined");
-shouldBeTrue("element.properties[2] == undefined");
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/properties-collection-behavior-add-remove-itemscope-attr-expected.txt b/LayoutTests/fast/dom/MicroData/properties-collection-behavior-add-remove-itemscope-attr-expected.txt
deleted file mode 100644
index 542593f..0000000
--- a/LayoutTests/fast/dom/MicroData/properties-collection-behavior-add-remove-itemscope-attr-expected.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-This tests the behavior of properties collection on adding or removing itemscope attribute.
-
-Created element of type: div
-
-The properties collection must be empty if the element does not have an itemscope attribute.
-PASS element.properties.length == '0' is true
-PASS element.properties[0] == undefined is true
-PASS element.properties.item(0) == undefined is true
-
-The properties collection must become populated if we add itemscope attribute.
-PASS element.properties.length == '1' is true
-PASS element.properties[0] == element.firstChild is true
-PASS element.properties.item(0) == element.firstChild is true
-
-The properties collection must become empty if we remove itemscope attribute.
-PASS element.properties.length == '0' is true
-PASS element.properties[0] == undefined is true
-PASS element.properties.item(0) == undefined is true
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/properties-collection-behavior-add-remove-itemscope-attr.html b/LayoutTests/fast/dom/MicroData/properties-collection-behavior-add-remove-itemscope-attr.html
deleted file mode 100644
index 0cc21bc..0000000
--- a/LayoutTests/fast/dom/MicroData/properties-collection-behavior-add-remove-itemscope-attr.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>This tests the behavior of properties collection on adding or removing itemscope attribute.</p>
-<div id="console"></div>
-<script>
-var element = createElement('div', {}, '<div itemprop="foo">bar</div>');
-
-debug("<br>The properties collection must be empty if the element does not have an itemscope attribute.");
-shouldBeTrue("element.properties.length == '0'");
-shouldBeTrue("element.properties[0] == undefined");
-shouldBeTrue("element.properties.item(0) == undefined");
-
-debug("<br>The properties collection must become populated if we add itemscope attribute.");
-element.itemScope = true;
-shouldBeTrue("element.properties.length == '1'");
-shouldBeTrue("element.properties[0] == element.firstChild");
-shouldBeTrue("element.properties.item(0) == element.firstChild");
-
-debug("<br>The properties collection must become empty if we remove itemscope attribute.");
-element.itemScope = false;
-shouldBeTrue("element.properties.length == '0'");
-shouldBeTrue("element.properties[0] == undefined");
-shouldBeTrue("element.properties.item(0) == undefined");
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/properties-collection-must-be-correct-expected.txt b/LayoutTests/fast/dom/MicroData/properties-collection-must-be-correct-expected.txt
deleted file mode 100644
index 4c43bda..0000000
--- a/LayoutTests/fast/dom/MicroData/properties-collection-must-be-correct-expected.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-This test ensures that properties collection of a Microdata item must be correct.
-
-Created element of type: div
-Set attribute: itemscope, value: itemscope
-
-properties.length must be the total number of properties.
-PASS propertiesCollection.length == '4' is true
-
-properties.item(index) and properties[index] must give each property in tree order'
-PASS propertiesCollection.item(0) == childNodes[0] is true
-PASS propertiesCollection.item(1) == childNodes[1] is true
-PASS propertiesCollection.item(2) == childNodes[1].childNodes[0] is true
-PASS propertiesCollection.item(3) == childNodes[2] is true
-
-PASS propertiesCollection[0] == childNodes[0] is true
-PASS propertiesCollection[1] == childNodes[1] is true
-PASS propertiesCollection[2] == childNodes[1].childNodes[0] is true
-PASS propertiesCollection[3] == childNodes[2] is true
-properties[index] and properties.item(index) must return undefined for out of range index.
-PASS propertiesCollection[4] == undefined is true
-PASS propertiesCollection.item(4) == undefined is true
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/properties-collection-must-be-correct.html b/LayoutTests/fast/dom/MicroData/properties-collection-must-be-correct.html
deleted file mode 100644
index 7206dd8..0000000
--- a/LayoutTests/fast/dom/MicroData/properties-collection-must-be-correct.html
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>This test ensures that properties collection of a Microdata item must be correct.</p>
-<div id="console"></div>
-<script>
-var element = createElement('div', {itemscope: 'itemscope'}, '<div itemprop="foo"></div><div itemprop="bar"><div itemprop="foo"></div></div><div itemprop="baz qux"></div>');
-var propertiesCollection = element.properties;
-var childNodes = element.childNodes;
-
-debug("<br>properties.length must be the total number of properties.");
-shouldBeTrue("propertiesCollection.length == '4'");
-
-debug("<br>properties.item(index) and properties[index] must give each property in tree order'");
-shouldBeTrue("propertiesCollection.item(0) == childNodes[0]");
-shouldBeTrue("propertiesCollection.item(1) == childNodes[1]");
-shouldBeTrue("propertiesCollection.item(2) == childNodes[1].childNodes[0]");
-shouldBeTrue("propertiesCollection.item(3) == childNodes[2]");
-debug('');
-
-shouldBeTrue("propertiesCollection[0] == childNodes[0]");
-shouldBeTrue("propertiesCollection[1] == childNodes[1]");
-shouldBeTrue("propertiesCollection[2] == childNodes[1].childNodes[0]");
-shouldBeTrue("propertiesCollection[3] == childNodes[2]");
-
-debug("properties[index] and properties.item(index) must return undefined for out of range index.");
-shouldBeTrue("propertiesCollection[4] == undefined");
-shouldBeTrue("propertiesCollection.item(4) == undefined");
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/properties-collection-must-ignore-properties-of-nested-items-expected.txt b/LayoutTests/fast/dom/MicroData/properties-collection-must-ignore-properties-of-nested-items-expected.txt
deleted file mode 100644
index 935c596..0000000
--- a/LayoutTests/fast/dom/MicroData/properties-collection-must-ignore-properties-of-nested-items-expected.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-This test ensures thet properties.item and length must ignore properties of nested items.
-
-Created element of type: div
-Set attribute: itemscope, value: itemscope
-PASS propertiesCollection.length == '2' is true
-PASS propertiesCollection[0] == childNodes[0] is true
-PASS propertiesCollection.item(0) == childNodes[0] is true
-PASS propertiesCollection[1] == childNodes[1].firstChild is true
-PASS propertiesCollection.item(1) == childNodes[1].firstChild is true
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/properties-collection-must-ignore-properties-of-nested-items.html b/LayoutTests/fast/dom/MicroData/properties-collection-must-ignore-properties-of-nested-items.html
deleted file mode 100644
index 7b82af5..0000000
--- a/LayoutTests/fast/dom/MicroData/properties-collection-must-ignore-properties-of-nested-items.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>This test ensures thet properties.item and length must ignore properties of nested items.</p>
-<div id="console"></div>
-<script>
-var element = createElement('div', {itemscope: 'itemscope'}, '<div itemscope itemprop="foo"><div itemprop="bar"></div></div><div><div itemprop="baz"></div></div>');
-var propertiesCollection = element.properties;
-var childNodes = element.childNodes;
-
-shouldBeTrue("propertiesCollection.length == '2'");
-shouldBeTrue("propertiesCollection[0] == childNodes[0]");
-shouldBeTrue("propertiesCollection.item(0) == childNodes[0]");
-shouldBeTrue("propertiesCollection[1] == childNodes[1].firstChild");
-shouldBeTrue("propertiesCollection.item(1) == childNodes[1].firstChild");
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/properties-collection-must-see-the-properties-added-in-itemref-expected.txt b/LayoutTests/fast/dom/MicroData/properties-collection-must-see-the-properties-added-in-itemref-expected.txt
deleted file mode 100644
index c6cef53..0000000
--- a/LayoutTests/fast/dom/MicroData/properties-collection-must-see-the-properties-added-in-itemref-expected.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-This tests that properties.item and length must see the properties added with itemref.
-
-PASS propertiesCollection.length == '4' is true
-PASS propertiesCollection.item(0) == divs[0] is true
-PASS propertiesCollection.item(1) == divs[2] is true
-PASS propertiesCollection.item(2) == divs[3] is true
-PASS propertiesCollection.item(3) == divs[4] is true
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/properties-collection-must-see-the-properties-added-in-itemref.html b/LayoutTests/fast/dom/MicroData/properties-collection-must-see-the-properties-added-in-itemref.html
deleted file mode 100644
index a78c5c5..0000000
--- a/LayoutTests/fast/dom/MicroData/properties-collection-must-see-the-properties-added-in-itemref.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>This tests that properties.item and length must see the properties added with itemref.</p>
-
-<div itemprop="foo" id="id1"></div>
-<div itemscope itemref="id2 id1">
-<div itemprop="bar"></div>
-</div>
-<div itemprop="baz" id="id2">
-<div itemprop="qux"></div>
-</div>
-
-<div id="console"></div>
-<script>
-var item = document.getItems()[0];
-var propertiesCollection = item.properties;
-var divs = document.getElementsByTagName('div');
-
-shouldBeTrue("propertiesCollection.length == '4'");
-shouldBeTrue("propertiesCollection.item(0) == divs[0]");
-shouldBeTrue("propertiesCollection.item(1) == divs[2]");
-shouldBeTrue("propertiesCollection.item(2) == divs[3]");
-shouldBeTrue("propertiesCollection.item(3) == divs[4]");
-
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/properties-collection-namedgetter-with-invalid-name-expected.txt b/LayoutTests/fast/dom/MicroData/properties-collection-namedgetter-with-invalid-name-expected.txt
deleted file mode 100644
index 4b0875d..0000000
--- a/LayoutTests/fast/dom/MicroData/properties-collection-namedgetter-with-invalid-name-expected.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-Test to ensure that HTMLPropertiesCollection[name] should return undefined if item doesn't have a property named 'name'.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-PASS testDiv.properties['foo'] is undefined
-PASS !testDiv.properties['foo'] is true
-PASS testDiv.properties['foo'] == '[object PropertyNodeList]' is true
-PASS testDiv.properties['bar'] is undefined
-PASS !testDiv.properties['bar'] is true
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/properties-collection-namedgetter-with-invalid-name.html b/LayoutTests/fast/dom/MicroData/properties-collection-namedgetter-with-invalid-name.html
deleted file mode 100644
index 1fd583b..0000000
--- a/LayoutTests/fast/dom/MicroData/properties-collection-namedgetter-with-invalid-name.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<div id="testDiv" itemscope><div itemprop="bar"> </div></div>
-<script>
-description("Test to ensure that HTMLPropertiesCollection[name] should return undefined if item doesn't have a property named 'name'.");
-var testDiv = document.getElementById("testDiv");
-
-shouldBe("testDiv.properties['foo']", "undefined");
-shouldBeTrue("!testDiv.properties['foo']");
-testDiv.firstChild.itemProp.add('foo');
-shouldBeTrue("testDiv.properties['foo'] == '[object PropertyNodeList]'");
-testDiv.firstChild.itemProp.remove('bar');
-shouldBe("testDiv.properties['bar']", "undefined");
-shouldBeTrue("!testDiv.properties['bar']");
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/properties-collection-nameditem-test-expected.txt b/LayoutTests/fast/dom/MicroData/properties-collection-nameditem-test-expected.txt
deleted file mode 100644
index 4aa093c..0000000
--- a/LayoutTests/fast/dom/MicroData/properties-collection-nameditem-test-expected.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Properties collection's namedItem property simple test.
-
-Created element of type: div
-Set attribute: itemscope, value: itemscope
-
-Test properties.namedItem(name).
-PASS element.properties.namedItem('foo') is defined.
-PASS element.properties.namedItem('foo').length is 1
-PASS element.properties.namedItem('foo')[0] is element.firstChild
-
-Test properties[name].
-PASS element.properties['foo'] is defined.
-PASS element.properties['foo'].length is 1
-PASS element.properties['foo'][0] is element.firstChild
-
-Test properties[index].
-PASS element.properties[0] is defined.
-PASS element.properties[0] is element.firstChild
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/properties-collection-nameditem-test.html b/LayoutTests/fast/dom/MicroData/properties-collection-nameditem-test.html
deleted file mode 100644
index c9dae1a..0000000
--- a/LayoutTests/fast/dom/MicroData/properties-collection-nameditem-test.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>Properties collection's namedItem property simple test.</p>
-<div id="console"></div>
-<script>
-var element = createElement('div', {itemscope: 'itemscope'}, '<div itemprop="foo"></div>');
-
-debug("<br>Test properties.namedItem(name).");
-shouldBeDefined("element.properties.namedItem('foo')");
-shouldBe("element.properties.namedItem('foo').length", '1');
-shouldBe("element.properties.namedItem('foo')[0]", 'element.firstChild');
-
-debug("<br>Test properties[name].");
-shouldBeDefined("element.properties['foo']");
-shouldBe("element.properties['foo'].length", '1');
-shouldBe("element.properties['foo'][0]", 'element.firstChild');
-
-debug("<br>Test properties[index].");
-shouldBeDefined("element.properties[0]");
-shouldBe("element.properties[0]", 'element.firstChild');
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/properties-collection-test-expected.txt b/LayoutTests/fast/dom/MicroData/properties-collection-test-expected.txt
deleted file mode 100644
index 7fd9e24..0000000
--- a/LayoutTests/fast/dom/MicroData/properties-collection-test-expected.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Microdata properties collection simple test.
-
-Created element of type: div
-
-The properties property must be defined.
-PASS element.properties is defined.
-
-The properties property must return a HTMLPropertiesCollection object.
-PASS element.properties == '[object HTMLPropertiesCollection]' is true
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/properties-collection-test.html b/LayoutTests/fast/dom/MicroData/properties-collection-test.html
deleted file mode 100644
index a8d4cbb..0000000
--- a/LayoutTests/fast/dom/MicroData/properties-collection-test.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>Microdata properties collection simple test.</p>
-<div id="console"></div>
-<script>
-var element = createElement('div', {});
-
-debug("<br>The properties property must be defined.");
-shouldBeDefined("element.properties");
-
-debug("<br>The properties property must return a HTMLPropertiesCollection object.");
-shouldBeTrue("element.properties == '[object HTMLPropertiesCollection]'");
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/propertiescollection-crash-expected.txt b/LayoutTests/fast/dom/MicroData/propertiescollection-crash-expected.txt
deleted file mode 100644
index c91008b..0000000
--- a/LayoutTests/fast/dom/MicroData/propertiescollection-crash-expected.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-This test is successful if it does not crash.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-PASS testDiv.properties['bar'] == '[object PropertyNodeList]' is true
-PASS testDiv.properties['bar'].length is 1
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/propertiescollection-crash.html b/LayoutTests/fast/dom/MicroData/propertiescollection-crash.html
deleted file mode 100644
index 222e025..0000000
--- a/LayoutTests/fast/dom/MicroData/propertiescollection-crash.html
+++ /dev/null
@@ -1,18 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-</head>
-<body>
-<div id="testDiv" itemscope><div itemprop="bar"> </div></div>
-<script>
-description("This test is successful if it does not crash.");
-var testDiv = document.getElementById("testDiv");
-
-shouldBeTrue("testDiv.properties['bar'] == '[object PropertyNodeList]'");
-shouldBe("testDiv.properties['bar'].length", "1");
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
-
diff --git a/LayoutTests/fast/dom/MicroData/propertiescollection-on-changing-id-attr-expected.txt b/LayoutTests/fast/dom/MicroData/propertiescollection-on-changing-id-attr-expected.txt
deleted file mode 100644
index ff83c1e..0000000
--- a/LayoutTests/fast/dom/MicroData/propertiescollection-on-changing-id-attr-expected.txt
+++ /dev/null
@@ -1,54 +0,0 @@
-Test to verify HTMLPropertiesCollection and PropertyNodeList interfaces behavior on changing id attribute.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-Created element of type: div
-PASS item.properties.length is 0
-PASS item.properties.item(0) is null
-PASS item.properties[0] is undefined.
-PASS item.properties.namedItem('foo').length is 0
-PASS item.properties.namedItem('foo').item(0) is null
-PASS item.properties.namedItem('foo')[0] is undefined.
-PASS item.properties.namedItem('bar').length is 0
-PASS item.properties.namedItem('bar').item(0) is null
-PASS item.properties.namedItem('bar')[0] is undefined.
-PASS item.properties.names.length is 0
-PASS item.properties.names.item(0) is null
-PASS item.properties.names[0] is undefined.
-
-Set parent.firstChild.id to 'id1'
-PASS item.properties.length is 2
-PASS item.properties.item(0) is parent.firstChild
-PASS item.properties[0] is parent.firstChild
-PASS item.properties.item(1) is parent.firstChild.firstChild
-PASS item.properties[1] is parent.firstChild.firstChild
-PASS item.properties.namedItem('foo').length is 1
-PASS item.properties.namedItem('foo').item(0) is parent.firstChild
-PASS item.properties.namedItem('foo')[0] is parent.firstChild
-PASS item.properties.namedItem('bar').length is 1
-PASS item.properties.namedItem('bar').item(0) is parent.firstChild.firstChild
-PASS item.properties.namedItem('bar')[0] is parent.firstChild.firstChild
-PASS item.properties.names.length is 2
-PASS item.properties.names.item(0) is 'foo'
-PASS item.properties.names[0] is 'foo'
-PASS item.properties.names.item(1) is 'bar'
-PASS item.properties.names[1] is 'bar'
-
-Remove id attribute from parent.firstChild
-PASS item.properties.length is 0
-PASS item.properties.item(0) is null
-PASS item.properties[0] is undefined.
-PASS item.properties.namedItem('foo').length is 0
-PASS item.properties.namedItem('foo').item(0) is null
-PASS item.properties.namedItem('foo')[0] is undefined.
-PASS item.properties.namedItem('bar').length is 0
-PASS item.properties.namedItem('bar').item(0) is null
-PASS item.properties.namedItem('bar')[0] is undefined.
-PASS item.properties.names.length is 0
-PASS item.properties.names.item(0) is null
-PASS item.properties.names[0] is undefined.
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/propertiescollection-on-changing-id-attr.html b/LayoutTests/fast/dom/MicroData/propertiescollection-on-changing-id-attr.html
deleted file mode 100644
index f879928..0000000
--- a/LayoutTests/fast/dom/MicroData/propertiescollection-on-changing-id-attr.html
+++ /dev/null
@@ -1,66 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<script>
-description("Test to verify HTMLPropertiesCollection and PropertyNodeList interfaces behavior on changing id attribute.");
-
-var parent = createElement('div', {}, '<div itemprop="foo"><div itemprop="bar"></div></div><div itemscope itemref="id1"></div>');
-var item = parent.childNodes[1];
-document.body.appendChild(parent);
-
-shouldBe("item.properties.length", "0");
-shouldBeNull("item.properties.item(0)");
-shouldBeUndefined("item.properties[0]");
-shouldBe("item.properties.namedItem('foo').length", "0");
-shouldBeNull("item.properties.namedItem('foo').item(0)");
-shouldBeUndefined("item.properties.namedItem('foo')[0]");
-shouldBe("item.properties.namedItem('bar').length", "0");
-shouldBeNull("item.properties.namedItem('bar').item(0)");
-shouldBeUndefined("item.properties.namedItem('bar')[0]");
-shouldBe("item.properties.names.length", "0");
-shouldBeNull("item.properties.names.item(0)");
-shouldBeUndefined("item.properties.names[0]");
-
-debug("");
-debug("Set parent.firstChild.id to 'id1'");
-parent.firstChild.id = 'id1';
-shouldBe("item.properties.length", "2");
-shouldBe("item.properties.item(0)", "parent.firstChild");
-shouldBe("item.properties[0]", "parent.firstChild");
-shouldBe("item.properties.item(1)", "parent.firstChild.firstChild");
-shouldBe("item.properties[1]", "parent.firstChild.firstChild");
-shouldBe("item.properties.namedItem('foo').length", "1");
-shouldBe("item.properties.namedItem('foo').item(0)", "parent.firstChild");
-shouldBe("item.properties.namedItem('foo')[0]", "parent.firstChild");
-shouldBe("item.properties.namedItem('bar').length", "1");
-shouldBe("item.properties.namedItem('bar').item(0)", "parent.firstChild.firstChild");
-shouldBe("item.properties.namedItem('bar')[0]", "parent.firstChild.firstChild");
-shouldBe("item.properties.names.length", "2");
-shouldBe("item.properties.names.item(0)", "'foo'");
-shouldBe("item.properties.names[0]", "'foo'");
-shouldBe("item.properties.names.item(1)", "'bar'");
-shouldBe("item.properties.names[1]", "'bar'");
-
-debug("");
-debug("Remove id attribute from parent.firstChild");
-parent.firstChild.removeAttribute('id');
-shouldBe("item.properties.length", "0");
-shouldBeNull("item.properties.item(0)");
-shouldBeUndefined("item.properties[0]");
-shouldBe("item.properties.namedItem('foo').length", "0");
-shouldBeNull("item.properties.namedItem('foo').item(0)");
-shouldBeUndefined("item.properties.namedItem('foo')[0]");
-shouldBe("item.properties.namedItem('bar').length", "0");
-shouldBeNull("item.properties.namedItem('bar').item(0)");
-shouldBeUndefined("item.properties.namedItem('bar')[0]");
-shouldBe("item.properties.names.length", "0");
-shouldBeNull("item.properties.names.item(0)");
-shouldBeUndefined("item.properties.names[0]");
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/propertynodelist-add-remove-itemprop-tokens-expected.txt b/LayoutTests/fast/dom/MicroData/propertynodelist-add-remove-itemprop-tokens-expected.txt
deleted file mode 100644
index a270ce4..0000000
--- a/LayoutTests/fast/dom/MicroData/propertynodelist-add-remove-itemprop-tokens-expected.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-Test to ensure that adding or removing itemprop tokens must update its PropertyNodeList.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-Created element of type: div
-Set attribute: itemscope, value: itemscope
-PASS PNLfoo.length is 1
-PASS PNLbar.length is 0
-PASS PNLfoo[0] is item.firstChild
-PASS PNLfoo.length is 1
-PASS PNLbar.length is 1
-PASS PNLfoo[0] is item.firstChild
-PASS PNLbar[0] is item.lastChild
-PASS PNLfoo.length is 2
-PASS PNLbar.length is 1
-PASS PNLfoo[0] is item.firstChild
-PASS PNLfoo[1] is item.lastChild
-PASS PNLbar[0] is item.lastChild
-PASS PNLfoo.length is 1
-PASS PNLbar.length is 0
-PASS PNLfoo[0] is item.firstChild
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/propertynodelist-add-remove-itemprop-tokens.html b/LayoutTests/fast/dom/MicroData/propertynodelist-add-remove-itemprop-tokens.html
deleted file mode 100644
index 49290e4..0000000
--- a/LayoutTests/fast/dom/MicroData/propertynodelist-add-remove-itemprop-tokens.html
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<script>
-description("Test to ensure that adding or removing itemprop tokens must update its PropertyNodeList.");
-var item = createElement('div', {itemscope: 'itemscope'}, '<div itemprop="foo"></div><div></div>');
-var PNLfoo = item.properties.namedItem('foo');
-PNLbar = item.properties.namedItem('bar');
-
-shouldBe("PNLfoo.length", "1");
-shouldBe("PNLbar.length", "0");
-shouldBe("PNLfoo[0]", "item.firstChild");
-
-item.lastChild.itemProp.toggle('bar');
-shouldBe("PNLfoo.length", "1");
-shouldBe("PNLbar.length", "1");
-shouldBe("PNLfoo[0]", "item.firstChild");
-shouldBe("PNLbar[0]", "item.lastChild");
-
-item.lastChild.itemProp.add('foo');
-shouldBe("PNLfoo.length", "2");
-shouldBe("PNLbar.length", "1");
-shouldBe("PNLfoo[0]", "item.firstChild");
-shouldBe("PNLfoo[1]", "item.lastChild");
-shouldBe("PNLbar[0]", "item.lastChild");
-
-item.lastChild.removeAttribute('itemprop');
-shouldBe("PNLfoo.length", "1");
-shouldBe("PNLbar.length", "0");
-shouldBe("PNLfoo[0]", "item.firstChild");
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/propertynodelist-add-remove-itemref-tokens-expected.txt b/LayoutTests/fast/dom/MicroData/propertynodelist-add-remove-itemref-tokens-expected.txt
deleted file mode 100644
index fbbfc63..0000000
--- a/LayoutTests/fast/dom/MicroData/propertynodelist-add-remove-itemref-tokens-expected.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-Test to ensure that adding or removing itemref tokens must update its PropertyNodeList.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-Created element of type: div
-PASS PNL.length is 0
-PASS PNL.length is 1
-PASS PNL[0] is parent.firstChild
-PASS PNL.length is 0
-PASS !PNL[0] is true
-PASS length0 is 0
-PASS length1 is 1
-PASS foo0 is parent.firstChild
-PASS length2 is 0
-PASS !foo1 is true
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/propertynodelist-add-remove-itemref-tokens.html b/LayoutTests/fast/dom/MicroData/propertynodelist-add-remove-itemref-tokens.html
deleted file mode 100644
index 3b2075b..0000000
--- a/LayoutTests/fast/dom/MicroData/propertynodelist-add-remove-itemref-tokens.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<script>
-description("Test to ensure that adding or removing itemref tokens must update its PropertyNodeList.");
-var parent = createElement('div', {}, '<div id="id1" itemprop="foo"></div><div itemscope></div>');
-var testElement = parent.childNodes[1];
-var PNL = testElement.properties.namedItem('foo');
-
-shouldBe("PNL.length", "0");
-testElement.itemRef.add('id1');
-shouldBe("PNL.length", "1");
-shouldBe("PNL[0]", "parent.firstChild");
-testElement.itemRef.remove('id1');
-shouldBe("PNL.length", "0");
-shouldBeTrue("!PNL[0]");
-
-document.body.appendChild(parent);
-var length0 = PNL.length;
-testElement.itemRef.toggle('id1');
-var length1 = PNL.length;
-var foo0 = PNL[0];
-testElement.removeAttribute('itemref');
-var length2 = PNL.length;
-var foo1 = PNL[0];
-document.body.removeChild(parent);
-shouldBe("length0", "0");
-shouldBe("length1", "1");
-shouldBe("foo0", "parent.firstChild");
-shouldBe("length2", "0");
-shouldBeTrue("!foo1");
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/propertynodelist-crash-expected.txt b/LayoutTests/fast/dom/MicroData/propertynodelist-crash-expected.txt
deleted file mode 100644
index bc863cc..0000000
--- a/LayoutTests/fast/dom/MicroData/propertynodelist-crash-expected.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-This test is successful if it does not crash.
-
-
diff --git a/LayoutTests/fast/dom/MicroData/propertynodelist-crash.html b/LayoutTests/fast/dom/MicroData/propertynodelist-crash.html
deleted file mode 100644
index d0f88cf..0000000
--- a/LayoutTests/fast/dom/MicroData/propertynodelist-crash.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE html>
-<html>
-<body>
-<p>This test is successful if it does not crash.</p>
-<div id='elementWithItemProp' itemprop='foo'></div>
-<div itemscope></div>
-<script>
-if (window.testRunner)
-    testRunner.dumpAsText();
-
-function gc()
-{
-    if (window.GCController)
-        return GCController.collect();
-
-    for (var i = 0; i < 10000; i++) // force garbage collection
-        var s = new String("");
-}
-
-var testElement = document.getItems()[0];
-var propertyNodeList = testElement.properties.namedItem('foo');
-testElement.setAttribute("itemref", "elementWithItemProp");
-propertyNodeList = 0;
-gc();
-</script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/propertynodelist-getvalues-array-values-obtained-from-itemvalue-of-each-element-expected.txt b/LayoutTests/fast/dom/MicroData/propertynodelist-getvalues-array-values-obtained-from-itemvalue-of-each-element-expected.txt
deleted file mode 100644
index cdc39b5..0000000
--- a/LayoutTests/fast/dom/MicroData/propertynodelist-getvalues-array-values-obtained-from-itemvalue-of-each-element-expected.txt
+++ /dev/null
@@ -1,38 +0,0 @@
-This test ensure that PropertyNodeList.getValues() array returns an array whose valuse are obtained from the itemValue DOM property of each of the elements represented by the object, in tree order.
-
-property index 0, tag DIV
-PASS valuesArray[i] is propertyNodeList[i].itemValue
-property index 1, tag SPAN
-PASS valuesArray[i] is propertyNodeList[i].itemValue
-property index 2, tag META
-PASS valuesArray[i] is propertyNodeList[i].itemValue
-property index 3, tag AUDIO
-PASS valuesArray[i] is propertyNodeList[i].itemValue
-property index 4, tag EMBED
-PASS valuesArray[i] is propertyNodeList[i].itemValue
-property index 5, tag IFRAME
-PASS valuesArray[i] is propertyNodeList[i].itemValue
-property index 6, tag IMG
-PASS valuesArray[i] is propertyNodeList[i].itemValue
-property index 7, tag SOURCE
-PASS valuesArray[i] is propertyNodeList[i].itemValue
-property index 8, tag VIDEO
-PASS valuesArray[i] is propertyNodeList[i].itemValue
-property index 9, tag TRACK
-PASS valuesArray[i] is propertyNodeList[i].itemValue
-property index 10, tag A
-PASS valuesArray[i] is propertyNodeList[i].itemValue
-property index 11, tag AREA
-PASS valuesArray[i] is propertyNodeList[i].itemValue
-property index 12, tag LINK
-PASS valuesArray[i] is propertyNodeList[i].itemValue
-property index 13, tag P
-PASS valuesArray[i] is propertyNodeList[i].itemValue
-property index 14, tag SPAN
-PASS valuesArray[i] is propertyNodeList[i].itemValue
-PASS valuesArray.length is 15
-PASS successfullyParsed is true
-
-TEST COMPLETE
-      
-
diff --git a/LayoutTests/fast/dom/MicroData/propertynodelist-getvalues-array-values-obtained-from-itemvalue-of-each-element.html b/LayoutTests/fast/dom/MicroData/propertynodelist-getvalues-array-values-obtained-from-itemvalue-of-each-element.html
deleted file mode 100644
index a865390..0000000
--- a/LayoutTests/fast/dom/MicroData/propertynodelist-getvalues-array-values-obtained-from-itemvalue-of-each-element.html
+++ /dev/null
@@ -1,52 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>This test ensure that PropertyNodeList.getValues() array returns an array whose valuse are obtained from the itemValue DOM property of each of the elements represented by the object, in tree order.</p>
-<div id="console"></div>
-<div>
-<div id="id1">
-<div itemprop="foo">
-<span itemprop="foo" itemscope></span>
-</div>
-<div itemscope itemref="id1" id="item">
-<meta itemprop="foo" content="test" />
-<audio itemprop="foo" src="audio.mp3"></audio>
-<embed itemprop="foo" src="test.swf" />
-<iframe itemprop="foo" src="test.html"></iframe>
-<img itemprop="foo" src="test.jpg" />
-<audio controls="controls">
-<source itemprop="foo" src="song.mp3" type="audio/mp3" />
-</audio>
-<video itemprop="foo" src="video.mp4"></video>
-<video src="video.mp4">
-<track itemprop="foo" src="subtitles_en.vtt">
-</video>
-<a itemprop="foo" src="link.html"></a>
-<map>
-<area itemprop="foo" href="test.html" />
-</map>
-<link itemprop="foo" href="test.css" />
-<p itemprop="foo">
-<span itemprop="foo" itemscope>
-<a itemprop="foo" src="test_anchor.html"></a>
-</span>
-</p>
-</div>
-</div>
-<script>
-var item = document.getElementById("item");
-var propertyNodeList = item.properties.namedItem('foo');
-var valuesArray = propertyNodeList.getValues();
-for (var i = 0; i < propertyNodeList.length; i++) {
-    debug('property index ' + i + ', tag ' + propertyNodeList[i].tagName);
-    shouldBe("valuesArray[i]", "propertyNodeList[i].itemValue");
-}
-shouldBe("valuesArray.length", '15');
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/propertynodelist-getvalues-test-expected.txt b/LayoutTests/fast/dom/MicroData/propertynodelist-getvalues-test-expected.txt
deleted file mode 100644
index 36983ae..0000000
--- a/LayoutTests/fast/dom/MicroData/propertynodelist-getvalues-test-expected.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-PropertyNodeList.getValues() method test.
-
-PropertyNodeList.getValues() method must return an array.
-PASS element.properties.namedItem('foo').getValues() instanceof Array is true
-PASS element.properties['foo'].getValues() instanceof Array is true
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/propertynodelist-getvalues-test.html b/LayoutTests/fast/dom/MicroData/propertynodelist-getvalues-test.html
deleted file mode 100644
index ecc0031..0000000
--- a/LayoutTests/fast/dom/MicroData/propertynodelist-getvalues-test.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>PropertyNodeList.getValues() method test.</p>
-<div itemscope id="item">
-<div itemprop="foo"></div>
-</div>
-<div id="console"></div>
-<script>
-var element = document.getElementById('item');
-debug("PropertyNodeList.getValues() method must return an array.");
-shouldBeTrue("element.properties.namedItem('foo').getValues() instanceof Array");
-shouldBeTrue("element.properties['foo'].getValues() instanceof Array");
-
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/fast/dom/MicroData/propertynodelist-test-add-remove-element-expected.txt b/LayoutTests/fast/dom/MicroData/propertynodelist-test-add-remove-element-expected.txt
deleted file mode 100644
index 9a44285..0000000
--- a/LayoutTests/fast/dom/MicroData/propertynodelist-test-add-remove-element-expected.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-Microdata properties collection must update on adding or removing property.
-
-PASS propertyNodeList.length == '1' is true
-PASS propertyNodeList[0] == item.children[0] is true
-Add a property to the item.
-Created element of type: div
-Set attribute: itemprop, value: foo
-PASS propertyNodeList.length == 2 is true
-PASS propertyNodeList[0] == item.children[0] is true
-PASS propertyNodeList[1] == item.children[1] is true
-Remove itemprop attribute of the first child.
-PASS propertyNodeList.length == 1 is true
-PASS propertyNodeList[0] == item.children[1] is true
-Add itemprop attribute to the first child.
-PASS propertyNodeList.length == 2 is true
-PASS propertyNodeList[0] == item.children[0] is true
-PASS propertyNodeList[1] == item.children[1] is true
-Add itemref attribute.
-PASS propertyNodeList.length == 3 is true
-PASS propertyNodeList[0] == testElement is true
-PASS propertyNodeList[1] == item.children[0] is true
-PASS propertyNodeList[2] == item.children[1] is true
-Remove itemref attribute.
-PASS propertyNodeList.length == 2 is true
-PASS propertyNodeList[0] == item.children[0] is true
-PASS propertyNodeList[1] == item.children[1] is true
-Add itemref attribute.
-PASS propertyNodeList.length == 3 is true
-PASS propertyNodeList[0] == testElement is true
-PASS propertyNodeList[1] == item.children[0] is true
-PASS propertyNodeList[2] == item.children[1] is true
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/fast/dom/MicroData/propertynodelist-test-add-remove-element.html b/LayoutTests/fast/dom/MicroData/propertynodelist-test-add-remove-element.html
deleted file mode 100644
index 51cf5ec..0000000
--- a/LayoutTests/fast/dom/MicroData/propertynodelist-test-add-remove-element.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../js/resources/js-test-pre.js"></script>
-<script src="resources/microdata-common.js"></script>
-</head>
-<body>
-<p>Microdata properties collection must update on adding or removing property.</p>
-<div itemprop="foo" id="test">
-</div>
-<div itemscope id="microdata-item">
-<p itemprop="foo"></p>
-</div>
-<div id="console"></div>
-<script>
-var item = document.getElementById('microdata-item');
-var propertyNodeList = item.properties.namedItem('foo');
-var testElement = document.getElementById('test');
-
-shouldBeTrue("propertyNodeList.length == '1'");
-shouldBeTrue("propertyNodeList[0] == item.children[0]");
-
-debug('Add a property to the item.');
-item.appendChild(createElement('div', {itemprop: 'foo'}));
-shouldBeTrue("propertyNodeList.length == 2");
-shouldBeTrue("propertyNodeList[0] == item.children[0]");
-shouldBeTrue("propertyNodeList[1] == item.children[1]");
-
-debug('Remove itemprop attribute of the first child.');
-item.children[0].removeAttribute('itemprop');
-shouldBeTrue("propertyNodeList.length == 1");
-shouldBeTrue("propertyNodeList[0] == item.children[1]");
-
-debug('Add itemprop attribute to the first child.');
-item.children[0].setAttribute('itemprop', 'foo');
-shouldBeTrue("propertyNodeList.length == 2");
-shouldBeTrue("propertyNodeList[0] == item.children[0]");
-shouldBeTrue("propertyNodeList[1] == item.children[1]");
-
-debug('Add itemref attribute.');
-item.setAttribute('itemref', 'test');
-shouldBeTrue("propertyNodeList.length == 3");
-shouldBeTrue("propertyNodeList[0] == testElement");
-shouldBeTrue("propertyNodeList[1] == item.children[0]");
-shouldBeTrue("propertyNodeList[2] == item.children[1]");
-
-debug('Remove itemref attribute.');
-item.removeAttribute('itemref');
-shouldBeTrue("propertyNodeList.length == 2");
-shouldBeTrue("propertyNodeList[0] == item.children[0]");
-shouldBeTrue("propertyNodeList[1] == item.children[1]");
-
-debug('Add itemref attribute.');
-item.setAttribute('itemref', 'test');
-shouldBeTrue("propertyNodeList.length == 3");
-shouldBeTrue("propertyNodeList[0] == testElement");
-shouldBeTrue("propertyNodeList[1] == item.children[0]");
-shouldBeTrue("propertyNodeList[2] == item.children[1]");
-</script>
-<script src="../../js/resources/js-test-post.js"></script>
-</body>
-</html>
-
diff --git a/LayoutTests/fast/dom/MicroData/resources/microdata-common.js b/LayoutTests/fast/dom/MicroData/resources/microdata-common.js
deleted file mode 100644
index 4e1763c..0000000
--- a/LayoutTests/fast/dom/MicroData/resources/microdata-common.js
+++ /dev/null
@@ -1,43 +0,0 @@
-// this function creates element with specified property and contents.
-function createElement(type, props, contents) {
-    if (window.testRunner)
-      testRunner.dumpAsText();
-
-    var element = document.createElement(type);
-
-    debug('Created element of type: ' + type);
-    for (var i in props) {
-      if (props.hasOwnProperty(i)) {
-        debug('Set attribute: ' + i + ', value: ' + props[i]);
-        element.setAttribute(i,props[i]);
-      }
-    }
-    if (contents) {
-      element.innerHTML = contents;
-    }
-    return element;
-}
-
-
-// runs a test and writes a log
-function runTest(collection, elements, title) {
-  if (window.testRunner)
-    testRunner.dumpAsText();
-
-  pass = true;
-
-  if (collection.length != elements.length) {
-    pass = false
-    debug('FAIL - expected ' + elements.length + ' elements but got ' + collection.length + " elements. ");
-  }
-  for(var i = 0, max = collection.length > elements.length ? elements.length : collection.length; i < max; i++) {
-    if(collection[i] != elements[i]) {
-      debug(title);
-      pass = false
-      debug('FAIL - expected element : ' + elements[i].tagName + " but got element :" + collection[i].tagName);
-      debug('FAIL - expected element with id: ' + elements[i].id + " but got element with id:" + collection[i].id);
-    }
-  }
-  if (pass)
-    debug(title + ': PASS');
-}
diff --git a/LayoutTests/fast/dom/NodeList/nodelist-reachable.html b/LayoutTests/fast/dom/NodeList/nodelist-reachable.html
index c1e8fee..151b75f 100644
--- a/LayoutTests/fast/dom/NodeList/nodelist-reachable.html
+++ b/LayoutTests/fast/dom/NodeList/nodelist-reachable.html
@@ -14,8 +14,6 @@
     TagNodeListType: 'document.getElementsByTagName("body")',
     RadioNodeListType: 'document.querySelector("form").elements["radios"]',
     LabelsNodeListType: 'document.querySelector("input").labels',
-    // Microdata is not enabled.
-    // MicroDataItemListType: 'document.getItems("items")',
 };
 
 var i = 1;
diff --git a/LayoutTests/platform/chromium/TestExpectations b/LayoutTests/platform/chromium/TestExpectations
index 8670b09..1cfb1ee 100644
--- a/LayoutTests/platform/chromium/TestExpectations
+++ b/LayoutTests/platform/chromium/TestExpectations
@@ -200,9 +200,6 @@
 webkit.org/b/67434 [ Debug ] fast/overflow/overflow-height-float-not-removed-crash3.html [ Skip ]
 webkit.org/b/67434 [ Debug ] fast/block/float/overhanging-tall-block.html [ Skip ]
 
-# Microdata DOM API is not yet enabled.
-webkit.org/b/68610 fast/dom/MicroData
-
 # Unskip after changes on both sides have landed and rolled together.
 crbug.com/103939 http/tests/appcache/wrong-content-type.html [ Skip ]
 
diff --git a/Source/WTF/wtf/FeatureDefines.h b/Source/WTF/wtf/FeatureDefines.h
index 9cce7d8..705d979 100644
--- a/Source/WTF/wtf/FeatureDefines.h
+++ b/Source/WTF/wtf/FeatureDefines.h
@@ -236,10 +236,6 @@
 #define ENABLE_MEDIA_STREAM 0
 #endif
 
-#if !defined(ENABLE_MICRODATA)
-#define ENABLE_MICRODATA 0
-#endif
-
 #if !defined(ENABLE_MOUSE_CURSOR_SCALE)
 #define ENABLE_MOUSE_CURSOR_SCALE 0
 #endif
diff --git a/Source/WebCore/WebCore.gypi b/Source/WebCore/WebCore.gypi
index 68e77f0..d427d0f 100644
--- a/Source/WebCore/WebCore.gypi
+++ b/Source/WebCore/WebCore.gypi
@@ -95,7 +95,6 @@
             'dom/PopStateEvent.idl',
             'dom/ProcessingInstruction.idl',
             'dom/ProgressEvent.idl',
-            'dom/PropertyNodeList.idl',
             'dom/Range.idl',
             'dom/RangeException.idl',
             'dom/RequestAnimationFrameCallback.idl',
@@ -178,7 +177,6 @@
             'html/HTMLParamElement.idl',
             'html/HTMLPreElement.idl',
             'html/HTMLProgressElement.idl',
-            'html/HTMLPropertiesCollection.idl',
             'html/HTMLQuoteElement.idl',
             'html/HTMLScriptElement.idl',
             'html/HTMLSelectElement.idl',
@@ -201,7 +199,6 @@
             'html/ImageData.idl',
             'html/MediaController.idl',
             'html/MediaError.idl',
-            'html/MicroDataItemValue.idl',
             'html/MediaKeyError.idl',
             'html/MediaKeyEvent.idl',
             'html/RadioNodeList.idl',
@@ -1869,8 +1866,6 @@
             'dom/MessageEvent.h',
             'dom/MessagePort.cpp',
             'dom/MessagePortChannel.cpp',
-            'dom/MicroDataItemList.cpp',
-            'dom/MicroDataItemList.h',
             'dom/MouseEvent.cpp',
             'dom/MouseRelatedEvent.cpp',
             'dom/MutationCallback.h',
@@ -1924,8 +1919,6 @@
             'dom/ProcessingInstruction.h',
             'dom/ProgressEvent.cpp',
             'dom/ProgressEvent.h',
-            'dom/PropertyNodeList.cpp',
-            'dom/PropertyNodeList.h',
             'dom/PseudoElement.cpp',
             'dom/QualifiedName.cpp',
             'dom/Range.cpp',
@@ -2169,8 +2162,6 @@
             'html/HTMLPreElement.h',
             'html/HTMLProgressElement.cpp',
             'html/HTMLProgressElement.h',
-            'html/HTMLPropertiesCollection.cpp',
-            'html/HTMLPropertiesCollection.h',
             'html/HTMLQuoteElement.cpp',
             'html/HTMLQuoteElement.h',
             'html/HTMLScriptElement.cpp',
@@ -2241,10 +2232,6 @@
             'html/MediaKeyError.h',
             'html/MediaKeyEvent.cpp',
             'html/MediaKeyEvent.h',
-            'html/MicroDataAttributeTokenList.cpp',
-            'html/MicroDataAttributeTokenList.h',
-            'html/MicroDataItemValue.cpp',
-            'html/MicroDataItemValue.h',
             'html/MonthInputType.cpp',
             'html/MonthInputType.h',
             'html/NumberInputType.cpp',
diff --git a/Source/WebCore/dom/Document.cpp b/Source/WebCore/dom/Document.cpp
index aa28c38..20cbba8 100644
--- a/Source/WebCore/dom/Document.cpp
+++ b/Source/WebCore/dom/Document.cpp
@@ -221,11 +221,6 @@
 #include "MathMLNames.h"
 #endif
 
-#if ENABLE(MICRODATA)
-#include "MicroDataItemList.h"
-#include "NodeRareData.h"
-#endif
-
 #if ENABLE(LINK_PRERENDER)
 #include "Prerenderer.h"
 #endif
@@ -5601,17 +5596,6 @@
     return loader;
 }
 
-#if ENABLE(MICRODATA)
-PassRefPtr<NodeList> Document::getItems(const String& typeNames)
-{
-    // Since documet.getItem() is allowed for microdata, typeNames will be null string.
-    // In this case we need to create an empty string identifier to map such request in the cache.
-    String localTypeNames = typeNames.isNull() ? MicroDataItemList::undefinedItemType() : typeNames;
-
-    return ensureRareData()->ensureNodeLists()->addCacheWithName<MicroDataItemList>(this, MicroDataItemListType, localTypeNames);
-}
-#endif
-
 IntSize Document::viewportSize() const
 {
     if (!view())
diff --git a/Source/WebCore/dom/Document.h b/Source/WebCore/dom/Document.h
index 437c5bd..1a3478c 100644
--- a/Source/WebCore/dom/Document.h
+++ b/Source/WebCore/dom/Document.h
@@ -171,10 +171,6 @@
 class TouchList;
 #endif
 
-#if ENABLE(MICRODATA)
-class MicroDataItemList;
-#endif
-
 #if ENABLE(LINK_PRERENDER)
 class Prerenderer;
 #endif
@@ -1098,10 +1094,6 @@
     const TouchEventTargetSet* touchEventTargets() const { return 0; }
 #endif
 
-#if ENABLE(MICRODATA)
-    PassRefPtr<NodeList> getItems(const String& typeNames);
-#endif
-
     bool isInDocumentWrite() { return m_writeRecursionDepth > 0; }
 
     void suspendScheduledTasks(ActiveDOMObject::ReasonForSuspension);
diff --git a/Source/WebCore/dom/Document.idl b/Source/WebCore/dom/Document.idl
index 2884c1b..03b10c5 100644
--- a/Source/WebCore/dom/Document.idl
+++ b/Source/WebCore/dom/Document.idl
@@ -137,10 +137,6 @@
 
     [PerWorldBindings] NodeList getElementsByName([Optional=DefaultIsUndefined] DOMString elementName);
 
-#if defined(ENABLE_MICRODATA) && ENABLE_MICRODATA
-    NodeList getItems([TreatNullAs=NullString, TreatUndefinedAs=NullString, Optional=DefaultIsUndefined] DOMString typeNames);
-#endif
-
     [Custom] attribute Location location;
 
     // IE extensions
diff --git a/Source/WebCore/dom/Element.cpp b/Source/WebCore/dom/Element.cpp
index 3394e71..ea2a155 100644
--- a/Source/WebCore/dom/Element.cpp
+++ b/Source/WebCore/dom/Element.cpp
@@ -2733,10 +2733,6 @@
     } else if (type == FormControls) {
         ASSERT(hasTagName(formTag) || hasTagName(fieldsetTag));
         return ensureRareData()->ensureNodeLists()->addCacheWithAtomicName<HTMLFormControlsCollection>(this, type);
-#if ENABLE(MICRODATA)
-    } else if (type == ItemProperties) {
-        return ensureRareData()->ensureNodeLists()->addCacheWithAtomicName<HTMLPropertiesCollection>(this, type);
-#endif
     }
     return ensureRareData()->ensureNodeLists()->addCacheWithAtomicName<HTMLCollection>(this, type);
 }
diff --git a/Source/WebCore/dom/LiveNodeList.cpp b/Source/WebCore/dom/LiveNodeList.cpp
index 9897e5c..f2e33b5 100644
--- a/Source/WebCore/dom/LiveNodeList.cpp
+++ b/Source/WebCore/dom/LiveNodeList.cpp
@@ -26,8 +26,6 @@
 #include "Document.h"
 #include "Element.h"
 #include "HTMLCollection.h"
-#include "HTMLPropertiesCollection.h"
-#include "PropertyNodeList.h"
 #include "WebCoreMemoryInstrumentation.h"
 
 namespace WebCore {
@@ -36,19 +34,6 @@
 {
     if (isRootedAtDocument() && m_ownerNode->inDocument())
         return m_ownerNode->document();
-
-#if ENABLE(MICRODATA)
-    if (m_rootType == NodeListIsRootedAtDocumentIfOwnerHasItemrefAttr && toElement(ownerNode())->fastHasAttribute(HTMLNames::itemrefAttr)) {
-        if (m_ownerNode->inDocument())
-            return m_ownerNode->document();
-
-        Node* root = m_ownerNode.get();
-        while (Node* parent = root->parentNode())
-            root = parent;
-        return root;
-    }
-#endif
-
     return m_ownerNode.get();
 }
 
@@ -74,12 +59,6 @@
     cacheBase->m_idCache.clear();
     cacheBase->m_nameCache.clear();
     cacheBase->m_cachedElementsArrayOffset = 0;
-
-#if ENABLE(MICRODATA)
-    // FIXME: There should be more generic mechanism to clear caches in subclasses.
-    if (type() == ItemProperties)
-        static_cast<const HTMLPropertiesCollection*>(this)->invalidateCache();
-#endif
 }
 
 void LiveNodeListBase::invalidateIdNameCacheMaps() const
@@ -103,11 +82,6 @@
     Node* rootNode = this->rootNode();
 
     if (rootNode->inDocument()) {
-#if ENABLE(MICRODATA)
-        if (type() == PropertyNodeListType)
-            static_cast<const PropertyNodeList*>(this)->updateRefElements();
-#endif
-
         Element* element = rootNode->treeScope()->getElementById(elementId);
         if (element && nodeMatches(element) && element->isDescendantOf(rootNode))
             return element;
diff --git a/Source/WebCore/dom/LiveNodeList.h b/Source/WebCore/dom/LiveNodeList.h
index 2b2c6c8..90b371d 100644
--- a/Source/WebCore/dom/LiveNodeList.h
+++ b/Source/WebCore/dom/LiveNodeList.h
@@ -180,10 +180,6 @@
     case InvalidateOnHRefAttrChange:
         return attrName == HTMLNames::hrefAttr;
     case InvalidateOnItemAttrChange:
-#if ENABLE(MICRODATA)
-        return attrName == HTMLNames::itemscopeAttr || attrName == HTMLNames::itempropAttr
-            || attrName == HTMLNames::itemtypeAttr || attrName == HTMLNames::itemrefAttr || attrName == HTMLNames::idAttr;
-#endif // Intentionally fall through
     case DoNotInvalidateOnAttributeChanges:
         return false;
     case InvalidateOnAnyAttrChange:
diff --git a/Source/WebCore/dom/MicroDataItemList.cpp b/Source/WebCore/dom/MicroDataItemList.cpp
deleted file mode 100644
index 727862e..0000000
--- a/Source/WebCore/dom/MicroDataItemList.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (c) 2011 Motorola Mobility, Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY MOTOROLA MOBILITY, INC. AND ITS CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MOTOROLA MOBILITY, INC. OR ITS
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(MICRODATA)
-#include "MicroDataItemList.h"
-
-#include "DOMSettableTokenList.h"
-#include "Document.h"
-#include "HTMLElement.h"
-#include "HTMLNames.h"
-#include "NodeRareData.h"
-
-namespace WebCore {
-
-using namespace HTMLNames;
-
-const String& MicroDataItemList::undefinedItemType()
-{
-    return emptyString();
-}
-
-MicroDataItemList::MicroDataItemList(PassRefPtr<Node> rootNode, const String& typeNames)
-    : LiveNodeList(rootNode, MicroDataItemListType, InvalidateOnItemAttrChange)
-    , m_typeNames(typeNames, document()->inQuirksMode())
-    , m_originalTypeNames(typeNames)
-{
-}
-
-MicroDataItemList::~MicroDataItemList()
-{
-    ownerNode()->nodeLists()->removeCacheWithName(this, MicroDataItemListType, m_originalTypeNames);
-}
-
-bool MicroDataItemList::nodeMatches(Element* testNode) const
-{
-    if (!testNode->isHTMLElement())
-        return false;
-
-    HTMLElement* testElement = toHTMLElement(testNode);
-    if (!testElement->fastHasAttribute(itemscopeAttr) || testElement->fastHasAttribute(itempropAttr))
-        return false;
-
-    if (!m_typeNames.size())
-        return true;
-
-    return testElement->itemType()->tokens().containsAll(m_typeNames);
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(MICRODATA)
diff --git a/Source/WebCore/dom/MicroDataItemList.h b/Source/WebCore/dom/MicroDataItemList.h
deleted file mode 100644
index d4c281d..0000000
--- a/Source/WebCore/dom/MicroDataItemList.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (c) 2011 Motorola Mobility, Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY MOTOROLA MOBILITY, INC. AND ITS CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MOTOROLA MOBILITY, INC. OR ITS
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef MicroDataItemList_h
-#define MicroDataItemList_h
-
-#if ENABLE(MICRODATA)
-
-#include "LiveNodeList.h"
-#include "Node.h"
-#include "SpaceSplitString.h"
-
-namespace WebCore {
-
-class MicroDataItemList : public LiveNodeList {
-public:
-    static PassRefPtr<MicroDataItemList> create(PassRefPtr<Node> rootNode, const String& typeNames)
-    {
-        return adoptRef(new MicroDataItemList(rootNode, typeNames));
-    }
-
-    virtual ~MicroDataItemList();
-
-    static const String& undefinedItemType();
-
-private:
-    MicroDataItemList(PassRefPtr<Node> rootNode, const String& typeNames);
-
-    virtual bool nodeMatches(Element*) const;
-
-    SpaceSplitString m_typeNames;
-    String m_originalTypeNames;
-};
-
-} // namespace WebCore
-
-#endif // ENABLE(MICRODATA)
-#endif // MicroDataItemList_h
diff --git a/Source/WebCore/dom/Node.cpp b/Source/WebCore/dom/Node.cpp
index 399bd53..d2f7126 100644
--- a/Source/WebCore/dom/Node.cpp
+++ b/Source/WebCore/dom/Node.cpp
@@ -127,11 +127,6 @@
 
 #include "InspectorController.h"
 
-#if ENABLE(MICRODATA)
-#include "HTMLPropertiesCollection.h"
-#include "PropertyNodeList.h"
-#endif
-
 using namespace std;
 
 namespace WebCore {
@@ -2535,43 +2530,6 @@
 #endif
 }
 
-#if ENABLE(MICRODATA)
-DOMSettableTokenList* Node::itemProp()
-{
-    return ensureRareData()->ensureMicroDataTokenLists()->itemProp(this);
-}
-
-void Node::setItemProp(const String& value)
-{
-    ensureRareData()->ensureMicroDataTokenLists()->itemProp(this)->setValueInternal(value);
-}
-
-DOMSettableTokenList* Node::itemRef()
-{
-    return ensureRareData()->ensureMicroDataTokenLists()->itemRef(this);
-}
-
-void Node::setItemRef(const String& value)
-{
-    ensureRareData()->ensureMicroDataTokenLists()->itemRef(this)->setValueInternal(value);
-}
-
-DOMSettableTokenList* Node::itemType()
-{
-    return ensureRareData()->ensureMicroDataTokenLists()->itemType(this);
-}
-
-void Node::setItemType(const String& value)
-{
-    ensureRareData()->ensureMicroDataTokenLists()->itemType(this)->setValueInternal(value);
-}
-
-PassRefPtr<PropertyNodeList> Node::propertyNodeList(const String& name)
-{
-    return ensureRareData()->ensureNodeLists()->addCacheWithName<PropertyNodeList>(this, PropertyNodeListType, name);
-}
-#endif
-
 // This is here for inlining
 inline void TreeScope::removedLastRefToScope()
 {
diff --git a/Source/WebCore/dom/Node.h b/Source/WebCore/dom/Node.h
index d808ca5..697d20a 100644
--- a/Source/WebCore/dom/Node.h
+++ b/Source/WebCore/dom/Node.h
@@ -86,11 +86,6 @@
 class TouchEvent;
 #endif
 
-#if ENABLE(MICRODATA)
-class HTMLPropertiesCollection;
-class PropertyNodeList;
-#endif
-
 typedef int ExceptionCode;
 
 const int nodeStyleChangeShift = 15;
@@ -654,13 +649,6 @@
     virtual EventTargetData* eventTargetData();
     virtual EventTargetData* ensureEventTargetData();
 
-#if ENABLE(MICRODATA)
-    DOMSettableTokenList* itemProp();
-    DOMSettableTokenList* itemRef();
-    DOMSettableTokenList* itemType();
-    PassRefPtr<PropertyNodeList> propertyNodeList(const String&);
-#endif
-
     void getRegisteredMutationObserversOfType(HashMap<MutationObserver*, MutationRecordDeliveryOptions>&, MutationObserver::MutationType, const QualifiedName* attributeName);
     void registerMutationObserver(MutationObserver*, MutationObserverOptions, const HashSet<AtomicString>& attributeFilter);
     void unregisterMutationObserver(MutationObserverRegistration*);
@@ -830,12 +818,6 @@
     void setHasSVGRareData() { setFlag(HasSVGRareDataFlag); }
     void clearHasSVGRareData() { clearFlag(HasSVGRareDataFlag); }
 #endif
-
-#if ENABLE(MICRODATA)
-    void setItemProp(const String&);
-    void setItemRef(const String&);
-    void setItemType(const String&);
-#endif
 };
 
 // Used in Node::addSubresourceAttributeURLs() and in addSubresourceStyleURLs()
diff --git a/Source/WebCore/dom/NodeRareData.cpp b/Source/WebCore/dom/NodeRareData.cpp
index 245e6ed..fa4827b 100644
--- a/Source/WebCore/dom/NodeRareData.cpp
+++ b/Source/WebCore/dom/NodeRareData.cpp
@@ -41,9 +41,6 @@
 struct SameSizeAsNodeRareData {
     unsigned m_bitfields : 20;
     void* m_pointer[3];
-#if ENABLE(MICRODATA)
-    void* m_microData;
-#endif
 };
 
 COMPILE_ASSERT(sizeof(NodeRareData) == sizeof(SameSizeAsNodeRareData), NodeRareDataShouldStaySmall);
@@ -62,10 +59,6 @@
     MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::DOM);
     info.addMember(m_nodeLists, "nodeLists");
     info.addMember(m_mutationObserverData, "mutationObserverData");
-
-#if ENABLE(MICRODATA)
-    info.addMember(m_microDataTokenLists, "microDataTokenLists");
-#endif
 }
 
 } // namespace WebCore
diff --git a/Source/WebCore/dom/NodeRareData.h b/Source/WebCore/dom/NodeRareData.h
index c4f6186..8dffb1b 100644
--- a/Source/WebCore/dom/NodeRareData.h
+++ b/Source/WebCore/dom/NodeRareData.h
@@ -40,12 +40,6 @@
 #include <wtf/text/AtomicString.h>
 #include <wtf/text/StringHash.h>
 
-#if ENABLE(MICRODATA)
-#include "HTMLPropertiesCollection.h"
-#include "MicroDataAttributeTokenList.h"
-#include "MicroDataItemList.h"
-#endif
-
 namespace WebCore {
 
 class LabelsNodeList;
@@ -256,42 +250,6 @@
     NodeMutationObserverData() { }
 };
 
-#if ENABLE(MICRODATA)
-class NodeMicroDataTokenLists {
-    WTF_MAKE_NONCOPYABLE(NodeMicroDataTokenLists); WTF_MAKE_FAST_ALLOCATED;
-public:
-    static PassOwnPtr<NodeMicroDataTokenLists> create() { return adoptPtr(new NodeMicroDataTokenLists); }
-
-    MicroDataAttributeTokenList* itemProp(Node* node) const
-    {
-        if (!m_itemProp)
-            m_itemProp = MicroDataAttributeTokenList::create(toElement(node), HTMLNames::itempropAttr);
-        return m_itemProp.get();
-    }
-
-    MicroDataAttributeTokenList* itemRef(Node* node) const
-    {
-        if (!m_itemRef)
-            m_itemRef = MicroDataAttributeTokenList::create(toElement(node), HTMLNames::itemrefAttr);
-        return m_itemRef.get();
-    }
-
-    MicroDataAttributeTokenList* itemType(Node* node) const
-    {
-        if (!m_itemType)
-            m_itemType = MicroDataAttributeTokenList::create(toElement(node), HTMLNames::itemtypeAttr);
-        return m_itemType.get();
-    }
-
-private:
-    NodeMicroDataTokenLists() { }
-
-    mutable RefPtr<MicroDataAttributeTokenList> m_itemProp;
-    mutable RefPtr<MicroDataAttributeTokenList> m_itemRef;
-    mutable RefPtr<MicroDataAttributeTokenList> m_itemType;
-};
-#endif
-
 class NodeRareData : public NodeRareDataBase {
     WTF_MAKE_NONCOPYABLE(NodeRareData); WTF_MAKE_FAST_ALLOCATED;
 public:
@@ -314,15 +272,6 @@
         return m_mutationObserverData.get();
     }
 
-#if ENABLE(MICRODATA)
-    NodeMicroDataTokenLists* ensureMicroDataTokenLists() const
-    {
-        if (!m_microDataTokenLists)
-            m_microDataTokenLists = NodeMicroDataTokenLists::create();
-        return m_microDataTokenLists.get();
-    }
-#endif
-
     unsigned connectedSubframeCount() const { return m_connectedFrameCount; }
     void incrementConnectedSubframeCount(unsigned amount)
     {
@@ -349,10 +298,6 @@
 
     OwnPtr<NodeListsNodeData> m_nodeLists;
     OwnPtr<NodeMutationObserverData> m_mutationObserverData;
-
-#if ENABLE(MICRODATA)
-    mutable OwnPtr<NodeMicroDataTokenLists> m_microDataTokenLists;
-#endif
 };
 
 inline bool NodeListsNodeData::deleteThisAndUpdateNodeRareDataIfAboutToRemoveLastList(Node* ownerNode)
diff --git a/Source/WebCore/dom/PropertyNodeList.cpp b/Source/WebCore/dom/PropertyNodeList.cpp
deleted file mode 100644
index b3ebfbd..0000000
--- a/Source/WebCore/dom/PropertyNodeList.cpp
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Copyright (c) 2012 Motorola Mobility, Inc.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation and/or
- * other materials provided with the distribution.
- *
- * Neither the name of Motorola Mobility, Inc. nor the names of its contributors may
- * be used to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(MICRODATA)
-#include "PropertyNodeList.h"
-
-#include "DOMSettableTokenList.h"
-#include "DOMStringList.h"
-#include "HTMLElement.h"
-#include "HTMLNames.h"
-#include "NodeRareData.h"
-
-namespace WebCore {
-
-using namespace HTMLNames;
-
-PropertyNodeList::PropertyNodeList(Node* rootNode, const String& name)
-    : LiveNodeList(rootNode, PropertyNodeListType, InvalidateOnItemAttrChange, NodeListIsRootedAtDocumentIfOwnerHasItemrefAttr)
-    , m_name(name)
-{
-    ScriptWrappable::init(this);
-}
-
-PropertyNodeList::~PropertyNodeList()
-{
-    ownerNode()->nodeLists()->removeCacheWithName(this, PropertyNodeListType, m_name);
-}
-
-bool PropertyNodeList::elementIsPropertyOfRefElement(const Node* testElement, const Node *refElement) const
-{
-    for (const ContainerNode* node = testElement->parentNode(); node; node = node->parentNode()) {
-        if (node->isHTMLElement() && toHTMLElement(node)->fastHasAttribute(itemscopeAttr) && node != ownerNode())
-            return false;
-
-        if (node == refElement)
-            return true;
-    }
-    return false;
-}
-
-void PropertyNodeList::updateRefElements() const
-{
-    if (isItemRefElementsCacheValid())
-        return;
-
-    m_itemRefElementsCache.clear();
-    setItemRefElementsCacheValid();
-    toHTMLElement(ownerNode())->getItemRefElements(m_itemRefElementsCache);
-}
-
-bool PropertyNodeList::nodeMatches(Element* testElement) const
-{
-    if (!testElement->isHTMLElement() || !testElement->fastHasAttribute(itempropAttr) || testElement == ownerNode())
-        return false;
-
-    for (unsigned i = 0; i < m_itemRefElementsCache.size(); ++i) {
-        if (testElement == m_itemRefElementsCache[i] || elementIsPropertyOfRefElement(testElement, m_itemRefElementsCache[i])) {
-            if (testElement->itemProp()->tokens().contains(m_name))
-                return true;
-        }
-    }
-
-    return false;
-}
-
-PropertyValueArray PropertyNodeList::getValues() const
-{
-    PropertyValueArray propertyValue;
-
-    for (unsigned offset = 0; Node* node = item(offset); ++offset)
-        propertyValue.append(toHTMLElement(node)->itemValue());
-
-    return propertyValue;
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(MICRODATA)
diff --git a/Source/WebCore/dom/PropertyNodeList.h b/Source/WebCore/dom/PropertyNodeList.h
deleted file mode 100644
index 9bb737b..0000000
--- a/Source/WebCore/dom/PropertyNodeList.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (c) 2012 Motorola Mobility, Inc.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation and/or
- * other materials provided with the distribution.
- *
- * Neither the name of Motorola Mobility, Inc. nor the names of its contributors may
- * be used to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef PropertyNodeList_h
-#define PropertyNodeList_h
-
-#if ENABLE(MICRODATA)
-#include "LiveNodeList.h"
-#include "MicroDataItemValue.h"
-#include <wtf/PassRefPtr.h>
-#include <wtf/RefPtr.h>
-#include <wtf/Vector.h>
-
-namespace WebCore {
-
-typedef Vector<RefPtr<MicroDataItemValue> > PropertyValueArray;
-
-class PropertyNodeList : public LiveNodeList {
-public:
-    static PassRefPtr<PropertyNodeList> create(Node* rootNode, const String& name)
-    {
-        return adoptRef(new PropertyNodeList(rootNode, name));
-    }
-
-    ~PropertyNodeList();
-
-    PropertyValueArray getValues() const;
-    void updateRefElements() const;
-
-private:
-    explicit PropertyNodeList(Node* rootNode, const String& name);
-
-    virtual bool nodeMatches(Element*) const OVERRIDE;
-
-    bool elementIsPropertyOfRefElement(const Node*, const Node*) const;
-
-    String m_name;
-    mutable Vector<HTMLElement*> m_itemRefElementsCache;
-};
-
-} // namespace WebCore
-
-#endif // ENABLE(MICRODATA)
-
-#endif // StaticNodeList_h
diff --git a/Source/WebCore/dom/PropertyNodeList.idl b/Source/WebCore/dom/PropertyNodeList.idl
deleted file mode 100644
index 85ba9d6..0000000
--- a/Source/WebCore/dom/PropertyNodeList.idl
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) 2012 Motorola Mobility, Inc.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation and/or
- * other materials provided with the distribution.
- *
- * Neither the name of Motorola Mobility, Inc. nor the names of its contributors may
- * be used to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-[
-    Conditional=MICRODATA,
-    IndexedGetter
-] interface PropertyNodeList : NodeList {
-
-    sequence<MicroDataItemValue> getValues();
-    Node item(unsigned long index);
-
-    readonly attribute unsigned long length;
-};
diff --git a/Source/WebCore/html/CollectionType.h b/Source/WebCore/html/CollectionType.h
index 57ea13d..c576c11 100644
--- a/Source/WebCore/html/CollectionType.h
+++ b/Source/WebCore/html/CollectionType.h
@@ -50,9 +50,6 @@
     SelectedOptions,
     DataListOptions,
     MapAreas,
-#if ENABLE(MICRODATA)
-    ItemProperties, // Microdata item properties in the document
-#endif
     FormControls,
 
     // Live NodeList.
@@ -63,8 +60,6 @@
     HTMLTagNodeListType,
     RadioNodeListType,
     LabelsNodeListType,
-    MicroDataItemListType,
-    PropertyNodeListType,
 };
 
 static const CollectionType FirstNodeListType = ChildNodeListType;
diff --git a/Source/WebCore/html/HTMLAnchorElement.cpp b/Source/WebCore/html/HTMLAnchorElement.cpp
index 41b68bb..961d535 100644
--- a/Source/WebCore/html/HTMLAnchorElement.cpp
+++ b/Source/WebCore/html/HTMLAnchorElement.cpp
@@ -576,18 +576,6 @@
     return isLink() || HTMLElement::willRespondToMouseClickEvents();
 }
 
-#if ENABLE(MICRODATA)
-String HTMLAnchorElement::itemValueText() const
-{
-    return getURLAttribute(hrefAttr);
-}
-
-void HTMLAnchorElement::setItemValueText(const String& value, ExceptionCode&)
-{
-    setAttribute(hrefAttr, value);
-}
-#endif
-
 typedef HashMap<const HTMLAnchorElement*, RefPtr<Element> > RootEditableElementMap;
 
 static RootEditableElementMap& rootEditableElementMap()
diff --git a/Source/WebCore/html/HTMLAnchorElement.h b/Source/WebCore/html/HTMLAnchorElement.h
index 033e9c2..1fb9258 100644
--- a/Source/WebCore/html/HTMLAnchorElement.h
+++ b/Source/WebCore/html/HTMLAnchorElement.h
@@ -132,11 +132,6 @@
     static EventType eventType(Event*);
     bool treatLinkAsLiveForEventType(EventType) const;
 
-#if ENABLE(MICRODATA)
-    virtual String itemValueText() const OVERRIDE;
-    virtual void setItemValueText(const String&, ExceptionCode&) OVERRIDE;
-#endif
-
     Element* rootEditableElementForSelectionOnMouseDown() const;
     void setRootEditableElementForSelectionOnMouseDown(Element*);
     void clearRootEditableElementForSelectionOnMouseDown();
diff --git a/Source/WebCore/html/HTMLAreaElement.cpp b/Source/WebCore/html/HTMLAreaElement.cpp
index 7d29042..fd4d67be1 100644
--- a/Source/WebCore/html/HTMLAreaElement.cpp
+++ b/Source/WebCore/html/HTMLAreaElement.cpp
@@ -253,16 +253,4 @@
     return getAttribute(targetAttr);
 }
 
-#if ENABLE(MICRODATA)
-String HTMLAreaElement::itemValueText() const
-{
-    return getURLAttribute(hrefAttr);
-}
-
-void HTMLAreaElement::setItemValueText(const String& value, ExceptionCode&)
-{
-    setAttribute(hrefAttr, value);
-}
-#endif
-
 }
diff --git a/Source/WebCore/html/HTMLAreaElement.h b/Source/WebCore/html/HTMLAreaElement.h
index 010dd91..4667014 100644
--- a/Source/WebCore/html/HTMLAreaElement.h
+++ b/Source/WebCore/html/HTMLAreaElement.h
@@ -59,11 +59,6 @@
     virtual void updateFocusAppearance(bool /*restorePreviousSelection*/);
     virtual void setFocus(bool) OVERRIDE;
 
-#if ENABLE(MICRODATA)
-    virtual String itemValueText() const OVERRIDE;
-    virtual void setItemValueText(const String&, ExceptionCode&) OVERRIDE;
-#endif
-
     enum Shape { Default, Poly, Rect, Circle, Unknown };
     Path getRegion(const LayoutSize&) const;
     void invalidateCachedRegion();
diff --git a/Source/WebCore/html/HTMLCollection.cpp b/Source/WebCore/html/HTMLCollection.cpp
index af50b56..be140e5 100644
--- a/Source/WebCore/html/HTMLCollection.cpp
+++ b/Source/WebCore/html/HTMLCollection.cpp
@@ -33,11 +33,6 @@
 #include "NodeRareData.h"
 #include "NodeTraversal.h"
 
-#if ENABLE(MICRODATA)
-#include "HTMLPropertiesCollection.h"
-#include "PropertyNodeList.h"
-#endif
-
 #include <utility>
 
 namespace WebCore {
@@ -62,9 +57,6 @@
     case SelectedOptions:
     case DataListOptions:
     case WindowNamedItems:
-#if ENABLE(MICRODATA)
-    case ItemProperties:
-#endif
     case FormControls:
         return false;
     case NodeChildren:
@@ -79,8 +71,6 @@
     case HTMLTagNodeListType:
     case RadioNodeListType:
     case LabelsNodeListType:
-    case MicroDataItemListType:
-    case PropertyNodeListType:
         break;
     }
     ASSERT_NOT_REACHED();
@@ -100,9 +90,6 @@
     case DocAll:
     case WindowNamedItems:
     case DocumentNamedItems:
-#if ENABLE(MICRODATA)
-    case ItemProperties:
-#endif
     case FormControls:
         return NodeListIsRootedAtDocument;
     case NodeChildren:
@@ -122,8 +109,6 @@
     case HTMLTagNodeListType:
     case RadioNodeListType:
     case LabelsNodeListType:
-    case MicroDataItemListType:
-    case PropertyNodeListType:
         break;
     }
     ASSERT_NOT_REACHED();
@@ -159,10 +144,6 @@
         return InvalidateOnIdNameAttrChange;
     case DocumentNamedItems:
         return InvalidateOnIdNameAttrChange;
-#if ENABLE(MICRODATA)
-    case ItemProperties:
-        return InvalidateOnItemAttrChange;
-#endif
     case FormControls:
         return InvalidateForFormControls;
     case ChildNodeListType:
@@ -172,8 +153,6 @@
     case HTMLTagNodeListType:
     case RadioNodeListType:
     case LabelsNodeListType:
-    case MicroDataItemListType:
-    case PropertyNodeListType:
         break;
     }
     ASSERT_NOT_REACHED();
@@ -245,10 +224,6 @@
     case DocAll:
     case NodeChildren:
         return true;
-#if ENABLE(MICRODATA)
-    case ItemProperties:
-        return element->fastHasAttribute(itempropAttr);
-#endif
     case FormControls:
     case DocumentNamedItems:
     case TableRows:
@@ -260,8 +235,6 @@
     case HTMLTagNodeListType:
     case RadioNodeListType:
     case LabelsNodeListType:
-    case MicroDataItemListType:
-    case PropertyNodeListType:
         ASSERT_NOT_REACHED();
     }
     return false;
@@ -445,13 +418,6 @@
     if (isLengthCacheValid() && cachedLength() <= offset)
         return 0;
 
-#if ENABLE(MICRODATA)
-    if (type() == ItemProperties)
-        static_cast<const HTMLPropertiesCollection*>(this)->updateRefElements();
-    else if (type() == PropertyNodeListType)
-        static_cast<const PropertyNodeList*>(this)->updateRefElements();
-#endif
-
     ContainerNode* root = rootContainerNode();
     if (!root) {
         // FIMXE: In someTextNode.childNodes case the root is Text. We shouldn't even make a LiveNodeList for that.
diff --git a/Source/WebCore/html/HTMLElement.cpp b/Source/WebCore/html/HTMLElement.cpp
index a9c682f..24f78b3 100644
--- a/Source/WebCore/html/HTMLElement.cpp
+++ b/Source/WebCore/html/HTMLElement.cpp
@@ -59,11 +59,6 @@
 #include <wtf/StdLibExtras.h>
 #include <wtf/text/CString.h>
 
-#if ENABLE(MICRODATA)
-#include "HTMLPropertiesCollection.h"
-#include "MicroDataItemValue.h"
-#endif
-
 namespace WebCore {
 
 using namespace HTMLNames;
@@ -301,14 +296,6 @@
             // Clamp tabindex to the range of 'short' to match Firefox's behavior.
             setTabIndexExplicitly(max(static_cast<int>(std::numeric_limits<short>::min()), min(tabindex, static_cast<int>(std::numeric_limits<short>::max()))));
         }
-#if ENABLE(MICRODATA)
-    } else if (name == itempropAttr) {
-        setItemProp(value);
-    } else if (name == itemrefAttr) {
-        setItemRef(value);
-    } else if (name == itemtypeAttr) {
-        setItemType(value);
-#endif
     } else {
         AtomicString eventName = eventNameForAttributeName(name);
         if (!eventName.isNull())
@@ -941,94 +928,6 @@
     }
 }
 
-bool HTMLElement::isURLAttribute(const Attribute& attribute) const
-{
-#if ENABLE(MICRODATA)
-    if (attribute.name() == itemidAttr)
-        return true;
-#endif
-    return StyledElement::isURLAttribute(attribute);
-}
-
-#if ENABLE(MICRODATA)
-void HTMLElement::setItemValue(const String& value, ExceptionCode& ec)
-{
-    if (!hasAttribute(itempropAttr) || hasAttribute(itemscopeAttr)) {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
-
-    setItemValueText(value, ec);
-}
-
-PassRefPtr<MicroDataItemValue> HTMLElement::itemValue() const
-{
-    if (!hasAttribute(itempropAttr))
-        return 0;
-
-    if (hasAttribute(itemscopeAttr))
-        return MicroDataItemValue::createFromNode(const_cast<HTMLElement* const>(this));
-
-    return MicroDataItemValue::createFromString(itemValueText());
-}
-
-String HTMLElement::itemValueText() const
-{
-    return textContent(true);
-}
-
-void HTMLElement::setItemValueText(const String& value, ExceptionCode& ec)
-{
-    setTextContent(value, ec);
-}
-
-PassRefPtr<HTMLPropertiesCollection> HTMLElement::properties()
-{
-    return static_cast<HTMLPropertiesCollection*>(ensureCachedHTMLCollection(ItemProperties).get());
-}
-
-void HTMLElement::getItemRefElements(Vector<HTMLElement*>& itemRefElements)
-{
-    if (!fastHasAttribute(itemscopeAttr))
-        return;
-
-    if (!fastHasAttribute(itemrefAttr) || !itemRef()->length()) {
-        itemRefElements.append(this);
-        return;
-    }
-
-    DOMSettableTokenList* itemRefs = itemRef();
-    RefPtr<DOMSettableTokenList> processedItemRef = DOMSettableTokenList::create();
-
-    Node* rootNode;
-    if (inDocument())
-        rootNode = document();
-    else {
-        rootNode = this;
-        while (Node* parent = rootNode->parentNode())
-            rootNode = parent;
-    }
-
-    for (Node* current = rootNode; current; current = NodeTraversal::next(current, rootNode)) {
-        if (!current->isHTMLElement())
-            continue;
-        HTMLElement* element = toHTMLElement(current);
-
-        if (element == this) {
-            itemRefElements.append(element);
-            continue;
-        }
-
-        const AtomicString& id = element->getIdAttribute();
-        if (!processedItemRef->tokens().contains(id) && itemRefs->tokens().contains(id)) {
-            processedItemRef->setValue(id);
-            if (!element->isDescendantOf(this))
-                itemRefElements.append(element);
-        }
-    }
-}
-#endif
-
 void HTMLElement::addHTMLLengthToStyle(MutableStylePropertySet* style, CSSPropertyID propertyID, const String& value)
 {
     // FIXME: This function should not spin up the CSS parser, but should instead just figure out the correct
diff --git a/Source/WebCore/html/HTMLElement.h b/Source/WebCore/html/HTMLElement.h
index 9fb9c80..4a2b70f 100644
--- a/Source/WebCore/html/HTMLElement.h
+++ b/Source/WebCore/html/HTMLElement.h
@@ -31,11 +31,6 @@
 class HTMLCollection;
 class HTMLFormElement;
 
-#if ENABLE(MICRODATA)
-class HTMLPropertiesCollection;
-class MicroDataItemValue;
-#endif
-
 enum TranslateAttributeMode {
     TranslateAttributeYes,
     TranslateAttributeNo,
@@ -95,13 +90,6 @@
     bool hasDirectionAuto() const;
     TextDirection directionalityIfhasDirAutoAttribute(bool& isAuto) const;
 
-#if ENABLE(MICRODATA)
-    void setItemValue(const String&, ExceptionCode&);
-    PassRefPtr<MicroDataItemValue> itemValue() const;
-    PassRefPtr<HTMLPropertiesCollection> properties();
-    void getItemRefElements(Vector<HTMLElement*>&);
-#endif
-
     virtual bool isHTMLUnknownElement() const { return false; }
 
     virtual bool isLabelable() const { return false; }
@@ -123,8 +111,6 @@
     virtual void childrenChanged(bool changedByParser = false, Node* beforeChange = 0, Node* afterChange = 0, int childCountDelta = 0);
     void calculateAndAdjustDirectionality();
 
-    virtual bool isURLAttribute(const Attribute&) const OVERRIDE;
-
 private:
     virtual String nodeName() const;
 
@@ -143,11 +129,6 @@
     TranslateAttributeMode translateAttributeMode() const;
 
     AtomicString eventNameForAttributeName(const QualifiedName& attrName) const;
-
-#if ENABLE(MICRODATA)
-    virtual String itemValueText() const;
-    virtual void setItemValueText(const String&, ExceptionCode&);
-#endif
 };
 
 inline HTMLElement* toHTMLElement(Node* node)
diff --git a/Source/WebCore/html/HTMLElement.idl b/Source/WebCore/html/HTMLElement.idl
index d39c72d..33d704c 100644
--- a/Source/WebCore/html/HTMLElement.idl
+++ b/Source/WebCore/html/HTMLElement.idl
@@ -56,19 +56,6 @@
 
              attribute boolean spellcheck;
 
-             [Conditional=MICRODATA, Reflect] attribute boolean itemScope;
-    [Conditional=MICRODATA] readonly attribute DOMSettableTokenList itemType;
-             [Conditional=MICRODATA, Reflect, URL] attribute DOMString itemId;
-
-    [Conditional=MICRODATA] readonly attribute DOMSettableTokenList itemRef;
-    [Conditional=MICRODATA] readonly attribute DOMSettableTokenList itemProp;
-
-#if defined(ENABLE_MICRODATA) && ENABLE_MICRODATA
-    [Conditional=MICRODATA] readonly attribute HTMLPropertiesCollection properties;
-#endif
-
-    [Conditional=MICRODATA, Custom, SetterRaisesException] attribute any itemValue;
-
     void click();
 };
 
diff --git a/Source/WebCore/html/HTMLEmbedElement.cpp b/Source/WebCore/html/HTMLEmbedElement.cpp
index 7506e43..a44a166 100644
--- a/Source/WebCore/html/HTMLEmbedElement.cpp
+++ b/Source/WebCore/html/HTMLEmbedElement.cpp
@@ -213,16 +213,4 @@
     addSubresourceURL(urls, document()->completeURL(getAttribute(srcAttr)));
 }
 
-#if ENABLE(MICRODATA)
-String HTMLEmbedElement::itemValueText() const
-{
-    return getURLAttribute(srcAttr);
-}
-
-void HTMLEmbedElement::setItemValueText(const String& value, ExceptionCode&)
-{
-    setAttribute(srcAttr, value);
-}
-#endif
-
 }
diff --git a/Source/WebCore/html/HTMLEmbedElement.h b/Source/WebCore/html/HTMLEmbedElement.h
index 442dcb9..eb9623b 100644
--- a/Source/WebCore/html/HTMLEmbedElement.h
+++ b/Source/WebCore/html/HTMLEmbedElement.h
@@ -51,11 +51,6 @@
 
     void parametersForPlugin(Vector<String>& paramNames, Vector<String>& paramValues);
 
-#if ENABLE(MICRODATA)
-    virtual String itemValueText() const OVERRIDE;
-    virtual void setItemValueText(const String&, ExceptionCode&) OVERRIDE;
-#endif
-
     virtual bool shouldRegisterAsNamedItem() const OVERRIDE { return true; }
 };
 
diff --git a/Source/WebCore/html/HTMLIFrameElement.cpp b/Source/WebCore/html/HTMLIFrameElement.cpp
index 5bf7e3b..c2c3754 100644
--- a/Source/WebCore/html/HTMLIFrameElement.cpp
+++ b/Source/WebCore/html/HTMLIFrameElement.cpp
@@ -139,16 +139,4 @@
         contentDocument()->recalcStyle(styleChange);
 }
 
-#if ENABLE(MICRODATA)
-String HTMLIFrameElement::itemValueText() const
-{
-    return getURLAttribute(srcAttr);
-}
-
-void HTMLIFrameElement::setItemValueText(const String& value, ExceptionCode&)
-{
-    setAttribute(srcAttr, value);
-}
-#endif
-
 }
diff --git a/Source/WebCore/html/HTMLIFrameElement.h b/Source/WebCore/html/HTMLIFrameElement.h
index 0cf5e17..5d9550d 100644
--- a/Source/WebCore/html/HTMLIFrameElement.h
+++ b/Source/WebCore/html/HTMLIFrameElement.h
@@ -49,11 +49,6 @@
 
     virtual void didRecalcStyle(StyleChange) OVERRIDE;
 
-#if ENABLE(MICRODATA)
-    virtual String itemValueText() const OVERRIDE;
-    virtual void setItemValueText(const String&, ExceptionCode&) OVERRIDE;
-#endif
-
     AtomicString m_name;
 };
 
diff --git a/Source/WebCore/html/HTMLImageElement.cpp b/Source/WebCore/html/HTMLImageElement.cpp
index 097e05e..d1b5f98 100644
--- a/Source/WebCore/html/HTMLImageElement.cpp
+++ b/Source/WebCore/html/HTMLImageElement.cpp
@@ -364,18 +364,6 @@
     return document()->completeURL(stripLeadingAndTrailingHTMLSpaces(usemap)).isEmpty();
 }
 
-#if ENABLE(MICRODATA)
-String HTMLImageElement::itemValueText() const
-{
-    return getURLAttribute(srcAttr);
-}
-
-void HTMLImageElement::setItemValueText(const String& value, ExceptionCode&)
-{
-    setAttribute(srcAttr, value);
-}
-#endif
-
 void HTMLImageElement::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
 {
     MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::DOM);
diff --git a/Source/WebCore/html/HTMLImageElement.h b/Source/WebCore/html/HTMLImageElement.h
index 197d04d..0207645 100644
--- a/Source/WebCore/html/HTMLImageElement.h
+++ b/Source/WebCore/html/HTMLImageElement.h
@@ -106,11 +106,6 @@
     virtual bool shouldRegisterAsNamedItem() const OVERRIDE { return true; }
     virtual bool shouldRegisterAsExtraNamedItem() const OVERRIDE { return true; }
 
-#if ENABLE(MICRODATA)
-    virtual String itemValueText() const OVERRIDE;
-    virtual void setItemValueText(const String&, ExceptionCode&) OVERRIDE;
-#endif
-
     HTMLImageLoader m_imageLoader;
     HTMLFormElement* m_form;
     CompositeOperator m_compositeOperator;
diff --git a/Source/WebCore/html/HTMLLinkElement.cpp b/Source/WebCore/html/HTMLLinkElement.cpp
index 4e34da7..cd6f100 100644
--- a/Source/WebCore/html/HTMLLinkElement.cpp
+++ b/Source/WebCore/html/HTMLLinkElement.cpp
@@ -520,16 +520,4 @@
     m_sizes->setValue(value);
 }
 
-#if ENABLE(MICRODATA)
-String HTMLLinkElement::itemValueText() const
-{
-    return getURLAttribute(hrefAttr);
-}
-
-void HTMLLinkElement::setItemValueText(const String& value, ExceptionCode&)
-{
-    setAttribute(hrefAttr, value);
-}
-#endif
-
 } // namespace WebCore
diff --git a/Source/WebCore/html/HTMLLinkElement.h b/Source/WebCore/html/HTMLLinkElement.h
index 5ba421a..ce7cdef 100644
--- a/Source/WebCore/html/HTMLLinkElement.h
+++ b/Source/WebCore/html/HTMLLinkElement.h
@@ -119,11 +119,6 @@
 
     void removePendingSheet(RemovePendingSheetNotificationType = RemovePendingSheetNotifyImmediately);
 
-#if ENABLE(MICRODATA)
-    virtual String itemValueText() const OVERRIDE;
-    virtual void setItemValueText(const String&, ExceptionCode&) OVERRIDE;
-#endif
-
 private:
     HTMLLinkElement(const QualifiedName&, Document*, bool createdByParser);
 
diff --git a/Source/WebCore/html/HTMLMediaElement.cpp b/Source/WebCore/html/HTMLMediaElement.cpp
index c80e7e1..b40aa3d 100644
--- a/Source/WebCore/html/HTMLMediaElement.cpp
+++ b/Source/WebCore/html/HTMLMediaElement.cpp
@@ -4214,18 +4214,6 @@
 }
 #endif
 
-#if ENABLE(MICRODATA)
-String HTMLMediaElement::itemValueText() const
-{
-    return getURLAttribute(srcAttr);
-}
-
-void HTMLMediaElement::setItemValueText(const String& value, ExceptionCode&)
-{
-    setAttribute(srcAttr, value);
-}
-#endif
-
 const String& HTMLMediaElement::mediaGroup() const
 {
     return m_mediaGroup;
diff --git a/Source/WebCore/html/HTMLMediaElement.h b/Source/WebCore/html/HTMLMediaElement.h
index 2cdc7d4..75e3a8d 100644
--- a/Source/WebCore/html/HTMLMediaElement.h
+++ b/Source/WebCore/html/HTMLMediaElement.h
@@ -539,11 +539,6 @@
 
     void removeBehaviorsRestrictionsAfterFirstUserGesture();
 
-#if ENABLE(MICRODATA)
-    virtual String itemValueText() const;
-    virtual void setItemValueText(const String&, ExceptionCode&);
-#endif
-
     void updateMediaController();
     bool isBlocked() const;
     bool isBlockedOnMediaController() const;
diff --git a/Source/WebCore/html/HTMLMetaElement.cpp b/Source/WebCore/html/HTMLMetaElement.cpp
index f9e1424..87a849a 100644
--- a/Source/WebCore/html/HTMLMetaElement.cpp
+++ b/Source/WebCore/html/HTMLMetaElement.cpp
@@ -103,16 +103,4 @@
     return getNameAttribute();
 }
 
-#if ENABLE(MICRODATA)
-String HTMLMetaElement::itemValueText() const
-{
-    return getAttribute(contentAttr);
-}
-
-void HTMLMetaElement::setItemValueText(const String& value, ExceptionCode&)
-{
-    setAttribute(contentAttr, value);
-}
-#endif
-
 }
diff --git a/Source/WebCore/html/HTMLMetaElement.h b/Source/WebCore/html/HTMLMetaElement.h
index 41f2780..167ea5d 100644
--- a/Source/WebCore/html/HTMLMetaElement.h
+++ b/Source/WebCore/html/HTMLMetaElement.h
@@ -42,12 +42,6 @@
     virtual InsertionNotificationRequest insertedInto(ContainerNode*) OVERRIDE;
 
     void process();
-
-#if ENABLE(MICRODATA)
-    virtual String itemValueText() const OVERRIDE;
-    virtual void setItemValueText(const String&, ExceptionCode&) OVERRIDE;
-#endif
-
 };
 
 } //namespace
diff --git a/Source/WebCore/html/HTMLObjectElement.cpp b/Source/WebCore/html/HTMLObjectElement.cpp
index 336df99..1a42993 100644
--- a/Source/WebCore/html/HTMLObjectElement.cpp
+++ b/Source/WebCore/html/HTMLObjectElement.cpp
@@ -507,16 +507,4 @@
     return FormAssociatedElement::form();
 }
 
-#if ENABLE(MICRODATA)
-String HTMLObjectElement::itemValueText() const
-{
-    return getURLAttribute(dataAttr);
-}
-
-void HTMLObjectElement::setItemValueText(const String& value, ExceptionCode&)
-{
-    setAttribute(dataAttr, value);
-}
-#endif
-
 }
diff --git a/Source/WebCore/html/HTMLObjectElement.h b/Source/WebCore/html/HTMLObjectElement.h
index bf717da..1988eb5 100644
--- a/Source/WebCore/html/HTMLObjectElement.h
+++ b/Source/WebCore/html/HTMLObjectElement.h
@@ -101,11 +101,6 @@
     virtual void derefFormAssociatedElement() { deref(); }
     virtual HTMLFormElement* virtualForm() const;
 
-#if ENABLE(MICRODATA)
-    virtual String itemValueText() const OVERRIDE;
-    virtual void setItemValueText(const String&, ExceptionCode&) OVERRIDE;
-#endif
-
     virtual bool shouldRegisterAsNamedItem() const OVERRIDE { return isDocNamedItem(); }
     virtual bool shouldRegisterAsExtraNamedItem() const OVERRIDE { return isDocNamedItem(); }
 
diff --git a/Source/WebCore/html/HTMLPropertiesCollection.cpp b/Source/WebCore/html/HTMLPropertiesCollection.cpp
deleted file mode 100644
index dc91ed9..0000000
--- a/Source/WebCore/html/HTMLPropertiesCollection.cpp
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Copyright (c) 2011 Motorola Mobility, Inc.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation and/or
- * other materials provided with the distribution.
- *
- * Neither the name of Motorola Mobility, Inc. nor the names of its contributors may
- * be used to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(MICRODATA)
-
-#include "HTMLPropertiesCollection.h"
-
-#include "DOMSettableTokenList.h"
-#include "HTMLElement.h"
-#include "HTMLNames.h"
-#include "Node.h"
-#include "NodeTraversal.h"
-#include "PropertyNodeList.h"
-
-namespace WebCore {
-
-using namespace HTMLNames;
-
-PassRefPtr<HTMLPropertiesCollection> HTMLPropertiesCollection::create(Node* itemNode, CollectionType)
-{
-    return adoptRef(new HTMLPropertiesCollection(itemNode));
-}
-
-HTMLPropertiesCollection::HTMLPropertiesCollection(Node* itemNode)
-    : HTMLCollection(itemNode, ItemProperties, OverridesItemAfter)
-{
-}
-
-HTMLPropertiesCollection::~HTMLPropertiesCollection()
-{
-}
-
-void HTMLPropertiesCollection::updateRefElements() const
-{
-    if (isItemRefElementsCacheValid())
-        return;
-
-    m_itemRefElements.clear();
-    setItemRefElementsCacheValid();
-    toHTMLElement(ownerNode())->getItemRefElements(m_itemRefElements);
-}
-
-static Node* nextNodeWithProperty(Node* rootNode, Node* previous, Node* ownerNode)
-{
-    // An Microdata item may contain properties which in turn are items themselves. Properties can
-    // also themselves be groups of name-value pairs, by putting the itemscope attribute on the element
-    // that declares the property. If the property has an itemscope attribute specified then we need
-    // to traverse the next sibling.
-    return previous == ownerNode || (previous->isHTMLElement() && !toHTMLElement(previous)->fastHasAttribute(itemscopeAttr))
-        ? NodeTraversal::next(previous, rootNode)
-        : NodeTraversal::nextSkippingChildren(previous, rootNode);
-}
-
-Element* HTMLPropertiesCollection::virtualItemAfter(unsigned& offsetInArray, Element* previousItem) const
-{
-    while (offsetInArray < m_itemRefElements.size()) {
-        if (Element* next = virtualItemAfter(m_itemRefElements[offsetInArray], previousItem))
-            return next;
-        offsetInArray++;
-        previousItem = 0;
-    }
-    return 0;
-}
-
-HTMLElement* HTMLPropertiesCollection::virtualItemAfter(HTMLElement* rootNode, Element* previous) const
-{
-    Node* current;
-    Node* ownerNode = this->ownerNode();
-    current = previous ? nextNodeWithProperty(rootNode, previous, ownerNode) : rootNode;
-
-    for (; current; current = nextNodeWithProperty(rootNode, current, ownerNode)) {
-        if (current == ownerNode || !current->isHTMLElement())
-            continue;
-        HTMLElement* element = toHTMLElement(current);
-        if (element->fastHasAttribute(itempropAttr) && element->itemProp()->length()) {
-            return element;
-        }
-    }
-
-    return 0;
-}
-
-void HTMLPropertiesCollection::updateNameCache() const
-{
-    if (hasNameCache())
-        return;
-
-    updateRefElements();
-
-    for (unsigned i = 0; i < m_itemRefElements.size(); ++i) {
-        HTMLElement* refElement = m_itemRefElements[i];
-        for (HTMLElement* element = virtualItemAfter(refElement, 0); element; element = virtualItemAfter(refElement, element)) {
-            DOMSettableTokenList* itemProperty = element->itemProp();
-            for (unsigned propertyIndex = 0; propertyIndex < itemProperty->length(); ++propertyIndex)
-                updatePropertyCache(itemProperty->item(propertyIndex));
-        }
-    }
-
-    setHasNameCache();
-}
-
-PassRefPtr<DOMStringList> HTMLPropertiesCollection::names() const
-{
-    updateNameCache();
-    if (!m_propertyNames)
-        m_propertyNames = DOMStringList::create();
-    return m_propertyNames;
-}
-
-PassRefPtr<PropertyNodeList> HTMLPropertiesCollection::propertyNodeList(const String& name) const
-{
-    return ownerNode()->propertyNodeList(name);
-}
-
-bool HTMLPropertiesCollection::hasNamedItem(const AtomicString& name) const
-{
-    updateNameCache();
-    if (m_propertyNames)
-        return m_propertyNames->contains(name);
-    return false;
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(MICRODATA)
diff --git a/Source/WebCore/html/HTMLPropertiesCollection.h b/Source/WebCore/html/HTMLPropertiesCollection.h
deleted file mode 100644
index ae165d5..0000000
--- a/Source/WebCore/html/HTMLPropertiesCollection.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright (c) 2011 Motorola Mobility, Inc.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation and/or
- * other materials provided with the distribution.
- *
- * Neither the name of Motorola Mobility, Inc. nor the names of its contributors may
- * be used to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef HTMLPropertiesCollection_h
-#define HTMLPropertiesCollection_h
-
-#if ENABLE(MICRODATA)
-
-#include "DOMStringList.h"
-#include "HTMLCollection.h"
-
-namespace WebCore {
-
-class PropertyNodeList;
-
-class HTMLPropertiesCollection : public HTMLCollection {
-public:
-    static PassRefPtr<HTMLPropertiesCollection> create(Node*, CollectionType);
-    virtual ~HTMLPropertiesCollection();
-
-    void updateRefElements() const;
-
-    PassRefPtr<DOMStringList> names() const;
-    virtual PassRefPtr<PropertyNodeList> propertyNodeList(const String&) const;
-    virtual bool hasNamedItem(const AtomicString&) const OVERRIDE;
-
-    void invalidateCache() const
-    {
-        m_itemRefElements.clear();
-        m_propertyNames.clear();
-    }
-
-private:
-    HTMLPropertiesCollection(Node*);
-
-    virtual Element* virtualItemAfter(unsigned& offsetInArray, Element*) const OVERRIDE;
-    HTMLElement* virtualItemAfter(HTMLElement* base, Element* previous) const;
-
-    void updateNameCache() const;
-
-    void updatePropertyCache(const AtomicString& propertyName) const
-    {
-        if (!m_propertyNames)
-            m_propertyNames = DOMStringList::create();
-
-        if (!m_propertyNames->contains(propertyName))
-            m_propertyNames->append(propertyName);
-    }
-
-    mutable Vector<HTMLElement*> m_itemRefElements;
-    mutable RefPtr<DOMStringList> m_propertyNames;
-};
-
-} // namespace WebCore
-
-#endif // ENABLE(MICRODATA)
-
-#endif // HTMLPropertiesCollection_h
diff --git a/Source/WebCore/html/HTMLPropertiesCollection.idl b/Source/WebCore/html/HTMLPropertiesCollection.idl
deleted file mode 100644
index 894c4fe..0000000
--- a/Source/WebCore/html/HTMLPropertiesCollection.idl
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (c) 2011 Motorola Mobility, Inc.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation and/or
- * other materials provided with the distribution.
- *
- * Neither the name of Motorola Mobility, Inc. nor the names of its contributors may
- * be used to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-[
-    Conditional=MICRODATA,
-    IndexedGetter,
-    CustomNamedGetter
-] interface HTMLPropertiesCollection : HTMLCollection {
-    readonly attribute unsigned long length;
-    Node item(unsigned long index);
-
-    readonly attribute DOMStringList names;
-    [ImplementedAs=propertyNodeList] PropertyNodeList namedItem(DOMString name);
-};
diff --git a/Source/WebCore/html/HTMLSourceElement.cpp b/Source/WebCore/html/HTMLSourceElement.cpp
index 559c26e..e54994a 100644
--- a/Source/WebCore/html/HTMLSourceElement.cpp
+++ b/Source/WebCore/html/HTMLSourceElement.cpp
@@ -124,18 +124,6 @@
     return attribute.name() == srcAttr || HTMLElement::isURLAttribute(attribute);
 }
 
-#if ENABLE(MICRODATA)
-String HTMLSourceElement::itemValueText() const
-{
-    return getURLAttribute(srcAttr);
-}
-
-void HTMLSourceElement::setItemValueText(const String& value, ExceptionCode&)
-{
-    setAttribute(srcAttr, value);
-}
-#endif
-
 }
 
 #endif
diff --git a/Source/WebCore/html/HTMLSourceElement.h b/Source/WebCore/html/HTMLSourceElement.h
index 611e99a..3d7fa07 100644
--- a/Source/WebCore/html/HTMLSourceElement.h
+++ b/Source/WebCore/html/HTMLSourceElement.h
@@ -54,11 +54,6 @@
 
     void errorEventTimerFired(Timer<HTMLSourceElement>*);
 
-#if ENABLE(MICRODATA)
-    virtual String itemValueText() const OVERRIDE;
-    virtual void setItemValueText(const String&, ExceptionCode&) OVERRIDE;
-#endif
-
     Timer<HTMLSourceElement> m_errorEventTimer;
 };
 
diff --git a/Source/WebCore/html/HTMLTrackElement.cpp b/Source/WebCore/html/HTMLTrackElement.cpp
index 028835d..16a5c74 100644
--- a/Source/WebCore/html/HTMLTrackElement.cpp
+++ b/Source/WebCore/html/HTMLTrackElement.cpp
@@ -359,18 +359,6 @@
     return 0;
 }
 
-#if ENABLE(MICRODATA)
-String HTMLTrackElement::itemValueText() const
-{
-    return getURLAttribute(srcAttr);
-}
-
-void HTMLTrackElement::setItemValueText(const String& value, ExceptionCode&)
-{
-    setAttribute(srcAttr, value);
-}
-#endif
-
 }
 
 #endif
diff --git a/Source/WebCore/html/HTMLTrackElement.h b/Source/WebCore/html/HTMLTrackElement.h
index 701c10a..469836f 100644
--- a/Source/WebCore/html/HTMLTrackElement.h
+++ b/Source/WebCore/html/HTMLTrackElement.h
@@ -80,11 +80,6 @@
 
     void loadTimerFired(Timer<HTMLTrackElement>*);
 
-#if ENABLE(MICRODATA)
-    virtual String itemValueText() const OVERRIDE;
-    virtual void setItemValueText(const String&, ExceptionCode&) OVERRIDE;
-#endif
-
     HTMLMediaElement* mediaElement() const;
 
     // TextTrackClient
diff --git a/Source/WebCore/html/MicroDataAttributeTokenList.cpp b/Source/WebCore/html/MicroDataAttributeTokenList.cpp
deleted file mode 100644
index c912022..0000000
--- a/Source/WebCore/html/MicroDataAttributeTokenList.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (c) 2013 Motorola Mobility, Inc.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation and/or
- * other materials provided with the distribution.
- *
- * Neither the name of Motorola Mobility, Inc. nor the names of its contributors may
- * be used to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(MICRODATA)
-
-#include "MicroDataAttributeTokenList.h"
-
-#include "Element.h"
-
-namespace WebCore {
-
-MicroDataAttributeTokenList::MicroDataAttributeTokenList(Element* element, const QualifiedName& attributeName)
-    : DOMSettableTokenList()
-    , m_element(element)
-    , m_attributeName(attributeName)
-{
-}
-
-void MicroDataAttributeTokenList::setValueInternal(const AtomicString& value)
-{
-    DOMSettableTokenList::setValue(value);
-}
-
-void MicroDataAttributeTokenList::setValue(const AtomicString& value)
-{
-    m_element->setAttribute(m_attributeName, value);
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(MICRODATA)
diff --git a/Source/WebCore/html/MicroDataAttributeTokenList.h b/Source/WebCore/html/MicroDataAttributeTokenList.h
deleted file mode 100644
index 0116906..0000000
--- a/Source/WebCore/html/MicroDataAttributeTokenList.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (c) 2013 Motorola Mobility, Inc.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation and/or
- * other materials provided with the distribution.
- *
- * Neither the name of Motorola Mobility, Inc. nor the names of its contributors may
- * be used to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef MicroDataAttributeTokenList_h
-#define MicroDataAttributeTokenList_h
-
-#if ENABLE(MICRODATA)
-
-#include "DOMSettableTokenList.h"
-#include "QualifiedName.h"
-
-namespace WebCore {
-
-class Element;
-
-class MicroDataAttributeTokenList : public DOMSettableTokenList {
-public:
-    static PassRefPtr<MicroDataAttributeTokenList> create(Element* element, const QualifiedName& attributeName)
-    {
-        return adoptRef(new MicroDataAttributeTokenList(element, attributeName));
-    }
-
-    virtual Element* element() OVERRIDE { return m_element; }
-    void setValueInternal(const AtomicString&);
-
-private:
-    MicroDataAttributeTokenList(Element*, const QualifiedName&);
-
-    virtual void setValue(const AtomicString&) OVERRIDE;
-
-    Element* m_element;
-    QualifiedName m_attributeName;
-
-};
-
-} // namespace WebCore
-
-#endif // ENABLE(MICRODATA)
-
-#endif // MicroDataAttributeTokenList_h
diff --git a/Source/WebCore/html/MicroDataItemValue.cpp b/Source/WebCore/html/MicroDataItemValue.cpp
deleted file mode 100644
index c6eb463..0000000
--- a/Source/WebCore/html/MicroDataItemValue.cpp
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (c) 2011 Motorola Mobility, Inc.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation and/or
- * other materials provided with the distribution.
- *
- * Neither the name of Motorola Mobility, Inc. nor the names of its contributors may
- * be used to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(MICRODATA)
-#include "MicroDataItemValue.h"
-
-#include "Node.h"
-
-namespace WebCore {
-
-MicroDataItemValue::MicroDataItemValue(const String& string)
-    : m_type(STRING)
-    , m_string(string)
-{
-}
-
-MicroDataItemValue::MicroDataItemValue(Node* node)
-    : m_type(NODE)
-    , m_node(node)
-{
-}
-
-PassRefPtr<MicroDataItemValue> MicroDataItemValue::createFromString(const String& string)
-{
-    return adoptRef(new MicroDataItemValue(string));
-}
-
-PassRefPtr<MicroDataItemValue> MicroDataItemValue::createFromNode(Node* node)
-{
-    return adoptRef(new MicroDataItemValue(node));
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(MICRODATA)
diff --git a/Source/WebCore/html/MicroDataItemValue.h b/Source/WebCore/html/MicroDataItemValue.h
deleted file mode 100644
index e5addec..0000000
--- a/Source/WebCore/html/MicroDataItemValue.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright (c) 2011 Motorola Mobility, Inc.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation and/or
- * other materials provided with the distribution.
- *
- * Neither the name of Motorola Mobility, Inc. nor the names of its contributors may
- * be used to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef MicroDataItemValue_h
-#define MicroDataItemValue_h
-
-#if ENABLE(MICRODATA)
-
-
-#include <wtf/RefCounted.h>
-#include <wtf/RefPtr.h>
-#include <wtf/text/WTFString.h>
-
-namespace WebCore {
-
-class Node;
-
-class MicroDataItemValue : public RefCounted<MicroDataItemValue> {
-private:
-    enum Type {STRING, NODE};
-
-public:
-    static PassRefPtr<MicroDataItemValue> createFromString(const String&);
-    static PassRefPtr<MicroDataItemValue> createFromNode(Node*);
-
-    bool isNode() { return m_type == NODE; }
-    Node* getNode() { return m_node; }
-    String getString() { return m_string; }
-
-private:
-    MicroDataItemValue(const String&);
-    MicroDataItemValue(Node*);
-
-    Type m_type;
-    String m_string;
-    Node* m_node;
-};
-
-} // namespace WebCore
-
-#endif // ENABLE(MICRODATA)
-
-#endif // MicroDataItemValue_h
-
diff --git a/Source/WebCore/html/MicroDataItemValue.idl b/Source/WebCore/html/MicroDataItemValue.idl
deleted file mode 100644
index 3581181..0000000
--- a/Source/WebCore/html/MicroDataItemValue.idl
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (c) 2012 Motorola Mobility, Inc.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation and/or
- * other materials provided with the distribution.
- *
- * Neither the name of Motorola Mobility, Inc. nor the names of its contributors may
- * be used to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-[
-    Conditional=MICRODATA,
-    CustomToJSObject,
-    NoWrapperCache
-] interface MicroDataItemValue {
-};
diff --git a/Source/WebCore/page/DOMWindow.idl b/Source/WebCore/page/DOMWindow.idl
index c9ed86f..9d71aa8 100644
--- a/Source/WebCore/page/DOMWindow.idl
+++ b/Source/WebCore/page/DOMWindow.idl
@@ -340,7 +340,6 @@
     attribute DocumentConstructor Document;
     attribute NodeConstructor Node;
     attribute NodeListConstructor NodeList;
-    [Conditional=MICRODATA] attribute PropertyNodeListConstructor PropertyNodeList;
     attribute NamedNodeMapConstructor NamedNodeMap;
     attribute CharacterDataConstructor CharacterData;
     attribute AttrConstructor Attr;
@@ -436,7 +435,6 @@
     attribute HTMLAllCollectionConstructor HTMLAllCollection;
     attribute HTMLFormControlsCollectionConstructor HTMLFormControlsCollection;
     attribute HTMLOptionsCollectionConstructor HTMLOptionsCollection;
-    [Conditional=MICRODATA] attribute HTMLPropertiesCollectionConstructor HTMLPropertiesCollection;
     attribute HTMLUnknownElementConstructor HTMLUnknownElement;
 
     [CustomConstructor] attribute HTMLImageElementConstructorConstructor Image; // Usable with new operator
diff --git a/Source/WebKit/chromium/features.gypi b/Source/WebKit/chromium/features.gypi
index e46f799..3f527ba 100644
--- a/Source/WebKit/chromium/features.gypi
+++ b/Source/WebKit/chromium/features.gypi
@@ -62,7 +62,6 @@
       'ENABLE_LINK_PRERENDER=1',
       'ENABLE_MATHML=0',
       'ENABLE_MEDIA_STREAM=<(enable_webrtc)',
-      'ENABLE_MICRODATA=0',
       'ENABLE_MOUSE_CURSOR_SCALE=1',
       'ENABLE_PROXIMITY_EVENTS=0',
       'ENABLE_RESOLUTION_MEDIA_QUERY=0',
diff --git a/Source/bindings/bindings.gypi b/Source/bindings/bindings.gypi
index ca95350..820341e 100644
--- a/Source/bindings/bindings.gypi
+++ b/Source/bindings/bindings.gypi
@@ -217,7 +217,6 @@
             'v8/custom/V8MessageChannelCustom.cpp',
             'v8/custom/V8MessageEventCustom.cpp',
             'v8/custom/V8MessagePortCustom.cpp',
-            'v8/custom/V8MicroDataItemValueCustom.cpp',
             'v8/custom/V8MutationObserverCustom.cpp',
             'v8/custom/V8NamedNodeMapCustom.cpp',
             'v8/custom/V8NamedNodesCollection.cpp',
diff --git a/Source/bindings/scripts/CodeGeneratorV8.pm b/Source/bindings/scripts/CodeGeneratorV8.pm
index dbb1c56..4efa6d8 100644
--- a/Source/bindings/scripts/CodeGeneratorV8.pm
+++ b/Source/bindings/scripts/CodeGeneratorV8.pm
@@ -2738,12 +2738,7 @@
             $hasEnumerator = 0;
         }
 
-        # FIXME: implement V8HTMLPropertiesCollection::namedPropertyGetter
-        if ($interfaceName eq "HTMLPropertiesCollection") {
-            push(@implContent, "    desc->${setOn}Template()->SetNamedPropertyHandler(V8HTMLCollection::namedPropertyGetter, ");
-        } else {
-            push(@implContent, "    desc->${setOn}Template()->SetNamedPropertyHandler(${v8InterfaceName}::namedPropertyGetter, ");
-        }
+        push(@implContent, "    desc->${setOn}Template()->SetNamedPropertyHandler(${v8InterfaceName}::namedPropertyGetter, ");
         push(@implContent, $hasCustomNamedSetter ? "${v8InterfaceName}::namedPropertySetter, " : "0, ");
         # If there is a custom enumerator, there MUST be custom query to properly communicate property attributes.
         push(@implContent, $hasEnumerator ? "${v8InterfaceName}::namedPropertyQuery, " : "0, ");
@@ -2961,12 +2956,6 @@
 
         if ($function->signature->name eq "item") {
             $indexer = $function->signature;
-        }
-
-        if ($interfaceName eq "HTMLPropertiesCollection") {
-            if ($function->signature->name eq "propertyNodeList") {
-                $namedPropertyGetter = $function->signature;
-            }
         } elsif ($function->signature->name eq "namedItem") {
             $namedPropertyGetter = $function->signature;
         }
diff --git a/Source/bindings/v8/custom/V8HTMLCollectionCustom.cpp b/Source/bindings/v8/custom/V8HTMLCollectionCustom.cpp
index 6ac9edc..c0bfd0d 100644
--- a/Source/bindings/v8/custom/V8HTMLCollectionCustom.cpp
+++ b/Source/bindings/v8/custom/V8HTMLCollectionCustom.cpp
@@ -32,15 +32,12 @@
 #include "V8HTMLCollection.h"
 
 #include "HTMLCollection.h"
-#include "HTMLPropertiesCollection.h"
-#include "PropertyNodeList.h"
 #include "V8Binding.h"
 #include "V8HTMLAllCollection.h"
 #include "V8HTMLFormControlsCollection.h"
 #include "V8HTMLOptionsCollection.h"
 #include "V8NamedNodesCollection.h"
 #include "V8Node.h"
-#include "V8PropertyNodeList.h"
 
 namespace WebCore {
 
@@ -52,16 +49,6 @@
         return v8Undefined();
 
     HTMLCollection* imp = V8HTMLCollection::toNative(info.Holder());
-#if ENABLE(MICRODATA)
-    if (imp->type() == ItemProperties) {
-        if (!static_cast<HTMLPropertiesCollection*>(imp)->hasNamedItem(toWebCoreAtomicString(name)))
-            return v8Undefined();
-        RefPtr<PropertyNodeList> item = static_cast<HTMLPropertiesCollection*>(imp)->propertyNodeList(toWebCoreAtomicString(name));
-        if (!item)
-            return v8Undefined();
-        return toV8Fast(item.release(), info, imp);
-    }
-#endif
     Node* item = imp->namedItem(toWebCoreAtomicString(name));
     if (!item)
         return v8Undefined();
diff --git a/Source/bindings/v8/custom/V8HTMLElementCustom.cpp b/Source/bindings/v8/custom/V8HTMLElementCustom.cpp
index b32f806..dae4512 100644
--- a/Source/bindings/v8/custom/V8HTMLElementCustom.cpp
+++ b/Source/bindings/v8/custom/V8HTMLElementCustom.cpp
@@ -33,11 +33,6 @@
 
 #include "V8HTMLElementWrapperFactory.h"
 
-#if ENABLE(MICRODATA)
-#include "V8Binding.h"
-#include "V8MicroDataItemValue.h"
-#endif
-
 namespace WebCore {
 
 v8::Handle<v8::Object> wrap(HTMLElement* impl, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
@@ -46,21 +41,4 @@
     return createV8HTMLWrapper(impl, creationContext, isolate);
 }
 
-#if ENABLE(MICRODATA)
-v8::Handle<v8::Value> V8HTMLElement::itemValueAttrGetterCustom(v8::Local<v8::String> name, const v8::AccessorInfo& info)
-{
-    HTMLElement* impl = V8HTMLElement::toNative(info.Holder());
-    return toV8Fast(impl->itemValue().get(), info, impl);
-}
-
-void V8HTMLElement::itemValueAttrSetterCustom(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::AccessorInfo& info)
-{
-    HTMLElement* impl = V8HTMLElement::toNative(info.Holder());
-    ExceptionCode ec = 0;
-    impl->setItemValue(toWebCoreString(value), ec);
-    if (ec)
-        setDOMException(ec, info.GetIsolate());
-}
-#endif
-
 } // namespace WebCore
diff --git a/Source/bindings/v8/custom/V8MicroDataItemValueCustom.cpp b/Source/bindings/v8/custom/V8MicroDataItemValueCustom.cpp
deleted file mode 100644
index 260ae78..0000000
--- a/Source/bindings/v8/custom/V8MicroDataItemValueCustom.cpp
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (c) 2012 Motorola Mobility, Inc.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation and/or
- * other materials provided with the distribution.
- *
- * Neither the name of Motorola Mobility, Inc. nor the names of its contributors may
- * be used to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(MICRODATA)
-
-#include "V8MicroDataItemValue.h"
-
-#include "V8Binding.h"
-#include "V8Node.h"
-
-namespace WebCore {
-
-v8::Handle<v8::Value> toV8(MicroDataItemValue* itemValue, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
-{
-    if (!itemValue)
-        return v8Null(isolate);
-    if (itemValue->isNode())
-        return toV8(itemValue->getNode(), creationContext, isolate);
-    return v8String(itemValue->getString(), isolate);
-}
-
-v8::Handle<v8::Value> toV8ForMainWorld(MicroDataItemValue* itemValue, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
-{
-    return toV8(itemValue, creationContext, isolate);
-}
-
-}
-
-#endif // ENABLE(MICRODATA)