Make the Plug-in XPCService build work even when building in Xcode
authorweinig@apple.com <weinig@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 11 Feb 2013 05:16:52 +0000 (05:16 +0000)
committerweinig@apple.com <weinig@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 11 Feb 2013 05:16:52 +0000 (05:16 +0000)
<rdar://problem/13011186>
https://bugs.webkit.org/show_bug.cgi?id=109392

Reviewed by Anders Carlsson.

* Configurations/DebugRelease.xcconfig:
Add a DEBUG_OR_RELEASE variable to test against.
* Configurations/PluginService.32.xcconfig:
* Configurations/PluginService.64.xcconfig:
In non-production builds, don't link against WebKit2, so that we don't get warnings about WebKit2.framework
not containing the right architectures. This is ok, as these services are not used in non-production builds.

* NetworkProcess/EntryPoint/mac/XPCService/NetworkService.Development/Info.plist:
* NetworkProcess/EntryPoint/mac/XPCService/NetworkService.Development/NetworkServiceMain.Development.mm:
* NetworkProcess/EntryPoint/mac/XPCService/NetworkService/Info.plist:
* NetworkProcess/EntryPoint/mac/XPCService/NetworkService/NetworkServiceMain.mm:
* PluginProcess/EntryPoint/mac/XPCService/PluginService.32/Info.plist:
* PluginProcess/EntryPoint/mac/XPCService/PluginService.32/PluginService.32.Main.mm:
* PluginProcess/EntryPoint/mac/XPCService/PluginService.64/Info.plist:
* PluginProcess/EntryPoint/mac/XPCService/PluginService.64/PluginService.64.Main.mm:
* PluginProcess/EntryPoint/mac/XPCService/PluginService.Development/Info.plist:
* PluginProcess/EntryPoint/mac/XPCService/PluginService.Development/PluginService.Development.Main.mm:
* WebProcess/EntryPoint/mac/XPCService/WebContentService.Development/Info.plist:
* WebProcess/EntryPoint/mac/XPCService/WebContentService.Development/WebContentServiceMain.Development.mm:
* WebProcess/EntryPoint/mac/XPCService/WebContentService/Info.plist:
* WebProcess/EntryPoint/mac/XPCService/WebContentService/WebContentServiceMain.mm:
Switch off the the old idiom of defining a macro for the initializer function, and instead set
it in the Info.plist, so the XPCServiceBootstrapper can grab it.

* Shared/EntryPointUtilities/mac/XPCService/XPCServiceBootstrapper.Development.h:
(WebKit::XPCServiceEventHandler):
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceBootstrapper.h:
(WebKit::XPCServiceEventHandler):
Get the entry point from the bundle, rather than the macro. This is not only a bit less gross,
but also allows us to build without having linked against WebKit2.framework.

* UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
(WebKit::shouldUseXPC):
Re-enable using XPC for plug-ins.

* WebKit2.xcodeproj/project.pbxproj:
Update project.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@142428 268f45cc-cd09-0410-ab3c-d52691b4dbfc

