Bug 707576 - Remove nsIDOMNSElement; r=smaug
authorMs2ger <ms2ger@gmail.com>
Sun, 18 Dec 2011 11:06:23 +0100
changeset 84511 f9f6f9ed788a73e0660b0e2d1eeb4ce960b5715a
parent 84510 c3525cd1ce442bf0a965c7cd08d181e963eefda6
child 84512 fa6dc855be00e3f63f31f5dce701ba9bb4a2bc95
push id519
push userakeybl@mozilla.com
push dateWed, 01 Feb 2012 00:38:35 +0000
treeherdermozilla-beta@788ea1ef610b [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerssmaug
bugs707576
milestone11.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 707576 - Remove nsIDOMNSElement; r=smaug
content/base/src/nsGenericElement.cpp
content/base/src/nsGenericElement.h
content/html/content/test/test_bug389797.html
dom/base/nsDOMClassInfo.cpp
dom/interfaces/base/domstubs.idl
dom/interfaces/core/Makefile.in
dom/interfaces/core/nsIDOMElement.idl
dom/interfaces/core/nsIDOMNSElement.idl
dom/interfaces/html/nsIDOMHTMLAnchorElement.idl
dom/interfaces/html/nsIDOMHTMLAppletElement.idl
dom/interfaces/html/nsIDOMHTMLAreaElement.idl
dom/interfaces/html/nsIDOMHTMLAudioElement.idl
dom/interfaces/html/nsIDOMHTMLBRElement.idl
dom/interfaces/html/nsIDOMHTMLBaseElement.idl
dom/interfaces/html/nsIDOMHTMLBodyElement.idl
dom/interfaces/html/nsIDOMHTMLButtonElement.idl
dom/interfaces/html/nsIDOMHTMLCanvasElement.idl
dom/interfaces/html/nsIDOMHTMLCommandElement.idl
dom/interfaces/html/nsIDOMHTMLDListElement.idl
dom/interfaces/html/nsIDOMHTMLDataListElement.idl
dom/interfaces/html/nsIDOMHTMLDirectoryElement.idl
dom/interfaces/html/nsIDOMHTMLDivElement.idl
dom/interfaces/html/nsIDOMHTMLElement.idl
dom/interfaces/html/nsIDOMHTMLEmbedElement.idl
dom/interfaces/html/nsIDOMHTMLFieldSetElement.idl
dom/interfaces/html/nsIDOMHTMLFontElement.idl
dom/interfaces/html/nsIDOMHTMLFormElement.idl
dom/interfaces/html/nsIDOMHTMLFrameElement.idl
dom/interfaces/html/nsIDOMHTMLFrameSetElement.idl
dom/interfaces/html/nsIDOMHTMLHRElement.idl
dom/interfaces/html/nsIDOMHTMLHeadElement.idl
dom/interfaces/html/nsIDOMHTMLHeadingElement.idl
dom/interfaces/html/nsIDOMHTMLHtmlElement.idl
dom/interfaces/html/nsIDOMHTMLIFrameElement.idl
dom/interfaces/html/nsIDOMHTMLImageElement.idl
dom/interfaces/html/nsIDOMHTMLInputElement.idl
dom/interfaces/html/nsIDOMHTMLLIElement.idl
dom/interfaces/html/nsIDOMHTMLLabelElement.idl
dom/interfaces/html/nsIDOMHTMLLegendElement.idl
dom/interfaces/html/nsIDOMHTMLLinkElement.idl
dom/interfaces/html/nsIDOMHTMLMapElement.idl
dom/interfaces/html/nsIDOMHTMLMediaElement.idl
dom/interfaces/html/nsIDOMHTMLMenuElement.idl
dom/interfaces/html/nsIDOMHTMLMenuItemElement.idl
dom/interfaces/html/nsIDOMHTMLMetaElement.idl
dom/interfaces/html/nsIDOMHTMLModElement.idl
dom/interfaces/html/nsIDOMHTMLOListElement.idl
dom/interfaces/html/nsIDOMHTMLObjectElement.idl
dom/interfaces/html/nsIDOMHTMLOptGroupElement.idl
dom/interfaces/html/nsIDOMHTMLOptionElement.idl
dom/interfaces/html/nsIDOMHTMLOutputElement.idl
dom/interfaces/html/nsIDOMHTMLParagraphElement.idl
dom/interfaces/html/nsIDOMHTMLParamElement.idl
dom/interfaces/html/nsIDOMHTMLPreElement.idl
dom/interfaces/html/nsIDOMHTMLProgressElement.idl
dom/interfaces/html/nsIDOMHTMLQuoteElement.idl
dom/interfaces/html/nsIDOMHTMLScriptElement.idl
dom/interfaces/html/nsIDOMHTMLSelectElement.idl
dom/interfaces/html/nsIDOMHTMLSourceElement.idl
dom/interfaces/html/nsIDOMHTMLStyleElement.idl
dom/interfaces/html/nsIDOMHTMLTableCaptionElem.idl
dom/interfaces/html/nsIDOMHTMLTableCellElement.idl
dom/interfaces/html/nsIDOMHTMLTableColElement.idl
dom/interfaces/html/nsIDOMHTMLTableElement.idl
dom/interfaces/html/nsIDOMHTMLTableRowElement.idl
dom/interfaces/html/nsIDOMHTMLTableSectionElem.idl
dom/interfaces/html/nsIDOMHTMLTextAreaElement.idl
dom/interfaces/html/nsIDOMHTMLTitleElement.idl
dom/interfaces/html/nsIDOMHTMLUListElement.idl
dom/interfaces/html/nsIDOMHTMLUnknownElement.idl
dom/interfaces/html/nsIDOMHTMLVideoElement.idl
dom/interfaces/svg/nsIDOMSVGAElement.idl
dom/interfaces/svg/nsIDOMSVGAltGlyphElement.idl
dom/interfaces/svg/nsIDOMSVGAnimateElement.idl
dom/interfaces/svg/nsIDOMSVGAnimateMotionElement.idl
dom/interfaces/svg/nsIDOMSVGAnimateTransformElement.idl
dom/interfaces/svg/nsIDOMSVGAnimationElement.idl
dom/interfaces/svg/nsIDOMSVGCircleElement.idl
dom/interfaces/svg/nsIDOMSVGClipPathElement.idl
dom/interfaces/svg/nsIDOMSVGDefsElement.idl
dom/interfaces/svg/nsIDOMSVGDescElement.idl
dom/interfaces/svg/nsIDOMSVGElement.idl
dom/interfaces/svg/nsIDOMSVGEllipseElement.idl
dom/interfaces/svg/nsIDOMSVGFilterElement.idl
dom/interfaces/svg/nsIDOMSVGFilters.idl
dom/interfaces/svg/nsIDOMSVGForeignObjectElem.idl
dom/interfaces/svg/nsIDOMSVGGElement.idl
dom/interfaces/svg/nsIDOMSVGGradientElement.idl
dom/interfaces/svg/nsIDOMSVGImageElement.idl
dom/interfaces/svg/nsIDOMSVGLineElement.idl
dom/interfaces/svg/nsIDOMSVGMarkerElement.idl
dom/interfaces/svg/nsIDOMSVGMaskElement.idl
dom/interfaces/svg/nsIDOMSVGMetadataElement.idl
dom/interfaces/svg/nsIDOMSVGMpathElement.idl
dom/interfaces/svg/nsIDOMSVGPathElement.idl
dom/interfaces/svg/nsIDOMSVGPatternElement.idl
dom/interfaces/svg/nsIDOMSVGPolygonElement.idl
dom/interfaces/svg/nsIDOMSVGPolylineElement.idl
dom/interfaces/svg/nsIDOMSVGRectElement.idl
dom/interfaces/svg/nsIDOMSVGSVGElement.idl
dom/interfaces/svg/nsIDOMSVGScriptElement.idl
dom/interfaces/svg/nsIDOMSVGSetElement.idl
dom/interfaces/svg/nsIDOMSVGStopElement.idl
dom/interfaces/svg/nsIDOMSVGStyleElement.idl
dom/interfaces/svg/nsIDOMSVGSwitchElement.idl
dom/interfaces/svg/nsIDOMSVGSymbolElement.idl
dom/interfaces/svg/nsIDOMSVGTSpanElement.idl
dom/interfaces/svg/nsIDOMSVGTextContentElement.idl
dom/interfaces/svg/nsIDOMSVGTextElement.idl
dom/interfaces/svg/nsIDOMSVGTextPathElement.idl
dom/interfaces/svg/nsIDOMSVGTextPositionElem.idl
dom/interfaces/svg/nsIDOMSVGTitleElement.idl
dom/interfaces/svg/nsIDOMSVGUseElement.idl
dom/interfaces/xul/nsIDOMXULButtonElement.idl
dom/interfaces/xul/nsIDOMXULCheckboxElement.idl
dom/interfaces/xul/nsIDOMXULContainerElement.idl
dom/interfaces/xul/nsIDOMXULControlElement.idl
dom/interfaces/xul/nsIDOMXULDescriptionElement.idl
dom/interfaces/xul/nsIDOMXULElement.idl
dom/interfaces/xul/nsIDOMXULImageElement.idl
dom/interfaces/xul/nsIDOMXULLabelElement.idl
dom/interfaces/xul/nsIDOMXULLabeledControlEl.idl
dom/interfaces/xul/nsIDOMXULMenuListElement.idl
dom/interfaces/xul/nsIDOMXULMultSelectCntrlEl.idl
dom/interfaces/xul/nsIDOMXULPopupElement.idl
dom/interfaces/xul/nsIDOMXULSelectCntrlEl.idl
dom/interfaces/xul/nsIDOMXULSelectCntrlItemEl.idl
dom/interfaces/xul/nsIDOMXULTextboxElement.idl
dom/interfaces/xul/nsIDOMXULTreeElement.idl
extensions/widgetutils/src/nsWidgetUtils.cpp
js/xpconnect/src/dom_quickstubs.qsconf
widget/tests/TestWinTSF.cpp
--- a/content/base/src/nsGenericElement.cpp
+++ b/content/base/src/nsGenericElement.cpp
@@ -92,17 +92,16 @@
 #include "nsFrameManager.h"
 #include "nsFrameSelection.h"
 
 #include "nsBindingManager.h"
 #include "nsXBLBinding.h"
 #include "nsIXBLService.h"
 #include "nsPIDOMWindow.h"
 #include "nsPIBoxObject.h"
-#include "nsIDOMNSElement.h"
 #include "nsClientRect.h"
 #include "nsSVGUtils.h"
 #include "nsLayoutUtils.h"
 #include "nsGkAtoms.h"
 #include "nsContentUtils.h"
 #include "nsIJSContextStack.h"
 
 #include "nsIServiceManager.h"
@@ -1704,51 +1703,66 @@ nsGenericElement::GetNextElementSibling(
       return child;
     }
   }
   
   return nsnull;
 }
 
 NS_IMETHODIMP
-nsNSElementTearoff::GetFirstElementChild(nsIDOMElement** aResult)
+nsGenericElement::GetChildElementCount(PRUint32* aResult)
+{
+  *aResult = GetChildrenList()->Length(true);
+  return NS_OK;
+}
+
+// readonly attribute nsIDOMNodeList children
+NS_IMETHODIMP
+nsGenericElement::GetChildElements(nsIDOMNodeList** aResult)
+{
+  NS_ADDREF(*aResult = GetChildrenList());
+  return NS_OK;
+}
+
+NS_IMETHODIMP
+nsGenericElement::GetFirstElementChild(nsIDOMElement** aResult)
 {
   *aResult = nsnull;
 
-  nsIContent *result = mContent->GetFirstElementChild();
+  nsIContent *result = GetFirstElementChild();
 
   return result ? CallQueryInterface(result, aResult) : NS_OK;
 }
 
 NS_IMETHODIMP
-nsNSElementTearoff::GetLastElementChild(nsIDOMElement** aResult)
+nsGenericElement::GetLastElementChild(nsIDOMElement** aResult)
 {
   *aResult = nsnull;
 
-  nsIContent *result = mContent->GetLastElementChild();
+  nsIContent *result = GetLastElementChild();
 
   return result ? CallQueryInterface(result, aResult) : NS_OK;
 }
 
 NS_IMETHODIMP
-nsNSElementTearoff::GetPreviousElementSibling(nsIDOMElement** aResult)
+nsGenericElement::GetPreviousElementSibling(nsIDOMElement** aResult)
 {
   *aResult = nsnull;
 
-  nsIContent *result = mContent->GetPreviousElementSibling();
+  nsIContent *result = GetPreviousElementSibling();
 
   return result ? CallQueryInterface(result, aResult) : NS_OK;
 }
 
 NS_IMETHODIMP
-nsNSElementTearoff::GetNextElementSibling(nsIDOMElement** aResult)
+nsGenericElement::GetNextElementSibling(nsIDOMElement** aResult)
 {
   *aResult = nsnull;
 
-  nsIContent *result = mContent->GetNextElementSibling();
+  nsIContent *result = GetNextElementSibling();
 
   return result ? CallQueryInterface(result, aResult) : NS_OK;
 }
 
 nsContentList*
 nsGenericElement::GetChildrenList()
 {
   nsGenericElement::nsDOMSlots *slots = DOMSlots();
@@ -1757,123 +1771,78 @@ nsGenericElement::GetChildrenList()
     slots->mChildrenList = new nsContentList(this, kNameSpaceID_Wildcard, 
                                              nsGkAtoms::_asterix, nsGkAtoms::_asterix,
                                              false);
   }
 
   return slots->mChildrenList;
 }
 
-NS_IMETHODIMP
-nsNSElementTearoff::GetChildElementCount(PRUint32* aResult)
-{
-  return mContent->GetChildElementCount(aResult);
-}
-
-NS_IMETHODIMP
-nsNSElementTearoff::GetChildren(nsIDOMNodeList** aResult)
-{
-  return mContent->GetChildren(aResult);
-}
-
 nsIDOMDOMTokenList*
 nsGenericElement::GetClassList(nsresult *aResult)
 {
   *aResult = NS_ERROR_OUT_OF_MEMORY;
 
   nsGenericElement::nsDOMSlots *slots = DOMSlots();
 
   if (!slots->mClassList) {
     nsCOMPtr<nsIAtom> classAttr = GetClassAttributeName();
     if (!classAttr) {
       *aResult = NS_OK;
 
       return nsnull;
     }
 
     slots->mClassList = new nsDOMTokenList(this, classAttr);
-    NS_ENSURE_TRUE(slots->mClassList, nsnull);
   }
 
   *aResult = NS_OK;
 
   return slots->mClassList;
 }
 
 NS_IMETHODIMP
-nsNSElementTearoff::GetClassList(nsIDOMDOMTokenList** aResult)
+nsGenericElement::GetClassList(nsIDOMDOMTokenList** aResult)
 {
   *aResult = nsnull;
 
   nsresult rv;
-  nsIDOMDOMTokenList* list = mContent->GetClassList(&rv);
+  nsIDOMDOMTokenList* list = GetClassList(&rv);
   NS_ENSURE_TRUE(list, rv);
 
   NS_ADDREF(*aResult = list);
 
   return NS_OK;
 }
 
-void
+NS_IMETHODIMP
 nsGenericElement::SetCapture(bool aRetargetToElement)
 {
   // If there is already an active capture, ignore this request. This would
   // occur if a splitter, frame resizer, etc had already captured and we don't
   // want to override those.
   if (nsIPresShell::GetCapturingContent())
-    return;
+    return NS_OK;
 
   nsIPresShell::SetCapturingContent(this, CAPTURE_PREVENTDRAG |
     (aRetargetToElement ? CAPTURE_RETARGETTOELEMENT : 0));
+
+  return NS_OK;
 }
 
 NS_IMETHODIMP
-nsNSElementTearoff::SetCapture(bool aRetargetToElement)
-{
-  mContent->SetCapture(aRetargetToElement);
-
-  return NS_OK;
-}
-
-void
 nsGenericElement::ReleaseCapture()
 {
   if (nsIPresShell::GetCapturingContent() == this) {
     nsIPresShell::SetCapturingContent(nsnull, 0);
   }
-}
-
-NS_IMETHODIMP
-nsNSElementTearoff::ReleaseCapture()
-{
-  mContent->ReleaseCapture();
 
   return NS_OK;
 }
 
-//----------------------------------------------------------------------
-
-
-NS_IMPL_CYCLE_COLLECTION_1(nsNSElementTearoff, mContent)
-
-NS_INTERFACE_MAP_BEGIN(nsNSElementTearoff)
-  NS_INTERFACE_MAP_ENTRY(nsIDOMNSElement)
-  NS_INTERFACE_MAP_ENTRIES_CYCLE_COLLECTION(nsNSElementTearoff)
-NS_INTERFACE_MAP_END_AGGREGATED(mContent)
-
-NS_IMPL_CYCLE_COLLECTING_ADDREF(nsNSElementTearoff)
-NS_IMPL_CYCLE_COLLECTING_RELEASE(nsNSElementTearoff)
-
-NS_IMETHODIMP
-nsNSElementTearoff::GetElementsByClassName(const nsAString& aClasses,
-                                           nsIDOMNodeList** aReturn)
-{
-  return mContent->GetElementsByClassName(aClasses, aReturn);
-}
-
 nsIFrame*
 nsGenericElement::GetStyledFrame()
 {
   nsIFrame *frame = GetPrimaryFrame(Flush_Layout);
   return frame ? nsLayoutUtils::GetStyleFrame(frame) : nsnull;
 }
 
 void
@@ -1951,76 +1920,62 @@ nsGenericElement::GetScrollTop()
   nsIScrollableFrame* sf = GetScrollFrame();
 
   return sf ?
          nsPresContext::AppUnitsToIntCSSPixels(sf->GetScrollPosition().y) :
          0;
 }
 
 NS_IMETHODIMP
