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_AnonymousContent_h
8 : #define mozilla_dom_AnonymousContent_h
9 :
10 : #include "mozilla/dom/Element.h"
11 : #include "nsCycleCollectionParticipant.h"
12 : #include "nsICSSDeclaration.h"
13 : #include "nsIDocument.h"
14 :
15 : namespace mozilla {
16 : namespace dom {
17 :
18 : class Element;
19 : class UnrestrictedDoubleOrAnonymousKeyframeAnimationOptions;
20 :
21 : class AnonymousContent final
22 : {
23 : public:
24 : // Ref counting and cycle collection
25 0 : NS_INLINE_DECL_CYCLE_COLLECTING_NATIVE_REFCOUNTING(AnonymousContent)
26 0 : NS_DECL_CYCLE_COLLECTION_NATIVE_CLASS(AnonymousContent)
27 :
28 : explicit AnonymousContent(Element* aContentNode);
29 : Element* GetContentNode();
30 : Element* GetElementById(const nsAString& aElementId);
31 : void SetContentNode(Element* aContentNode);
32 : bool WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto, JS::MutableHandle<JSObject*> aReflector);
33 :
34 : // WebIDL methods
35 : void SetTextContentForElement(const nsAString& aElementId,
36 : const nsAString& aText,
37 : ErrorResult& aRv);
38 :
39 : void GetTextContentForElement(const nsAString& aElementId,
40 : DOMString& aText,
41 : ErrorResult& aRv);
42 :
43 : void SetAttributeForElement(const nsAString& aElementId,
44 : const nsAString& aName,
45 : const nsAString& aValue,
46 : ErrorResult& aRv);
47 :
48 : void GetAttributeForElement(const nsAString& aElementId,
49 : const nsAString& aName,
50 : DOMString& aValue,
51 : ErrorResult& aRv);
52 :
53 : void RemoveAttributeForElement(const nsAString& aElementId,
54 : const nsAString& aName,
55 : ErrorResult& aRv);
56 :
57 : already_AddRefed<nsISupports> GetCanvasContext(const nsAString& aElementId,
58 : const nsAString& aContextId,
59 : ErrorResult& aRv);
60 :
61 : already_AddRefed<Animation> SetAnimationForElement(JSContext* aContext,
62 : const nsAString& aElementId,
63 : JS::Handle<JSObject*> aKeyframes,
64 : const UnrestrictedDoubleOrKeyframeAnimationOptions& aOptions,
65 : ErrorResult& aError);
66 :
67 : void SetCutoutRectsForElement(const nsAString& aElementId,
68 : const Sequence<OwningNonNull<DOMRect>>& aRects,
69 : ErrorResult& aError);
70 :
71 : void GetComputedStylePropertyValue(const nsAString& aElementId,
72 : const nsAString& aPropertyName,
73 : DOMString& aResult,
74 : ErrorResult& aRv);
75 :
76 : private:
77 : ~AnonymousContent();
78 : nsCOMPtr<Element> mContentNode;
79 : };
80 :
81 : } // namespace dom
82 : } // namespace mozilla
83 :
84 : #endif // mozilla_dom_AnonymousContent_h
|