Title: [204843] trunk/Source/WebCore
Revision
204843
Author
[email protected]
Date
2016-08-23 11:36:44 -0700 (Tue, 23 Aug 2016)

Log Message

Add a workaround for iOS Frameworks that expect DOM bindings to be in WebCore
https://bugs.webkit.org/show_bug.cgi?id=161093

Reviewed by Dan Bernstein.

Create a text-based stub library that looks enough like WebKitLegacy that we can trick the linker
into creating a LC_REEXPORT_DYLIB load command in WebCore.

* Configurations/WebCore.xcconfig:
Link against this WebKitLegacyStub tbd file on iOS 9.0, 9.3 and 10.0.

* Configurations/WebKitLegacyStub.iOS.tbd:
Add new tbd file.

* WebCore.xcodeproj/project.pbxproj:
Add new files.

Modified Paths

Added Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (204842 => 204843)


--- trunk/Source/WebCore/ChangeLog	2016-08-23 18:14:30 UTC (rev 204842)
+++ trunk/Source/WebCore/ChangeLog	2016-08-23 18:36:44 UTC (rev 204843)
@@ -1,3 +1,22 @@
+2016-08-23  Anders Carlsson  <[email protected]>
+
+        Add a workaround for iOS Frameworks that expect DOM bindings to be in WebCore
+        https://bugs.webkit.org/show_bug.cgi?id=161093
+
+        Reviewed by Dan Bernstein.
+
+        Create a text-based stub library that looks enough like WebKitLegacy that we can trick the linker
+        into creating a LC_REEXPORT_DYLIB load command in WebCore.
+
+        * Configurations/WebCore.xcconfig:
+        Link against this WebKitLegacyStub tbd file on iOS 9.0, 9.3 and 10.0.
+
+        * Configurations/WebKitLegacyStub.iOS.tbd:
+        Add new tbd file.
+
+        * WebCore.xcodeproj/project.pbxproj:
+        Add new files.
+
 2016-08-23  Chris Dumez  <[email protected]>
 
         CanvasRenderingContext2D should not have a CanvasRenderingContext parent interface

Modified: trunk/Source/WebCore/Configurations/WebCore.xcconfig (204842 => 204843)


--- trunk/Source/WebCore/Configurations/WebCore.xcconfig	2016-08-23 18:14:30 UTC (rev 204842)
+++ trunk/Source/WebCore/Configurations/WebCore.xcconfig	2016-08-23 18:36:44 UTC (rev 204843)
@@ -57,9 +57,17 @@
 INSTALLHDRS_SCRIPT_PHASE = YES;
 PRODUCT_NAME = WebCore;
 UNEXPORTED_SYMBOLS_FILE = Configurations/WebCore.unexp;
+
+WK_PREFIXED_IPHONEOS_DEPLOYMENT_TARGET = V$(IPHONEOS_DEPLOYMENT_TARGET);
+
+WK_IOS_BINCOMPAT_LDFLAGS = $(WK_IOS_BINCOMPAT_LDFLAGS_$(WK_PREFIXED_IPHONEOS_DEPLOYMENT_TARGET:identifier));
+WK_IOS_BINCOMPAT_LDFLAGS_V9_0 = -Wl,-reexport_library,$(SRCROOT)/Configurations/WebKitLegacyStub.iOS.tbd;
+WK_IOS_BINCOMPAT_LDFLAGS_V9_3 = $(WK_IOS_BINCOMPAT_LDFLAGS_V9_0);
+WK_IOS_BINCOMPAT_LDFLAGS_V10_0 = $(WK_IOS_BINCOMPAT_LDFLAGS_V9_3);
+
 OTHER_LDFLAGS = $(inherited) $(OTHER_LDFLAGS_PLATFORM);
 OTHER_LDFLAGS_BASE = -lsqlite3 -lobjc -lANGLE;
