| 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 |