-nsNSElementTearoff::GetScrollTop(PRInt32* aScrollTop)
-{
-  *aScrollTop = mContent->GetScrollTop();
+nsGenericElement::GetScrollTop(PRInt32* aScrollTop)
+{
+  *aScrollTop = GetScrollTop();
 
   return NS_OK;
 }
 
-void
+NS_IMETHODIMP
 nsGenericElement::SetScrollTop(PRInt32 aScrollTop)
 {
   nsIScrollableFrame* sf = GetScrollFrame();
   if (sf) {
     nsPoint pt = sf->GetScrollPosition();
     pt.y = nsPresContext::CSSPixelsToAppUnits(aScrollTop);
     sf->ScrollTo(pt, nsIScrollableFrame::INSTANT);
   }
-}
-
-NS_IMETHODIMP
-nsNSElementTearoff::SetScrollTop(PRInt32 aScrollTop)
-{
-  mContent->SetScrollTop(aScrollTop);
-
   return NS_OK;
 }
 
 PRInt32
 nsGenericElement::GetScrollLeft()
 {
   nsIScrollableFrame* sf = GetScrollFrame();
 
   return sf ?
          nsPresContext::AppUnitsToIntCSSPixels(sf->GetScrollPosition().x) :
          0;
 }
 
 NS_IMETHODIMP
-nsNSElementTearoff::GetScrollLeft(PRInt32* aScrollLeft)
-{
-  *aScrollLeft = mContent->GetScrollLeft();
+nsGenericElement::GetScrollLeft(PRInt32* aScrollLeft)
+{
+  *aScrollLeft = GetScrollLeft();
 
   return NS_OK;
 }
 
-void
+NS_IMETHODIMP
 nsGenericElement::SetScrollLeft(PRInt32 aScrollLeft)
 {
   nsIScrollableFrame* sf = GetScrollFrame();
   if (sf) {
     nsPoint pt = sf->GetScrollPosition();
     pt.x = nsPresContext::CSSPixelsToAppUnits(aScrollLeft);
     sf->ScrollTo(pt, nsIScrollableFrame::INSTANT);
   }
-}
-
-NS_IMETHODIMP
-nsNSElementTearoff::SetScrollLeft(PRInt32 aScrollLeft)
-{
-  mContent->SetScrollLeft(aScrollLeft);
-
   return NS_OK;
 }
 
 PRInt32
 nsGenericElement::GetScrollHeight()
 {
   if (IsSVG())
     return 0;
@@ -2033,19 +1988,19 @@ nsGenericElement::GetScrollHeight()
     return rcFrame.height;
   }
 
   nscoord height = sf->GetScrollRange().height + sf->GetScrollPortRect().height;
   return nsPresContext::AppUnitsToIntCSSPixels(height);
 }
 
 NS_IMETHODIMP
-nsNSElementTearoff::GetScrollHeight(PRInt32* aScrollHeight)
-{
-  *aScrollHeight = mContent->GetScrollHeight();
+nsGenericElement::GetScrollHeight(PRInt32* aScrollHeight)
+{
+  *aScrollHeight = GetScrollHeight();
 
   return NS_OK;
 }
 
 PRInt32
 nsGenericElement::GetScrollWidth()
 {
   if (IsSVG())
@@ -2059,19 +2014,19 @@ nsGenericElement::GetScrollWidth()
     return rcFrame.width;
   }
 
   nscoord width = sf->GetScrollRange().width + sf->GetScrollPortRect().width;
   return nsPresContext::AppUnitsToIntCSSPixels(width);
 }
 
 NS_IMETHODIMP
-nsNSElementTearoff::GetScrollWidth(PRInt32 *aScrollWidth)
-{
-  *aScrollWidth = mContent->GetScrollWidth();
+nsGenericElement::GetScrollWidth(PRInt32 *aScrollWidth)
+{
+  *aScrollWidth = GetScrollWidth();
 
   return NS_OK;
 }
 
 nsRect
 nsGenericElement::GetClientAreaRect()
 {
   nsIFrame* styledFrame;
@@ -2089,86 +2044,75 @@ nsGenericElement::GetClientAreaRect()
     return styledFrame->GetPaddingRect() - styledFrame->GetPositionIgnoringScrolling();
   }
 
   // SVG nodes reach here and just return 0
   return nsRect(0, 0, 0, 0);
 }
 
 NS_IMETHODIMP
-nsNSElementTearoff::GetClientTop(PRInt32 *aClientTop)
-{
-  *aClientTop = mContent->GetClientTop();
+nsGenericElement::GetClientTop(PRInt32 *aClientTop)
+{
+  *aClientTop = GetClientTop();
   return NS_OK;
 }
 
 NS_IMETHODIMP
-nsNSElementTearoff::GetClientLeft(PRInt32 *aClientLeft)
-{
-  *aClientLeft = mContent->GetClientLeft();
+nsGenericElement::GetClientLeft(PRInt32 *aClientLeft)
+{
+  *aClientLeft = GetClientLeft();
   return NS_OK;
 }
 
 NS_IMETHODIMP
-nsNSElementTearoff::GetClientHeight(PRInt32 *aClientHeight)
-{
-  *aClientHeight = mContent->GetClientHeight();
+nsGenericElement::GetClientHeight(PRInt32 *aClientHeight)
+{
+  *aClientHeight = GetClientHeight();
   return NS_OK;
 }
 
 NS_IMETHODIMP
-nsNSElementTearoff::GetClientWidth(PRInt32 *aClientWidth)
-{
-  *aClientWidth = mContent->GetClientWidth();
+nsGenericElement::GetClientWidth(PRInt32 *aClientWidth)
+{
+  *aClientWidth = GetClientWidth();
   return NS_OK;
 }
 
-nsresult
+NS_IMETHODIMP
 nsGenericElement::GetBoundingClientRect(nsIDOMClientRect** aResult)
 {
   // Weak ref, since we addref it below
   nsClientRect* rect = new nsClientRect();
-  if (!rect)
-    return NS_ERROR_OUT_OF_MEMORY;
-
   NS_ADDREF(*aResult = rect);
   
   nsIFrame* frame = GetPrimaryFrame(Flush_Layout);
   if (!frame) {
     // display:none, perhaps? Return the empty rect
     return NS_OK;
   }
 
   nsRect r = nsLayoutUtils::GetAllInFlowRectsUnion(frame,
           nsLayoutUtils::GetContainingBlockForClientRect(frame));
   rect->SetLayoutRect(r);
   return NS_OK;
 }
 
 NS_IMETHODIMP
-nsNSElementTearoff::GetBoundingClientRect(nsIDOMClientRect** aResult)
-{
-  return mContent->GetBoundingClientRect(aResult);
-}
-
-nsresult
 nsGenericElement::GetElementsByClassName(const nsAString& aClasses,
                                          nsIDOMNodeList** aReturn)
 {
   return nsContentUtils::GetElementsByClassName(this, aClasses, aReturn);
 }
 
-nsresult
+NS_IMETHODIMP
 nsGenericElement::GetClientRects(nsIDOMClientRectList** aResult)
 {
   *aResult = nsnull;
 
   nsRefPtr<nsClientRectList> rectList = new nsClientRectList();
-  if (!rectList)
-    return NS_ERROR_OUT_OF_MEMORY;
 
   nsIFrame* frame = GetPrimaryFrame(Flush_Layout);
   if (!frame) {
     // display:none, perhaps? Return an empty list
     *aResult = rectList.forget().get();
     return NS_OK;
   }
 
@@ -2176,21 +2120,16 @@ nsGenericElement::GetClientRects(nsIDOMC
   nsLayoutUtils::GetAllInFlowRects(frame,
           nsLayoutUtils::GetContainingBlockForClientRect(frame), &builder);
   if (NS_FAILED(builder.mRV))
     return builder.mRV;
   *aResult = rectList.forget().get();
   return NS_OK;
 }
 
-NS_IMETHODIMP
-nsNSElementTearoff::GetClientRects(nsIDOMClientRectList** aResult)
-{
-  return mContent->GetClientRects(aResult);
-}
 
 //----------------------------------------------------------------------
 
 
 NS_IMPL_ISUPPORTS1(nsNodeWeakReference,
                    nsIWeakReference)
 
 nsNodeWeakReference::~nsNodeWeakReference()
@@ -4361,17 +4300,16 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
 
 NS_INTERFACE_MAP_BEGIN(nsGenericElement)
   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
   NS_INTERFACE_MAP_ENTRIES_CYCLE_COLLECTION(nsGenericElement)
   NS_INTERFACE_MAP_ENTRY(Element)
   NS_INTERFACE_MAP_ENTRY(nsIContent)
   NS_INTERFACE_MAP_ENTRY(nsINode)
   NS_INTERFACE_MAP_ENTRY(nsIDOMEventTarget)
-  NS_INTERFACE_MAP_ENTRY_TEAROFF(nsIDOMNSElement, new nsNSElementTearoff(this))
   NS_INTERFACE_MAP_ENTRY_TEAROFF(nsISupportsWeakReference,
                                  new nsNodeSupportsWeakRefTearoff(this))
   NS_INTERFACE_MAP_ENTRY_TEAROFF(nsIDOMNodeSelector,
                                  new nsNodeSelectorTearoff(this))
   NS_INTERFACE_MAP_ENTRY_TEAROFF(nsIDOMXPathNSResolver,
                                  new nsNode3Tearoff(this))
   NS_INTERFACE_MAP_ENTRY_TEAROFF(nsITouchEventReceiver,
                                  new nsTouchEventReceiverTearoff(this))
@@ -5516,22 +5454,22 @@ nsGenericElement::MozMatchesSelector(con
     matches = nsCSSRuleProcessor::SelectorListMatches(this, matchingContext,
                                                       selectorList);
   }
 
   return matches;
 }
 
 NS_IMETHODIMP
-nsNSElementTearoff::MozMatchesSelector(const nsAString& aSelector, bool* aReturn)
+nsGenericElement::MozMatchesSelector(const nsAString& aSelector, bool* aReturn)
 {
   NS_PRECONDITION(aReturn, "Null out param?");
 
   nsresult rv;
-  *aReturn = mContent->MozMatchesSelector(aSelector, &rv);
+  *aReturn = MozMatchesSelector(aSelector, &rv);
 
   return rv;
 }
 
 PRInt64
 nsINode::SizeOf() const
 {
   PRInt64 size = sizeof(*this);
@@ -5581,16 +5519,40 @@ nsGenericElement::SizeOf() const
 }
 #define TOUCH_EVENT EVENT
 #define DOCUMENT_ONLY_EVENT EVENT
 #include "nsEventNameList.h"
 #undef DOCUMENT_ONLY_EVENT
 #undef TOUCH_EVENT
 #undef EVENT
 
+NS_IMETHODIMP
+nsGenericElement::GetOnmouseenter(JSContext* cx, JS::Value* vp)
+{
+  return nsINode::GetOnmouseenter(cx, vp);
+}
+
+NS_IMETHODIMP
+nsGenericElement::SetOnmouseenter(JSContext* cx, const JS::Value& v)
+{
+  return nsINode::SetOnmouseenter(cx, v);
+}
+
+NS_IMETHODIMP
+nsGenericElement::GetOnmouseleave(JSContext* cx, JS::Value* vp)
+{
+  return nsINode::GetOnmouseleave(cx, vp);
+}
+
+NS_IMETHODIMP
+nsGenericElement::SetOnmouseleave(JSContext* cx, const JS::Value& v)
+{
+  return nsINode::SetOnmouseleave(cx, v);
+}
+
 bool
 nsINode::Contains(const nsINode* aOther) const
 {
   if (aOther == this) {
     return true;
   }
   if (!aOther ||
       OwnerDoc() != aOther->OwnerDoc() ||
--- a/content/base/src/nsGenericElement.h
+++ b/content/base/src/nsGenericElement.h
@@ -44,17 +44,16 @@
 #ifndef nsGenericElement_h___
 #define nsGenericElement_h___
 
 #include "nsCOMPtr.h"
 #include "nsAutoPtr.h"
 #include "mozilla/dom/Element.h"
 #include "nsIDOMElement.h"
 #include "nsIDOMDocumentFragment.h"
-#include "nsIDOMNSElement.h"
 #include "nsILinkHandler.h"
 #include "nsNodeUtils.h"
 #include "nsAttrAndChildArray.h"
 #include "mozFlushType.h"
 #include "nsDOMAttributeMap.h"
 #include "nsIWeakReference.h"
 #include "nsCycleCollectionParticipant.h"
 #include "nsIDocument.h"
@@ -223,31 +222,29 @@ public:
 private:
   ~nsNodeSelectorTearoff() {}
 
 private:
   nsCOMPtr<nsINode> mNode;
 };
 
 // Forward declare to allow being a friend
-class nsNSElementTearoff;
 class nsTouchEventReceiverTearoff;
 class nsInlineEventHandlersTearoff;
 
 /**
  * A generic base class for DOM elements, implementing many nsIContent,
  * nsIDOMNode and nsIDOMElement methods.
  */
 class nsGenericElement : public mozilla::dom::Element
 {
 public:
   nsGenericElement(already_AddRefed<nsINodeInfo> aNodeInfo);
   virtual ~nsGenericElement();
 
-  friend class nsNSElementTearoff;
   friend class nsTouchEventReceiverTearoff;
   friend class nsInlineEventHandlersTearoff;
 
   NS_DECL_CYCLE_COLLECTING_ISUPPORTS
 
   NS_DECL_DOM_MEMORY_REPORTER_SIZEOF
 
   /**
@@ -420,47 +417,18 @@ public:
     return nsINode::RemoveChild(aOldChild, aReturn);
   }
   nsresult AppendChild(nsIDOMNode* aNewChild, nsIDOMNode** aReturn)
   {
     return InsertBefore(aNewChild, nsnull, aReturn);
   }
 
   // nsIDOMElement method implementation
-  NS_IMETHOD GetTagName(nsAString& aTagName);
-  NS_IMETHOD GetAttribute(const nsAString& aName,
-                          nsAString& aReturn);
-  NS_IMETHOD SetAttribute(const nsAString& aName,
-                          const nsAString& aValue);
-  NS_IMETHOD RemoveAttribute(const nsAString& aName);
-  NS_IMETHOD GetAttributeNode(const nsAString& aName,
-                              nsIDOMAttr** aReturn);
-  NS_IMETHOD SetAttributeNode(nsIDOMAttr* aNewAttr, nsIDOMAttr** aReturn);
-  NS_IMETHOD RemoveAttributeNode(nsIDOMAttr* aOldAttr, nsIDOMAttr** aReturn);
-  NS_IMETHOD GetElementsByTagName(const nsAString& aTagname,
-                                  nsIDOMNodeList** aReturn);
-  NS_IMETHOD GetAttributeNS(const nsAString& aNamespaceURI,
-                            const nsAString& aLocalName,
-                            nsAString& aReturn);
-  NS_IMETHOD SetAttributeNS(const nsAString& aNamespaceURI,
-                            const nsAString& aQualifiedName,
-                            const nsAString& aValue);
-  NS_IMETHOD RemoveAttributeNS(const nsAString& aNamespaceURI,
-                               const nsAString& aLocalName);
-  NS_IMETHOD GetAttributeNodeNS(const nsAString& aNamespaceURI,
-                                const nsAString& aLocalName,
-                                nsIDOMAttr** aReturn);
-  NS_IMETHOD SetAttributeNodeNS(nsIDOMAttr* aNewAttr, nsIDOMAttr** aReturn);
-  NS_IMETHOD GetElementsByTagNameNS(const nsAString& aNamespaceURI,
-                                    const nsAString& aLocalName,
-                                    nsIDOMNodeList** aReturn);
-  NS_IMETHOD HasAttribute(const nsAString& aName, bool* aReturn);
-  NS_IMETHOD HasAttributeNS(const nsAString& aNamespaceURI,
-                            const nsAString& aLocalName,
-                            bool* aReturn);
+  NS_DECL_NSIDOMELEMENT
+
   nsresult CloneNode(bool aDeep, nsIDOMNode **aResult)
   {
     return nsNodeUtils::CloneNodeImpl(this, aDeep, true, aResult);
   }
 
   //----------------------------------------
 
   /**
@@ -582,25 +550,18 @@ public:
 
     return slots ? slots->mAttributeMap.get() : nsnull;
   }
 
   virtual void RecompileScriptEventListeners()
   {
   }
 
-  // nsIDOMNSElement methods
-  nsresult GetElementsByClassName(const nsAString& aClasses,
-                                  nsIDOMNodeList** aReturn);
-  nsresult GetClientRects(nsIDOMClientRectList** aResult);
-  nsresult GetBoundingClientRect(nsIDOMClientRect** aResult);
   PRInt32 GetScrollTop();
-  void SetScrollTop(PRInt32 aScrollTop);
   PRInt32 GetScrollLeft();
-  void SetScrollLeft(PRInt32 aScrollLeft);
   PRInt32 GetScrollHeight();
   PRInt32 GetScrollWidth();
   PRInt32 GetClientTop()
   {
     return nsPresContext::AppUnitsToIntCSSPixels(GetClientAreaRect().y);
   }
   PRInt32 GetClientLeft()
   {
@@ -613,45 +574,17 @@ public:
   PRInt32 GetClientWidth()
   {
     return nsPresContext::AppUnitsToIntCSSPixels(GetClientAreaRect().width);
   }
   nsIContent* GetFirstElementChild();
   nsIContent* GetLastElementChild();
   nsIContent* GetPreviousElementSibling();
   nsIContent* GetNextElementSibling();
-  nsresult GetChildElementCount(PRUint32* aResult)
-  {
-    nsContentList* list = GetChildrenList();
-    if (!list) {
-      *aResult = 0;
-
-      return NS_ERROR_OUT_OF_MEMORY;
-    }
-
-    *aResult = list->Length(true);
-
-    return NS_OK;
-  }
-  nsresult GetChildren(nsIDOMNodeList** aResult)
-  {
-    nsContentList* list = GetChildrenList();
-    if (!list) {
-      *aResult = nsnull;
-
-      return NS_ERROR_OUT_OF_MEMORY;
-    }
-
-    NS_ADDREF(*aResult = list);
-
-    return NS_OK;
-  }
   nsIDOMDOMTokenList* GetClassList(nsresult *aResult);
-  void SetCapture(bool aRetargetToElement);
-  void ReleaseCapture();
   bool MozMatchesSelector(const nsAString& aSelector, nsresult* aResult);
 
   /**
    * Get the attr info for the given namespace ID and attribute name.  The
    * namespace ID must not be kNameSpaceID_Unknown and the name must not be
    * null.  Note that this can only return info on attributes that actually
    * live on this element (and is only virtual to handle XUL prototypes).  That
    * is, this should only be called from methods that only care about attrs
@@ -1034,37 +967,16 @@ nsresult                                
   DOMCI_DATA(_interface, _class)                                        \
   nsXPCClassInfo* _class::GetClassInfo()                                \
   {                                                                     \
     return static_cast<nsXPCClassInfo*>(                                \
       NS_GetDOMClassInfoInstance(eDOMClassInfo_##_interface##_id));     \
   }
 
 /**
- * Yet another tearoff class for nsGenericElement
- * to implement additional interfaces
- */
-class nsNSElementTearoff : public nsIDOMNSElement
-{
-public:
-  NS_DECL_CYCLE_COLLECTING_ISUPPORTS
-
-  NS_DECL_NSIDOMNSELEMENT
-
-  NS_DECL_CYCLE_COLLECTION_CLASS(nsNSElementTearoff)
-
-  nsNSElementTearoff(nsGenericElement *aContent) : mContent(aContent)
-  {
-  }
-
-private:
-  nsRefPtr<nsGenericElement> mContent;
-};
-
-/**
  * Tearoff class to implement nsITouchEventReceiver
  */
 class nsTouchEventReceiverTearoff : public nsITouchEventReceiver
 {
 public:
   NS_DECL_CYCLE_COLLECTING_ISUPPORTS
 
   NS_FORWARD_NSITOUCHEVENTRECEIVER(mElement->)
--- a/content/html/content/test/test_bug389797.html
+++ b/content/html/content/test/test_bug389797.html
@@ -26,18 +26,17 @@ var interfacesNonClassinfo = {};
 function getClassName(tag) {
   return "HTML" + classInfos[tag] + "Element";
 }
 
 function HTML_TAG(aTagName, aImplClass) {
   allTags.push(aTagName);
   classInfos[aTagName] = aImplClass;
   interfaces[aTagName] =
-    [ "nsIDOMNSElement",
-      "nsIDOMEventTarget",
+    [ "nsIDOMEventTarget",
       "nsIDOMElementCSSInlineStyle",
       "nsIDOMNodeSelector",
       "nsITouchEventReceiver",
       "nsIInlineEventHandlers" ];
 
   // Some interfaces don't appear in classinfo because other interfaces that
   // inherit from them do.
   interfacesNonClassinfo[aTagName] =
--- a/dom/base/nsDOMClassInfo.cpp
+++ b/dom/base/nsDOMClassInfo.cpp
@@ -135,17 +135,16 @@
 #include "nsDOMError.h"
 #include "nsIDOMDOMException.h"
 #include "nsIDOMNode.h"
 #include "nsIDOMNodeList.h"
 #include "nsIDOMNamedNodeMap.h"
 #include "nsIDOMDOMStringList.h"
 #include "nsIDOMDOMTokenList.h"
 #include "nsIDOMDOMSettableTokenList.h"
-#include "nsIDOMNSElement.h"
 
 #include "nsDOMStringMap.h"
 
 // HTMLFormElement helper includes
 #include "nsIForm.h"
 #include "nsIFormControl.h"
 #include "nsIDOMHTMLFormElement.h"
 #include "nsIDOMHTMLCollection.h"
@@ -2248,17 +2247,16 @@ nsDOMClassInfo::RegisterExternalClasses(
     DOM_CLASSINFO_MAP_ENTRY(nsIInlineEventHandlers)                           \
     DOM_CLASSINFO_MAP_CONDITIONAL_ENTRY(nsIDOMDocumentTouch,                  \
                                         nsDOMTouchEvent::PrefEnabled())
 
 
 #define DOM_CLASSINFO_GENERIC_HTML_MAP_ENTRIES                                \
     DOM_CLASSINFO_MAP_ENTRY(nsIDOMElementCSSInlineStyle)                      \
     DOM_CLASSINFO_MAP_ENTRY(nsIDOMEventTarget)                                \
-    DOM_CLASSINFO_MAP_ENTRY(nsIDOMNSElement)                                  \
     DOM_CLASSINFO_MAP_ENTRY(nsIDOMNodeSelector)                               \
     DOM_CLASSINFO_MAP_ENTRY(nsIInlineEventHandlers)                           \
     DOM_CLASSINFO_MAP_CONDITIONAL_ENTRY(nsITouchEventReceiver,                \
                                         nsDOMTouchEvent::PrefEnabled())
 
 #define DOM_CLASSINFO_EVENT_MAP_ENTRIES                                       \
     DOM_CLASSINFO_MAP_ENTRY(nsIDOMEvent)                                      \
     DOM_CLASSINFO_MAP_ENTRY(nsIDOMNSEvent)                                    \
@@ -2425,17 +2423,16 @@ nsDOMClassInfo::Init()
   DOM_CLASSINFO_MAP_BEGIN(DocumentFragment, nsIDOMDocumentFragment)
     DOM_CLASSINFO_MAP_ENTRY(nsIDOMDocumentFragment)
     DOM_CLASSINFO_MAP_ENTRY(nsIDOMNodeSelector)
     DOM_CLASSINFO_MAP_ENTRY(nsIDOMEventTarget)
   DOM_CLASSINFO_MAP_END
 
   DOM_CLASSINFO_MAP_BEGIN(Element, nsIDOMElement)
     DOM_CLASSINFO_MAP_ENTRY(nsIDOMElement)
-    DOM_CLASSINFO_MAP_ENTRY(nsIDOMNSElement)
     DOM_CLASSINFO_MAP_ENTRY(nsIDOMEventTarget)
     DOM_CLASSINFO_MAP_ENTRY(nsIDOMNodeSelector)
     DOM_CLASSINFO_MAP_ENTRY(nsIInlineEventHandlers)
     DOM_CLASSINFO_MAP_CONDITIONAL_ENTRY(nsITouchEventReceiver,
                                         nsDOMTouchEvent::PrefEnabled())
   DOM_CLASSINFO_MAP_END
 
   DOM_CLASSINFO_MAP_BEGIN(Attr, nsIDOMAttr)
@@ -2958,17 +2955,16 @@ nsDOMClassInfo::Init()
     DOM_CLASSINFO_MAP_ENTRY(nsIDOMDocument)
     DOM_CLASSINFO_MAP_ENTRY(nsIDOMXULDocument)
     DOM_CLASSINFO_DOCUMENT_MAP_ENTRIES
   DOM_CLASSINFO_MAP_END
 
   DOM_CLASSINFO_MAP_BEGIN(XULElement, nsIDOMXULElement)
     DOM_CLASSINFO_MAP_ENTRY(nsIDOMXULElement)
     DOM_CLASSINFO_MAP_ENTRY(nsIDOMEventTarget)
-    DOM_CLASSINFO_MAP_ENTRY(nsIDOMNSElement)
     DOM_CLASSINFO_MAP_ENTRY(nsIDOMElementCSSInlineStyle)
     DOM_CLASSINFO_MAP_ENTRY(nsIDOMNodeSelector)
     DOM_CLASSINFO_MAP_ENTRY(nsIInlineEventHandlers)
     DOM_CLASSINFO_MAP_CONDITIONAL_ENTRY(nsITouchEventReceiver,
                                         nsDOMTouchEvent::PrefEnabled())
   DOM_CLASSINFO_MAP_END
 
   DOM_CLASSINFO_MAP_BEGIN(XULCommandDispatcher, nsIDOMXULCommandDispatcher)
@@ -3062,17 +3058,16 @@ nsDOMClassInfo::Init()
   DOM_CLASSINFO_MAP_BEGIN(BeforeUnloadEvent, nsIDOMBeforeUnloadEvent)
     DOM_CLASSINFO_MAP_ENTRY(nsIDOMBeforeUnloadEvent)
     DOM_CLASSINFO_EVENT_MAP_ENTRIES
   DOM_CLASSINFO_MAP_END
 
 #define DOM_CLASSINFO_SVG_ELEMENT_MAP_ENTRIES                           \
     DOM_CLASSINFO_MAP_ENTRY(nsIDOMEventTarget)                          \
     DOM_CLASSINFO_MAP_ENTRY(nsIDOMSVGElement)                           \
-    DOM_CLASSINFO_MAP_ENTRY(nsIDOMNSElement)                            \
     DOM_CLASSINFO_MAP_ENTRY(nsIDOMNodeSelector)                         \
     DOM_CLASSINFO_MAP_ENTRY(nsIInlineEventHandlers)                     \
     DOM_CLASSINFO_MAP_CONDITIONAL_ENTRY(nsITouchEventReceiver,          \
                                         nsDOMTouchEvent::PrefEnabled())
 
 #define DOM_CLASSINFO_SVG_GRAPHIC_ELEMENT_MAP_ENTRIES \
     DOM_CLASSINFO_MAP_ENTRY(nsIDOMSVGLocatable)       \
     DOM_CLASSINFO_MAP_ENTRY(nsIDOMSVGTransformable)   \
@@ -4009,17 +4004,16 @@ nsDOMClassInfo::Init()
   DOM_CLASSINFO_MAP_BEGIN(MozTouchEvent, nsIDOMMozTouchEvent)
     DOM_CLASSINFO_MAP_ENTRY(nsIDOMMozTouchEvent)
     DOM_CLASSINFO_MAP_ENTRY(nsIDOMMouseEvent)
     DOM_CLASSINFO_UI_EVENT_MAP_ENTRIES
   DOM_CLASSINFO_MAP_END
 
   DOM_CLASSINFO_MAP_BEGIN_NO_CLASS_IF(MathMLElement, nsIDOMElement)
     DOM_CLASSINFO_MAP_ENTRY(nsIDOMElement)
-    DOM_CLASSINFO_MAP_ENTRY(nsIDOMNSElement)
     DOM_CLASSINFO_MAP_ENTRY(nsIDOMEventTarget)
     DOM_CLASSINFO_MAP_ENTRY(nsIDOMNodeSelector)
     DOM_CLASSINFO_MAP_ENTRY(nsIInlineEventHandlers)
     DOM_CLASSINFO_MAP_CONDITIONAL_ENTRY(nsITouchEventReceiver,
                                         nsDOMTouchEvent::PrefEnabled())
   DOM_CLASSINFO_MAP_END
 
   DOM_CLASSINFO_MAP_BEGIN(WebGLRenderingContext, nsIDOMWebGLRenderingContext)
--- a/dom/interfaces/base/domstubs.idl
+++ b/dom/interfaces/base/domstubs.idl
@@ -53,17 +53,16 @@ interface nsIDOMAttr;
 interface nsIDOMCDATASection;
 interface nsIDOMCharacterData;
 interface nsIDOMComment;
 interface nsIDOMDOMImplementation;
 interface nsIDOMDocument;
 interface nsIDOMDocumentFragment;
 interface nsIDOMDocumentType;
 interface nsIDOMElement;
-interface nsIDOMNSElement;
 interface nsIDOMNamedNodeMap;
 interface nsIDOMNode;
 interface nsIDOMNodeList;
 interface nsIDOMProcessingInstruction;
 interface nsIDOMText;
 interface nsIDOMDOMStringList;
 interface nsIDOMDOMTokenList;
 interface nsIDOMClientRect;
--- a/dom/interfaces/core/Makefile.in
+++ b/dom/interfaces/core/Makefile.in
@@ -63,16 +63,15 @@ SDK_XPIDLSRCS =                         
 	nsIDOMProcessingInstruction.idl		\
 	nsIDOMText.idl				\
 	$(NULL)
 XPIDLSRCS =                                     \
 	nsIDOMDOMStringList.idl			\
 	nsIDOMXMLDocument.idl			\
 	nsIDOMUserDataHandler.idl		\
 	nsIDOMNSEditableElement.idl		\
-	nsIDOMNSElement.idl			\
 	nsIDOMNodeSelector.idl			\
 	nsIDOMDOMTokenList.idl			\
 	nsIDOMDOMSettableTokenList.idl	\
 	nsIInlineEventHandlers.idl              \
 	$(NULL)
 
 include $(topsrcdir)/config/rules.mk
--- a/dom/interfaces/core/nsIDOMElement.idl
+++ b/dom/interfaces/core/nsIDOMElement.idl
@@ -17,16 +17,18 @@
  * The Initial Developer of the Original Code is
  * Netscape Communications Corporation.
  * Portions created by the Initial Developer are Copyright (C) 2000
  * the Initial Developer. All Rights Reserved.
  *
  * Contributor(s):
  *   Vidur Apparao <vidur@netscape.com> (original author)
  *   Johnny Stenback <jst@netscape.com>
+ *   Robert Sayre <sayrer@gmail.com>
+ *   Ms2ger <ms2ger@gmail.com>
  *
  * Alternatively, the contents of this file may be used under the terms of
  * either of the GNU General Public License Version 2 or later (the "GPL"),
  * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
  * in which case the provisions of the GPL or the LGPL are applicable instead
  * of those above. If you wish to allow use of your version of this file only
  * under the terms of either the GPL or the LGPL, and not to allow others to
  * use your version of this file under the terms of the MPL, indicate your
@@ -39,57 +41,182 @@
 
 #include "nsIDOMNode.idl"
 
 /**
  * The nsIDOMElement interface represents an element in an HTML or 
  * XML document. 
  *
  * For more information on this interface please see 
- * http://www.w3.org/TR/DOM-Level-2-Core/
+ * http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#interface-element
  */
 
-[scriptable, uuid(1f249e8b-7b41-44c0-a8d5-15298c1198cd)]
+[scriptable, uuid(f561753a-1d4f-40c1-b147-ea955fc6fd94)]
 interface nsIDOMElement : nsIDOMNode
 {
   readonly attribute DOMString        tagName;
+
+  /**
+   * Returns a DOMTokenList object reflecting the class attribute.
+   */
+  readonly attribute nsIDOMDOMTokenList classList;
+
   DOMString          getAttribute(in DOMString name);
-  void               setAttribute(in DOMString name, 
-                                  in DOMString value)
-                                        raises(DOMException);
-  void               removeAttribute(in DOMString name)
-                                        raises(DOMException);
-  nsIDOMAttr         getAttributeNode(in DOMString name);
-  nsIDOMAttr         setAttributeNode(in nsIDOMAttr newAttr)
-                                        raises(DOMException);
-  nsIDOMAttr         removeAttributeNode(in nsIDOMAttr oldAttr)
-                                        raises(DOMException);
-  nsIDOMNodeList     getElementsByTagName(in DOMString name);
-  // Introduced in DOM Level 2:
   DOMString          getAttributeNS(in DOMString namespaceURI, 
                                     in DOMString localName);
-  // Introduced in DOM Level 2:
+  void               setAttribute(in DOMString name, 
+                                  in DOMString value);
   void               setAttributeNS(in DOMString namespaceURI, 
                                     in DOMString qualifiedName, 
-                                    in DOMString value)
-                                        raises(DOMException);
-  // Introduced in DOM Level 2:
+                                    in DOMString value);
+  void               removeAttribute(in DOMString name);
   void               removeAttributeNS(in DOMString namespaceURI, 
-                                       in DOMString localName)
-                                        raises(DOMException);
-  // Introduced in DOM Level 2:
-  nsIDOMAttr         getAttributeNodeNS(in DOMString namespaceURI, 
-                                        in DOMString localName);
-  // Introduced in DOM Level 2:
-  nsIDOMAttr         setAttributeNodeNS(in nsIDOMAttr newAttr)
-                                        raises(DOMException);
-  // Introduced in DOM Level 2:
-  nsIDOMNodeList     getElementsByTagNameNS(in DOMString namespaceURI, 
-                                            in DOMString localName);
-  // Introduced in DOM Level 2:
+                                       in DOMString localName);
   boolean            hasAttribute(in DOMString name);
-  // Introduced in DOM Level 2:
   boolean            hasAttributeNS(in DOMString namespaceURI, 
                                     in DOMString localName);
 
+  // Obsolete methods.
+  nsIDOMAttr         getAttributeNode(in DOMString name);
+  nsIDOMAttr         setAttributeNode(in nsIDOMAttr newAttr);
+  nsIDOMAttr         removeAttributeNode(in nsIDOMAttr oldAttr);
+  nsIDOMAttr         getAttributeNodeNS(in DOMString namespaceURI, 
+                                        in DOMString localName);
+  nsIDOMAttr         setAttributeNodeNS(in nsIDOMAttr newAttr)
+                                        raises(DOMException);
+
+  nsIDOMNodeList     getElementsByTagName(in DOMString name);
+  nsIDOMNodeList     getElementsByTagNameNS(in DOMString namespaceURI, 
+                                            in DOMString localName);
+  /**
+   * Retrieve elements matching all classes listed in a
+   * space-separated string.
+   */
+  nsIDOMNodeList getElementsByClassName(in DOMString classes);
+
+  /**
+   * Returns a live nsIDOMNodeList of the current child elements.
+   */
+  [binaryname(ChildElements)]
+  readonly attribute nsIDOMNodeList children;
+  /**
+   * Similar as the attributes on nsIDOMNode, but navigates just elements
+   * rather than all nodes.
+   */
+  readonly attribute nsIDOMElement firstElementChild;
+  readonly attribute nsIDOMElement lastElementChild;
+  readonly attribute nsIDOMElement previousElementSibling;
+  readonly attribute nsIDOMElement nextElementSibling;
+  /**
+   * Returns the number of child nodes that are nsIDOMElements.
+   */
+  readonly attribute unsigned long childElementCount;
+
+
+  // HTML
   [implicit_jscontext] attribute jsval onmouseenter;
   [implicit_jscontext] attribute jsval onmouseleave;
+
+
+  // CSSOM View
+  /**
+   * Retrieve a list of rectangles, one for each CSS border-box associated with
+   * the element. The coordinates are in CSS pixels, and relative to
+   * the top-left of the document's viewport, unless the document
+   * has an SVG foreignobject ancestor, in which case the coordinates are
+   * relative to the top-left of the content box of the nearest SVG foreignobject
+   * ancestor. The coordinates are calculated as if every scrollable element
+   * is scrolled to its default position.
+   *
+   * Note: the boxes of overflowing children do not affect these rectangles.
+   * Note: some elements have empty CSS boxes. Those return empty rectangles,
+   * but the coordinates may still be meaningful.
+   * Note: some elements have no CSS boxes (including display:none elements,
+   * HTML AREA elements, and SVG elements that do not render). Those return
+   * an empty list.
+   */
+  nsIDOMClientRectList getClientRects();
+
+  /**
+   * Returns the union of all rectangles in the getClientRects() list. Empty
+   * rectangles are ignored, except that if all rectangles are empty,
+   * we return an empty rectangle positioned at the top-left of the first
+   * rectangle in getClientRects().
+   */
+  nsIDOMClientRect getBoundingClientRect();
+
+  /**
+   * The vertical scroll position of the element, or 0 if the element is not
+   * scrollable. This property may be assigned a value to change the
+   * vertical scroll position.
+   */
+  attribute long             scrollTop;
+
+  /**
+   * The horizontal scroll position of the element, or 0 if the element is not
+   * scrollable. This property may be assigned a value to change the
+   * horizontal scroll position.
+   */
+  attribute long             scrollLeft;
+
+  /**
+   * The width of the scrollable area of the element. If the element is not
+   * scrollable, scrollWidth is equivalent to the offsetWidth.
+   */
+  readonly attribute long             scrollWidth;
+
+  /**
+   * The height of the scrollable area of the element. If the element is not
+   * scrollable, scrollHeight is equivalent to the offsetHeight.
+   */
+  readonly attribute long             scrollHeight;
+
+  /**
+   * The height in CSS pixels of the element's top border.
+   */
+  readonly attribute long             clientTop;
+
+  /**
+   * The width in CSS pixels of the element's left border and scrollbar
+   * if it is present on the left side.
+   */
+  readonly attribute long             clientLeft;
+
+  /**
+   * The height in CSS pixels of the element's padding box. If the element is
+   * scrollable, the scroll bars are included inside this width.
+   */
+  readonly attribute long             clientWidth;
+
+  /**
+   * The width in CSS pixels of the element's padding box. If the element is
+   * scrollable, the scroll bars are included inside this height.
+   */
+  readonly attribute long             clientHeight;
+
+
+  // Selectors API
+  /**
+   * Returns whether this element would be selected by the given selector
+   * string.
+   *
+   * See <http://dev.w3.org/2006/webapi/selectors-api2/#matchesselector>
+   */
+  boolean mozMatchesSelector([Null(Stringify)] in DOMString selector);
+
+
+  // Proprietary extensions
+  /**
+   * Set this during a mousedown event to grab and retarget all mouse events
+   * to this element until the mouse button is released or releaseCapture is
+   * called. If retargetToElement is true, then all events are targetted at
+   * this element. If false, events can also fire at descendants of this
+   * element.
+   * 
+   */
+  void setCapture([optional] in boolean retargetToElement);
+
+  /**
+   * If this element has captured the mouse, release the capture. If another
+   * element has captured the mouse, this method has no effect.
+   */
+  void releaseCapture();
 };
deleted file mode 100644
--- a/dom/interfaces/core/nsIDOMNSElement.idl
+++ /dev/null
@@ -1,179 +0,0 @@
-/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is mozilla.org code.
- *
- * The Initial Developer of the Original Code is
- * Mozilla Foundation.
- * Portions created by the Initial Developer are Copyright (C) 2007
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *   Robert Sayre <sayrer@gmail.com> (original author)
- *
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either of the GNU General Public License Version 2 or later (the "GPL"),
- * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
-#include "domstubs.idl"
-
-[scriptable, uuid(D894B5D4-44F3-422A-A220-7763C12D4A94)]
-interface nsIDOMNSElement : nsISupports
-{
-  /*
-   * Retrieve elements matching all classes listed in a
-   * space-separated string.
-   *
-   * See <http://whatwg.org/specs/web-apps/current-work/>
-   */
-  nsIDOMNodeList getElementsByClassName(in DOMString classes);
-
-  /*
-   * Retrieve a list of rectangles, one for each CSS border-box associated with
-   * the element. The coordinates are in CSS pixels, and relative to
-   * the top-left of the document's viewport, unless the document
-   * has an SVG foreignobject ancestor, in which case the coordinates are
-   * relative to the top-left of the content box of the nearest SVG foreignobject
-   * ancestor. The coordinates are calculated as if every scrollable element
-   * is scrolled to its default position.
-   *
-   * Note: the boxes of overflowing children do not affect these rectangles.
-   * Note: some elements have empty CSS boxes. Those return empty rectangles,
-   * but the coordinates may still be meaningful.
-   * Note: some elements have no CSS boxes (including display:none elements,
-   * HTML AREA elements, and SVG elements that do not render). Those return
-   * an empty list.
-   */
-  nsIDOMClientRectList getClientRects();
-
-  /**
-   * Returns the union of all rectangles in the getClientRects() list. Empty
-   * rectangles are ignored, except that if all rectangles are empty,
-   * we return an empty rectangle positioned at the top-left of the first
-   * rectangle in getClientRects().
-   */
-  nsIDOMClientRect getBoundingClientRect();
-
-  /**
-   * The vertical scroll position of the element, or 0 if the element is not
-   * scrollable. This property may be assigned a value to change the
-   * vertical scroll position.
-   */
-  attribute long             scrollTop;
-
-  /**
-   * The horizontal scroll position of the element, or 0 if the element is not
-   * scrollable. This property may be assigned a value to change the
-   * horizontal scroll position.
-   */
-  attribute long             scrollLeft;
-
-  /**
-   * The height of the scrollable area of the element. If the element is not
-   * scrollable, scrollHeight is equivalent to the offsetHeight.
-   */
-  readonly attribute long             scrollHeight;
-
-  /**
-   * The width of the scrollable area of the element. If the element is not
-   * scrollable, scrollWidth is equivalent to the offsetWidth.
-   */
-  readonly attribute long             scrollWidth;
-
-  /**
-   * The height in CSS pixels of the element's top border.
-   */
-  readonly attribute long             clientTop;
-
-  /**
-   * The width in CSS pixels of the element's left border and scrollbar
-   * if it is present on the left side.
-   */
-  readonly attribute long             clientLeft;
-
-  /**
-   * The width in CSS pixels of the element's padding box. If the element is
-   * scrollable, the scroll bars are included inside this height.
-   */
-  readonly attribute long             clientHeight;
-
-  /**
-   * The height in CSS pixels of the element's padding box. If the element is
-   * scrollable, the scroll bars are included inside this width.
-   */
-  readonly attribute long             clientWidth;
-
-  /**
-   * Similar as the attributes on nsIDOMNode, but navigates just elements
-   * rather than all nodes.
-   *
-   * Defined by the ElementTraversal spec.
-   */
-  readonly attribute nsIDOMElement firstElementChild;
-  readonly attribute nsIDOMElement lastElementChild;
-  readonly attribute nsIDOMElement previousElementSibling;
-  readonly attribute nsIDOMElement nextElementSibling;
-
-  /**
-   * Returns the number of child nodes that are nsIDOMElements.
-   *
-   * Defined by the ElementTraversal spec.
-   */
-  readonly attribute unsigned long childElementCount;
-  
-  /**
-   * Returns a live nsIDOMNodeList of the current child elements.
-   */
-  readonly attribute nsIDOMNodeList children;
-
-  /**
-   * Returns a DOMTokenList object reflecting the class attribute.
-   */
-  readonly attribute nsIDOMDOMTokenList classList;
-
-  /**
-   * Set this during a mousedown event to grab and retarget all mouse events
-   * to this element until the mouse button is released or releaseCapture is
-   * called. If retargetToElement is true, then all events are targetted at
-   * this element. If false, events can also fire at descendants of this
-   * element.
-   * 
-   */
-  void setCapture([optional] in boolean retargetToElement);
-
-  /**
-   * If this element has captured the mouse, release the capture. If another
-   * element has captured the mouse, this method has no effect.
-   */
-  void releaseCapture();
-
-  /**
-   * Returns whether this element would be selected by the given selector
-   * string.
-   *
-   * See <http://dev.w3.org/2006/webapi/selectors-api2/>
-   */
-  boolean mozMatchesSelector([Null(Stringify)] in DOMString selector);
-};
--- a/dom/interfaces/html/nsIDOMHTMLAnchorElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLAnchorElement.idl
@@ -45,17 +45,17 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(bcb54394-d9f8-4bcb-bbbb-eca9826cdbca)]
+[scriptable, uuid(44a9c8e1-2c95-41e4-86f1-96033a452a4d)]
 interface nsIDOMHTMLAnchorElement : nsIDOMHTMLElement
 {
            attribute DOMString        href;
            attribute DOMString        target;
 
            attribute DOMString        ping;
 
            attribute DOMString        rel;
--- a/dom/interfaces/html/nsIDOMHTMLAppletElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLAppletElement.idl
@@ -45,17 +45,17 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(a06bca18-791f-474e-a031-bf6c2bd14994)]
+[scriptable, uuid(962eefd6-8728-4626-82b4-b008aaca00d4)]
 interface nsIDOMHTMLAppletElement : nsIDOMHTMLElement
 {
            attribute DOMString        align;
            attribute DOMString        alt;
            attribute DOMString        archive;
            attribute DOMString        code;
            attribute DOMString        codeBase;
            attribute DOMString        height;
--- a/dom/interfaces/html/nsIDOMHTMLAreaElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLAreaElement.idl
@@ -45,17 +45,17 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(7e607c36-aecc-4dee-a93a-95e22a374bfb)]
+[scriptable, uuid(293d9f21-df16-4706-91d5-f6381f9db554)]
 interface nsIDOMHTMLAreaElement : nsIDOMHTMLElement
 {
            attribute DOMString        alt;
            attribute DOMString        coords;
            attribute DOMString        shape;
            attribute DOMString        href;
            attribute DOMString        target;
 
--- a/dom/interfaces/html/nsIDOMHTMLAudioElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLAudioElement.idl
@@ -47,17 +47,17 @@
  * <audio> element.
  *
  * For more information on this interface, please see
  * http://www.whatwg.org/specs/web-apps/current-work/#audio
  *
  * @status UNDER_DEVELOPMENT
  */
 
-[scriptable, uuid(756e2792-b937-4a70-bd1f-9d6820473e7e)]
+[scriptable, uuid(c74b835f-bb68-4ab3-a02c-08152cbb09fa)]
 interface nsIDOMHTMLAudioElement : nsIDOMHTMLMediaElement
 {
   // Setup the audio stream for writing
   void mozSetup(in PRUint32 channels, in PRUint32 rate);
 
   // Write audio to the audio stream
   [implicit_jscontext]
   unsigned long mozWriteAudio(in jsval data);
--- a/dom/interfaces/html/nsIDOMHTMLBRElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLBRElement.idl
@@ -45,13 +45,13 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(7eefd466-7c4d-499a-a076-e33204e69dc3)]
+[scriptable, uuid(595249b7-c889-4e3b-9bc2-a309cab26319)]
 interface nsIDOMHTMLBRElement : nsIDOMHTMLElement
 {
            attribute DOMString        clear;
 };
--- a/dom/interfaces/html/nsIDOMHTMLBaseElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLBaseElement.idl
@@ -45,14 +45,14 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(e55cd224-b603-4976-892a-20b11d469394)]
+[scriptable, uuid(9b845be3-5097-42ec-a3d1-a4082dd7ad8d)]
 interface nsIDOMHTMLBaseElement : nsIDOMHTMLElement
 {
            attribute DOMString        href;
            attribute DOMString        target;
 };
--- a/dom/interfaces/html/nsIDOMHTMLBodyElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLBodyElement.idl
@@ -49,17 +49,17 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(6c377d44-a5d1-4f0f-860a-9858d2cb5679)]
+[scriptable, uuid(fbc08701-776e-47d8-8b14-12b27aadc180)]
 interface nsIDOMHTMLBodyElement : nsIDOMHTMLElement
 {
            attribute DOMString        aLink;
            attribute DOMString        background;
            attribute DOMString        bgColor;
            attribute DOMString        link;
            attribute DOMString        text;
            attribute DOMString        vLink;
--- a/dom/interfaces/html/nsIDOMHTMLButtonElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLButtonElement.idl
@@ -47,17 +47,17 @@
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
 interface nsIDOMValidityState;
 
-[scriptable, uuid(79f034f0-5c13-4101-9598-412e1eac1986)]
+[scriptable, uuid(1de3c266-5dc3-4438-8537-379879bfa425)]
 interface nsIDOMHTMLButtonElement : nsIDOMHTMLElement
 {
            attribute boolean               autofocus;
            attribute boolean               disabled;
   readonly attribute nsIDOMHTMLFormElement form;
            attribute DOMString             formAction;
            attribute DOMString             formEnctype;
            attribute DOMString             formMethod;
--- a/dom/interfaces/html/nsIDOMHTMLCanvasElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLCanvasElement.idl
@@ -50,17 +50,17 @@
  * http://www.whatwg.org/specs/web-apps/current-work/#graphics
  *
  * @status UNDER_DEVELOPMENT
  */
 
 interface nsIDOMFile;
 interface nsIVariant;
 
-[scriptable, uuid(dbbeeba1-3c20-4d9d-ac82-98b69fd819a9)]
+[scriptable, uuid(8cddbc86-f384-40ac-835b-fe3e00630cad)]
 interface nsIDOMHTMLCanvasElement : nsIDOMHTMLElement
 {
   attribute unsigned long width;
   attribute unsigned long height;
   attribute boolean mozOpaque;
 
   nsISupports getContext(in DOMString contextId,
                          [optional] in jsval contextOptions);
--- a/dom/interfaces/html/nsIDOMHTMLCommandElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLCommandElement.idl
@@ -41,17 +41,17 @@
  * <command> element.
  *
  * For more information on this interface, please see
  * http://www.whatwg.org/specs/web-apps/current-work/#the-command-element
  *
  * @status UNDER_DEVELOPMENT
  */
 
-[scriptable, uuid(13032f74-4150-4768-ab5e-51f4de39a300)]
+[scriptable, uuid(cd779d00-7b8a-4c2c-baeb-45c09d9b6728)]
 interface nsIDOMHTMLCommandElement : nsIDOMHTMLElement
 {
            attribute DOMString        type;
            attribute DOMString        label;
            attribute DOMString        icon;
            attribute boolean          disabled;
            attribute boolean          defaultChecked;
            attribute boolean          checked;
--- a/dom/interfaces/html/nsIDOMHTMLDListElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLDListElement.idl
@@ -45,13 +45,13 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(50e9ff30-0982-4074-bc65-313f41be8624)]
+[scriptable, uuid(be500158-e7b4-468e-8a02-9cb5b699dfc3)]
 interface nsIDOMHTMLDListElement : nsIDOMHTMLElement
 {
            attribute boolean          compact;
 };
--- a/dom/interfaces/html/nsIDOMHTMLDataListElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLDataListElement.idl
@@ -44,14 +44,14 @@
  * For more information on this interface, please see
  * http://www.whatwg.org/specs/web-apps/current-work/#the-datalist-element
  *
  * @status UNDER_DEVELOPMENT
  */
 
 interface nsIDOMHTMLCollection;
 
-[scriptable, uuid(3bace78b-9eca-4990-a5d6-9c2b8c32cc8a)]
+[scriptable, uuid(e81861c0-8522-4e5b-8d3c-869cce3db4b9)]
 interface nsIDOMHTMLDataListElement : nsIDOMHTMLElement
 {
   readonly attribute nsIDOMHTMLCollection options;
 };
 
--- a/dom/interfaces/html/nsIDOMHTMLDirectoryElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLDirectoryElement.idl
@@ -45,13 +45,13 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(a99e86ae-7761-4145-b8a4-5a91186051f1)]
+[scriptable, uuid(296eb015-904f-456c-a55c-ac7c828536a4)]
 interface nsIDOMHTMLDirectoryElement : nsIDOMHTMLElement
 {
            attribute boolean          compact;
 };
--- a/dom/interfaces/html/nsIDOMHTMLDivElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLDivElement.idl
@@ -45,13 +45,13 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(6815b902-8e04-49dd-977b-0a8785e5ffaf)]
+[scriptable, uuid(37ac66bd-a7ba-4280-93bb-889f1f94494b)]
 interface nsIDOMHTMLDivElement : nsIDOMHTMLElement
 {
            attribute DOMString        align;
 };
--- a/dom/interfaces/html/nsIDOMHTMLElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLElement.idl
@@ -48,17 +48,17 @@ interface nsIDOMHTMLMenuElement;
  * tree.
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
-[scriptable, uuid(4eccf8a3-8bf5-43f3-a728-f5b632f7db3a)]
+[scriptable, uuid(3de9f8c1-5d76-4d2e-b6b9-334c6eb0c113)]
 interface nsIDOMHTMLElement : nsIDOMElement
 {
   // metadata attributes
            attribute DOMString        id;
            attribute DOMString        title;
            attribute DOMString        lang;
            attribute DOMString        dir;
            attribute DOMString        className;
--- a/dom/interfaces/html/nsIDOMHTMLEmbedElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLEmbedElement.idl
@@ -42,17 +42,17 @@
 /**
  * The nsIDOMHTMLEmbedElement interface is the interface to a [X]HTML
  * embed element.
  *
  * For more information on this interface, please see
  * http://www.whatwg.org/specs/web-apps/current-work/#the-embed-element
  */
 
-[scriptable, uuid(940a15c2-0d48-4186-b4d8-067fa1ce5675)]
+[scriptable, uuid(8e3d4e85-27e8-4ba1-b837-248a01a60002)]
 interface nsIDOMHTMLEmbedElement : nsIDOMHTMLElement
 {
            attribute DOMString        align;
            attribute DOMString        height;
            attribute DOMString        name;
            attribute DOMString        src;
            attribute DOMString        type;
            attribute DOMString        width;
--- a/dom/interfaces/html/nsIDOMHTMLFieldSetElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLFieldSetElement.idl
@@ -47,17 +47,17 @@
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
 interface nsIDOMValidityState;
 
-[scriptable, uuid(781ae103-b030-4aad-b2d5-96e5c2317dec)]
+[scriptable, uuid(91f19c37-4763-4963-a38a-ce3101fd3729)]
 interface nsIDOMHTMLFieldSetElement : nsIDOMHTMLElement
 {
            attribute boolean                disabled;
   readonly attribute nsIDOMHTMLFormElement  form;
            attribute DOMString              name;
 
   readonly attribute DOMString              type;
 
--- a/dom/interfaces/html/nsIDOMHTMLFontElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLFontElement.idl
@@ -45,15 +45,15 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(1c9778ee-a49c-40ee-9b93-c0ff15630431)]
+[scriptable, uuid(e044a106-3f5c-44d6-a49a-a0a0b8eb1b56)]
 interface nsIDOMHTMLFontElement : nsIDOMHTMLElement
 {
            attribute DOMString        color;
            attribute DOMString        face;
            attribute DOMString        size;
 };
--- a/dom/interfaces/html/nsIDOMHTMLFormElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLFormElement.idl
@@ -45,17 +45,17 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(d873b251-6f96-4e70-baf5-aaa935aabe59)]
+[scriptable, uuid(b0fa651a-134c-4b20-ba4d-35b956a4fc50)]
 interface nsIDOMHTMLFormElement : nsIDOMHTMLElement
 {
            attribute DOMString            acceptCharset;
            attribute DOMString            action;
            attribute DOMString            autocomplete;
            attribute DOMString            enctype;
            attribute DOMString            encoding;
            attribute DOMString            method;
--- a/dom/interfaces/html/nsIDOMHTMLFrameElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLFrameElement.idl
@@ -45,17 +45,17 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(318fdc4a-3fca-4099-94aa-c9a1c30ca2b9)]
+[scriptable, uuid(4b529afd-ada8-4a2c-a70b-a4e2ead2329d)]
 interface nsIDOMHTMLFrameElement : nsIDOMHTMLElement
 {
            attribute DOMString        frameBorder;
            attribute DOMString        longDesc;
            attribute DOMString        marginHeight;
            attribute DOMString        marginWidth;
            attribute DOMString        name;
            attribute boolean          noResize;
--- a/dom/interfaces/html/nsIDOMHTMLFrameSetElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLFrameSetElement.idl
@@ -49,17 +49,17 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(6eefbe6d-182c-42e9-9850-af1892b6f2e4)]
+[scriptable, uuid(7df308ed-97bc-4646-b827-c74ba98c3132)]
 interface nsIDOMHTMLFrameSetElement : nsIDOMHTMLElement
 {
            attribute DOMString        cols;
            attribute DOMString        rows;
 
            [implicit_jscontext] attribute jsval            onafterprint;
            [implicit_jscontext] attribute jsval            onbeforeprint;
            [implicit_jscontext] attribute jsval            onbeforeunload;
--- a/dom/interfaces/html/nsIDOMHTMLHRElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLHRElement.idl
@@ -46,17 +46,17 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(b94bff8f-dfa7-4dd8-8d97-c301dd9de729)]
+[scriptable, uuid(cc4919f4-3123-4e03-a49c-82abaad84f2f)]
 interface nsIDOMHTMLHRElement : nsIDOMHTMLElement
 {
            attribute DOMString        align;
            attribute boolean          noShade;
            attribute DOMString        size;
            attribute DOMString        width;
            attribute DOMString        color;
 };
--- a/dom/interfaces/html/nsIDOMHTMLHeadElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLHeadElement.idl
@@ -45,12 +45,12 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(628fe597-6408-4387-9fcb-75381e2b2dd0)]
+[scriptable, uuid(dcffcf96-c4be-4c4d-a8db-05ca19212053)]
 interface nsIDOMHTMLHeadElement : nsIDOMHTMLElement
 {
 };
--- a/dom/interfaces/html/nsIDOMHTMLHeadingElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLHeadingElement.idl
@@ -45,13 +45,13 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(964c94b0-5571-44e7-9b29-f81c6ea7828a)]
+[scriptable, uuid(bf25942d-acb2-4a88-87b3-ebd498a60158)]
 interface nsIDOMHTMLHeadingElement : nsIDOMHTMLElement
 {
            attribute DOMString        align;
 };
--- a/dom/interfaces/html/nsIDOMHTMLHtmlElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLHtmlElement.idl
@@ -45,13 +45,13 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(4bafbc15-aa88-4021-9ad6-e14189b7227b)]
+[scriptable, uuid(11064dea-f7bb-4e92-88a9-54a5cacb9bb8)]
 interface nsIDOMHTMLHtmlElement : nsIDOMHTMLElement
 {
            attribute DOMString        version;
 };
--- a/dom/interfaces/html/nsIDOMHTMLIFrameElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLIFrameElement.idl
@@ -45,17 +45,17 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(5ef30718-fe45-43a2-a478-a9e3cbf3a118)]
+[scriptable, uuid(d4e870bd-452c-4860-b93c-f4ee00ba33f6)]
 interface nsIDOMHTMLIFrameElement : nsIDOMHTMLElement
 {
            attribute DOMString        align;
            attribute DOMString        frameBorder;
            attribute DOMString        height;
            attribute DOMString        longDesc;
            attribute DOMString        marginHeight;
            attribute DOMString        marginWidth;
--- a/dom/interfaces/html/nsIDOMHTMLImageElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLImageElement.idl
@@ -45,17 +45,17 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(56d9191f-5a94-432f-af70-6fccdeaf614b)]
+[scriptable, uuid(3ed7023f-24be-4cd6-984c-c182a6b67bf9)]
 interface nsIDOMHTMLImageElement : nsIDOMHTMLElement
 {
            attribute DOMString        alt;
            attribute DOMString        src;
            attribute DOMString        crossOrigin;
            attribute DOMString        useMap;
            attribute boolean          isMap;
            attribute unsigned long    width;
--- a/dom/interfaces/html/nsIDOMHTMLInputElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLInputElement.idl
@@ -49,17 +49,17 @@ interface nsIDOMValidityState;
   *
   * This interface is trying to follow the DOM Level 2 HTML specification:
   * http://www.w3.org/TR/DOM-Level-2-HTML/
   *
   * with changes from the work-in-progress WHATWG HTML specification:
   * http://www.whatwg.org/specs/web-apps/current-work/
   */
 
-[scriptable, uuid(7330cd35-c930-4f45-ae61-f5380c30222d)]
+[scriptable, uuid(6b1175a5-70dd-4c26-be99-9e780c32550d)]
 interface nsIDOMHTMLInputElement : nsIDOMHTMLElement
 {
            attribute DOMString             accept;
            attribute DOMString             alt;
 
            attribute DOMString             autocomplete;
            attribute boolean               autofocus;
            attribute boolean               defaultChecked;
--- a/dom/interfaces/html/nsIDOMHTMLLIElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLLIElement.idl
@@ -45,14 +45,14 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(85b15d13-be6d-4653-9c70-22a13d510247)]
+[scriptable, uuid(681be589-da8b-4bf9-a7e0-6f29a5ac91bb)]
 interface nsIDOMHTMLLIElement : nsIDOMHTMLElement
 {
            attribute DOMString           type;
            attribute long                value;
 };
--- a/dom/interfaces/html/nsIDOMHTMLLabelElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLLabelElement.idl
@@ -45,15 +45,15 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(ddbca449-625d-467c-a22d-7887474f9eb9)]
+[scriptable, uuid(9f176054-6e79-4235-b4b9-061beddb4ac4)]
 interface nsIDOMHTMLLabelElement : nsIDOMHTMLElement
 {
   readonly attribute nsIDOMHTMLFormElement form;
            attribute DOMString             htmlFor;
   readonly attribute nsIDOMHTMLElement     control;
 };
--- a/dom/interfaces/html/nsIDOMHTMLLegendElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLLegendElement.idl
@@ -45,14 +45,14 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(dac72753-6919-414b-b771-9e1e86e7749c)]
+[scriptable, uuid(0482fb35-dba0-4675-bf7b-aed33b575f38)]
 interface nsIDOMHTMLLegendElement : nsIDOMHTMLElement
 {
   readonly attribute nsIDOMHTMLFormElement form;
            attribute DOMString             align;
 };
--- a/dom/interfaces/html/nsIDOMHTMLLinkElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLLinkElement.idl
@@ -45,17 +45,17 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(2ece79f4-83d7-499c-946f-ae9ab93147b7)]
+[scriptable, uuid(0c8d524d-d3fc-44dd-8f6a-59069e33ded4)]
 interface nsIDOMHTMLLinkElement : nsIDOMHTMLElement
 {
            attribute boolean          disabled;
            attribute DOMString        charset;
            attribute DOMString        href;
            attribute DOMString        hreflang;
            attribute DOMString        media;
            attribute DOMString        rel;
--- a/dom/interfaces/html/nsIDOMHTMLMapElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLMapElement.idl
@@ -45,14 +45,14 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(c919bc49-bd49-4b89-ba70-5c74c4ef504a)]
+[scriptable, uuid(b99c31bc-76d0-43bc-a912-f839ec89c829)]
 interface nsIDOMHTMLMapElement : nsIDOMHTMLElement
 {
   readonly attribute nsIDOMHTMLCollection areas;
            attribute DOMString            name;
 };
--- a/dom/interfaces/html/nsIDOMHTMLMediaElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLMediaElement.idl
@@ -52,17 +52,17 @@
 
 // undef the GetCurrentTime macro defined in WinBase.h from the MS Platform SDK
 %{C++
 #ifdef GetCurrentTime
 #undef GetCurrentTime
 #endif
 %}
 
-[scriptable, uuid(ea1eff7e-daa5-4d35-a6e4-64f3ee8302cf)]  
+[scriptable, uuid(1f312b70-c1e1-40ca-94d4-5f70cac773da)]  
 interface nsIDOMHTMLMediaElement : nsIDOMHTMLElement
 {
   // error state
   readonly attribute nsIDOMMediaError error;
 
   // network state
            attribute DOMString src;
   readonly attribute DOMString currentSrc;
--- a/dom/interfaces/html/nsIDOMHTMLMenuElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLMenuElement.idl
@@ -45,16 +45,16 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(06d48250-45e0-4f26-9a07-d9b5a3f08bb6)]
+[scriptable, uuid(321392c8-9eb1-47db-a41c-5dc466949e8a)]
 interface nsIDOMHTMLMenuElement : nsIDOMHTMLElement
 {
            attribute boolean          compact;
 
            attribute DOMString        type;
            attribute DOMString        label;
 };
--- a/dom/interfaces/html/nsIDOMHTMLMenuItemElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLMenuItemElement.idl
@@ -38,12 +38,12 @@
 
 /**
  * The nsIDOMHTMLMenuItemElement interface is the interface to a HTML
  * <menuitem> element.
  *
  * @status UNDER_DEVELOPMENT
  */
 
-[scriptable, uuid(4680ec24-94f0-4eb7-9413-98f9a857de72)]
+[scriptable, uuid(66a84ce5-2346-42ca-b6e4-7cc8ec9e621d)]
 interface nsIDOMHTMLMenuItemElement : nsIDOMHTMLCommandElement
 {
 };
--- a/dom/interfaces/html/nsIDOMHTMLMetaElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLMetaElement.idl
@@ -45,16 +45,16 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(db476657-5f59-4e29-84a6-50afe6f85ac7)]
+[scriptable, uuid(1817a7fa-6f13-44f8-8a45-7f8f1fe7c252)]
 interface nsIDOMHTMLMetaElement : nsIDOMHTMLElement
 {
            attribute DOMString        content;
            attribute DOMString        httpEquiv;
            attribute DOMString        name;
            attribute DOMString        scheme;
 };
--- a/dom/interfaces/html/nsIDOMHTMLModElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLModElement.idl
@@ -45,14 +45,14 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(170733d4-aad5-4f6e-86c0-94845ea6116d)]
+[scriptable, uuid(40552a5e-7fea-42cb-b65d-4d8c0827d03c)]
 interface nsIDOMHTMLModElement : nsIDOMHTMLElement
 {
            attribute DOMString        cite;
            attribute DOMString        dateTime;
 };
--- a/dom/interfaces/html/nsIDOMHTMLOListElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLOListElement.idl
@@ -45,15 +45,15 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(31a5f083-59a6-41c3-8a0b-e58e484c6516)]
+[scriptable, uuid(08a25a61-f2a3-4eff-b208-ad05805e62e7)]
 interface nsIDOMHTMLOListElement : nsIDOMHTMLElement
 {
            attribute boolean          compact;
            attribute long             start;
            attribute DOMString        type;
 };
