author | Boris Zbarsky <bzbarsky@mit.edu> |
Thu, 26 Apr 2018 23:37:34 -0400 | |
changeset 416007 | c7b96bb087f0281d93edcb7fb1ee69bfed7f4cc6 |
parent 416006 | e165e82a8e852db2a85b8e238ccdb303beae5e46 |
child 416008 | f4428b451bbaae9f9f6810a91e6e7b0c03e9d467 |
push id | 33912 |
push user | csabou@mozilla.com |
push date | Fri, 27 Apr 2018 10:05:59 +0000 |
treeherder | mozilla-central@d2d518b1f873 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | qdot |
bugs | 1455674 |
milestone | 61.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
|
--- a/dom/base/Element.cpp +++ b/dom/base/Element.cpp @@ -1,17 +1,17 @@ /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set ts=8 sts=2 et sw=2 tw=80: */ /* 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/. */ /* * Base class for all element classes; this provides an implementation - * of DOM Core's nsIDOMElement, implements nsIContent, provides + * of DOM Core's Element, implements nsIContent, provides * utility methods for subclasses, and so forth. */ #include "mozilla/dom/ElementInlines.h" #include "AnimationCommon.h" #include "mozilla/DebugOnly.h" #include "mozilla/dom/Animation.h"
--- a/dom/base/Element.h +++ b/dom/base/Element.h @@ -1,29 +1,28 @@ /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set ts=8 sts=2 et sw=2 tw=80: */ /* 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/. */ /* * Base class for all element classes; this provides an implementation - * of DOM Core's nsIDOMElement, implements nsIContent, provides + * of DOM Core's Element, implements nsIContent, provides * utility methods for subclasses, and so forth. */ #ifndef mozilla_dom_Element_h__ #define mozilla_dom_Element_h__ #include "mozilla/dom/FragmentOrElement.h" // for base class #include "nsChangeHint.h" // for enum #include "mozilla/EventStates.h" // for member #include "mozilla/ServoTypes.h" #include "mozilla/dom/DirectionalityUtils.h" -#include "nsIDOMElement.h" #include "nsILinkHandler.h" #include "nsINodeList.h" #include "nsNodeUtils.h" #include "nsAttrAndChildArray.h" #include "mozilla/FlushType.h" #include "nsDOMAttributeMap.h" #include "nsPresContext.h" #include "mozilla/CORSMode.h"
--- a/dom/base/FragmentOrElement.cpp +++ b/dom/base/FragmentOrElement.cpp @@ -1,18 +1,16 @@ /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set ts=8 sts=2 et sw=2 tw=80: */ /* 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/. */ /* - * Base class for all element classes; this provides an implementation - * of DOM Core's nsIDOMElement, implements nsIContent, provides - * utility methods for subclasses, and so forth. + * Base class for all element classes and DocumentFragment. */ #include "mozilla/ArrayUtils.h" #include "mozilla/Likely.h" #include "mozilla/MemoryReporting.h" #include "mozilla/StaticPtr.h" #include "mozilla/dom/FragmentOrElement.h"
--- a/dom/base/FragmentOrElement.h +++ b/dom/base/FragmentOrElement.h @@ -65,18 +65,18 @@ public: private: ~nsNodeSupportsWeakRefTearoff() {} nsCOMPtr<nsINode> mNode; }; /** - * A generic base class for DOM elements, implementing many nsIContent, - * nsIDOMNode and nsIDOMElement methods. + * A generic base class for DOM elements and document fragments, + * implementing many nsIContent, nsIDOMNode and Element methods. */ namespace mozilla { namespace dom { class ShadowRoot; class FragmentOrElement : public nsIContent {
--- a/dom/base/IDTracker.cpp +++ b/dom/base/IDTracker.cpp @@ -8,17 +8,16 @@ #include "mozilla/Encoding.h" #include "nsContentUtils.h" #include "nsIURI.h" #include "nsBindingManager.h" #include "nsEscape.h" #include "nsXBLPrototypeBinding.h" #include "nsIDOMNode.h" -#include "nsIDOMElement.h" #include "nsCycleCollectionParticipant.h" namespace mozilla { namespace dom { void IDTracker::Reset(nsIContent* aFromContent, nsIURI* aURI, bool aWatch, bool aReferenceImage)
--- a/dom/base/nsContentPermissionHelper.cpp +++ b/dom/base/nsContentPermissionHelper.cpp @@ -1,17 +1,16 @@ /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set ts=8 sts=2 et sw=2 tw=80: */ /* 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 <map> #include "nsCOMPtr.h" -#include "nsIDOMElement.h" #include "nsIPrincipal.h" #include "mozilla/dom/ContentChild.h" #include "mozilla/dom/ContentParent.h" #include "mozilla/dom/Element.h" #include "mozilla/dom/Event.h" #include "mozilla/dom/PContentPermission.h" #include "mozilla/dom/PermissionMessageUtils.h" #include "mozilla/dom/PContentPermissionRequestParent.h"
--- a/dom/base/nsContentPolicy.cpp +++ b/dom/base/nsContentPolicy.cpp @@ -12,17 +12,16 @@ #include "nsISupports.h" #include "nsXPCOM.h" #include "nsContentPolicyUtils.h" #include "mozilla/dom/nsCSPService.h" #include "nsContentPolicy.h" #include "nsIURI.h" #include "nsIDocShell.h" -#include "nsIDOMElement.h" #include "nsIDOMNode.h" #include "nsIDOMWindow.h" #include "nsITabChild.h" #include "nsIContent.h" #include "nsIImageLoadingContent.h" #include "nsILoadContext.h" #include "nsCOMArray.h" #include "nsContentUtils.h"
--- a/dom/base/nsContentUtils.cpp +++ b/dom/base/nsContentUtils.cpp @@ -129,17 +129,16 @@ #include "nsIContentSink.h" #include "nsIContentViewer.h" #include "nsIDocShell.h" #include "nsIDocShellTreeOwner.h" #include "nsIDocument.h" #include "nsIDocumentEncoder.h" #include "nsIDOMChromeWindow.h" #include "nsIDOMDocument.h" -#include "nsIDOMElement.h" #include "nsIDOMNode.h" #include "nsIDOMWindowUtils.h" #include "nsIDragService.h" #include "nsIFormControl.h" #include "nsIForm.h" #include "nsIFragmentContentSink.h" #include "nsContainerFrame.h" #include "nsIHTMLDocument.h"
--- a/dom/base/nsCopySupport.cpp +++ b/dom/base/nsCopySupport.cpp @@ -27,17 +27,16 @@ #include "nsIDocShell.h" #include "nsIContentViewerEdit.h" #include "nsIClipboardHelper.h" #include "nsISelectionController.h" #include "nsPIDOMWindow.h" #include "nsIDocument.h" #include "nsIDOMNode.h" -#include "nsIDOMElement.h" #include "nsIDOMDocument.h" #include "nsIHTMLDocument.h" #include "nsGkAtoms.h" #include "nsIFrame.h" #include "nsIURI.h" #include "nsIURIMutator.h" #include "nsISimpleEnumerator.h"
--- a/dom/base/nsDocument.cpp +++ b/dom/base/nsDocument.cpp @@ -108,17 +108,16 @@ #include "nsIScriptSecurityManager.h" #include "nsIPermissionManager.h" #include "nsIPrincipal.h" #include "ExpandedPrincipal.h" #include "NullPrincipal.h" #include "nsIDOMWindow.h" #include "nsPIDOMWindow.h" -#include "nsIDOMElement.h" #include "nsFocusManager.h" // for radio group stuff #include "nsIRadioVisitor.h" #include "nsIFormControl.h" #include "nsBidiUtils.h"
--- a/dom/base/nsDocumentEncoder.cpp +++ b/dom/base/nsDocumentEncoder.cpp @@ -15,17 +15,16 @@ #include "nsIFactory.h" #include "nsISupports.h" #include "nsIDocument.h" #include "nsIHTMLDocument.h" #include "nsCOMPtr.h" #include "nsIContentSerializer.h" #include "mozilla/Encoding.h" #include "nsIOutputStream.h" -#include "nsIDOMElement.h" #include "nsRange.h" #include "nsIDOMDocument.h" #include "nsGkAtoms.h" #include "nsIContent.h" #include "nsIScriptContext.h" #include "nsIScriptGlobalObject.h" #include "nsIScriptSecurityManager.h" #include "mozilla/dom/Selection.h"
--- a/dom/base/nsFocusManager.cpp +++ b/dom/base/nsFocusManager.cpp @@ -13,17 +13,16 @@ #include "nsIInterfaceRequestorUtils.h" #include "nsGkAtoms.h" #include "nsGlobalWindow.h" #include "nsContentUtils.h" #include "nsDocument.h" #include "nsIContentParent.h" #include "nsPIDOMWindow.h" #include "nsIDOMChromeWindow.h" -#include "nsIDOMElement.h" #include "nsIDOMDocument.h" #include "nsIDOMRange.h" #include "nsIHTMLDocument.h" #include "nsIDocShell.h" #include "nsIDocShellTreeOwner.h" #include "nsIFormControl.h" #include "nsLayoutUtils.h" #include "nsIPresShell.h"
--- a/dom/base/nsFocusManager.h +++ b/dom/base/nsFocusManager.h @@ -59,17 +59,17 @@ public: /** * Retrieve the single focus manager. */ static nsFocusManager* GetFocusManager() { return sInstance; } /** * A faster version of nsIFocusManager::GetFocusedElement, returning a - * raw Element pointer (instead of having AddRef-ed nsIDOMElement + * raw Element pointer (instead of having AddRef-ed Element * pointer filled in to an out-parameter). */ mozilla::dom::Element* GetFocusedElement() { return mFocusedElement; } /** * Returns true if aContent currently has focus. */ bool IsFocused(nsIContent* aContent);
--- a/dom/base/nsGlobalWindowCommands.cpp +++ b/dom/base/nsGlobalWindowCommands.cpp @@ -3,17 +3,16 @@ /* 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 "nsGlobalWindowCommands.h" #include "nsIComponentManager.h" -#include "nsIDOMElement.h" #include "nsIInterfaceRequestor.h" #include "nsIInterfaceRequestorUtils.h" #include "nsCRT.h" #include "nsString.h" #include "mozilla/ArrayUtils.h" #include "mozilla/Preferences.h" #include "nsIControllerCommandTable.h"
--- a/dom/base/nsGlobalWindowInner.cpp +++ b/dom/base/nsGlobalWindowInner.cpp @@ -106,17 +106,16 @@ #include "nsIWidgetListener.h" #include "nsIBaseWindow.h" #include "nsIDeviceSensors.h" #include "nsIContent.h" #include "nsIDocShell.h" #include "nsIDocument.h" #include "Crypto.h" #include "nsIDOMDocument.h" -#include "nsIDOMElement.h" #include "nsIDOMOfflineResourceList.h" #include "nsDOMString.h" #include "nsIEmbeddingSiteWindow.h" #include "nsThreadUtils.h" #include "nsILoadContext.h" #include "nsIPresShell.h" #include "nsIScrollableFrame.h" #include "nsView.h" @@ -4969,38 +4968,16 @@ nsGlobalWindowInner::GetComputedStyle(El already_AddRefed<nsICSSDeclaration> nsGlobalWindowInner::GetDefaultComputedStyle(Element& aElt, const nsAString& aPseudoElt, ErrorResult& aError) { return GetComputedStyleHelper(aElt, aPseudoElt, true, aError); } -nsresult -nsGlobalWindowInner::GetComputedStyleHelper(nsIDOMElement* aElt, - const nsAString& aPseudoElt, - bool aDefaultStylesOnly, - nsICSSDeclaration** aReturn) -{ - NS_ENSURE_ARG_POINTER(aReturn); - *aReturn = nullptr; - - nsCOMPtr<dom::Element> element = do_QueryInterface(aElt); - if (!element) { - return NS_ERROR_DOM_NOT_SUPPORTED_ERR; - } - - ErrorResult rv; - nsCOMPtr<nsICSSDeclaration> cs = - GetComputedStyleHelper(*element, aPseudoElt, aDefaultStylesOnly, rv); - cs.forget(aReturn); - - return rv.StealNSResult(); -} - already_AddRefed<nsICSSDeclaration> nsGlobalWindowInner::GetComputedStyleHelper(Element& aElt, const nsAString& aPseudoElt, bool aDefaultStylesOnly, ErrorResult& aError) { FORWARD_TO_OUTER_OR_THROW(GetComputedStyleHelperOuter, (aElt, aPseudoElt, aDefaultStylesOnly),
--- a/dom/base/nsGlobalWindowInner.h +++ b/dom/base/nsGlobalWindowInner.h @@ -1236,20 +1236,16 @@ protected: mozilla::ErrorResult& aRv); protected: already_AddRefed<nsICSSDeclaration> GetComputedStyleHelper(mozilla::dom::Element& aElt, const nsAString& aPseudoElt, bool aDefaultStylesOnly, mozilla::ErrorResult& aError); - nsresult GetComputedStyleHelper(nsIDOMElement* aElt, - const nsAString& aPseudoElt, - bool aDefaultStylesOnly, - nsICSSDeclaration** aReturn); nsGlobalWindowInner* InnerForSetTimeoutOrInterval(mozilla::ErrorResult& aError); void PostMessageMoz(JSContext* aCx, JS::Handle<JS::Value> aMessage, const nsAString& aTargetOrigin, JS::Handle<JS::Value> aTransfer, nsIPrincipal& aSubjectPrincipal, mozilla::ErrorResult& aError);
--- a/dom/base/nsGlobalWindowOuter.cpp +++ b/dom/base/nsGlobalWindowOuter.cpp @@ -103,17 +103,16 @@ #include "nsIWidgetListener.h" #include "nsIBaseWindow.h" #include "nsIDeviceSensors.h" #include "nsIContent.h" #include "nsIDocShell.h" #include "nsIDocument.h" #include "Crypto.h" #include "nsIDOMDocument.h" -#include "nsIDOMElement.h" #include "nsIDOMOfflineResourceList.h" #include "nsDOMString.h" #include "nsIEmbeddingSiteWindow.h" #include "nsThreadUtils.h" #include "nsILoadContext.h" #include "nsIPresShell.h" #include "nsIScrollableFrame.h" #include "nsView.h"
--- a/dom/base/nsHTMLContentSerializer.cpp +++ b/dom/base/nsHTMLContentSerializer.cpp @@ -7,17 +7,16 @@ /* * nsIContentSerializer implementation that can be used with an * nsIDocumentEncoder to convert an HTML (not XHTML!) DOM to an HTML * string that could be parsed into more or less the original DOM. */ #include "nsHTMLContentSerializer.h" -#include "nsIDOMElement.h" #include "nsIContent.h" #include "nsIDocument.h" #include "nsElementTable.h" #include "nsNameSpaceManager.h" #include "nsString.h" #include "nsUnicharUtils.h" #include "nsIServiceManager.h" #include "nsIDocumentEncoder.h"
--- a/dom/base/nsIDocument.h +++ b/dom/base/nsIDocument.h @@ -89,17 +89,16 @@ class nsIBFCacheEntry; class nsIChannel; class nsIContent; class nsIContentSink; class nsIDocShell; class nsIDocShellTreeItem; class nsIDocumentEncoder; class nsIDocumentObserver; class nsIDOMDocument; -class nsIDOMElement; class nsIHTMLCollection; class nsILayoutHistoryState; class nsILoadContext; class nsIObjectLoadingContent; class nsIObserver; class nsIPrincipal; class nsIRequest; class nsIRunnable;
--- a/dom/base/nsINode.h +++ b/dom/base/nsINode.h @@ -37,17 +37,16 @@ #endif class nsAttrAndChildArray; class nsAttrChildContentList; class nsDOMAttributeMap; class nsIAnimationObserver; class nsIContent; class nsIDocument; -class nsIDOMElement; class nsIFrame; class nsIMutationObserver; class nsINode; class nsINodeList; class nsIPresShell; class nsIPrincipal; class nsIURI; class nsNodeSupportsWeakRefTearoff;
--- a/dom/base/nsInProcessTabChildGlobal.h +++ b/dom/base/nsInProcessTabChildGlobal.h @@ -12,17 +12,16 @@ #include "mozilla/dom/ContentFrameMessageManager.h" #include "nsCOMPtr.h" #include "nsFrameMessageManager.h" #include "nsIScriptContext.h" #include "nsIScriptObjectPrincipal.h" #include "nsIScriptContext.h" #include "nsIClassInfo.h" #include "nsIDocShell.h" -#include "nsIDOMElement.h" #include "nsCOMArray.h" #include "nsIRunnable.h" #include "nsIGlobalObject.h" #include "nsIScriptObjectPrincipal.h" #include "nsWeakReference.h" namespace mozilla { class EventChainPreVisitor;
--- a/dom/base/nsXHTMLContentSerializer.cpp +++ b/dom/base/nsXHTMLContentSerializer.cpp @@ -7,17 +7,16 @@ /* * nsIContentSerializer implementation that can be used with an * nsIDocumentEncoder to convert an XHTML (not HTML!) DOM to an XHTML * string that could be parsed into more or less the original DOM. */ #include "nsXHTMLContentSerializer.h" -#include "nsIDOMElement.h" #include "nsIContent.h" #include "nsIDocument.h" #include "nsElementTable.h" #include "nsNameSpaceManager.h" #include "nsString.h" #include "nsUnicharUtils.h" #include "nsIServiceManager.h" #include "nsIDocumentEncoder.h"
--- a/dom/base/test/unit/test_xml_serializer.js +++ b/dom/base/test/unit/test_xml_serializer.js @@ -129,18 +129,17 @@ function test4() { Assert.equal(SerializeXML(doc), '<root xmlns="ns1" a0:local="val" xmlns:a0="ns1"/>'); // Tree-walking test doc = ParseXML('<root xmlns="ns1" xmlns:a="ns2">'+ '<child xmlns:b="ns2" xmlns:a="ns3">'+ '<child2/></child></root>'); root = doc.documentElement; - // Have to QI here -- no classinfo flattening in xpcshell, apparently - var node = root.firstChild.firstChild.QueryInterface(nsIDOMElement); + var node = root.firstChild.firstChild; node.setAttributeNS("ns4", "l1", "v1"); node.setAttributeNS("ns4", "p2:l2", "v2"); node.setAttributeNS("", "l3", "v3"); node.setAttributeNS("ns3", "l4", "v4"); node.setAttributeNS("ns3", "p5:l5", "v5"); node.setAttributeNS("ns3", "a:l6", "v6"); node.setAttributeNS("ns2", "l7", "v7"); node.setAttributeNS("ns2", "p8:l8", "v8"); @@ -246,33 +245,31 @@ function test7() { "http://www.w3.org/1999/xhtml"); do_check_serialize(doc); Assert.equal(SerializeXML(doc), '<root><child1/></root>'); doc = ParseXML('<root xmlns="http://www.w3.org/1999/xhtml">' + '<child1 xmlns=""><child2/></child1></root>') root = doc.documentElement; - // No interface flattening in xpcshell - var child1 = root.firstChild.QueryInterface(nsIDOMElement); + var child1 = root.firstChild; child1.setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns", "http://www.w3.org/1999/xhtml"); do_check_serialize(doc); Assert.equal(SerializeXML(doc), '<root xmlns="http://www.w3.org/1999/xhtml"><child1 xmlns="">' + '<child2/></child1></root>'); doc = ParseXML('<root xmlns="http://www.w3.org/1999/xhtml">' + '<child1 xmlns="">' + '<child2 xmlns="http://www.w3.org/1999/xhtml"></child2>' + '</child1></root>') root = doc.documentElement; - // No interface flattening in xpcshell - child1 = root.firstChild.QueryInterface(nsIDOMElement); - var child2 = child1.firstChild.QueryInterface(nsIDOMElement); + child1 = root.firstChild; + var child2 = child1.firstChild; child1.setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns", "http://www.w3.org/1999/xhtml"); child2.setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns", ""); do_check_serialize(doc); Assert.equal(SerializeXML(doc), '<root xmlns="http://www.w3.org/1999/xhtml"><child1 xmlns="">' + '<a0:child2 xmlns:a0="http://www.w3.org/1999/xhtml" xmlns=""></a0:child2></child1></root>'); }
--- a/dom/events/DataTransfer.h +++ b/dom/events/DataTransfer.h @@ -6,17 +6,16 @@ #ifndef mozilla_dom_DataTransfer_h #define mozilla_dom_DataTransfer_h #include "nsString.h" #include "nsTArray.h" #include "nsIVariant.h" #include "nsIPrincipal.h" -#include "nsIDOMElement.h" #include "nsIDragService.h" #include "nsCycleCollectionParticipant.h" #include "mozilla/ArrayUtils.h" #include "mozilla/Assertions.h" #include "mozilla/Attributes.h" #include "mozilla/EventForwards.h" #include "mozilla/dom/BindingDeclarations.h"
--- a/dom/events/EventStateManager.cpp +++ b/dom/events/EventStateManager.cpp @@ -3348,23 +3348,20 @@ EventStateManager::PostHandleEvent(nsPre } // The rest is left button-specific. if (mouseEvent->button != WidgetMouseEvent::eLeftButton) { break; } if (activeContent) { - // The nearest enclosing element goes into the - // :active state. If we fail the QI to DOMElement, - // then we know we're only a node, and that we need - // to obtain our parent element and put it into :active - // instead. - nsCOMPtr<nsIDOMElement> elt(do_QueryInterface(activeContent)); - if (!elt) { + // The nearest enclosing element goes into the :active state. If + // we're not an element (so we're text or something) we need to obtain + // our parent element and put it into :active instead. + if (!activeContent->IsElement()) { nsIContent* par = activeContent->GetParent(); if (par) activeContent = par; } } } else { // if we're here, the event handler returned false, so stop
--- a/dom/html/ImageDocument.cpp +++ b/dom/html/ImageDocument.cpp @@ -26,17 +26,16 @@ #include "imgIContainer.h" #include "imgINotificationObserver.h" #include "nsIPresShell.h" #include "nsPresContext.h" #include "nsIChannel.h" #include "nsIContentPolicy.h" #include "nsContentPolicyUtils.h" #include "nsPIDOMWindow.h" -#include "nsIDOMElement.h" #include "nsError.h" #include "nsURILoader.h" #include "nsIDocShell.h" #include "nsIContentViewer.h" #include "nsThreadUtils.h" #include "nsIScrollableFrame.h" #include "nsContentUtils.h" #include "mozilla/Preferences.h"
--- a/dom/html/nsBrowserElement.cpp +++ b/dom/html/nsBrowserElement.cpp @@ -10,17 +10,16 @@ #include "mozilla/Services.h" #include "mozilla/dom/BrowserElementBinding.h" #include "mozilla/dom/DOMRequest.h" #include "mozilla/dom/ScriptSettings.h" #include "mozilla/dom/ToJSValue.h" #include "nsComponentManagerUtils.h" #include "nsFrameLoader.h" -#include "nsIDOMElement.h" #include "nsIMozBrowserFrame.h" #include "nsINode.h" #include "nsIPrincipal.h" using namespace mozilla::dom; namespace mozilla {
--- a/dom/html/nsHTMLDocument.cpp +++ b/dom/html/nsHTMLDocument.cpp @@ -18,17 +18,16 @@ #include "nsIHTMLContentSink.h" #include "nsIXMLContentSink.h" #include "nsHTMLParts.h" #include "nsHTMLStyleSheet.h" #include "nsGkAtoms.h" #include "nsIPresShell.h" #include "nsPresContext.h" #include "nsIDOMNode.h" // for Find -#include "nsIDOMElement.h" #include "nsPIDOMWindow.h" #include "nsDOMString.h" #include "nsIStreamListener.h" #include "nsIURI.h" #include "nsIURIMutator.h" #include "nsIIOService.h" #include "nsNetUtil.h" #include "nsIPrivateBrowsingChannel.h"
--- a/dom/ipc/TabParent.cpp +++ b/dom/ipc/TabParent.cpp @@ -49,17 +49,16 @@ #include "nsFocusManager.h" #include "nsFrameLoader.h" #include "nsFrameManager.h" #include "nsIBaseWindow.h" #include "nsIBrowser.h" #include "nsIContent.h" #include "nsIDocShell.h" #include "nsIDocShellTreeOwner.h" -#include "nsIDOMElement.h" #include "nsIDOMWindow.h" #include "nsIDOMWindowUtils.h" #include "nsIInterfaceRequestorUtils.h" #include "nsILoadInfo.h" #include "nsIPromptFactory.h" #include "nsIURI.h" #include "nsIWindowWatcher.h" #include "nsIWebBrowserChrome.h"
--- a/dom/plugins/base/nsJSNPRuntime.cpp +++ b/dom/plugins/base/nsJSNPRuntime.cpp @@ -16,17 +16,16 @@ #include "nsIGlobalObject.h" #include "nsIScriptGlobalObject.h" #include "nsIScriptContext.h" #include "nsDOMJSUtils.h" #include "nsJSUtils.h" #include "nsIDocument.h" #include "nsIXPConnect.h" #include "xpcpublic.h" -#include "nsIDOMElement.h" #include "nsIContent.h" #include "nsPluginInstanceOwner.h" #include "nsWrapperCacheInlines.h" #include "js/GCHashTable.h" #include "js/TracingAPI.h" #include "js/Wrapper.h" #include "mozilla/HashFunctions.h" #include "mozilla/dom/ScriptSettings.h"
--- a/dom/plugins/base/nsNPAPIPlugin.cpp +++ b/dom/plugins/base/nsNPAPIPlugin.cpp @@ -21,29 +21,30 @@ #include "nsIServiceManager.h" #include "nsThreadUtils.h" #include "mozilla/Preferences.h" #include "nsPluginInstanceOwner.h" #include "nsPluginsDir.h" #include "nsPluginLogging.h" -#include "nsIDOMElement.h" #include "nsPIDOMWindow.h" #include "nsGlobalWindow.h" #include "nsIDocument.h" #include "nsIContent.h" #include "nsIIDNService.h" #include "nsIScriptGlobalObject.h" #include "nsIScriptContext.h" #include "nsDOMJSUtils.h" #include "nsIPrincipal.h" #include "nsWildCard.h" #include "nsContentUtils.h" +#include "mozilla/dom/Element.h" #include "mozilla/dom/ScriptSettings.h" +#include "mozilla/dom/ToJSValue.h" #include "nsIXULRuntime.h" #include "nsIXPConnect.h" #include "nsIObserverService.h" #include <prinrval.h> #ifdef MOZ_WIDGET_COCOA #include <Carbon/Carbon.h> @@ -708,17 +709,17 @@ NPObject* NPN_PLUGIN_LOG(PLUGIN_LOG_ALWAYS,("NPN_getpluginelement called from the wrong thread\n")); return nullptr; } nsNPAPIPluginInstance* inst = static_cast<nsNPAPIPluginInstance*>(npp->ndata); if (!inst) return nullptr; - nsCOMPtr<nsIDOMElement> element; + RefPtr<dom::Element> element; inst->GetDOMElement(getter_AddRefs(element)); if (!element) return nullptr; nsIDocument *doc = GetDocumentFromNPP(npp); if (NS_WARN_IF(!doc)) { return nullptr; @@ -728,20 +729,26 @@ NPObject* if (NS_WARN_IF(!jsapi.Init(doc->GetInnerWindow()))) { return nullptr; } JSContext* cx = jsapi.cx(); nsCOMPtr<nsIXPConnect> xpc(do_GetService(nsIXPConnect::GetCID())); NS_ENSURE_TRUE(xpc, nullptr); - JS::RootedObject obj(cx); - xpc->WrapNative(cx, ::JS::CurrentGlobalOrNull(cx), element, - NS_GET_IID(nsIDOMElement), obj.address()); - NS_ENSURE_TRUE(obj, nullptr); + JS::RootedValue val(cx); + if (!ToJSValue(cx, element, &val)) { + return nullptr; + } + + if (NS_WARN_IF(!val.isObject())) { + return nullptr; + } + + JS::RootedObject obj(cx, &val.toObject()); return nsJSObjWrapper::GetNewOrUsed(npp, obj); } NPIdentifier _getstringidentifier(const NPUTF8* name) { if (!name) { @@ -1446,28 +1453,23 @@ NPError } case NPNVdocumentOrigin: { nsNPAPIPluginInstance *inst = (nsNPAPIPluginInstance *)npp->ndata; if (!inst) { return NPERR_GENERIC_ERROR; } - nsCOMPtr<nsIDOMElement> element; + RefPtr<dom::Element> element; inst->GetDOMElement(getter_AddRefs(element)); if (!element) { return NPERR_GENERIC_ERROR; } - nsCOMPtr<nsIContent> content(do_QueryInterface(element)); - if (!content) { - return NPERR_GENERIC_ERROR; - } - - nsIPrincipal* principal = content->NodePrincipal(); + nsIPrincipal* principal = element->NodePrincipal(); nsAutoString utf16Origin; res = nsContentUtils::GetUTFOrigin(principal, utf16Origin); if (NS_FAILED(res)) { return NPERR_GENERIC_ERROR; } nsCOMPtr<nsIIDNService> idnService = do_GetService(NS_IDNSERVICE_CONTRACTID);
--- a/dom/plugins/base/nsNPAPIPluginInstance.cpp +++ b/dom/plugins/base/nsNPAPIPluginInstance.cpp @@ -13,31 +13,31 @@ #include "nsNPAPIPlugin.h" #include "nsNPAPIPluginStreamListener.h" #include "nsPluginHost.h" #include "nsPluginLogging.h" #include "nsContentUtils.h" #include "nsPluginInstanceOwner.h" #include "nsThreadUtils.h" -#include "nsIDOMElement.h" #include "nsIDocument.h" #include "nsIDocShell.h" #include "nsIScriptGlobalObject.h" #include "nsIScriptContext.h" #include "nsDirectoryServiceDefs.h" #include "nsJSNPRuntime.h" #include "nsPluginStreamListenerPeer.h" #include "nsSize.h" #include "nsNetCID.h" #include "nsIContent.h" #include "nsVersionComparator.h" #include "mozilla/Preferences.h" #include "mozilla/Unused.h" #include "nsILoadContext.h" +#include "mozilla/dom/Element.h" #include "mozilla/dom/HTMLObjectElementBinding.h" #include "AudioChannelService.h" using namespace mozilla; using namespace mozilla::dom; using namespace mozilla; using namespace mozilla::plugins::parent; @@ -1083,17 +1083,17 @@ nsNPAPIPluginInstance::ConvertPoint(doub if (mOwner) { return mOwner->ConvertPoint(sourceX, sourceY, sourceSpace, destX, destY, destSpace); } return false; } nsresult -nsNPAPIPluginInstance::GetDOMElement(nsIDOMElement* *result) +nsNPAPIPluginInstance::GetDOMElement(Element** result) { if (!mOwner) { *result = nullptr; return NS_ERROR_FAILURE; } return mOwner->GetDOMElement(result); }
--- a/dom/plugins/base/nsNPAPIPluginInstance.h +++ b/dom/plugins/base/nsNPAPIPluginInstance.h @@ -26,16 +26,22 @@ #include "mozilla/WeakPtr.h" class nsPluginStreamListenerPeer; // browser-initiated stream class class nsNPAPIPluginStreamListener; // plugin-initiated stream class class nsIPluginInstanceOwner; class nsIOutputStream; class nsPluginInstanceOwner; +namespace mozilla { +namespace dom { +class Element; +} // namespace dom +} // namespace mozilla + #if defined(OS_WIN) const NPDrawingModel kDefaultDrawingModel = NPDrawingModelSyncWin; #elif defined(MOZ_X11) const NPDrawingModel kDefaultDrawingModel = NPDrawingModelSyncX; #elif defined(XP_MACOSX) #ifndef NP_NO_QUICKDRAW const NPDrawingModel kDefaultDrawingModel = NPDrawingModelQuickDraw; // Not supported #else @@ -185,17 +191,17 @@ public: void SetCached(bool aCache); already_AddRefed<nsPIDOMWindowOuter> GetDOMWindow(); nsresult PrivateModeStateChanged(bool aEnabled); nsresult IsPrivateBrowsing(bool *aEnabled); - nsresult GetDOMElement(nsIDOMElement* *result); + nsresult GetDOMElement(mozilla::dom::Element* *result); nsNPAPITimer* TimerWithID(uint32_t id, uint32_t* index); uint32_t ScheduleTimer(uint32_t interval, NPBool repeat, void (*timerFunc)(NPP npp, uint32_t timerID)); void UnscheduleTimer(uint32_t timerID); NPBool ConvertPoint(double sourceX, double sourceY, NPCoordinateSpace sourceSpace, double *destX, double *destY, NPCoordinateSpace destSpace); nsTArray<nsNPAPIPluginStreamListener*> *StreamListeners();
--- a/dom/plugins/base/nsPluginHost.cpp +++ b/dom/plugins/base/nsPluginHost.cpp @@ -47,16 +47,17 @@ #include "nsIBlocklistService.h" #include "nsVersionComparator.h" #include "nsIObjectLoadingContent.h" #include "nsIWritablePropertyBag2.h" #include "nsICategoryManager.h" #include "nsPluginStreamListenerPeer.h" #include "mozilla/dom/ContentChild.h" #include "mozilla/dom/ContentParent.h" +#include "mozilla/dom/Element.h" #include "mozilla/dom/FakePluginTagInitBinding.h" #include "mozilla/ClearOnShutdown.h" #include "mozilla/LoadInfo.h" #include "mozilla/plugins/PluginBridge.h" #include "mozilla/plugins/PluginTypes.h" #include "mozilla/Preferences.h" #include "mozilla/ipc/URIUtils.h" @@ -65,17 +66,16 @@ #include "nsXPCOMCID.h" #include "nsISupportsPrimitives.h" #include "nsXULAppAPI.h" #include "nsIXULRuntime.h" // for the dialog #include "nsIWindowWatcher.h" -#include "nsIDOMElement.h" #include "nsIDOMWindow.h" #include "nsNetCID.h" #include "mozilla/Sprintf.h" #include "nsThreadUtils.h" #include "nsIInputStreamTee.h" #include "nsQueryObject.h" @@ -3292,34 +3292,33 @@ nsresult nsPluginHost::NewPluginURLStrea NS_ENSURE_SUCCESS(rv, rv); RefPtr<nsPluginStreamListenerPeer> listenerPeer = new nsPluginStreamListenerPeer(); NS_ENSURE_TRUE(listenerPeer, NS_ERROR_OUT_OF_MEMORY); rv = listenerPeer->Initialize(url, aInstance, aListener); NS_ENSURE_SUCCESS(rv, rv); - nsCOMPtr<nsIDOMElement> element; + RefPtr<dom::Element> element; nsCOMPtr<nsIDocument> doc; if (owner) { owner->GetDOMElement(getter_AddRefs(element)); owner->GetDocument(getter_AddRefs(doc)); } - nsCOMPtr<nsINode> requestingNode(do_QueryInterface(element)); - NS_ENSURE_TRUE(requestingNode, NS_ERROR_FAILURE); + NS_ENSURE_TRUE(element, NS_ERROR_FAILURE); nsCOMPtr<nsIChannel> channel; // @arg loadgroup: // do not add this internal plugin's channel on the // load group otherwise this channel could be canceled // form |nsDocShell::OnLinkClickSync| bug 166613 rv = NS_NewChannel(getter_AddRefs(channel), url, - requestingNode, + element, nsILoadInfo::SEC_ALLOW_CROSS_ORIGIN_DATA_INHERITS | nsILoadInfo::SEC_FORCE_INHERIT_PRINCIPAL, nsIContentPolicy::TYPE_OBJECT_SUBREQUEST, nullptr, // aPerformanceStorage nullptr, // aLoadGroup listenerPeer, nsIRequest::LOAD_NORMAL | nsIChannel::LOAD_CLASSIFY_URI | nsIChannel::LOAD_BYPASS_SERVICE_WORKER); @@ -3852,17 +3851,17 @@ nsPluginHost::PluginCrashed(nsNPAPIPlugi // Invalidate each nsPluginInstanceTag for the crashed plugin for (uint32_t i = mInstances.Length(); i > 0; i--) { nsNPAPIPluginInstance* instance = mInstances[i - 1]; if (instance->GetPlugin() == aPlugin) { // notify the content node (nsIObjectLoadingContent) that the // plugin has crashed - nsCOMPtr<nsIDOMElement> domElement; + RefPtr<dom::Element> domElement; instance->GetDOMElement(getter_AddRefs(domElement)); nsCOMPtr<nsIObjectLoadingContent> objectContent(do_QueryInterface(domElement)); if (objectContent) { objectContent->PluginCrashed(crashedPluginTag, pluginDumpID, browserDumpID, submittedCrashReport); } instance->Destroy(); @@ -3947,17 +3946,17 @@ nsPluginHost::DestroyRunningInstances(ns if (instance->IsRunning() && (!aPluginTag || aPluginTag == TagForPlugin(instance->GetPlugin()))) { instance->SetWindow(nullptr); instance->Stop(); // Get rid of all the instances without the possibility of caching. nsPluginTag* pluginTag = TagForPlugin(instance->GetPlugin()); instance->SetWindow(nullptr); - nsCOMPtr<nsIDOMElement> domElement; + RefPtr<dom::Element> domElement; instance->GetDOMElement(getter_AddRefs(domElement)); nsCOMPtr<nsIObjectLoadingContent> objectContent = do_QueryInterface(domElement); instance->Destroy(); mInstances.RemoveElement(instance); OnPluginInstanceDestroyed(pluginTag);
--- a/dom/plugins/base/nsPluginInstanceOwner.cpp +++ b/dom/plugins/base/nsPluginInstanceOwner.cpp @@ -47,16 +47,17 @@ using mozilla::DefaultXDisplay; #include "ImageContainer.h" #include "GLContext.h" #include "EGLUtils.h" #include "nsIContentInlines.h" #include "mozilla/MiscEvents.h" #include "mozilla/MouseEvents.h" #include "mozilla/TextEvents.h" #include "mozilla/dom/DragEvent.h" +#include "mozilla/dom/Element.h" #include "mozilla/dom/Event.h" #include "mozilla/dom/HTMLObjectElementBinding.h" #include "mozilla/dom/TabChild.h" #include "mozilla/dom/WheelEventBinding.h" #include "nsFrameSelection.h" #include "PuppetWidget.h" #include "nsPIWindowRoot.h" #include "mozilla/IMEStateManager.h" @@ -382,17 +383,17 @@ void nsPluginInstanceOwner::GetAttribute { nsCOMPtr<nsIObjectLoadingContent> content = do_QueryReferent(mContent); nsObjectLoadingContent *loadingContent = static_cast<nsObjectLoadingContent*>(content.get()); loadingContent->GetPluginAttributes(attributes); } -NS_IMETHODIMP nsPluginInstanceOwner::GetDOMElement(nsIDOMElement* *result) +NS_IMETHODIMP nsPluginInstanceOwner::GetDOMElement(Element** result) { return CallQueryReferent(mContent.get(), result); } nsresult nsPluginInstanceOwner::GetInstance(nsNPAPIPluginInstance **aInstance) { NS_ENSURE_ARG_POINTER(aInstance);
--- a/dom/plugins/base/nsPluginInstanceOwner.h +++ b/dom/plugins/base/nsPluginInstanceOwner.h @@ -32,16 +32,17 @@ class nsDisplayListBuilder; #if defined(MOZ_X11) class gfxContext; #endif namespace mozilla { class TextComposition; namespace dom { +class Element; class Event; struct MozPluginParameter; } // namespace dom namespace widget { class PuppetWidget; } // namespace widget } // namespace mozilla @@ -90,17 +91,17 @@ public: /** * Returns the DOM element corresponding to the tag which references * this plugin in the document. * * @param aDOMElement - resulting DOM element * @result - NS_OK if this operation was successful */ - NS_IMETHOD GetDOMElement(nsIDOMElement* * aResult); + NS_IMETHOD GetDOMElement(mozilla::dom::Element** aResult); // nsIDOMEventListener interfaces NS_DECL_NSIDOMEVENTLISTENER nsresult ProcessMouseDown(mozilla::dom::Event* aMouseEvent); nsresult ProcessKeyPress(mozilla::dom::Event* aKeyEvent); nsresult Destroy();
--- a/dom/plugins/base/nsPluginStreamListenerPeer.cpp +++ b/dom/plugins/base/nsPluginStreamListenerPeer.cpp @@ -1,17 +1,16 @@ /* -*- Mode: C++; 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 "nsPluginStreamListenerPeer.h" #include "nsIContentPolicy.h" #include "nsContentPolicyUtils.h" -#include "nsIDOMElement.h" #include "nsIStreamConverterService.h" #include "nsIStreamLoader.h" #include "nsIHttpChannel.h" #include "nsIHttpChannelInternal.h" #include "nsIFileChannel.h" #include "nsMimeTypes.h" #include "nsISupportsPrimitives.h" #include "nsNetCID.h"
--- a/dom/plugins/ipc/PluginInstanceParent.cpp +++ b/dom/plugins/ipc/PluginInstanceParent.cpp @@ -21,17 +21,16 @@ #include "gfxASurface.h" #include "gfxContext.h" #include "gfxPlatform.h" #include "gfxSharedImageSurface.h" #include "nsNetUtil.h" #include "nsNPAPIPluginInstance.h" #include "nsPluginInstanceOwner.h" #include "nsFocusManager.h" -#include "nsIDOMElement.h" #ifdef MOZ_X11 #include "gfxXlibSurface.h" #endif #include "gfxUtils.h" #include "mozilla/gfx/2D.h" #include "Layers.h" #include "ImageContainer.h" #include "GLContext.h" @@ -2217,21 +2216,20 @@ PluginInstanceParent::AnswerPluginFocusC // when it's plugin window (or one of it's children) receives keyboard // focus. We detect this and forward a notification here so we can update // focus. #if defined(OS_WIN) if (gotFocus) { nsPluginInstanceOwner* owner = GetOwner(); if (owner) { nsIFocusManager* fm = nsFocusManager::GetFocusManager(); - nsCOMPtr<nsIDOMElement> element; + RefPtr<dom::Element> element; owner->GetDOMElement(getter_AddRefs(element)); if (fm && element) { - nsCOMPtr<dom::Element> domElement(do_QueryInterface(element)); - fm->SetFocus(domElement, 0); + fm->SetFocus(element, 0); } } } return IPC_OK(); #else NS_NOTREACHED("PluginInstanceParent::AnswerPluginFocusChange not implemented!"); return IPC_FAIL_NO_REASON(this); #endif
--- a/dom/plugins/ipc/PluginModuleParent.cpp +++ b/dom/plugins/ipc/PluginModuleParent.cpp @@ -8,16 +8,17 @@ #include "base/process_util.h" #include "mozilla/Attributes.h" #include "mozilla/AutoRestore.h" #include "mozilla/dom/ContentParent.h" #include "mozilla/dom/ContentChild.h" #include "mozilla/ipc/CrashReporterClient.h" #include "mozilla/ipc/CrashReporterHost.h" +#include "mozilla/dom/Element.h" #include "mozilla/ipc/GeckoChildProcessHost.h" #include "mozilla/ipc/MessageChannel.h" #include "mozilla/ipc/ProtocolUtils.h" #include "mozilla/plugins/BrowserStreamParent.h" #include "mozilla/plugins/PluginBridge.h" #include "mozilla/plugins/PluginInstanceParent.h" #include "mozilla/Preferences.h" #include "mozilla/ProcessHangMonitor.h" @@ -2467,20 +2468,20 @@ PluginModuleParent::NPP_NewInternal(NPMI #endif } instance->pdata = parentInstance; // Any IPC messages for the PluginInstance actor should be dispatched to the // DocGroup for the plugin's document. RefPtr<nsPluginInstanceOwner> owner = parentInstance->GetOwner(); - nsCOMPtr<nsIDOMElement> elt; + RefPtr<dom::Element> elt; owner->GetDOMElement(getter_AddRefs(elt)); - if (nsCOMPtr<nsINode> node = do_QueryInterface(elt)) { - nsCOMPtr<nsIDocument> doc = node->OwnerDoc(); + if (elt) { + nsCOMPtr<nsIDocument> doc = elt->OwnerDoc(); if (doc) { nsCOMPtr<nsIEventTarget> eventTarget = doc->EventTargetFor(TaskCategory::Other); SetEventTargetForActor(parentInstance, eventTarget); } } if (!SendPPluginInstanceConstructor(parentInstance, nsDependentCString(pluginType),
--- a/dom/smil/nsSMILTimedElement.cpp +++ b/dom/smil/nsSMILTimedElement.cpp @@ -312,17 +312,17 @@ dom::Element* nsSMILTimedElement::GetTargetElement() { return mAnimationElement ? mAnimationElement->GetTargetElementContent() : nullptr; } //---------------------------------------------------------------------- -// nsIDOMElementTimeControl methods +// ElementTimeControl methods // // The definition of the ElementTimeControl interface differs between SMIL // Animation and SVG 1.1. In SMIL Animation all methods have a void return // type and the new instance time is simply added to the list and restart // semantics are applied as with any other instance time. In the SVG definition // the methods return a bool depending on the restart mode. // // This inconsistency has now been addressed by an erratum in SVG 1.1:
--- a/dom/smil/nsSMILTimedElement.h +++ b/dom/smil/nsSMILTimedElement.h @@ -58,17 +58,17 @@ public: /* * Returns the element targeted by the animation element. Needed for * registering event listeners against the appropriate element. */ mozilla::dom::Element* GetTargetElement(); /** - * Methods for supporting the nsIDOMElementTimeControl interface. + * Methods for supporting the ElementTimeControl interface. */ /* * Adds a new begin instance time at the current container time plus or minus * the specified offset. * * @param aOffsetSeconds A real number specifying the number of seconds to add * to the current container time.
--- a/dom/tests/mochitest/general/test_domWindowUtils.html +++ b/dom/tests/mochitest/general/test_domWindowUtils.html @@ -27,20 +27,20 @@ <script type="application/javascript"> SimpleTest.waitForExplicitFinish(); var domWindowUtils = SpecialPowers.getDOMWindowUtils(window); var gTests = [ /* - nsIDOMElement elementFromPoint(in long aX, - in long aY, - in boolean aIgnoreRootScrollFrame, - in boolean aFlushLayout); + Element elementFromPoint(in long aX, + in long aY, + in boolean aIgnoreRootScrollFrame, + in boolean aFlushLayout); */ async function testElementFromPoint() { let onscreen = document.getElementById("onscreen"); let offscreen = document.getElementById("offscreen"); let htmldoc = document.documentElement; ok(onscreen, "on screen element exists"); ok(offscreen, "off screen element exists"); ok(htmldoc, "htmldoc element exists");
--- a/dom/xbl/nsBindingManager.cpp +++ b/dom/xbl/nsBindingManager.cpp @@ -12,17 +12,16 @@ #include "nsIInputStream.h" #include "nsIURI.h" #include "nsIURL.h" #include "nsIChannel.h" #include "nsString.h" #include "plstr.h" #include "nsIContent.h" #include "nsIContentInlines.h" -#include "nsIDOMElement.h" #include "nsIDocument.h" #include "nsContentUtils.h" #include "nsIPresShell.h" #include "nsIPresShellInlines.h" #include "nsIXMLContentSink.h" #include "nsContentCID.h" #include "mozilla/dom/XMLDocument.h" #include "nsIStreamListener.h"
--- a/dom/xbl/nsXBLService.cpp +++ b/dom/xbl/nsXBLService.cpp @@ -9,17 +9,16 @@ #include "nsCOMPtr.h" #include "nsNetUtil.h" #include "nsXBLService.h" #include "nsXBLWindowKeyHandler.h" #include "nsIInputStream.h" #include "nsNameSpaceManager.h" #include "nsIURI.h" -#include "nsIDOMElement.h" #include "nsIURL.h" #include "nsIChannel.h" #include "nsString.h" #include "plstr.h" #include "nsIContent.h" #include "nsIDocument.h" #include "nsIXMLContentSink.h" #include "nsContentCID.h" @@ -611,17 +610,18 @@ nsXBLService::AttachGlobalKeyHandler(Eve EventListenerManager* manager = piTarget->GetOrCreateListenerManager(); if (!manager) return NS_ERROR_FAILURE; // the listener already exists, so skip this if (contentNode && contentNode->GetProperty(nsGkAtoms::listener)) return NS_OK; - nsCOMPtr<nsIDOMElement> elt(do_QueryInterface(contentNode)); + Element* elt = + contentNode && contentNode->IsElement() ? contentNode->AsElement() : nullptr; // Create the key handler RefPtr<nsXBLWindowKeyHandler> handler = NS_NewXBLWindowKeyHandler(elt, piTarget); handler->InstallKeyboardEventListenersTo(manager); if (contentNode)
--- a/dom/xbl/nsXBLWindowKeyHandler.cpp +++ b/dom/xbl/nsXBLWindowKeyHandler.cpp @@ -8,17 +8,16 @@ #include "nsXBLPrototypeHandler.h" #include "nsXBLWindowKeyHandler.h" #include "nsIContent.h" #include "nsAtom.h" #include "nsXBLService.h" #include "nsIServiceManager.h" #include "nsGkAtoms.h" #include "nsXBLDocumentInfo.h" -#include "nsIDOMElement.h" #include "nsFocusManager.h" #include "nsIURI.h" #include "nsNetUtil.h" #include "nsContentUtils.h" #include "nsXBLPrototypeBinding.h" #include "nsPIDOMWindow.h" #include "nsIDocShell.h" #include "nsIDOMDocument.h" @@ -157,17 +156,17 @@ uint32_t nsXBLWindowKeyHandler::sRefCnt nsXBLWindowKeyHandler::EnsureSpecialDocInfo() { if (!sXBLSpecialDocInfo) { sXBLSpecialDocInfo = new nsXBLSpecialDocInfo(); } sXBLSpecialDocInfo->LoadDocInfo(); } -nsXBLWindowKeyHandler::nsXBLWindowKeyHandler(nsIDOMElement* aElement, +nsXBLWindowKeyHandler::nsXBLWindowKeyHandler(Element* aElement, EventTarget* aTarget) : mTarget(aTarget), mHandler(nullptr), mUserHandler(nullptr) { mWeakPtrForElement = do_GetWeakReference(aElement); ++sRefCnt; } @@ -948,14 +947,14 @@ nsXBLWindowKeyHandler::IsExecutableEleme } return true; } /////////////////////////////////////////////////////////////////////////////////// already_AddRefed<nsXBLWindowKeyHandler> -NS_NewXBLWindowKeyHandler(nsIDOMElement* aElement, EventTarget* aTarget) +NS_NewXBLWindowKeyHandler(Element* aElement, EventTarget* aTarget) { RefPtr<nsXBLWindowKeyHandler> result = new nsXBLWindowKeyHandler(aElement, aTarget); return result.forget(); }
--- a/dom/xbl/nsXBLWindowKeyHandler.h +++ b/dom/xbl/nsXBLWindowKeyHandler.h @@ -8,17 +8,16 @@ #define nsXBLWindowKeyHandler_h__ #include "mozilla/EventForwards.h" #include "mozilla/layers/KeyboardMap.h" #include "nsWeakPtr.h" #include "nsIDOMEventListener.h" class nsAtom; -class nsIDOMElement; class nsXBLPrototypeHandler; namespace mozilla { class EventListenerManager; class WidgetKeyboardEvent; struct IgnoreModifierState; namespace dom { class Element; @@ -30,17 +29,18 @@ class KeyboardEvent; class nsXBLWindowKeyHandler : public nsIDOMEventListener { typedef mozilla::EventListenerManager EventListenerManager; typedef mozilla::IgnoreModifierState IgnoreModifierState; typedef mozilla::layers::KeyboardMap KeyboardMap; typedef mozilla::dom::KeyboardEvent KeyboardEvent; public: - nsXBLWindowKeyHandler(nsIDOMElement* aElement, mozilla::dom::EventTarget* aTarget); + nsXBLWindowKeyHandler(mozilla::dom::Element* aElement, + mozilla::dom::EventTarget* aTarget); void InstallKeyboardEventListenersTo( EventListenerManager* aEventListenerManager); void RemoveKeyboardEventListenersFrom( EventListenerManager* aEventListenerManager); static KeyboardMap CollectKeyboardShortcuts(); @@ -133,12 +133,12 @@ protected: nsXBLPrototypeHandler* mHandler; // platform bindings nsXBLPrototypeHandler* mUserHandler; // user-specific bindings // holds reference count to document info about bindings static uint32_t sRefCnt; }; already_AddRefed<nsXBLWindowKeyHandler> -NS_NewXBLWindowKeyHandler(nsIDOMElement* aElement, +NS_NewXBLWindowKeyHandler(mozilla::dom::Element* aElement, mozilla::dom::EventTarget* aTarget); #endif
--- a/dom/xml/XMLDocument.cpp +++ b/dom/xml/XMLDocument.cpp @@ -10,17 +10,16 @@ #include "nsCharsetSource.h" #include "nsIXMLContentSink.h" #include "nsPresContext.h" #include "nsIContent.h" #include "nsIContentViewer.h" #include "nsIDocShell.h" #include "nsHTMLParts.h" #include "nsIComponentManager.h" -#include "nsIDOMElement.h" #include "nsIBaseWindow.h" #include "nsIDOMWindow.h" #include "nsCOMPtr.h" #include "nsString.h" #include "nsIHttpChannelInternal.h" #include "nsIURI.h" #include "nsIServiceManager.h" #include "nsNetUtil.h"
--- a/dom/xml/nsXMLPrettyPrinter.cpp +++ b/dom/xml/nsXMLPrettyPrinter.cpp @@ -4,17 +4,16 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "nsXMLPrettyPrinter.h" #include "nsContentUtils.h" #include "nsICSSDeclaration.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" #include "nsXBLService.h" #include "nsIScriptSecurityManager.h" #include "mozilla/Preferences.h" #include "nsIDocument.h"
--- a/dom/xslt/xpath/txMozillaXPathTreeWalker.cpp +++ b/dom/xslt/xpath/txMozillaXPathTreeWalker.cpp @@ -2,17 +2,16 @@ /* 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 "txXPathTreeWalker.h" #include "nsAtom.h" #include "nsIAttribute.h" #include "nsIDOMDocument.h" -#include "nsIDOMElement.h" #include "nsINode.h" #include "nsPrintfCString.h" #include "nsReadableUtils.h" #include "nsString.h" #include "nsTextFragment.h" #include "txXMLUtils.h" #include "txLog.h" #include "nsUnicharUtils.h"
--- a/dom/xslt/xslt/txMozillaXSLTProcessor.cpp +++ b/dom/xslt/xslt/txMozillaXSLTProcessor.cpp @@ -3,17 +3,16 @@ * 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 "txMozillaXSLTProcessor.h" #include "nsContentCID.h" #include "nsError.h" #include "nsIChannel.h" #include "mozilla/dom/Element.h" -#include "nsIDOMElement.h" #include "nsIDocument.h" #include "nsIDOMDocument.h" #include "nsIIOService.h" #include "nsILoadGroup.h" #include "nsIStringBundle.h" #include "nsIURI.h" #include "nsMemory.h" #include "XPathResult.h"
--- a/dom/xul/nsXULCommandDispatcher.cpp +++ b/dom/xul/nsXULCommandDispatcher.cpp @@ -9,17 +9,16 @@ This file provides the implementation for the XUL Command Dispatcher. */ #include "nsIContent.h" #include "nsFocusManager.h" #include "nsIControllers.h" #include "nsIDOMDocument.h" -#include "nsIDOMElement.h" #include "nsIDOMWindow.h" #include "nsIDocument.h" #include "nsPresContext.h" #include "nsIPresShell.h" #include "nsIScriptGlobalObject.h" #include "nsPIDOMWindow.h" #include "nsPIWindowRoot.h" #include "nsRDFCID.h"
--- a/dom/xul/nsXULContentUtils.cpp +++ b/dom/xul/nsXULContentUtils.cpp @@ -13,17 +13,16 @@ #include "mozilla/ArrayUtils.h" #include "nsCollationCID.h" #include "nsCOMPtr.h" #include "nsIContent.h" #include "nsICollation.h" #include "nsIDocument.h" -#include "nsIDOMElement.h" #include "nsIDOMXULCommandDispatcher.h" #include "nsIRDFService.h" #include "nsIServiceManager.h" #include "nsXULContentUtils.h" #include "nsLayoutCID.h" #include "nsRDFCID.h" #include "nsString.h" #include "nsGkAtoms.h"
--- a/dom/xul/nsXULControllers.cpp +++ b/dom/xul/nsXULControllers.cpp @@ -8,17 +8,16 @@ This file provides the implementation for the XUL "controllers" object. */ #include "nsString.h" #include "nsIControllers.h" -#include "nsIDOMElement.h" #include "nsXULControllers.h" #include "nsIController.h" //---------------------------------------------------------------------- nsXULControllers::nsXULControllers() : mCurControllerID(0) {
--- a/dom/xul/nsXULElement.h +++ b/dom/xul/nsXULElement.h @@ -645,21 +645,16 @@ protected: ~nsXULElement(); // This can be removed if EnsureContentsGenerated dies. friend class nsNSElementTearoff; // Implementation methods nsresult EnsureContentsGenerated(void) const; - nsresult ExecuteOnBroadcastHandler(nsIDOMElement* anElement, const nsAString& attrName); - - static nsresult - ExecuteJSCode(nsIDOMElement* anElement, mozilla::WidgetEvent* aEvent); - // Helper routine that crawls a parent chain looking for a tree element. NS_IMETHOD GetParentTree(nsIDOMXULMultiSelectControlElement** aTreeElement); nsresult AddPopupListener(nsAtom* aName); void LoadSrc(); /**
--- a/dom/xul/nsXULPopupListener.cpp +++ b/dom/xul/nsXULPopupListener.cpp @@ -215,17 +215,16 @@ nsXULPopupListener::HandleEvent(Event* a #ifndef NS_CONTEXT_MENU_IS_MOUSEUP nsresult nsXULPopupListener::FireFocusOnTargetContent(nsIDOMNode* aTargetNode, bool aIsTouch) { nsCOMPtr<nsIContent> content = do_QueryInterface(aTargetNode); nsCOMPtr<nsIDocument> doc = content->OwnerDoc(); - // Get nsIDOMElement for targetNode // strong reference to keep this from going away between events // XXXbz between what events? We don't use this local at all! RefPtr<nsPresContext> context = doc->GetPresContext(); if (!context) { return NS_ERROR_FAILURE; } nsIFrame* targetFrame = content->GetPrimaryFrame();
--- a/dom/xul/nsXULPopupListener.h +++ b/dom/xul/nsXULPopupListener.h @@ -8,17 +8,16 @@ */ #ifndef nsXULPopupListener_h___ #define nsXULPopupListener_h___ #include "nsCOMPtr.h" #include "mozilla/dom/Element.h" -#include "nsIDOMElement.h" #include "nsIDOMEventListener.h" #include "nsCycleCollectionParticipant.h" namespace mozilla { namespace dom { class MouseEvent; } // namespace dom } // namespace mozilla
--- a/dom/xul/nsXULSortService.cpp +++ b/dom/xul/nsXULSortService.cpp @@ -4,17 +4,16 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ /* This file provides the implementation for the sort service manager. */ #include "nsCOMPtr.h" #include "nsIContent.h" -#include "nsIDOMElement.h" #include "nsIDOMNode.h" #include "nsIServiceManager.h" #include "nsGkAtoms.h" #include "nsNameSpaceManager.h" #include "nsXULContentUtils.h" #include "nsString.h" #include "nsQuickSort.h" #include "nsWhitespaceTokenizer.h"