LCOV - code coverage report
Current view: top level - dom/base - DocumentFragment.h (source / functions) Hit Total Coverage
Test: output.info Lines: 8 40 20.0 %
Date: 2017-07-14 16:53:18 Functions: 2 35 5.7 %
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_DocumentFragment_h__
       8             : #define mozilla_dom_DocumentFragment_h__
       9             : 
      10             : #include "mozilla/Attributes.h"
      11             : #include "mozilla/dom/BorrowedAttrInfo.h"
      12             : #include "mozilla/dom/FragmentOrElement.h"
      13             : #include "nsIDOMDocumentFragment.h"
      14             : 
      15             : class nsIAtom;
      16             : class nsAString;
      17             : class nsIDocument;
      18             : class nsIContent;
      19             : 
      20             : namespace mozilla {
      21             : namespace dom {
      22             : 
      23             : class Element;
      24             : 
      25             : class DocumentFragment : public FragmentOrElement,
      26             :                          public nsIDOMDocumentFragment
      27             : {
      28             : private:
      29           4 :   void Init()
      30             :   {
      31           4 :     MOZ_ASSERT(mNodeInfo->NodeType() == nsIDOMNode::DOCUMENT_FRAGMENT_NODE &&
      32             :                mNodeInfo->Equals(nsGkAtoms::documentFragmentNodeName,
      33             :                                  kNameSpaceID_None),
      34             :                "Bad NodeType in aNodeInfo");
      35           4 :   }
      36             : 
      37             : public:
      38             :   using FragmentOrElement::GetFirstChild;
      39             :   using nsINode::QuerySelector;
      40             :   using nsINode::QuerySelectorAll;
      41             :   // Make sure bindings can see our superclass' protected GetElementById method.
      42             :   using nsINode::GetElementById;
      43             : 
      44             :   // nsISupports
      45             :   NS_DECL_ISUPPORTS_INHERITED
      46             : 
      47             :   // interface nsIDOMNode
      48           0 :   NS_FORWARD_NSIDOMNODE_TO_NSINODE
      49             : 
      50             :   // interface nsIDOMDocumentFragment
      51             :   NS_DECL_NSIDOMDOCUMENTFRAGMENT
      52             : 
      53           0 :   explicit DocumentFragment(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo)
      54           0 :     : FragmentOrElement(aNodeInfo), mHost(nullptr)
      55             :   {
      56           0 :     Init();
      57           0 :   }
      58             : 
      59           4 :   explicit DocumentFragment(nsNodeInfoManager* aNodeInfoManager)
      60           8 :     : FragmentOrElement(aNodeInfoManager->GetNodeInfo(
      61             :                                             nsGkAtoms::documentFragmentNodeName,
      62             :                                             nullptr, kNameSpaceID_None,
      63             :                                             nsIDOMNode::DOCUMENT_FRAGMENT_NODE)),
      64           8 :       mHost(nullptr)
      65             :   {
      66           4 :     Init();
      67           4 :   }
      68             : 
      69             :   virtual JSObject* WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto) override;
      70             : 
      71             :   // nsIContent
      72             :   nsresult SetAttr(int32_t aNameSpaceID, nsIAtom* aName,
      73             :                    const nsAString& aValue, bool aNotify)
      74             :   {
      75             :     return SetAttr(aNameSpaceID, aName, nullptr, aValue, aNotify);
      76             :   }
      77           0 :   virtual nsresult SetAttr(int32_t aNameSpaceID, nsIAtom* aName,
      78             :                            nsIAtom* aPrefix, const nsAString& aValue,
      79             :                            bool aNotify) override
      80             :   {
      81           0 :     return NS_OK;
      82             :   }
      83           0 :   virtual nsresult UnsetAttr(int32_t aNameSpaceID, nsIAtom* aAttribute,
      84             :                              bool aNotify) override
      85             :   {
      86           0 :     return NS_OK;
      87             :   }
      88           0 :   virtual const nsAttrName* GetAttrNameAt(uint32_t aIndex) const override
      89             :   {
      90           0 :     return nullptr;
      91             :   }
      92           0 :   virtual BorrowedAttrInfo GetAttrInfoAt(uint32_t aIndex) const override
      93             :   {
      94           0 :     return BorrowedAttrInfo(nullptr, nullptr);
      95             :   }
      96           0 :   virtual uint32_t GetAttrCount() const override
      97             :   {
      98           0 :     return 0;
      99             :   }
     100             : 
     101             :   virtual bool IsNodeOfType(uint32_t aFlags) const override;
     102             : 
     103           0 :   virtual nsIDOMNode* AsDOMNode() override { return this; }
     104             : 
     105           0 :   virtual nsresult BindToTree(nsIDocument* aDocument, nsIContent* aParent,
     106             :                               nsIContent* aBindingParent,
     107             :                               bool aCompileEventHandlers) override
     108             :   {
     109           0 :     NS_ASSERTION(false, "Trying to bind a fragment to a tree");
     110           0 :     return NS_ERROR_NOT_IMPLEMENTED;
     111             :   }
     112             : 
     113           0 :   virtual void UnbindFromTree(bool aDeep, bool aNullParent) override
     114             :   {
     115           0 :     NS_ASSERTION(false, "Trying to unbind a fragment from a tree");
     116           0 :     return;
     117             :   }
     118             : 
     119           0 :   virtual Element* GetNameSpaceElement() override
     120             :   {
     121           0 :     return nullptr;
     122             :   }
     123             : 
     124           0 :   nsIContent* GetHost() const
     125             :   {
     126           0 :     return mHost;
     127             :   }
     128             : 
     129           0 :   void SetHost(nsIContent* aHost)
     130             :   {
     131           0 :     mHost = aHost;
     132           0 :   }
     133             : 
     134             :   static already_AddRefed<DocumentFragment>
     135             :   Constructor(const GlobalObject& aGlobal, ErrorResult& aRv);
     136             : 
     137             : #ifdef DEBUG
     138             :   virtual void List(FILE* out, int32_t aIndent) const override;
     139             :   virtual void DumpContent(FILE* out, int32_t aIndent, bool aDumpAll) const override;
     140             : #endif
     141             : 
     142             : protected:
     143           0 :   virtual ~DocumentFragment()
     144           0 :   {
     145           0 :   }
     146             : 
     147             :   nsresult Clone(mozilla::dom::NodeInfo *aNodeInfo, nsINode **aResult,
     148             :                  bool aPreallocateChildren) const override;
     149             :   nsIContent* mHost; // Weak
     150             : };
     151             : 
     152             : } // namespace dom
     153             : } // namespace mozilla
     154             : 
     155             : 
     156             : #endif // mozilla_dom_DocumentFragment_h__

Generated by: LCOV version 1.13