LCOV - code coverage report
Current view: top level - dom/html - HTMLLinkElement.h (source / functions) Hit Total Coverage
Test: output.info Lines: 0 54 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 22 0.0 %
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_HTMLLinkElement_h
       8             : #define mozilla_dom_HTMLLinkElement_h
       9             : 
      10             : #include "mozilla/Attributes.h"
      11             : #include "mozilla/dom/Link.h"
      12             : #include "nsGenericHTMLElement.h"
      13             : #include "nsIDOMHTMLLinkElement.h"
      14             : #include "nsStyleLinkElement.h"
      15             : 
      16             : namespace mozilla {
      17             : class EventChainPostVisitor;
      18             : class EventChainPreVisitor;
      19             : namespace dom {
      20             : 
      21             : class HTMLLinkElement final : public nsGenericHTMLElement,
      22             :                               public nsIDOMHTMLLinkElement,
      23             :                               public nsStyleLinkElement,
      24             :                               public Link
      25             : {
      26             : public:
      27             :   explicit HTMLLinkElement(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo);
      28             : 
      29             :   // nsISupports
      30             :   NS_DECL_ISUPPORTS_INHERITED
      31             : 
      32             :   // CC
      33           0 :   NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(HTMLLinkElement,
      34             :                                            nsGenericHTMLElement)
      35             : 
      36             :   // nsIDOMHTMLLinkElement
      37             :   NS_DECL_NSIDOMHTMLLINKELEMENT
      38             : 
      39             :   // DOM memory reporter participant
      40             :   NS_DECL_SIZEOF_EXCLUDING_THIS
      41             : 
      42             :   void LinkAdded();
      43             :   void LinkRemoved();
      44             : 
      45             :   // nsIDOMEventTarget
      46             :   virtual nsresult GetEventTargetParent(
      47             :                      EventChainPreVisitor& aVisitor) override;
      48             :   virtual nsresult PostHandleEvent(
      49             :                      EventChainPostVisitor& aVisitor) override;
      50             : 
      51             :   // nsINode
      52             :   virtual nsresult Clone(mozilla::dom::NodeInfo* aNodeInfo, nsINode** aResult,
      53             :                          bool aPreallocateChildren) const override;
      54             :   virtual JSObject* WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override;
      55             : 
      56             :   // nsIContent
      57             :   virtual nsresult BindToTree(nsIDocument* aDocument, nsIContent* aParent,
      58             :                               nsIContent* aBindingParent,
      59             :                               bool aCompileEventHandlers) override;
      60             :   virtual void UnbindFromTree(bool aDeep = true,
      61             :                               bool aNullParent = true) override;
      62             :   virtual nsresult BeforeSetAttr(int32_t aNameSpaceID, nsIAtom* aName,
      63             :                                  const nsAttrValueOrString* aValue,
      64             :                                  bool aNotify) override;
      65             :   virtual nsresult AfterSetAttr(int32_t aNameSpaceID, nsIAtom* aName,
      66             :                                 const nsAttrValue* aValue,
      67             :                                 const nsAttrValue* aOldValue,
      68             :                                 bool aNotify) override;
      69             :   virtual bool IsLink(nsIURI** aURI) const override;
      70             :   virtual already_AddRefed<nsIURI> GetHrefURI() const override;
      71             : 
      72             :   // Element
      73             :   virtual bool ParseAttribute(int32_t aNamespaceID,
      74             :                               nsIAtom* aAttribute,
      75             :                               const nsAString& aValue,
      76             :                               nsAttrValue& aResult) override;
      77             :   virtual void GetLinkTarget(nsAString& aTarget) override;
      78             :   virtual EventStates IntrinsicState() const override;
      79             : 
      80             :   void CreateAndDispatchEvent(nsIDocument* aDoc, const nsAString& aEventName);
      81             : 
      82             :   virtual void OnDNSPrefetchDeferred() override;
      83             :   virtual void OnDNSPrefetchRequested() override;
      84             :   virtual bool HasDeferredDNSPrefetchRequest() override;
      85             : 
      86             :   // WebIDL
      87             :   bool Disabled();
      88             :   void SetDisabled(bool aDisabled);
      89             :   // XPCOM GetHref is fine.
      90           0 :   void SetHref(const nsAString& aHref, ErrorResult& aRv)
      91             :   {
      92           0 :     SetHTMLAttr(nsGkAtoms::href, aHref, aRv);
      93           0 :   }
      94           0 :   void GetCrossOrigin(nsAString& aResult)
      95             :   {
      96             :     // Null for both missing and invalid defaults is ok, since we
      97             :     // always parse to an enum value, so we don't need an invalid
      98             :     // default, and we _want_ the missing default to be null.
      99           0 :     GetEnumAttr(nsGkAtoms::crossorigin, nullptr, aResult);
     100           0 :   }
     101           0 :   void SetCrossOrigin(const nsAString& aCrossOrigin, ErrorResult& aError)
     102             :   {
     103           0 :     SetOrRemoveNullableStringAttr(nsGkAtoms::crossorigin, aCrossOrigin, aError);
     104           0 :   }
     105             :   // XPCOM GetRel is fine.
     106           0 :   void SetRel(const nsAString& aRel, ErrorResult& aRv)
     107             :   {
     108           0 :     SetHTMLAttr(nsGkAtoms::rel, aRel, aRv);
     109           0 :   }
     110             :   nsDOMTokenList* RelList();
     111             :   // XPCOM GetMedia is fine.
     112           0 :   void SetMedia(const nsAString& aMedia, ErrorResult& aRv)
     113             :   {
     114           0 :     SetHTMLAttr(nsGkAtoms::media, aMedia, aRv);
     115           0 :   }
     116             :   // XPCOM GetHreflang is fine.
     117           0 :   void SetHreflang(const nsAString& aHreflang, ErrorResult& aRv)
     118             :   {
     119           0 :     SetHTMLAttr(nsGkAtoms::hreflang, aHreflang, aRv);
     120           0 :   }
     121             :   void GetAs(nsAString& aResult);
     122           0 :   void SetAs(const nsAString& aAs, ErrorResult& aRv)
     123             :   {
     124           0 :     SetAttr(nsGkAtoms::as ,aAs, aRv);
     125           0 :   }
     126           0 :   nsDOMTokenList* Sizes()
     127             :   {
     128           0 :     return GetTokenList(nsGkAtoms::sizes);
     129             :   }
     130             :   // XPCOM GetType is fine.
     131           0 :   void SetType(const nsAString& aType, ErrorResult& aRv)
     132             :   {
     133           0 :     SetHTMLAttr(nsGkAtoms::type, aType, aRv);
     134           0 :   }
     135             :   // XPCOM GetCharset is fine.
     136           0 :   void SetCharset(const nsAString& aCharset, ErrorResult& aRv)
     137             :   {
     138           0 :     SetHTMLAttr(nsGkAtoms::charset, aCharset, aRv);
     139           0 :   }
     140             :   // XPCOM GetRev is fine.
     141           0 :   void SetRev(const nsAString& aRev, ErrorResult& aRv)
     142             :   {
     143           0 :     SetHTMLAttr(nsGkAtoms::rev, aRev, aRv);
     144           0 :   }
     145             :   // XPCOM GetTarget is fine.
     146           0 :   void SetTarget(const nsAString& aTarget, ErrorResult& aRv)
     147             :   {
     148           0 :     SetHTMLAttr(nsGkAtoms::target, aTarget, aRv);
     149           0 :   }
     150           0 :   void GetIntegrity(nsAString& aIntegrity) const
     151             :   {
     152           0 :     GetHTMLAttr(nsGkAtoms::integrity, aIntegrity);
     153           0 :   }
     154           0 :   void SetIntegrity(const nsAString& aIntegrity, ErrorResult& aRv)
     155             :   {
     156           0 :     SetHTMLAttr(nsGkAtoms::integrity, aIntegrity, aRv);
     157           0 :   }
     158           0 :   void SetReferrerPolicy(const nsAString& aReferrer, ErrorResult& aError)
     159             :   {
     160           0 :     SetHTMLAttr(nsGkAtoms::referrerpolicy, aReferrer, aError);
     161           0 :   }
     162           0 :   void GetReferrerPolicy(nsAString& aReferrer)
     163             :   {
     164           0 :     GetEnumAttr(nsGkAtoms::referrerpolicy, EmptyCString().get(), aReferrer);
     165           0 :   }
     166           0 :   mozilla::net::ReferrerPolicy GetLinkReferrerPolicy() override
     167             :   {
     168           0 :     return GetReferrerPolicyAsEnum();
     169             :   }
     170             : 
     171             :   virtual CORSMode GetCORSMode() const override;
     172             : 
     173           0 :   virtual void NodeInfoChanged(nsIDocument* aOldDoc) final override
     174             :   {
     175           0 :     ClearHasPendingLinkUpdate();
     176           0 :     nsGenericHTMLElement::NodeInfoChanged(aOldDoc);
     177           0 :   }
     178             : 
     179             : protected:
     180             :   virtual ~HTMLLinkElement();
     181             : 
     182             :   // nsStyleLinkElement
     183             :   virtual already_AddRefed<nsIURI> GetStyleSheetURL(bool* aIsInline) override;
     184             :   virtual void GetStyleSheetInfo(nsAString& aTitle,
     185             :                                  nsAString& aType,
     186             :                                  nsAString& aMedia,
     187             :                                  bool* aIsScoped,
     188             :                                  bool* aIsAlternate) override;
     189             : protected:
     190             :   RefPtr<nsDOMTokenList> mRelList;
     191             : };
     192             : 
     193             : } // namespace dom
     194             : } // namespace mozilla
     195             : 
     196             : #endif // mozilla_dom_HTMLLinkElement_h

Generated by: LCOV version 1.13