author | Boris Zbarsky <bzbarsky@mit.edu> |
Fri, 20 May 2016 23:13:17 -0400 | |
changeset 298331 | 93d5271f033292f898407d8cb1a1a80721a0ab5d |
parent 298330 | f66a5b9da35f355aa112cde5018d727246ffcb32 |
child 298332 | fdef8e56876622d669553bdf67524a39df1aab9b |
push id | 30281 |
push user | cbook@mozilla.com |
push date | Tue, 24 May 2016 12:54:02 +0000 |
treeherder | mozilla-central@829d3be6ba64 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | bkelly, jgraham |
bugs | 909633 |
milestone | 49.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 @@ -3072,20 +3072,16 @@ nsDOMTokenListPropertyDestructor(void *a { nsDOMTokenList* list = static_cast<nsDOMTokenList*>(aPropertyValue); NS_RELEASE(list); } static nsIAtom** sPropertiesToTraverseAndUnlink[] = { - &nsGkAtoms::microdataProperties, - &nsGkAtoms::itemtype, - &nsGkAtoms::itemref, - &nsGkAtoms::itemprop, &nsGkAtoms::sandbox, &nsGkAtoms::sizes, nullptr }; // static nsIAtom*** Element::HTMLSVGPropertiesToTraverseAndUnlink() @@ -3117,36 +3113,16 @@ Element::GetTokenList(nsIAtom* aAtom, if (!list) { list = new nsDOMTokenList(this, aAtom, aSupportedTokens); NS_ADDREF(list); SetProperty(aAtom, list, nsDOMTokenListPropertyDestructor); } return list; } -void -Element::GetTokenList(nsIAtom* aAtom, nsIVariant** aResult) -{ - nsISupports* itemType = GetTokenList(aAtom); - nsCOMPtr<nsIWritableVariant> out = new nsVariant(); - out->SetAsInterface(NS_GET_IID(nsISupports), itemType); - out.forget(aResult); -} - -nsresult -Element::SetTokenList(nsIAtom* aAtom, nsIVariant* aValue) -{ - nsDOMTokenList* itemType = GetTokenList(aAtom); - nsAutoString string; - aValue->GetAsAString(string); - ErrorResult rv; - itemType->SetValue(string, rv); - return rv.StealNSResult(); -} - Element* Element::Closest(const nsAString& aSelector, ErrorResult& aResult) { nsCSSSelectorList* selectorList = ParseSelectorList(aSelector, aResult); if (!selectorList) { // Either we failed (and aResult already has the exception), or this // is a pseudo-element-only selector that matches nothing. return nullptr;
--- a/dom/base/Element.h +++ b/dom/base/Element.h @@ -1331,18 +1331,16 @@ protected: * this gets the value of the xlink:_moz_target attribute, or failing that, * the value of xlink:show, converted to a suitably equivalent named target * (e.g. _blank). */ virtual void GetLinkTarget(nsAString& aTarget); nsDOMTokenList* GetTokenList(nsIAtom* aAtom, const DOMTokenListSupportedTokenArray aSupportedTokens = nullptr); - void GetTokenList(nsIAtom* aAtom, nsIVariant** aResult); - nsresult SetTokenList(nsIAtom* aAtom, nsIVariant* aValue); private: /** * Get this element's client area rect in app units. * @return the frame's client area */ nsRect GetClientAreaRect();
--- a/dom/base/nsGkAtomList.h +++ b/dom/base/nsGkAtomList.h @@ -597,17 +597,16 @@ GK_ATOM(menulist, "menulist") GK_ATOM(menupopup, "menupopup") GK_ATOM(menuseparator, "menuseparator") GK_ATOM(message, "message") GK_ATOM(meta, "meta") GK_ATOM(referrer, "referrer") GK_ATOM(referrerpolicy, "referrerpolicy") GK_ATOM(meter, "meter") GK_ATOM(method, "method") -GK_ATOM(microdataProperties, "microdataProperties") GK_ATOM(middle, "middle") GK_ATOM(min, "min") GK_ATOM(minheight, "minheight") GK_ATOM(minimum_scale, "minimum-scale") GK_ATOM(minpos, "minpos") GK_ATOM(minusSign, "minus-sign") GK_ATOM(minwidth, "minwidth") GK_ATOM(_mixed, "mixed")
--- a/dom/bindings/Bindings.conf +++ b/dom/bindings/Bindings.conf @@ -569,20 +569,16 @@ DOMInterfaces = { 'HTMLOListElement': { 'nativeType' : 'mozilla::dom::HTMLSharedListElement' }, 'HTMLParamElement': { 'nativeType': 'mozilla::dom::HTMLSharedElement' }, -'HTMLPropertiesCollection': { - 'headerFile': 'HTMLPropertiesCollection.h', -}, - 'HTMLQuoteElement': { 'nativeType': 'mozilla::dom::HTMLSharedElement' }, 'HTMLTextAreaElement': { 'binaryNames': { 'textLength': 'getTextLength' } @@ -924,20 +920,16 @@ DOMInterfaces = { 'PromiseDebugging': { 'concrete': False, }, 'PromiseNativeHandler': { 'wrapperCache': False, }, -'PropertyNodeList': { - 'headerFile': 'HTMLPropertiesCollection.h', -}, - 'PushEvent': { 'headerFile': 'ServiceWorkerEvents.h', 'nativeType': 'mozilla::dom::workers::PushEvent', }, 'PushMessageData': { 'headerFile': 'ServiceWorkerEvents.h', 'nativeType': 'mozilla::dom::workers::PushMessageData',
--- a/dom/html/HTMLAnchorElement.cpp +++ b/dom/html/HTMLAnchorElement.cpp @@ -97,28 +97,16 @@ NS_IMPL_STRING_ATTR(HTMLAnchorElement, T NS_IMPL_STRING_ATTR(HTMLAnchorElement, Download, download) int32_t HTMLAnchorElement::TabIndexDefault() { return 0; } -void -HTMLAnchorElement::GetItemValueText(DOMString& aValue) -{ - GetHref(aValue); -} - -void -HTMLAnchorElement::SetItemValueText(const nsAString& aValue) -{ - SetHref(aValue); -} - bool HTMLAnchorElement::Draggable() const { // links can be dragged as long as there is an href and the // draggable attribute isn't false if (!HasAttr(kNameSpaceID_None, nsGkAtoms::href)) { // no href, so just use the same behavior as other elements return nsGenericHTMLElement::Draggable();
--- a/dom/html/HTMLAnchorElement.h +++ b/dom/html/HTMLAnchorElement.h @@ -227,18 +227,16 @@ public: GetHref(aResult); } static DOMTokenListSupportedToken sSupportedRelValues[]; protected: virtual ~HTMLAnchorElement(); - virtual void GetItemValueText(DOMString& text) override; - virtual void SetItemValueText(const nsAString& text) override; virtual JSObject* WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto) override; RefPtr<nsDOMTokenList > mRelList; }; } // namespace dom } // namespace mozilla #endif // mozilla_dom_HTMLAnchorElement_h
--- a/dom/html/HTMLAreaElement.cpp +++ b/dom/html/HTMLAreaElement.cpp @@ -60,28 +60,16 @@ NS_IMPL_STRING_ATTR(HTMLAreaElement, Sha NS_IMPL_STRING_ATTR(HTMLAreaElement, Download, download) int32_t HTMLAreaElement::TabIndexDefault() { return 0; } -void -HTMLAreaElement::GetItemValueText(DOMString& aValue) -{ - GetHref(aValue); -} - -void -HTMLAreaElement::SetItemValueText(const nsAString& aValue) -{ - SetHref(aValue); -} - NS_IMETHODIMP HTMLAreaElement::GetTarget(nsAString& aValue) { if (!GetAttr(kNameSpaceID_None, nsGkAtoms::target, aValue)) { GetBaseTarget(aValue); } return NS_OK; }
--- a/dom/html/HTMLAreaElement.h +++ b/dom/html/HTMLAreaElement.h @@ -180,17 +180,15 @@ public: GetHref(aResult); } protected: virtual ~HTMLAreaElement(); virtual JSObject* WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override; - virtual void GetItemValueText(DOMString& text) override; - virtual void SetItemValueText(const nsAString& text) override; RefPtr<nsDOMTokenList > mRelList; }; } // namespace dom } // namespace mozilla #endif /* mozilla_dom_HTMLAreaElement_h */
--- a/dom/html/HTMLDataElement.cpp +++ b/dom/html/HTMLDataElement.cpp @@ -25,23 +25,10 @@ HTMLDataElement::~HTMLDataElement() NS_IMPL_ELEMENT_CLONE(HTMLDataElement) JSObject* HTMLDataElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) { return HTMLDataElementBinding::Wrap(aCx, this, aGivenProto); } -void -HTMLDataElement::GetItemValueText(DOMString& text) -{ - GetValue(text); -} - -void -HTMLDataElement::SetItemValueText(const nsAString& text) -{ - ErrorResult rv; - SetValue(text, rv); -} - } // namespace dom } // namespace mozilla
--- a/dom/html/HTMLDataElement.h +++ b/dom/html/HTMLDataElement.h @@ -26,18 +26,16 @@ public: GetHTMLAttr(nsGkAtoms::value, aValue); } void SetValue(const nsAString& aValue, ErrorResult& aError) { SetHTMLAttr(nsGkAtoms::value, aValue, aError); } - virtual void GetItemValueText(DOMString& text) override; - virtual void SetItemValueText(const nsAString& text) override; virtual nsresult Clone(mozilla::dom::NodeInfo* aNodeInfo, nsINode** aResult) const override; protected: virtual ~HTMLDataElement(); virtual JSObject* WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override; };
--- a/dom/html/HTMLIFrameElement.cpp +++ b/dom/html/HTMLIFrameElement.cpp @@ -50,28 +50,16 @@ NS_IMPL_STRING_ATTR(HTMLIFrameElement, M NS_IMPL_STRING_ATTR(HTMLIFrameElement, MarginWidth, marginwidth) NS_IMPL_STRING_ATTR(HTMLIFrameElement, Name, name) NS_IMPL_STRING_ATTR(HTMLIFrameElement, Scrolling, scrolling) NS_IMPL_URI_ATTR(HTMLIFrameElement, Src, src) NS_IMPL_STRING_ATTR(HTMLIFrameElement, Width, width) NS_IMPL_BOOL_ATTR(HTMLIFrameElement, AllowFullscreen, allowfullscreen) NS_IMPL_STRING_ATTR(HTMLIFrameElement, Srcdoc, srcdoc) -void -HTMLIFrameElement::GetItemValueText(DOMString& aValue) -{ - GetSrc(aValue); -} - -void -HTMLIFrameElement::SetItemValueText(const nsAString& aValue) -{ - SetSrc(aValue); -} - NS_IMETHODIMP HTMLIFrameElement::GetContentDocument(nsIDOMDocument** aContentDocument) { return nsGenericHTMLFrameElement::GetContentDocument(aContentDocument); } bool HTMLIFrameElement::ParseAttribute(int32_t aNamespaceID,
--- a/dom/html/HTMLIFrameElement.h +++ b/dom/html/HTMLIFrameElement.h @@ -188,19 +188,16 @@ public: // set, the fullscreen state of this element will not be reverted // automatically when its subdocument exits fullscreen. bool FullscreenFlag() const { return mFullscreenFlag; } void SetFullscreenFlag(bool aValue) { mFullscreenFlag = aValue; } protected: virtual ~HTMLIFrameElement(); - virtual void GetItemValueText(DOMString& text) override; - virtual void SetItemValueText(const nsAString& text) override; - virtual JSObject* WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override; private: static void MapAttributesIntoRule(const nsMappedAttributes* aAttributes, nsRuleData* aData); static const DOMTokenListSupportedToken sSupportedSandboxTokens[]; };
--- a/dom/html/HTMLImageElement.cpp +++ b/dom/html/HTMLImageElement.cpp @@ -190,28 +190,16 @@ HTMLImageElement::GetCurrentSrc(nsAStrin CopyUTF8toUTF16(spec, aValue); } else { SetDOMStringToNull(aValue); } return NS_OK; } -void -HTMLImageElement::GetItemValueText(DOMString& aValue) -{ - GetSrc(aValue); -} - -void -HTMLImageElement::SetItemValueText(const nsAString& aValue) -{ - SetSrc(aValue); -} - bool HTMLImageElement::Draggable() const { // images may be dragged unless the draggable attribute is false return !AttrValueIs(kNameSpaceID_None, nsGkAtoms::draggable, nsGkAtoms::_false, eIgnoreCase); }
--- a/dom/html/HTMLImageElement.h +++ b/dom/html/HTMLImageElement.h @@ -333,18 +333,16 @@ protected: // If the node's srcset/sizes make for an invalid selector, returns // false. This does not guarantee the resulting selector matches an image, // only that it is valid. bool TryCreateResponsiveSelector(nsIContent *aSourceNode, const nsAString *aSrcset = nullptr, const nsAString *aSizes = nullptr); CSSIntPoint GetXY(); - virtual void GetItemValueText(DOMString& text) override; - virtual void SetItemValueText(const nsAString& text) override; virtual JSObject* WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto) override; void UpdateFormOwner(); virtual nsresult BeforeSetAttr(int32_t aNameSpaceID, nsIAtom* aName, nsAttrValueOrString* aValue, bool aNotify) override; virtual nsresult AfterSetAttr(int32_t aNameSpaceID, nsIAtom* aName,
--- a/dom/html/HTMLLinkElement.cpp +++ b/dom/html/HTMLLinkElement.cpp @@ -127,28 +127,16 @@ NS_IMPL_URI_ATTR(HTMLLinkElement, Href, NS_IMPL_STRING_ATTR(HTMLLinkElement, Hreflang, hreflang) NS_IMPL_STRING_ATTR(HTMLLinkElement, Media, media) NS_IMPL_STRING_ATTR(HTMLLinkElement, Rel, rel) NS_IMPL_STRING_ATTR(HTMLLinkElement, Rev, rev) NS_IMPL_STRING_ATTR(HTMLLinkElement, Target, target) NS_IMPL_STRING_ATTR(HTMLLinkElement, Type, type) void -HTMLLinkElement::GetItemValueText(DOMString& aValue) -{ - GetHref(aValue); -} - -void -HTMLLinkElement::SetItemValueText(const nsAString& aValue) -{ - SetHref(aValue); -} - -void HTMLLinkElement::OnDNSPrefetchRequested() { UnsetFlags(HTML_LINK_DNS_PREFETCH_DEFERRED); SetFlags(HTML_LINK_DNS_PREFETCH_REQUESTED); } void HTMLLinkElement::OnDNSPrefetchDeferred()
--- a/dom/html/HTMLLinkElement.h +++ b/dom/html/HTMLLinkElement.h @@ -164,21 +164,18 @@ protected: // nsStyleLinkElement virtual already_AddRefed<nsIURI> GetStyleSheetURL(bool* aIsInline) override; virtual void GetStyleSheetInfo(nsAString& aTitle, nsAString& aType, nsAString& aMedia, bool* aIsScoped, bool* aIsAlternate) override; protected: - // nsGenericHTMLElement - virtual void GetItemValueText(DOMString& text) override; - virtual void SetItemValueText(const nsAString& text) override; + RefPtr<nsDOMTokenList> mRelList; - RefPtr<nsDOMTokenList > mRelList; private: RefPtr<ImportLoader> mImportLoader; }; } // namespace dom } // namespace mozilla #endif // mozilla_dom_HTMLLinkElement_h
--- a/dom/html/HTMLMediaElement.cpp +++ b/dom/html/HTMLMediaElement.cpp @@ -2320,30 +2320,16 @@ HTMLMediaElement::~HTMLMediaElement() if (mChannel) { mChannel->Cancel(NS_BINDING_ABORTED); } WakeLockRelease(); } -void -HTMLMediaElement::GetItemValueText(DOMString& aValue) -{ - // Can't call GetSrc because we don't have a JSContext - GetURIAttr(nsGkAtoms::src, nullptr, aValue); -} - -void -HTMLMediaElement::SetItemValueText(const nsAString& aValue) -{ - // Can't call SetSrc because we don't have a JSContext - SetAttr(kNameSpaceID_None, nsGkAtoms::src, aValue, true); -} - void HTMLMediaElement::StopSuspendingAfterFirstFrame() { mAllowSuspendAfterFirstFrame = false; if (!mSuspendedAfterFirstFrame) return; mSuspendedAfterFirstFrame = false; if (mDecoder) { mDecoder->Resume();
--- a/dom/html/HTMLMediaElement.h +++ b/dom/html/HTMLMediaElement.h @@ -738,19 +738,16 @@ protected: class StreamSizeListener; MediaDecoderOwner::NextFrameStatus NextFrameStatus(); void SetDecoder(MediaDecoder* aDecoder) { MOZ_ASSERT(aDecoder); // Use ShutdownDecoder() to clear. mDecoder = aDecoder; } - virtual void GetItemValueText(DOMString& text) override; - virtual void SetItemValueText(const nsAString& text) override; - class WakeLockBoolWrapper { public: explicit WakeLockBoolWrapper(bool val = false) : mValue(val), mCanPlay(true), mOuter(nullptr) {} ~WakeLockBoolWrapper(); void SetOuter(HTMLMediaElement* outer) { mOuter = outer; }
--- a/dom/html/HTMLMetaElement.cpp +++ b/dom/html/HTMLMetaElement.cpp @@ -33,28 +33,16 @@ NS_IMPL_ISUPPORTS_INHERITED(HTMLMetaElem NS_IMPL_ELEMENT_CLONE(HTMLMetaElement) NS_IMPL_STRING_ATTR(HTMLMetaElement, Content, content) NS_IMPL_STRING_ATTR(HTMLMetaElement, HttpEquiv, httpEquiv) NS_IMPL_STRING_ATTR(HTMLMetaElement, Name, name) NS_IMPL_STRING_ATTR(HTMLMetaElement, Scheme, scheme) -void -HTMLMetaElement::GetItemValueText(DOMString& aValue) -{ - GetContent(aValue); -} - -void -HTMLMetaElement::SetItemValueText(const nsAString& aValue) -{ - SetContent(aValue); -} - nsresult HTMLMetaElement::SetMetaReferrer(nsIDocument* aDocument) { if (!aDocument || !AttrValueIs(kNameSpaceID_None, nsGkAtoms::name, nsGkAtoms::referrer, eIgnoreCase)) { return NS_OK; } nsAutoString content;
--- a/dom/html/HTMLMetaElement.h +++ b/dom/html/HTMLMetaElement.h @@ -60,19 +60,16 @@ public: SetHTMLAttr(nsGkAtoms::scheme, aScheme, aRv); } virtual JSObject* WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override; protected: virtual ~HTMLMetaElement(); - virtual void GetItemValueText(DOMString& text) override; - virtual void SetItemValueText(const nsAString& text) override; - private: nsresult SetMetaReferrer(nsIDocument* aDocument); }; } // namespace dom } // namespace mozilla #endif // mozilla_dom_HTMLMetaElement_h
--- a/dom/html/HTMLObjectElement.cpp +++ b/dom/html/HTMLObjectElement.cpp @@ -239,28 +239,16 @@ HTMLObjectElement::PostHandleEvent(Event #endif // #ifdef XP_MACOSX NS_IMETHODIMP HTMLObjectElement::GetForm(nsIDOMHTMLFormElement **aForm) { return nsGenericHTMLFormElement::GetForm(aForm); } -void -HTMLObjectElement::GetItemValueText(DOMString& aValue) -{ - GetData(aValue); -} - -void -HTMLObjectElement::SetItemValueText(const nsAString& aValue) -{ - SetData(aValue); -} - nsresult HTMLObjectElement::BindToTree(nsIDocument *aDocument, nsIContent *aParent, nsIContent *aBindingParent, bool aCompileEventHandlers) { nsresult rv = nsGenericHTMLFormElement::BindToTree(aDocument, aParent, aBindingParent,
--- a/dom/html/HTMLObjectElement.h +++ b/dom/html/HTMLObjectElement.h @@ -249,19 +249,16 @@ private: */ bool IsFocusableForTabIndex(); nsContentPolicyType GetContentPolicyType() const override { return nsIContentPolicy::TYPE_INTERNAL_OBJECT; } - virtual void GetItemValueText(DOMString& text) override; - virtual void SetItemValueText(const nsAString& text) override; - virtual ~HTMLObjectElement(); virtual JSObject* WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto) override; static void MapAttributesIntoRule(const nsMappedAttributes* aAttributes, nsRuleData* aData); bool mIsDoneAddingChildren;
deleted file mode 100644 --- a/dom/html/HTMLPropertiesCollection.cpp +++ /dev/null @@ -1,518 +0,0 @@ -/* -*- 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 "HTMLPropertiesCollection.h" -#include "nsIDocument.h" -#include "nsContentUtils.h" -#include "nsGenericHTMLElement.h" -#include "nsVariant.h" -#include "nsDOMTokenList.h" -#include "nsAttrValue.h" -#include "nsWrapperCacheInlines.h" -#include "mozilla/dom/HTMLPropertiesCollectionBinding.h" -#include "jsapi.h" -#include "MainThreadUtils.h" -#include "mozilla/Assertions.h" - -namespace mozilla { -namespace dom { - -NS_IMPL_CYCLE_COLLECTION_CLASS(HTMLPropertiesCollection) - -NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(HTMLPropertiesCollection) - // SetDocument(nullptr) ensures that we remove ourselves as a mutation observer - tmp->SetDocument(nullptr); - NS_IMPL_CYCLE_COLLECTION_UNLINK(mRoot) - NS_IMPL_CYCLE_COLLECTION_UNLINK(mNames) - NS_IMPL_CYCLE_COLLECTION_UNLINK(mNamedItemEntries) - NS_IMPL_CYCLE_COLLECTION_UNLINK(mProperties) - NS_IMPL_CYCLE_COLLECTION_UNLINK_PRESERVED_WRAPPER -NS_IMPL_CYCLE_COLLECTION_UNLINK_END -NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(HTMLPropertiesCollection) - NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mDoc) - NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mRoot) - NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mNames) - NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mNamedItemEntries); - NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mProperties) - NS_IMPL_CYCLE_COLLECTION_TRAVERSE_SCRIPT_OBJECTS -NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END -NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN(HTMLPropertiesCollection) - NS_IMPL_CYCLE_COLLECTION_TRACE_PRESERVED_WRAPPER -NS_IMPL_CYCLE_COLLECTION_TRACE_END - -HTMLPropertiesCollection::HTMLPropertiesCollection(nsGenericHTMLElement* aRoot) - : mRoot(aRoot) - , mDoc(aRoot->GetUncomposedDoc()) - , mIsDirty(true) -{ - mNames = new PropertyStringList(this); - if (mDoc) { - mDoc->AddMutationObserver(this); - } -} - -HTMLPropertiesCollection::~HTMLPropertiesCollection() -{ - if (mDoc) { - mDoc->RemoveMutationObserver(this); - } -} - -NS_INTERFACE_TABLE_HEAD(HTMLPropertiesCollection) - NS_WRAPPERCACHE_INTERFACE_TABLE_ENTRY - NS_INTERFACE_TABLE(HTMLPropertiesCollection, - nsIDOMHTMLCollection, - nsIHTMLCollection, - nsIMutationObserver) - NS_INTERFACE_TABLE_TO_MAP_SEGUE_CYCLE_COLLECTION(HTMLPropertiesCollection) -NS_INTERFACE_MAP_END - -NS_IMPL_CYCLE_COLLECTING_ADDREF(HTMLPropertiesCollection) -NS_IMPL_CYCLE_COLLECTING_RELEASE(HTMLPropertiesCollection) - -void -HTMLPropertiesCollection::SetDocument(nsIDocument* aDocument) { - if (mDoc) { - mDoc->RemoveMutationObserver(this); - } - mDoc = aDocument; - if (mDoc) { - mDoc->AddMutationObserver(this); - } - for (auto iter = mNamedItemEntries.Iter(); !iter.Done(); iter.Next()) { - iter.UserData()->SetDocument(aDocument); - } - mIsDirty = true; -} - -JSObject* -HTMLPropertiesCollection::WrapObject(JSContext* cx, JS::Handle<JSObject*> aGivenProto) -{ - return HTMLPropertiesCollectionBinding::Wrap(cx, this, aGivenProto); -} - -NS_IMETHODIMP -HTMLPropertiesCollection::GetLength(uint32_t* aLength) -{ - EnsureFresh(); - *aLength = mProperties.Length(); - return NS_OK; -} - -NS_IMETHODIMP -HTMLPropertiesCollection::Item(uint32_t aIndex, nsIDOMNode** aResult) -{ - nsINode* result = nsIHTMLCollection::Item(aIndex); - if (result) { - NS_ADDREF(*aResult = result->AsDOMNode()); - } else { - *aResult = nullptr; - } - return NS_OK; -} - -NS_IMETHODIMP -HTMLPropertiesCollection::NamedItem(const nsAString& aName, - nsIDOMNode** aResult) -{ - *aResult = nullptr; - return NS_OK; -} - -Element* -HTMLPropertiesCollection::GetElementAt(uint32_t aIndex) -{ - EnsureFresh(); - return mProperties.SafeElementAt(aIndex); -} - -nsINode* -HTMLPropertiesCollection::GetParentObject() -{ - return mRoot; -} - -PropertyNodeList* -HTMLPropertiesCollection::NamedItem(const nsAString& aName) -{ - EnsureFresh(); - - PropertyNodeList* propertyList = mNamedItemEntries.GetWeak(aName); - if (!propertyList) { - RefPtr<PropertyNodeList> newPropertyList = - new PropertyNodeList(this, mRoot, aName); - mNamedItemEntries.Put(aName, newPropertyList); - propertyList = newPropertyList; - } - return propertyList; -} - -void -HTMLPropertiesCollection::AttributeChanged(nsIDocument *aDocument, Element* aElement, - int32_t aNameSpaceID, nsIAtom* aAttribute, - int32_t aModType, - const nsAttrValue* aOldValue) -{ - mIsDirty = true; -} - -void -HTMLPropertiesCollection::ContentAppended(nsIDocument* aDocument, nsIContent* aContainer, - nsIContent* aFirstNewContent, - int32_t aNewIndexInContainer) -{ - mIsDirty = true; -} - -void -HTMLPropertiesCollection::ContentInserted(nsIDocument *aDocument, - nsIContent* aContainer, - nsIContent* aChild, - int32_t aIndexInContainer) -{ - mIsDirty = true; -} - -void -HTMLPropertiesCollection::ContentRemoved(nsIDocument *aDocument, - nsIContent* aContainer, - nsIContent* aChild, - int32_t aIndexInContainer, - nsIContent* aPreviousSibling) -{ - mIsDirty = true; -} - -void -HTMLPropertiesCollection::EnsureFresh() -{ - if (mDoc && !mIsDirty) { - return; - } - mIsDirty = false; - - mProperties.Clear(); - mNames->Clear(); - // We don't clear NamedItemEntries because the PropertyNodeLists must be live. - for (auto iter = mNamedItemEntries.Iter(); !iter.Done(); iter.Next()) { - iter.UserData()->SetDirty(); - } - if (!mRoot->HasAttr(kNameSpaceID_None, nsGkAtoms::itemscope)) { - return; - } - - CrawlProperties(); - TreeOrderComparator comparator; - mProperties.Sort(comparator); - - // Create the names DOMStringList - uint32_t count = mProperties.Length(); - for (uint32_t i = 0; i < count; ++i) { - const nsAttrValue* attr = mProperties.ElementAt(i)->GetParsedAttr(nsGkAtoms::itemprop); - for (uint32_t i = 0; i < attr->GetAtomCount(); i++) { - nsDependentAtomString propName(attr->AtomAt(i)); - bool contains = mNames->ContainsInternal(propName); - if (!contains) { - mNames->Add(propName); - } - } - } -} - -static Element* -GetElementByIdForConnectedSubtree(nsIContent* aContent, const nsIAtom* aId) -{ - aContent = static_cast<nsIContent*>(aContent->SubtreeRoot()); - do { - if (aContent->GetID() == aId) { - return aContent->AsElement(); - } - aContent = aContent->GetNextNode(); - } while(aContent); - - return nullptr; -} - -void -HTMLPropertiesCollection::CrawlProperties() -{ - nsIDocument* doc = mRoot->GetUncomposedDoc(); - - const nsAttrValue* attr = mRoot->GetParsedAttr(nsGkAtoms::itemref); - if (attr) { - for (uint32_t i = 0; i < attr->GetAtomCount(); i++) { - nsIAtom* ref = attr->AtomAt(i); - Element* element; - if (doc) { - element = doc->GetElementById(nsDependentAtomString(ref)); - } else { - element = GetElementByIdForConnectedSubtree(mRoot, ref); - } - if (element && element != mRoot) { - CrawlSubtree(element); - } - } - } - - CrawlSubtree(mRoot); -} - -void -HTMLPropertiesCollection::CrawlSubtree(Element* aElement) -{ - nsIContent* aContent = aElement; - while (aContent) { - // We must check aContent against mRoot because - // an element must not be its own property - if (aContent == mRoot || !aContent->IsHTMLElement()) { - // Move on to the next node in the tree - aContent = aContent->GetNextNode(aElement); - } else { - MOZ_ASSERT(aContent->IsElement(), "IsHTMLElement() returned true!"); - Element* element = aContent->AsElement(); - if (element->HasAttr(kNameSpaceID_None, nsGkAtoms::itemprop) && - !mProperties.Contains(element)) { - mProperties.AppendElement(static_cast<nsGenericHTMLElement*>(element)); - } - - if (element->HasAttr(kNameSpaceID_None, nsGkAtoms::itemscope)) { - aContent = element->GetNextNonChildNode(aElement); - } else { - aContent = element->GetNextNode(aElement); - } - } - } -} - -void -HTMLPropertiesCollection::GetSupportedNames(nsTArray<nsString>& aNames) -{ - EnsureFresh(); - mNames->CopyList(aNames); -} - -PropertyNodeList::PropertyNodeList(HTMLPropertiesCollection* aCollection, - nsIContent* aParent, const nsAString& aName) - : mName(aName), - mDoc(aParent->GetUncomposedDoc()), - mCollection(aCollection), - mParent(aParent), - mIsDirty(true) -{ - if (mDoc) { - mDoc->AddMutationObserver(this); - } -} - -PropertyNodeList::~PropertyNodeList() -{ - if (mDoc) { - mDoc->RemoveMutationObserver(this); - } -} - -void -PropertyNodeList::SetDocument(nsIDocument* aDoc) -{ - if (mDoc) { - mDoc->RemoveMutationObserver(this); - } - mDoc = aDoc; - if (mDoc) { - mDoc->AddMutationObserver(this); - } - mIsDirty = true; -} - -NS_IMETHODIMP -PropertyNodeList::GetLength(uint32_t* aLength) -{ - EnsureFresh(); - *aLength = mElements.Length(); - return NS_OK; -} - -NS_IMETHODIMP -PropertyNodeList::Item(uint32_t aIndex, nsIDOMNode** aReturn) -{ - EnsureFresh(); - nsINode* element = mElements.SafeElementAt(aIndex); - if (!element) { - *aReturn = nullptr; - return NS_OK; - } - return CallQueryInterface(element, aReturn); -} - -nsIContent* -PropertyNodeList::Item(uint32_t aIndex) -{ - EnsureFresh(); - return mElements.SafeElementAt(aIndex); -} - -int32_t -PropertyNodeList::IndexOf(nsIContent* aContent) -{ - EnsureFresh(); - return mElements.IndexOf(aContent); -} - -nsINode* -PropertyNodeList::GetParentObject() -{ - return mParent; -} - -JSObject* -PropertyNodeList::WrapObject(JSContext *cx, JS::Handle<JSObject*> aGivenProto) -{ - return PropertyNodeListBinding::Wrap(cx, this, aGivenProto); -} - -NS_IMPL_CYCLE_COLLECTION_CLASS(PropertyNodeList) - -NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(PropertyNodeList) - // SetDocument(nullptr) ensures that we remove ourselves as a mutation observer - tmp->SetDocument(nullptr); - NS_IMPL_CYCLE_COLLECTION_UNLINK(mParent) - NS_IMPL_CYCLE_COLLECTION_UNLINK(mCollection) - NS_IMPL_CYCLE_COLLECTION_UNLINK(mElements) - NS_IMPL_CYCLE_COLLECTION_UNLINK_PRESERVED_WRAPPER -NS_IMPL_CYCLE_COLLECTION_UNLINK_END -NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(PropertyNodeList) - NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mDoc) - NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mParent) - NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mCollection) - NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mElements) - NS_IMPL_CYCLE_COLLECTION_TRAVERSE_SCRIPT_OBJECTS -NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END -NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN(PropertyNodeList) - NS_IMPL_CYCLE_COLLECTION_TRACE_PRESERVED_WRAPPER -NS_IMPL_CYCLE_COLLECTION_TRACE_END - -NS_IMPL_CYCLE_COLLECTING_ADDREF(PropertyNodeList) -NS_IMPL_CYCLE_COLLECTING_RELEASE(PropertyNodeList) - -NS_INTERFACE_TABLE_HEAD(PropertyNodeList) - NS_WRAPPERCACHE_INTERFACE_TABLE_ENTRY - NS_INTERFACE_TABLE(PropertyNodeList, - nsIDOMNodeList, - nsINodeList, - nsIMutationObserver) - NS_INTERFACE_TABLE_TO_MAP_SEGUE_CYCLE_COLLECTION(PropertyNodeList) -NS_INTERFACE_MAP_END - -void -PropertyNodeList::GetValues(JSContext* aCx, nsTArray<JS::Value >& aResult, - ErrorResult& aError) -{ - EnsureFresh(); - - JS::Rooted<JSObject*> wrapper(aCx, GetWrapper()); - JSAutoCompartment ac(aCx, wrapper); - uint32_t length = mElements.Length(); - for (uint32_t i = 0; i < length; ++i) { - JS::Rooted<JS::Value> v(aCx); - mElements.ElementAt(i)->GetItemValue(aCx, wrapper, &v, aError); - if (aError.Failed()) { - return; - } - aResult.AppendElement(v); - } -} - -void -PropertyNodeList::AttributeChanged(nsIDocument* aDocument, Element* aElement, - int32_t aNameSpaceID, nsIAtom* aAttribute, - int32_t aModType, - const nsAttrValue* aOldValue) -{ - mIsDirty = true; -} - -void -PropertyNodeList::ContentAppended(nsIDocument* aDocument, nsIContent* aContainer, - nsIContent* aFirstNewContent, - int32_t aNewIndexInContainer) -{ - mIsDirty = true; -} - -void -PropertyNodeList::ContentInserted(nsIDocument* aDocument, - nsIContent* aContainer, - nsIContent* aChild, - int32_t aIndexInContainer) -{ - mIsDirty = true; -} - -void -PropertyNodeList::ContentRemoved(nsIDocument* aDocument, - nsIContent* aContainer, - nsIContent* aChild, - int32_t aIndexInContainer, - nsIContent* aPreviousSibling) -{ - mIsDirty = true; -} - -void -PropertyNodeList::EnsureFresh() -{ - if (mDoc && !mIsDirty) { - return; - } - mIsDirty = false; - - mCollection->EnsureFresh(); - Clear(); - - uint32_t count = mCollection->mProperties.Length(); - for (uint32_t i = 0; i < count; ++i) { - nsGenericHTMLElement* element = mCollection->mProperties.ElementAt(i); - const nsAttrValue* attr = element->GetParsedAttr(nsGkAtoms::itemprop); - if (attr->Contains(mName)) { - AppendElement(element); - } - } -} - -PropertyStringList::PropertyStringList(HTMLPropertiesCollection* aCollection) - : DOMStringList() - , mCollection(aCollection) -{ } - -PropertyStringList::~PropertyStringList() -{ } - -NS_IMPL_CYCLE_COLLECTION_INHERITED(PropertyStringList, DOMStringList, - mCollection) - -NS_IMPL_ADDREF_INHERITED(PropertyStringList, DOMStringList) -NS_IMPL_RELEASE_INHERITED(PropertyStringList, DOMStringList) - -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(PropertyStringList) -NS_INTERFACE_MAP_END_INHERITING(DOMStringList) - -void -PropertyStringList::EnsureFresh() -{ - MOZ_ASSERT(NS_IsMainThread()); - - mCollection->EnsureFresh(); -} - -bool -PropertyStringList::ContainsInternal(const nsAString& aString) -{ - // This method should not call EnsureFresh, otherwise we may become stuck in an infinite loop. - return mNames.Contains(aString); -} - -} // namespace dom -} // namespace mozilla
deleted file mode 100644 --- a/dom/html/HTMLPropertiesCollection.h +++ /dev/null @@ -1,218 +0,0 @@ -/* -*- 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/. */ - -#ifndef HTMLPropertiesCollection_h_ -#define HTMLPropertiesCollection_h_ - -#include "mozilla/Attributes.h" -#include "mozilla/dom/DOMStringList.h" -#include "nsCycleCollectionParticipant.h" -#include "nsAutoPtr.h" -#include "nsCOMArray.h" -#include "nsIMutationObserver.h" -#include "nsStubMutationObserver.h" -#include "nsBaseHashtable.h" -#include "nsINodeList.h" -#include "nsIHTMLCollection.h" -#include "nsHashKeys.h" -#include "nsRefPtrHashtable.h" -#include "nsGenericHTMLElement.h" - -class nsIDocument; -class nsINode; - -namespace mozilla { -namespace dom { - -class HTMLPropertiesCollection; -class PropertyNodeList; -class Element; - -class PropertyStringList : public DOMStringList -{ -public: - explicit PropertyStringList(HTMLPropertiesCollection* aCollection); - NS_DECL_ISUPPORTS_INHERITED - NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(PropertyStringList, DOMStringList) - - bool ContainsInternal(const nsAString& aString); - -protected: - virtual ~PropertyStringList(); - - virtual void EnsureFresh() override; - - RefPtr<HTMLPropertiesCollection> mCollection; -}; - -class HTMLPropertiesCollection final : public nsIHTMLCollection, - public nsStubMutationObserver, - public nsWrapperCache -{ - friend class PropertyNodeList; - friend class PropertyStringList; -public: - explicit HTMLPropertiesCollection(nsGenericHTMLElement* aRoot); - - // nsWrapperCache - using nsWrapperCache::GetWrapperPreserveColor; - using nsWrapperCache::GetWrapper; - virtual JSObject* WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override; -protected: - virtual ~HTMLPropertiesCollection(); - - virtual JSObject* GetWrapperPreserveColorInternal() override - { - return nsWrapperCache::GetWrapperPreserveColor(); - } -public: - - virtual Element* GetElementAt(uint32_t aIndex) override; - - void SetDocument(nsIDocument* aDocument); - nsINode* GetParentObject() override; - - virtual Element* - GetFirstNamedElement(const nsAString& aName, bool& aFound) override - { - // HTMLPropertiesCollection.namedItem and the named getter call the - // NamedItem that returns a PropertyNodeList, calling - // HTMLCollection.namedItem doesn't make sense so this returns null. - aFound = false; - return nullptr; - } - PropertyNodeList* NamedItem(const nsAString& aName); - PropertyNodeList* NamedGetter(const nsAString& aName, bool& aFound) - { - aFound = IsSupportedNamedProperty(aName); - return aFound ? NamedItem(aName) : nullptr; - } - DOMStringList* Names() - { - EnsureFresh(); - return mNames; - } - virtual void GetSupportedNames(nsTArray<nsString>& aNames) override; - - NS_DECL_NSIDOMHTMLCOLLECTION - - NS_DECL_CYCLE_COLLECTING_ISUPPORTS - - NS_DECL_NSIMUTATIONOBSERVER_ATTRIBUTECHANGED - NS_DECL_NSIMUTATIONOBSERVER_CONTENTAPPENDED - NS_DECL_NSIMUTATIONOBSERVER_CONTENTINSERTED - NS_DECL_NSIMUTATIONOBSERVER_CONTENTREMOVED - - NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS_AMBIGUOUS(HTMLPropertiesCollection, - nsIHTMLCollection) - -protected: - // Make sure this collection is up to date, in case the DOM has been mutated. - void EnsureFresh(); - - // Crawl the properties of mRoot, following any itemRefs it may have - void CrawlProperties(); - - // Crawl startNode and its descendants, looking for items - void CrawlSubtree(Element* startNode); - - bool IsSupportedNamedProperty(const nsAString& aName) - { - EnsureFresh(); - return mNames->ContainsInternal(aName); - } - - // the items that make up this collection - nsTArray<RefPtr<nsGenericHTMLElement> > mProperties; - - // the itemprop attribute of the properties - RefPtr<PropertyStringList> mNames; - - // The cached PropertyNodeLists that are NamedItems of this collection - nsRefPtrHashtable<nsStringHashKey, PropertyNodeList> mNamedItemEntries; - - // The element this collection is rooted at - RefPtr<nsGenericHTMLElement> mRoot; - - // The document mRoot is in, if any - nsCOMPtr<nsIDocument> mDoc; - - // True if there have been DOM modifications since the last EnsureFresh call. - bool mIsDirty; -}; - -class PropertyNodeList final : public nsINodeList, - public nsStubMutationObserver -{ -public: - PropertyNodeList(HTMLPropertiesCollection* aCollection, - nsIContent* aRoot, const nsAString& aName); - - virtual JSObject* WrapObject(JSContext *cx, JS::Handle<JSObject*> aGivenProto) override; - - void SetDocument(nsIDocument* aDocument); - - void GetValues(JSContext* aCx, nsTArray<JS::Value >& aResult, - ErrorResult& aError); - - virtual nsIContent* Item(uint32_t aIndex) override; - - NS_DECL_CYCLE_COLLECTING_ISUPPORTS - - NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS_AMBIGUOUS(PropertyNodeList, - nsINodeList) - NS_DECL_NSIDOMNODELIST - - NS_DECL_NSIMUTATIONOBSERVER_ATTRIBUTECHANGED - NS_DECL_NSIMUTATIONOBSERVER_CONTENTAPPENDED - NS_DECL_NSIMUTATIONOBSERVER_CONTENTINSERTED - NS_DECL_NSIMUTATIONOBSERVER_CONTENTREMOVED - - // nsINodeList interface - virtual int32_t IndexOf(nsIContent* aContent) override; - virtual nsINode* GetParentObject() override; - - void AppendElement(nsGenericHTMLElement* aElement) - { - mElements.AppendElement(aElement); - } - - void Clear() - { - mElements.Clear(); - } - - void SetDirty() { mIsDirty = true; } - -protected: - virtual ~PropertyNodeList(); - - // Make sure this list is up to date, in case the DOM has been mutated. - void EnsureFresh(); - - // the the name that this list corresponds to - nsString mName; - - // the document mParent is in, if any - nsCOMPtr<nsIDocument> mDoc; - - // the collection that this list is a named item of - RefPtr<HTMLPropertiesCollection> mCollection; - - // the node this list is rooted at - nsCOMPtr<nsINode> mParent; - - // the properties that make up this list - nsTArray<RefPtr<nsGenericHTMLElement> > mElements; - - // True if there have been DOM modifications since the last EnsureFresh call. - bool mIsDirty; -}; - -} // namespace dom -} // namespace mozilla - -#endif // HTMLPropertiesCollection_h_
--- a/dom/html/HTMLSharedObjectElement.cpp +++ b/dom/html/HTMLSharedObjectElement.cpp @@ -36,36 +36,16 @@ HTMLSharedObjectElement::HTMLSharedObjec { RegisterActivityObserver(); SetIsNetworkCreated(aFromParser == FROM_PARSER_NETWORK); // By default we're in the loading state AddStatesSilently(NS_EVENT_STATE_LOADING); } -void -HTMLSharedObjectElement::GetItemValueText(DOMString& aValue) -{ - if (mNodeInfo->Equals(nsGkAtoms::applet)) { - nsGenericHTMLElement::GetItemValueText(aValue); - } else { - GetSrc(aValue); - } -} - -void -HTMLSharedObjectElement::SetItemValueText(const nsAString& aValue) -{ - if (mNodeInfo->Equals(nsGkAtoms::applet)) { - nsGenericHTMLElement::SetItemValueText(aValue); - } else { - SetSrc(aValue); - } -} - HTMLSharedObjectElement::~HTMLSharedObjectElement() { #ifdef XP_MACOSX HTMLObjectElement::OnFocusBlurPlugin(this, false); #endif UnregisterActivityObserver(); DestroyImageLoadingContent(); }
--- a/dom/html/HTMLSharedObjectElement.h +++ b/dom/html/HTMLSharedObjectElement.h @@ -207,19 +207,16 @@ private: } nsContentPolicyType GetContentPolicyType() const override; // mIsDoneAddingChildren is only really used for <applet>. This boolean is // always true for <embed>, per the documentation in nsIContent.h. bool mIsDoneAddingChildren; - virtual void GetItemValueText(DOMString& text) override; - virtual void SetItemValueText(const nsAString& text) override; - virtual JSObject* WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto) override; static void MapAttributesIntoRule(const nsMappedAttributes* aAttributes, nsRuleData* aData); /** * Decides whether we should load embed node content. *
--- a/dom/html/HTMLSourceElement.cpp +++ b/dom/html/HTMLSourceElement.cpp @@ -141,28 +141,16 @@ HTMLSourceElement::AfterSetAttr(int32_t } } } return nsGenericHTMLElement::AfterSetAttr(aNameSpaceID, aName, aValue, aNotify); } -void -HTMLSourceElement::GetItemValueText(DOMString& aValue) -{ - GetSrc(aValue); -} - -void -HTMLSourceElement::SetItemValueText(const nsAString& aValue) -{ - SetSrc(aValue); -} - nsresult HTMLSourceElement::BindToTree(nsIDocument *aDocument, nsIContent *aParent, nsIContent *aBindingParent, bool aCompileEventHandlers) { nsresult rv = nsGenericHTMLElement::BindToTree(aDocument, aParent,
--- a/dom/html/HTMLSourceElement.h +++ b/dom/html/HTMLSourceElement.h @@ -103,24 +103,20 @@ public: } protected: virtual ~HTMLSourceElement(); virtual JSObject* WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override; protected: - virtual void GetItemValueText(DOMString& text) override; - virtual void SetItemValueText(const nsAString& text) override; - virtual nsresult AfterSetAttr(int32_t aNameSpaceID, nsIAtom* aName, const nsAttrValue* aValue, bool aNotify) override; - private: RefPtr<nsMediaList> mMediaList; RefPtr<MediaSource> mSrcMediaSource; // Generates a new nsMediaList using the given input void UpdateMediaList(const nsAttrValue* aValue); };
--- a/dom/html/HTMLTimeElement.cpp +++ b/dom/html/HTMLTimeElement.cpp @@ -27,28 +27,10 @@ HTMLTimeElement::~HTMLTimeElement() NS_IMPL_ELEMENT_CLONE(HTMLTimeElement) JSObject* HTMLTimeElement::WrapNode(JSContext* cx, JS::Handle<JSObject*> aGivenProto) { return HTMLTimeElementBinding::Wrap(cx, this, aGivenProto); } -void -HTMLTimeElement::GetItemValueText(DOMString& text) -{ - if (HasAttr(kNameSpaceID_None, nsGkAtoms::datetime)) { - GetDateTime(text); - } else { - ErrorResult rv; - GetTextContentInternal(text, rv); - } -} - -void -HTMLTimeElement::SetItemValueText(const nsAString& text) -{ - ErrorResult rv; - SetDateTime(text, rv); -} - } // namespace dom } // namespace mozilla
--- a/dom/html/HTMLTimeElement.h +++ b/dom/html/HTMLTimeElement.h @@ -27,18 +27,16 @@ public: GetHTMLAttr(nsGkAtoms::datetime, aDateTime); } void SetDateTime(const nsAString& aDateTime, ErrorResult& aError) { SetHTMLAttr(nsGkAtoms::datetime, aDateTime, aError); } - virtual void GetItemValueText(DOMString& text) override; - virtual void SetItemValueText(const nsAString& text) override; virtual nsresult Clone(mozilla::dom::NodeInfo* aNodeInfo, nsINode** aResult) const override; protected: virtual JSObject* WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override; }; } // namespace dom } // namespace mozilla
--- a/dom/html/HTMLTrackElement.h +++ b/dom/html/HTMLTrackElement.h @@ -88,27 +88,16 @@ public: uint16_t ReadyState() const; void SetReadyState(uint16_t aReadyState); TextTrack* GetTrack(); virtual nsresult Clone(mozilla::dom::NodeInfo* aNodeInfo, nsINode** aResult) const override; - // For Track, ItemValue reflects the src attribute - virtual void GetItemValueText(DOMString& aText) override - { - GetSrc(aText); - } - virtual void SetItemValueText(const nsAString& aText) override - { - ErrorResult rv; - SetSrc(aText, rv); - } - // Override ParseAttribute() to convert kind strings to enum values. virtual bool ParseAttribute(int32_t aNamespaceID, nsIAtom* aAttribute, const nsAString& aValue, nsAttrValue& aResult) override; // Override BindToTree() so that we can trigger a load when we become // the child of a media element.
--- a/dom/html/moz.build +++ b/dom/html/moz.build @@ -23,17 +23,16 @@ XPIDL_SOURCES += [ 'nsIImageDocument.idl', 'nsIMenuBuilder.idl', 'nsIPhonetic.idl', ] XPIDL_MODULE = 'content_html' EXPORTS += [ - 'HTMLPropertiesCollection.h', 'nsFormSubmission.h', 'nsGenericHTMLElement.h', 'nsHTMLDNSPrefetch.h', 'nsIConstraintValidation.h', 'nsIForm.h', 'nsIFormControl.h', 'nsIFormProcessor.h', 'nsIHTMLCollection.h', @@ -163,17 +162,16 @@ UNIFIED_SOURCES += [ 'HTMLOptGroupElement.cpp', 'HTMLOptionElement.cpp', 'HTMLOptionsCollection.cpp', 'HTMLOutputElement.cpp', 'HTMLParagraphElement.cpp', 'HTMLPictureElement.cpp', 'HTMLPreElement.cpp', 'HTMLProgressElement.cpp', - 'HTMLPropertiesCollection.cpp', 'HTMLScriptElement.cpp', 'HTMLSelectElement.cpp', 'HTMLShadowElement.cpp', 'HTMLSharedElement.cpp', 'HTMLSharedListElement.cpp', 'HTMLSharedObjectElement.cpp', 'HTMLSourceElement.cpp', 'HTMLSpanElement.cpp',
--- a/dom/html/nsGenericHTMLElement.cpp +++ b/dom/html/nsGenericHTMLElement.cpp @@ -89,17 +89,16 @@ #include "HTMLMenuElement.h" #include "nsDOMMutationObserver.h" #include "mozilla/Preferences.h" #include "mozilla/dom/FromParser.h" #include "mozilla/dom/Link.h" #include "mozilla/dom/UndoManager.h" #include "mozilla/BloomFilter.h" -#include "HTMLPropertiesCollection.h" #include "nsVariant.h" #include "nsDOMTokenList.h" #include "nsThreadUtils.h" #include "nsTextFragment.h" #include "mozilla/dom/BindingUtils.h" #include "mozilla/dom/TouchEvent.h" #include "mozilla/ErrorResult.h" #include "nsHTMLDocument.h" @@ -542,23 +541,16 @@ nsGenericHTMLElement::BindToTree(nsIDocu bool aCompileEventHandlers) { nsresult rv = nsGenericHTMLElementBase::BindToTree(aDocument, aParent, aBindingParent, aCompileEventHandlers); NS_ENSURE_SUCCESS(rv, rv); if (aDocument) { - if (HasProperties()) { - HTMLPropertiesCollection* properties = - static_cast<HTMLPropertiesCollection*>(GetProperty(nsGkAtoms::microdataProperties)); - if (properties) { - properties->SetDocument(aDocument); - } - } RegAccessKey(); if (HasName()) { aDocument-> AddToNameTable(this, GetParsedAttr(nsGkAtoms::name)->GetAtomValue()); } if (HasFlag(NODE_IS_EDITABLE) && GetContentEditableValue() == eTrue) { nsCOMPtr<nsIHTMLDocument> htmlDocument = do_QueryInterface(aDocument); @@ -573,24 +565,16 @@ nsGenericHTMLElement::BindToTree(nsIDocu void nsGenericHTMLElement::UnbindFromTree(bool aDeep, bool aNullParent) { if (IsInUncomposedDoc()) { UnregAccessKey(); } - if(HasProperties()) { - HTMLPropertiesCollection* properties = - static_cast<HTMLPropertiesCollection*>(GetProperty(nsGkAtoms::microdataProperties)); - if (properties) { - properties->SetDocument(nullptr); - } - } - RemoveFromNameTable(); if (GetContentEditableValue() == eTrue) { //XXXsmaug Fix this for Shadow DOM, bug 1066965. nsCOMPtr<nsIHTMLDocument> htmlDocument = do_QueryInterface(GetUncomposedDoc()); if (htmlDocument) { htmlDocument->ChangeContentEditableCount(this, -1); } @@ -1023,20 +1007,17 @@ nsGenericHTMLElement::ParseAttribute(int return true; } if (aAttribute == nsGkAtoms::contenteditable) { aResult.ParseAtom(aValue); return true; } - if (aAttribute == nsGkAtoms::itemref || - aAttribute == nsGkAtoms::itemprop || - aAttribute == nsGkAtoms::itemtype || - aAttribute == nsGkAtoms::rel) { + if (aAttribute == nsGkAtoms::rel) { aResult.ParseAtomArray(aValue); return true; } } return nsGenericHTMLElementBase::ParseAttribute(aNamespaceID, aAttribute, aValue, aResult); } @@ -3114,144 +3095,16 @@ nsGenericHTMLFormElementWithState::Resto } void nsGenericHTMLFormElementWithState::NodeInfoChanged(mozilla::dom::NodeInfo* aOldNodeInfo) { mStateKey.SetIsVoid(true); } -void -nsGenericHTMLElement::GetItemValue(JSContext* aCx, JSObject* aScope, - JS::MutableHandle<JS::Value> aRetval, - ErrorResult& aError) -{ - JS::Rooted<JSObject*> scope(aCx, aScope); - if (!HasAttr(kNameSpaceID_None, nsGkAtoms::itemprop)) { - aRetval.setNull(); - return; - } - - if (ItemScope()) { - JS::Rooted<JS::Value> v(aCx); - JSAutoCompartment ac(aCx, scope); - if (!mozilla::dom::WrapObject(aCx, this, aRetval)) { - aError.Throw(NS_ERROR_FAILURE); - } - return; - } - - DOMString string; - GetItemValueText(string); - if (!xpc::NonVoidStringToJsval(aCx, string, aRetval)) { - aError.Throw(NS_ERROR_FAILURE); - } -} - -NS_IMETHODIMP -nsGenericHTMLElement::GetItemValue(nsIVariant** aValue) -{ - nsCOMPtr<nsIWritableVariant> out = new nsVariant(); - - if (!HasAttr(kNameSpaceID_None, nsGkAtoms::itemprop)) { - out->SetAsEmpty(); - out.forget(aValue); - return NS_OK; - } - - if (ItemScope()) { - out->SetAsISupports(static_cast<nsIContent*>(this)); - } else { - DOMString string; - GetItemValueText(string); - nsString xpcomString; - string.ToString(xpcomString); - out->SetAsAString(xpcomString); - } - - out.forget(aValue); - return NS_OK; -} - -void -nsGenericHTMLElement::SetItemValue(JSContext* aCx, JS::Value aValue, - ErrorResult& aError) -{ - if (!HasAttr(kNameSpaceID_None, nsGkAtoms::itemprop) || - HasAttr(kNameSpaceID_None, nsGkAtoms::itemscope)) { - aError.Throw(NS_ERROR_DOM_INVALID_ACCESS_ERR); - return; - } - - nsAutoString string; - JS::Rooted<JS::Value> value(aCx, aValue); - if (!ConvertJSValueToString(aCx, value, eStringify, eStringify, string)) { - aError.Throw(NS_ERROR_UNEXPECTED); - return; - } - SetItemValueText(string); -} - -NS_IMETHODIMP -nsGenericHTMLElement::SetItemValue(nsIVariant* aValue) -{ - if (!HasAttr(kNameSpaceID_None, nsGkAtoms::itemprop) || - HasAttr(kNameSpaceID_None, nsGkAtoms::itemscope)) { - return NS_ERROR_DOM_INVALID_ACCESS_ERR; - } - - nsAutoString string; - aValue->GetAsAString(string); - SetItemValueText(string); - return NS_OK; -} - -void -nsGenericHTMLElement::GetItemValueText(DOMString& text) -{ - ErrorResult rv; - GetTextContentInternal(text, rv); -} - -void -nsGenericHTMLElement::SetItemValueText(const nsAString& text) -{ - mozilla::ErrorResult rv; - SetTextContentInternal(text, rv); -} - -static void -HTMLPropertiesCollectionDestructor(void *aObject, nsIAtom *aProperty, - void *aPropertyValue, void *aData) -{ - HTMLPropertiesCollection* properties = - static_cast<HTMLPropertiesCollection*>(aPropertyValue); - NS_IF_RELEASE(properties); -} - -HTMLPropertiesCollection* -nsGenericHTMLElement::Properties() -{ - HTMLPropertiesCollection* properties = - static_cast<HTMLPropertiesCollection*>(GetProperty(nsGkAtoms::microdataProperties)); - if (!properties) { - properties = new HTMLPropertiesCollection(this); - NS_ADDREF(properties); - SetProperty(nsGkAtoms::microdataProperties, properties, HTMLPropertiesCollectionDestructor); - } - return properties; -} - -NS_IMETHODIMP -nsGenericHTMLElement::GetProperties(nsISupports** aProperties) -{ - NS_ADDREF(*aProperties = static_cast<nsIHTMLCollection*>(Properties())); - return NS_OK; -} - nsSize nsGenericHTMLElement::GetWidthHeightForImage(RefPtr<imgRequestProxy>& aImageRequest) { nsSize size(0,0); nsIFrame* frame = GetPrimaryFrame(Flush_Layout); if (frame) {
--- a/dom/html/nsGenericHTMLElement.h +++ b/dom/html/nsGenericHTMLElement.h @@ -33,17 +33,16 @@ struct nsSize; namespace mozilla { class EventChainPostVisitor; class EventChainPreVisitor; class EventChainVisitor; class EventListenerManager; class EventStates; namespace dom { class HTMLFormElement; -class HTMLPropertiesCollection; class HTMLMenuElement; } // namespace dom } // namespace mozilla typedef nsMappedAttributeElement nsGenericHTMLElementBase; /** * A common superclass for HTML elements @@ -91,55 +90,16 @@ public: { GetHTMLEnumAttr(nsGkAtoms::dir, aDir); } void SetDir(const nsAString& aDir, mozilla::ErrorResult& aError) { SetHTMLAttr(nsGkAtoms::dir, aDir, aError); } already_AddRefed<nsDOMStringMap> Dataset(); - bool ItemScope() const - { - return GetBoolAttr(nsGkAtoms::itemscope); - } - void SetItemScope(bool aItemScope, mozilla::ErrorResult& aError) - { - SetHTMLBoolAttr(nsGkAtoms::itemscope, aItemScope, aError); - } - nsDOMTokenList* ItemType() - { - return GetTokenList(nsGkAtoms::itemtype); - } - void GetItemId(nsString& aItemId) - { - GetHTMLURIAttr(nsGkAtoms::itemid, aItemId); - } - void SetItemId(const nsAString& aItemID, mozilla::ErrorResult& aError) - { - SetHTMLAttr(nsGkAtoms::itemid, aItemID, aError); - } - nsDOMTokenList* ItemRef() - { - return GetTokenList(nsGkAtoms::itemref); - } - nsDOMTokenList* ItemProp() - { - return GetTokenList(nsGkAtoms::itemprop); - } - mozilla::dom::HTMLPropertiesCollection* Properties(); - void GetItemValue(JSContext* aCx, JSObject* aScope, - JS::MutableHandle<JS::Value> aRetval, - mozilla::ErrorResult& aError); - void GetItemValue(JSContext* aCx, JS::MutableHandle<JS::Value> aRetval, - mozilla::ErrorResult& aError) - { - GetItemValue(aCx, GetWrapperPreserveColor(), aRetval, aError); - } - void SetItemValue(JSContext* aCx, JS::Value aValue, - mozilla::ErrorResult& aError); bool Hidden() const { return GetBoolAttr(nsGkAtoms::hidden); } void SetHidden(bool aHidden, mozilla::ErrorResult& aError) { SetHTMLBoolAttr(nsGkAtoms::hidden, aHidden, aError); } @@ -319,20 +279,16 @@ public: inline bool IsAnyOfHTMLElements(First aFirst, Args... aArgs) const { return IsNodeInternal(aFirst, aArgs...); } protected: virtual ~nsGenericHTMLElement() {} - // These methods are used to implement element-specific behavior of Get/SetItemValue - // when an element has @itemprop but no @itemscope. - virtual void GetItemValueText(mozilla::dom::DOMString& text); - virtual void SetItemValueText(const nsAString& text); public: virtual already_AddRefed<mozilla::dom::UndoManager> GetUndoManager() override; virtual bool UndoScope() override; virtual void SetUndoScope(bool aUndoScope, mozilla::ErrorResult& aError) override; // Callback for destructor of of dataset to ensure to null out weak pointer. nsresult ClearDataset(); /** @@ -388,60 +344,16 @@ public: SetHidden(aHidden, rv); return rv.StealNSResult(); } NS_IMETHOD DOMBlur() final override { mozilla::ErrorResult rv; Blur(rv); return rv.StealNSResult(); } - NS_IMETHOD GetItemScope(bool* aItemScope) final override { - *aItemScope = ItemScope(); - return NS_OK; - } - NS_IMETHOD SetItemScope(bool aItemScope) final override { - mozilla::ErrorResult rv; - SetItemScope(aItemScope, rv); - return rv.StealNSResult(); - } - NS_IMETHOD GetItemType(nsIVariant** aType) final override { - GetTokenList(nsGkAtoms::itemtype, aType); - return NS_OK; - } - NS_IMETHOD SetItemType(nsIVariant* aType) final override { - return SetTokenList(nsGkAtoms::itemtype, aType); - } - NS_IMETHOD GetItemId(nsAString& aId) final override { - nsString id; - GetItemId(id); - aId.Assign(id); - return NS_OK; - } - NS_IMETHOD SetItemId(const nsAString& aId) final override { - mozilla::ErrorResult rv; - SetItemId(aId, rv); - return rv.StealNSResult(); - } - NS_IMETHOD GetProperties(nsISupports** aReturn) final override; - NS_IMETHOD GetItemValue(nsIVariant** aValue) final override; - NS_IMETHOD SetItemValue(nsIVariant* aValue) final override; - NS_IMETHOD GetItemRef(nsIVariant** aRef) final override { - GetTokenList(nsGkAtoms::itemref, aRef); - return NS_OK; - } - NS_IMETHOD SetItemRef(nsIVariant* aRef) final override { - return SetTokenList(nsGkAtoms::itemref, aRef); - } - NS_IMETHOD GetItemProp(nsIVariant** aProp) final override { - GetTokenList(nsGkAtoms::itemprop, aProp); - return NS_OK; - } - NS_IMETHOD SetItemProp(nsIVariant* aProp) final override { - return SetTokenList(nsGkAtoms::itemprop, aProp); - } NS_IMETHOD GetAccessKey(nsAString& aAccessKey) final override { nsString accessKey; GetAccessKey(accessKey); aAccessKey.Assign(accessKey); return NS_OK; } NS_IMETHOD SetAccessKey(const nsAString& aAccessKey) final override { mozilla::ErrorResult rv;
--- a/dom/html/nsHTMLDocument.cpp +++ b/dom/html/nsHTMLDocument.cpp @@ -1970,96 +1970,16 @@ nsHTMLDocument::UseExistingNameString(ns NS_IMETHODIMP nsHTMLDocument::GetElementsByName(const nsAString& aElementName, nsIDOMNodeList** aReturn) { *aReturn = GetElementsByName(aElementName).take(); return NS_OK; } -static bool MatchItems(nsIContent* aContent, int32_t aNameSpaceID, - nsIAtom* aAtom, void* aData) -{ - if (!aContent->IsHTMLElement()) { - return false; - } - - nsGenericHTMLElement* elem = static_cast<nsGenericHTMLElement*>(aContent); - if (!elem->HasAttr(kNameSpaceID_None, nsGkAtoms::itemscope) || - elem->HasAttr(kNameSpaceID_None, nsGkAtoms::itemprop)) { - return false; - } - - nsTArray<nsCOMPtr<nsIAtom> >* tokens = static_cast<nsTArray<nsCOMPtr<nsIAtom> >*>(aData); - if (tokens->IsEmpty()) { - return true; - } - - const nsAttrValue* attr = elem->GetParsedAttr(nsGkAtoms::itemtype); - if (!attr) - return false; - - for (uint32_t i = 0; i < tokens->Length(); i++) { - if (!attr->Contains(tokens->ElementAt(i), eCaseMatters)) { - return false; - } - } - return true; -} - -static void DestroyTokens(void* aData) -{ - nsTArray<nsCOMPtr<nsIAtom> >* tokens = static_cast<nsTArray<nsCOMPtr<nsIAtom> >*>(aData); - delete tokens; -} - -static void* CreateTokens(nsINode* aRootNode, const nsString* types) -{ - nsTArray<nsCOMPtr<nsIAtom> >* tokens = new nsTArray<nsCOMPtr<nsIAtom> >(); - nsAString::const_iterator iter, end; - types->BeginReading(iter); - types->EndReading(end); - - // skip initial whitespace - while (iter != end && nsContentUtils::IsHTMLWhitespace(*iter)) { - ++iter; - } - - // parse the tokens - while (iter != end) { - nsAString::const_iterator start(iter); - - do { - ++iter; - } while (iter != end && !nsContentUtils::IsHTMLWhitespace(*iter)); - - tokens->AppendElement(NS_Atomize(Substring(start, iter))); - - // skip whitespace - while (iter != end && nsContentUtils::IsHTMLWhitespace(*iter)) { - ++iter; - } - } - return tokens; -} - -NS_IMETHODIMP -nsHTMLDocument::GetItems(const nsAString& types, nsIDOMNodeList** aReturn) -{ - *aReturn = GetItems(types).take(); - return NS_OK; -} - -already_AddRefed<nsINodeList> -nsHTMLDocument::GetItems(const nsAString& aTypeNames) -{ - return NS_GetFuncStringNodeList(this, MatchItems, DestroyTokens, CreateTokens, - aTypeNames); -} - void nsHTMLDocument::AddedForm() { ++mNumForms; } void nsHTMLDocument::RemovedForm()
--- a/dom/html/nsHTMLDocument.h +++ b/dom/html/nsHTMLDocument.h @@ -189,17 +189,16 @@ public: return nsHTMLDocument::GetForms(); } nsIHTMLCollection* Scripts(); already_AddRefed<nsContentList> GetElementsByName(const nsAString & aName) { return NS_GetFuncStringNodeList(this, MatchNameAttribute, nullptr, UseExistingNameString, aName); } - already_AddRefed<nsINodeList> GetItems(const nsAString& aTypeNames); already_AddRefed<nsIDocument> Open(JSContext* cx, const nsAString& aType, const nsAString& aReplace, mozilla::ErrorResult& rv); already_AddRefed<nsPIDOMWindowOuter> Open(JSContext* cx, const nsAString& aURL, const nsAString& aName,
--- a/dom/html/test/test_bug629801.html +++ b/dom/html/test/test_bug629801.html @@ -33,26 +33,16 @@ var t1 = document.getElementById("t1"), t3 = document.getElementById("t3"), t4 = document.createElement("time"); // .dateTime IDL is(t1.dateTime, "", "dateTime is properly set to empty string if datetime attributeis absent"); is(t2.dateTime, "2009-05-10", "dateTime is properly set to datetime attribute with datetime and no text content"); is(t3.dateTime, "2009-05-10", "dateTime is properly set to datetime attribute with datetime and text content"); -// .itemValue getter for <time>'s microdata -var times = document.getItems()[0]; -is(times.properties["a"][0].itemValue, "May 10th 2009", "itemValue getter with no datetime uses text content"); -is(times.properties["b"][0].itemValue, "2009-05-10", "itemValue getter with no text content uses datetime"); -is(times.properties["c"][0].itemValue, "2009-05-10", "itemValue getter with datetime and text content uses datetime"); - -// .itemValue setter uses datetime vs. text content -times.properties["a"][0].itemValue = "2009-05-10"; -is(times.properties["a"][0].dateTime, "2009-05-10", "setting itemValue updates datetime"); - // dateTime reflects datetime attribute reflectString({ element: t4, attribute: "dateTime" }); </script> </pre>
--- a/dom/html/test/test_bug763626.html +++ b/dom/html/test/test_bug763626.html @@ -10,17 +10,17 @@ https://bugzilla.mozilla.org/show_bug.cg <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> <script type="application/javascript"> SimpleTest.waitForExplicitFinish(); function boom() { - var r = document.createElement("div").itemRef; + var r = document.createElement("iframe").sandbox; SpecialPowers.DOMWindowUtils.garbageCollect(); is("" + r, "", "ToString should return empty string when element is gone"); SimpleTest.finish(); } </script> </head>
--- a/dom/html/test/test_bug839371.html +++ b/dom/html/test/test_bug839371.html @@ -27,25 +27,16 @@ https://bugzilla.mozilla.org/show_bug.cg var d1 = document.getElementById("d1"), d2 = document.createElement("data"); // .value IDL is(d1.value, "9678AOU879", "value property reflects content attribute"); d1.value = "123"; is(d1.value, "123", "value property can be set via setter"); -// .itemValue getter for <data>'s microdata -var data = document.getItems()[0]; -is(data.properties["product-id"][0].itemValue, "123", "itemValue getter reflects value attribute"); - -// .itemValue setter uses value -data.properties["product-id"][0].itemValue = "456"; -is(data.properties["product-id"][0].value, "456", "setting itemValue updates value"); -is(data.properties["product-id"][0].itemValue, "456", "setting itemValue updates itemValue"); - // .value reflects value attribute reflectString({ element: d2, attribute: "value" }); </script> </pre>
--- a/dom/interfaces/html/nsIDOMHTMLDocument.idl +++ b/dom/interfaces/html/nsIDOMHTMLDocument.idl @@ -25,17 +25,16 @@ interface nsIDOMHTMLDocument : nsIDOMDoc readonly attribute nsIDOMHTMLCollection images; readonly attribute nsIDOMHTMLCollection embeds; // mapped to attribute embeds for NS4 compat readonly attribute nsIDOMHTMLCollection plugins; readonly attribute nsIDOMHTMLCollection links; readonly attribute nsIDOMHTMLCollection forms; readonly attribute nsIDOMHTMLCollection scripts; nsIDOMNodeList getElementsByName(in DOMString elementName); - nsIDOMNodeList getItems([optional] in DOMString types); // If aContentType is not something supported by nsHTMLDocument and // the HTML content sink, trying to write to the document will // probably throw. // Pass aReplace = true to trigger a replacement of the previous // document in session history; pass false for normal history handling. [implicit_jscontext, optional_argc] nsISupports open([optional] in DOMString aContentTypeOrUrl,
--- a/dom/interfaces/html/nsIDOMHTMLElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLElement.idl @@ -23,26 +23,16 @@ interface nsIDOMHTMLMenuElement; interface nsIDOMHTMLElement : nsIDOMElement { // metadata attributes attribute DOMString title; attribute DOMString lang; attribute DOMString dir; readonly attribute nsISupports dataset; - attribute boolean itemScope; - attribute nsIVariant itemType; - attribute DOMString itemId; - readonly attribute nsISupports properties; - // The following attributes are really nsDOMTokenList, which has - // PutForwards, so we express them as nsIVariants to deal with this. - attribute nsIVariant itemValue; - attribute nsIVariant itemProp; - attribute nsIVariant itemRef; - // user interaction /** * Indicates that the element is not yet, or is no longer, relevant. * * See <http://www.whatwg.org/html5/#the-hidden-attribute>. */ attribute boolean hidden; [binaryname(DOMClick)]
--- a/dom/tests/mochitest/general/test_interfaces.html +++ b/dom/tests/mochitest/general/test_interfaces.html @@ -621,18 +621,16 @@ var interfaceNamesInGlobalScope = "HTMLParamElement", // IMPORTANT: Do not change this list without review from a DOM peer! "HTMLPreElement", // IMPORTANT: Do not change this list without review from a DOM peer! "HTMLPictureElement", // IMPORTANT: Do not change this list without review from a DOM peer! "HTMLProgressElement", // IMPORTANT: Do not change this list without review from a DOM peer! - "HTMLPropertiesCollection", -// IMPORTANT: Do not change this list without review from a DOM peer! "HTMLQuoteElement", // IMPORTANT: Do not change this list without review from a DOM peer! "HTMLScriptElement", // IMPORTANT: Do not change this list without review from a DOM peer! "HTMLSelectElement", // IMPORTANT: Do not change this list without review from a DOM peer! "HTMLShadowElement", // IMPORTANT: Do not change this list without review from a DOM peer! @@ -951,18 +949,16 @@ var interfaceNamesInGlobalScope = {name: "PresentationSessionConnectEvent", disabled: true, permission: ["presentation"]}, // IMPORTANT: Do not change this list without review from a DOM peer! "ProcessingInstruction", // IMPORTANT: Do not change this list without review from a DOM peer! "ProgressEvent", // IMPORTANT: Do not change this list without review from a DOM peer! "Promise", // IMPORTANT: Do not change this list without review from a DOM peer! - "PropertyNodeList", -// IMPORTANT: Do not change this list without review from a DOM peer! {name: "PushManager", b2g: false, nightlyAndroid: true, android: false}, // IMPORTANT: Do not change this list without review from a DOM peer! {name: "PushSubscription", b2g: false, nightlyAndroid: true, android: false}, // IMPORTANT: Do not change this list without review from a DOM peer! {name: "PushSubscriptionOptions", b2g: false, nightlyAndroid: true, android: false}, // IMPORTANT: Do not change this list without review from a DOM peer! "RadioNodeList", // IMPORTANT: Do not change this list without review from a DOM peer!
--- a/dom/webidl/Document.webidl +++ b/dom/webidl/Document.webidl @@ -111,17 +111,16 @@ partial interface Document { //(HTML only)readonly attribute HTMLHeadElement? head; //(HTML only)readonly attribute HTMLCollection images; //(HTML only)readonly attribute HTMLCollection embeds; //(HTML only)readonly attribute HTMLCollection plugins; //(HTML only)readonly attribute HTMLCollection links; //(HTML only)readonly attribute HTMLCollection forms; //(HTML only)readonly attribute HTMLCollection scripts; //(HTML only)NodeList getElementsByName(DOMString elementName); - //(HTML only)NodeList getItems(optional DOMString typeNames); // microdata //(Not implemented)readonly attribute DOMElementMap cssElementMap; // dynamic markup insertion //(HTML only)Document open(optional DOMString type, optional DOMString replace); //(HTML only)WindowProxy open(DOMString url, DOMString name, DOMString features, optional boolean replace); //(HTML only)void close(); //(HTML only)void write(DOMString... text); //(HTML only)void writeln(DOMString... text);
--- a/dom/webidl/HTMLDocument.webidl +++ b/dom/webidl/HTMLDocument.webidl @@ -25,17 +25,16 @@ interface HTMLDocument : Document { readonly attribute HTMLCollection plugins; [Pure] readonly attribute HTMLCollection links; [Pure] readonly attribute HTMLCollection forms; [Pure] readonly attribute HTMLCollection scripts; NodeList getElementsByName(DOMString elementName); - NodeList getItems(optional DOMString typeNames = ""); // microdata // dynamic markup insertion [Throws] Document open(optional DOMString type = "text/html", optional DOMString replace = ""); [Throws] WindowProxy? open(DOMString url, DOMString name, DOMString features, optional boolean replace = false); [Throws] void close();
--- a/dom/webidl/HTMLElement.webidl +++ b/dom/webidl/HTMLElement.webidl @@ -20,29 +20,16 @@ interface HTMLElement : Element { [SetterThrows, Pure] attribute DOMString dir; [Constant] readonly attribute DOMStringMap dataset; [GetterThrows, Pure] attribute DOMString innerText; - // microdata - [SetterThrows, Pure] - attribute boolean itemScope; - [PutForwards=value,Constant] readonly attribute DOMTokenList itemType; - [SetterThrows, Pure] - attribute DOMString itemId; - [PutForwards=value,Constant] readonly attribute DOMTokenList itemRef; - [PutForwards=value,Constant] readonly attribute DOMTokenList itemProp; - [Constant] - readonly attribute HTMLPropertiesCollection properties; - [Throws] - attribute any itemValue; - // user interaction [SetterThrows, Pure] attribute boolean hidden; void click(); [SetterThrows, Pure] attribute long tabIndex; [Throws] void focus();
deleted file mode 100644 --- a/dom/webidl/HTMLPropertiesCollection.webidl +++ /dev/null @@ -1,24 +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/. - * - * The origin of this IDL file is - * http://www.whatwg.org/specs/web-apps/current-work/ - * - * Copyright © 2012 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C - * liability, trademark and document use rules apply. - */ - -interface HTMLPropertiesCollection : HTMLCollection { - // inherits length and item() - getter PropertyNodeList? namedItem(DOMString name); // overrides inherited namedItem() - readonly attribute DOMStringList names; -}; - -typedef sequence<any> PropertyValueArray; - -interface PropertyNodeList : NodeList { - [Throws] - PropertyValueArray getValues(); -};
--- a/dom/webidl/moz.build +++ b/dom/webidl/moz.build @@ -225,17 +225,16 @@ WEBIDL_FILES = [ 'HTMLOptionElement.webidl', 'HTMLOptionsCollection.webidl', 'HTMLOutputElement.webidl', 'HTMLParagraphElement.webidl', 'HTMLParamElement.webidl', 'HTMLPictureElement.webidl', 'HTMLPreElement.webidl', 'HTMLProgressElement.webidl', - 'HTMLPropertiesCollection.webidl', 'HTMLQuoteElement.webidl', 'HTMLScriptElement.webidl', 'HTMLSelectElement.webidl', 'HTMLShadowElement.webidl', 'HTMLSourceElement.webidl', 'HTMLSpanElement.webidl', 'HTMLStyleElement.webidl', 'HTMLTableCaptionElement.webidl',
--- a/testing/web-platform/meta/html/dom/interfaces.html.ini +++ b/testing/web-platform/meta/html/dom/interfaces.html.ini @@ -557,62 +557,62 @@ expected: FAIL [HTMLElement interface: attribute onsort] expected: FAIL [HTMLElement interface: document.createElement("noscript") must inherit property "translate" with the proper type (2)] expected: FAIL - [HTMLElement interface: document.createElement("noscript") must inherit property "dropzone" with the proper type (20)] - expected: FAIL - - [HTMLElement interface: document.createElement("noscript") must inherit property "forceSpellCheck" with the proper type (25)] - expected: FAIL - - [HTMLElement interface: document.createElement("noscript") must inherit property "commandType" with the proper type (26)] - expected: FAIL - - [HTMLElement interface: document.createElement("noscript") must inherit property "commandLabel" with the proper type (27)] - expected: FAIL - - [HTMLElement interface: document.createElement("noscript") must inherit property "commandIcon" with the proper type (28)] - expected: FAIL - - [HTMLElement interface: document.createElement("noscript") must inherit property "commandHidden" with the proper type (29)] - expected: FAIL - - [HTMLElement interface: document.createElement("noscript") must inherit property "commandDisabled" with the proper type (30)] - expected: FAIL - - [HTMLElement interface: document.createElement("noscript") must inherit property "commandChecked" with the proper type (31)] - expected: FAIL - - [HTMLElement interface: document.createElement("noscript") must inherit property "onautocomplete" with the proper type (33)] - expected: FAIL - - [HTMLElement interface: document.createElement("noscript") must inherit property "onautocompleteerror" with the proper type (34)] - expected: FAIL - - [HTMLElement interface: document.createElement("noscript") must inherit property "oncancel" with the proper type (36)] - expected: FAIL - - [HTMLElement interface: document.createElement("noscript") must inherit property "onclose" with the proper type (41)] - expected: FAIL - - [HTMLElement interface: document.createElement("noscript") must inherit property "oncuechange" with the proper type (43)] - expected: FAIL - - [HTMLElement interface: document.createElement("noscript") must inherit property "ondragexit" with the proper type (48)] - expected: FAIL - - [HTMLElement interface: document.createElement("noscript") must inherit property "onmousewheel" with the proper type (74)] - expected: FAIL - - [HTMLElement interface: document.createElement("noscript") must inherit property "onsort" with the proper type (87)] + [HTMLElement interface: document.createElement("noscript") must inherit property "dropzone" with the proper type (13)] + expected: FAIL + + [HTMLElement interface: document.createElement("noscript") must inherit property "forceSpellCheck" with the proper type (18)] + expected: FAIL + + [HTMLElement interface: document.createElement("noscript") must inherit property "commandType" with the proper type (19)] + expected: FAIL + + [HTMLElement interface: document.createElement("noscript") must inherit property "commandLabel" with the proper type (20)] + expected: FAIL + + [HTMLElement interface: document.createElement("noscript") must inherit property "commandIcon" with the proper type (21)] + expected: FAIL + + [HTMLElement interface: document.createElement("noscript") must inherit property "commandHidden" with the proper type (22)] + expected: FAIL + + [HTMLElement interface: document.createElement("noscript") must inherit property "commandDisabled" with the proper type (23)] + expected: FAIL + + [HTMLElement interface: document.createElement("noscript") must inherit property "commandChecked" with the proper type (24)] + expected: FAIL + + [HTMLElement interface: document.createElement("noscript") must inherit property "onautocomplete" with the proper type (26)] + expected: FAIL + + [HTMLElement interface: document.createElement("noscript") must inherit property "onautocompleteerror" with the proper type (27)] + expected: FAIL + + [HTMLElement interface: document.createElement("noscript") must inherit property "oncancel" with the proper type (29)] + expected: FAIL + + [HTMLElement interface: document.createElement("noscript") must inherit property "onclose" with the proper type (34)] + expected: FAIL + + [HTMLElement interface: document.createElement("noscript") must inherit property "oncuechange" with the proper type (36)] + expected: FAIL + + [HTMLElement interface: document.createElement("noscript") must inherit property "ondragexit" with the proper type (41)] + expected: FAIL + + [HTMLElement interface: document.createElement("noscript") must inherit property "onmousewheel" with the proper type (67)] + expected: FAIL + + [HTMLElement interface: document.createElement("noscript") must inherit property "onsort" with the proper type (80)] expected: FAIL [Element interface: document.createElement("noscript") must inherit property "query" with the proper type (33)] expected: FAIL [Element interface: calling query(DOMString) on document.createElement("noscript") with too few arguments must throw TypeError] expected: FAIL @@ -2633,161 +2633,155 @@ expected: FAIL [Document interface: new Document() must inherit property "getElementsByName" with the proper type (51)] expected: FAIL [Document interface: calling getElementsByName(DOMString) on new Document() with too few arguments must throw TypeError] expected: FAIL - [Document interface: new Document() must inherit property "getItems" with the proper type (52)] - expected: FAIL - - [Document interface: calling getItems(DOMString) on new Document() with too few arguments must throw TypeError] - expected: FAIL - - [Document interface: new Document() must inherit property "cssElementMap" with the proper type (53)] - expected: FAIL - - [Document interface: new Document() must inherit property "open" with the proper type (55)] + [Document interface: new Document() must inherit property "cssElementMap" with the proper type (52)] + expected: FAIL + + [Document interface: new Document() must inherit property "open" with the proper type (54)] expected: FAIL [Document interface: calling open(DOMString,DOMString) on new Document() with too few arguments must throw TypeError] expected: FAIL - [Document interface: new Document() must inherit property "open" with the proper type (56)] + [Document interface: new Document() must inherit property "open" with the proper type (55)] expected: FAIL [Document interface: calling open(DOMString,DOMString,DOMString,boolean) on new Document() with too few arguments must throw TypeError] expected: FAIL - [Document interface: new Document() must inherit property "close" with the proper type (57)] - expected: FAIL - - [Document interface: new Document() must inherit property "write" with the proper type (58)] + [Document interface: new Document() must inherit property "close" with the proper type (56)] + expected: FAIL + + [Document interface: new Document() must inherit property "write" with the proper type (57)] expected: FAIL [Document interface: calling write(DOMString) on new Document() with too few arguments must throw TypeError] expected: FAIL - [Document interface: new Document() must inherit property "writeln" with the proper type (59)] + [Document interface: new Document() must inherit property "writeln" with the proper type (58)] expected: FAIL [Document interface: calling writeln(DOMString) on new Document() with too few arguments must throw TypeError] expected: FAIL - [Document interface: new Document() must inherit property "designMode" with the proper type (63)] - expected: FAIL - - [Document interface: new Document() must inherit property "execCommand" with the proper type (64)] + [Document interface: new Document() must inherit property "designMode" with the proper type (62)] + expected: FAIL + + [Document interface: new Document() must inherit property "execCommand" with the proper type (63)] expected: FAIL [Document interface: calling execCommand(DOMString,boolean,DOMString) on new Document() with too few arguments must throw TypeError] expected: FAIL - [Document interface: new Document() must inherit property "queryCommandEnabled" with the proper type (65)] + [Document interface: new Document() must inherit property "queryCommandEnabled" with the proper type (64)] expected: FAIL [Document interface: calling queryCommandEnabled(DOMString) on new Document() with too few arguments must throw TypeError] expected: FAIL - [Document interface: new Document() must inherit property "queryCommandIndeterm" with the proper type (66)] + [Document interface: new Document() must inherit property "queryCommandIndeterm" with the proper type (65)] expected: FAIL [Document interface: calling queryCommandIndeterm(DOMString) on new Document() with too few arguments must throw TypeError] expected: FAIL - [Document interface: new Document() must inherit property "queryCommandState" with the proper type (67)] + [Document interface: new Document() must inherit property "queryCommandState" with the proper type (66)] expected: FAIL [Document interface: calling queryCommandState(DOMString) on new Document() with too few arguments must throw TypeError] expected: FAIL - [Document interface: new Document() must inherit property "queryCommandSupported" with the proper type (68)] + [Document interface: new Document() must inherit property "queryCommandSupported" with the proper type (67)] expected: FAIL [Document interface: calling queryCommandSupported(DOMString) on new Document() with too few arguments must throw TypeError] expected: FAIL - [Document interface: new Document() must inherit property "queryCommandValue" with the proper type (69)] + [Document interface: new Document() must inherit property "queryCommandValue" with the proper type (68)] expected: FAIL [Document interface: calling queryCommandValue(DOMString) on new Document() with too few arguments must throw TypeError] expected: FAIL - [Document interface: new Document() must inherit property "commands" with the proper type (70)] - expected: FAIL - - [Document interface: new Document() must inherit property "fgColor" with the proper type (72)] - expected: FAIL - - [Document interface: new Document() must inherit property "linkColor" with the proper type (73)] - expected: FAIL - - [Document interface: new Document() must inherit property "vlinkColor" with the proper type (74)] - expected: FAIL - - [Document interface: new Document() must inherit property "alinkColor" with the proper type (75)] - expected: FAIL - - [Document interface: new Document() must inherit property "bgColor" with the proper type (76)] - expected: FAIL - - [Document interface: new Document() must inherit property "anchors" with the proper type (77)] - expected: FAIL - - [Document interface: new Document() must inherit property "applets" with the proper type (78)] - expected: FAIL - - [Document interface: new Document() must inherit property "clear" with the proper type (79)] - expected: FAIL - - [Document interface: new Document() must inherit property "captureEvents" with the proper type (80)] - expected: FAIL - - [Document interface: new Document() must inherit property "releaseEvents" with the proper type (81)] - expected: FAIL - - [Document interface: new Document() must inherit property "all" with the proper type (82)] - expected: FAIL - - [Document interface: new Document() must inherit property "query" with the proper type (90)] + [Document interface: new Document() must inherit property "commands" with the proper type (69)] + expected: FAIL + + [Document interface: new Document() must inherit property "fgColor" with the proper type (71)] + expected: FAIL + + [Document interface: new Document() must inherit property "linkColor" with the proper type (72)] + expected: FAIL + + [Document interface: new Document() must inherit property "vlinkColor" with the proper type (73)] + expected: FAIL + + [Document interface: new Document() must inherit property "alinkColor" with the proper type (74)] + expected: FAIL + + [Document interface: new Document() must inherit property "bgColor" with the proper type (75)] + expected: FAIL + + [Document interface: new Document() must inherit property "anchors" with the proper type (76)] + expected: FAIL + + [Document interface: new Document() must inherit property "applets" with the proper type (77)] + expected: FAIL + + [Document interface: new Document() must inherit property "clear" with the proper type (78)] + expected: FAIL + + [Document interface: new Document() must inherit property "captureEvents" with the proper type (79)] + expected: FAIL + + [Document interface: new Document() must inherit property "releaseEvents" with the proper type (80)] + expected: FAIL + + [Document interface: new Document() must inherit property "all" with the proper type (81)] + expected: FAIL + + [Document interface: new Document() must inherit property "query" with the proper type (89)] expected: FAIL [Document interface: calling query(DOMString) on new Document() with too few arguments must throw TypeError] expected: FAIL - [Document interface: new Document() must inherit property "queryAll" with the proper type (91)] + [Document interface: new Document() must inherit property "queryAll" with the proper type (90)] expected: FAIL [Document interface: calling queryAll(DOMString) on new Document() with too few arguments must throw TypeError] expected: FAIL - [Document interface: new Document() must inherit property "onautocomplete" with the proper type (95)] - expected: FAIL - - [Document interface: new Document() must inherit property "onautocompleteerror" with the proper type (96)] - expected: FAIL - - [Document interface: new Document() must inherit property "oncancel" with the proper type (98)] - expected: FAIL - - [Document interface: new Document() must inherit property "onclose" with the proper type (103)] - expected: FAIL - - [Document interface: new Document() must inherit property "oncuechange" with the proper type (105)] - expected: FAIL - - [Document interface: new Document() must inherit property "ondragexit" with the proper type (110)] - expected: FAIL - - [Document interface: new Document() must inherit property "onmousewheel" with the proper type (136)] - expected: FAIL - - [Document interface: new Document() must inherit property "onsort" with the proper type (149)] + [Document interface: new Document() must inherit property "onautocomplete" with the proper type (94)] + expected: FAIL + + [Document interface: new Document() must inherit property "onautocompleteerror" with the proper type (95)] + expected: FAIL + + [Document interface: new Document() must inherit property "oncancel" with the proper type (97)] + expected: FAIL + + [Document interface: new Document() must inherit property "onclose" with the proper type (102)] + expected: FAIL + + [Document interface: new Document() must inherit property "oncuechange" with the proper type (104)] + expected: FAIL + + [Document interface: new Document() must inherit property "ondragexit" with the proper type (109)] + expected: FAIL + + [Document interface: new Document() must inherit property "onmousewheel" with the proper type (135)] + expected: FAIL + + [Document interface: new Document() must inherit property "onsort" with the proper type (148)] expected: FAIL [HTMLSlotElement interface: existence and properties of interface object] expected: FAIL [HTMLSlotElement interface object length] expected: FAIL
--- a/testing/web-platform/meta/html/infrastructure/urls/resolving-urls/query-encoding/utf-16be.html.ini +++ b/testing/web-platform/meta/html/infrastructure/urls/resolving-urls/query-encoding/utf-16be.html.ini @@ -1,15 +1,13 @@ [utf-16be.html] type: testharness expected: TIMEOUT disabled: if os == "mac": https://bugzilla.mozilla.org/show_bug.cgi?id=1034063 - [Getting <div>.itemid] - expected: FAIL [hyperlink auditing <a ping>] expected: TIMEOUT [hyperlink auditing <area ping>] expected: TIMEOUT [loading image <video poster>]
--- a/testing/web-platform/meta/html/infrastructure/urls/resolving-urls/query-encoding/utf-16le.html.ini +++ b/testing/web-platform/meta/html/infrastructure/urls/resolving-urls/query-encoding/utf-16le.html.ini @@ -1,15 +1,13 @@ [utf-16le.html] type: testharness disabled: if os == "mac": https://bugzilla.mozilla.org/show_bug.cgi?id=1034063 expected: TIMEOUT - [Getting <div>.itemid] - expected: FAIL [hyperlink auditing <a ping>] expected: TIMEOUT [hyperlink auditing <area ping>] expected: TIMEOUT [loading image <video poster>]
--- a/testing/web-platform/meta/html/infrastructure/urls/resolving-urls/query-encoding/utf-8.html.ini +++ b/testing/web-platform/meta/html/infrastructure/urls/resolving-urls/query-encoding/utf-8.html.ini @@ -1,15 +1,13 @@ [utf-8.html] type: testharness expected: TIMEOUT disabled: if os == "mac": https://bugzilla.mozilla.org/show_bug.cgi?id=1034063 - [Getting <div>.itemid] - expected: FAIL [hyperlink auditing <a ping>] expected: TIMEOUT [hyperlink auditing <area ping>] expected: TIMEOUT [loading image <video poster>]
--- a/testing/web-platform/meta/html/infrastructure/urls/resolving-urls/query-encoding/windows-1251.html.ini +++ b/testing/web-platform/meta/html/infrastructure/urls/resolving-urls/query-encoding/windows-1251.html.ini @@ -70,19 +70,16 @@ expected: FAIL [Getting <menuitem>.icon] expected: FAIL [Getting <script>.src] expected: FAIL - [Getting <div>.itemid] - expected: FAIL - [Getting <a>.ping (multiple URLs)] expected: FAIL [follow hyperlink <a href>] expected: FAIL [follow hyperlink <area href>] expected: FAIL @@ -247,49 +244,16 @@ expected: FAIL [submit form <button formaction>] expected: FAIL [<base href>] expected: FAIL - [microdata values <audio src>] - expected: FAIL - - [microdata values <embed src>] - expected: FAIL - - [microdata values <iframe src>] - expected: FAIL - - [microdata values <img src>] - expected: FAIL - - [microdata values <source src>] - expected: FAIL - - [microdata values <track src>] - expected: FAIL - - [microdata values <video src>] - expected: FAIL - - [microdata values <a href>] - expected: FAIL - - [microdata values <area href>] - expected: FAIL - - [microdata values <link href>] - expected: FAIL - - [microdata values <object data>] - expected: FAIL - [Worker constructor] expected: FAIL [SharedWorker constructor] expected: FAIL [EventSource constructor] expected: FAIL
--- a/testing/web-platform/meta/html/infrastructure/urls/resolving-urls/query-encoding/windows-1252.html.ini +++ b/testing/web-platform/meta/html/infrastructure/urls/resolving-urls/query-encoding/windows-1252.html.ini @@ -1,15 +1,13 @@ [windows-1252.html] type: testharness expected: TIMEOUT disabled: if os == "mac": https://bugzilla.mozilla.org/show_bug.cgi?id=1034063 - [Getting <div>.itemid] - expected: FAIL [hyperlink auditing <a ping>] expected: TIMEOUT [hyperlink auditing <area ping>] expected: TIMEOUT [loading webvtt <track>]
deleted file mode 100644 --- a/testing/web-platform/tests/html/dom/elements-microdata.js +++ /dev/null @@ -1,35 +0,0 @@ -// Up-to-date as of 2013-04-19. -// Things defined in the W3C's microdata draft, not the main HTML5 draft. -// Note: must be included last so that it hits all elements. - -for (var element in elements) { - elements[element].itemScope = "boolean"; - elements[element].itemType = "settable tokenlist"; - elements[element].itemId = "url"; - elements[element].itemRef = "settable tokenlist"; - elements[element].itemProp = "settable tokenlist"; -} -extraTests.push(function() { - // itemValue only reflects in certain circumstances. The syntax for our big - // array thing above doesn't currently support one IDL attribute that reflects - // different content attributes, so just do this explicitly until that's fixed. - var reflectItemValue = function(data, localName, attribute) { - var element = document.createElement(localName); - element.setAttribute("itemprop", ""); - ReflectionTests.reflects(data, "itemValue", element, attribute); - } - reflectItemValue("string", "meta", "content"); - reflectItemValue("url", "audio", "src"); - reflectItemValue("url", "embed", "src"); - reflectItemValue("url", "iframe", "src"); - reflectItemValue("url", "img", "src"); - reflectItemValue("url", "source", "src"); - reflectItemValue("url", "track", "src"); - reflectItemValue("url", "video", "src"); - reflectItemValue("url", "a", "href"); - reflectItemValue("url", "area", "href"); - reflectItemValue("url", "link", "href"); - reflectItemValue("url", "object", "data"); - reflectItemValue("string", "data", "value"); - //TODO: time is more complex -});
--- a/testing/web-platform/tests/html/dom/interfaces.html +++ b/testing/web-platform/tests/html/dom/interfaces.html @@ -893,28 +893,18 @@ interface HTMLOptionsCollection : HTMLCo attribute unsigned long length; // shadows inherited length legacycaller HTMLOptionElement? (DOMString name); setter creator void (unsigned long index, HTMLOptionElement? option); void add((HTMLOptionElement or HTMLOptGroupElement) element, optional (HTMLElement or long)? before = null); void remove(long index); attribute long selectedIndex; }; -interface HTMLPropertiesCollection : HTMLCollection { - // inherits length and item() - getter PropertyNodeList? namedItem(DOMString name); // shadows inherited namedItem() - readonly attribute DOMString[] names; -}; - typedef sequence<any> PropertyValueArray; -interface PropertyNodeList : NodeList { - PropertyValueArray getValues(); -}; - [OverrideBuiltins, Exposed=(Window,Worker)] interface DOMStringMap { getter DOMString (DOMString name); setter creator void (DOMString name, DOMString value); deleter void (DOMString name); }; interface DOMElementMap { @@ -947,17 +937,16 @@ partial /*sealed*/ interface Document { readonly attribute HTMLHeadElement? head; readonly attribute HTMLCollection images; readonly attribute HTMLCollection embeds; readonly attribute HTMLCollection plugins; readonly attribute HTMLCollection links; readonly attribute HTMLCollection forms; readonly attribute HTMLCollection scripts; NodeList getElementsByName(DOMString elementName); - NodeList getItems(optional DOMString typeNames = ""); // microdata readonly attribute DOMElementMap cssElementMap; readonly attribute HTMLScriptElement? currentScript; // dynamic markup insertion Document open(optional DOMString type = "text/html", optional DOMString replace = ""); WindowProxy open(DOMString url, DOMString name, DOMString features, optional boolean replace = false); void close(); void write(DOMString... text); @@ -990,25 +979,16 @@ partial interface XMLDocument { interface HTMLElement : Element { // metadata attributes attribute DOMString title; attribute DOMString lang; attribute boolean translate; attribute DOMString dir; readonly attribute DOMStringMap dataset; - // microdata - attribute boolean itemScope; - [PutForwards=value] readonly attribute DOMTokenList itemType; - attribute DOMString itemId; - [PutForwards=value] readonly attribute DOMTokenList itemRef; - [PutForwards=value] readonly attribute DOMTokenList itemProp; - readonly attribute HTMLPropertiesCollection properties; - attribute any itemValue; // acts as DOMString on setting - // user interaction attribute boolean hidden; void click(); attribute long tabIndex; void focus(); void blur(); attribute DOMString accessKey; readonly attribute DOMString accessKeyLabel; @@ -3189,18 +3169,16 @@ setup(function() { }, {explicit_done:true}); window.onload = function() { idlArray.add_objects({ NodeList: ['document.getElementsByName("name")'], HTMLAllCollection: ['document.all'], HTMLFormControlsCollection: ['document.createElement("form").elements'], RadioNodeList: [], HTMLOptionsCollection: ['document.createElement("select").options'], - HTMLPropertiesCollection: ['document.head.properties'], - PropertyNodeList: [], DOMStringMap: ['document.head.dataset'], DOMElementMap: ['document.cssElementMap'], Transferable: [], Document: ['iframe.contentDocument', 'new Document()'], XMLDocument: ['document.implementation.createDocument(null, "", null)'], HTMLElement: ['document.createElement("noscript")'], // more tests in html/semantics/interfaces.js HTMLUnknownElement: ['document.createElement("bgsound")'], // more tests in html/semantics/interfaces.js HTMLHtmlElement: ['document.createElement("html")'],
--- a/testing/web-platform/tests/html/dom/reflection-embedded.html +++ b/testing/web-platform/tests/html/dom/reflection-embedded.html @@ -9,10 +9,9 @@ is suitable for incorporation into autom <div id=log></div> <script src="/resources/testharness.js"></script> <script src=/resources/testharnessreport.js></script> <script src=original-harness.js></script> <script src=new-harness.js></script> <script src=elements-embedded.js></script> -<script src=elements-microdata.js></script> <script src=reflection.js></script>
--- a/testing/web-platform/tests/html/dom/reflection-forms.html +++ b/testing/web-platform/tests/html/dom/reflection-forms.html @@ -9,10 +9,9 @@ is suitable for incorporation into autom <div id=log></div> <script src="/resources/testharness.js"></script> <script src=/resources/testharnessreport.js></script> <script src=original-harness.js></script> <script src=new-harness.js></script> <script src=elements-forms.js></script> -<script src=elements-microdata.js></script> <script src=reflection.js></script>
--- a/testing/web-platform/tests/html/dom/reflection-grouping.html +++ b/testing/web-platform/tests/html/dom/reflection-grouping.html @@ -9,10 +9,9 @@ is suitable for incorporation into autom <div id=log></div> <script src="/resources/testharness.js"></script> <script src=/resources/testharnessreport.js></script> <script src=original-harness.js></script> <script src=new-harness.js></script> <script src=elements-grouping.js></script> -<script src=elements-microdata.js></script> <script src=reflection.js></script>
--- a/testing/web-platform/tests/html/dom/reflection-metadata.html +++ b/testing/web-platform/tests/html/dom/reflection-metadata.html @@ -9,10 +9,9 @@ is suitable for incorporation into autom <div id=log></div> <script src="/resources/testharness.js"></script> <script src=/resources/testharnessreport.js></script> <script src=original-harness.js></script> <script src=new-harness.js></script> <script src=elements-metadata.js></script> -<script src=elements-microdata.js></script> <script src=reflection.js></script>
--- a/testing/web-platform/tests/html/dom/reflection-misc.html +++ b/testing/web-platform/tests/html/dom/reflection-misc.html @@ -9,10 +9,9 @@ is suitable for incorporation into autom <div id=log></div> <script src="/resources/testharness.js"></script> <script src=/resources/testharnessreport.js></script> <script src=original-harness.js></script> <script src=new-harness.js></script> <script src=elements-misc.js></script> -<script src=elements-microdata.js></script> <script src=reflection.js></script>
--- a/testing/web-platform/tests/html/dom/reflection-obsolete.html +++ b/testing/web-platform/tests/html/dom/reflection-obsolete.html @@ -9,10 +9,9 @@ is suitable for incorporation into autom <div id=log></div> <script src="/resources/testharness.js"></script> <script src=/resources/testharnessreport.js></script> <script src=original-harness.js></script> <script src=new-harness.js></script> <script src=elements-obsolete.js></script> -<script src=elements-microdata.js></script> <script src=reflection.js></script>
--- a/testing/web-platform/tests/html/dom/reflection-original.html +++ b/testing/web-platform/tests/html/dom/reflection-original.html @@ -32,10 +32,9 @@ frameworks. <script src=elements-sections.js></script> <script src=elements-grouping.js></script> <script src=elements-text.js></script> <script src=elements-embedded.js></script> <script src=elements-tabular.js></script> <script src=elements-forms.js></script> <script src=elements-misc.js></script> <script src=elements-obsolete.js></script> -<script src=elements-microdata.js></script> <script src=reflection.js></script>
--- a/testing/web-platform/tests/html/dom/reflection-sections.html +++ b/testing/web-platform/tests/html/dom/reflection-sections.html @@ -9,10 +9,9 @@ is suitable for incorporation into autom <div id=log></div> <script src="/resources/testharness.js"></script> <script src=/resources/testharnessreport.js></script> <script src=original-harness.js></script> <script src=new-harness.js></script> <script src=elements-sections.js></script> -<script src=elements-microdata.js></script> <script src=reflection.js></script>
--- a/testing/web-platform/tests/html/dom/reflection-tabular.html +++ b/testing/web-platform/tests/html/dom/reflection-tabular.html @@ -9,10 +9,9 @@ is suitable for incorporation into autom <div id=log></div> <script src="/resources/testharness.js"></script> <script src=/resources/testharnessreport.js></script> <script src=original-harness.js></script> <script src=new-harness.js></script> <script src=elements-tabular.js></script> -<script src=elements-microdata.js></script> <script src=reflection.js></script>
--- a/testing/web-platform/tests/html/dom/reflection-text.html +++ b/testing/web-platform/tests/html/dom/reflection-text.html @@ -9,10 +9,9 @@ is suitable for incorporation into autom <div id=log></div> <script src="/resources/testharness.js"></script> <script src=/resources/testharnessreport.js></script> <script src=original-harness.js></script> <script src=new-harness.js></script> <script src=elements-text.js></script> -<script src=elements-microdata.js></script> <script src=reflection.js></script>
--- a/testing/web-platform/tests/html/infrastructure/urls/resolving-urls/query-encoding/resources/resolve-url.js +++ b/testing/web-platform/tests/html/infrastructure/urls/resolving-urls/query-encoding/resources/resolve-url.js @@ -80,17 +80,17 @@ onload = function() { elm.setAttribute(attr, input); var got = elm[idlAttr]; assert_true(got.indexOf(expected_current) > -1, msg(expected_current, got)); }, 'Getting <'+tag+'>.'+idlAttr + (multiple ? ' (multiple URLs)' : ''), {help:'https://html.spec.whatwg.org/multipage/multipage/common-dom-interfaces.html#reflecting-content-attributes-in-idl-attributes'}); } ('iframe src, a href, base href, link href, img src, embed src, object data, track src, video src, audio src, input src, form action, ' + - 'input formaction formAction, button formaction formAction, menuitem icon, script src, div itemid').split(', ').forEach(function(str) { + 'input formaction formAction, button formaction formAction, menuitem icon, script src').split(', ').forEach(function(str) { var arr = str.split(' '); test_reflecting(arr[0], arr[1], arr[2]); }); 'a ping'.split(', ').forEach(function(str) { var arr = str.split(' '); test_reflecting(arr[0], arr[1], arr[2], true); }); @@ -430,36 +430,16 @@ onload = function() { var got_a_href = doc.links[0].href; assert_true(got_a_href.indexOf(expected_current) > -1, msg(expected_current, got_a_href), 'a.href'); }); }, '<base href>', {help:['https://html.spec.whatwg.org/multipage/multipage/semantics.html#set-the-frozen-base-url', 'https://dom.spec.whatwg.org/#dom-node-baseuri', 'https://html.spec.whatwg.org/multipage/multipage/text-level-semantics.html#the-a-element']}); - // XXX itemid is exposed in JSON drag-and-drop but seems hard to automate - - // microdata values - function test_microdata_values(tag, attr) { - test(function() { - var elm = document.createElement(tag); - elm.setAttribute('itemprop', ''); - elm.setAttribute(attr, input_url_html); - var got = elm.itemValue; - assert_not_equals(got, undefined, 'itemValue not supported'); - assert_true(got.indexOf(expected_current) > -1, msg(expected_current, got)); - }, 'microdata values <'+tag+' '+attr+'>', - {help:'https://html.spec.whatwg.org/multipage/multipage/microdata.html#concept-property-value'}); - } - - 'audio src, embed src, iframe src, img src, source src, track src, video src, a href, area href, link href, object data'.split(', ').forEach(function(str) { - var arr = str.split(' '); - test_microdata_values(arr[0], arr[1]); - }); - // XXX drag and drop (<a href> or <img src>) seems hard to automate // Worker() async_test(function() { var worker = new Worker(input_url_worker); worker.onmessage = this.step_func_done(function(e) { assert_equals(e.data, expected_current); });
--- a/testing/web-platform/tests/tools/scripts/id2path.json +++ b/testing/web-platform/tests/tools/scripts/id2path.json @@ -810,13 +810,11 @@ "using-the-microdata-dom-api": "microdata/introduction/using-the-microdata-dom-api", "encoding-microdata": "microdata/encoding-microdata", "the-microdata-model": "microdata/encoding-microdata/the-microdata-model", "items": "microdata/encoding-microdata/items", "names:-the-itemprop-attribute": "microdata/encoding-microdata/names-the-itemprop-attribute", "values": "microdata/encoding-microdata/values", "associating-names-with-items": "microdata/encoding-microdata/associating-names-with-items", "microdata-and-other-namespaces": "microdata/encoding-microdata/microdata-and-other-namespaces", - "microdata-dom-api": "microdata/microdata-dom-api", - "htmlpropertiescollection": "microdata/microdata-dom-api/htmlpropertiescollection", "converting-html-to-other-formats": "microdata/converting-html-to-other-formats", "json": "microdata/converting-html-to-other-formats/json" -} \ No newline at end of file +}