diff options
author | janekptacijarabaci <janekptacijarabaci@seznam.cz> | 2017-08-18 06:04:15 +0200 |
---|---|---|
committer | wolfbeast <mcwerewolf@gmail.com> | 2018-03-12 09:59:19 +0100 |
commit | 6be9e507077bfdd2b8c82c203cf70f010ecce086 (patch) | |
tree | 5f0a9188256213506d1f2477d9ee1040b133c762 /dom/base/nsContentList.h | |
parent | 93f8e06bb8d8656e868679d584c7c8771ff8e42f (diff) | |
download | UXP-6be9e507077bfdd2b8c82c203cf70f010ecce086.tar UXP-6be9e507077bfdd2b8c82c203cf70f010ecce086.tar.gz UXP-6be9e507077bfdd2b8c82c203cf70f010ecce086.tar.lz UXP-6be9e507077bfdd2b8c82c203cf70f010ecce086.tar.xz UXP-6be9e507077bfdd2b8c82c203cf70f010ecce086.zip |
HTML - implement the labels attribute
Diffstat (limited to 'dom/base/nsContentList.h')
-rw-r--r-- | dom/base/nsContentList.h | 40 |
1 files changed, 38 insertions, 2 deletions
diff --git a/dom/base/nsContentList.h b/dom/base/nsContentList.h index 3878074b2..83d27da95 100644 --- a/dom/base/nsContentList.h +++ b/dom/base/nsContentList.h @@ -371,9 +371,9 @@ protected: * traversed the whole document (or both). * * @param aNeededLength the length the list should have when we are - * done (unless it exhausts the document) + * done (unless it exhausts the document) */ - void PopulateSelf(uint32_t aNeededLength); + virtual void PopulateSelf(uint32_t aNeededLength); /** * @param aContainer a content node which must be a descendant of @@ -584,4 +584,40 @@ public: #endif }; +class nsLabelsNodeList final : public nsContentList +{ +public: + nsLabelsNodeList(nsINode* aRootNode, + nsContentListMatchFunc aFunc, + nsContentListDestroyFunc aDestroyFunc, + void* aData) + : nsContentList(aRootNode, aFunc, aDestroyFunc, aData) + { + } + + NS_DECL_NSIMUTATIONOBSERVER_ATTRIBUTECHANGED + NS_DECL_NSIMUTATIONOBSERVER_CONTENTAPPENDED + NS_DECL_NSIMUTATIONOBSERVER_CONTENTINSERTED + NS_DECL_NSIMUTATIONOBSERVER_CONTENTREMOVED + + virtual JSObject* WrapObject(JSContext *cx, JS::Handle<JSObject*> aGivenProto) override; + + /** + * Reset root, mutation observer, and clear content list + * if the root has been changed. + * + * @param aRootNode The node under which to limit our search. + */ + void MaybeResetRoot(nsINode* aRootNode); + +private: + /** + * Start searching at the last one if we already have nodes, otherwise + * start searching at the root. + * + * @param aNeededLength The list of length should have when we are + * done (unless it exhausts the document). + */ + void PopulateSelf(uint32_t aNeededLength) override; +}; #endif // nsContentList_h___ |