OLD | NEW |
1 /* | 1 /* |
2 * (C) 1999-2003 Lars Knoll (knoll@kde.org) | 2 * (C) 1999-2003 Lars Knoll (knoll@kde.org) |
3 * Copyright (C) 2004, 2006, 2010, 2012 Apple Inc. All rights reserved. | 3 * Copyright (C) 2004, 2006, 2010, 2012 Apple Inc. All rights reserved. |
4 * | 4 * |
5 * This library is free software; you can redistribute it and/or | 5 * This library is free software; you can redistribute it and/or |
6 * modify it under the terms of the GNU Library General Public | 6 * modify it under the terms of the GNU Library General Public |
7 * License as published by the Free Software Foundation; either | 7 * License as published by the Free Software Foundation; either |
8 * version 2 of the License, or (at your option) any later version. | 8 * version 2 of the License, or (at your option) any later version. |
9 * | 9 * |
10 * This library is distributed in the hope that it will be useful, | 10 * This library is distributed in the hope that it will be useful, |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
52 { | 52 { |
53 } | 53 } |
54 | 54 |
55 MediaQuerySet::MediaQuerySet(const MediaQuerySet& o) | 55 MediaQuerySet::MediaQuerySet(const MediaQuerySet& o) |
56 : m_queries(o.m_queries.size()) | 56 : m_queries(o.m_queries.size()) |
57 { | 57 { |
58 for (unsigned i = 0; i < m_queries.size(); ++i) | 58 for (unsigned i = 0; i < m_queries.size(); ++i) |
59 m_queries[i] = o.m_queries[i]->copy(); | 59 m_queries[i] = o.m_queries[i]->copy(); |
60 } | 60 } |
61 | 61 |
62 RawPtr<MediaQuerySet> MediaQuerySet::create(const String& mediaString) | 62 MediaQuerySet* MediaQuerySet::create(const String& mediaString) |
63 { | 63 { |
64 if (mediaString.isEmpty()) | 64 if (mediaString.isEmpty()) |
65 return MediaQuerySet::create(); | 65 return MediaQuerySet::create(); |
66 | 66 |
67 return MediaQueryParser::parseMediaQuerySet(mediaString); | 67 return MediaQueryParser::parseMediaQuerySet(mediaString); |
68 } | 68 } |
69 | 69 |
70 RawPtr<MediaQuerySet> MediaQuerySet::createOffMainThread(const String& mediaStri
ng) | 70 MediaQuerySet* MediaQuerySet::createOffMainThread(const String& mediaString) |
71 { | 71 { |
72 if (mediaString.isEmpty()) | 72 if (mediaString.isEmpty()) |
73 return MediaQuerySet::create(); | 73 return MediaQuerySet::create(); |
74 | 74 |
75 return MediaQueryParser::parseMediaQuerySet(mediaString); | 75 return MediaQueryParser::parseMediaQuerySet(mediaString); |
76 } | 76 } |
77 | 77 |
78 bool MediaQuerySet::set(const String& mediaString) | 78 bool MediaQuerySet::set(const String& mediaString) |
79 { | 79 { |
80 RawPtr<MediaQuerySet> result = create(mediaString); | 80 MediaQuerySet* result = create(mediaString); |
81 m_queries.swap(result->m_queries); | 81 m_queries.swap(result->m_queries); |
82 return true; | 82 return true; |
83 } | 83 } |
84 | 84 |
85 bool MediaQuerySet::add(const String& queryString) | 85 bool MediaQuerySet::add(const String& queryString) |
86 { | 86 { |
87 // To "parse a media query" for a given string means to follow "the parse | 87 // To "parse a media query" for a given string means to follow "the parse |
88 // a media query list" steps and return "null" if more than one media query | 88 // a media query list" steps and return "null" if more than one media query |
89 // is returned, or else the returned media query. | 89 // is returned, or else the returned media query. |
90 RawPtr<MediaQuerySet> result = create(queryString); | 90 MediaQuerySet* result = create(queryString); |
91 | 91 |
92 // Only continue if exactly one media query is found, as described above. | 92 // Only continue if exactly one media query is found, as described above. |
93 if (result->m_queries.size() != 1) | 93 if (result->m_queries.size() != 1) |
94 return true; | 94 return true; |
95 | 95 |
96 RawPtr<MediaQuery> newQuery = result->m_queries[0].release(); | 96 MediaQuery* newQuery = result->m_queries[0].release(); |
97 ASSERT(newQuery); | 97 ASSERT(newQuery); |
98 | 98 |
99 // If comparing with any of the media queries in the collection of media | 99 // If comparing with any of the media queries in the collection of media |
100 // queries returns true terminate these steps. | 100 // queries returns true terminate these steps. |
101 for (size_t i = 0; i < m_queries.size(); ++i) { | 101 for (size_t i = 0; i < m_queries.size(); ++i) { |
102 MediaQuery* query = m_queries[i].get(); | 102 MediaQuery* query = m_queries[i].get(); |
103 if (*query == *newQuery) | 103 if (*query == *newQuery) |
104 return true; | 104 return true; |
105 } | 105 } |
106 | 106 |
107 m_queries.append(newQuery.release()); | 107 m_queries.append(newQuery); |
108 return true; | 108 return true; |
109 } | 109 } |
110 | 110 |
111 bool MediaQuerySet::remove(const String& queryStringToRemove) | 111 bool MediaQuerySet::remove(const String& queryStringToRemove) |
112 { | 112 { |
113 // To "parse a media query" for a given string means to follow "the parse | 113 // To "parse a media query" for a given string means to follow "the parse |
114 // a media query list" steps and return "null" if more than one media query | 114 // a media query list" steps and return "null" if more than one media query |
115 // is returned, or else the returned media query. | 115 // is returned, or else the returned media query. |
116 RawPtr<MediaQuerySet> result = create(queryStringToRemove); | 116 MediaQuerySet* result = create(queryStringToRemove); |
117 | 117 |
118 // Only continue if exactly one media query is found, as described above. | 118 // Only continue if exactly one media query is found, as described above. |
119 if (result->m_queries.size() != 1) | 119 if (result->m_queries.size() != 1) |
120 return true; | 120 return true; |
121 | 121 |
122 RawPtr<MediaQuery> newQuery = result->m_queries[0].release(); | 122 MediaQuery* newQuery = result->m_queries[0].release(); |
123 ASSERT(newQuery); | 123 ASSERT(newQuery); |
124 | 124 |
125 // Remove any media query from the collection of media queries for which | 125 // Remove any media query from the collection of media queries for which |
126 // comparing with the media query returns true. | 126 // comparing with the media query returns true. |
127 bool found = false; | 127 bool found = false; |
128 for (size_t i = 0; i < m_queries.size(); ++i) { | 128 for (size_t i = 0; i < m_queries.size(); ++i) { |
129 MediaQuery* query = m_queries[i].get(); | 129 MediaQuery* query = m_queries[i].get(); |
130 if (*query == *newQuery) { | 130 if (*query == *newQuery) { |
131 m_queries.remove(i); | 131 m_queries.remove(i); |
132 --i; | 132 --i; |
133 found = true; | 133 found = true; |
134 } | 134 } |
135 } | 135 } |
136 | 136 |
137 return found; | 137 return found; |
138 } | 138 } |
139 | 139 |
140 void MediaQuerySet::addMediaQuery(RawPtr<MediaQuery> mediaQuery) | 140 void MediaQuerySet::addMediaQuery(MediaQuery* mediaQuery) |
141 { | 141 { |
142 m_queries.append(mediaQuery); | 142 m_queries.append(mediaQuery); |
143 } | 143 } |
144 | 144 |
145 String MediaQuerySet::mediaText() const | 145 String MediaQuerySet::mediaText() const |
146 { | 146 { |
147 StringBuilder text; | 147 StringBuilder text; |
148 | 148 |
149 bool first = true; | 149 bool first = true; |
150 for (size_t i = 0; i < m_queries.size(); ++i) { | 150 for (size_t i = 0; i < m_queries.size(); ++i) { |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
230 } | 230 } |
231 | 231 |
232 DEFINE_TRACE(MediaList) | 232 DEFINE_TRACE(MediaList) |
233 { | 233 { |
234 visitor->trace(m_mediaQueries); | 234 visitor->trace(m_mediaQueries); |
235 visitor->trace(m_parentStyleSheet); | 235 visitor->trace(m_parentStyleSheet); |
236 visitor->trace(m_parentRule); | 236 visitor->trace(m_parentRule); |
237 } | 237 } |
238 | 238 |
239 } // namespace blink | 239 } // namespace blink |
OLD | NEW |