22 files changed:
Source/WebKit2/ChangeLog
Source/WebKit2/Configurations/DebugRelease.xcconfig
Source/WebKit2/Configurations/PluginService.32.xcconfig
Source/WebKit2/Configurations/PluginService.64.xcconfig
Source/WebKit2/NetworkProcess/EntryPoint/mac/XPCService/NetworkService.Development/Info.plist
Source/WebKit2/NetworkProcess/EntryPoint/mac/XPCService/NetworkService.Development/NetworkServiceMain.Development.mm
Source/WebKit2/NetworkProcess/EntryPoint/mac/XPCService/NetworkService/Info.plist
Source/WebKit2/NetworkProcess/EntryPoint/mac/XPCService/NetworkService/NetworkServiceMain.mm
Source/WebKit2/PluginProcess/EntryPoint/mac/XPCService/PluginService.32/Info.plist
Source/WebKit2/PluginProcess/EntryPoint/mac/XPCService/PluginService.32/PluginService.32.Main.mm
Source/WebKit2/PluginProcess/EntryPoint/mac/XPCService/PluginService.64/Info.plist
Source/WebKit2/PluginProcess/EntryPoint/mac/XPCService/PluginService.64/PluginService.64.Main.mm
Source/WebKit2/PluginProcess/EntryPoint/mac/XPCService/PluginService.Development/Info.plist
Source/WebKit2/PluginProcess/EntryPoint/mac/XPCService/PluginService.Development/PluginService.Development.Main.mm
Source/WebKit2/Shared/EntryPointUtilities/mac/XPCService/XPCServiceBootstrapper.Development.h
Source/WebKit2/Shared/EntryPointUtilities/mac/XPCService/XPCServiceBootstrapper.h
Source/WebKit2/UIProcess/Plugins/mac/PluginProcessProxyMac.mm
Source/WebKit2/WebKit2.xcodeproj/project.pbxproj
Source/WebKit2/WebProcess/EntryPoint/mac/XPCService/WebContentService.Development/Info.plist
Source/WebKit2/WebProcess/EntryPoint/mac/XPCService/WebContentService.Development/WebContentServiceMain.Development.mm
Source/WebKit2/WebProcess/EntryPoint/mac/XPCService/WebContentService/Info.plist
Source/WebKit2/WebProcess/EntryPoint/mac/XPCService/WebContentService/WebContentServiceMain.mm

index 53dcf0c..a7ad1d1 100644 (file)
@@ -1,3 +1,49 @@
+2013-02-10  Sam Weinig  <sam@webkit.org>
+
+        Make the Plug-in XPCService build work even when building in Xcode
+        <rdar://problem/13011186>
+        https://bugs.webkit.org/show_bug.cgi?id=109392
+
+        Reviewed by Anders Carlsson.
+
+        * Configurations/DebugRelease.xcconfig:
+        Add a DEBUG_OR_RELEASE variable to test against.
+        * Configurations/PluginService.32.xcconfig:
+        * Configurations/PluginService.64.xcconfig:
+        In non-production builds, don't link against WebKit2, so that we don't get warnings about WebKit2.framework
+        not containing the right architectures. This is ok, as these services are not used in non-production builds.
+
+        * NetworkProcess/EntryPoint/mac/XPCService/NetworkService.Development/Info.plist:
+        * NetworkProcess/EntryPoint/mac/XPCService/NetworkService.Development/NetworkServiceMain.Development.mm:
+        * NetworkProcess/EntryPoint/mac/XPCService/NetworkService/Info.plist:
+        * NetworkProcess/EntryPoint/mac/XPCService/NetworkService/NetworkServiceMain.mm:
+        * PluginProcess/EntryPoint/mac/XPCService/PluginService.32/Info.plist:
+        * PluginProcess/EntryPoint/mac/XPCService/PluginService.32/PluginService.32.Main.mm:
+        * PluginProcess/EntryPoint/mac/XPCService/PluginService.64/Info.plist:
+        * PluginProcess/EntryPoint/mac/XPCService/PluginService.64/PluginService.64.Main.mm:
+        * PluginProcess/EntryPoint/mac/XPCService/PluginService.Development/Info.plist:
+        * PluginProcess/EntryPoint/mac/XPCService/PluginService.Development/PluginService.Development.Main.mm:
+        * WebProcess/EntryPoint/mac/XPCService/WebContentService.Development/Info.plist:
+        * WebProcess/EntryPoint/mac/XPCService/WebContentService.Development/WebContentServiceMain.Development.mm:
+        * WebProcess/EntryPoint/mac/XPCService/WebContentService/Info.plist:
+        * WebProcess/EntryPoint/mac/XPCService/WebContentService/WebContentServiceMain.mm:
+        Switch off the the old idiom of defining a macro for the initializer function, and instead set
+        it in the Info.plist, so the XPCServiceBootstrapper can grab it.
+
+        * Shared/EntryPointUtilities/mac/XPCService/XPCServiceBootstrapper.Development.h:
+        (WebKit::XPCServiceEventHandler):
+        * Shared/EntryPointUtilities/mac/XPCService/XPCServiceBootstrapper.h:
+        (WebKit::XPCServiceEventHandler):
+        Get the entry point from the bundle, rather than the macro. This is not only a bit less gross,
+        but also allows us to build without having linked against WebKit2.framework.
+
+        * UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
+        (WebKit::shouldUseXPC):
+        Re-enable using XPC for plug-ins.
+
+        * WebKit2.xcodeproj/project.pbxproj:
+        Update project.
+
 2013-02-10  Anders Carlsson  <andersca@apple.com>
 
         Add back code that was accidentally removed when moving plug-in enumeration back to the main thread
