| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999-2003 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999-2003 Lars Knoll (knoll@kde.org) |
| 3 * 1999 Waldo Bastian (bastian@kde.org) | 3 * 1999 Waldo Bastian (bastian@kde.org) |
| 4 * 2001 Andreas Schlapbach (schlpbch@iam.unibe.ch) | 4 * 2001 Andreas Schlapbach (schlpbch@iam.unibe.ch) |
| 5 * 2001-2003 Dirk Mueller (mueller@kde.org) | 5 * 2001-2003 Dirk Mueller (mueller@kde.org) |
| 6 * Copyright (C) 2002, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv
ed. | 6 * Copyright (C) 2002, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv
ed. |
| 7 * Copyright (C) 2008 David Smith (catfish.man@gmail.com) | 7 * Copyright (C) 2008 David Smith (catfish.man@gmail.com) |
| 8 * Copyright (C) 2010 Google Inc. All rights reserved. | 8 * Copyright (C) 2010 Google Inc. All rights reserved. |
| 9 * | 9 * |
| 10 * This library is free software; you can redistribute it and/or | 10 * This library is free software; you can redistribute it and/or |
| (...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 259 } | 259 } |
| 260 default: | 260 default: |
| 261 break; | 261 break; |
| 262 } | 262 } |
| 263 } else if (cs->m_match == CSSSelector::PseudoElement) { | 263 } else if (cs->m_match == CSSSelector::PseudoElement) { |
| 264 str.appendLiteral("::"); | 264 str.appendLiteral("::"); |
| 265 str.append(cs->value()); | 265 str.append(cs->value()); |
| 266 } else if (cs->isAttributeSelector()) { | 266 } else if (cs->isAttributeSelector()) { |
| 267 str.append('['); | 267 str.append('['); |
| 268 str.append(cs->attribute().localName()); | 268 str.append(cs->attribute().localName()); |
| 269 switch (cs->m_match) { | 269 if (cs->m_match == CSSSelector::Exact) |
| 270 case CSSSelector::Exact: | 270 str.append('='); |
| 271 str.append('='); | |
| 272 break; | |
| 273 case CSSSelector::Set: | |
| 274 // set has no operator or value, just the attrName | |
| 275 str.append(']'); | |
| 276 break; | |
| 277 case CSSSelector::List: | |
| 278 str.appendLiteral("~="); | |
| 279 break; | |
| 280 case CSSSelector::Hyphen: | |
| 281 str.appendLiteral("|="); | |
| 282 break; | |
| 283 case CSSSelector::Begin: | |
| 284 str.appendLiteral("^="); | |
| 285 break; | |
| 286 case CSSSelector::End: | |
| 287 str.appendLiteral("$="); | |
| 288 break; | |
| 289 case CSSSelector::Contain: | |
| 290 str.appendLiteral("*="); | |
| 291 break; | |
| 292 default: | |
| 293 break; | |
| 294 } | |
| 295 if (cs->m_match != CSSSelector::Set) { | 271 if (cs->m_match != CSSSelector::Set) { |
| 296 serializeString(cs->value(), str); | 272 serializeString(cs->value(), str); |
| 297 if (cs->attributeMatchType() == CaseInsensitive) | 273 if (cs->attributeMatchType() == CaseInsensitive) |
| 298 str.appendLiteral(" i"); | 274 str.appendLiteral(" i"); |
| 299 str.append(']'); | |
| 300 } | 275 } |
| 276 str.append(']'); |
| 301 } | 277 } |
| 302 if (!cs->tagHistory()) | 278 if (!cs->tagHistory()) |
| 303 break; | 279 break; |
| 304 cs = cs->tagHistory(); | 280 cs = cs->tagHistory(); |
| 305 } | 281 } |
| 306 | 282 |
| 307 return str.toString() + rightSide; | 283 return str.toString() + rightSide; |
| 308 } | 284 } |
| 309 | 285 |
| 310 void CSSSelector::setAttribute(const QualifiedName& value, AttributeMatchType ma
tchType) | 286 void CSSSelector::setAttribute(const QualifiedName& value, AttributeMatchType ma
tchType) |
| (...skipping 16 matching lines...) Expand all Loading... |
| 327 } | 303 } |
| 328 | 304 |
| 329 static bool validateSubSelector(const CSSSelector* selector) | 305 static bool validateSubSelector(const CSSSelector* selector) |
| 330 { | 306 { |
| 331 switch (selector->match()) { | 307 switch (selector->match()) { |
| 332 case CSSSelector::Tag: | 308 case CSSSelector::Tag: |
| 333 case CSSSelector::Id: | 309 case CSSSelector::Id: |
| 334 case CSSSelector::Class: | 310 case CSSSelector::Class: |
| 335 case CSSSelector::Exact: | 311 case CSSSelector::Exact: |
| 336 case CSSSelector::Set: | 312 case CSSSelector::Set: |
| 337 case CSSSelector::List: | |
| 338 case CSSSelector::Hyphen: | |
| 339 case CSSSelector::Contain: | |
| 340 case CSSSelector::Begin: | |
| 341 case CSSSelector::End: | |
| 342 return true; | 313 return true; |
| 343 case CSSSelector::PseudoElement: | 314 case CSSSelector::PseudoElement: |
| 344 case CSSSelector::Unknown: | 315 case CSSSelector::Unknown: |
| 345 return false; | 316 return false; |
| 346 case CSSSelector::PseudoClass: | 317 case CSSSelector::PseudoClass: |
| 347 break; | 318 break; |
| 348 } | 319 } |
| 349 | 320 |
| 350 switch (selector->pseudoType()) { | 321 switch (selector->pseudoType()) { |
| 351 case CSSSelector::PseudoHost: | 322 case CSSSelector::PseudoHost: |
| (...skipping 28 matching lines...) Expand all Loading... |
| 380 , m_attribute(anyName) | 351 , m_attribute(anyName) |
| 381 , m_argument(nullAtom) | 352 , m_argument(nullAtom) |
| 382 { | 353 { |
| 383 } | 354 } |
| 384 | 355 |
| 385 CSSSelector::RareData::~RareData() | 356 CSSSelector::RareData::~RareData() |
| 386 { | 357 { |
| 387 } | 358 } |
| 388 | 359 |
| 389 } // namespace blink | 360 } // namespace blink |
| OLD | NEW |