Index: content/browser/accessibility/browser_accessibility_mac.mm |
diff --git a/content/browser/accessibility/browser_accessibility_mac.mm b/content/browser/accessibility/browser_accessibility_mac.mm |
index 3d13ee8190d39aab3a7f4016bad7ff185bd90067..1d4c2f92a7fc86ad24f2da6674598696a26d4e48 100644 |
--- a/content/browser/accessibility/browser_accessibility_mac.mm |
+++ b/content/browser/accessibility/browser_accessibility_mac.mm |
@@ -48,6 +48,21 @@ bool BrowserAccessibilityMac::IsNative() const { |
return true; |
} |
+void BrowserAccessibilityMac::RecreateNativeObject() { |
+ if (!browser_accessibility_cocoa_) |
+ return; |
+ |
+ // Preserve the children so that recreating the native object doesn't |
+ // end up recreating the whole subtree. |
+ base::scoped_nsobject<NSMutableArray> children; |
+ [browser_accessibility_cocoa_ swapChildren:&children]; |
+ [browser_accessibility_cocoa_ detach]; |
+ [browser_accessibility_cocoa_ release]; |
+ browser_accessibility_cocoa_ = [[BrowserAccessibilityCocoa alloc] |
+ initWithObject:this]; |
+ [browser_accessibility_cocoa_ swapChildren:&children]; |
+} |
+ |
BrowserAccessibilityCocoa* BrowserAccessibility::ToBrowserAccessibilityCocoa() { |
return static_cast<BrowserAccessibilityMac*>(this)-> |
native_view(); |