-OTHER_LDFLAGS_BASE_ios = $(OTHER_LDFLAGS_BASE) -framework CFNetwork -framework CoreGraphics -framework CoreText -framework Foundation -framework ImageIO -framework OpenGLES -lMobileGestalt;
+OTHER_LDFLAGS_BASE_ios = $(OTHER_LDFLAGS_BASE) -framework CFNetwork -framework CoreGraphics -framework CoreText -framework Foundation -framework ImageIO -framework OpenGLES -lMobileGestalt $(WK_IOS_BINCOMPAT_LDFLAGS);
 OTHER_LDFLAGS_PLATFORM[sdk=iphoneos*] = $(OTHER_LDFLAGS_BASE_ios) -framework IOSurface;
 OTHER_LDFLAGS_PLATFORM[sdk=iphonesimulator*] = $(OTHER_LDFLAGS_BASE_ios);
 OTHER_LDFLAGS_PLATFORM[sdk=macosx*] = $(OTHER_LDFLAGS_BASE) -sub_library libobjc -umbrella WebKit -allowable_client WebCoreTestSupport -allowable_client WebKit2 -allowable_client WebKitLegacy -framework ApplicationServices -framework AudioUnit -framework Carbon -framework Cocoa -framework CoreAudio -framework DataDetectorsCore -framework IOSurface -framework OpenGL -framework SystemConfiguration;

Added: trunk/Source/WebCore/Configurations/WebKitLegacyStub.iOS.tbd (0 => 204843)


--- trunk/Source/WebCore/Configurations/WebKitLegacyStub.iOS.tbd	                        (rev 0)
+++ trunk/Source/WebCore/Configurations/WebKitLegacyStub.iOS.tbd	2016-08-23 18:36:44 UTC (rev 204843)
@@ -0,0 +1,7 @@
+---
+archs:           [ armv7, armv7s, arm64, i386, x86_64 ]
+platform:        ios
+install-name:    /System/Library/PrivateFrameworks/WebKitLegacy.framework/WebKitLegacy
+current-version: 603.1.3
+objc-constraint: none
+...

Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (204842 => 204843)


--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj	2016-08-23 18:14:30 UTC (rev 204842)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj	2016-08-23 18:36:44 UTC (rev 204843)
@@ -7777,6 +7777,7 @@
 		1AE96A851D1A0A8000B86768 /* JSApplePayValidateMerchantEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSApplePayValidateMerchantEvent.h; sourceTree = "<group>"; };
 		1AE96A861D1A0CEB00B86768 /* PaymentAuthorizationStatus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PaymentAuthorizationStatus.h; sourceTree = "<group>"; };
 		1AE96A871D1A0CEB00B86768 /* PaymentMerchantSession.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PaymentMerchantSession.h; sourceTree = "<group>"; };
+		1AEA88FF1D6CBF5E00E5AD64 /* WebKitLegacyStub.iOS.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; path = WebKitLegacyStub.iOS.tbd; sourceTree = "<group>"; };
 		1AED3BD91D3D5F260099FD78 /* PassKitSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PassKitSPI.h; sourceTree = "<group>"; };
 		1AEF4E66170E160300AB2799 /* CachedFontClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CachedFontClient.h; sourceTree = "<group>"; };
 		1AEF4E68170E174800AB2799 /* CachedSVGDocumentClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CachedSVGDocumentClient.h; sourceTree = "<group>"; };
@@ -15459,6 +15460,7 @@
 				1CDD45E50BA9C84600F90147 /* WebCore.xcconfig */,
 				E1BA66F21742BDCC00C20251 /* WebCoreTestShim.xcconfig */,
 				4181707D1386EDF20057AAA4 /* WebCoreTestSupport.xcconfig */,
+				1AEA88FF1D6CBF5E00E5AD64 /* WebKitLegacyStub.iOS.tbd */,
 			);
 			path = Configurations;
 			sourceTree = "<group>";
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to