Skip to content

Commit d4fb01e

Browse files
author
Matthew Benedict
committed
More changes
1 parent ce199fb commit d4fb01e

File tree

4 files changed

+24
-10
lines changed

4 files changed

+24
-10
lines changed

Source/CyberCore/PAL/pal/spi/cocoa/LaunchServicesSPI.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -117,11 +117,11 @@ WTF_EXTERN_C_END
117117
#import <CoreServices/LSDatabaseContext+CyberKit.h>
118118
#elif !USE(APPLE_INTERNAL_SDK)
119119
@interface LSDatabaseContext (CyberKitChangeTracking)
120-
- (id <NSObject>)addDatabaseChangeObserver4CyberKit:(void (^)(xpc_object_t change))observer;
121-
- (void)removeDatabaseChangeObserver4CyberKit:(id <NSObject>)token;
122-
- (void)observeDatabaseChange4CyberKit:(xpc_object_t)change;
120+
- (id <NSObject>)addDatabaseChangeObserver4WebKit:(void (^)(xpc_object_t change))observer;
121+
- (void)removeDatabaseChangeObserver4WebKit:(id <NSObject>)token;
122+
- (void)observeDatabaseChange4WebKit:(xpc_object_t)change;
123123

124-
- (void)getSystemContentDatabaseObject4CyberKit:(void (^)(xpc_object_t object, NSError *error))completion;
124+
- (void)getSystemContentDatabaseObject4WebKit:(void (^)(xpc_object_t object, NSError *error))completion;
125125
@end
126126
#endif
127127
#endif

Source/CyberKit/NetworkProcess/cocoa/LaunchServicesDatabaseObserver.mm

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,9 @@
3737
LaunchServicesDatabaseObserver::LaunchServicesDatabaseObserver(NetworkProcess&)
3838
{
3939
#if HAVE(LSDATABASECONTEXT) && !HAVE(SYSTEM_CONTENT_LS_DATABASE)
40-
m_observer = [LSDatabaseContext.sharedDatabaseContext addDatabaseChangeObserver4CyberKit:^(xpc_object_t change) {
40+
if (![LSDatabaseContext.sharedDatabaseContext respondsToSelector:@selector(addDatabaseChangeObserver4WebKit:)])
41+
return;
42+
m_observer = [LSDatabaseContext.sharedDatabaseContext addDatabaseChangeObserver4WebKit:^(xpc_object_t change) {
4143
auto message = adoptOSObject(xpc_dictionary_create(nullptr, nullptr, 0));
4244
xpc_dictionary_set_string(message.get(), XPCEndpoint::xpcMessageNameKey, LaunchServicesDatabaseXPCConstants::xpcUpdateLaunchServicesDatabaseMessageName);
4345
xpc_dictionary_set_value(message.get(), LaunchServicesDatabaseXPCConstants::xpcLaunchServicesDatabaseKey, change);
@@ -75,15 +77,22 @@
7577

7678
}).get()];
7779
#elif HAVE(LSDATABASECONTEXT)
78-
RetainPtr<id> observer = [LSDatabaseContext.sharedDatabaseContext addDatabaseChangeObserver4CyberKit:^(xpc_object_t change) {
80+
if (![LSDatabaseContext.sharedDatabaseContext respondsToSelector:@selector(addDatabaseChangeObserver4WebKit:)]) {
81+
auto message = adoptOSObject(xpc_dictionary_create(nullptr, nullptr, 0));
82+
xpc_dictionary_set_string(message.get(), XPCEndpoint::xpcMessageNameKey, LaunchServicesDatabaseXPCConstants::xpcUpdateLaunchServicesDatabaseMessageName);
83+
xpc_connection_send_message(connection.get(), message.get());
84+
return;
85+
}
86+
87+
RetainPtr<id> observer = [LSDatabaseContext.sharedDatabaseContext addDatabaseChangeObserver4WebKit:^(xpc_object_t change) {
7988
auto message = adoptOSObject(xpc_dictionary_create(nullptr, nullptr, 0));
8089
xpc_dictionary_set_string(message.get(), XPCEndpoint::xpcMessageNameKey, LaunchServicesDatabaseXPCConstants::xpcUpdateLaunchServicesDatabaseMessageName);
8190
xpc_dictionary_set_value(message.get(), LaunchServicesDatabaseXPCConstants::xpcLaunchServicesDatabaseKey, change);
8291

8392
xpc_connection_send_message(connection.get(), message.get());
8493
}];
8594

86-
[LSDatabaseContext.sharedDatabaseContext removeDatabaseChangeObserver4CyberKit:observer.get()];
95+
[LSDatabaseContext.sharedDatabaseContext removeDatabaseChangeObserver4WebKit:observer.get()];
8796
#else
8897
auto message = adoptOSObject(xpc_dictionary_create(nullptr, nullptr, 0));
8998
xpc_dictionary_set_string(message.get(), XPCEndpoint::xpcMessageNameKey, LaunchServicesDatabaseXPCConstants::xpcUpdateLaunchServicesDatabaseMessageName);
@@ -94,7 +103,7 @@
94103
LaunchServicesDatabaseObserver::~LaunchServicesDatabaseObserver()
95104
{
96105
#if HAVE(LSDATABASECONTEXT) && !HAVE(SYSTEM_CONTENT_LS_DATABASE)
97-
[LSDatabaseContext.sharedDatabaseContext removeDatabaseChangeObserver4CyberKit:m_observer.get()];
106+
[LSDatabaseContext.sharedDatabaseContext removeDatabaseChangeObserver4WebKit:m_observer.get()];
98107
#endif
99108
}
100109

Source/CyberKit/WebProcess/cocoa/LaunchServicesDatabaseManager.mm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
RELEASE_LOG(Loading, "Received Launch Services database %p", database);
5353

5454
if (database)
55-
[LSDatabaseContext.sharedDatabaseContext observeDatabaseChange4CyberKit:database];
55+
[LSDatabaseContext.sharedDatabaseContext observeDatabaseChange4WebKit:database];
5656
#endif
5757
m_semaphore.signal();
5858
m_hasReceivedLaunchServicesDatabase = true;

script_fakesigner.entitlements

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,8 @@
133133
<true/>
134134
<key>com.apple.security.cs.allow-jit</key>
135135
<true/>
136+
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
137+
<true/>
136138
<key>com.apple.security.cs.jit-write-allowlist</key>
137139
<true/>
138140
<key>com.apple.security.cs.single-jit</key>
@@ -215,7 +217,10 @@
215217
<key>com.apple.security.get-task-allow</key>
216218
<true/>
217219
<key>com.apple.security.iokit-user-client-class</key>
218-
<string>AGXDeviceUserClient</string>
220+
<array>
221+
<string>AGXDeviceUserClient</string>
222+
<string>IOSurfaceRootUserClient</string>
223+
</array>
219224
<key>com.apple.security.network.client</key>
220225
<true/>
221226
<key>com.apple.security.temporary-exception.sbpl</key>

0 commit comments

Comments
 (0)