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

Side by Side Diff: content/browser/accessibility/browser_accessibility_cocoa.mm

Issue 10379029: Revert 135593 - Add initial GTK web accessibility framework (new with valgrind fix). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 7 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <execinfo.h> 5 #include <execinfo.h>
6 6
7 #import "content/browser/accessibility/browser_accessibility_cocoa.h" 7 #import "content/browser/accessibility/browser_accessibility_cocoa.h"
8 8
9 #include <map> 9 #include <map>
10 10
11 #include "base/basictypes.h" 11 #include "base/basictypes.h"
12 #include "base/string16.h" 12 #include "base/string16.h"
13 #include "base/sys_string_conversions.h" 13 #include "base/sys_string_conversions.h"
14 #include "base/utf_string_conversions.h" 14 #include "base/utf_string_conversions.h"
15 #include "content/browser/accessibility/browser_accessibility_mac.h"
16 #include "content/browser/accessibility/browser_accessibility_manager.h" 15 #include "content/browser/accessibility/browser_accessibility_manager.h"
17 #include "content/public/common/content_client.h" 16 #include "content/public/common/content_client.h"
18 #include "grit/webkit_strings.h" 17 #include "grit/webkit_strings.h"
19 #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebRect.h" 18 #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebRect.h"
20 19
21 // See http://openradar.appspot.com/9896491. This SPI has been tested on 10.5, 20 // See http://openradar.appspot.com/9896491. This SPI has been tested on 10.5,
22 // 10.6, and 10.7. It allows accessibility clients to observe events posted on 21 // 10.6, and 10.7. It allows accessibility clients to observe events posted on
23 // this object. 22 // this object.
24 extern "C" void NSAccessibilityUnregisterUniqueIdForUIElement(id element); 23 extern "C" void NSAccessibilityUnregisterUniqueIdForUIElement(id element);
25 24
(...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after
337 // Returns an array of BrowserAccessibilityCocoa objects, representing the 336 // Returns an array of BrowserAccessibilityCocoa objects, representing the
338 // accessibility children of this object. 337 // accessibility children of this object.
339 - (NSArray*)children { 338 - (NSArray*)children {
340 if (!children_.get()) { 339 if (!children_.get()) {
341 children_.reset([[NSMutableArray alloc] 340 children_.reset([[NSMutableArray alloc]
342 initWithCapacity:browserAccessibility_->child_count()] ); 341 initWithCapacity:browserAccessibility_->child_count()] );
343 for (uint32 index = 0; 342 for (uint32 index = 0;
344 index < browserAccessibility_->child_count(); 343 index < browserAccessibility_->child_count();
345 ++index) { 344 ++index) {
346 BrowserAccessibilityCocoa* child = 345 BrowserAccessibilityCocoa* child =
347 browserAccessibility_->GetChild(index)-> 346 browserAccessibility_->GetChild(index)->toBrowserAccessibilityCocoa();
348 ToBrowserAccessibilityMac()->native_view();
349 if ([child isIgnored]) 347 if ([child isIgnored])
350 [children_ addObjectsFromArray:[child children]]; 348 [children_ addObjectsFromArray:[child children]];
351 else 349 else
352 [children_ addObject:child]; 350 [children_ addObject:child];
353 } 351 }
354 352
355 // Also, add indirect children (if any). 353 // Also, add indirect children (if any).
356 for (uint32 i = 0; 354 for (uint32 i = 0;
357 i < browserAccessibility_->indirect_child_ids().size(); 355 i < browserAccessibility_->indirect_child_ids().size();
358 ++i) { 356 ++i) {
359 int32 child_id = browserAccessibility_->indirect_child_ids()[i]; 357 int32 child_id = browserAccessibility_->indirect_child_ids()[i];
360 BrowserAccessibility* child = 358 BrowserAccessibility* child =
361 browserAccessibility_->manager()->GetFromRendererID(child_id); 359 browserAccessibility_->manager()->GetFromRendererID(child_id);
362 360
363 // This only became necessary as a result of crbug.com/93095. It should be 361 // This only became necessary as a result of crbug.com/93095. It should be
364 // a DCHECK in the future. 362 // a DCHECK in the future.
365 if (child) { 363 if (child) {
366 BrowserAccessibilityCocoa* child_cocoa = 364 BrowserAccessibilityCocoa* child_cocoa =
367 child->ToBrowserAccessibilityMac()->native_view(); 365 child->toBrowserAccessibilityCocoa();
368 [children_ addObject:child_cocoa]; 366 [children_ addObject:child_cocoa];
369 } 367 }
370 } 368 }
371 } 369 }
372 return children_; 370 return children_;
373 } 371 }
374 372
375 - (void)childrenChanged { 373 - (void)childrenChanged {
376 if (![self isIgnored]) { 374 if (![self isIgnored]) {
377 children_.reset(); 375 children_.reset();
378 } else if (browserAccessibility_->parent()) { 376 } else {
379 [browserAccessibility_->parent()->ToBrowserAccessibilityMac()->native_view() 377 [browserAccessibility_->parent()->toBrowserAccessibilityCocoa()
380 childrenChanged]; 378 childrenChanged];
381 } 379 }
382 } 380 }
383 381
384 - (NSArray*)columns { 382 - (NSArray*)columns {
385 NSMutableArray* ret = [[[NSMutableArray alloc] init] autorelease]; 383 NSMutableArray* ret = [[[NSMutableArray alloc] init] autorelease];
386 for (BrowserAccessibilityCocoa* child in [self children]) { 384 for (BrowserAccessibilityCocoa* child in [self children]) {
387 if ([[child role] isEqualToString:NSAccessibilityColumnRole]) 385 if ([[child role] isEqualToString:NSAccessibilityColumnRole])
388 [ret addObject:child]; 386 [ret addObject:child];
389 } 387 }
390 return ret; 388 return ret;
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
483 // bottom-left origin. 481 // bottom-left origin.
484 - (NSPoint)origin { 482 - (NSPoint)origin {
485 gfx::Rect bounds = browserAccessibility_->GetLocalBoundsRect(); 483 gfx::Rect bounds = browserAccessibility_->GetLocalBoundsRect();
486 return NSMakePoint(bounds.x(), bounds.y()); 484 return NSMakePoint(bounds.x(), bounds.y());
487 } 485 }
488 486
489 - (id)parent { 487 - (id)parent {
490 // A nil parent means we're the root. 488 // A nil parent means we're the root.
491 if (browserAccessibility_->parent()) { 489 if (browserAccessibility_->parent()) {
492 return NSAccessibilityUnignoredAncestor( 490 return NSAccessibilityUnignoredAncestor(
493 browserAccessibility_->parent()->ToBrowserAccessibilityMac()-> 491 browserAccessibility_->parent()->toBrowserAccessibilityCocoa());
494 native_view());
495 } else { 492 } else {
496 // Hook back up to RenderWidgetHostViewCocoa. 493 // Hook back up to RenderWidgetHostViewCocoa.
497 return browserAccessibility_->manager()->GetParentView(); 494 return browserAccessibility_->manager()->GetParentView();
498 } 495 }
499 } 496 }
500 497
501 - (NSValue*)position { 498 - (NSValue*)position {
502 return [NSValue valueWithPoint:[delegate_ accessibilityPointInScreen:self]]; 499 return [NSValue valueWithPoint:[delegate_ accessibilityPointInScreen:self]];
503 } 500 }
504 501
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
628 return base::SysUTF16ToNSString(browserAccessibility_->name()); 625 return base::SysUTF16ToNSString(browserAccessibility_->name());
629 } 626 }
630 627
631 - (id)titleUIElement { 628 - (id)titleUIElement {
632 int titleElementId; 629 int titleElementId;
633 if (browserAccessibility_->GetIntAttribute( 630 if (browserAccessibility_->GetIntAttribute(
634 WebAccessibility::ATTR_TITLE_UI_ELEMENT, &titleElementId)) { 631 WebAccessibility::ATTR_TITLE_UI_ELEMENT, &titleElementId)) {
635 BrowserAccessibility* titleElement = 632 BrowserAccessibility* titleElement =
636 browserAccessibility_->manager()->GetFromRendererID(titleElementId); 633 browserAccessibility_->manager()->GetFromRendererID(titleElementId);
637 if (titleElement) 634 if (titleElement)
638 return titleElement->ToBrowserAccessibilityMac()->native_view(); 635 return titleElement->toBrowserAccessibilityCocoa();
639 } 636 }
640 return nil; 637 return nil;
641 } 638 }
642 639
643 - (NSString*)url { 640 - (NSString*)url {
644 StringAttribute urlAttribute = 641 StringAttribute urlAttribute =
645 [[self role] isEqualToString:@"AXWebArea"] ? 642 [[self role] isEqualToString:@"AXWebArea"] ?
646 WebAccessibility::ATTR_DOC_URL : 643 WebAccessibility::ATTR_DOC_URL :
647 WebAccessibility::ATTR_URL; 644 WebAccessibility::ATTR_URL;
648 return NSStringForStringAttribute( 645 return NSStringForStringAttribute(
(...skipping 397 matching lines...) Expand 10 before | Expand all | Expand 10 after
1046 return [super hash]; 1043 return [super hash];
1047 return browserAccessibility_->renderer_id(); 1044 return browserAccessibility_->renderer_id();
1048 } 1045 }
1049 1046
1050 - (BOOL)accessibilityShouldUseUniqueId { 1047 - (BOOL)accessibilityShouldUseUniqueId {
1051 return YES; 1048 return YES;
1052 } 1049 }
1053 1050
1054 @end 1051 @end
1055 1052
OLDNEW
« no previous file with comments | « content/browser/accessibility/browser_accessibility.cc ('k') | content/browser/accessibility/browser_accessibility_gtk.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698