Changeset 273784 in webkit
- Timestamp:
- Mar 2, 2021, 7:05:42 PM (6 years ago)
- Location:
- trunk
- Files:
-
- 16 edited
- 1 copied
-
Source/WebKit/ChangeLog (modified) (1 diff)
-
Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm (modified) (1 diff)
-
Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h (modified) (2 diffs)
-
Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm (modified) (1 diff)
-
Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm (modified) (2 diffs)
-
Source/WebKit/UIProcess/WebPageProxy.h (modified) (1 diff)
-
Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm (modified) (1 diff)
-
Source/WebKit/WebProcess/WebProcess.h (modified) (2 diffs)
-
Source/WebKit/WebProcess/WebProcess.messages.in (modified) (1 diff)
-
Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm (modified) (2 diffs)
-
Source/WebKit/WebProcess/com.apple.WebProcess.sb.in (modified) (1 diff)
-
Source/WebKit/WebProcess/glib/WebProcessGLib.cpp (modified) (1 diff)
-
Source/WebKit/WebProcess/playstation/WebProcessPlayStation.cpp (modified) (1 diff)
-
Source/WebKit/WebProcess/win/WebProcessWin.cpp (modified) (1 diff)
-
Tools/ChangeLog (modified) (1 diff)
-
Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj (modified) (4 diffs)
-
Tools/TestWebKitAPI/Tests/WebKit/MobileAssetSandboxCheck.mm (copied) (copied from trunk/Source/WebKit/WebProcess/win/WebProcessWin.cpp ) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r273778 r273784 1 2021-03-02 Myles C. Maxfield <mmaxfield@apple.com> 2 3 REGRESSION(r270691): It's impossible to use MobileAsset fonts on macOS 4 https://bugs.webkit.org/show_bug.cgi?id=222582 5 <rdar://problem/74877450> 6 7 Reviewed by Per Arne Vollan. 8 9 Simply apply the iOS codepath to macOS. 10 11 There is also an additional change here to the Mac sandbox. 12 On Big Sur and earlier, before this patch, com.apple.mobileassetd was allowed, 13 and com.apple.mobileassetd.v2 was disallowed. After this patch, they both are 14 allowed, but only with the com.apple.webkit.extension.mach extension. 15 On other OSes, before this patch, nothing was allowed, whereas after this patch, 16 only com.apple.mobileassetd.v2 is allowed with the com.apple.webkit.extension.mach 17 extension. 18 19 Test: WebKit.MobileAssetSandboxCheck 20 21 * UIProcess/API/Cocoa/WKWebView.mm: 22 (-[WKWebView _grantAccessToAssetServices]): 23 (-[WKWebView _revokeAccessToAssetServices]): 24 * UIProcess/API/Cocoa/WKWebViewPrivate.h: 25 * UIProcess/API/ios/WKWebViewIOS.mm: 26 (-[WKWebView _grantAccessToAssetServices]): Deleted. 27 (-[WKWebView _revokeAccessToAssetServices]): Deleted. 28 * UIProcess/Cocoa/WebPageProxyCocoa.mm: 29 (WebKit::WebPageProxy::grantAccessToAssetServices): 30 (WebKit::WebPageProxy::revokeAccessToAssetServices): 31 * UIProcess/WebPageProxy.h: 32 * UIProcess/ios/WebPageProxyIOS.mm: 33 (WebKit::WebPageProxy::grantAccessToAssetServices): Deleted. 34 (WebKit::WebPageProxy::revokeAccessToAssetServices): Deleted. 35 * WebProcess/WebProcess.h: 36 * WebProcess/WebProcess.messages.in: 37 * WebProcess/cocoa/WebProcessCocoa.mm: 38 (WebKit::WebProcess::revokeAccessToAssetServices): 39 * WebProcess/com.apple.WebProcess.sb.in: 40 * WebProcess/glib/WebProcessGLib.cpp: 41 (WebKit::WebProcess::grantAccessToAssetServices): 42 (WebKit::WebProcess::revokeAccessToAssetServices): 43 * WebProcess/playstation/WebProcessPlayStation.cpp: 44 (WebKit::WebProcess::grantAccessToAssetServices): 45 (WebKit::WebProcess::revokeAccessToAssetServices): 46 * WebProcess/win/WebProcessWin.cpp: 47 (WebKit::WebProcess::grantAccessToAssetServices): 48 (WebKit::WebProcess::revokeAccessToAssetServices): 49 1 50 2021-03-02 Wenson Hsieh <wenson_hsieh@apple.com> 2 51 -
trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm
r273515 r273784 2168 2168 } 2169 2169 2170 - (void)_grantAccessToAssetServices 2171 { 2172 if (_page) 2173 _page->grantAccessToAssetServices(); 2174 } 2175 2176 - (void)_revokeAccessToAssetServices 2177 { 2178 if (_page) 2179 _page->revokeAccessToAssetServices(); 2180 } 2181 2170 2182 - (NSArray *)_certificateChain 2171 2183 { -
trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h
r273130 r273784 433 433 - (WKNavigation *)loadSimulatedRequest:(NSURLRequest *)request withResponseHTMLString:(NSString *)string WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA)); 434 434 435 - (void)_grantAccessToAssetServices WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(14.0)); 436 - (void)_revokeAccessToAssetServices WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(14.0)); 437 435 438 @end 436 439 … … 537 540 - (UIView *)_fullScreenPlaceholderView WK_API_AVAILABLE(ios(12.0)); 538 541 539 - (void)_grantAccessToAssetServices WK_API_AVAILABLE(ios(14.0));540 - (void)_revokeAccessToAssetServices WK_API_AVAILABLE(ios(14.0));541 542 542 - (void)_willOpenAppLink WK_API_AVAILABLE(ios(14.0)); 543 543 -
trunk/Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm
r273083 r273784 3241 3241 } 3242 3242 3243 - (void)_grantAccessToAssetServices3244 {3245 #if PLATFORM(IOS)3246 if (_page)3247 _page->grantAccessToAssetServices();3248 #endif3249 }3250 3251 - (void)_revokeAccessToAssetServices3252 {3253 #if PLATFORM(IOS)3254 if (_page)3255 _page->revokeAccessToAssetServices();3256 #endif3257 }3258 3259 3243 - (void)_willOpenAppLink 3260 3244 { -
trunk/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm
r273286 r273784 43 43 #import "WebPageMessages.h" 44 44 #import "WebPasteboardProxy.h" 45 #import "WebProcessMessages.h" 45 46 #import "WebProcessProxy.h" 46 47 #import "WebsiteDataStore.h" … … 619 620 } 620 621 622 void WebPageProxy::grantAccessToAssetServices() 623 { 624 SandboxExtension::Handle mobileAssetHandleV2; 625 SandboxExtension::createHandleForMachLookup("com.apple.mobileassetd.v2"_s, WTF::nullopt, mobileAssetHandleV2); 626 process().send(Messages::WebProcess::GrantAccessToAssetServices(mobileAssetHandleV2), 0); 627 } 628 629 void WebPageProxy::revokeAccessToAssetServices() 630 { 631 process().send(Messages::WebProcess::RevokeAccessToAssetServices(), 0); 632 } 633 621 634 } // namespace WebKit 622 635 -
trunk/Source/WebKit/UIProcess/WebPageProxy.h
r273778 r273784 1773 1773 const NativeWebKeyboardEvent& firstQueuedKeyEvent() const; 1774 1774 1775 #if PLATFORM(IOS)1776 1775 void grantAccessToAssetServices(); 1777 1776 void revokeAccessToAssetServices(); 1778 #endif1779 1777 1780 1778 #if PLATFORM(COCOA) -
trunk/Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm
r272975 r273784 1543 1543 #endif 1544 1544 1545 #if PLATFORM(IOS)1546 void WebPageProxy::grantAccessToAssetServices()1547 {1548 SandboxExtension::Handle mobileAssetHandleV2;1549 SandboxExtension::createHandleForMachLookup("com.apple.mobileassetd.v2"_s, WTF::nullopt, mobileAssetHandleV2);1550 process().send(Messages::WebProcess::GrantAccessToAssetServices(mobileAssetHandleV2), 0);1551 }1552 1553 void WebPageProxy::revokeAccessToAssetServices()1554 {1555 process().send(Messages::WebProcess::RevokeAccessToAssetServices(), 0);1556 }1557 #endif1558 1559 1545 void WebPageProxy::willPerformPasteCommand() 1560 1546 { -
trunk/Source/WebKit/WebProcess/WebProcess.h
r273735 r273784 340 340 #endif 341 341 342 #if PLATFORM(IOS)343 342 void grantAccessToAssetServices(WebKit::SandboxExtension::Handle&& mobileAssetV2Handle); 344 343 void revokeAccessToAssetServices(); 345 #endif346 344 347 345 #if PLATFORM(MAC) … … 703 701 #endif 704 702 705 #if PLATFORM(IOS)706 703 RefPtr<SandboxExtension> m_assetServiceV2Extension; 707 #endif708 704 709 705 #if PLATFORM(COCOA) -
trunk/Source/WebKit/WebProcess/WebProcess.messages.in
r273735 r273784 167 167 #endif 168 168 169 #if PLATFORM(IOS)170 169 GrantAccessToAssetServices(WebKit::SandboxExtension::Handle mobileAssetV2Handle) 171 170 RevokeAccessToAssetServices() 172 #endif173 171 174 172 #if PLATFORM(COCOA) -
trunk/Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm
r273657 r273784 1130 1130 #endif 1131 1131 1132 #if PLATFORM(IOS)1133 1132 void WebProcess::grantAccessToAssetServices(WebKit::SandboxExtension::Handle&& mobileAssetV2Handle) 1134 1133 { … … 1146 1145 m_assetServiceV2Extension = nullptr; 1147 1146 } 1148 #endif1149 1147 1150 1148 void WebProcess::setScreenProperties(const ScreenProperties& properties) -
trunk/Source/WebKit/WebProcess/com.apple.WebProcess.sb.in
r273510 r273784 1099 1099 #if __MAC_OS_X_VERSION_MIN_REQUIRED <= 110000 1100 1100 (allow mach-lookup 1101 (global-name "com.apple.mobileassetd") 1102 ) 1101 (require-all 1102 (extension "com.apple.webkit.extension.mach") 1103 (global-name 1104 "com.apple.mobileassetd" 1105 "com.apple.mobileassetd.v2" 1106 ))) 1107 #else 1108 (allow mach-lookup 1109 (require-all 1110 (extension "com.apple.webkit.extension.mach") 1111 (global-name "com.apple.mobileassetd.v2") 1112 )) 1103 1113 #endif 1104 1114 -
trunk/Source/WebKit/WebProcess/glib/WebProcessGLib.cpp
r271396 r273784 129 129 #endif 130 130 131 void WebProcess::grantAccessToAssetServices(WebKit::SandboxExtension::Handle&&) 132 { 133 } 134 135 void WebProcess::revokeAccessToAssetServices() 136 { 137 } 138 131 139 } // namespace WebKit -
trunk/Source/WebKit/WebProcess/playstation/WebProcessPlayStation.cpp
r254713 r273784 45 45 } 46 46 47 void WebProcess::grantAccessToAssetServices(WebKit::SandboxExtension::Handle&&) 48 { 49 } 50 51 void WebProcess::revokeAccessToAssetServices() 52 { 53 } 54 47 55 } // namespace WebKit -
trunk/Source/WebKit/WebProcess/win/WebProcessWin.cpp
r256720 r273784 52 52 } 53 53 54 void WebProcess::grantAccessToAssetServices(WebKit::SandboxExtension::Handle&&) 55 { 56 } 57 58 void WebProcess::revokeAccessToAssetServices() 59 { 60 } 61 54 62 } // namespace WebKit -
trunk/Tools/ChangeLog
r273776 r273784 1 2021-03-02 Myles C. Maxfield <mmaxfield@apple.com> 2 3 REGRESSION(r270691): It's impossible to use MobileAsset fonts on macOS 4 https://bugs.webkit.org/show_bug.cgi?id=222582 5 <rdar://problem/74877450> 6 7 Reviewed by Per Arne Vollan. 8 9 * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: 10 * TestWebKitAPI/Tests/WebKit/MobileAssetSandboxCheck.mm: Copied from Source/WebKit/WebProcess/win/WebProcessWin.cpp. 11 (TEST): 12 1 13 2021-03-02 Sam Weinig <weinig@apple.com> 2 14 -
trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
r273776 r273784 119 119 1CC80CEA2474F249004DC489 /* idempotent-mode-autosizing-only-honors-percentages.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 1CC80CE92474F1F7004DC489 /* idempotent-mode-autosizing-only-honors-percentages.html */; }; 120 120 1CE6FAC32320267C00E48F6E /* rich-color-filtered.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 1CE6FAC12320264F00E48F6E /* rich-color-filtered.html */; }; 121 1CF087D825ED7F73004148CB /* MobileAssetSandboxCheck.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1CF087D725ED7F73004148CB /* MobileAssetSandboxCheck.mm */; }; 121 122 1CF59AE221E68925006E37EC /* ForceLightAppearanceInBundle_Bundle.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1CF59AE021E68925006E37EC /* ForceLightAppearanceInBundle_Bundle.mm */; }; 122 123 1CF59AE321E68932006E37EC /* ForceLightAppearanceInBundle.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1CF59ADF21E68925006E37EC /* ForceLightAppearanceInBundle.mm */; }; … … 1819 1820 1CC80CE92474F1F7004DC489 /* idempotent-mode-autosizing-only-honors-percentages.html */ = {isa = PBXFileReference; lastKnownFileType = text.html; path = "idempotent-mode-autosizing-only-honors-percentages.html"; sourceTree = "<group>"; }; 1820 1821 1CE6FAC12320264F00E48F6E /* rich-color-filtered.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "rich-color-filtered.html"; sourceTree = "<group>"; }; 1822 1CF087D725ED7F73004148CB /* MobileAssetSandboxCheck.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = MobileAssetSandboxCheck.mm; sourceTree = "<group>"; }; 1821 1823 1CF0D3781BBF2F3D00B4EF54 /* WKRetainPtr.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKRetainPtr.cpp; sourceTree = "<group>"; }; 1822 1824 1CF59ADF21E68925006E37EC /* ForceLightAppearanceInBundle.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ForceLightAppearanceInBundle.mm; sourceTree = "<group>"; }; … … 3215 3217 E34A6D182412DE390012AB6E /* GrantAccessToPreferencesService.mm */, 3216 3218 E35B908123F60DD0000011FF /* LocalizedDeviceModel.mm */, 3219 1CF087D725ED7F73004148CB /* MobileAssetSandboxCheck.mm */, 3217 3220 C104BC1E2547237100C078C9 /* OverrideAppleLanguagesPreference.mm */, 3218 3221 E325C90623E3870200BC7D3B /* PictureInPictureSupport.mm */, … … 5430 5433 51EB126224CA6B66000CB030 /* MicrosoftXboxOne.mm in Sources */, 5431 5434 A5B149DE1F5A19EA00C6DAFF /* MIMETypeRegistry.cpp in Sources */, 5435 1CF087D825ED7F73004148CB /* MobileAssetSandboxCheck.mm in Sources */, 5432 5436 51CD1C6C1B38CE4300142CA5 /* ModalAlerts.mm in Sources */, 5433 5437 7C83E0B61D0A64B300FEBCF3 /* ModalAlertsSPI.cpp in Sources */, -
trunk/Tools/TestWebKitAPI/Tests/WebKit/MobileAssetSandboxCheck.mm
r273783 r273784 1 1 /* 2 * Copyright (C) 20 17 Sony Interactive Entertainment Inc.2 * Copyright (C) 2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 24 24 */ 25 25 26 #include "config.h" 27 #include "WebProcess.h" 26 #import "config.h" 28 27 29 #i nclude <WebCore/SharedBuffer.h>28 #if WK_HAVE_C_SPI 30 29 31 RefPtr<WebCore::SharedBuffer> loadResourceIntoBuffer(const char* name) 30 #import "PlatformUtilities.h" 31 #import "TestWKWebView.h" 32 #import <WebKit/WKWebViewPrivate.h> 33 34 TEST(WebKit, MobileAssetSandboxCheck) 32 35 { 33 return 0; 36 auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); 37 auto context = adoptWK(TestWebKitAPI::Util::createContextForInjectedBundleTest("InternalsInjectedBundleTest")); 38 configuration.get().processPool = (WKProcessPool *)context.get(); 39 auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSMakeRect(0, 0, 300, 300) configuration:configuration.get() addToWindow:YES]); 40 41 auto sandboxAccess = [&] { 42 return [webView stringByEvaluatingJavaScript:@"window.internals.hasSandboxMachLookupAccessToXPCServiceName('com.apple.WebKit.WebContent', 'com.apple.mobileassetd.v2')"].boolValue; 43 }; 44 45 ASSERT_FALSE(sandboxAccess()); 46 47 [webView _grantAccessToAssetServices]; 48 49 ASSERT_TRUE(sandboxAccess()); 34 50 } 35 51 36 namespace WebKit { 37 38 void WebProcess::platformInitializeWebProcess(WebProcessCreationParameters&) 39 { 40 } 41 42 void WebProcess::platformSetWebsiteDataStoreParameters(WebProcessDataStoreParameters&&) 43 { 44 } 45 46 void WebProcess::platformTerminate() 47 { 48 } 49 50 void WebProcess::platformSetCacheModel(CacheModel) 51 { 52 } 53 54 } // namespace WebKit 52 #endif // WK_HAVE_C_SPI
Note:
See TracChangeset
for help on using the changeset viewer.