index c8e72f3..4f43384 100644 (file)
@@ -41,3 +41,5 @@ WEBKIT_SYSTEM_INTERFACE_LIBRARY = $(WEBKIT_SYSTEM_INTERFACE_LIBRARY_$(TARGET_MAC
 WEBKIT_SYSTEM_INTERFACE_LIBRARY_1070 = WebKitSystemInterfaceLion;
 WEBKIT_SYSTEM_INTERFACE_LIBRARY_1080 = WebKitSystemInterfaceMountainLion;
 WEBKIT_SYSTEM_INTERFACE_LIBRARY_1090 = WebKitSystemInterfaceMountainLion;
+
+DEBUG_OR_RELEASE = YES;
index 68bcf5e..4500e9a 100644 (file)
 ARCHS = i386;
 PRODUCT_NAME = com.apple.WebKit.Plugin.32;
 INFOPLIST_FILE = PluginProcess/EntryPoint/mac/XPCService/PluginService.32/Info.plist;
+
+// Since this service is only used in production builds, in debug and release builds
+// we don't link against WebKit2, to avoid linking errors due to not having a WebKit2
+// of the right architecture.
+
+FRAMEWORK_LDFLAGS = -framework Foundation $(FRAMEWORK_LDFLAGS_$(DEBUG_OR_RELEASE));
+FRAMEWORK_LDFLAGS_ = -framework WebKit2;
+FRAMEWORK_LDFLAGS_NO = -framework WebKit2;
+FRAMEWORK_LDFLAGS_YES = ;
+
+OTHER_LDFLAGS = $(FRAMEWORK_LDFLAGS) $(OTHER_LDFLAGS);
index 5702dd4..5f44f44 100644 (file)
 ARCHS = x86_64;
 PRODUCT_NAME = com.apple.WebKit.Plugin.64;
 INFOPLIST_FILE = PluginProcess/EntryPoint/mac/XPCService/PluginService.64/Info.plist;
+
+// Since this service is only used in production builds, in debug and release builds
+// we don't link against WebKit2, to avoid linking errors due to not having a WebKit2
+// of the right architecture.
+
+FRAMEWORK_LDFLAGS = -framework Foundation $(FRAMEWORK_LDFLAGS_$(DEBUG_OR_RELEASE));
+FRAMEWORK_LDFLAGS_ = -framework WebKit2;
+FRAMEWORK_LDFLAGS_NO = -framework WebKit2;
+FRAMEWORK_LDFLAGS_YES = ;
+
+OTHER_LDFLAGS = $(FRAMEWORK_LDFLAGS) $(OTHER_LDFLAGS);
index fad43ee..5f4c4cd 100644 (file)
@@ -26,6 +26,8 @@
        <true/>
        <key>NSPrincipalClass</key>
        <string>NSApplication</string>
+       <key>WebKitEntryPoint</key>
+       <string>NetworkServiceInitializer</string>
        <key>LSUIElement</key>
        <true/>
        <key>XPCService</key>
index bc983cf..fcea8dc 100644 (file)
@@ -26,6 +26,8 @@
        <true/>
        <key>NSPrincipalClass</key>
        <string>NSApplication</string>
+       <key>WebKitEntryPoint</key>
+       <string>NetworkServiceInitializer</string>
        <key>LSUIElement</key>
        <true/>
        <key>XPCService</key>
index bf8ff14..574c099 100644 (file)
@@ -26,6 +26,8 @@
        <true/>
        <key>NSPrincipalClass</key>
        <string>NSApplication</string>
+       <key>WebKitEntryPoint</key>
+       <string>PluginServiceInitializer</string>
        <key>LSUIElement</key>
        <true/>
        <key>XPCService</key>
index 9d3d4b7..93ee22c 100644 (file)
@@ -26,6 +26,8 @@
        <true/>
        <key>NSPrincipalClass</key>
        <string>NSApplication</string>
+       <key>WebKitEntryPoint</key>
+       <string>PluginServiceInitializer</string>
        <key>LSUIElement</key>
        <true/>
        <key>XPCService</key>
index ead5707..5a50bf1 100644 (file)
@@ -26,6 +26,8 @@
        <true/>
        <key>NSPrincipalClass</key>
        <string>NSApplication</string>
+       <key>WebKitEntryPoint</key>
+       <string>PluginServiceInitializer</string>
        <key>LSUIElement</key>
        <true/>
        <key>XPCService</key>
index 0c1c460..3986127 100644 (file)
 #ifndef XPCServiceBootstrapper_Development_h
 #define XPCServiceBootstrapper_Development_h
 
-#if !defined(WEBKIT_XPC_SERVICE_INITIALIZER)
-#error WEBKIT_XPC_SERVICE_INITIALIZER must be defined.
-#endif
-
 #import <crt_externs.h>
 #import <dlfcn.h>
 #import <mach-o/dyld.h>
@@ -38,9 +34,6 @@
 #import <stdlib.h>
 #import <xpc/xpc.h>
 
-#define STRINGIZE(exp) #exp
-#define STRINGIZE_VALUE_OF(exp) STRINGIZE(exp)
-
 namespace WebKit {
 
 static void XPCServiceEventHandler(xpc_connection_t peer)
@@ -114,10 +107,13 @@ static void XPCServiceEventHandler(xpc_connection_t peer)
                     exit(EXIT_FAILURE);
                 }
 
+                CFBundleRef webKit2Bundle = CFBundleGetBundleWithIdentifier(CFSTR("com.apple.WebKit2"));
+                CFStringRef entryPointFunctionName = (CFStringRef)CFBundleGetValueForInfoDictionaryKey(CFBundleGetMainBundle(), CFSTR("WebKitEntryPoint"));
+
                 typedef void (*InitializerFunction)(xpc_connection_t, xpc_object_t);
-                InitializerFunction initializerFunctionPtr = reinterpret_cast<InitializerFunction>(dlsym(frameworkLibrary, STRINGIZE_VALUE_OF(WEBKIT_XPC_SERVICE_INITIALIZER)));
+                InitializerFunction initializerFunctionPtr = reinterpret_cast<InitializerFunction>(CFBundleGetFunctionPointerForName(webKit2Bundle, entryPointFunctionName));
                 if (!initializerFunctionPtr) {
-                    NSLog(@"Unable to find entry point in WebKit2.framework loaded from path: %s (Error: %s)", xpc_dictionary_get_string(event, "framework-executable-path"), dlerror());
+                    NSLog(@"Unable to find entry point in WebKit2.framework with name: %@", (NSString *)entryPointFunctionName);
                     exit(EXIT_FAILURE);
                 }
 
index fd4f32b..4c8f527 100644 (file)
 #ifndef XPCServiceBootstrapper_h
 #define XPCServiceBootstrapper_h
 
-#if !defined(WEBKIT_XPC_SERVICE_INITIALIZER)
-#error WEBKIT_XPC_SERVICE_INITIALIZER must be defined.
-#endif
-
+#import <CoreFoundation/CoreFoundation.h>
 #import <xpc/xpc.h>
 
-// Forward declare the specified initializer.
-extern "C" void WEBKIT_XPC_SERVICE_INITIALIZER(xpc_connection_t, xpc_object_t);
-
 namespace WebKit {
 
 static void XPCServiceEventHandler(xpc_connection_t peer)
@@ -51,12 +45,22 @@ static void XPCServiceEventHandler(xpc_connection_t peer)
             assert(type == XPC_TYPE_DICTIONARY);
 
             if (!strcmp(xpc_dictionary_get_string(event, "message-name"), "bootstrap")) {
+                CFBundleRef webKit2Bundle = CFBundleGetBundleWithIdentifier(CFSTR("com.apple.WebKit2"));
+                CFStringRef entryPointFunctionName = (CFStringRef)CFBundleGetValueForInfoDictionaryKey(CFBundleGetMainBundle(), CFSTR("WebKitEntryPoint"));
+
+                typedef void (*InitializerFunction)(xpc_connection_t, xpc_object_t);
+                InitializerFunction initializerFunctionPtr = reinterpret_cast<InitializerFunction>(CFBundleGetFunctionPointerForName(webKit2Bundle, entryPointFunctionName));
+                if (!initializerFunctionPtr) {
+                    NSLog(@"Unable to find entry point in WebKit2.framework with name: %@", (NSString *)entryPointFunctionName);
+                    exit(EXIT_FAILURE);
+                }
+
                 xpc_object_t reply = xpc_dictionary_create_reply(event);
                 xpc_dictionary_set_string(reply, "message-name", "process-finished-launching");
                 xpc_connection_send_message(xpc_dictionary_get_remote_connection(event), reply);
                 xpc_release(reply);
 
-                WEBKIT_XPC_SERVICE_INITIALIZER(peer, event);
+                initializerFunctionPtr(peer, event);
             }
         }
     });
