Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(106)

Side by Side Diff: Source/core/accessibility/AccessibilityRenderObject.cpp

Issue 16647009: Fix crash when assuming that an AREA's parent must be a MAP. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « LayoutTests/accessibility/image-map-with-indirect-area-crash-expected.txt ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2008 Apple Inc. All rights reserved. 2 * Copyright (C) 2008 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
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 2170 matching lines...) Expand 10 before | Expand all | Expand 10 after
2181 2181
2182 // The element we find may not be accessible, so find the first accessible o bject. 2182 // The element we find may not be accessible, so find the first accessible o bject.
2183 return firstAccessibleObjectFromNode(linkedNode); 2183 return firstAccessibleObjectFromNode(linkedNode);
2184 } 2184 }
2185 2185
2186 AccessibilityObject* AccessibilityRenderObject::accessibilityImageMapHitTest(HTM LAreaElement* area, const IntPoint& point) const 2186 AccessibilityObject* AccessibilityRenderObject::accessibilityImageMapHitTest(HTM LAreaElement* area, const IntPoint& point) const
2187 { 2187 {
2188 if (!area) 2188 if (!area)
2189 return 0; 2189 return 0;
2190 2190
2191 HTMLMapElement* map = static_cast<HTMLMapElement*>(area->parentNode()); 2191 Element* mapParent = area->parentElement();
inferno 2013/06/08 22:44:39 Why should we traverse the parent chain ? Is this
2192 while (mapParent && !mapParent->hasTagName(mapTag))
2193 mapParent = mapParent->parentElement();
2194 if (!mapParent)
2195 return 0;
2196 HTMLMapElement* map = static_cast<HTMLMapElement*>(mapParent);
2192 AccessibilityObject* parent = accessibilityParentForImageMap(map); 2197 AccessibilityObject* parent = accessibilityParentForImageMap(map);
2193 if (!parent) 2198 if (!parent)
2194 return 0; 2199 return 0;
2195 2200
2196 AccessibilityObject::AccessibilityChildrenVector children = parent->children (); 2201 AccessibilityObject::AccessibilityChildrenVector children = parent->children ();
2197 2202
2198 unsigned count = children.size(); 2203 unsigned count = children.size();
2199 for (unsigned k = 0; k < count; ++k) { 2204 for (unsigned k = 0; k < count; ++k) {
2200 if (children[k]->elementRect().contains(point)) 2205 if (children[k]->elementRect().contains(point))
2201 return children[k].get(); 2206 return children[k].get();
(...skipping 402 matching lines...) Expand 10 before | Expand all | Expand 10 after
2604 if (label && label->renderer()) { 2609 if (label && label->renderer()) {
2605 LayoutRect labelRect = axObjectCache()->getOrCreate(label)->elementR ect(); 2610 LayoutRect labelRect = axObjectCache()->getOrCreate(label)->elementR ect();
2606 result.unite(labelRect); 2611 result.unite(labelRect);
2607 } 2612 }
2608 } 2613 }
2609 2614
2610 return result; 2615 return result;
2611 } 2616 }
2612 2617
2613 } // namespace WebCore 2618 } // namespace WebCore
OLDNEW
« no previous file with comments | « LayoutTests/accessibility/image-map-with-indirect-area-crash-expected.txt ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698