| 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.
All rights reserved. | 5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc.
All rights reserved. |
| 6 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> | 6 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> |
| 7 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> | 7 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> |
| 8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) | 8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) |
| 9 * Copyright (c) 2011, Code Aurora Forum. All rights reserved. | 9 * Copyright (c) 2011, Code Aurora Forum. All rights reserved. |
| 10 * Copyright (C) Research In Motion Limited 2011. All rights reserved. | 10 * Copyright (C) Research In Motion Limited 2011. All rights reserved. |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 51 #include "core/html/parser/HTMLParserIdioms.h" | 51 #include "core/html/parser/HTMLParserIdioms.h" |
| 52 #include "core/html/track/vtt/VTTElement.h" | 52 #include "core/html/track/vtt/VTTElement.h" |
| 53 #include "core/inspector/InspectorInstrumentation.h" | 53 #include "core/inspector/InspectorInstrumentation.h" |
| 54 #include "core/layout/LayoutObject.h" | 54 #include "core/layout/LayoutObject.h" |
| 55 #include "core/layout/LayoutScrollbar.h" | 55 #include "core/layout/LayoutScrollbar.h" |
| 56 #include "core/page/FocusController.h" | 56 #include "core/page/FocusController.h" |
| 57 #include "core/page/Page.h" | 57 #include "core/page/Page.h" |
| 58 #include "core/style/ComputedStyle.h" | 58 #include "core/style/ComputedStyle.h" |
| 59 #include "platform/scroll/ScrollableArea.h" | 59 #include "platform/scroll/ScrollableArea.h" |
| 60 #include "platform/scroll/ScrollbarTheme.h" | 60 #include "platform/scroll/ScrollbarTheme.h" |
| 61 #include "wtf/AutoReset.h" |
| 61 | 62 |
| 62 namespace blink { | 63 namespace blink { |
| 63 | 64 |
| 64 using namespace HTMLNames; | 65 using namespace HTMLNames; |
| 65 | 66 |
| 66 static bool isFrameFocused(const Element& element) | 67 static bool isFrameFocused(const Element& element) |
| 67 { | 68 { |
| 68 return element.document().frame() && element.document().frame()->selection()
.isFocusedAndActive(); | 69 return element.document().frame() && element.document().frame()->selection()
.isFocusedAndActive(); |
| 69 } | 70 } |
| 70 | 71 |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 212 } | 213 } |
| 213 | 214 |
| 214 Match match; | 215 Match match; |
| 215 if (context.selector->relation() != CSSSelector::SubSelector) { | 216 if (context.selector->relation() != CSSSelector::SubSelector) { |
| 216 if (nextSelectorExceedsScope(context)) | 217 if (nextSelectorExceedsScope(context)) |
| 217 return SelectorFailsCompletely; | 218 return SelectorFailsCompletely; |
| 218 | 219 |
| 219 if (context.pseudoId != PseudoIdNone && context.pseudoId != result.dynam
icPseudo) | 220 if (context.pseudoId != PseudoIdNone && context.pseudoId != result.dynam
icPseudo) |
| 220 return SelectorFailsCompletely; | 221 return SelectorFailsCompletely; |
| 221 | 222 |
| 222 TemporaryChange<PseudoId> dynamicPseudoScope(result.dynamicPseudo, Pseud
oIdNone); | 223 AutoReset<PseudoId> dynamicPseudoScope(&result.dynamicPseudo, PseudoIdNo
ne); |
| 223 match = matchForRelation(context, result); | 224 match = matchForRelation(context, result); |
| 224 } else { | 225 } else { |
| 225 match = matchForSubSelector(context, result); | 226 match = matchForSubSelector(context, result); |
| 226 } | 227 } |
| 227 if (match == SelectorMatches) | 228 if (match == SelectorMatches) |
| 228 result.specificity += subResult.specificity; | 229 result.specificity += subResult.specificity; |
| 229 return match; | 230 return match; |
| 230 } | 231 } |
| 231 | 232 |
| 232 static inline SelectorChecker::SelectorCheckingContext prepareNextContextForRela
tion(const SelectorChecker::SelectorCheckingContext& context) | 233 static inline SelectorChecker::SelectorCheckingContext prepareNextContextForRela
tion(const SelectorChecker::SelectorCheckingContext& context) |
| (...skipping 910 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1143 } | 1144 } |
| 1144 | 1145 |
| 1145 bool SelectorChecker::matchesFocusPseudoClass(const Element& element) | 1146 bool SelectorChecker::matchesFocusPseudoClass(const Element& element) |
| 1146 { | 1147 { |
| 1147 if (InspectorInstrumentation::forcePseudoState(const_cast<Element*>(&element
), CSSSelector::PseudoFocus)) | 1148 if (InspectorInstrumentation::forcePseudoState(const_cast<Element*>(&element
), CSSSelector::PseudoFocus)) |
| 1148 return true; | 1149 return true; |
| 1149 return element.focused() && isFrameFocused(element); | 1150 return element.focused() && isFrameFocused(element); |
| 1150 } | 1151 } |
| 1151 | 1152 |
| 1152 } // namespace blink | 1153 } // namespace blink |
| OLD | NEW |