--- a/dom/interfaces/html/nsIDOMHTMLObjectElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLObjectElement.idl
@@ -47,17 +47,17 @@
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
 interface nsIDOMValidityState;
 
-[scriptable, uuid(40037f4a-5bae-476f-977b-bbd8e78aaefe)]
+[scriptable, uuid(dbb14d7b-05ce-4abd-a980-9aedede612af)]
 interface nsIDOMHTMLObjectElement : nsIDOMHTMLElement
 {
   readonly attribute nsIDOMHTMLFormElement form;
            attribute DOMString             code;
            attribute DOMString             align;
            attribute DOMString             archive;
            attribute DOMString             border;
            attribute DOMString             codeBase;
--- a/dom/interfaces/html/nsIDOMHTMLOptGroupElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLOptGroupElement.idl
@@ -45,14 +45,14 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(ab55d67a-aabb-4441-b182-8ff2bd7d157e)]
+[scriptable, uuid(45685a23-a6c0-48d3-83f9-7b3bba1bd995)]
 interface nsIDOMHTMLOptGroupElement : nsIDOMHTMLElement
 {
            attribute boolean          disabled;
            attribute DOMString        label;
 };
--- a/dom/interfaces/html/nsIDOMHTMLOptionElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLOptionElement.idl
@@ -45,17 +45,17 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(7c5bf0ac-6230-4ee0-8b82-e7ebf211af03)]
+[scriptable, uuid(ec3cfb59-a945-4821-8ea6-2448970e7639)]
 interface nsIDOMHTMLOptionElement : nsIDOMHTMLElement
 {
            attribute boolean               disabled;
   readonly attribute nsIDOMHTMLFormElement form;
            attribute DOMString             label;
            attribute boolean               defaultSelected;
            attribute boolean               selected;
            attribute DOMString             value;
--- a/dom/interfaces/html/nsIDOMHTMLOutputElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLOutputElement.idl
@@ -45,17 +45,17 @@
  * http://www.whatwg.org/specs/web-apps/current-work/#the-output-element
  *
  * @status UNDER_DEVELOPMENT
  */
 
 interface nsIDOMDOMSettableTokenList;
 interface nsIDOMValidityState;
 
-[scriptable, uuid(f2074cdb-19cb-447a-935c-9f4402dc1b5e)]
+[scriptable, uuid(8f321988-6fe2-4714-8ba9-12c819fea2ed)]
 interface nsIDOMHTMLOutputElement : nsIDOMHTMLElement
 {
   readonly attribute nsIDOMDOMSettableTokenList htmlFor;
   readonly attribute nsIDOMHTMLFormElement      form;
            attribute DOMString                  name;
 
   readonly attribute DOMString                  type;
            attribute DOMString                  defaultValue;
--- a/dom/interfaces/html/nsIDOMHTMLParagraphElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLParagraphElement.idl
@@ -45,13 +45,13 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(e4f498f4-e3c5-46fe-92d0-c9957ccab530)]
+[scriptable, uuid(5874cbcf-8a14-49d6-ac5f-52d3dc6df529)]
 interface nsIDOMHTMLParagraphElement : nsIDOMHTMLElement
 {
            attribute DOMString        align;
 };
--- a/dom/interfaces/html/nsIDOMHTMLParamElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLParamElement.idl
@@ -45,16 +45,16 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(d832b1ac-9bb6-4df0-9d9e-f7c040759672)]
+[scriptable, uuid(1f0685fb-bf49-4c39-b08d-7d75b1e5e493)]
 interface nsIDOMHTMLParamElement : nsIDOMHTMLElement
 {
            attribute DOMString        name;
            attribute DOMString        type;
            attribute DOMString        value;
            attribute DOMString        valueType;
 };
