Changeset 211095 in webkit
- Timestamp:
- Jan 24, 2017 12:44:38 PM (7 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r211093 r211095 1 2017-01-24 Nan Wang <n_wang@apple.com> 2 3 AX: Speak Selection does not work in an iframe 4 https://bugs.webkit.org/show_bug.cgi?id=166794 5 <rdar://problem/29913013> 6 7 Reviewed by Chris Fleizach. 8 9 * accessibility/ios-simulator/speak-selection-content-expected.txt: Added. 10 * accessibility/ios-simulator/speak-selection-content.html: Added. 11 * platform/ios-simulator-wk1/TestExpectations: 12 1 13 2017-01-24 Ryan Haddad <ryanhaddad@apple.com> 2 14 -
trunk/LayoutTests/platform/ios-simulator-wk1/TestExpectations
r209826 r211095 105 105 # Zooming works differently in iOS DRT 106 106 fast/zooming/uiscript-zooming.html [ Failure ] 107 108 # Not supported on WK1 109 accessibility/ios-simulator/speak-selection-content.html [ Skip ] 107 110 108 111 # FIXME: Tests that fail due to lack of textInputController <rdar://problem/5106287> -
trunk/Source/WebKit2/ChangeLog
r211094 r211095 1 2017-01-24 Nan Wang <n_wang@apple.com> 2 3 AX: Speak Selection does not work in an iframe 4 https://bugs.webkit.org/show_bug.cgi?id=166794 5 <rdar://problem/29913013> 6 7 Reviewed by Chris Fleizach. 8 9 Making sure WebPage::getSelectionOrContentsAsString() is getting the 10 selection content in the right frame. 11 12 * UIProcess/API/Cocoa/WKWebView.mm: 13 (-[WKWebView _accessibilityRetrieveSpeakSelectionContent]): 14 (-[WKWebView _accessibilityDidGetSpeakSelectionContent:]): 15 * UIProcess/API/Cocoa/WKWebViewPrivate.h: 16 * UIProcess/ios/WKContentViewInteraction.h: 17 * UIProcess/ios/WKContentViewInteraction.mm: 18 (-[WKContentView accessibilityRetrieveSpeakSelectionContent]): 19 * WebProcess/WebPage/WebPage.cpp: 20 (WebKit::WebPage::getSelectionOrContentsAsString): 21 1 22 2017-01-24 Jer Noble <jer.noble@apple.com> 2 23 -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm
r211045 r211095 3465 3465 return [_contentView _dataDetectionResults]; 3466 3466 } 3467 3468 - (void)_accessibilityRetrieveSpeakSelectionContent 3469 { 3470 [_contentView accessibilityRetrieveSpeakSelectionContent]; 3471 } 3472 3473 // This method is for subclasses to override. 3474 // Currently it's only in TestRunnerWKWebView. 3475 - (void)_accessibilityDidGetSpeakSelectionContent:(NSString *)content 3476 { 3477 } 3478 3467 3479 #endif 3468 3480 -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h
r211045 r211095 182 182 - (NSArray *)_dataDetectionResults; 183 183 184 - (void)_accessibilityRetrieveSpeakSelectionContent; 185 - (void)_accessibilityDidGetSpeakSelectionContent:(NSString *)content; 186 184 187 #else 185 188 @property (readonly) NSColor *_pageExtendedBackgroundColor; -
trunk/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.h
r209931 r211095 232 232 - (NSArray *)_dataDetectionResults; 233 233 - (NSArray<NSValue *> *)_uiTextSelectionRects; 234 - (void)accessibilityRetrieveSpeakSelectionContent; 234 235 @end 235 236 -
trunk/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm
r210525 r211095 2091 2091 { 2092 2092 RetainPtr<WKContentView> view = self; 2093 _page->getSelectionOrContentsAsString([view](const String& string, WebKit::CallbackBase::Error error) { 2093 RetainPtr<WKWebView> webView = _webView; 2094 _page->getSelectionOrContentsAsString([view, webView](const String& string, WebKit::CallbackBase::Error error) { 2094 2095 if (error != WebKit::CallbackBase::Error::None) 2095 2096 return; 2097 [webView _accessibilityDidGetSpeakSelectionContent:string]; 2096 2098 if ([view respondsToSelector:@selector(accessibilitySpeakSelectionSetContent:)]) 2097 2099 [view accessibilitySpeakSelectionSetContent:string]; -
trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp
r211007 r211095 2833 2833 void WebPage::getSelectionOrContentsAsString(uint64_t callbackID) 2834 2834 { 2835 String resultString = m_mainFrame->selectionAsString(); 2835 WebFrame* focusedOrMainFrame = WebFrame::fromCoreFrame(m_page->focusController().focusedOrMainFrame()); 2836 String resultString = focusedOrMainFrame->selectionAsString(); 2836 2837 if (resultString.isEmpty()) 2837 resultString = m_mainFrame->contentsAsString();2838 resultString = focusedOrMainFrame->contentsAsString(); 2838 2839 send(Messages::WebPageProxy::StringCallback(resultString, callbackID)); 2839 2840 } -
trunk/Tools/ChangeLog
r211087 r211095 1 2017-01-24 Nan Wang <n_wang@apple.com> 2 3 AX: Speak Selection does not work in an iframe 4 https://bugs.webkit.org/show_bug.cgi?id=166794 5 <rdar://problem/29913013> 6 7 Reviewed by Chris Fleizach. 8 9 * DumpRenderTree/ios/UIScriptControllerIOS.mm: 10 (WTR::UIScriptController::retrieveSpeakSelectionContent): 11 (WTR::UIScriptController::accessibilitySpeakSelectionContent): 12 * TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl: 13 * TestRunnerShared/UIScriptContext/UIScriptController.cpp: 14 (WTR::UIScriptController::retrieveSpeakSelectionContent): 15 (WTR::UIScriptController::accessibilitySpeakSelectionContent): 16 * TestRunnerShared/UIScriptContext/UIScriptController.h: 17 * WebKitTestRunner/cocoa/TestRunnerWKWebView.h: 18 * WebKitTestRunner/cocoa/TestRunnerWKWebView.mm: 19 (-[TestRunnerWKWebView dealloc]): 20 (-[TestRunnerWKWebView _accessibilityDidGetSpeakSelectionContent:]): 21 (-[TestRunnerWKWebView accessibilityRetrieveSpeakSelectionContentWithCompletionHandler:]): 22 * WebKitTestRunner/ios/UIScriptControllerIOS.mm: 23 (WTR::UIScriptController::retrieveSpeakSelectionContent): 24 (WTR::UIScriptController::accessibilitySpeakSelectionContent): 25 1 26 2017-01-24 Daniel Bates <dabates@apple.com> 2 27 -
trunk/Tools/DumpRenderTree/ios/UIScriptControllerIOS.mm
r210048 r211095 290 290 } 291 291 292 void UIScriptController::retrieveSpeakSelectionContent(JSValueRef) 293 { 294 } 295 296 JSRetainPtr<JSStringRef> UIScriptController::accessibilitySpeakSelectionContent() const 297 { 298 return nullptr; 299 } 300 292 301 } 293 302 -
trunk/Tools/TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl
r209967 r211095 215 215 216 216 void uiScriptComplete(DOMString result); 217 218 void retrieveSpeakSelectionContent(object callback); 219 readonly attribute DOMString accessibilitySpeakSelectionContent; 217 220 }; -
trunk/Tools/TestRunnerShared/UIScriptContext/UIScriptController.cpp
r210048 r211095 376 376 { 377 377 } 378 379 void UIScriptController::retrieveSpeakSelectionContent(JSValueRef) 380 { 381 } 382 383 JSRetainPtr<JSStringRef> UIScriptController::accessibilitySpeakSelectionContent() const 384 { 385 return nullptr; 386 } 387 378 388 #endif 379 389 -
trunk/Tools/TestRunnerShared/UIScriptContext/UIScriptController.h
r210048 r211095 140 140 141 141 void uiScriptComplete(JSStringRef result); 142 143 void retrieveSpeakSelectionContent(JSValueRef callback); 144 JSRetainPtr<JSStringRef> accessibilitySpeakSelectionContent() const; 142 145 143 146 private: -
trunk/Tools/WebKitTestRunner/cocoa/TestRunnerWKWebView.h
r208926 r211095 41 41 @property (nonatomic, copy) void (^didHideKeyboardCallback)(void); 42 42 @property (nonatomic, copy) void (^didEndScrollingCallback)(void); 43 @property (nonatomic, copy) NSString *accessibilitySpeakSelectionContent; 43 44 44 45 - (void)zoomToScale:(double)scale animated:(BOOL)animated completionHandler:(void (^)(void))completionHandler; 46 - (void)accessibilityRetrieveSpeakSelectionContentWithCompletionHandler:(void (^)(void))completionHandler; 47 45 48 #endif 46 49 -
trunk/Tools/WebKitTestRunner/cocoa/TestRunnerWKWebView.mm
r209931 r211095 32 32 33 33 #if PLATFORM(IOS) 34 #import <WebKit/WKWebViewPrivate.h> 34 35 @interface WKWebView () 35 36 … … 51 52 @property (nonatomic, copy) void (^zoomToScaleCompletionHandler)(void); 52 53 @property (nonatomic, copy) void (^showKeyboardCompletionHandler)(void); 54 @property (nonatomic, copy) void (^retrieveSpeakSelectionContentCompletionHandler)(void); 53 55 @property (nonatomic) BOOL isShowingKeyboard; 54 56 … … 92 94 self.zoomToScaleCompletionHandler = nil; 93 95 self.showKeyboardCompletionHandler = nil; 96 self.retrieveSpeakSelectionContentCompletionHandler = nil; 94 97 95 98 [super dealloc]; … … 188 191 } 189 192 193 - (void)_accessibilityDidGetSpeakSelectionContent:(NSString *)content 194 { 195 self.accessibilitySpeakSelectionContent = content; 196 if (self.retrieveSpeakSelectionContentCompletionHandler) 197 self.retrieveSpeakSelectionContentCompletionHandler(); 198 } 199 200 - (void)accessibilityRetrieveSpeakSelectionContentWithCompletionHandler:(void (^)(void))completionHandler 201 { 202 self.retrieveSpeakSelectionContentCompletionHandler = completionHandler; 203 [self _accessibilityRetrieveSpeakSelectionContent]; 204 } 205 190 206 #endif 191 207 -
trunk/Tools/WebKitTestRunner/ios/UIScriptControllerIOS.mm
r210048 r211095 108 108 } 109 109 110 void UIScriptController::retrieveSpeakSelectionContent(JSValueRef callback) 111 { 112 TestRunnerWKWebView *webView = TestController::singleton().mainWebView()->platformView(); 113 114 unsigned callbackID = m_context->prepareForAsyncTask(callback, CallbackTypeNonPersistent); 115 116 [webView accessibilityRetrieveSpeakSelectionContentWithCompletionHandler:^() { 117 if (!m_context) 118 return; 119 m_context->asyncTaskComplete(callbackID); 120 }]; 121 } 122 123 JSRetainPtr<JSStringRef> UIScriptController::accessibilitySpeakSelectionContent() const 124 { 125 TestRunnerWKWebView *webView = TestController::singleton().mainWebView()->platformView(); 126 return JSStringCreateWithCFString((CFStringRef)webView.accessibilitySpeakSelectionContent); 127 } 128 110 129 void UIScriptController::simulateAccessibilitySettingsChangeNotification(JSValueRef callback) 111 130 {
Note: See TracChangeset
for help on using the changeset viewer.