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 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
60 | 60 |
61 MediaQuerySet* MediaQuerySet::Create(const String& media_string) { | 61 MediaQuerySet* MediaQuerySet::Create(const String& media_string) { |
62 if (media_string.IsEmpty()) | 62 if (media_string.IsEmpty()) |
63 return MediaQuerySet::Create(); | 63 return MediaQuerySet::Create(); |
64 | 64 |
65 return MediaQueryParser::ParseMediaQuerySet(media_string); | 65 return MediaQueryParser::ParseMediaQuerySet(media_string); |
66 } | 66 } |
67 | 67 |
68 bool MediaQuerySet::Set(const String& media_string) { | 68 bool MediaQuerySet::Set(const String& media_string) { |
69 MediaQuerySet* result = Create(media_string); | 69 MediaQuerySet* result = Create(media_string); |
70 #if DCHECK_IS_ON() | 70 // TODO(keishi) Changed DCHECK to CHECK for crbug.com/699269 diagnosis |
71 for (const auto& query : result->queries_) { | 71 for (const auto& query : result->queries_) { |
72 DCHECK(query); | 72 CHECK(query); |
73 } | 73 } |
74 #endif | |
75 queries_.Swap(result->queries_); | 74 queries_.Swap(result->queries_); |
76 return true; | 75 return true; |
77 } | 76 } |
78 | 77 |
79 bool MediaQuerySet::Add(const String& query_string) { | 78 bool MediaQuerySet::Add(const String& query_string) { |
80 // To "parse a media query" for a given string means to follow "the parse | 79 // To "parse a media query" for a given string means to follow "the parse |
81 // a media query list" steps and return "null" if more than one media query | 80 // a media query list" steps and return "null" if more than one media query |
82 // is returned, or else the returned media query. | 81 // is returned, or else the returned media query. |
83 MediaQuerySet* result = Create(query_string); | 82 MediaQuerySet* result = Create(query_string); |
84 | 83 |
85 // Only continue if exactly one media query is found, as described above. | 84 // Only continue if exactly one media query is found, as described above. |
86 if (result->queries_.size() != 1) | 85 if (result->queries_.size() != 1) |
87 return true; | 86 return true; |
88 | 87 |
89 MediaQuery* new_query = result->queries_[0].Release(); | 88 MediaQuery* new_query = result->queries_[0].Release(); |
90 DCHECK(new_query); | 89 // TODO(keishi) Changed DCHECK to CHECK for crbug.com/699269 diagnosis |
| 90 CHECK(new_query); |
91 | 91 |
92 // If comparing with any of the media queries in the collection of media | 92 // If comparing with any of the media queries in the collection of media |
93 // queries returns true terminate these steps. | 93 // queries returns true terminate these steps. |
94 for (size_t i = 0; i < queries_.size(); ++i) { | 94 for (size_t i = 0; i < queries_.size(); ++i) { |
95 MediaQuery* query = queries_[i].Get(); | 95 MediaQuery* query = queries_[i].Get(); |
96 if (*query == *new_query) | 96 if (*query == *new_query) |
97 return true; | 97 return true; |
98 } | 98 } |
99 | 99 |
100 queries_.push_back(new_query); | 100 queries_.push_back(new_query); |
101 return true; | 101 return true; |
102 } | 102 } |
103 | 103 |
104 bool MediaQuerySet::Remove(const String& query_string_to_remove) { | 104 bool MediaQuerySet::Remove(const String& query_string_to_remove) { |
105 // To "parse a media query" for a given string means to follow "the parse | 105 // To "parse a media query" for a given string means to follow "the parse |
106 // a media query list" steps and return "null" if more than one media query | 106 // a media query list" steps and return "null" if more than one media query |
107 // is returned, or else the returned media query. | 107 // is returned, or else the returned media query. |
108 MediaQuerySet* result = Create(query_string_to_remove); | 108 MediaQuerySet* result = Create(query_string_to_remove); |
109 | 109 |
110 // Only continue if exactly one media query is found, as described above. | 110 // Only continue if exactly one media query is found, as described above. |
111 if (result->queries_.size() != 1) | 111 if (result->queries_.size() != 1) |
112 return true; | 112 return true; |
113 | 113 |
114 MediaQuery* new_query = result->queries_[0].Release(); | 114 MediaQuery* new_query = result->queries_[0].Release(); |
115 DCHECK(new_query); | 115 // TODO(keishi) Changed DCHECK to CHECK for crbug.com/699269 diagnosis |
| 116 CHECK(new_query); |
116 | 117 |
117 // Remove any media query from the collection of media queries for which | 118 // Remove any media query from the collection of media queries for which |
118 // comparing with the media query returns true. | 119 // comparing with the media query returns true. |
119 bool found = false; | 120 bool found = false; |
120 for (size_t i = 0; i < queries_.size(); ++i) { | 121 for (size_t i = 0; i < queries_.size(); ++i) { |
121 MediaQuery* query = queries_[i].Get(); | 122 MediaQuery* query = queries_[i].Get(); |
122 if (*query == *new_query) { | 123 if (*query == *new_query) { |
123 queries_.erase(i); | 124 queries_.erase(i); |
124 --i; | 125 --i; |
125 found = true; | 126 found = true; |
126 } | 127 } |
127 } | 128 } |
128 | 129 |
129 return found; | 130 return found; |
130 } | 131 } |
131 | 132 |
132 void MediaQuerySet::AddMediaQuery(MediaQuery* media_query) { | 133 void MediaQuerySet::AddMediaQuery(MediaQuery* media_query) { |
133 DCHECK(media_query); | 134 // TODO(keishi) Changed DCHECK to CHECK for crbug.com/699269 diagnosis |
| 135 CHECK(media_query); |
134 queries_.push_back(media_query); | 136 queries_.push_back(media_query); |
135 } | 137 } |
136 | 138 |
137 String MediaQuerySet::MediaText() const { | 139 String MediaQuerySet::MediaText() const { |
138 StringBuilder text; | 140 StringBuilder text; |
139 | 141 |
140 bool first = true; | 142 bool first = true; |
141 for (size_t i = 0; i < queries_.size(); ++i) { | 143 for (size_t i = 0; i < queries_.size(); ++i) { |
142 if (!first) | 144 if (!first) |
143 text.Append(", "); | 145 text.Append(", "); |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
202 kInvalidCharacterError, | 204 kInvalidCharacterError, |
203 "The value provided ('" + medium + "') is not a valid medium."); | 205 "The value provided ('" + medium + "') is not a valid medium."); |
204 return; | 206 return; |
205 } | 207 } |
206 | 208 |
207 if (parent_style_sheet_) | 209 if (parent_style_sheet_) |
208 parent_style_sheet_->DidMutate(); | 210 parent_style_sheet_->DidMutate(); |
209 } | 211 } |
210 | 212 |
211 void MediaList::Reattach(MediaQuerySet* media_queries) { | 213 void MediaList::Reattach(MediaQuerySet* media_queries) { |
212 DCHECK(media_queries); | 214 // TODO(keishi) Changed DCHECK to CHECK for crbug.com/699269 diagnosis |
213 #if DCHECK_IS_ON | 215 CHECK(media_queries); |
214 for (const auto& query : mediaQueries->queryVector) { | 216 for (const auto& query : media_queries->QueryVector()) { |
215 DCHECK(query); | 217 CHECK(query); |
216 } | 218 } |
217 #endif | |
218 media_queries_ = media_queries; | 219 media_queries_ = media_queries; |
219 } | 220 } |
220 | 221 |
221 DEFINE_TRACE(MediaList) { | 222 DEFINE_TRACE(MediaList) { |
222 visitor->Trace(media_queries_); | 223 visitor->Trace(media_queries_); |
223 visitor->Trace(parent_style_sheet_); | 224 visitor->Trace(parent_style_sheet_); |
224 visitor->Trace(parent_rule_); | 225 visitor->Trace(parent_rule_); |
225 } | 226 } |
226 | 227 |
227 } // namespace blink | 228 } // namespace blink |
OLD | NEW |