| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com) | 3 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com) |
| 4 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com) | 4 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com) |
| 5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. | 5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. |
| 6 * All rights reserved. | 6 * All rights reserved. |
| 7 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> | 7 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> |
| 8 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> | 8 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> |
| 9 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. | 9 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. |
| 10 * (http://www.torchmobile.com/) | 10 * (http://www.torchmobile.com/) |
| (...skipping 541 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 552 element.synchronizeAttribute(selectorAttr.localName()); | 552 element.synchronizeAttribute(selectorAttr.localName()); |
| 553 | 553 |
| 554 const AtomicString& selectorValue = selector.value(); | 554 const AtomicString& selectorValue = selector.value(); |
| 555 TextCaseSensitivity caseSensitivity = | 555 TextCaseSensitivity caseSensitivity = |
| 556 (selector.attributeMatch() == CSSSelector::CaseInsensitive) | 556 (selector.attributeMatch() == CSSSelector::CaseInsensitive) |
| 557 ? TextCaseASCIIInsensitive | 557 ? TextCaseASCIIInsensitive |
| 558 : TextCaseSensitive; | 558 : TextCaseSensitive; |
| 559 | 559 |
| 560 AttributeCollection attributes = element.attributesWithoutUpdate(); | 560 AttributeCollection attributes = element.attributesWithoutUpdate(); |
| 561 for (const auto& attributeItem : attributes) { | 561 for (const auto& attributeItem : attributes) { |
| 562 if (!attributeItem.matches(selectorAttr)) | 562 if (!attributeItem.matches(selectorAttr)) { |
| 563 continue; | 563 if (element.isHTMLElement() || !element.document().isHTMLDocument()) |
| 564 continue; |
| 565 // Non-html attributes in html documents are normalized to their camel- |
| 566 // cased version during parsing if applicable. Yet, attribute selectors |
| 567 // are lower-cased for selectors in html documents. Compare the selector |
| 568 // and the attribute local name insensitively to e.g. allow matching SVG |
| 569 // attributes like viewBox. |
| 570 if (!attributeItem.matchesCaseInsensitive(selectorAttr)) |
| 571 continue; |
| 572 } |
| 564 | 573 |
| 565 if (attributeValueMatches(attributeItem, match, selectorValue, | 574 if (attributeValueMatches(attributeItem, match, selectorValue, |
| 566 caseSensitivity)) | 575 caseSensitivity)) |
| 567 return true; | 576 return true; |
| 568 | 577 |
| 569 if (caseSensitivity == TextCaseASCIIInsensitive) { | 578 if (caseSensitivity == TextCaseASCIIInsensitive) { |
| 570 if (selectorAttr.namespaceURI() != starAtom) | 579 if (selectorAttr.namespaceURI() != starAtom) |
| 571 return false; | 580 return false; |
| 572 continue; | 581 continue; |
| 573 } | 582 } |
| (...skipping 694 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1268 } | 1277 } |
| 1269 | 1278 |
| 1270 bool SelectorChecker::matchesFocusPseudoClass(const Element& element) { | 1279 bool SelectorChecker::matchesFocusPseudoClass(const Element& element) { |
| 1271 if (InspectorInstrumentation::forcePseudoState(const_cast<Element*>(&element), | 1280 if (InspectorInstrumentation::forcePseudoState(const_cast<Element*>(&element), |
| 1272 CSSSelector::PseudoFocus)) | 1281 CSSSelector::PseudoFocus)) |
| 1273 return true; | 1282 return true; |
| 1274 return element.isFocused() && isFrameFocused(element); | 1283 return element.isFocused() && isFrameFocused(element); |
| 1275 } | 1284 } |
| 1276 | 1285 |
| 1277 } // namespace blink | 1286 } // namespace blink |
| OLD | NEW |