--- a/dom/interfaces/html/nsIDOMHTMLPreElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLPreElement.idl
@@ -45,13 +45,13 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(f4088dff-649c-4eff-a3a4-dbd6333cdc44)]
+[scriptable, uuid(1b24b515-7227-40dc-ad53-ad2a55d281d4)]
 interface nsIDOMHTMLPreElement : nsIDOMHTMLElement
 {
            attribute long             width;
 };
--- a/dom/interfaces/html/nsIDOMHTMLProgressElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLProgressElement.idl
@@ -42,17 +42,17 @@
  * <progress> element.
  *
  * For more information on this interface, please see
  * http://www.whatwg.org/specs/web-apps/current-work/#the-progress-element
  *
  * @status UNDER_DEVELOPMENT
  */
 
-[scriptable, uuid(9b1d2263-b60f-4d18-b4d1-66e8c3867c79)]
+[scriptable, uuid(d74f904b-d3cd-47c3-a863-753fe22c19ab)]
 interface nsIDOMHTMLProgressElement : nsIDOMHTMLElement
 {
            attribute double value;
            attribute double max;
   readonly attribute double position;
   readonly attribute nsIDOMHTMLFormElement form;
   /**
    * The labels attribute will be done with bug 567740.
--- a/dom/interfaces/html/nsIDOMHTMLQuoteElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLQuoteElement.idl
@@ -45,13 +45,13 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(55643647-2eda-4a45-af55-b2ba6c40c5f5)]
+[scriptable, uuid(9b20c533-a94f-4644-9763-1f414ebbe9b1)]
 interface nsIDOMHTMLQuoteElement : nsIDOMHTMLElement
 {
            attribute DOMString        cite;
 };
--- a/dom/interfaces/html/nsIDOMHTMLScriptElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLScriptElement.idl
@@ -45,17 +45,17 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(4b6a0957-5466-4134-8a0a-dd7e4675c106)]
+[scriptable, uuid(8b79bf24-d127-4b63-a798-f44bee76204d)]
 interface nsIDOMHTMLScriptElement : nsIDOMHTMLElement
 {
            attribute DOMString        src;
            attribute boolean          async;
            attribute boolean          defer;
            attribute DOMString        type;
            attribute DOMString        charset;
            attribute DOMString        text;
--- a/dom/interfaces/html/nsIDOMHTMLSelectElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLSelectElement.idl
@@ -48,17 +48,17 @@
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
 interface nsIDOMValidityState;
 
-[scriptable, uuid(98f111e0-2b7e-4abd-984b-2cc1d174fe44)]
+[scriptable, uuid(6f0a4fee-3aea-4bb7-85cb-d4881a55ca43)]
 interface nsIDOMHTMLSelectElement : nsIDOMHTMLElement
 {
            attribute boolean                     autofocus;
            attribute boolean                     disabled;
   readonly attribute nsIDOMHTMLFormElement       form;
            attribute boolean                     multiple;
            attribute DOMString                   name;
            attribute long                        size;
--- a/dom/interfaces/html/nsIDOMHTMLSourceElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLSourceElement.idl
@@ -43,14 +43,14 @@
  * <source> element.
  *
  * For more information on this interface, please see
  * http://www.whatwg.org/specs/web-apps/current-work/#source
  *
  * @status UNDER_DEVELOPMENT
  */
 
-[scriptable, uuid(c49d9a78-fa02-49c9-b239-9cd51e99f866)]
+[scriptable, uuid(df8ecfef-92e5-419e-81d4-900a7cf3c3c3)]
 interface nsIDOMHTMLSourceElement : nsIDOMHTMLElement
 {
            attribute DOMString src;
            attribute DOMString type;
 };
--- a/dom/interfaces/html/nsIDOMHTMLStyleElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLStyleElement.idl
@@ -45,15 +45,15 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(247fc8c4-92f3-427b-af6f-41b13f28287d)]
+[scriptable, uuid(04c29aaa-2239-42a9-ade0-0ba3134c1a8e)]
 interface nsIDOMHTMLStyleElement : nsIDOMHTMLElement
 {
            attribute boolean          disabled;
            attribute DOMString        media;
            attribute DOMString        type;
 };
--- a/dom/interfaces/html/nsIDOMHTMLTableCaptionElem.idl
+++ b/dom/interfaces/html/nsIDOMHTMLTableCaptionElem.idl
@@ -45,13 +45,13 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(db0e641f-ba2b-4c67-8da1-4e418cc5fbf7)]
+[scriptable, uuid(22cfd967-a21d-4bed-a759-0928ff4dfcd0)]
 interface nsIDOMHTMLTableCaptionElement : nsIDOMHTMLElement
 {
            attribute DOMString        align;
 };
