1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3  * License, v. 2.0. If a copy of the MPL was not distributed with this
4  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 
6 #ifndef HTMLURIRefObject_h
7 #define HTMLURIRefObject_h
8 
9 #include "nsCOMPtr.h"
10 #include "nsISupportsImpl.h"
11 #include "nsIURIRefObject.h"
12 #include "nscore.h"
13 
14 #define NS_URI_REF_OBJECT_CID                          \
15 { /* {bdd79df6-1dd1-11b2-b29c-c3d63a58f1d2} */         \
16     0xbdd79df6, 0x1dd1, 0x11b2,                        \
17     { 0xb2, 0x9c, 0xc3, 0xd6, 0x3a, 0x58, 0xf1, 0xd2 } \
18 }
19 
20 class nsIDOMMozNamedAttrMap;
21 class nsIDOMNode;
22 
23 namespace mozilla {
24 
25 class HTMLURIRefObject final : public nsIURIRefObject
26 {
27 public:
28   HTMLURIRefObject();
29 
30   // Interfaces for addref and release and queryinterface
31   NS_DECL_ISUPPORTS
32 
33   NS_DECL_NSIURIREFOBJECT
34 
35 protected:
36   virtual ~HTMLURIRefObject();
37 
38   nsCOMPtr<nsIDOMNode> mNode;
39   nsCOMPtr<nsIDOMMozNamedAttrMap> mAttributes;
40   uint32_t mCurAttrIndex;
41   uint32_t mAttributeCnt;
42 };
43 
44 } // namespace mozilla
45 
46 nsresult NS_NewHTMLURIRefObject(nsIURIRefObject** aResult, nsIDOMNode* aNode);
47 
48 #endif // #ifndef HTMLURIRefObject_h
49