OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CSSPaintValue_h | 5 #ifndef CSSPaintValue_h |
6 #define CSSPaintValue_h | 6 #define CSSPaintValue_h |
7 | 7 |
8 #include "core/css/CSSCustomIdentValue.h" | 8 #include "core/css/CSSCustomIdentValue.h" |
9 #include "core/css/CSSImageGeneratorValue.h" | 9 #include "core/css/CSSImageGeneratorValue.h" |
| 10 #include "core/css/CSSPaintImageGenerator.h" |
10 #include "platform/heap/Handle.h" | 11 #include "platform/heap/Handle.h" |
11 | 12 |
12 namespace blink { | 13 namespace blink { |
13 | 14 |
14 class CSSPaintValue : public CSSImageGeneratorValue { | 15 class CSSPaintValue : public CSSImageGeneratorValue { |
15 public: | 16 public: |
16 static CSSPaintValue* create(CSSCustomIdentValue* name) | 17 static CSSPaintValue* create(CSSCustomIdentValue* name) |
17 { | 18 { |
18 return new CSSPaintValue(name); | 19 return new CSSPaintValue(name); |
19 } | 20 } |
(...skipping 12 matching lines...) Expand all Loading... |
32 | 33 |
33 void loadSubimages(Document*) { } | 34 void loadSubimages(Document*) { } |
34 | 35 |
35 bool equals(const CSSPaintValue&) const; | 36 bool equals(const CSSPaintValue&) const; |
36 | 37 |
37 DECLARE_TRACE_AFTER_DISPATCH(); | 38 DECLARE_TRACE_AFTER_DISPATCH(); |
38 | 39 |
39 private: | 40 private: |
40 explicit CSSPaintValue(CSSCustomIdentValue* name); | 41 explicit CSSPaintValue(CSSCustomIdentValue* name); |
41 | 42 |
| 43 class Observer final : public CSSPaintImageGenerator::Observer { |
| 44 WTF_MAKE_NONCOPYABLE(Observer); |
| 45 public: |
| 46 explicit Observer(CSSPaintValue* ownerValue) |
| 47 : m_ownerValue(ownerValue) |
| 48 { |
| 49 } |
| 50 |
| 51 ~Observer() override { } |
| 52 DEFINE_INLINE_VIRTUAL_TRACE() |
| 53 { |
| 54 visitor->trace(m_ownerValue); |
| 55 CSSPaintImageGenerator::Observer::trace(visitor); |
| 56 } |
| 57 |
| 58 void paintImageGeneratorReady() final; |
| 59 private: |
| 60 Member<CSSPaintValue> m_ownerValue; |
| 61 }; |
| 62 |
| 63 void paintImageGeneratorReady(); |
| 64 |
42 Member<CSSCustomIdentValue> m_name; | 65 Member<CSSCustomIdentValue> m_name; |
| 66 Member<CSSPaintImageGenerator> m_generator; |
| 67 Member<Observer> m_paintImageGeneratorObserver; |
43 }; | 68 }; |
44 | 69 |
45 DEFINE_CSS_VALUE_TYPE_CASTS(CSSPaintValue, isPaintValue()); | 70 DEFINE_CSS_VALUE_TYPE_CASTS(CSSPaintValue, isPaintValue()); |
46 | 71 |
47 } // namespace blink | 72 } // namespace blink |
48 | 73 |
49 #endif // CSSPaintValue_h | 74 #endif // CSSPaintValue_h |
OLD | NEW |