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

Side by Side Diff: third_party/WebKit/Source/modules/accessibility/AXLayoutObject.cpp

Issue 1713723002: Implement accessibility support for CSS-transformed iframes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix gn build Created 4 years, 8 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
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 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 #include "core/svg/SVGDocumentExtensions.h" 73 #include "core/svg/SVGDocumentExtensions.h"
74 #include "core/svg/SVGSVGElement.h" 74 #include "core/svg/SVGSVGElement.h"
75 #include "core/svg/graphics/SVGImage.h" 75 #include "core/svg/graphics/SVGImage.h"
76 #include "modules/accessibility/AXImageMapLink.h" 76 #include "modules/accessibility/AXImageMapLink.h"
77 #include "modules/accessibility/AXInlineTextBox.h" 77 #include "modules/accessibility/AXInlineTextBox.h"
78 #include "modules/accessibility/AXObjectCacheImpl.h" 78 #include "modules/accessibility/AXObjectCacheImpl.h"
79 #include "modules/accessibility/AXSVGRoot.h" 79 #include "modules/accessibility/AXSVGRoot.h"
80 #include "modules/accessibility/AXSpinButton.h" 80 #include "modules/accessibility/AXSpinButton.h"
81 #include "modules/accessibility/AXTable.h" 81 #include "modules/accessibility/AXTable.h"
82 #include "platform/fonts/FontTraits.h" 82 #include "platform/fonts/FontTraits.h"
83 #include "platform/geometry/TransformState.h"
83 #include "platform/text/PlatformLocale.h" 84 #include "platform/text/PlatformLocale.h"
84 #include "platform/text/TextDirection.h" 85 #include "platform/text/TextDirection.h"
85 #include "wtf/StdLibExtras.h" 86 #include "wtf/StdLibExtras.h"
86 87
87 using blink::WebLocalizedString; 88 using blink::WebLocalizedString;
88 89
89 namespace blink { 90 namespace blink {
90 91
91 using namespace HTMLNames; 92 using namespace HTMLNames;
92 93
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 toAXLayoutObject(obj)->checkCachedElementRect(); 212 toAXLayoutObject(obj)->checkCachedElementRect();
212 } 213 }
213 for (const AXObject* obj = this; obj; obj = obj->parentObject()) { 214 for (const AXObject* obj = this; obj; obj = obj->parentObject()) {
214 if (obj->isAXLayoutObject()) 215 if (obj->isAXLayoutObject())
215 toAXLayoutObject(obj)->updateCachedElementRect(); 216 toAXLayoutObject(obj)->updateCachedElementRect();
216 } 217 }
217 218
218 return m_cachedElementRect; 219 return m_cachedElementRect;
219 } 220 }
220 221
222 SkMatrix44 AXLayoutObject::transformFromLocalParentFrame() const
223 {
224 if (!m_layoutObject)
225 return SkMatrix44();
226 LayoutView* layoutView = documentFrameView()->layoutView();
227
228 FrameView* parentFrameView = documentFrameView()->parentFrameView();
229 if (!parentFrameView)
230 return SkMatrix44();
231 LayoutView* parentLayoutView = parentFrameView->layoutView();
232
233 TransformationMatrix accumulatedTransform = layoutView->localToAncestorTrans form(parentLayoutView, TraverseDocumentBoundaries);
234 IntPoint scrollPosition = documentFrameView()->scrollPosition();
235 accumulatedTransform.translate(scrollPosition.x(), scrollPosition.y());
236 return TransformationMatrix::toSkMatrix44(accumulatedTransform);
237 }
238
221 LayoutBoxModelObject* AXLayoutObject::getLayoutBoxModelObject() const 239 LayoutBoxModelObject* AXLayoutObject::getLayoutBoxModelObject() const
222 { 240 {
223 if (!m_layoutObject || !m_layoutObject->isBoxModelObject()) 241 if (!m_layoutObject || !m_layoutObject->isBoxModelObject())
224 return 0; 242 return 0;
225 return toLayoutBoxModelObject(m_layoutObject); 243 return toLayoutBoxModelObject(m_layoutObject);
226 } 244 }
227 245
228 bool AXLayoutObject::shouldNotifyActiveDescendant() const 246 bool AXLayoutObject::shouldNotifyActiveDescendant() const
229 { 247 {
230 // We want to notify that the combo box has changed its active descendant, 248 // We want to notify that the combo box has changed its active descendant,
(...skipping 2277 matching lines...) Expand 10 before | Expand all | Expand 10 after
2508 if (label && label->layoutObject()) { 2526 if (label && label->layoutObject()) {
2509 LayoutRect labelRect = axObjectCache().getOrCreate(label)->elementRe ct(); 2527 LayoutRect labelRect = axObjectCache().getOrCreate(label)->elementRe ct();
2510 result.unite(labelRect); 2528 result.unite(labelRect);
2511 } 2529 }
2512 } 2530 }
2513 2531
2514 return result; 2532 return result;
2515 } 2533 }
2516 2534
2517 } // namespace blink 2535 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698