LCOV - code coverage report
Current view: top level - dom/html - HTMLAllCollection.h (source / functions) Hit Total Coverage
Test: output.info Lines: 1 15 6.7 %
Date: 2017-07-14 16:53:18 Functions: 1 11 9.1 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
       2             : /* vim: set ts=8 sts=2 et sw=2 tw=80: */
       3             : /* This Source Code Form is subject to the terms of the Mozilla Public
       4             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       5             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
       6             : 
       7             : #ifndef mozilla_dom_HTMLAllCollection_h
       8             : #define mozilla_dom_HTMLAllCollection_h
       9             : 
      10             : #include "nsCycleCollectionParticipant.h"
      11             : #include "nsISupportsImpl.h"
      12             : #include "nsRefPtrHashtable.h"
      13             : #include "nsWrapperCache.h"
      14             : 
      15             : #include <stdint.h>
      16             : 
      17             : class nsContentList;
      18             : class nsHTMLDocument;
      19             : class nsIContent;
      20             : class nsINode;
      21             : 
      22             : namespace mozilla {
      23             : namespace dom {
      24             : 
      25             : class OwningNodeOrHTMLCollection;
      26             : template<typename> struct Nullable;
      27             : 
      28             : class HTMLAllCollection final : public nsISupports
      29             :                               , public nsWrapperCache
      30             : {
      31             :   ~HTMLAllCollection();
      32             : 
      33             : public:
      34             :   explicit HTMLAllCollection(nsHTMLDocument* aDocument);
      35             : 
      36             :   NS_DECL_CYCLE_COLLECTING_ISUPPORTS
      37          14 :   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(HTMLAllCollection)
      38             : 
      39             :   virtual JSObject* WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override;
      40             :   nsINode* GetParentObject() const;
      41             : 
      42             :   uint32_t Length();
      43             :   nsIContent* Item(uint32_t aIndex);
      44           0 :   void Item(const nsAString& aName, Nullable<OwningNodeOrHTMLCollection>& aResult)
      45             :   {
      46           0 :     NamedItem(aName, aResult);
      47           0 :   }
      48           0 :   nsIContent* IndexedGetter(uint32_t aIndex, bool& aFound)
      49             :   {
      50           0 :     nsIContent* result = Item(aIndex);
      51           0 :     aFound = !!result;
      52           0 :     return result;
      53             :   }
      54             : 
      55           0 :   void NamedItem(const nsAString& aName,
      56             :                  Nullable<OwningNodeOrHTMLCollection>& aResult)
      57             :   {
      58           0 :     bool found = false;
      59           0 :     NamedGetter(aName, found, aResult);
      60           0 :   }
      61             :   void NamedGetter(const nsAString& aName,
      62             :                    bool& aFound,
      63             :                    Nullable<OwningNodeOrHTMLCollection>& aResult);
      64             :   void GetSupportedNames(nsTArray<nsString>& aNames);
      65           0 :   void LegacyCall(JS::Handle<JS::Value>, const nsAString& aName,
      66             :                   Nullable<OwningNodeOrHTMLCollection>& aResult)
      67             :   {
      68           0 :     NamedItem(aName, aResult);
      69           0 :   }
      70             : 
      71             : private:
      72             :   nsContentList* Collection();
      73             : 
      74             :   /**
      75             :    * Returns the HTMLCollection for document.all[aID], or null if there isn't one.
      76             :    */
      77             :   nsContentList* GetDocumentAllList(const nsAString& aID);
      78             : 
      79             :   RefPtr<nsHTMLDocument> mDocument;
      80             :   RefPtr<nsContentList> mCollection;
      81             :   nsRefPtrHashtable<nsStringHashKey, nsContentList> mNamedMap;
      82             : };
      83             : 
      84             : } // namespace dom
      85             : } // namespace mozilla
      86             : 
      87             : #endif // mozilla_dom_HTMLAllCollection_h

Generated by: LCOV version 1.13