index a270464..b3d87f2 100644 (file)
@@ -124,7 +124,7 @@ static bool shouldUseXPC()
         return [value boolValue];
 
 #if __MAC_OS_X_VERSION_MIN_REQUIRED >= 1090
-    return false;
+    return true;
 #else
     return false;
 #endif
index 1c59df1..7b53b1c 100644 (file)
@@ -24,6 +24,7 @@
                                BCAE9DFD160C0AB000A33217 /* PBXTargetDependency */,
                                BC8283D516B4C01F00A278FE /* PBXTargetDependency */,
                                BC8283D716B4C02200A278FE /* PBXTargetDependency */,
+                               BCCDE2D616C88DAA00D90310 /* PBXTargetDependency */,
                                BC82844616B4FF6600A278FE /* PBXTargetDependency */,
                                BC82844816B4FF6F00A278FE /* PBXTargetDependency */,
                        );
                BC8283D816B4DB2A00A278FE /* NetworkServiceMain.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC8283A416B4BD9100A278FE /* NetworkServiceMain.mm */; };
                BC8283D916B4DB2E00A278FE /* NetworkServiceMain.Development.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC8283A716B4BD9100A278FE /* NetworkServiceMain.Development.mm */; };
                BC8283DA16B4DB9300A278FE /* WebKit2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DC2EF5B0486A6940098B216 /* WebKit2.framework */; };