--- a/dom/interfaces/html/nsIDOMHTMLTableCellElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLTableCellElement.idl
@@ -45,17 +45,17 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(4caa7af0-fec4-44c1-9a81-e1f14166e60c)]
+[scriptable, uuid(61bf360a-a6b7-4928-96de-b54742f8b4b8)]
 interface nsIDOMHTMLTableCellElement : nsIDOMHTMLElement
 {
   readonly attribute long             cellIndex;
            attribute DOMString        abbr;
            attribute DOMString        align;
            attribute DOMString        axis;
            attribute DOMString        bgColor;
            attribute DOMString        ch;
--- a/dom/interfaces/html/nsIDOMHTMLTableColElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLTableColElement.idl
@@ -45,17 +45,17 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(9a4d1f6a-fb19-4886-b0d8-dcd201566580)]
+[scriptable, uuid(d933a77b-35f3-41ec-b73f-8ae80bb7cf73)]
 interface nsIDOMHTMLTableColElement : nsIDOMHTMLElement
 {
            attribute DOMString        align;
            attribute DOMString        ch;
            attribute DOMString        chOff;
            attribute long             span;
            attribute DOMString        vAlign;
            attribute DOMString        width;
--- a/dom/interfaces/html/nsIDOMHTMLTableElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLTableElement.idl
@@ -45,17 +45,17 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(0f809b97-9311-45c4-a44e-7145f354438b)]
+[scriptable, uuid(7b9d43a6-7e9e-4618-970b-29eb3547d506)]
 interface nsIDOMHTMLTableElement : nsIDOMHTMLElement
 {
   // Modified in DOM Level 2:
            attribute nsIDOMHTMLTableCaptionElement caption;
                                              // raises(DOMException) on setting
 
   // Modified in DOM Level 2:
            attribute nsIDOMHTMLTableSectionElement tHead;
--- a/dom/interfaces/html/nsIDOMHTMLTableRowElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLTableRowElement.idl
@@ -45,17 +45,17 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(d24a80d4-491d-4e36-9349-afd3c6999b3e)]
+[scriptable, uuid(f76a1d42-25b9-41b9-a58e-7d934e1be0a2)]
 interface nsIDOMHTMLTableRowElement : nsIDOMHTMLElement
 {
   // Modified in DOM Level 2:
   readonly attribute long                 rowIndex;
   // Modified in DOM Level 2:
   readonly attribute long                 sectionRowIndex;
   // Modified in DOM Level 2:
   readonly attribute nsIDOMHTMLCollection cells;
--- a/dom/interfaces/html/nsIDOMHTMLTableSectionElem.idl
+++ b/dom/interfaces/html/nsIDOMHTMLTableSectionElem.idl
@@ -45,17 +45,17 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(6acc106e-96a2-4519-8f3a-142ebbdc1bb1)]
+[scriptable, uuid(4940c93c-b83e-4101-b9de-c33139cc5a3a)]
 interface nsIDOMHTMLTableSectionElement : nsIDOMHTMLElement
 {
            attribute DOMString            align;
            attribute DOMString            ch;
            attribute DOMString            chOff;
            attribute DOMString            vAlign;
   readonly attribute nsIDOMHTMLCollection rows;
   // Modified in DOM Level 2:
--- a/dom/interfaces/html/nsIDOMHTMLTextAreaElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLTextAreaElement.idl
@@ -48,17 +48,17 @@ interface nsIDOMValidityState;
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(16db703d-4816-440c-bcb3-c1ae0cae6532)]
+[scriptable, uuid(0ad0571c-f8ba-44e2-b5aa-5e1c93fae7c0)]
 interface nsIDOMHTMLTextAreaElement : nsIDOMHTMLElement
 {
            attribute boolean               autofocus;
            attribute unsigned long         cols;
            attribute boolean               disabled;
   readonly attribute nsIDOMHTMLFormElement form;
            attribute long                  maxLength;
            attribute DOMString             name;
--- a/dom/interfaces/html/nsIDOMHTMLTitleElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLTitleElement.idl
@@ -45,13 +45,13 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(e20fd651-6240-4f20-b8f0-6cc25cb699b7)]
+[scriptable, uuid(c569199b-328a-433d-8d40-fe858988625e)]
 interface nsIDOMHTMLTitleElement : nsIDOMHTMLElement
 {
            attribute DOMString        text;
 };
--- a/dom/interfaces/html/nsIDOMHTMLUListElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLUListElement.idl
@@ -45,14 +45,14 @@
  *
  * This interface is trying to follow the DOM Level 2 HTML specification:
  * http://www.w3.org/TR/DOM-Level-2-HTML/
  *
  * with changes from the work-in-progress WHATWG HTML specification:
  * http://www.whatwg.org/specs/web-apps/current-work/
  */
 
-[scriptable, uuid(2467d39c-2c30-407e-9b67-ea5f231b7809)]
+[scriptable, uuid(e9bec981-dd3e-4849-85b9-2f4f30ba5152)]
 interface nsIDOMHTMLUListElement : nsIDOMHTMLElement
 {
            attribute boolean          compact;
            attribute DOMString        type;
 };
--- a/dom/interfaces/html/nsIDOMHTMLUnknownElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLUnknownElement.idl
@@ -38,12 +38,12 @@
 #include "nsIDOMHTMLElement.idl"
 
 /**
  * The nsIDOMHTMLUnknownElement interface is the interface to an unknown HTML
  * element.
  *
  * @see <http://www.whatwg.org/html/#htmlunknownelement>
  */
-[scriptable, uuid(5f922c13-c2c1-4c49-b7c2-0e4e5c8e6860)]
+[scriptable, uuid(50c480fa-d3dc-49ad-a21d-d4d5f7aec44e)]
 interface nsIDOMHTMLUnknownElement : nsIDOMHTMLElement
 {
 };
--- a/dom/interfaces/html/nsIDOMHTMLVideoElement.idl
+++ b/dom/interfaces/html/nsIDOMHTMLVideoElement.idl
@@ -43,17 +43,17 @@
  * <video> element.
  *
  * For more information on this interface, please see
  * http://www.whatwg.org/specs/web-apps/current-work/#video
  *
  * @status UNDER_DEVELOPMENT
  */
 
