Bug 1438270 - Remove nsIDOMDocumentXBL. r?bz
MozReview-Commit-ID: 4TsjUaEdDP2
--- a/browser/installer/package-manifest.in
+++ b/browser/installer/package-manifest.in
@@ -216,17 +216,16 @@
@RESPATH@/components/dom_range.xpt
@RESPATH@/components/dom_security.xpt
@RESPATH@/components/dom_sidebar.xpt
@RESPATH@/components/dom_storage.xpt
#ifdef MOZ_WEBSPEECH
@RESPATH@/components/dom_webspeechrecognition.xpt
#endif
@RESPATH@/components/dom_workers.xpt
-@RESPATH@/components/dom_xbl.xpt
@RESPATH@/components/dom_xhr.xpt
@RESPATH@/components/dom_xul.xpt
@RESPATH@/components/dom_presentation.xpt
@RESPATH@/components/downloads.xpt
@RESPATH@/components/editor.xpt
@RESPATH@/components/enterprisepolicies.xpt
@RESPATH@/components/extensions.xpt
@RESPATH@/components/exthandler.xpt
--- a/dom/base/nsDocument.cpp
+++ b/dom/base/nsDocument.cpp
@@ -54,17 +54,16 @@
#include "mozilla/AsyncEventDispatcher.h"
#include "mozilla/BasicEvents.h"
#include "mozilla/EventListenerManager.h"
#include "mozilla/EventStateManager.h"
#include "mozilla/dom/Attr.h"
#include "mozilla/dom/BindingDeclarations.h"
-#include "nsIDOMDocumentXBL.h"
#include "mozilla/dom/Element.h"
#include "mozilla/dom/FramingChecker.h"
#include "nsGenericHTMLElement.h"
#include "mozilla/dom/CDATASection.h"
#include "mozilla/dom/ProcessingInstruction.h"
#include "nsDOMString.h"
#include "nsNodeUtils.h"
#include "nsLayoutUtils.h" // for GetFrameForPoint
@@ -1797,17 +1796,16 @@ nsDocument::~nsDocument()
NS_INTERFACE_TABLE_HEAD(nsDocument)
NS_WRAPPERCACHE_INTERFACE_TABLE_ENTRY
NS_INTERFACE_TABLE_BEGIN
NS_INTERFACE_TABLE_ENTRY_AMBIGUOUS(nsDocument, nsISupports, nsINode)
NS_INTERFACE_TABLE_ENTRY(nsDocument, nsINode)
NS_INTERFACE_TABLE_ENTRY(nsDocument, nsIDocument)
NS_INTERFACE_TABLE_ENTRY(nsDocument, nsIDOMDocument)
NS_INTERFACE_TABLE_ENTRY(nsDocument, nsIDOMNode)
- NS_INTERFACE_TABLE_ENTRY(nsDocument, nsIDOMDocumentXBL)
NS_INTERFACE_TABLE_ENTRY(nsDocument, nsIScriptObjectPrincipal)
NS_INTERFACE_TABLE_ENTRY(nsDocument, nsIDOMEventTarget)
NS_INTERFACE_TABLE_ENTRY(nsDocument, mozilla::dom::EventTarget)
NS_INTERFACE_TABLE_ENTRY(nsDocument, nsISupportsWeakReference)
NS_INTERFACE_TABLE_ENTRY(nsDocument, nsIRadioGroupContainer)
NS_INTERFACE_TABLE_ENTRY(nsDocument, nsIMutationObserver)
NS_INTERFACE_TABLE_ENTRY(nsDocument, nsIApplicationCacheContainer)
NS_INTERFACE_TABLE_END
@@ -6209,65 +6207,28 @@ nsIDocument::ImportNode(nsINode& aNode,
NS_WARNING("Don't know how to clone this nodetype for importNode.");
}
}
rv.Throw(NS_ERROR_DOM_NOT_SUPPORTED_ERR);
return nullptr;
}
-NS_IMETHODIMP
-nsDocument::LoadBindingDocument(const nsAString& aURI)
-{
- ErrorResult rv;
- nsIDocument::LoadBindingDocument(aURI,
- nsContentUtils::GetCurrentJSContext()
- ? Some(nsContentUtils::SubjectPrincipal())
- : Nothing(),
- rv);
- return rv.StealNSResult();
-}
-
void
nsIDocument::LoadBindingDocument(const nsAString& aURI,
nsIPrincipal& aSubjectPrincipal,
ErrorResult& rv)
{
- LoadBindingDocument(aURI, Some(&aSubjectPrincipal), rv);
-}
-
-void
-nsIDocument::LoadBindingDocument(const nsAString& aURI,
- const Maybe<nsIPrincipal*>& aSubjectPrincipal,
- ErrorResult& rv)
-{
nsCOMPtr<nsIURI> uri;
rv = NS_NewURI(getter_AddRefs(uri), aURI, mCharacterSet, GetDocBaseURI());
if (rv.Failed()) {
return;
}
- // Note - This computation of subjectPrincipal isn't necessarily sensical.
- // It's just designed to preserve the old semantics during a mass-conversion
- // patch.
- nsCOMPtr<nsIPrincipal> subjectPrincipal =
- aSubjectPrincipal.isSome() ? aSubjectPrincipal.value() : NodePrincipal();
- BindingManager()->LoadBindingDocument(this, uri, subjectPrincipal);
-}
-
-NS_IMETHODIMP
-nsDocument::GetBindingParent(nsIDOMNode* aNode, nsIDOMElement** aResult)
-{
- nsCOMPtr<nsINode> node = do_QueryInterface(aNode);
- NS_ENSURE_ARG_POINTER(node);
-
- Element* bindingParent = nsIDocument::GetBindingParent(*node);
- nsCOMPtr<nsIDOMElement> retval = do_QueryInterface(bindingParent);
- retval.forget(aResult);
- return NS_OK;
+ BindingManager()->LoadBindingDocument(this, uri, &aSubjectPrincipal);
}
Element*
nsIDocument::GetBindingParent(nsINode& aNode)
{
nsCOMPtr<nsIContent> content(do_QueryInterface(&aNode));
if (!content)
return nullptr;
@@ -6328,54 +6289,26 @@ nsDocument::GetAnonymousElementByAttribu
universalMatch);
if (matchedElm)
return matchedElm;
}
return nullptr;
}
-NS_IMETHODIMP
-nsDocument::GetAnonymousElementByAttribute(nsIDOMElement* aElement,
- const nsAString& aAttrName,
- const nsAString& aAttrValue,
- nsIDOMElement** aResult)
-{
- nsCOMPtr<Element> element = do_QueryInterface(aElement);
- NS_ENSURE_ARG_POINTER(element);
-
- Element* anonEl =
- nsIDocument::GetAnonymousElementByAttribute(*element, aAttrName,
- aAttrValue);
- nsCOMPtr<nsIDOMElement> retval = do_QueryInterface(anonEl);
- retval.forget(aResult);
- return NS_OK;
-}
-
Element*
nsIDocument::GetAnonymousElementByAttribute(Element& aElement,
const nsAString& aAttrName,
const nsAString& aAttrValue)
{
RefPtr<nsAtom> attribute = NS_Atomize(aAttrName);
return GetAnonymousElementByAttribute(&aElement, attribute, aAttrValue);
}
-
-NS_IMETHODIMP
-nsDocument::GetAnonymousNodes(nsIDOMElement* aElement,
- nsIDOMNodeList** aResult)
-{
- *aResult = nullptr;
-
- nsCOMPtr<nsIContent> content(do_QueryInterface(aElement));
- return BindingManager()->GetAnonymousNodesFor(content, aResult);
-}
-
nsINodeList*
nsIDocument::GetAnonymousNodes(Element& aElement)
{
return BindingManager()->GetAnonymousNodesFor(&aElement);
}
already_AddRefed<nsRange>
nsIDocument::CreateRange(ErrorResult& rv)
--- a/dom/base/nsDocument.h
+++ b/dom/base/nsDocument.h
@@ -16,17 +16,16 @@
#include "nsCOMPtr.h"
#include "nsAutoPtr.h"
#include "nsCRT.h"
#include "nsWeakReference.h"
#include "nsWeakPtr.h"
#include "nsTArray.h"
#include "nsIdentifierMapEntry.h"
#include "nsIDOMDocument.h"
-#include "nsIDOMDocumentXBL.h"
#include "nsStubDocumentObserver.h"
#include "nsIScriptGlobalObject.h"
#include "nsIContent.h"
#include "nsIPrincipal.h"
#include "nsIParser.h"
#include "nsBindingManager.h"
#include "nsRefPtrHashtable.h"
#include "nsJSThingHashtable.h"
@@ -317,17 +316,16 @@ protected:
};
// For classifying a flash document based on its principal.
class PrincipalFlashClassifier;
// Base class for our document implementations.
class nsDocument : public nsIDocument,
public nsIDOMDocument,
- public nsIDOMDocumentXBL,
public nsSupportsWeakReference,
public nsIScriptObjectPrincipal,
public nsIRadioGroupContainer,
public nsIApplicationCacheContainer,
public nsStubMutationObserver
{
friend class nsIDocument;
@@ -631,19 +629,16 @@ public:
private:
void AddOnDemandBuiltInUASheet(mozilla::StyleSheet* aSheet);
void SendToConsole(nsCOMArray<nsISecurityConsoleMessage>& aMessages);
public:
// nsIDOMDocument
NS_DECL_NSIDOMDOCUMENT
- // nsIDOMDocumentXBL
- NS_DECL_NSIDOMDOCUMENTXBL
-
using mozilla::dom::DocumentOrShadowRoot::GetElementById;
using mozilla::dom::DocumentOrShadowRoot::GetElementsByTagName;
using mozilla::dom::DocumentOrShadowRoot::GetElementsByTagNameNS;
using mozilla::dom::DocumentOrShadowRoot::GetElementsByClassName;
// nsIDOMEventTarget
virtual nsresult GetEventTargetParent(
mozilla::EventChainPreVisitor& aVisitor) override;
--- a/dom/base/nsIDocument.h
+++ b/dom/base/nsIDocument.h
@@ -2086,19 +2086,16 @@ public:
/**
* Check whether we've ever fired a DOMTitleChanged event for this
* document.
*/
bool HaveFiredDOMTitleChange() const {
return mHaveFiredTitleChange;
}
- /**
- * See GetAnonymousElementByAttribute on nsIDOMDocumentXBL.
- */
virtual Element*
GetAnonymousElementByAttribute(nsIContent* aElement,
nsAtom* aAttrName,
const nsAString& aAttrValue) const = 0;
/**
* Helper for nsIDOMDocument::elementFromPoint implementation that allows
* ignoring the scroll frame and/or avoiding layout flushes.
@@ -2980,19 +2977,16 @@ public:
nsINodeList* GetAnonymousNodes(Element& aElement);
Element* GetAnonymousElementByAttribute(Element& aElement,
const nsAString& aAttrName,
const nsAString& aAttrValue);
Element* GetBindingParent(nsINode& aNode);
void LoadBindingDocument(const nsAString& aURI,
nsIPrincipal& aSubjectPrincipal,
mozilla::ErrorResult& rv);
- void LoadBindingDocument(const nsAString& aURI,
- const mozilla::Maybe<nsIPrincipal*>& aSubjectPrincipal,
- mozilla::ErrorResult& rv);
mozilla::dom::XPathExpression*
CreateExpression(const nsAString& aExpression,
mozilla::dom::XPathNSResolver* aResolver,
mozilla::ErrorResult& rv);
nsINode* CreateNSResolver(nsINode& aNodeResolver);
already_AddRefed<mozilla::dom::XPathResult>
Evaluate(JSContext* aCx, const nsAString& aExpression, nsINode& aContextNode,
mozilla::dom::XPathNSResolver* aResolver, uint16_t aType,
deleted file mode 100644
--- a/dom/interfaces/xbl/moz.build
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
-# vim: set filetype=python:
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-with Files("**"):
- BUG_COMPONENT = ("Core", "XBL")
-
-XPIDL_SOURCES += [
- 'nsIDOMDocumentXBL.idl',
-]
-
-XPIDL_MODULE = 'dom_xbl'
-
deleted file mode 100644
--- a/dom/interfaces/xbl/nsIDOMDocumentXBL.idl
+++ /dev/null
@@ -1,21 +0,0 @@
-/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#include "domstubs.idl"
-
-[uuid(af628000-e3fa-40d2-9118-fbaa9f3ec6b9)]
-interface nsIDOMDocumentXBL : nsISupports
-{
- /**
- * See the MDC documentation for what these methods do.
- */
- nsIDOMNodeList getAnonymousNodes(in nsIDOMElement elt);
- nsIDOMElement getAnonymousElementByAttribute(in nsIDOMElement elt,
- in DOMString attrName,
- in DOMString attrValue);
-
- nsIDOMElement getBindingParent(in nsIDOMNode node);
- void loadBindingDocument(in DOMString documentURL);
-};
--- a/dom/moz.build
+++ b/dom/moz.build
@@ -16,17 +16,16 @@ JAR_MANIFESTS += ['jar.mn']
interfaces = [
'base',
'canvas',
'core',
'html',
'events',
'sidebar',
'range',
- 'xbl',
'xul',
'security',
'storage',
'offline',
'geolocation',
'notification',
'push',
'payments',
--- a/dom/webidl/Document.webidl
+++ b/dom/webidl/Document.webidl
@@ -318,17 +318,17 @@ partial interface Document {
// https://svgwg.org/svg2-draft/struct.html#InterfaceDocumentExtensions
partial interface Document {
[BinaryName="SVGRootElement"]
readonly attribute SVGSVGElement? rootElement;
};
// Mozilla extensions of various sorts
partial interface Document {
- // nsIDOMDocumentXBL. Wish we could make these [ChromeOnly], but
+ // XBL support. Wish we could make these [ChromeOnly], but
// that would likely break bindings running with the page principal.
[Func="IsChromeOrXBL"]
NodeList? getAnonymousNodes(Element elt);
[Func="IsChromeOrXBL"]
Element? getAnonymousElementByAttribute(Element elt, DOMString attrName,
DOMString attrValue);
[Func="IsChromeOrXBL"]
Element? getBindingParent(Node node);
--- a/dom/xml/nsXMLPrettyPrinter.cpp
+++ b/dom/xml/nsXMLPrettyPrinter.cpp
@@ -1,17 +1,16 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "nsXMLPrettyPrinter.h"
#include "nsContentUtils.h"
#include "nsICSSDeclaration.h"
-#include "nsIDOMDocumentXBL.h"
#include "nsIObserver.h"
#include "nsSyncLoadService.h"
#include "nsPIDOMWindow.h"
#include "nsIDOMElement.h"
#include "nsIServiceManager.h"
#include "nsNetUtil.h"
#include "mozilla/dom/Element.h"
#include "nsBindingManager.h"
--- a/dom/xul/nsXULPopupListener.cpp
+++ b/dom/xul/nsXULPopupListener.cpp
@@ -7,25 +7,20 @@
This file provides the implementation for xul popup listener which
tracks xul popups and context menus
*/
#include "nsXULPopupListener.h"
#include "nsCOMPtr.h"
#include "nsGkAtoms.h"
#include "nsIDOMElement.h"
-#include "nsIDOMXULElement.h"
-#include "nsIDOMNodeList.h"
-#include "nsIDOMDocument.h"
-#include "nsIDOMDocumentXBL.h"
#include "nsContentCID.h"
#include "nsContentUtils.h"
#include "nsXULPopupManager.h"
#include "nsIScriptContext.h"
-#include "nsIDOMWindow.h"
#include "nsIDocument.h"
#include "nsServiceManagerUtils.h"
#include "nsIPrincipal.h"
#include "nsIScriptSecurityManager.h"
#include "nsLayoutUtils.h"
#include "mozilla/ReflowInput.h"
#include "nsIObjectLoadingContent.h"
#include "mozilla/EventStateManager.h"
@@ -363,28 +358,21 @@ nsXULPopupListener::LaunchPopup(nsIDOMEv
return NS_ERROR_FAILURE;
}
// Handle the _child case for popups and context menus
RefPtr<Element> popup;
if (identifier.EqualsLiteral("_child")) {
popup = GetImmediateChild(mElement, nsGkAtoms::menupopup);
if (!popup) {
- nsCOMPtr<nsIDOMDocumentXBL> nsDoc(do_QueryInterface(document));
- nsCOMPtr<nsIDOMNodeList> list;
- nsCOMPtr<nsIDOMElement> el = do_QueryInterface(mElement);
- nsDoc->GetAnonymousNodes(el, getter_AddRefs(list));
+ nsINodeList* list = document->GetAnonymousNodes(*mElement);
if (list) {
- uint32_t ctr,listLength;
- nsCOMPtr<nsIDOMNode> node;
- list->GetLength(&listLength);
- for (ctr = 0; ctr < listLength; ctr++) {
- list->Item(ctr, getter_AddRefs(node));
- nsCOMPtr<nsIContent> childContent(do_QueryInterface(node));
-
+ uint32_t listLength = list->Length();
+ for (uint32_t ctr = 0; ctr < listLength; ctr++) {
+ nsIContent* childContent = list->Item(ctr);
if (childContent->NodeInfo()->Equals(nsGkAtoms::menupopup,
kNameSpaceID_XUL)) {
popup = childContent->AsElement();
break;
}
}
}
}
--- a/mobile/android/installer/package-manifest.in
+++ b/mobile/android/installer/package-manifest.in
@@ -140,17 +140,16 @@
@BINPATH@/components/dom_range.xpt
@BINPATH@/components/dom_security.xpt
@BINPATH@/components/dom_sidebar.xpt
@BINPATH@/components/dom_storage.xpt
@BINPATH@/components/dom_system.xpt
#ifdef MOZ_WEBSPEECH
@BINPATH@/components/dom_webspeechrecognition.xpt
#endif
-@BINPATH@/components/dom_xbl.xpt
@BINPATH@/components/dom_xhr.xpt
@BINPATH@/components/dom_xul.xpt
@BINPATH@/components/dom_presentation.xpt
@BINPATH@/components/downloads.xpt
@BINPATH@/components/editor.xpt
@BINPATH@/components/extensions.xpt
@BINPATH@/components/exthandler.xpt
@BINPATH@/components/fastfind.xpt
--- a/xpcom/reflect/xptinfo/ShimInterfaceInfo.cpp
+++ b/xpcom/reflect/xptinfo/ShimInterfaceInfo.cpp
@@ -20,17 +20,16 @@
#endif
#include "nsIDOMDataTransfer.h"
#include "nsIDOMDOMCursor.h"
#include "nsIDOMDOMException.h"
#include "nsIDOMDOMRequest.h"
#include "nsIDOMDocument.h"
#include "nsIDOMDocumentFragment.h"
#include "nsIDOMDocumentType.h"
-#include "nsIDOMDocumentXBL.h"
#include "nsIDOMDragEvent.h"
#include "nsIDOMElement.h"
#include "nsIDOMEvent.h"
#include "nsIDOMEventTarget.h"
#include "nsIDOMFileList.h"
#include "nsIDOMFocusEvent.h"
#include "nsIDOMFormData.h"
#include "nsIDOMGeoPositionError.h"
@@ -85,17 +84,16 @@
#include "mozilla/dom/DataTransferBinding.h"
#include "mozilla/dom/DOMCursorBinding.h"
#include "mozilla/dom/DOMExceptionBinding.h"
#include "mozilla/dom/DOMParserBinding.h"
#include "mozilla/dom/DOMRequestBinding.h"
#include "mozilla/dom/DocumentBinding.h"
#include "mozilla/dom/DocumentFragmentBinding.h"
#include "mozilla/dom/DocumentTypeBinding.h"
-#include "mozilla/dom/DocumentBinding.h"
#include "mozilla/dom/DragEventBinding.h"
#include "mozilla/dom/ElementBinding.h"
#include "mozilla/dom/EventBinding.h"
#include "mozilla/dom/EventTargetBinding.h"
#include "mozilla/dom/FileListBinding.h"
#include "mozilla/dom/FocusEventBinding.h"
#include "mozilla/dom/FormDataBinding.h"
#include "mozilla/dom/FrameLoaderBinding.h"
@@ -212,17 +210,16 @@ const ComponentsInterfaceShimEntry kComp
#endif
DEFINE_SHIM(DataTransfer),
DEFINE_SHIM(DOMCursor),
DEFINE_SHIM(DOMException),
DEFINE_SHIM(DOMRequest),
DEFINE_SHIM(Document),
DEFINE_SHIM(DocumentFragment),
DEFINE_SHIM(DocumentType),
- DEFINE_SHIM_WITH_CUSTOM_INTERFACE(nsIDOMDocumentXBL, Document),
DEFINE_SHIM(DragEvent),
DEFINE_SHIM(Element),
DEFINE_SHIM(Event),
DEFINE_SHIM(EventTarget),
DEFINE_SHIM(FileList),
DEFINE_SHIM(FocusEvent),
DEFINE_SHIM(FormData),
DEFINE_SHIM_WITH_CUSTOM_INTERFACE(nsIFrameLoader, FrameLoader),