-               BC8283FA16B4FDDE00A278FE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC8283B216B4BF7700A278FE /* Foundation.framework */; };
-               BC82842016B4FDF600A278FE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC8283B216B4BF7700A278FE /* Foundation.framework */; };
                BC82843316B4FE1400A278FE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC8283B216B4BF7700A278FE /* Foundation.framework */; };
                BC82844916B5004200A278FE /* PluginService.32.Main.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC8283E516B4F8E200A278FE /* PluginService.32.Main.mm */; };
                BC82844B16B5004D00A278FE /* PluginService.64.Main.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC8283EB16B4F8E200A278FE /* PluginService.64.Main.mm */; };
                BC82844D16B5081C00A278FE /* PluginServiceEntryPoint.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC8283EF16B4F8E200A278FE /* PluginServiceEntryPoint.mm */; };
-               BC82844E16B5089400A278FE /* WebKit2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DC2EF5B0486A6940098B216 /* WebKit2.framework */; };
-               BC82844F16B5089800A278FE /* WebKit2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DC2EF5B0486A6940098B216 /* WebKit2.framework */; };
                BC8452A71162C80900CAB9B5 /* DrawingArea.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC8452A51162C80900CAB9B5 /* DrawingArea.cpp */; };
                BC8452A81162C80900CAB9B5 /* DrawingArea.h in Headers */ = {isa = PBXBuildFile; fileRef = BC8452A61162C80900CAB9B5 /* DrawingArea.h */; };
                BC84EB1812A7100C0083F2DA /* WebPreferencesMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC84EB1712A7100C0083F2DA /* WebPreferencesMac.mm */; };
                        remoteGlobalIDString = BCAE9DE8160C097400A33217;
                        remoteInfo = WebProcessServiceForWebKitDevelopment;
                };
