Changeset 263857 in webkit
- Timestamp:
- Jul 2, 2020, 1:26:56 PM (6 years ago)
- Location:
- trunk/Source/WebKit
- Files:
-
- 3 edited
-
ChangeLog (modified) (1 diff)
-
Shared/ios/AuxiliaryProcessIOS.mm (modified) (2 diffs)
-
Shared/mac/AuxiliaryProcessMac.mm (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r263854 r263857 1 2020-07-02 Chris Dumez <cdumez@apple.com> 2 3 FloatingPointEnvironment::saveMainThreadEnvironment() is not called for macOS Catalyst apps on Apple Silicon 4 https://bugs.webkit.org/show_bug.cgi?id=213897 5 <rdar://problem/64607098> 6 7 Reviewed by Darin Adler. 8 9 FloatingPointEnvironment::saveMainThreadEnvironment() is not called for macOS Catalyst apps on Apple Silicon 10 This causes crashes because FloatingPointEnvironment::propagateMainThreadEnvironment() is called for worker 11 threads for such apps on this platform. 12 13 * Shared/ios/AuxiliaryProcessIOS.mm: 14 (WebKit::AuxiliaryProcess::initializeSandbox): 15 Drop some dead code for PLATFORM(MACCATALYST) since the whole file is protected with !PLATFORM(MACCATALYST). 16 Mac Catalyst uses AuxiliaryProcessMac.mm instead. 17 18 * Shared/mac/AuxiliaryProcessMac.mm: 19 (WebKit::AuxiliaryProcess::platformInitialize): 20 Call FloatingPointEnvironment::saveMainThreadEnvironment() on AuxiliaryProcessMac.mm since this 21 platformInitialize() is used for Mac Catalyst and Catalyst apps may now run on Apple Silicon / ARM. 22 Note that FloatingPointEnvironment::saveMainThreadEnvironment() is a no-op on platforms where it is 23 not needed. 24 1 25 2020-07-02 Ryan Haddad <ryanhaddad@apple.com> 2 26 -
trunk/Source/WebKit/Shared/ios/AuxiliaryProcessIOS.mm
r250723 r263857 40 40 #import <wtf/FileSystem.h> 41 41 42 #if PLATFORM(MACCATALYST)43 #import <wtf/spi/darwin/SandboxSPI.h>44 #endif45 46 42 namespace WebKit { 47 43 … … 54 50 } 55 51 56 void AuxiliaryProcess::initializeSandbox(const AuxiliaryProcessInitializationParameters& parameters, SandboxInitializationParameters& sandboxParameters)52 void AuxiliaryProcess::initializeSandbox(const AuxiliaryProcessInitializationParameters&, SandboxInitializationParameters&) 57 53 { 58 #if PLATFORM(MACCATALYST)59 NSBundle *webkit2Bundle = [NSBundle bundleForClass:NSClassFromString(@"WKWebView")];60 String defaultProfilePath = [webkit2Bundle pathForResource:[[NSBundle mainBundle] bundleIdentifier] ofType:@"sb"];61 if (sandboxParameters.userDirectorySuffix().isNull()) {62 String defaultUserDirectorySuffix = makeString(String([[NSBundle mainBundle] bundleIdentifier]), '+', parameters.clientIdentifier);63 sandboxParameters.setUserDirectorySuffix(defaultUserDirectorySuffix);64 }65 66 switch (sandboxParameters.mode()) {67 case SandboxInitializationParameters::UseDefaultSandboxProfilePath:68 case SandboxInitializationParameters::UseOverrideSandboxProfilePath: {69 String sandboxProfilePath = sandboxParameters.mode() == SandboxInitializationParameters::UseDefaultSandboxProfilePath ? defaultProfilePath : sandboxParameters.overrideSandboxProfilePath();70 if (!sandboxProfilePath.isEmpty()) {71 CString profilePath = FileSystem::fileSystemRepresentation(sandboxProfilePath);72 char* errorBuf;73 ALLOW_DEPRECATED_DECLARATIONS_BEGIN74 if (sandbox_init_with_parameters(profilePath.data(), SANDBOX_NAMED_EXTERNAL, sandboxParameters.namedParameterArray(), &errorBuf)) {75 ALLOW_DEPRECATED_DECLARATIONS_END76 WTFLogAlways("%s: Couldn't initialize sandbox profile [%s], error '%s'\n", getprogname(), profilePath.data(), errorBuf);77 for (size_t i = 0, count = sandboxParameters.count(); i != count; ++i)78 WTFLogAlways("%s=%s\n", sandboxParameters.name(i), sandboxParameters.value(i));79 exit(EX_NOPERM);80 }81 }82 83 break;84 }85 case SandboxInitializationParameters::UseSandboxProfile: {86 char* errorBuf;87 ALLOW_DEPRECATED_DECLARATIONS_BEGIN88 if (sandbox_init_with_parameters(sandboxParameters.sandboxProfile().utf8().data(), 0, sandboxParameters.namedParameterArray(), &errorBuf)) {89 ALLOW_DEPRECATED_DECLARATIONS_END90 WTFLogAlways("%s: Couldn't initialize sandbox profile, error '%s'\n", getprogname(), errorBuf);91 for (size_t i = 0, count = sandboxParameters.count(); i != count; ++i)92 WTFLogAlways("%s=%s\n", sandboxParameters.name(i), sandboxParameters.value(i));93 exit(EX_NOPERM);94 }95 96 break;97 }98 }99 #else100 UNUSED_PARAM(parameters);101 UNUSED_PARAM(sandboxParameters);102 54 RELEASE_ASSERT_NOT_REACHED(); 103 #endif104 55 } 105 56 -
trunk/Source/WebKit/Shared/mac/AuxiliaryProcessMac.mm
r263773 r263857 37 37 #import "XPCServiceEntryPoint.h" 38 38 #import <WebCore/FileHandle.h> 39 #import <WebCore/FloatingPointEnvironment.h> 39 40 #import <WebCore/SystemVersion.h> 40 41 #import <mach-o/dyld.h> … … 162 163 { 163 164 initializeTimerCoalescingPolicy(); 165 166 FloatingPointEnvironment::singleton().saveMainThreadEnvironment(); 167 164 168 [[NSFileManager defaultManager] changeCurrentDirectoryPath:[[NSBundle mainBundle] bundlePath]]; 165 169 }
Note:
See TracChangeset
for help on using the changeset viewer.