| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011 Google Inc. All Rights Reserved. | 2 * Copyright (C) 2011 Google Inc. All Rights Reserved. |
| 3 * Copyright (C) 2012 Apple Inc. All rights reserved. | 3 * Copyright (C) 2012 Apple Inc. All rights reserved. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
| 7 * are met: | 7 * are met: |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 291 } | 291 } |
| 292 | 292 |
| 293 HTMLLabelElement* TreeScope::labelElementForId(const AtomicString& forAttributeV
alue) | 293 HTMLLabelElement* TreeScope::labelElementForId(const AtomicString& forAttributeV
alue) |
| 294 { | 294 { |
| 295 if (forAttributeValue.isEmpty()) | 295 if (forAttributeValue.isEmpty()) |
| 296 return 0; | 296 return 0; |
| 297 | 297 |
| 298 if (!m_labelsByForAttribute) { | 298 if (!m_labelsByForAttribute) { |
| 299 // Populate the map on first access. | 299 // Populate the map on first access. |
| 300 m_labelsByForAttribute = DocumentOrderedMap::create(); | 300 m_labelsByForAttribute = DocumentOrderedMap::create(); |
| 301 for (HTMLLabelElement& label : Traversal<HTMLLabelElement>::fromNext(roo
tNode())) { | 301 for (HTMLLabelElement& label : Traversal<HTMLLabelElement>::startsAfter(
rootNode())) { |
| 302 const AtomicString& forValue = label.fastGetAttribute(forAttr); | 302 const AtomicString& forValue = label.fastGetAttribute(forAttr); |
| 303 if (!forValue.isEmpty()) | 303 if (!forValue.isEmpty()) |
| 304 addLabel(forValue, &label); | 304 addLabel(forValue, &label); |
| 305 } | 305 } |
| 306 } | 306 } |
| 307 | 307 |
| 308 return toHTMLLabelElement(m_labelsByForAttribute->getElementByLabelForAttrib
ute(forAttributeValue, this)); | 308 return toHTMLLabelElement(m_labelsByForAttribute->getElementByLabelForAttrib
ute(forAttributeValue, this)); |
| 309 } | 309 } |
| 310 | 310 |
| 311 DOMSelection* TreeScope::getSelection() const | 311 DOMSelection* TreeScope::getSelection() const |
| (...skipping 10 matching lines...) Expand all Loading... |
| 322 m_selection = DOMSelection::create(this); | 322 m_selection = DOMSelection::create(this); |
| 323 return m_selection.get(); | 323 return m_selection.get(); |
| 324 } | 324 } |
| 325 | 325 |
| 326 Element* TreeScope::findAnchor(const String& name) | 326 Element* TreeScope::findAnchor(const String& name) |
| 327 { | 327 { |
| 328 if (name.isEmpty()) | 328 if (name.isEmpty()) |
| 329 return 0; | 329 return 0; |
| 330 if (Element* element = getElementById(AtomicString(name))) | 330 if (Element* element = getElementById(AtomicString(name))) |
| 331 return element; | 331 return element; |
| 332 for (HTMLAnchorElement& anchor : Traversal<HTMLAnchorElement>::fromNext(root
Node())) { | 332 for (HTMLAnchorElement& anchor : Traversal<HTMLAnchorElement>::startsAfter(r
ootNode())) { |
| 333 if (rootNode().document().inQuirksMode()) { | 333 if (rootNode().document().inQuirksMode()) { |
| 334 // Quirks mode, case insensitive comparison of names. | 334 // Quirks mode, case insensitive comparison of names. |
| 335 if (equalIgnoringCase(anchor.name(), name)) | 335 if (equalIgnoringCase(anchor.name(), name)) |
| 336 return &anchor; | 336 return &anchor; |
| 337 } else { | 337 } else { |
| 338 // Strict mode, names need to match exactly. | 338 // Strict mode, names need to match exactly. |
| 339 if (anchor.name() == name) | 339 if (anchor.name() == name) |
| 340 return &anchor; | 340 return &anchor; |
| 341 } | 341 } |
| 342 } | 342 } |
| (...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 553 visitor->trace(m_parentTreeScope); | 553 visitor->trace(m_parentTreeScope); |
| 554 visitor->trace(m_idTargetObserverRegistry); | 554 visitor->trace(m_idTargetObserverRegistry); |
| 555 visitor->trace(m_selection); | 555 visitor->trace(m_selection); |
| 556 visitor->trace(m_elementsById); | 556 visitor->trace(m_elementsById); |
| 557 visitor->trace(m_imageMapsByName); | 557 visitor->trace(m_imageMapsByName); |
| 558 visitor->trace(m_labelsByForAttribute); | 558 visitor->trace(m_labelsByForAttribute); |
| 559 visitor->trace(m_scopedStyleResolver); | 559 visitor->trace(m_scopedStyleResolver); |
| 560 } | 560 } |
| 561 | 561 |
| 562 } // namespace blink | 562 } // namespace blink |
| OLD | NEW |