/usr/include/thunderbird/mozilla/dom/HTMLContentElement.h is in thunderbird-dev 1:52.8.0-1~deb8u1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 | /* -*- 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_HTMLContentElement_h__
#define mozilla_dom_HTMLContentElement_h__
#include "nsAutoPtr.h"
#include "nsINodeList.h"
#include "nsGenericHTMLElement.h"
struct nsCSSSelectorList;
namespace mozilla {
namespace dom {
class DistributedContentList;
class HTMLContentElement final : public nsGenericHTMLElement
{
public:
explicit HTMLContentElement(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo);
// nsISupports
NS_DECL_ISUPPORTS_INHERITED
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(HTMLContentElement,
nsGenericHTMLElement)
static HTMLContentElement* FromContent(nsIContent* aContent)
{
if (aContent->IsHTMLContentElement()) {
return static_cast<HTMLContentElement*>(aContent);
}
return nullptr;
}
virtual bool IsHTMLContentElement() const override { return true; }
virtual nsresult Clone(mozilla::dom::NodeInfo *aNodeInfo, nsINode **aResult) const override;
virtual nsIDOMNode* AsDOMNode() override { return this; }
virtual nsresult BindToTree(nsIDocument* aDocument, nsIContent* aParent,
nsIContent* aBindingParent,
bool aCompileEventHandlers) override;
virtual void UnbindFromTree(bool aDeep = true,
bool aNullParent = true) override;
/**
* Returns whether if the selector of this insertion point
* matches the provided content.
*/
bool Match(nsIContent* aContent);
bool IsInsertionPoint() const { return mIsInsertionPoint; }
nsCOMArray<nsIContent>& MatchedNodes() { return mMatchedNodes; }
void AppendMatchedNode(nsIContent* aContent);
void RemoveMatchedNode(nsIContent* aContent);
void InsertMatchedNode(uint32_t aIndex, nsIContent* aContent);
void ClearMatchedNodes();
virtual nsresult SetAttr(int32_t aNameSpaceID, nsIAtom* aName,
nsIAtom* aPrefix, const nsAString& aValue,
bool aNotify) override;
virtual nsresult UnsetAttr(int32_t aNameSpaceID, nsIAtom* aAttribute,
bool aNotify) override;
// WebIDL methods.
already_AddRefed<DistributedContentList> GetDistributedNodes();
void GetSelect(nsAString& aSelect)
{
Element::GetAttr(kNameSpaceID_None, nsGkAtoms::select, aSelect);
}
void SetSelect(const nsAString& aSelect)
{
Element::SetAttr(kNameSpaceID_None, nsGkAtoms::select, aSelect, true);
}
protected:
virtual ~HTMLContentElement();
virtual JSObject* WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto) override;
/**
* Updates the destination insertion points of the fallback
* content of this insertion point. If there are nodes matched
* to this insertion point, then destination insertion points
* of fallback are cleared, otherwise, this insertion point
* is a destination insertion point.
*/
void UpdateFallbackDistribution();
/**
* An array of nodes from the ShadowRoot host that match the
* content insertion selector.
*/
nsCOMArray<nsIContent> mMatchedNodes;
nsAutoPtr<nsCSSSelectorList> mSelectorList;
bool mValidSelector;
bool mIsInsertionPoint;
};
class DistributedContentList : public nsINodeList
{
public:
explicit DistributedContentList(HTMLContentElement* aHostElement);
NS_DECL_CYCLE_COLLECTING_ISUPPORTS
NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(DistributedContentList)
// nsIDOMNodeList
NS_DECL_NSIDOMNODELIST
// nsINodeList
virtual nsIContent* Item(uint32_t aIndex) override;
virtual int32_t IndexOf(nsIContent* aContent) override;
virtual nsINode* GetParentObject() override { return mParent; }
virtual JSObject* WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override;
protected:
virtual ~DistributedContentList();
RefPtr<HTMLContentElement> mParent;
nsCOMArray<nsIContent> mDistributedNodes;
};
} // namespace dom
} // namespace mozilla
#endif // mozilla_dom_HTMLContentElement_h__
|