+               BCCDE2D516C88DAA00D90310 /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
+                       proxyType = 1;
+                       remoteGlobalIDString = BC8283F816B4FDDE00A278FE;
+                       remoteInfo = Plugin.32;
+               };
                BCDE093513272496001259FB /* PBXContainerItemProxy */ = {
                        isa = PBXContainerItemProxy;
                        containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
                1AB16AEB164B41E400290D62 /* RemoteGraphicsLayer.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RemoteGraphicsLayer.mm; sourceTree = "<group>"; };
                1AB16AEC164B41E400290D62 /* RemoteGraphicsLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RemoteGraphicsLayer.h; sourceTree = "<group>"; };
                1AB31A9316BC65AB00F6DBC9 /* StorageManager.messages.in */ = {isa = PBXFileReference; lastKnownFileType = text; path = StorageManager.messages.in; sourceTree = "<group>"; };
-               1AB31A9416BC688100F6DBC9 /* StorageManagerMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = StorageManagerMessageReceiver.cpp; path = StorageManagerMessageReceiver.cpp; sourceTree = "<group>"; };
-               1AB31A9516BC688100F6DBC9 /* StorageManagerMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = StorageManagerMessages.h; path = StorageManagerMessages.h; sourceTree = "<group>"; };
+               1AB31A9416BC688100F6DBC9 /* StorageManagerMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StorageManagerMessageReceiver.cpp; sourceTree = "<group>"; };
+               1AB31A9516BC688100F6DBC9 /* StorageManagerMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StorageManagerMessages.h; sourceTree = "<group>"; };
                1AB7D4C81288AAA700CFD08C /* DownloadProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DownloadProxy.h; sourceTree = "<group>"; };
                1AB7D4C91288AAA700CFD08C /* DownloadProxy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DownloadProxy.cpp; sourceTree = "<group>"; };
                1AB7D5E91288B8C000CFD08C /* DownloadProxy.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = DownloadProxy.messages.in; sourceTree = "<group>"; };
                        isa = PBXFrameworksBuildPhase;
                        buildActionMask = 2147483647;
                        files = (
-                               BC8283FA16B4FDDE00A278FE /* Foundation.framework in Frameworks */,
-                               BC82844E16B5089400A278FE /* WebKit2.framework in Frameworks */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
                        isa = PBXFrameworksBuildPhase;
                        buildActionMask = 2147483647;
                        files = (
-                               BC82842016B4FDF600A278FE /* Foundation.framework in Frameworks */,
-                               BC82844F16B5089800A278FE /* WebKit2.framework in Frameworks */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
                        target = BCAE9DE8160C097400A33217 /* WebContent.Development */;
                        targetProxy = BCAE9DFC160C0AB000A33217 /* PBXContainerItemProxy */;
                };
+               BCCDE2D616C88DAA00D90310 /* PBXTargetDependency */ = {
+                       isa = PBXTargetDependency;
+                       target = BC8283F816B4FDDE00A278FE /* Plugin.32 */;
+                       targetProxy = BCCDE2D516C88DAA00D90310 /* PBXContainerItemProxy */;
+               };
                BCDE093413272496001259FB /* PBXTargetDependency */ = {
                        isa = PBXTargetDependency;
                        target = 1AC25FAF12A48EA700BD2671 /* PluginProcessShim */;
index 85538a5..280ce26 100644 (file)
@@ -26,6 +26,8 @@
        <true/>
        <key>NSPrincipalClass</key>
        <string>NSApplication</string>
+       <key>WebKitEntryPoint</key>
+       <string>WebContentServiceInitializer</string>
        <key>LSUIElement</key>
        <true/>
        <key>XPCService</key>
index f1803b1..26e4cc2 100644 (file)
@@ -26,6 +26,8 @@
        <true/>
        <key>NSPrincipalClass</key>
        <string>NSApplication</string>
+       <key>WebKitEntryPoint</key>
+       <string>WebContentServiceInitializer</string>
        <key>LSUIElement</key>
        <true/>
        <key>XPCService</key>