mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-24 02:35:41 +00:00
d384462b47
The spec recently changed to match browsers better. There's currently not much interop in exact details of how this work. This brings us in line with the spec except for the limit of 1000 on the span attribute. The added textarea failures are spurious, because I'm not updating our local tests in this commit. The new tests are submitted upstream at <https://github.com/w3c/web-platform-tests/pull/3518>. MozReview-Commit-ID: 1L8aUtF47Qi
98 lines
2.8 KiB
C++
98 lines
2.8 KiB
C++
/* -*- 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 mozilla_dom_HTMLTableColElement_h
|
|
#define mozilla_dom_HTMLTableColElement_h
|
|
|
|
#include "mozilla/Attributes.h"
|
|
#include "nsGenericHTMLElement.h"
|
|
|
|
namespace mozilla {
|
|
namespace dom {
|
|
|
|
class HTMLTableColElement final : public nsGenericHTMLElement
|
|
{
|
|
public:
|
|
explicit HTMLTableColElement(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo)
|
|
: nsGenericHTMLElement(aNodeInfo)
|
|
{
|
|
SetHasWeirdParserInsertionMode();
|
|
}
|
|
|
|
uint32_t Span() const
|
|
{
|
|
return GetIntAttr(nsGkAtoms::span, 1);
|
|
}
|
|
void SetSpan(uint32_t aSpan, ErrorResult& aError)
|
|
{
|
|
uint32_t span = aSpan ? aSpan : 1;
|
|
SetUnsignedIntAttr(nsGkAtoms::span, span, 1, aError);
|
|
}
|
|
|
|
void GetAlign(DOMString& aAlign)
|
|
{
|
|
GetHTMLAttr(nsGkAtoms::align, aAlign);
|
|
}
|
|
void SetAlign(const nsAString& aAlign, ErrorResult& aError)
|
|
{
|
|
SetHTMLAttr(nsGkAtoms::align, aAlign, aError);
|
|
}
|
|
void GetCh(DOMString& aCh)
|
|
{
|
|
GetHTMLAttr(nsGkAtoms::_char, aCh);
|
|
}
|
|
void SetCh(const nsAString& aCh, ErrorResult& aError)
|
|
{
|
|
SetHTMLAttr(nsGkAtoms::_char, aCh, aError);
|
|
}
|
|
void GetChOff(DOMString& aChOff)
|
|
{
|
|
GetHTMLAttr(nsGkAtoms::charoff, aChOff);
|
|
}
|
|
void SetChOff(const nsAString& aChOff, ErrorResult& aError)
|
|
{
|
|
SetHTMLAttr(nsGkAtoms::charoff, aChOff, aError);
|
|
}
|
|
void GetVAlign(DOMString& aVAlign)
|
|
{
|
|
GetHTMLAttr(nsGkAtoms::valign, aVAlign);
|
|
}
|
|
void SetVAlign(const nsAString& aVAlign, ErrorResult& aError)
|
|
{
|
|
SetHTMLAttr(nsGkAtoms::valign, aVAlign, aError);
|
|
}
|
|
void GetWidth(DOMString& aWidth)
|
|
{
|
|
GetHTMLAttr(nsGkAtoms::width, aWidth);
|
|
}
|
|
void SetWidth(const nsAString& aWidth, ErrorResult& aError)
|
|
{
|
|
SetHTMLAttr(nsGkAtoms::width, aWidth, aError);
|
|
}
|
|
|
|
virtual bool ParseAttribute(int32_t aNamespaceID,
|
|
nsIAtom* aAttribute,
|
|
const nsAString& aValue,
|
|
nsAttrValue& aResult) override;
|
|
nsMapRuleToAttributesFunc GetAttributeMappingFunction() const override;
|
|
NS_IMETHOD_(bool) IsAttributeMapped(const nsIAtom* aAttribute) const override;
|
|
|
|
virtual nsresult Clone(mozilla::dom::NodeInfo *aNodeInfo, nsINode **aResult) const override;
|
|
|
|
protected:
|
|
virtual ~HTMLTableColElement();
|
|
|
|
virtual JSObject* WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto) override;
|
|
|
|
private:
|
|
static void MapAttributesIntoRule(const nsMappedAttributes* aAttributes,
|
|
nsRuleData* aData);
|
|
};
|
|
|
|
} // namespace dom
|
|
} // namespace mozilla
|
|
|
|
#endif /* mozilla_dom_HTMLTableColElement_h */
|