diff --git a/dom/interfaces/xul/nsIDOMXULElement.idl b/dom/interfaces/xul/nsIDOMXULElement.idl index c28a3974a7d4..5c4aa669b2ee 100644 --- a/dom/interfaces/xul/nsIDOMXULElement.idl +++ b/dom/interfaces/xul/nsIDOMXULElement.idl @@ -6,7 +6,6 @@ #include "nsIDOMElement.idl" interface nsIRDFCompositeDataSource; -interface nsIXULTemplateBuilder; interface nsIRDFResource; interface nsIControllers; interface nsIBoxObject; @@ -64,7 +63,6 @@ interface nsIDOMXULElement : nsIDOMElement attribute boolean allowEvents; readonly attribute nsIRDFCompositeDataSource database; - readonly attribute nsIXULTemplateBuilder builder; readonly attribute nsIRDFResource resource; readonly attribute nsIControllers controllers; readonly attribute nsIBoxObject boxObject; diff --git a/dom/xul/nsXULElement.cpp b/dom/xul/nsXULElement.cpp index 3543ad5d8b3b..280a57f6c7c3 100644 --- a/dom/xul/nsXULElement.cpp +++ b/dom/xul/nsXULElement.cpp @@ -1423,13 +1423,6 @@ nsXULElement::GetDatabase() } -NS_IMETHODIMP -nsXULElement::GetBuilder(nsIXULTemplateBuilder** aBuilder) -{ - *aBuilder = GetBuilder().take(); - return NS_OK; -} - already_AddRefed nsXULElement::GetBuilder() { diff --git a/dom/xul/templates/nsXULSortService.cpp b/dom/xul/templates/nsXULSortService.cpp index ab3e13461086..fd5b7d131b91 100644 --- a/dom/xul/templates/nsXULSortService.cpp +++ b/dom/xul/templates/nsXULSortService.cpp @@ -32,7 +32,7 @@ #include "nsQuickSort.h" #include "nsWhitespaceTokenizer.h" #include "nsXULSortService.h" -#include "nsIDOMXULElement.h" +#include "nsXULElement.h" #include "nsIXULTemplateBuilder.h" #include "nsTemplateMatch.h" #include "nsICollation.h" @@ -107,10 +107,9 @@ XULSortServiceImpl::GetItemsToSort(nsIContent *aContainer, { // if there is a template attached to the sort node, use the builder to get // the items to be sorted - nsCOMPtr element = do_QueryInterface(aContainer); + RefPtr element = nsXULElement::FromContent(aContainer); if (element) { - nsCOMPtr builder; - element->GetBuilder(getter_AddRefs(builder)); + nsCOMPtr builder = element->GetBuilder(); if (builder) { nsresult rv = builder->GetQueryProcessor(getter_AddRefs(aSortState->processor)); diff --git a/layout/xul/moz.build b/layout/xul/moz.build index d65b77152ef9..0b398ec69f93 100644 --- a/layout/xul/moz.build +++ b/layout/xul/moz.build @@ -102,6 +102,7 @@ LOCAL_INCLUDES += [ '../painting', '../style', '/dom/base', + '/dom/xul', ] if CONFIG['GNU_CXX']: diff --git a/layout/xul/nsXULPopupManager.cpp b/layout/xul/nsXULPopupManager.cpp index 3920b600584e..54a5db42725d 100644 --- a/layout/xul/nsXULPopupManager.cpp +++ b/layout/xul/nsXULPopupManager.cpp @@ -12,7 +12,7 @@ #include "nsContentUtils.h" #include "nsIDOMDocument.h" #include "nsIDOMEvent.h" -#include "nsIDOMXULElement.h" +#include "nsXULElement.h" #include "nsIDOMXULMenuListElement.h" #include "nsIXULDocument.h" #include "nsIXULTemplateBuilder.h" @@ -678,10 +678,9 @@ nsXULPopupManager::ShowMenu(nsIContent *aMenu, if (aMenu) { nsIContent* element = aMenu; do { - nsCOMPtr xulelem = do_QueryInterface(element); + RefPtr xulelem = nsXULElement::FromContent(element); if (xulelem) { - nsCOMPtr builder; - xulelem->GetBuilder(getter_AddRefs(builder)); + nsCOMPtr builder = xulelem->GetBuilder(); if (builder) { builder->CreateContents(aMenu, true); break; diff --git a/layout/xul/tree/TreeBoxObject.cpp b/layout/xul/tree/TreeBoxObject.cpp index 2265d9ee55d1..87a094f27825 100644 --- a/layout/xul/tree/TreeBoxObject.cpp +++ b/layout/xul/tree/TreeBoxObject.cpp @@ -5,7 +5,7 @@ #include "mozilla/dom/TreeBoxObject.h" #include "nsCOMPtr.h" -#include "nsIDOMXULElement.h" +#include "nsXULElement.h" #include "nsIScriptableRegion.h" #include "nsIXULTemplateBuilder.h" #include "nsTreeContentView.h" @@ -143,11 +143,10 @@ TreeBoxObject::GetView(nsITreeView * *aView) return mTreeBody->GetView(aView); } if (!mView) { - nsCOMPtr xulele = do_QueryInterface(mContent); + RefPtr xulele = nsXULElement::FromContentOrNull(mContent); if (xulele) { // See if there is a XUL tree builder associated with the element - nsCOMPtr builder; - xulele->GetBuilder(getter_AddRefs(builder)); + nsCOMPtr builder = xulele->GetBuilder(); mView = do_QueryInterface(builder); if (!mView) { diff --git a/layout/xul/tree/moz.build b/layout/xul/tree/moz.build index 49528aeaadc4..748865b56a2a 100644 --- a/layout/xul/tree/moz.build +++ b/layout/xul/tree/moz.build @@ -48,6 +48,7 @@ LOCAL_INCLUDES += [ '../../painting', '../../style', '/dom/base', + '/dom/xul', ] if CONFIG['GNU_CXX']: