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 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
248 return NOPSEUDO; | 248 return NOPSEUDO; |
249 case PseudoNotParsed: | 249 case PseudoNotParsed: |
250 ASSERT_NOT_REACHED(); | 250 ASSERT_NOT_REACHED(); |
251 return NOPSEUDO; | 251 return NOPSEUDO; |
252 } | 252 } |
253 | 253 |
254 ASSERT_NOT_REACHED(); | 254 ASSERT_NOT_REACHED(); |
255 return NOPSEUDO; | 255 return NOPSEUDO; |
256 } | 256 } |
257 | 257 |
258 static HashMap<AtomicStringImpl*, CSSSelector::PseudoType>* nameToPseudoTypeMap(
) | 258 static HashMap<StringImpl*, CSSSelector::PseudoType>* nameToPseudoTypeMap() |
259 { | 259 { |
260 DEFINE_STATIC_LOCAL(AtomicString, active, ("active", AtomicString::Construct
FromLiteral)); | 260 DEFINE_STATIC_LOCAL(AtomicString, active, ("active", AtomicString::Construct
FromLiteral)); |
261 DEFINE_STATIC_LOCAL(AtomicString, after, ("after", AtomicString::ConstructFr
omLiteral)); | 261 DEFINE_STATIC_LOCAL(AtomicString, after, ("after", AtomicString::ConstructFr
omLiteral)); |
262 DEFINE_STATIC_LOCAL(AtomicString, any, ("-webkit-any(", AtomicString::Constr
uctFromLiteral)); | 262 DEFINE_STATIC_LOCAL(AtomicString, any, ("-webkit-any(", AtomicString::Constr
uctFromLiteral)); |
263 DEFINE_STATIC_LOCAL(AtomicString, anyLink, ("-webkit-any-link", AtomicString
::ConstructFromLiteral)); | 263 DEFINE_STATIC_LOCAL(AtomicString, anyLink, ("-webkit-any-link", AtomicString
::ConstructFromLiteral)); |
264 DEFINE_STATIC_LOCAL(AtomicString, autofill, ("-webkit-autofill", AtomicStrin
g::ConstructFromLiteral)); | 264 DEFINE_STATIC_LOCAL(AtomicString, autofill, ("-webkit-autofill", AtomicStrin
g::ConstructFromLiteral)); |
265 DEFINE_STATIC_LOCAL(AtomicString, before, ("before", AtomicString::Construct
FromLiteral)); | 265 DEFINE_STATIC_LOCAL(AtomicString, before, ("before", AtomicString::Construct
FromLiteral)); |
266 DEFINE_STATIC_LOCAL(AtomicString, checked, ("checked", AtomicString::Constru
ctFromLiteral)); | 266 DEFINE_STATIC_LOCAL(AtomicString, checked, ("checked", AtomicString::Constru
ctFromLiteral)); |
267 DEFINE_STATIC_LOCAL(AtomicString, defaultString, ("default", AtomicString::C
onstructFromLiteral)); | 267 DEFINE_STATIC_LOCAL(AtomicString, defaultString, ("default", AtomicString::C
onstructFromLiteral)); |
268 DEFINE_STATIC_LOCAL(AtomicString, disabled, ("disabled", AtomicString::Const
ructFromLiteral)); | 268 DEFINE_STATIC_LOCAL(AtomicString, disabled, ("disabled", AtomicString::Const
ructFromLiteral)); |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
327 DEFINE_STATIC_LOCAL(AtomicString, cue, ("cue(", AtomicString::ConstructFromL
iteral)); | 327 DEFINE_STATIC_LOCAL(AtomicString, cue, ("cue(", AtomicString::ConstructFromL
iteral)); |
328 DEFINE_STATIC_LOCAL(AtomicString, futureCue, ("future", AtomicString::Constr
uctFromLiteral)); | 328 DEFINE_STATIC_LOCAL(AtomicString, futureCue, ("future", AtomicString::Constr
uctFromLiteral)); |
329 DEFINE_STATIC_LOCAL(AtomicString, pastCue, ("past", AtomicString::ConstructF
romLiteral)); | 329 DEFINE_STATIC_LOCAL(AtomicString, pastCue, ("past", AtomicString::ConstructF
romLiteral)); |
330 DEFINE_STATIC_LOCAL(AtomicString, seamlessDocument, ("-webkit-seamless-docum
ent", AtomicString::ConstructFromLiteral)); | 330 DEFINE_STATIC_LOCAL(AtomicString, seamlessDocument, ("-webkit-seamless-docum
ent", AtomicString::ConstructFromLiteral)); |
331 DEFINE_STATIC_LOCAL(AtomicString, distributed, ("-webkit-distributed(", Atom
icString::ConstructFromLiteral)); | 331 DEFINE_STATIC_LOCAL(AtomicString, distributed, ("-webkit-distributed(", Atom
icString::ConstructFromLiteral)); |
332 DEFINE_STATIC_LOCAL(AtomicString, inRange, ("in-range", AtomicString::Constr
uctFromLiteral)); | 332 DEFINE_STATIC_LOCAL(AtomicString, inRange, ("in-range", AtomicString::Constr
uctFromLiteral)); |
333 DEFINE_STATIC_LOCAL(AtomicString, outOfRange, ("out-of-range", AtomicString:
:ConstructFromLiteral)); | 333 DEFINE_STATIC_LOCAL(AtomicString, outOfRange, ("out-of-range", AtomicString:
:ConstructFromLiteral)); |
334 DEFINE_STATIC_LOCAL(AtomicString, scope, ("scope", AtomicString::ConstructFr
omLiteral)); | 334 DEFINE_STATIC_LOCAL(AtomicString, scope, ("scope", AtomicString::ConstructFr
omLiteral)); |
335 DEFINE_STATIC_LOCAL(AtomicString, unresolved, ("unresolved", AtomicString::C
onstructFromLiteral)); | 335 DEFINE_STATIC_LOCAL(AtomicString, unresolved, ("unresolved", AtomicString::C
onstructFromLiteral)); |
336 | 336 |
337 static HashMap<AtomicStringImpl*, CSSSelector::PseudoType>* nameToPseudoType
= 0; | 337 static HashMap<StringImpl*, CSSSelector::PseudoType>* nameToPseudoType = 0; |
338 if (!nameToPseudoType) { | 338 if (!nameToPseudoType) { |
339 nameToPseudoType = new HashMap<AtomicStringImpl*, CSSSelector::PseudoTyp
e>; | 339 nameToPseudoType = new HashMap<StringImpl*, CSSSelector::PseudoType>; |
340 nameToPseudoType->set(active.impl(), CSSSelector::PseudoActive); | 340 nameToPseudoType->set(active.impl(), CSSSelector::PseudoActive); |
341 nameToPseudoType->set(after.impl(), CSSSelector::PseudoAfter); | 341 nameToPseudoType->set(after.impl(), CSSSelector::PseudoAfter); |
342 nameToPseudoType->set(anyLink.impl(), CSSSelector::PseudoAnyLink); | 342 nameToPseudoType->set(anyLink.impl(), CSSSelector::PseudoAnyLink); |
343 nameToPseudoType->set(any.impl(), CSSSelector::PseudoAny); | 343 nameToPseudoType->set(any.impl(), CSSSelector::PseudoAny); |
344 nameToPseudoType->set(autofill.impl(), CSSSelector::PseudoAutofill); | 344 nameToPseudoType->set(autofill.impl(), CSSSelector::PseudoAutofill); |
345 nameToPseudoType->set(before.impl(), CSSSelector::PseudoBefore); | 345 nameToPseudoType->set(before.impl(), CSSSelector::PseudoBefore); |
346 nameToPseudoType->set(checked.impl(), CSSSelector::PseudoChecked); | 346 nameToPseudoType->set(checked.impl(), CSSSelector::PseudoChecked); |
347 nameToPseudoType->set(defaultString.impl(), CSSSelector::PseudoDefault); | 347 nameToPseudoType->set(defaultString.impl(), CSSSelector::PseudoDefault); |
348 nameToPseudoType->set(disabled.impl(), CSSSelector::PseudoDisabled); | 348 nameToPseudoType->set(disabled.impl(), CSSSelector::PseudoDisabled); |
349 nameToPseudoType->set(readOnly.impl(), CSSSelector::PseudoReadOnly); | 349 nameToPseudoType->set(readOnly.impl(), CSSSelector::PseudoReadOnly); |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
414 if (RuntimeEnabledFeatures::customDOMElementsEnabled()) | 414 if (RuntimeEnabledFeatures::customDOMElementsEnabled()) |
415 nameToPseudoType->set(unresolved.impl(), CSSSelector::PseudoUnresolv
ed); | 415 nameToPseudoType->set(unresolved.impl(), CSSSelector::PseudoUnresolv
ed); |
416 } | 416 } |
417 return nameToPseudoType; | 417 return nameToPseudoType; |
418 } | 418 } |
419 | 419 |
420 CSSSelector::PseudoType CSSSelector::parsePseudoType(const AtomicString& name) | 420 CSSSelector::PseudoType CSSSelector::parsePseudoType(const AtomicString& name) |
421 { | 421 { |
422 if (name.isNull()) | 422 if (name.isNull()) |
423 return PseudoUnknown; | 423 return PseudoUnknown; |
424 HashMap<AtomicStringImpl*, CSSSelector::PseudoType>* nameToPseudoType = name
ToPseudoTypeMap(); | 424 HashMap<StringImpl*, CSSSelector::PseudoType>* nameToPseudoType = nameToPseu
doTypeMap(); |
425 HashMap<AtomicStringImpl*, CSSSelector::PseudoType>::iterator slot = nameToP
seudoType->find(name.impl()); | 425 HashMap<StringImpl*, CSSSelector::PseudoType>::iterator slot = nameToPseudoT
ype->find(name.impl()); |
426 | 426 |
427 if (slot != nameToPseudoType->end()) | 427 if (slot != nameToPseudoType->end()) |
428 return slot->value; | 428 return slot->value; |
429 | 429 |
430 if (name.startsWith("-webkit-")) | 430 if (name.startsWith("-webkit-")) |
431 return PseudoWebKitCustomElement; | 431 return PseudoWebKitCustomElement; |
432 if (name.startsWith("x-") || name.startsWith("cue")) | 432 if (name.startsWith("x-") || name.startsWith("cue")) |
433 return PseudoUserAgentCustomElement; | 433 return PseudoUserAgentCustomElement; |
434 | 434 |
435 return PseudoUnknown; | 435 return PseudoUnknown; |
(...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
725 m_parsedNth = m_data.m_rareData->parseNth(); | 725 m_parsedNth = m_data.m_rareData->parseNth(); |
726 return m_parsedNth; | 726 return m_parsedNth; |
727 } | 727 } |
728 | 728 |
729 bool CSSSelector::matchNth(int count) const | 729 bool CSSSelector::matchNth(int count) const |
730 { | 730 { |
731 ASSERT(m_hasRareData); | 731 ASSERT(m_hasRareData); |
732 return m_data.m_rareData->matchNth(count); | 732 return m_data.m_rareData->matchNth(count); |
733 } | 733 } |
734 | 734 |
735 CSSSelector::RareData::RareData(PassRefPtr<AtomicStringImpl> value) | 735 CSSSelector::RareData::RareData(PassRefPtr<StringImpl> value) |
736 : m_value(value.leakRef()) | 736 : m_value(value.leakRef()) |
737 , m_a(0) | 737 , m_a(0) |
738 , m_b(0) | 738 , m_b(0) |
739 , m_attribute(anyQName()) | 739 , m_attribute(anyQName()) |
740 , m_argument(nullAtom) | 740 , m_argument(nullAtom) |
741 { | 741 { |
742 } | 742 } |
743 | 743 |
744 CSSSelector::RareData::~RareData() | 744 CSSSelector::RareData::~RareData() |
745 { | 745 { |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
800 return false; | 800 return false; |
801 return (count - m_b) % m_a == 0; | 801 return (count - m_b) % m_a == 0; |
802 } else { | 802 } else { |
803 if (count > m_b) | 803 if (count > m_b) |
804 return false; | 804 return false; |
805 return (m_b - count) % (-m_a) == 0; | 805 return (m_b - count) % (-m_a) == 0; |
806 } | 806 } |
807 } | 807 } |
808 | 808 |
809 } // namespace WebCore | 809 } // namespace WebCore |
OLD | NEW |