Title: [102053] trunk/Source/WebKit2
Revision
102053
Author
[email protected]
Date
2011-12-05 15:34:41 -0800 (Mon, 05 Dec 2011)

Log Message

AX: WK2: AX hierarchy is not restored after web process crash
https://bugs.webkit.org/show_bug.cgi?id=73870

The accessibility tokens that need to be sent between UI and Web process
were not being sent by the UI process -> the web process when the web
process crashed.

Reviewed by Darin Adler.

* UIProcess/API/mac/WKView.mm:
(-[WKView viewDidMoveToWindow]):
(-[WKView _accessibilityRegisterUIProcessTokens]):
(-[WKView _didRelaunchProcess]):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (102052 => 102053)


--- trunk/Source/WebKit2/ChangeLog	2011-12-05 23:02:34 UTC (rev 102052)
+++ trunk/Source/WebKit2/ChangeLog	2011-12-05 23:34:41 UTC (rev 102053)
@@ -1,3 +1,19 @@
+2011-12-05  Chris Fleizach  <[email protected]>
+
+        AX: WK2: AX hierarchy is not restored after web process crash
+        https://bugs.webkit.org/show_bug.cgi?id=73870
+
+        The accessibility tokens that need to be sent between UI and Web process
+        were not being sent by the UI process -> the web process when the web
+        process crashed.
+
+        Reviewed by Darin Adler.
+
+        * UIProcess/API/mac/WKView.mm:
+        (-[WKView viewDidMoveToWindow]):
+        (-[WKView _accessibilityRegisterUIProcessTokens]):
+        (-[WKView _didRelaunchProcess]):
+
 2011-12-05  Alexey Proskuryakov  <[email protected]>
 
         REGRESSION: Full keyboard access doesn't work if enabled before Safari started

Modified: trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm (102052 => 102053)


--- trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm	2011-12-05 23:02:34 UTC (rev 102052)
+++ trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm	2011-12-05 23:34:41 UTC (rev 102053)
@@ -123,6 +123,7 @@
 - (void)_setPluginComplexTextInputState:(PluginComplexTextInputState)pluginComplexTextInputState;
 - (void)_disableComplexTextInputIfNecessary;
 - (BOOL)_shouldUseTiledDrawingArea;
+- (void)_accessibilityRegisterUIProcessTokens;
 @end
 
 @interface WKViewData : NSObject {
@@ -1818,13 +1819,7 @@
         [self _updateWindowVisibility];
         [self _updateWindowAndViewFrames];
         
-        // Initialize remote accessibility when the window connection has been established.
-        NSData *remoteElementToken = WKAXRemoteTokenForElement(self);
-        NSData *remoteWindowToken = WKAXRemoteTokenForElement([self accessibilityAttributeValue:NSAccessibilityWindowAttribute]);
-        CoreIPC::DataReference elementToken = CoreIPC::DataReference(reinterpret_cast<const uint8_t*>([remoteElementToken bytes]), [remoteElementToken length]);
-        CoreIPC::DataReference windowToken = CoreIPC::DataReference(reinterpret_cast<const uint8_t*>([remoteWindowToken bytes]), [remoteWindowToken length]);
-        _data->_page->registerUIProcessAccessibilityTokens(elementToken, windowToken);
-            
+        [self _accessibilityRegisterUIProcessTokens];            
     } else {
         _data->_page->viewStateDidChange(WebPageProxy::ViewIsVisible);
         _data->_page->viewStateDidChange(WebPageProxy::ViewWindowIsActive | WebPageProxy::ViewIsInWindow);
@@ -1988,6 +1983,16 @@
     _data->_page->viewStateDidChange(WebPageProxy::ViewIsVisible);
 }
 
+- (void)_accessibilityRegisterUIProcessTokens
+{
+    // Initialize remote accessibility when the window connection has been established.
+    NSData *remoteElementToken = WKAXRemoteTokenForElement(self);
+    NSData *remoteWindowToken = WKAXRemoteTokenForElement([self accessibilityAttributeValue:NSAccessibilityWindowAttribute]);
+    CoreIPC::DataReference elementToken = CoreIPC::DataReference(reinterpret_cast<const uint8_t*>([remoteElementToken bytes]), [remoteElementToken length]);
+    CoreIPC::DataReference windowToken = CoreIPC::DataReference(reinterpret_cast<const uint8_t*>([remoteWindowToken bytes]), [remoteWindowToken length]);
+    _data->_page->registerUIProcessAccessibilityTokens(elementToken, windowToken);
+}
+
 - (void)_updateRemoteAccessibilityRegistration:(BOOL)registerProcess
 {
     // When the tree is connected/disconnected, the remote accessibility registration
@@ -2126,6 +2131,7 @@
 
 - (void)_didRelaunchProcess
 {
+    [self _accessibilityRegisterUIProcessTokens];
 }
 
 - (void)_setCursor:(NSCursor *)cursor
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to