-[scriptable, uuid(390b974b-1c3a-4700-8001-5ef832c4b4bf)]
+[scriptable, uuid(8e6d81a9-a6e1-44af-95be-cbe86de36ede)]
 interface nsIDOMHTMLVideoElement : nsIDOMHTMLMediaElement
 {
            attribute long width; 
            attribute long height;
   readonly attribute unsigned long videoWidth;
   readonly attribute unsigned long videoHeight;
            attribute DOMString poster;
            
--- a/dom/interfaces/svg/nsIDOMSVGAElement.idl
+++ b/dom/interfaces/svg/nsIDOMSVGAElement.idl
@@ -39,17 +39,17 @@
 
 /**
  * For more information on this interface please see
  * http://www.w3.org/TR/SVG/linking.html#AElement
  */
 
 interface nsIDOMSVGAnimatedString;
 
-[scriptable, uuid(f1b259b6-587c-46fe-8800-2f0156fe04e8)]
+[scriptable, uuid(0e0081ce-8b9d-4c26-baeb-a5e99f5126f9)]
 interface nsIDOMSVGAElement
   : nsIDOMSVGElement
 /*
   The SVG DOM makes use of multiple interface inheritance.
   Since XPCOM only supports single interface inheritance,
   the best thing that we can do is to promise that whenever
   an object implements _this_ interface it will also
   implement the following interfaces. (We then have to QI to
--- a/dom/interfaces/svg/nsIDOMSVGAltGlyphElement.idl
+++ b/dom/interfaces/svg/nsIDOMSVGAltGlyphElement.idl
@@ -30,17 +30,17 @@
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMSVGTextPositionElem.idl"
 
-[scriptable, uuid(a1491d59-8e4e-4ed9-aa1b-c599bd01173a)]
+[scriptable, uuid(e86efca6-0391-4e9a-83dc-90b3b761a690)]
 interface nsIDOMSVGAltGlyphElement : nsIDOMSVGTextPositioningElement
 /*
         The SVG DOM makes use of multiple interface inheritance.
         Since XPCOM only supports single interface inheritance,
         the best thing that we can do is to promise that whenever
         an object implements _this_ interface it will also
         implement the following interfaces. (We then have to QI to
         hop between them.)
--- a/dom/interfaces/svg/nsIDOMSVGAnimateElement.idl
+++ b/dom/interfaces/svg/nsIDOMSVGAnimateElement.idl
@@ -32,10 +32,10 @@
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMSVGAnimationElement.idl"
 
-[scriptable, uuid(3a2ef7b7-5687-40ab-b607-6f84ea9728cc)]
+[scriptable, uuid(01a99850-013b-4821-97fd-798732c8cc53)]
 interface nsIDOMSVGAnimateElement : nsIDOMSVGAnimationElement {};
--- a/dom/interfaces/svg/nsIDOMSVGAnimateMotionElement.idl
+++ b/dom/interfaces/svg/nsIDOMSVGAnimateMotionElement.idl
@@ -32,10 +32,10 @@
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMSVGAnimationElement.idl"
 
-[scriptable, uuid(e847ef4c-0c4e-417a-b5e2-7e22dc42a233)]
+[scriptable, uuid(29d02159-1517-49dc-8a83-8824fb166c09)]
 interface nsIDOMSVGAnimateMotionElement : nsIDOMSVGAnimationElement { };
--- a/dom/interfaces/svg/nsIDOMSVGAnimateTransformElement.idl
+++ b/dom/interfaces/svg/nsIDOMSVGAnimateTransformElement.idl
@@ -32,10 +32,10 @@
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMSVGAnimationElement.idl"
 
-[scriptable, uuid(0967287a-97a0-4926-936c-1749f1e67a68)]
+[scriptable, uuid(62e30f49-3566-4415-8971-b0ddd2c8bf97)]
 interface nsIDOMSVGAnimateTransformElement : nsIDOMSVGAnimationElement {};
--- a/dom/interfaces/svg/nsIDOMSVGAnimationElement.idl
+++ b/dom/interfaces/svg/nsIDOMSVGAnimationElement.idl
@@ -32,17 +32,17 @@
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMSVGElement.idl"
 
-[scriptable, uuid(91183127-a2a5-43ee-a9ce-737a4d25e65e)]
+[scriptable, uuid(412616f5-b7a0-4160-9c64-5c328cb73836)]
 interface nsIDOMSVGAnimationElement
   : nsIDOMSVGElement
 /*
         The SVG DOM makes use of multiple interface inheritance.
         Since XPCOM only supports single interface inheritance,
         the best thing that we can do is to promise that whenever
         an object implements _this_ interface it will also
         implement the following interfaces. (We then have to QI to
--- a/dom/interfaces/svg/nsIDOMSVGCircleElement.idl
+++ b/dom/interfaces/svg/nsIDOMSVGCircleElement.idl
@@ -35,17 +35,17 @@
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMSVGElement.idl"
 
 interface nsIDOMSVGAnimatedLength;
 
-[scriptable, uuid(5d80ae99-417a-4454-96bd-3a9a2b03eee9)]
+[scriptable, uuid(9c3e3e1f-0332-4b6c-8699-554edb3a972f)]
 interface nsIDOMSVGCircleElement
   : nsIDOMSVGElement
 /*
         The SVG DOM makes use of multiple interface inheritance.
         Since XPCOM only supports single interface inheritance,
         the best thing that we can do is to promise that whenever
         an object implements _this_ interface it will also
         implement the following interfaces. (We then have to QI to
--- a/dom/interfaces/svg/nsIDOMSVGClipPathElement.idl
+++ b/dom/interfaces/svg/nsIDOMSVGClipPathElement.idl
@@ -42,17 +42,17 @@
  *
  * For more information on this interface please see
  * http://www.w3.org/TR/SVG11/masking.html
  *
  */
 
 interface nsIDOMSVGAnimatedEnumeration;
 
-[scriptable, uuid(860d3dbd-c59e-446c-85b5-2b534ad70308)]
+[scriptable, uuid(384359ad-7c3f-4638-9364-95e4d42b4c0c)]
 interface nsIDOMSVGClipPathElement
   : nsIDOMSVGElement
 /*
   The SVG DOM makes use of multiple interface inheritance.
   Since XPCOM only supports single interface inheritance,
   the best thing that we can do is to promise that whenever
   an object implements _this_ interface it will also
   implement the following interfaces. (We then have to QI to
--- a/dom/interfaces/svg/nsIDOMSVGDefsElement.idl
+++ b/dom/interfaces/svg/nsIDOMSVGDefsElement.idl
@@ -33,17 +33,17 @@
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMSVGElement.idl"
 
-[scriptable, uuid(db31fc68-8b12-46be-86d3-6a8c2acc5798)]
+[scriptable, uuid(e6dd64f2-c59b-4c0f-85fb-63b748c20057)]
 interface nsIDOMSVGDefsElement
   : nsIDOMSVGElement
 /*
   The SVG DOM makes use of multiple interface inheritance.
   Since XPCOM only supports single interface inheritance,
   the best thing that we can do is to promise that whenever
   an object implements _this_ interface it will also
   implement the following interfaces. (We then have to QI to
--- a/dom/interfaces/svg/nsIDOMSVGDescElement.idl
+++ b/dom/interfaces/svg/nsIDOMSVGDescElement.idl
@@ -33,17 +33,17 @@
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMSVGElement.idl"
 
-[scriptable, uuid(38c2cf34-1eb1-4cd9-ad5e-b9caae9e6b28)]
+[scriptable, uuid(e97484c1-5b32-4e7e-8ad6-e04ea8100d3f)]
 interface nsIDOMSVGDescElement
   : nsIDOMSVGElement
 /*
   The SVG DOM makes use of multiple interface inheritance.
   Since XPCOM only supports single interface inheritance,
   the best thing that we can do is to promise that whenever
   an object implements _this_ interface it will also
   implement the following interfaces. (We then have to QI to
--- a/dom/interfaces/svg/nsIDOMSVGElement.idl
+++ b/dom/interfaces/svg/nsIDOMSVGElement.idl
@@ -35,16 +35,16 @@
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMElement.idl"
 
 interface nsIDOMSVGSVGElement;
 
-[scriptable, uuid(b0cf8ffb-92e7-46e7-870f-a01395f37336)]
+[scriptable, uuid(dbb1b49c-dce5-43fe-97ea-e249b5620aa2)]
 interface nsIDOMSVGElement : nsIDOMElement 
 { 
   attribute DOMString id;
             // raises DOMException on setting
   readonly attribute nsIDOMSVGSVGElement ownerSVGElement;
   readonly attribute nsIDOMSVGElement    viewportElement;
 };
--- a/dom/interfaces/svg/nsIDOMSVGEllipseElement.idl
+++ b/dom/interfaces/svg/nsIDOMSVGEllipseElement.idl
@@ -35,17 +35,17 @@
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMSVGElement.idl"
 
 interface nsIDOMSVGAnimatedLength;
 
-[scriptable, uuid(162e83b9-78e5-4794-83ef-07e501bd0226)]
+[scriptable, uuid(6dff169d-43b8-4727-8dc2-b14c897951a3)]
 interface nsIDOMSVGEllipseElement
   : nsIDOMSVGElement
 /*
         The SVG DOM makes use of multiple interface inheritance.
         Since XPCOM only supports single interface inheritance,
         the best thing that we can do is to promise that whenever
         an object implements _this_ interface it will also
         implement the following interfaces. (We then have to QI to
--- a/dom/interfaces/svg/nsIDOMSVGFilterElement.idl
+++ b/dom/interfaces/svg/nsIDOMSVGFilterElement.idl
@@ -35,17 +35,17 @@
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMSVGElement.idl"
 
 interface nsIDOMSVGAnimatedLength;
 interface nsIDOMSVGAnimatedEnumeration;
 interface nsIDOMSVGAnimatedInteger;
 
-[scriptable, uuid(e8bdae49-70af-46ed-9c06-b11a7173f68f)]
+[scriptable, uuid(d4ffe017-20da-44eb-8111-9e814be8d313)]
 interface nsIDOMSVGFilterElement
   : nsIDOMSVGElement
 /*
         The SVG DOM makes use of multiple interface inheritance.
         Since XPCOM only supports single interface inheritance,
         the best thing that we can do is to promise that whenever
         an object implements _this_ interface it will also
         implement the following interfaces. (We then have to QI to
--- a/dom/interfaces/svg/nsIDOMSVGFilters.idl
+++ b/dom/interfaces/svg/nsIDOMSVGFilters.idl
@@ -40,63 +40,63 @@
 interface nsIDOMSVGAnimatedLength;
 interface nsIDOMSVGAnimatedString;
 interface nsIDOMSVGAnimatedNumber;
 interface nsIDOMSVGAnimatedEnumeration;
 interface nsIDOMSVGAnimatedNumberList;
 interface nsIDOMSVGAnimatedInteger;
 interface nsIDOMSVGAnimatedBoolean;
 
-[scriptable, uuid(8404c54c-e9f4-4b3f-b051-6c50ce302707)]
+[scriptable, uuid(0baad34c-3937-4a62-8098-5988ad6d3582)]
 interface nsIDOMSVGFilterPrimitiveStandardAttributes : nsIDOMSVGElement
 { 
     readonly attribute nsIDOMSVGAnimatedLength      x;
     readonly attribute nsIDOMSVGAnimatedLength      y;
     readonly attribute nsIDOMSVGAnimatedLength      width;
     readonly attribute nsIDOMSVGAnimatedLength      height;
     readonly attribute nsIDOMSVGAnimatedString      result;
 };
 
-[scriptable, uuid(0809043b-8806-4620-bb1b-ce16a963df5c)]
+[scriptable, uuid(15d091f6-ffdd-4b22-90d3-45671a3a153c)]
 interface nsIDOMSVGFEBlendElement : nsIDOMSVGFilterPrimitiveStandardAttributes
 {
     const unsigned short SVG_MODE_UNKNOWN   = 0;
     const unsigned short SVG_MODE_NORMAL    = 1;
     const unsigned short SVG_MODE_MULTIPLY  = 2;
     const unsigned short SVG_MODE_SCREEN    = 3;
     const unsigned short SVG_MODE_DARKEN    = 4;
     const unsigned short SVG_MODE_LIGHTEN   = 5;
 
     readonly attribute nsIDOMSVGAnimatedString        in1;
     readonly attribute nsIDOMSVGAnimatedString        in2;
     readonly attribute nsIDOMSVGAnimatedEnumeration   mode;
 };
 
-[scriptable, uuid(3e3a705b-019b-46c2-b825-b28cd253985f)]
+[scriptable, uuid(9865eca2-ec73-4241-b17c-3707a84801a0)]
 interface nsIDOMSVGFEColorMatrixElement : nsIDOMSVGFilterPrimitiveStandardAttributes
 {
     // Color Matrix Types
     const unsigned short SVG_FECOLORMATRIX_TYPE_UNKNOWN            = 0;
     const unsigned short SVG_FECOLORMATRIX_TYPE_MATRIX             = 1;
     const unsigned short SVG_FECOLORMATRIX_TYPE_SATURATE           = 2;
     const unsigned short SVG_FECOLORMATRIX_TYPE_HUE_ROTATE         = 3;
     const unsigned short SVG_FECOLORMATRIX_TYPE_LUMINANCE_TO_ALPHA = 4;
 
     readonly attribute nsIDOMSVGAnimatedString in1;
     readonly attribute nsIDOMSVGAnimatedEnumeration type;
     readonly attribute nsIDOMSVGAnimatedNumberList  values;
 };
 
-[scriptable, uuid(e38fee58-b3d2-4a43-aa20-cb120f20f169)]
+[scriptable, uuid(8dd308d2-19b0-4d0a-a600-fc97cc278840)]
 interface nsIDOMSVGFEComponentTransferElement : nsIDOMSVGFilterPrimitiveStandardAttributes
 {
     readonly attribute nsIDOMSVGAnimatedString in1;
 };
 
-[scriptable, uuid(d47f3d16-f01a-4f3d-8c8d-5f731071a9f3)]
+[scriptable, uuid(8d1c623f-81d0-494d-abf4-089447d71e19)]
 interface nsIDOMSVGComponentTransferFunctionElement : nsIDOMSVGElement
 {
     // Component Transfer Types
     const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN  = 0;
     const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY = 1;
     const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_TABLE    = 2;
     const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE = 3;
     const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_LINEAR   = 4;
@@ -106,17 +106,17 @@ interface nsIDOMSVGComponentTransferFunc
     readonly attribute nsIDOMSVGAnimatedNumberList  tableValues;
     readonly attribute nsIDOMSVGAnimatedNumber      slope;
     readonly attribute nsIDOMSVGAnimatedNumber      intercept;
     readonly attribute nsIDOMSVGAnimatedNumber      amplitude;
     readonly attribute nsIDOMSVGAnimatedNumber      exponent;
     readonly attribute nsIDOMSVGAnimatedNumber      offset;
 };
 
-[scriptable, uuid(5161f394-f864-4f15-9dd3-5dc2942b7af6)]
+[scriptable, uuid(4c817cff-3eb1-4aa3-86cc-6c1d26304d51)]
 interface nsIDOMSVGFECompositeElement : nsIDOMSVGFilterPrimitiveStandardAttributes
 {
     // Operator Types
     const unsigned short SVG_OPERATOR_UNKNOWN    = 0;
     const unsigned short SVG_OPERATOR_OVER       = 1;
     const unsigned short SVG_OPERATOR_IN         = 2;
     const unsigned short SVG_OPERATOR_OUT        = 3;
     const unsigned short SVG_OPERATOR_ATOP       = 4;
@@ -130,75 +130,75 @@ interface nsIDOMSVGFECompositeElement : 
     readonly attribute nsIDOMSVGAnimatedNumber  k3;
     readonly attribute nsIDOMSVGAnimatedNumber  k4;
     readonly attribute nsIDOMSVGAnimatedEnumeration operator;
     
     void setK ( in float k1, in float k2, in float k3, in float k4 );
 
 };
 
-[scriptable, uuid(d7a30bca-e11f-4f9f-8eac-60503992d01f)]
+[scriptable, uuid(16cc0d3d-7d9d-4994-8e22-51a2ca8bc286)]
 interface nsIDOMSVGFEFuncRElement : nsIDOMSVGComponentTransferFunctionElement
 {
 };
 
-[scriptable, uuid(1e03b087-09ed-4161-bd02-66090336c2fb)]
+[scriptable, uuid(28140f4f-11b0-4aaa-988f-91183de9174d)]
 interface nsIDOMSVGFEFuncGElement : nsIDOMSVGComponentTransferFunctionElement
 {
 };
 
-[scriptable, uuid(cd7a6e70-92f1-43ac-8058-7a95cae8b0f9)]
+[scriptable, uuid(3d7b80be-be90-4d5f-bd7f-ad8a41e25650)]
 interface nsIDOMSVGFEFuncBElement : nsIDOMSVGComponentTransferFunctionElement
 {
 };
 
-[scriptable, uuid(d7d1f35d-eed5-4dad-a964-e122b0130355)]
+[scriptable, uuid(52cf6761-4ff7-467f-9828-0fb2f51a70cf)]
 interface nsIDOMSVGFEFuncAElement : nsIDOMSVGComponentTransferFunctionElement
 {
 };
 
-[scriptable, uuid(f553395b-4f49-4ee5-ab4e-f7454559bc01)]
+[scriptable, uuid(aa828fdd-855c-4def-b911-0305521e6b3c)]
 interface nsIDOMSVGFEGaussianBlurElement : nsIDOMSVGFilterPrimitiveStandardAttributes
 { 
     readonly attribute nsIDOMSVGAnimatedString in1;
     readonly attribute nsIDOMSVGAnimatedNumber stdDeviationX;
     readonly attribute nsIDOMSVGAnimatedNumber stdDeviationY;
 
     void setStdDeviation ( in float stdDeviationX, in float stdDeviationY );
 };
 
-[scriptable, uuid(ac3451df-d5c0-4cf9-afff-2795f18a613f)]
+[scriptable, uuid(680478f7-e018-448e-a5f8-994737a1f3cc)]
 interface nsIDOMSVGFEMergeElement : nsIDOMSVGFilterPrimitiveStandardAttributes
 {
 };
 
-[scriptable, uuid(b12bb1de-5894-4d7e-9e66-290e1aa00e85)]
+[scriptable, uuid(556ae82f-a713-4075-8b1a-a484c147b55e)]
 interface nsIDOMSVGFEMergeNodeElement : nsIDOMSVGElement { 
     readonly attribute nsIDOMSVGAnimatedString in1;
 };
 
-[scriptable, uuid(b1ca27de-f871-42cf-9b11-ff4fe815d773)]
+[scriptable, uuid(5528a83d-6dd5-48a0-917a-e67d688d76ed)]
 interface nsIDOMSVGFEOffsetElement : nsIDOMSVGFilterPrimitiveStandardAttributes { 
     readonly attribute nsIDOMSVGAnimatedString in1;
     readonly attribute nsIDOMSVGAnimatedNumber dx;
     readonly attribute nsIDOMSVGAnimatedNumber dy;
 };
 
-[scriptable, uuid(1d2ed8b1-df5f-47da-8471-a95419f4623c)]
+[scriptable, uuid(610e2fe0-3d6a-4cf0-8df6-b65da8d29367)]
 interface nsIDOMSVGFEFloodElement : nsIDOMSVGFilterPrimitiveStandardAttributes
 {
 };
 
-[scriptable, uuid(80e6a232-ae4e-42f6-92dd-1692fc5c204d)]
+[scriptable, uuid(4590fc6a-5dc1-45bc-9e86-0af377d6ecbd)]
 interface nsIDOMSVGFETileElement : nsIDOMSVGFilterPrimitiveStandardAttributes
 {
     readonly attribute nsIDOMSVGAnimatedString in1;
 };
 
-[scriptable, uuid(98f4704a-e713-4849-b4df-0a58c0aa37de)]
+[scriptable, uuid(bec76206-825d-40c9-bded-0810daafb117)]
 interface nsIDOMSVGFETurbulenceElement : nsIDOMSVGFilterPrimitiveStandardAttributes
 { 
     // Turbulence Types
     const unsigned short SVG_TURBULENCE_TYPE_UNKNOWN      = 0;
     const unsigned short SVG_TURBULENCE_TYPE_FRACTALNOISE = 1;
     const unsigned short SVG_TURBULENCE_TYPE_TURBULENCE   = 2;
     // Stitch Options
     const unsigned short SVG_STITCHTYPE_UNKNOWN  = 0;
@@ -208,33 +208,33 @@ interface nsIDOMSVGFETurbulenceElement :
     readonly attribute nsIDOMSVGAnimatedNumber      baseFrequencyX;
     readonly attribute nsIDOMSVGAnimatedNumber      baseFrequencyY;
     readonly attribute nsIDOMSVGAnimatedInteger     numOctaves;
     readonly attribute nsIDOMSVGAnimatedNumber      seed;
     readonly attribute nsIDOMSVGAnimatedEnumeration stitchTiles;
     readonly attribute nsIDOMSVGAnimatedEnumeration type;
 };
 
-[scriptable, uuid(a94e66ab-b02a-4a2e-9fe5-82547ffe20b4)]
+[scriptable, uuid(7246ba36-0dd1-43fc-8536-908e8985b77a)]
 interface nsIDOMSVGFEMorphologyElement : nsIDOMSVGFilterPrimitiveStandardAttributes
 { 
     // Operator Types
     const unsigned short SVG_OPERATOR_UNKNOWN  = 0;
     const unsigned short SVG_OPERATOR_ERODE    = 1;
     const unsigned short SVG_OPERATOR_DILATE   = 2;
 
     readonly attribute nsIDOMSVGAnimatedString      in1;
     readonly attribute nsIDOMSVGAnimatedNumber      radiusX;
     readonly attribute nsIDOMSVGAnimatedNumber      radiusY;
     readonly attribute nsIDOMSVGAnimatedEnumeration operator;
     
     void setRadius ( in float rx, in float ry );
 };
 
-[scriptable, uuid(6f8665d3-c4ff-4037-b978-23b3acd7606f)]
+[scriptable, uuid(812fdfe3-93fd-4787-9909-7158d839ea69)]
 interface nsIDOMSVGFEConvolveMatrixElement : nsIDOMSVGFilterPrimitiveStandardAttributes
 { 
     // Edge Mode Values
     const unsigned short SVG_EDGEMODE_UNKNOWN   = 0;
     const unsigned short SVG_EDGEMODE_DUPLICATE = 1;
     const unsigned short SVG_EDGEMODE_WRAP      = 2;
     const unsigned short SVG_EDGEMODE_NONE      = 3;
 
@@ -247,73 +247,73 @@ interface nsIDOMSVGFEConvolveMatrixEleme
     readonly attribute nsIDOMSVGAnimatedInteger     targetX;
     readonly attribute nsIDOMSVGAnimatedInteger     targetY;
     readonly attribute nsIDOMSVGAnimatedEnumeration edgeMode;
     readonly attribute nsIDOMSVGAnimatedNumber      kernelUnitLengthX;
     readonly attribute nsIDOMSVGAnimatedNumber      kernelUnitLengthY;
     readonly attribute nsIDOMSVGAnimatedBoolean     preserveAlpha;
 };
 
-[scriptable, uuid(0ece9f3f-1eba-48ba-bb79-71dffeed8991)]
+[scriptable, uuid(3683aa0d-9d2f-45cd-8bc8-9b8a79e519b7)]
 interface nsIDOMSVGFEDiffuseLightingElement :  nsIDOMSVGFilterPrimitiveStandardAttributes
 { 
   readonly attribute nsIDOMSVGAnimatedString in1;
   readonly attribute nsIDOMSVGAnimatedNumber surfaceScale;
   readonly attribute nsIDOMSVGAnimatedNumber diffuseConstant;
   readonly attribute nsIDOMSVGAnimatedNumber kernelUnitLengthX;
   readonly attribute nsIDOMSVGAnimatedNumber kernelUnitLengthY;
 };
 
-[scriptable, uuid(63c69f01-0d1c-42b5-9eb0-8dbfe5c09132)]
+[scriptable, uuid(f3a96e7a-48db-4d75-b16a-368f7fa39482)]
 interface nsIDOMSVGFESpecularLightingElement : nsIDOMSVGFilterPrimitiveStandardAttributes
 { 
   readonly attribute nsIDOMSVGAnimatedString in1;
   readonly attribute nsIDOMSVGAnimatedNumber surfaceScale;
   readonly attribute nsIDOMSVGAnimatedNumber specularConstant;
   readonly attribute nsIDOMSVGAnimatedNumber specularExponent;
   readonly attribute nsIDOMSVGAnimatedNumber kernelUnitLengthX;
   readonly attribute nsIDOMSVGAnimatedNumber kernelUnitLengthY;
 };
 
-[scriptable, uuid(a00f01ad-e078-409c-b521-a4179691026e)]
+[scriptable, uuid(bcd675cb-8794-4083-a6f4-1577a6c23f2b)]
 interface nsIDOMSVGFEDistantLightElement : nsIDOMSVGElement { 
   readonly attribute nsIDOMSVGAnimatedNumber azimuth;
   readonly attribute nsIDOMSVGAnimatedNumber elevation;
 };
 
-[scriptable, uuid(7a20d48c-7cdb-46e1-a309-382bb06b034c)]
+[scriptable, uuid(57786525-10bd-4599-9bc0-f2a76ff10178)]
 interface nsIDOMSVGFEPointLightElement : nsIDOMSVGElement { 
   readonly attribute nsIDOMSVGAnimatedNumber x;
   readonly attribute nsIDOMSVGAnimatedNumber y;
   readonly attribute nsIDOMSVGAnimatedNumber z;
 };
 
-[scriptable, uuid(302fb017-7097-443c-880a-8770843140fb)]
+[scriptable, uuid(4bc6bd22-7faf-409e-acff-0d554ff93b2e)]
 interface nsIDOMSVGFESpotLightElement : nsIDOMSVGElement { 
   readonly attribute nsIDOMSVGAnimatedNumber x;
   readonly attribute nsIDOMSVGAnimatedNumber y;
   readonly attribute nsIDOMSVGAnimatedNumber z;
   readonly attribute nsIDOMSVGAnimatedNumber pointsAtX;
   readonly attribute nsIDOMSVGAnimatedNumber pointsAtY;
   readonly attribute nsIDOMSVGAnimatedNumber pointsAtZ;
   readonly attribute nsIDOMSVGAnimatedNumber specularExponent;
   readonly attribute nsIDOMSVGAnimatedNumber limitingConeAngle;
 };
 
-[scriptable, uuid(2ddaa418-8212-4154-85e8-0cd62958c161)]
+[scriptable, uuid(477bb1c0-4923-467f-a0ce-85cbe87c2324)]
 interface nsIDOMSVGFEImageElement : nsIDOMSVGFilterPrimitiveStandardAttributes
 /*
   nsIDOMSVGURIReference,
   nsIDOMSVGLangSpace,
   nsIDOMSVGExternalResourcesRequired
 */
 {
 };
 
-[scriptable, uuid(d610bd29-6423-4020-9f06-f6003708479d)]
+[scriptable, uuid(7a7548ed-f578-433b-b6b3-d034f5f19f44)]
 interface nsIDOMSVGFEDisplacementMapElement : nsIDOMSVGFilterPrimitiveStandardAttributes
 {
   // Channel Selectors
   const unsigned short SVG_CHANNEL_UNKNOWN = 0;
   const unsigned short SVG_CHANNEL_R       = 1;
   const unsigned short SVG_CHANNEL_G       = 2;
   const unsigned short SVG_CHANNEL_B       = 3;
   const unsigned short SVG_CHANNEL_A       = 4;
--- a/dom/interfaces/svg/nsIDOMSVGForeignObjectElem.idl
+++ b/dom/interfaces/svg/nsIDOMSVGForeignObjectElem.idl
@@ -35,17 +35,17 @@
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMSVGElement.idl"
 
 interface nsIDOMSVGAnimatedLength;
 
-[scriptable, uuid(315e8422-fe3c-46e8-bb2c-4a573871554c)]
+[scriptable, uuid(7639563d-b19c-46d3-afb4-1bef937e8c29)]
 interface nsIDOMSVGForeignObjectElement
   : nsIDOMSVGElement
 /*
   The SVG DOM makes use of multiple interface inheritance.
   Since XPCOM only supports single interface inheritance,
   the best thing that we can do is to promise that whenever
   an object implements _this_ interface it will also
   implement the following interfaces. (We then have to QI to
--- a/dom/interfaces/svg/nsIDOMSVGGElement.idl
+++ b/dom/interfaces/svg/nsIDOMSVGGElement.idl
@@ -33,17 +33,17 @@
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMSVGElement.idl"
 
-[scriptable, uuid(e0b50fbd-1d1f-44b9-8458-6d54600b2f73)]
+[scriptable, uuid(a5b4fa2e-65fb-4e9a-bb1b-00106a4fd813)]
 interface nsIDOMSVGGElement
   : nsIDOMSVGElement
 /*
   The SVG DOM makes use of multiple interface inheritance.
   Since XPCOM only supports single interface inheritance,
   the best thing that we can do is to promise that whenever
   an object implements _this_ interface it will also
   implement the following interfaces. (We then have to QI to
--- a/dom/interfaces/svg/nsIDOMSVGGradientElement.idl
+++ b/dom/interfaces/svg/nsIDOMSVGGradientElement.idl
@@ -45,17 +45,17 @@
  * For more information on this interface please see
  * http://www.w3.org/TR/SVG11/pservers.html
  *
  */
 
 interface nsIDOMSVGAnimatedEnumeration;
 interface nsIDOMSVGAnimatedTransformList;
 
-[scriptable, uuid(6e7f3ee0-91c7-433e-b025-0050442b5dbb)]
+[scriptable, uuid(9c21dbc3-09bf-4905-ab84-b86c3f7471ce)]
 interface nsIDOMSVGGradientElement
   : nsIDOMSVGElement
 /*
         The SVG DOM makes use of multiple interface inheritance.
         Since XPCOM only supports single interface inheritance,
         the best thing that we can do is to promise that whenever
         an object implements _this_ interface it will also
         implement the following interfaces. (We then have to QI to
@@ -83,17 +83,17 @@ interface nsIDOMSVGGradientElement
  * For more information on this interface please see
  * http://www.w3.org/TR/SVG11/pservers.html
  *
  */
 
 // Linear gradient
 interface nsIDOMSVGAnimatedLength;
 
-[scriptable, uuid(b6ffa3ea-a39f-4ebb-86df-f7d3b889dff7)]
+[scriptable, uuid(42f66e56-ea42-4c75-a190-0dc5ad19afa4)]
 interface nsIDOMSVGLinearGradientElement
   : nsIDOMSVGGradientElement
 { 
   readonly attribute nsIDOMSVGAnimatedLength x1;
   readonly attribute nsIDOMSVGAnimatedLength y1;
   readonly attribute nsIDOMSVGAnimatedLength x2;
   readonly attribute nsIDOMSVGAnimatedLength y2;
 };
@@ -105,17 +105,17 @@ interface nsIDOMSVGLinearGradientElement
  * For more information on this interface please see
  * http://www.w3.org/TR/SVG11/pservers.html
  *
  */
 
 // Radial gradient
 interface nsIDOMSVGAnimatedLength;
 
-[scriptable, uuid(67041054-7013-4c56-84db-448edb98936d)]
+[scriptable, uuid(6b4b82a3-424f-41bc-b748-0cdec4a7f419)]
 interface nsIDOMSVGRadialGradientElement
   : nsIDOMSVGGradientElement
 { 
   readonly attribute nsIDOMSVGAnimatedLength cx;
   readonly attribute nsIDOMSVGAnimatedLength cy;
   readonly attribute nsIDOMSVGAnimatedLength r;
   readonly attribute nsIDOMSVGAnimatedLength fx;
   readonly attribute nsIDOMSVGAnimatedLength fy;
--- a/dom/interfaces/svg/nsIDOMSVGImageElement.idl
+++ b/dom/interfaces/svg/nsIDOMSVGImageElement.idl
@@ -36,17 +36,17 @@
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMSVGElement.idl"
 
 interface nsIDOMSVGAnimatedLength;
 interface nsIDOMSVGAnimatedPreserveAspectRatio;
 
-[scriptable, uuid(c06f8f78-d499-42ae-b186-15aa7552628d)]
+[scriptable, uuid(048da3ff-aa94-4988-8f5c-3aae4a630008)]
 interface nsIDOMSVGImageElement
   : nsIDOMSVGElement
 /*
         The SVG DOM makes use of multiple interface inheritance.
         Since XPCOM only supports single interface inheritance,
         the best thing that we can do is to promise that whenever
         an object implements _this_ interface it will also
         implement the following interfaces. (We then have to QI to
--- a/dom/interfaces/svg/nsIDOMSVGLineElement.idl
+++ b/dom/interfaces/svg/nsIDOMSVGLineElement.idl
@@ -35,17 +35,17 @@
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMSVGElement.idl"
 
 interface nsIDOMSVGAnimatedLength;
 
-[scriptable, uuid(2d75d39d-ff9e-4d4f-afe9-05bc9e022e8d)]
+[scriptable, uuid(0db4b4ba-01f4-4aba-8054-084febfc96ae)]
 interface nsIDOMSVGLineElement
   : nsIDOMSVGElement
 /*
         The SVG DOM makes use of multiple interface inheritance.
         Since XPCOM only supports single interface inheritance,
         the best thing that we can do is to promise that whenever
         an object implements _this_ interface it will also
         implement the following interfaces. (We then have to QI to
--- a/dom/interfaces/svg/nsIDOMSVGMarkerElement.idl
+++ b/dom/interfaces/svg/nsIDOMSVGMarkerElement.idl
@@ -46,17 +46,17 @@ interface nsIDOMSVGMatrix;
 /**
  * The nsIDOMSVGMarker interface is the interface to an SVG marker element.
  *
  * For more information on this interface please see
  * http://www.w3.org/TR/SVG11/painting.html#InterfaceSVGMarkerElement
  *
  */
 
-[scriptable, uuid(e7f31745-5ffb-4e10-9bb4-618fd854c5af)]
+[scriptable, uuid(df5bb334-0f72-4188-ae8d-467cec5019bf)]
 interface nsIDOMSVGMarkerElement
   : nsIDOMSVGElement
 /*
         The SVG DOM makes use of multiple interface inheritance.
         Since XPCOM only supports single interface inheritance,
         the best thing that we can do is to promise that whenever
         an object implements _this_ interface it will also
         implement the following interfaces. (We then have to QI to
--- a/dom/interfaces/svg/nsIDOMSVGMaskElement.idl
+++ b/dom/interfaces/svg/nsIDOMSVGMaskElement.idl
@@ -34,17 +34,17 @@
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMSVGElement.idl"
 
 interface nsIDOMSVGAnimatedLength;
 interface nsIDOMSVGAnimatedEnumeration;
 
-[scriptable, uuid(be2bf834-d5b8-45be-9411-21e3c97052d6)]
+[scriptable, uuid(90670735-4ea4-4d68-b6ef-15c93c3b922c)]
 interface nsIDOMSVGMaskElement
   : nsIDOMSVGElement
 /*
         The SVG DOM makes use of multiple interface inheritance.
         Since XPCOM only supports single interface inheritance,
         the best thing that we can do is to promise that whenever
         an object implements _this_ interface it will also
         implement the following interfaces. (We then have to QI to
--- a/dom/interfaces/svg/nsIDOMSVGMetadataElement.idl
+++ b/dom/interfaces/svg/nsIDOMSVGMetadataElement.idl
@@ -33,13 +33,13 @@
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMSVGElement.idl"
 
-[scriptable, uuid(35c9435d-8973-46dc-9ce4-ac52f7617a65)]
+[scriptable, uuid(08953b06-59da-4d19-a551-31ebf92fd6f4)]
 interface nsIDOMSVGMetadataElement
   : nsIDOMSVGElement
 {
 };
--- a/dom/interfaces/svg/nsIDOMSVGMpathElement.idl
+++ b/dom/interfaces/svg/nsIDOMSVGMpathElement.idl
@@ -38,17 +38,17 @@
 
 #include "nsIDOMSVGElement.idl"
 
 /**
  * For more information on this interface please see
  * http://www.w3.org/TR/SVG/animate.html#mpathElement
  */
 
-[scriptable, uuid(c8522141-cee5-4ecf-bcbc-70c69a3c2e2c)]
+[scriptable, uuid(f419e51b-3054-4cff-b55a-f096cf06f1c9)]
 interface nsIDOMSVGMpathElement
   : nsIDOMSVGElement
 /*
   The SVG DOM makes use of multiple interface inheritance.
   Since XPCOM only supports single interface inheritance,
   the best thing that we can do is to promise that whenever
   an object implements _this_ interface it will also
   implement the following interfaces. (We then have to QI to
--- a/dom/interfaces/svg/nsIDOMSVGPathElement.idl
+++ b/dom/interfaces/svg/nsIDOMSVGPathElement.idl
@@ -55,17 +55,17 @@ interface nsIDOMSVGPathSegLinetoHorizont
 interface nsIDOMSVGPathSegLinetoHorizontalRel;
 interface nsIDOMSVGPathSegLinetoVerticalAbs;
 interface nsIDOMSVGPathSegLinetoVerticalRel;
 interface nsIDOMSVGPathSegCurvetoCubicSmoothAbs;
 interface nsIDOMSVGPathSegCurvetoCubicSmoothRel;
 interface nsIDOMSVGPathSegCurvetoQuadraticSmoothAbs;
 interface nsIDOMSVGPathSegCurvetoQuadraticSmoothRel;
 
-[scriptable, uuid(906f82c7-c632-4b1f-9dfd-3905b9080935)]
+[scriptable, uuid(8fd0f541-49c2-484d-a34c-a24eb25fe286)]
 interface nsIDOMSVGPathElement
   : nsIDOMSVGElement
 /*
         The SVG DOM makes use of multiple interface inheritance.
         Since XPCOM only supports single interface inheritance,
         the best thing that we can do is to promise that whenever
         an object implements _this_ interface it will also
         implement the following interfaces. (We then have to QI to
--- a/dom/interfaces/svg/nsIDOMSVGPatternElement.idl
+++ b/dom/interfaces/svg/nsIDOMSVGPatternElement.idl
@@ -46,17 +46,17 @@
  * http://www.w3.org/TR/SVG11/pservers.html
  *
  */
 
 interface nsIDOMSVGAnimatedEnumeration;
 interface nsIDOMSVGAnimatedTransformList;
 interface nsIDOMSVGAnimatedLength;
 
-[scriptable, uuid(b2ecc991-e150-4fab-b36e-05847887aa51)]
+[scriptable, uuid(b8b4500d-e389-42b6-ae54-dd163d6c7c03)]
 interface nsIDOMSVGPatternElement 
   : nsIDOMSVGElement
 /*
         The SVG DOM makes use of multiple interface inheritance.
         Since XPCOM only supports single interface inheritance,
         the best thing that we can do is to promise that whenever
         an object implements _this_ interface it will also
         implement the following interfaces. (We then have to QI to
--- a/dom/interfaces/svg/nsIDOMSVGPolygonElement.idl
+++ b/dom/interfaces/svg/nsIDOMSVGPolygonElement.idl
@@ -34,17 +34,17 @@
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 
 #include "nsIDOMSVGElement.idl"
 
-[scriptable, uuid(b94c1af4-f464-41c9-9d38-b8e47f869aa9)]
+[scriptable, uuid(c6f0dbd7-ad84-4566-bc57-715bc617ff27)]
 interface nsIDOMSVGPolygonElement
   : nsIDOMSVGElement
 /*
         The SVG DOM makes use of multiple interface inheritance.
         Since XPCOM only supports single interface inheritance,
         the best thing that we can do is to promise that whenever
         an object implements _this_ interface it will also
         implement the following interfaces. (We then have to QI to
--- a/dom/interfaces/svg/nsIDOMSVGPolylineElement.idl
+++ b/dom/interfaces/svg/nsIDOMSVGPolylineElement.idl
@@ -33,17 +33,17 @@
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMSVGElement.idl"
 
-[scriptable, uuid(c2a0becc-3b3d-45a9-8f5c-b13963aadf6b)]
+[scriptable, uuid(e0269dec-7084-4ef5-8dbd-7e41c6e820da)]
 interface nsIDOMSVGPolylineElement
   : nsIDOMSVGElement
 /*
         The SVG DOM makes use of multiple interface inheritance.
         Since XPCOM only supports single interface inheritance,
         the best thing that we can do is to promise that whenever
         an object implements _this_ interface it will also
         implement the following interfaces. (We then have to QI to
--- a/dom/interfaces/svg/nsIDOMSVGRectElement.idl
+++ b/dom/interfaces/svg/nsIDOMSVGRectElement.idl
@@ -35,17 +35,17 @@
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMSVGElement.idl"
 
 interface nsIDOMSVGAnimatedLength;
 
-[scriptable, uuid(19eff2bb-224a-41dc-b3bb-c135c9d17d35)]
+[scriptable, uuid(578f6b8f-1e40-43e4-95a5-422fbd093006)]
 interface nsIDOMSVGRectElement
   : nsIDOMSVGElement
 /*
         The SVG DOM makes use of multiple interface inheritance.
         Since XPCOM only supports single interface inheritance,
         the best thing that we can do is to promise that whenever
         an object implements _this_ interface it will also
         implement the following interfaces. (We then have to QI to
--- a/dom/interfaces/svg/nsIDOMSVGSVGElement.idl
+++ b/dom/interfaces/svg/nsIDOMSVGSVGElement.idl
@@ -50,17 +50,17 @@ interface nsIDOMSVGTransform;
 
 // undef the GetCurrentTime macro defined in WinBase.h from the MS Platform SDK
 %{C++
 #ifdef GetCurrentTime
 #undef GetCurrentTime
 #endif
 %}
 
-[scriptable, uuid(e7ff88bd-26f8-4f2e-b01c-4e7b80d45117)]
+[scriptable, uuid(19198100-d373-408b-9b75-4c6c6310ea5b)]
 interface nsIDOMSVGSVGElement
   : nsIDOMSVGElement
 /*
         The SVG DOM makes use of multiple interface inheritance.
         Since XPCOM only supports single interface inheritance,
         the best thing that we can do is to promise that whenever
         an object implements _this_ interface it will also
         implement the following interfaces. (We then have to QI to
--- a/dom/interfaces/svg/nsIDOMSVGScriptElement.idl
+++ b/dom/interfaces/svg/nsIDOMSVGScriptElement.idl
@@ -33,17 +33,17 @@
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMSVGElement.idl"
 
-[scriptable, uuid(e73416d1-e9db-4a8f-b6f4-b2ddbe4aa90c)]
+[scriptable, uuid(6f529794-2f07-466b-8cd8-69f88c004089)]
 interface nsIDOMSVGScriptElement
   : nsIDOMSVGElement
 /*
         The SVG DOM makes use of multiple interface inheritance.
         Since XPCOM only supports single interface inheritance,
         the best thing that we can do is to promise that whenever
         an object implements _this_ interface it will also
         implement the following interfaces. (We then have to QI to
--- a/dom/interfaces/svg/nsIDOMSVGSetElement.idl
+++ b/dom/interfaces/svg/nsIDOMSVGSetElement.idl
@@ -32,10 +32,10 @@
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMSVGAnimationElement.idl"
 
-[scriptable, uuid(2161719b-cfdb-4fd4-b501-a439537fb12b)]
+[scriptable, uuid(11e4330d-fb38-4ab8-b580-3c2ff5228e6d)]
 interface nsIDOMSVGSetElement : nsIDOMSVGAnimationElement {};
--- a/dom/interfaces/svg/nsIDOMSVGStopElement.idl
+++ b/dom/interfaces/svg/nsIDOMSVGStopElement.idl
@@ -44,17 +44,17 @@
  *
  * For more information on this interface please see
  * http://www.w3.org/TR/SVG11/pservers.html
  *
  */
 
 interface nsIDOMSVGAnimatedNumber;
 
-[scriptable, uuid(b59416e8-62e4-4416-b3e1-b73a1cf0d88a)]
+[scriptable, uuid(48c7dbd2-d24a-438d-884f-26840f4727a9)]
 interface nsIDOMSVGStopElement
   : nsIDOMSVGElement
 /*
         The SVG DOM makes use of multiple interface inheritance.
         Since XPCOM only supports single interface inheritance,
         the best thing that we can do is to promise that whenever
         an object implements _this_ interface it will also
         implement the following interfaces. (We then have to QI to
--- a/dom/interfaces/svg/nsIDOMSVGStyleElement.idl
+++ b/dom/interfaces/svg/nsIDOMSVGStyleElement.idl
@@ -33,17 +33,17 @@
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMSVGElement.idl"
 
-[scriptable, uuid(b67e4d60-7780-414c-9ee7-30776d0233f2)]
+[scriptable, uuid(65fbceac-b2ab-483a-ba74-ceeb7594727e)]
 interface nsIDOMSVGStyleElement
   : nsIDOMSVGElement
 {
   attribute DOMString         xmlspace;
                        // raises DOMException on setting
   attribute DOMString         type;
                        // raises DOMException on setting
   attribute DOMString         media;
--- a/dom/interfaces/svg/nsIDOMSVGSwitchElement.idl
+++ b/dom/interfaces/svg/nsIDOMSVGSwitchElement.idl
@@ -31,17 +31,17 @@
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMSVGElement.idl"
 
-[scriptable, uuid(311c21a3-7762-44a0-a872-06e2286715d9)]
+[scriptable, uuid(8a7fe157-6591-449c-b05a-40556efa5499)]
 interface nsIDOMSVGSwitchElement
   : nsIDOMSVGElement
 /*
   The SVG DOM makes use of multiple interface inheritance.
   Since XPCOM only supports single interface inheritance,
   the best thing that we can do is to promise that whenever
   an object implements _this_ interface it will also
   implement the following interfaces. (We then have to QI to
--- a/dom/interfaces/svg/nsIDOMSVGSymbolElement.idl
+++ b/dom/interfaces/svg/nsIDOMSVGSymbolElement.idl
@@ -31,17 +31,17 @@
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMSVGElement.idl"
 
-[scriptable, uuid(0ae058a5-5528-47ce-a48a-026f1fd8e6df)]
+[scriptable, uuid(5eb4ffa0-84c0-4b7e-b123-dfe780a3a210)]
 interface nsIDOMSVGSymbolElement
   : nsIDOMSVGElement
 /*
   The SVG DOM makes use of multiple interface inheritance.
   Since XPCOM only supports single interface inheritance,
   the best thing that we can do is to promise that whenever
   an object implements _this_ interface it will also
   implement the following interfaces. (We then have to QI to
--- a/dom/interfaces/svg/nsIDOMSVGTSpanElement.idl
+++ b/dom/interfaces/svg/nsIDOMSVGTSpanElement.idl
@@ -33,12 +33,12 @@
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMSVGTextPositionElem.idl"
 
-[scriptable, uuid(0a22538c-887f-4e3c-9246-1b9ea55e95ac)]
+[scriptable, uuid(25ff6d97-2527-4f26-be2c-114df7370ba6)]
 interface nsIDOMSVGTSpanElement : nsIDOMSVGTextPositioningElement
 { 
 };
--- a/dom/interfaces/svg/nsIDOMSVGTextContentElement.idl
+++ b/dom/interfaces/svg/nsIDOMSVGTextContentElement.idl
@@ -39,17 +39,17 @@
 #include "nsIDOMSVGElement.idl"
 
 interface nsIDOMSVGAnimatedLength;
 interface nsIDOMSVGAnimatedEnumeration;
 interface nsIDOMSVGPoint;
 interface nsIDOMSVGRect;
 
 
-[scriptable, uuid(7531a45b-5f5a-4b30-9fb0-87498a87d4b4)]
+[scriptable, uuid(c866157b-f49b-41a0-89a9-1b54644843b9)]
 interface nsIDOMSVGTextContentElement
   : nsIDOMSVGElement
 /*
         The SVG DOM makes use of multiple interface inheritance.
         Since XPCOM only supports single interface inheritance,
         the best thing that we can do is to promise that whenever
         an object implements _this_ interface it will also
         implement the following interfaces. (We then have to QI to
--- a/dom/interfaces/svg/nsIDOMSVGTextElement.idl
+++ b/dom/interfaces/svg/nsIDOMSVGTextElement.idl
@@ -33,17 +33,17 @@
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMSVGTextPositionElem.idl"
 
-[scriptable, uuid(6a9cc602-503a-4af7-acb7-b04a19abcb30)]
+[scriptable, uuid(09702cc5-e882-40a5-a301-1bbfea30b941)]
 interface nsIDOMSVGTextElement : nsIDOMSVGTextPositioningElement
 /*
         The SVG DOM makes use of multiple interface inheritance.
         Since XPCOM only supports single interface inheritance,
         the best thing that we can do is to promise that whenever
         an object implements _this_ interface it will also
         implement the following interfaces. (We then have to QI to
         hop between them.)
--- a/dom/interfaces/svg/nsIDOMSVGTextPathElement.idl
+++ b/dom/interfaces/svg/nsIDOMSVGTextPathElement.idl
@@ -34,17 +34,17 @@
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMSVGTextContentElement.idl"
 
 interface nsIDOMSVGAnimatedLength;
 interface nsIDOMSVGAnimatedEnumeration;
 
-[scriptable, uuid(2680df96-2ef7-47eb-aeb1-412caa79e4d9)]
+[scriptable, uuid(a396f465-0333-48df-b5b7-e29d5a6b40f9)]
 interface nsIDOMSVGTextPathElement
   : nsIDOMSVGTextContentElement
 /*
         The SVG DOM makes use of multiple interface inheritance.
         Since XPCOM only supports single interface inheritance,
         the best thing that we can do is to promise that whenever
         an object implements _this_ interface it will also
         implement the following interfaces. (We then have to QI to
--- a/dom/interfaces/svg/nsIDOMSVGTextPositionElem.idl
+++ b/dom/interfaces/svg/nsIDOMSVGTextPositionElem.idl
@@ -36,17 +36,17 @@
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMSVGTextContentElement.idl"
 
 interface nsIDOMSVGAnimatedLengthList;
 interface nsIDOMSVGAnimatedNumberList;
 
-[scriptable, uuid(cbafeadc-a004-4b07-b8e0-1a06e1841dcf)]
+[scriptable, uuid(dbc9a9bd-56a5-4d7f-b3fd-bcd2f1d38920)]
 interface nsIDOMSVGTextPositioningElement : nsIDOMSVGTextContentElement
 { 
   readonly attribute nsIDOMSVGAnimatedLengthList x;
   readonly attribute nsIDOMSVGAnimatedLengthList y;
   readonly attribute nsIDOMSVGAnimatedLengthList dx;
   readonly attribute nsIDOMSVGAnimatedLengthList dy;
   readonly attribute nsIDOMSVGAnimatedNumberList rotate;
 };
--- a/dom/interfaces/svg/nsIDOMSVGTitleElement.idl
+++ b/dom/interfaces/svg/nsIDOMSVGTitleElement.idl
@@ -33,17 +33,17 @@
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMSVGElement.idl"
 
-[scriptable, uuid(bbbff74f-70fc-41a7-8407-8bb968adeeac)]
+[scriptable, uuid(8c463198-1272-45ca-89cb-40a37733611b)]
 interface nsIDOMSVGTitleElement
   : nsIDOMSVGElement
 /*
   The SVG DOM makes use of multiple interface inheritance.
   Since XPCOM only supports single interface inheritance,
   the best thing that we can do is to promise that whenever
   an object implements _this_ interface it will also
   implement the following interfaces. (We then have to QI to
--- a/dom/interfaces/svg/nsIDOMSVGUseElement.idl
+++ b/dom/interfaces/svg/nsIDOMSVGUseElement.idl
@@ -33,17 +33,17 @@
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMSVGElement.idl"
 
 interface nsIDOMSVGAnimatedLength;
 
-[scriptable, uuid(389ce629-1aea-41f4-aec3-ba274bbc7433)]
+[scriptable, uuid(04c1aeb1-259c-41a6-9221-c2f1bdf5ca5f)]
 interface nsIDOMSVGUseElement
   : nsIDOMSVGElement
 /*
   The SVG DOM makes use of multiple interface inheritance.
   Since XPCOM only supports single interface inheritance,
   the best thing that we can do is to promise that whenever
   an object implements _this_ interface it will also
   implement the following interfaces. (We then have to QI to
--- a/dom/interfaces/xul/nsIDOMXULButtonElement.idl
+++ b/dom/interfaces/xul/nsIDOMXULButtonElement.idl
@@ -33,17 +33,17 @@
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMXULLabeledControlEl.idl"
 
-[scriptable, uuid(e6944903-b740-43cb-b038-a075178b64f7)]
+[scriptable, uuid(432faebf-2578-4878-8721-b0863284e6d1)]
 interface nsIDOMXULButtonElement : nsIDOMXULLabeledControlElement {
   const short CHECKSTATE_UNCHECKED = 0;
   const short CHECKSTATE_CHECKED = 1;
   const short CHECKSTATE_MIXED = 2;
 
   attribute DOMString type;
   attribute DOMString dlgType;
 
--- a/dom/interfaces/xul/nsIDOMXULCheckboxElement.idl
+++ b/dom/interfaces/xul/nsIDOMXULCheckboxElement.idl
@@ -35,17 +35,17 @@
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMElement.idl"
 #include "nsIDOMXULLabeledControlEl.idl"
 
-[scriptable, uuid(064aa0c2-3442-489c-a4f5-a42b626dcc53)]
+[scriptable, uuid(f206d13f-6d1f-48b8-9cda-cefef3549457)]
 interface nsIDOMXULCheckboxElement : nsIDOMXULLabeledControlElement {
   const short CHECKSTATE_UNCHECKED = 0;
   const short CHECKSTATE_CHECKED = 1;
   const short CHECKSTATE_MIXED = 2;
 
   attribute boolean checked;
   attribute long checkState;
   attribute boolean autoCheck;
--- a/dom/interfaces/xul/nsIDOMXULContainerElement.idl
+++ b/dom/interfaces/xul/nsIDOMXULContainerElement.idl
@@ -34,26 +34,26 @@
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMXULElement.idl"
 interface nsIDOMXULContainerElement;
 
-[scriptable, uuid(b7fdd700-0286-42a9-888f-90b3bd782380)]
+[scriptable, uuid(42897cc8-190f-4483-a2c1-807fc76d9e78)]
 interface nsIDOMXULContainerItemElement : nsIDOMXULElement
 {
   /**
    * Returns the parent container if any.
    */
   readonly attribute nsIDOMXULContainerElement parentContainer;
 };
 
-[scriptable, uuid(dc498531-6a41-4749-a6d4-e4c42ab540d7)]
+[scriptable, uuid(ffa9129c-d183-4a2d-82e0-18135a57286e)]
 interface nsIDOMXULContainerElement : nsIDOMXULContainerItemElement
 {
   /**
    * Creates an item for the given label and value and appends it to the
    * container.
    *
    * @param aLabel - the label for the new item
    * @param aValue - the value of the new item
--- a/dom/interfaces/xul/nsIDOMXULControlElement.idl
+++ b/dom/interfaces/xul/nsIDOMXULControlElement.idl
@@ -37,17 +37,17 @@
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMElement.idl"
 #include "nsIDOMXULElement.idl"
 
 interface nsIControllers;
 
-[scriptable, uuid(1ccc8e49-631d-4062-a85d-c561fc788cdf)]
+[scriptable, uuid(ffbc1cee-6dd5-4716-b383-255b1e89fb16)]
 interface nsIDOMXULControlElement : nsIDOMXULElement {
   attribute boolean disabled;
   attribute long tabIndex;
   
 // XXX defined in XULElement, but should be defined here
 //  readonly attribute nsIControllers controllers;
   
 //  void focus();
--- a/dom/interfaces/xul/nsIDOMXULDescriptionElement.idl
+++ b/dom/interfaces/xul/nsIDOMXULDescriptionElement.idl
@@ -35,15 +35,15 @@
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMXULElement.idl"
 
-[scriptable, uuid(4b510e54-320f-4e6f-84bf-1cfbd4b363d6)]
+[scriptable, uuid(c812217d-560d-48d4-b517-df42140d45cd)]
 interface nsIDOMXULDescriptionElement : nsIDOMXULElement {
   attribute boolean disabled;
   attribute boolean crop;
   attribute DOMString value;
 };
 
--- a/dom/interfaces/xul/nsIDOMXULElement.idl
+++ b/dom/interfaces/xul/nsIDOMXULElement.idl
@@ -41,17 +41,17 @@
 
 interface nsIRDFCompositeDataSource;
 interface nsIXULTemplateBuilder;
 interface nsIRDFResource;
 interface nsIControllers;
 interface nsIBoxObject;
 
 
-[scriptable, uuid(a98a4472-a549-4b84-b9ea-e6eb679228dd)]
+[scriptable, uuid(5e0a7c2c-fdb6-459d-a67b-549181218c31)]
 interface nsIDOMXULElement : nsIDOMElement
 {
   attribute DOMString                 id;
   attribute DOMString                 className;
 
   // Layout properties
   attribute DOMString align;
   attribute DOMString dir;
--- a/dom/interfaces/xul/nsIDOMXULImageElement.idl
+++ b/dom/interfaces/xul/nsIDOMXULImageElement.idl
@@ -32,13 +32,13 @@
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMElement.idl"
 #include "nsIDOMXULElement.idl"
 
-[scriptable, uuid(b210e5de-8a31-4ae3-99e9-4d547d0409b3)]
+[scriptable, uuid(857a58a8-af19-4301-90ff-673bd8477cb9)]
 interface nsIDOMXULImageElement : nsIDOMXULElement {
   attribute DOMString src;
 };
 
--- a/dom/interfaces/xul/nsIDOMXULLabelElement.idl
+++ b/dom/interfaces/xul/nsIDOMXULLabelElement.idl
@@ -34,14 +34,14 @@
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMXULDescriptionElement.idl"
 
-[scriptable, uuid(856417d4-5a5b-404c-91ab-692fa2c0c64f)]
+[scriptable, uuid(6020c1bd-e19a-4014-aa55-15bcf23272bd)]
 interface nsIDOMXULLabelElement : nsIDOMXULDescriptionElement {
   attribute DOMString accessKey;
   attribute DOMString control;
 };
 
--- a/dom/interfaces/xul/nsIDOMXULLabeledControlEl.idl
+++ b/dom/interfaces/xul/nsIDOMXULLabeledControlEl.idl
@@ -35,17 +35,17 @@
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMElement.idl"
 #include "nsIDOMXULControlElement.idl"
 
-[scriptable, uuid(a565ccec-2253-4429-9fd3-703a584c47c6)]
+[scriptable, uuid(0c5cb578-f2da-4699-82d8-173798a89c5b)]
 interface nsIDOMXULLabeledControlElement : nsIDOMXULControlElement {
   attribute DOMString crop;
   attribute DOMString image;
   attribute DOMString label;
   attribute DOMString accessKey;
   attribute DOMString command;
 
 //  void doCommand();
--- a/dom/interfaces/xul/nsIDOMXULMenuListElement.idl
+++ b/dom/interfaces/xul/nsIDOMXULMenuListElement.idl
@@ -35,17 +35,17 @@
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMXULSelectCntrlEl.idl"
 interface nsIDOMXULTextBoxElement;
 
-[scriptable, uuid(1494cf71-6e76-4a9e-b53b-7c90ca8c7ef6)]
+[scriptable, uuid(625ed65c-53cb-4994-9185-40dbb7816482)]
 interface nsIDOMXULMenuListElement : nsIDOMXULSelectControlElement {
   attribute boolean editable;
   attribute boolean open;
   
   // label of selected option or value of textfield for editable menu lists
   readonly attribute DOMString label;
 
   attribute DOMString crop;
--- a/dom/interfaces/xul/nsIDOMXULMultSelectCntrlEl.idl
+++ b/dom/interfaces/xul/nsIDOMXULMultSelectCntrlEl.idl
@@ -34,17 +34,17 @@
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMXULSelectCntrlEl.idl"
 
-[scriptable, uuid(beb96a27-956d-4a10-8a99-69c19b746e69)]
+[scriptable, uuid(98c367ca-ac5b-493c-83e9-1b6a67aee57b)]
 interface nsIDOMXULMultiSelectControlElement : nsIDOMXULSelectControlElement
 {
   attribute DOMString selType;
 
   attribute nsIDOMXULSelectControlItemElement currentItem;
   attribute long currentIndex;
 
   readonly attribute nsIDOMNodeList selectedItems;
--- a/dom/interfaces/xul/nsIDOMXULPopupElement.idl
+++ b/dom/interfaces/xul/nsIDOMXULPopupElement.idl
@@ -34,17 +34,17 @@
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMElement.idl"
 #include "nsIDOMXULElement.idl"
 
-[scriptable, uuid(47c54747-d656-48d3-b868-bce11e35ad3c)]
+[scriptable, uuid(da02c027-1768-46df-99cc-a88f29cd70f6)]
 interface nsIDOMXULPopupElement : nsIDOMXULElement {
   const unsigned short      BEFORE_START                   = 1;
   const unsigned short      BEFORE_END                     = 2;
   const unsigned short      AFTER_START                    = 3;
   const unsigned short      AFTER_END                      = 4;
   const unsigned short      START_BEFORE                   = 5;
   const unsigned short      START_AFTER                    = 6;
   const unsigned short      END_BEFORE                     = 7;
--- a/dom/interfaces/xul/nsIDOMXULSelectCntrlEl.idl
+++ b/dom/interfaces/xul/nsIDOMXULSelectCntrlEl.idl
@@ -34,17 +34,17 @@
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMXULControlElement.idl"
 interface nsIDOMXULSelectControlItemElement;
 
-[scriptable, uuid(07b90003-5c15-4e49-b5a1-fbb3c59e22c4)]
+[scriptable, uuid(628edef3-4e9c-472f-b6af-09b02c29eb9c)]
 interface nsIDOMXULSelectControlElement : nsIDOMXULControlElement {
   attribute nsIDOMXULSelectControlItemElement selectedItem;
   attribute long selectedIndex;
 
   attribute DOMString value;
   
   nsIDOMXULSelectControlItemElement appendItem(in DOMString label, in DOMString value);
   nsIDOMXULSelectControlItemElement insertItemAt(in long index, in DOMString label, in DOMString value);
--- a/dom/interfaces/xul/nsIDOMXULSelectCntrlItemEl.idl
+++ b/dom/interfaces/xul/nsIDOMXULSelectCntrlItemEl.idl
@@ -34,17 +34,17 @@
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMXULElement.idl"
 interface nsIDOMXULSelectControlElement;
 
-[scriptable, uuid(d3d60c0d-ab7d-41cd-8193-a319862cf4e6)]
+[scriptable, uuid(8768e500-fd83-462e-8e2a-3e3ac40014d5)]
 interface nsIDOMXULSelectControlItemElement : nsIDOMXULElement {
   attribute boolean disabled;
   attribute DOMString crop;
   attribute DOMString image;
   attribute DOMString label;
   attribute DOMString accessKey;
   attribute DOMString command;
   
--- a/dom/interfaces/xul/nsIDOMXULTextboxElement.idl
+++ b/dom/interfaces/xul/nsIDOMXULTextboxElement.idl
@@ -34,17 +34,17 @@
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsIDOMXULLabeledControlEl.idl"
 interface nsIDOMHTMLInputElement;
 
-[scriptable, uuid(fd95a3d4-a142-4a02-9805-26591f8a3d39)]
+[scriptable, uuid(ebbd6bfd-d889-4321-9b29-027b8dbaecf6)]
 interface nsIDOMXULTextBoxElement : nsIDOMXULControlElement
 {
   // inputField may be any type of editable field, such as an
   // HTML <input type="text"> or <textarea>
   readonly attribute nsIDOMNode inputField;
 
   readonly attribute long textLength;
   attribute long maxLength;
--- a/dom/interfaces/xul/nsIDOMXULTreeElement.idl
+++ b/dom/interfaces/xul/nsIDOMXULTreeElement.idl
@@ -40,17 +40,17 @@
 interface nsITreeColumns;
 interface nsITreeView;
 interface nsIDOMXULTextBoxElement;
 
 /**
  * @status UNDER_DEVELOPMENT
  */
 
-[scriptable, uuid(2aebb208-894e-4225-afbf-61182e540921)]
+[scriptable, uuid(8b57c2be-c8c4-44fc-bc80-4f311bc18aa4)]
 interface nsIDOMXULTreeElement : nsIDOMXULElement
 {
 
   readonly attribute nsITreeColumns columns;
 
   attribute nsITreeView view;
 
   readonly attribute nsIDOMElement body;
--- a/extensions/widgetutils/src/nsWidgetUtils.cpp
+++ b/extensions/widgetutils/src/nsWidgetUtils.cpp
@@ -38,17 +38,16 @@
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsCURILoader.h"
 #include "nsICategoryManager.h"
 #include "nsIDOMDocument.h"
 #include "nsIDOMHTMLElement.h"
 #include "nsIDOMHTMLIFrameElement.h"
-#include "nsIDOMNSElement.h"
 #include "nsIDOMNode.h"
 #include "nsIDOMNodeList.h"
 #include "nsIDOMWindow.h"
 #include "nsIDOMWindowCollection.h"
 #include "nsIDocument.h"
 #include "nsIGenericFactory.h"
 #include "nsIObserver.h"
 #include "nsIPresShell.h"
--- a/js/xpconnect/src/dom_quickstubs.qsconf
+++ b/js/xpconnect/src/dom_quickstubs.qsconf
@@ -139,29 +139,49 @@ members = [
     'nsIDOMElement.getElementsByTagNameNS',
     'nsIDOMElement.hasAttributeNS',
     'nsIDOMElement.tagName',
     'nsIDOMElement.setAttributeNS',
     'nsIDOMElement.hasAttribute',
     'nsIDOMElement.getAttributeNS',
     'nsIDOMElement.onmouseenter',
     'nsIDOMElement.onmouseleave',
+    'nsIDOMElement.getElementsByClassName',
+    'nsIDOMElement.getClientRects',
+    'nsIDOMElement.getBoundingClientRect',
+    'nsIDOMElement.scrollTop',
+    'nsIDOMElement.scrollLeft',
+    'nsIDOMElement.scrollHeight',
+    'nsIDOMElement.scrollWidth',
+    'nsIDOMElement.clientTop',
+    'nsIDOMElement.clientLeft',
+    'nsIDOMElement.clientHeight',
+    'nsIDOMElement.clientWidth',
+    'nsIDOMElement.firstElementChild',
+    'nsIDOMElement.lastElementChild',
+    'nsIDOMElement.previousElementSibling',
+    'nsIDOMElement.nextElementSibling',
+    'nsIDOMElement.childElementCount',
+    'nsIDOMElement.children',
+    'nsIDOMElement.classList',
+    'nsIDOMElement.setCapture',
+    'nsIDOMElement.releaseCapture',
+    'nsIDOMElement.mozMatchesSelector',
     'nsIDOMNamedNodeMap.item',
     'nsIDOMNamedNodeMap.length',
     'nsIDOMNode.*',
     'nsIDOMNodeList.*',
     'nsIDOMNodeSelector.querySelector',
     'nsIDOMNodeSelector.querySelectorAll',
     'nsIDOMText.splitText',
     'nsIDOMDOMImplementation.*',
     'nsIDOMDOMStringList.*',
     'nsIDOMDOMTokenList.*',
     'nsIDOMDOMSettableTokenList.*',
     'nsIDOMXULDocument.getBoxObjectFor',
-    'nsIDOMNSElement.*',
 
     # dom/interfaces/css
     'nsIDOMElementCSSInlineStyle.*',
     'nsIDOMCSS2Properties.*',
     'nsIDOMRect.*',
     'nsIDOMCSSStyleDeclaration.*',
 
     # dom/interfaces/events
@@ -677,108 +697,105 @@ customMethodCalls = {
         'thisType': 'nsICSSDeclaration',
         'additionalArguments': 'const nsCSSProperty prop',
         'additionalArgumentValues': 'QS_CSS_PROP_%s',
         'getter_code': '    nsString result;\n' + 
                        '    rv = self->GetPropertyValue(prop, result);',
         'setter_code': '    rv = self->SetPropertyValue(prop, arg0);',
         'canFail': True
         },
-    'nsIDOMNSElement_': {
-        'thisType': 'nsGenericElement'
-        },
-    'nsIDOMNSElement_GetScrollTop': {
+    'nsIDOMElement_GetScrollTop': {
         'thisType': 'nsGenericElement',
         'code': '    PRInt32 result = self->GetScrollTop();',
         'canFail': False
         },
-    'nsIDOMNSElement_SetScrollTop': {
+    'nsIDOMElement_SetScrollTop': {
         'thisType': 'nsGenericElement',
         'canFail': False
         },
-    'nsIDOMNSElement_GetScrollLeft': {
+    'nsIDOMElement_GetScrollLeft': {
         'thisType': 'nsGenericElement',
         'code': '    PRInt32 result = self->GetScrollLeft();',
         'canFail': False
         },
-    'nsIDOMNSElement_SetScrollLeft': {
+    'nsIDOMElement_SetScrollLeft': {
         'thisType': 'nsGenericElement',
         'canFail': False
         },
-    'nsIDOMNSElement_GetScrollHeight': {
+    'nsIDOMElement_GetScrollHeight': {
         'thisType': 'nsGenericElement',
         'code': '    PRInt32 result = self->GetScrollHeight();',
         'canFail': False
         },
-    'nsIDOMNSElement_GetScrollWidth': {
+    'nsIDOMElement_GetScrollWidth': {
         'thisType': 'nsGenericElement',
         'code': '    PRInt32 result = self->GetScrollWidth();',
         'canFail': False
         },
-    'nsIDOMNSElement_GetClientTop': {
+    'nsIDOMElement_GetClientTop': {
         'thisType': 'nsGenericElement',
         'code': '    PRInt32 result = self->GetClientTop();',
         'canFail': False
         },
-    'nsIDOMNSElement_SetClientTop': {
+    'nsIDOMElement_SetClientTop': {
         'thisType': 'nsGenericElement',
         'canFail': False
         },
-    'nsIDOMNSElement_GetClientLeft': {
+    'nsIDOMElement_GetClientLeft': {
         'thisType': 'nsGenericElement',
         'code': '    PRInt32 result = self->GetClientLeft();',
         'canFail': False
         },
-    'nsIDOMNSElement_SetClientLeft': {
+    'nsIDOMElement_SetClientLeft': {
         'thisType': 'nsGenericElement',
         'canFail': False
         },
-    'nsIDOMNSElement_GetClientHeight': {
+    'nsIDOMElement_GetClientHeight': {
         'thisType': 'nsGenericElement',
         'code': '    PRInt32 result = self->GetClientHeight();',
         'canFail': False
         },
-    'nsIDOMNSElement_GetClientWidth': {
+    'nsIDOMElement_GetClientWidth': {
         'thisType': 'nsGenericElement',
         'code': '    PRInt32 result = self->GetClientWidth();',
         'canFail': False
         },
-    'nsIDOMNSElement_GetFirstElementChild': {
+    'nsIDOMElement_GetFirstElementChild': {
         'thisType': 'nsGenericElement',
         'code': '    nsIContent *result = self->GetFirstElementChild();',
         'canFail': False
         },
-    'nsIDOMNSElement_GetLastElementChild': {
+    'nsIDOMElement_GetLastElementChild': {
         'thisType': 'nsGenericElement',
         'code': '    nsIContent *result = self->GetLastElementChild();',
         'canFail': False
         },
-    'nsIDOMNSElement_GetPreviousElementSibling': {
+    'nsIDOMElement_GetPreviousElementSibling': {
         'thisType': 'nsGenericElement',
         'code': '    nsIContent *result = self->GetPreviousElementSibling();',
         'canFail': False
         },
-    'nsIDOMNSElement_GetNextElementSibling': {
+    'nsIDOMElement_GetNextElementSibling': {
         'thisType': 'nsGenericElement',
         'code': '    nsIContent *result = self->GetNextElementSibling();',
         'canFail': False
         },
-    'nsIDOMNSElement_GetClassList': {
+    'nsIDOMElement_GetClassList': {
         'thisType': 'nsGenericElement',
         'code': '    nsIDOMDOMTokenList *result = self->GetClassList(&rv);'
         },
-    'nsIDOMNSElement_SetCapture': {
+    'nsIDOMElement_SetCapture': {
         'thisType': 'nsGenericElement',
         'canFail': False
         },
-    'nsIDOMNSElement_ReleaseCapture': {
+    'nsIDOMElement_ReleaseCapture': {
         'thisType': 'nsGenericElement',
         'canFail': False
         },
-    'nsIDOMNSElement_MozMatchesSelector': {
+    'nsIDOMElement_MozMatchesSelector': {
         'thisType': 'nsGenericElement',
         'code': '    bool result = self->MozMatchesSelector(arg0, &rv);',
         },
     'nsIDOMNodeSelector_QuerySelector': {
         'thisType': 'nsINode',
         'code': '    nsIContent* result = '
                 'nsGenericElement::doQuerySelector(self, arg0, &rv);'
         },
--- a/widget/tests/TestWinTSF.cpp
+++ b/widget/tests/TestWinTSF.cpp
@@ -91,17 +91,17 @@ template<class T> class nsReadingIterato
 #include "nsIWebProgress.h"
 #include "nsIWebProgressListener.h"
 #include "nsIInterfaceRequestorUtils.h"
 #include "nsIDOMHTMLDocument.h"
 #include "nsIDOMHTMLBodyElement.h"
 #include "nsIDOMHTMLElement.h"
 #include "nsIDOMHTMLInputElement.h"
 #include "nsIDOMHTMLTextAreaElement.h"
-#include "nsIDOMNSElement.h"
+#include "nsIDOMElement.h"
 #include "nsISelectionController.h"
 #include "nsIViewManager.h"
 #include "nsTArray.h"
 #include "nsGUIEvent.h"
 
 #ifndef MOZILLA_INTERNAL_API
 #undef nsString_h___
 #undef nsAString_h___
@@ -2920,244 +2920,244 @@ TestApp::TestScrollMessages(void)
 
   nsCOMPtr<nsIWidget> widget;
   if (!GetWidget(getter_AddRefs(widget))) {
     fail("TestScrollMessages: get nsIWidget");
     mTextArea->SetAttribute(NS_LITERAL_STRING("style"), EmptyString());
     return false;
   }
 
-  nsCOMPtr<nsIDOMNSElement> textAreaNS(do_QueryInterface(mTextArea));
-  if (!textAreaNS) {
-    fail("TestScrollMessages: get nsIDOMNSElement");
+  nsCOMPtr<nsIDOMElement> textArea = do_QueryInterface(mTextArea);
+  if (!textArea) {
+    fail("TestScrollMessages: get nsIDOMElement");
     mTextArea->SetAttribute(NS_LITERAL_STRING("style"), EmptyString());
     return false;
   }
 
 #define DO_CHECK(aFailureCondition, aDescription) \
   if (aFailureCondition) { \
     nsCAutoString str(aDescription); \
     str.Append(": "); \
     str.Append(#aFailureCondition); \
     fail(str.get()); \
     mTextArea->SetAttribute(NS_LITERAL_STRING("style"), EmptyString()); \
     return false; \
   }
 
   HWND wnd = (HWND)widget->GetNativeData(NS_NATIVE_WINDOW);
 
-  textAreaNS->SetScrollTop(0);
-  textAreaNS->SetScrollLeft(0);
+  textArea->SetScrollTop(0);
+  textArea->SetScrollLeft(0);
 
   if (::SendMessage(wnd, WM_VSCROLL, SB_LINEDOWN, 0) != 0) {
     fail("TestScrollMessages: SendMessage WM_VSCROLL #1");
     mTextArea->SetAttribute(NS_LITERAL_STRING("style"), EmptyString());
     return false;
   }
 
   PRInt32 x, y, prevX, prevY;
-  textAreaNS->GetScrollTop(&y);
-  textAreaNS->GetScrollLeft(&x);
+  textArea->GetScrollTop(&y);
+  textArea->GetScrollLeft(&x);
 
   DO_CHECK(x != 0, "TestScrollMessages: SendMessage WM_VSCROLL #1");
   DO_CHECK(y == 0, "TestScrollMessages: SendMessage WM_VSCROLL #1");
 
   if (::SendMessage(wnd, WM_HSCROLL, SB_LINERIGHT, 0) != 0) {
     fail("TestScrollMessages: SendMessage WM_HSCROLL #1");
     mTextArea->SetAttribute(NS_LITERAL_STRING("style"), EmptyString());
     return false;
   }
 
   prevX = x;
   prevY = y;
-  textAreaNS->GetScrollTop(&y);
-  textAreaNS->GetScrollLeft(&x);
+  textArea->GetScrollTop(&y);
+  textArea->GetScrollLeft(&x);
 
   const PRInt32 kLineWidth  = x;
   const PRInt32 kLineHeight = y;
 
   DO_CHECK(x == 0,     "TestScrollMessages: SendMessage WM_HSCROLL #1");
   DO_CHECK(y != prevY, "TestScrollMessages: SendMessage WM_HSCROLL #1");
 
   if (::SendMessage(wnd, WM_VSCROLL, SB_LINEUP, 0) != 0) {
     fail("TestScrollMessages: SendMessage WM_VSCROLL #2");
     mTextArea->SetAttribute(NS_LITERAL_STRING("style"), EmptyString());
     return false;
   }
 
   prevX = x;
   prevY = y;
-  textAreaNS->GetScrollTop(&y);
-  textAreaNS->GetScrollLeft(&x);
+  textArea->GetScrollTop(&y);
+  textArea->GetScrollLeft(&x);
 
   DO_CHECK(x != prevX, "TestScrollMessages: SendMessage WM_VSCROLL #2");
   DO_CHECK(y != 0,     "TestScrollMessages: SendMessage WM_VSCROLL #2");
 
   if (::SendMessage(wnd, WM_HSCROLL, SB_LINELEFT, 0) != 0) {
     fail("TestScrollMessages: SendMessage WM_HSCROLL #2");
     mTextArea->SetAttribute(NS_LITERAL_STRING("style"), EmptyString());
     return false;
   }
 
   prevX = x;
   prevY = y;
-  textAreaNS->GetScrollTop(&y);
-  textAreaNS->GetScrollLeft(&x);
+  textArea->GetScrollTop(&y);
+  textArea->GetScrollLeft(&x);
 
   DO_CHECK(x != 0, "TestScrollMessages: SendMessage WM_HSCROLL #2");
   DO_CHECK(y != 0, "TestScrollMessages: SendMessage WM_HSCROLL #2");
 
   if (::SendMessage(wnd, WM_VSCROLL, SB_PAGEDOWN, 0) != 0) {
     fail("TestScrollMessages: SendMessage WM_VSCROLL #3");
     mTextArea->SetAttribute(NS_LITERAL_STRING("style"), EmptyString());
     return false;
   }
 
   prevX = x;
   prevY = y;
-  textAreaNS->GetScrollTop(&y);
-  textAreaNS->GetScrollLeft(&x);
+  textArea->GetScrollTop(&y);
+  textArea->GetScrollLeft(&x);
 
   DO_CHECK(x != 0,           "TestScrollMessages: SendMessage WM_VSCROLL #3");
   DO_CHECK(y <= kLineHeight, "TestScrollMessages: SendMessage WM_VSCROLL #3");
 
   if (::SendMessage(wnd, WM_HSCROLL, SB_PAGERIGHT, 0) != 0) {
     fail("TestScrollMessages: SendMessage WM_HSCROLL #3");
     mTextArea->SetAttribute(NS_LITERAL_STRING("style"), EmptyString());
     return false;
   }
 
   prevX = x;
   prevY = y;
-  textAreaNS->GetScrollTop(&y);
-  textAreaNS->GetScrollLeft(&x);
+  textArea->GetScrollTop(&y);
+  textArea->GetScrollLeft(&x);
 
   DO_CHECK(x <= kLineWidth, "TestScrollMessages: SendMessage WM_HSCROLL #3");
   DO_CHECK(y != prevY,      "TestScrollMessages: SendMessage WM_HSCROLL #3");
 
   const PRInt32 kPageWidth  = x;
   const PRInt32 kPageHeight = y;
 
   ::SendMessage(wnd, WM_VSCROLL, SB_LINEDOWN, 0);
   ::SendMessage(wnd, WM_VSCROLL, SB_LINEUP, 0);
   ::SendMessage(wnd, WM_HSCROLL, SB_LINERIGHT, 0);
   ::SendMessage(wnd, WM_HSCROLL, SB_LINELEFT, 0);
 
   prevX = x;
   prevY = y;
-  textAreaNS->GetScrollTop(&y);
-  textAreaNS->GetScrollLeft(&x);
+  textArea->GetScrollTop(&y);
+  textArea->GetScrollLeft(&x);
 
   DO_CHECK(x != prevX, "TestScrollMessages: SB_LINELEFT scrolled wrong amount");
   DO_CHECK(y != prevY, "TestScrollMessages: SB_LINEUP scrolled wrong amount");
 
   if (::SendMessage(wnd, WM_VSCROLL, SB_PAGEUP, 0) != 0) {
     fail("TestScrollMessages: SendMessage WM_VSCROLL #4");
     mTextArea->SetAttribute(NS_LITERAL_STRING("style"), EmptyString());
     return false;
   }
 
   prevX = x;
   prevY = y;
-  textAreaNS->GetScrollTop(&y);
-  textAreaNS->GetScrollLeft(&x);
+  textArea->GetScrollTop(&y);
+  textArea->GetScrollLeft(&x);
 
   DO_CHECK(x != prevX, "TestScrollMessages: SendMessage WM_VSCROLL #4");
   DO_CHECK(y != 0,     "TestScrollMessages: SendMessage WM_VSCROLL #4");
 
   if (::SendMessage(wnd, WM_HSCROLL, SB_PAGELEFT, 0) != 0) {
     fail("TestScrollMessages: SendMessage WM_HSCROLL #4");
     mTextArea->SetAttribute(NS_LITERAL_STRING("style"), EmptyString());
     return false;
   }
 
   prevX = x;
   prevY = y;
-  textAreaNS->GetScrollTop(&y);
-  textAreaNS->GetScrollLeft(&x);
+  textArea->GetScrollTop(&y);
+  textArea->GetScrollLeft(&x);
 
   DO_CHECK(x != 0, "TestScrollMessages: SendMessage WM_HSCROLL #4");
   DO_CHECK(y != 0, "TestScrollMessages: SendMessage WM_HSCROLL #4");
 
   if (::SendMessage(wnd, WM_VSCROLL, SB_BOTTOM, 0) != 0) {
     fail("TestScrollMessages: SendMessage WM_VSCROLL #5");
     mTextArea->SetAttribute(NS_LITERAL_STRING("style"), EmptyString());
     return false;
   }
 
   prevX = x;
   prevY = y;
-  textAreaNS->GetScrollTop(&y);
-  textAreaNS->GetScrollLeft(&x);
+  textArea->GetScrollTop(&y);
+  textArea->GetScrollLeft(&x);
 
   DO_CHECK(x != 0,           "TestScrollMessages: SendMessage WM_VSCROLL #5");
   DO_CHECK(y <= kPageHeight, "TestScrollMessages: SendMessage WM_VSCROLL #5");
 
   if (::SendMessage(wnd, WM_HSCROLL, SB_RIGHT, 0) != 0) {
     fail("TestScrollMessages: SendMessage WM_HSCROLL #6");
     mTextArea->SetAttribute(NS_LITERAL_STRING("style"), EmptyString());
     return false;
   }
 
   prevX = x;
   prevY = y;
-  textAreaNS->GetScrollTop(&y);
-  textAreaNS->GetScrollLeft(&x);
+  textArea->GetScrollTop(&y);
+  textArea->GetScrollLeft(&x);
 
   DO_CHECK(x <= kPageWidth, "TestScrollMessages: SendMessage WM_HSCROLL #5");
   DO_CHECK(y != prevY,      "TestScrollMessages: SendMessage WM_HSCROLL #5");
 
   ::SendMessage(wnd, WM_VSCROLL, SB_LINEDOWN, 0);
   ::SendMessage(wnd, WM_HSCROLL, SB_LINERIGHT, 0);
 
   prevX = x;
   prevY = y;
-  textAreaNS->GetScrollTop(&y);
-  textAreaNS->GetScrollLeft(&x);
+  textArea->GetScrollTop(&y);
+  textArea->GetScrollLeft(&x);
 
   DO_CHECK(x != prevX, "SB_RIGHT didn't scroll to right most");
   DO_CHECK(y != prevY, "SB_BOTTOM didn't scroll to bottom most");
 
   ::SendMessage(wnd, WM_VSCROLL, SB_PAGEUP, 0);
   ::SendMessage(wnd, WM_VSCROLL, SB_PAGEDOWN, 0);
   ::SendMessage(wnd, WM_HSCROLL, SB_PAGELEFT, 0);
   ::SendMessage(wnd, WM_HSCROLL, SB_PAGERIGHT, 0);
 
   prevX = x;
   prevY = y;
-  textAreaNS->GetScrollTop(&y);
-  textAreaNS->GetScrollLeft(&x);
+  textArea->GetScrollTop(&y);
+  textArea->GetScrollLeft(&x);
 
   DO_CHECK(x != prevX, "TestScrollMessages: SB_PAGELEFT scrolled wrong amount");
   DO_CHECK(y != prevY, "TestScrollMessages: SB_PAGEUP scrolled wrong amount");
 
   if (::SendMessage(wnd, WM_VSCROLL, SB_TOP, 0) != 0) {
     fail("TestScrollMessages: SendMessage WM_VSCROLL #6");
     mTextArea->SetAttribute(NS_LITERAL_STRING("style"), EmptyString());
     return false;
   }
 
   prevX = x;
   prevY = y;
-  textAreaNS->GetScrollTop(&y);
-  textAreaNS->GetScrollLeft(&x);
+  textArea->GetScrollTop(&y);
+  textArea->GetScrollLeft(&x);
 
   DO_CHECK(x != prevX, "TestScrollMessages: SendMessage WM_VSCROLL #6");
   DO_CHECK(y != 0,     "TestScrollMessages: SendMessage WM_VSCROLL #6");
 
   if (::SendMessage(wnd, WM_HSCROLL, SB_LEFT, 0) != 0) {
     fail("TestScrollMessages: SendMessage WM_HSCROLL #4");
     mTextArea->SetAttribute(NS_LITERAL_STRING("style"), EmptyString());
     return false;
   }
 
   prevX = x;
   prevY = y;
-  textAreaNS->GetScrollTop(&y);
-  textAreaNS->GetScrollLeft(&x);
+  textArea->GetScrollTop(&y);
+  textArea->GetScrollLeft(&x);
 
   DO_CHECK(x != 0, "TestScrollMessages: SendMessage WM_HSCROLL #6");
   DO_CHECK(y != 0, "TestScrollMessages: SendMessage WM_HSCROLL #6");
 #undef DO_CHECK
 
   mTextArea->SetAttribute(NS_LITERAL_STRING("style"), EmptyString());
   return true;
 }