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

Unified Diff: content/browser/accessibility/browser_accessibility_cocoa.mm

Issue 8493016: content: Remove 16 exit time destructors and 15 static initializers. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 9 years, 1 month 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | content/browser/browser_thread_impl.h » ('j') | content/browser/browsing_instance.h » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/accessibility/browser_accessibility_cocoa.mm
diff --git a/content/browser/accessibility/browser_accessibility_cocoa.mm b/content/browser/accessibility/browser_accessibility_cocoa.mm
index 86a6934b9c72bb523a97244f5b31f958b105a748..96ca9dd7109fd262736b01ba1fee7a5b4ee454cb 100644
--- a/content/browser/accessibility/browser_accessibility_cocoa.mm
+++ b/content/browser/accessibility/browser_accessibility_cocoa.mm
@@ -218,9 +218,44 @@ bool GetState(BrowserAccessibility* accessibility, int state) {
}
// A mapping of webkit roles to native roles.
-std::map<WebAccessibility::Role, NSString*> webAccessibilityToNativeRole;
+NSString* NativeRoleFromWebAccessibilityRole(
+ const WebAccessibility::Role& role) {
+ CR_DEFINE_STATIC_LOCAL(std::map<WebAccessibility::Role, NSString*>,
+ webAccessibilityToNativeRole, ());
Mark Mentovai 2011/11/07 22:34:15 This would properly be named web_accessibility_to_
Nico 2011/11/07 23:29:21 Done.
+ if (webAccessibilityToNativeRole.empty()) {
Mark Mentovai 2011/11/07 22:34:15 I don’t like this pattern, because it treats “empt
Nico 2011/11/07 23:29:21 Done-ish
+ for (size_t i = 0; i < arraysize(roles); ++i) {
+ webAccessibilityToNativeRole[roles[i].webKitValue] = roles[i].nativeValue;
+ }
+ }
+
+ std::map<WebAccessibility::Role, NSString*>::iterator it =
+ webAccessibilityToNativeRole.find(role);
+ if (it != webAccessibilityToNativeRole.end())
+ return it->second;
+ else
+ return NSAccessibilityUnknownRole;
+}
+
// A mapping of webkit roles to native subroles.
-std::map<WebAccessibility::Role, NSString*> webAccessibilityToNativeSubrole;
+NSString* NativeSubroleFromWebAccessibilityRole(
+ const WebAccessibility::Role& role) {
+ CR_DEFINE_STATIC_LOCAL(std::map<WebAccessibility::Role, NSString*>,
+ webAccessibilityToNativeSubrole, ());
Mark Mentovai 2011/11/07 22:34:15 Same.
Nico 2011/11/07 23:29:21 Done.
+ if (webAccessibilityToNativeSubrole.empty()) {
Mark Mentovai 2011/11/07 22:34:15 And same.
Nico 2011/11/07 23:29:21 Done.
+ for (size_t i = 0; i < arraysize(subroles); ++i) {
+ webAccessibilityToNativeSubrole[subroles[i].webKitValue] =
+ subroles[i].nativeValue;
+ }
+ }
+
+ std::map<WebAccessibility::Role, NSString*>::iterator it =
+ webAccessibilityToNativeSubrole.find(role);
+ if (it != webAccessibilityToNativeSubrole.end())
+ return it->second;
+ else
+ return nil;
+}
+
// A mapping from an accessibility attribute to its method name.
NSDictionary* attributeToMethodNameMap = nil;
@@ -229,17 +264,6 @@ NSDictionary* attributeToMethodNameMap = nil;
@implementation BrowserAccessibilityCocoa
+ (void)initialize {
- const size_t numRoles = sizeof(roles) / sizeof(roles[0]);
- for (size_t i = 0; i < numRoles; ++i) {
- webAccessibilityToNativeRole[roles[i].webKitValue] = roles[i].nativeValue;
- }
-
- const size_t numSubroles = sizeof(subroles) / sizeof(subroles[0]);
- for (size_t i = 0; i < numSubroles; ++i) {
- webAccessibilityToNativeSubrole[subroles[i].webKitValue] =
- subroles[i].nativeValue;
- }
-
NSMutableDictionary* dict = [[NSMutableDictionary alloc] init];
const size_t numAttributes = sizeof(attributeToMethodNameContainer) /
sizeof(attributeToMethodNameContainer[0]);
@@ -450,13 +474,7 @@ NSDictionary* attributeToMethodNameMap = nil;
static_cast<WebAccessibility::Role>( browserAccessibility_->role());
// Roles that we only determine at runtime.
- std::map<WebAccessibility::Role, NSString*>::iterator it =
- webAccessibilityToNativeRole.find(browserAccessibilityRole);
-
- if (it != webAccessibilityToNativeRole.end())
- return it->second;
- else
- return NSAccessibilityUnknownRole;
+ return NativeRoleFromWebAccessibilityRole(browserAccessibilityRole);
}
// Returns a string indicating the role description of this object.
@@ -543,12 +561,7 @@ NSDictionary* attributeToMethodNameMap = nil;
}
}
- std::map<WebAccessibility::Role, NSString*>::iterator it =
- webAccessibilityToNativeSubrole.find(browserAccessibilityRole);
- if (it != webAccessibilityToNativeSubrole.end())
- return it->second;
- else
- return nil;
+ return NativeSubroleFromWebAccessibilityRole(browserAccessibilityRole);
}
// Returns all tabs in this subtree.
« no previous file with comments | « no previous file | content/browser/browser_thread_impl.h » ('j') | content/browser/browsing_instance.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698