OLD | NEW |
1 /* | 1 /* |
2 * CSS Media Query | 2 * CSS Media Query |
3 * | 3 * |
4 * Copyright (C) 2006 Kimmo Kinnunen <kimmo.t.kinnunen@nokia.com>. | 4 * Copyright (C) 2006 Kimmo Kinnunen <kimmo.t.kinnunen@nokia.com>. |
5 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). | 5 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). |
6 * | 6 * |
7 * Redistribution and use in source and binary forms, with or without | 7 * Redistribution and use in source and binary forms, with or without |
8 * modification, are permitted provided that the following conditions | 8 * modification, are permitted provided that the following conditions |
9 * are met: | 9 * are met: |
10 * 1. Redistributions of source code must retain the above copyright | 10 * 1. Redistributions of source code must retain the above copyright |
(...skipping 21 matching lines...) Expand all Loading... |
32 #include "core/CoreExport.h" | 32 #include "core/CoreExport.h" |
33 #include "platform/heap/Handle.h" | 33 #include "platform/heap/Handle.h" |
34 #include "wtf/Vector.h" | 34 #include "wtf/Vector.h" |
35 #include "wtf/text/StringHash.h" | 35 #include "wtf/text/StringHash.h" |
36 #include "wtf/text/WTFString.h" | 36 #include "wtf/text/WTFString.h" |
37 #include <utility> | 37 #include <utility> |
38 | 38 |
39 namespace blink { | 39 namespace blink { |
40 class MediaQueryExp; | 40 class MediaQueryExp; |
41 | 41 |
42 using ExpressionHeapVector = HeapVector<Member<MediaQueryExp>>; | 42 using ExpressionHeapVector = Vector<MediaQueryExp>; |
43 | 43 |
44 class CORE_EXPORT MediaQuery : public GarbageCollectedFinalized<MediaQuery> { | 44 class CORE_EXPORT MediaQuery { |
45 public: | 45 public: |
46 enum RestrictorType { Only, Not, None }; | 46 enum RestrictorType { Only, Not, None }; |
47 | 47 |
48 static MediaQuery* create(RestrictorType, | 48 static std::unique_ptr<MediaQuery> create(RestrictorType, |
49 String mediaType, | 49 String mediaType, |
50 ExpressionHeapVector); | 50 ExpressionHeapVector); |
51 static MediaQuery* createNotAll(); | 51 static std::unique_ptr<MediaQuery> createNotAll(); |
52 | 52 |
| 53 MediaQuery(RestrictorType, String media_type, ExpressionHeapVector); |
| 54 MediaQuery(const MediaQuery&); |
53 ~MediaQuery(); | 55 ~MediaQuery(); |
54 | 56 |
55 RestrictorType restrictor() const { return m_restrictor; } | 57 RestrictorType restrictor() const { return m_restrictor; } |
56 const ExpressionHeapVector& expressions() const { return m_expressions; } | 58 const ExpressionHeapVector& expressions() const { return m_expressions; } |
57 const String& mediaType() const { return m_mediaType; } | 59 const String& mediaType() const { return m_mediaType; } |
58 bool operator==(const MediaQuery& other) const; | 60 bool operator==(const MediaQuery& other) const; |
59 String cssText() const; | 61 String cssText() const; |
60 | 62 |
61 MediaQuery* copy() const { return new MediaQuery(*this); } | 63 std::unique_ptr<MediaQuery> copy() const { |
| 64 return WTF::makeUnique<MediaQuery>(*this); |
| 65 } |
62 | 66 |
63 DECLARE_TRACE(); | 67 DECLARE_TRACE(); |
64 | 68 |
65 private: | 69 private: |
66 MediaQuery(RestrictorType, String mediaType, ExpressionHeapVector); | |
67 MediaQuery(const MediaQuery&); | |
68 | |
69 MediaQuery& operator=(const MediaQuery&) = delete; | 70 MediaQuery& operator=(const MediaQuery&) = delete; |
70 | 71 |
71 RestrictorType m_restrictor; | 72 RestrictorType m_restrictor; |
72 String m_mediaType; | 73 String m_mediaType; |
73 ExpressionHeapVector m_expressions; | 74 ExpressionHeapVector m_expressions; |
74 String m_serializationCache; | 75 String m_serializationCache; |
75 | 76 |
76 String serialize() const; | 77 String serialize() const; |
77 }; | 78 }; |
78 | 79 |
79 } // namespace blink | 80 } // namespace blink |
80 | 81 |
81 #endif | 82 #endif |
OLD | NEW |