Changeset 276160 in webkit
- Timestamp:
- Apr 16, 2021, 12:39:03 PM (5 years ago)
- Location:
- trunk/Source/WebKit
- Files:
-
- 5 edited
-
ChangeLog (modified) (1 diff)
-
UIProcess/API/APIUIClient.h (modified) (1 diff)
-
UIProcess/API/Cocoa/WKUIDelegatePrivate.h (modified) (1 diff)
-
UIProcess/Cocoa/UIDelegate.h (modified) (2 diffs)
-
UIProcess/Cocoa/UIDelegate.mm (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r276153 r276160 1 2021-04-16 Ada Chan <ada.chan@apple.com> 2 3 Add WKUIDelegate SPI for starting XR session 4 https://bugs.webkit.org/show_bug.cgi?id=224634 5 6 Reviewed by Tim Horton. 7 8 * UIProcess/API/APIUIClient.h: 9 (API::UIClient::startXRSession): 10 * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: 11 * UIProcess/Cocoa/UIDelegate.h: 12 * UIProcess/Cocoa/UIDelegate.mm: 13 (WebKit::UIDelegate::setDelegate): 14 (WebKit::UIDelegate::UIClient::startXRSession): 15 1 16 2021-04-16 Chris Dumez <cdumez@apple.com> 2 17 -
trunk/Source/WebKit/UIProcess/API/APIUIClient.h
r274815 r276160 209 209 virtual void decidePolicyForMediaKeySystemPermissionRequest(WebKit::WebPageProxy& page, API::SecurityOrigin& origin, const WTF::String& keySystem, CompletionHandler<void(bool)>&& completionHandler) { page.requestMediaKeySystemPermissionByDefaultAction(origin.securityOrigin(), WTFMove(completionHandler)); } 210 210 211 #if ENABLE(WEBXR) && PLATFORM(COCOA) 212 virtual void startXRSession(WebKit::WebPageProxy&, CompletionHandler<void(RetainPtr<id>)>&& completionHandler) { completionHandler(nil); } 213 #endif 211 214 }; 212 215 -
trunk/Source/WebKit/UIProcess/API/Cocoa/WKUIDelegatePrivate.h
r276125 r276160 157 157 - (void)_webViewDidEnableInspectorBrowserDomain:(WKWebView *)webView WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA)); 158 158 - (void)_webViewDidDisableInspectorBrowserDomain:(WKWebView *)webView WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA)); 159 160 - (void)_webView:(WKWebView *)webView startXRSessionWithCompletionHandler:(void (^)(id))completionHandler WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA)); 159 161 160 162 #if TARGET_OS_IPHONE -
trunk/Source/WebKit/UIProcess/Cocoa/UIDelegate.h
r274815 r276160 167 167 void didDisableInspectorBrowserDomain(WebPageProxy&) final; 168 168 169 #if ENABLE(WEBXR) && PLATFORM(COCOA) 170 void startXRSession(WebPageProxy&, CompletionHandler<void(RetainPtr<id>)>&&) final; 171 #endif 172 169 173 WeakPtr<UIDelegate> m_uiDelegate; 170 174 }; … … 256 260 bool webViewDidEnableInspectorBrowserDomain : 1; 257 261 bool webViewDidDisableInspectorBrowserDomain : 1; 262 #if ENABLE(WEBXR) && PLATFORM(COCOA) 263 bool webViewStartXRSessionWithCompletionHandler : 1; 264 #endif 258 265 } m_delegateMethods; 259 266 }; -
trunk/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm
r276125 r276160 188 188 m_delegateMethods.webViewDidEnableInspectorBrowserDomain = [delegate respondsToSelector:@selector(_webViewDidEnableInspectorBrowserDomain:)]; 189 189 m_delegateMethods.webViewDidDisableInspectorBrowserDomain = [delegate respondsToSelector:@selector(_webViewDidDisableInspectorBrowserDomain:)]; 190 191 #if ENABLE(WEBXR) && PLATFORM(COCOA) 192 m_delegateMethods.webViewStartXRSessionWithCompletionHandler = [delegate respondsToSelector:@selector(_webView:startXRSessionWithCompletionHandler:)]; 193 #endif 190 194 } 191 195 … … 1655 1659 } 1656 1660 1661 #if ENABLE(WEBXR) && PLATFORM(COCOA) 1662 void UIDelegate::UIClient::startXRSession(WebPageProxy&, CompletionHandler<void(RetainPtr<id>)>&& completionHandler) 1663 { 1664 if (!m_uiDelegate || !m_uiDelegate->m_delegateMethods.webViewStartXRSessionWithCompletionHandler) { 1665 completionHandler(nil); 1666 return; 1667 } 1668 1669 auto delegate = (id <WKUIDelegatePrivate>)m_uiDelegate->m_delegate.get(); 1670 if (!delegate) { 1671 completionHandler(nil); 1672 return; 1673 } 1674 1675 auto checker = CompletionHandlerCallChecker::create(delegate, @selector(_webView:startXRSessionWithCompletionHandler:)); 1676 [delegate _webView:m_uiDelegate->m_webView.get().get() startXRSessionWithCompletionHandler:makeBlockPtr([completionHandler = WTFMove(completionHandler), checker = WTFMove(checker)] (id result) mutable { 1677 if (checker->completionHandlerHasBeenCalled()) 1678 return; 1679 checker->didCallCompletionHandler(); 1680 completionHandler(result); 1681 }).get()]; 1682 } 1683 #endif 1684 1657 1685 } // namespace WebKit
Note:
See TracChangeset
for help on using the changeset viewer.