⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 269109 in webkit


Ignore:
Timestamp:
Oct 28, 2020, 10:41:12 AM (6 years ago)
Author:
Aditya Keerthi
Message:

[Cocoa] Remove soft linking of Contacts.framework
https://bugs.webkit.org/show_bug.cgi?id=218289

Reviewed by Geoff Garen.

Since Contacts.framework does not depend on WebKit and soft linking is
discouraged, WebKit should link Contacts.framework normally.

Soft linking requires running the linker at runtime, leading to an
unwanted performance cost. By normally linking (on iOS) and weak linking
(on macOS), the linkage is declared at build time, which enables running
the linker at build/update/install time and avoiding the runtime cost.

  • Configurations/WebKit.xcconfig:

On macOS, weak link the framework since Contacts.framework is not
available on the Base System.

  • Platform/cocoa/PaymentAuthorizationPresenter.mm:

(WebKit::toNSError):

Location:
trunk/Source/WebKit
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r269096 r269109  
     12020-10-28  Aditya Keerthi  <akeerthi@apple.com>
     2
     3        [Cocoa] Remove soft linking of Contacts.framework
     4        https://bugs.webkit.org/show_bug.cgi?id=218289
     5
     6        Reviewed by Geoff Garen.
     7
     8        Since Contacts.framework does not depend on WebKit and soft linking is
     9        discouraged, WebKit should link Contacts.framework normally.
     10
     11        Soft linking requires running the linker at runtime, leading to an
     12        unwanted performance cost. By normally linking (on iOS) and weak linking
     13        (on macOS), the linkage is declared at build time, which enables running
     14        the linker at build/update/install time and avoiding the runtime cost.
     15
     16        * Configurations/WebKit.xcconfig:
     17
     18        On macOS, weak link the framework since Contacts.framework is not
     19        available on the Base System.
     20
     21        * Platform/cocoa/PaymentAuthorizationPresenter.mm:
     22        (WebKit::toNSError):
     23
    1242020-10-28  Adrian Perez de Castro  <aperez@igalia.com>
    225
  • trunk/Source/WebKit/Configurations/WebKit.xcconfig

    r268736 r269109  
    5353WK_BACKBOARD_SERVICES_LDFLAGS_iphoneos = -framework BackBoardServices;
    5454WK_BACKBOARD_SERVICES_LDFLAGS_iphonesimulator = -framework BackBoardServices;
     55
     56WK_CONTACTS_LDFLAGS = $(WK_CONTACTS_LDFLAGS_$(WK_PLATFORM_NAME));
     57WK_CONTACTS_LDFLAGS_iphoneos = -framework Contacts;
     58WK_CONTACTS_LDFLAGS_iphonesimulator = -framework Contacts;
     59WK_CONTACTS_LDFLAGS_macosx = -weak_framework Contacts;
    5560
    5661WK_RUNNINGBOARD_SERVICES_LDFLAGS = $(WK_RUNNINGBOARD_SERVICES_LDFLAGS_$(WK_COCOA_TOUCH));
     
    119124WK_AUTHKIT_LDFLAGS_MACOS_SINCE_1015 = -framework AuthKit;
    120125
    121 FRAMEWORK_AND_LIBRARY_LDFLAGS = -lobjc -framework CFNetwork -framework CoreAudio -framework CoreFoundation -framework CoreGraphics -framework CoreText -framework Foundation -framework ImageIO -framework IOKit -framework IOSurface -framework WebKitLegacy -lnetwork $(WK_ACCESSIBILITY_LDFLAGS) $(WK_APPKIT_LDFLAGS) $(WK_BACKBOARD_SERVICES_LDFLAGS) $(WK_RUNNINGBOARD_SERVICES_LDFLAGS) $(WK_AUTHKIT_LDFLAGS) $(WK_CARBON_LDFLAGS) $(WK_CORE_PREDICTION_LDFLAGS) $(WK_CORE_SERVICES_LDFLAGS) $(WK_GRAPHICS_SERVICES_LDFLAGS) $(WK_LIBSANDBOX_LDFLAGS) $(WK_LIBWEBRTC_LDFLAGS) $(WK_MOBILE_CORE_SERVICES_LDFLAGS) $(WK_MOBILE_GESTALT_LDFLAGS) $(WK_PDFKIT_LDFLAGS) $(WK_SAFE_BROWSING_LDFLAGS) $(WK_SECURITY_INTERFACE_LDFLAGS) $(WK_UIKIT_LDFLAGS) $(WK_URL_FORMATTING_LDFLAGS) $(WK_WEBINSPECTORUI_LDFLAGS);
     126FRAMEWORK_AND_LIBRARY_LDFLAGS = -lobjc -framework CFNetwork -framework CoreAudio -framework CoreFoundation -framework CoreGraphics -framework CoreText -framework Foundation -framework ImageIO -framework IOKit -framework IOSurface -framework WebKitLegacy -lnetwork $(WK_ACCESSIBILITY_LDFLAGS) $(WK_APPKIT_LDFLAGS) $(WK_BACKBOARD_SERVICES_LDFLAGS) $(WK_CONTACTS_LDFLAGS) $(WK_RUNNINGBOARD_SERVICES_LDFLAGS) $(WK_AUTHKIT_LDFLAGS) $(WK_CARBON_LDFLAGS) $(WK_CORE_PREDICTION_LDFLAGS) $(WK_CORE_SERVICES_LDFLAGS) $(WK_GRAPHICS_SERVICES_LDFLAGS) $(WK_LIBSANDBOX_LDFLAGS) $(WK_LIBWEBRTC_LDFLAGS) $(WK_MOBILE_CORE_SERVICES_LDFLAGS) $(WK_MOBILE_GESTALT_LDFLAGS) $(WK_PDFKIT_LDFLAGS) $(WK_SAFE_BROWSING_LDFLAGS) $(WK_SECURITY_INTERFACE_LDFLAGS) $(WK_UIKIT_LDFLAGS) $(WK_URL_FORMATTING_LDFLAGS) $(WK_WEBINSPECTORUI_LDFLAGS);
    122127
    123128// Prevent C++ standard library basic_stringstream, operator new, delete and their related exception types from being exported as weak symbols.
  • trunk/Source/WebKit/Platform/cocoa/PaymentAuthorizationPresenter.mm

    r263426 r269109  
    3939#import <pal/cocoa/PassKitSoftLink.h>
    4040
    41 SOFT_LINK_FRAMEWORK(Contacts);
    42 SOFT_LINK_CONSTANT(Contacts, CNPostalAddressCityKey, NSString *);
    43 SOFT_LINK_CONSTANT(Contacts, CNPostalAddressCountryKey, NSString *);
    44 SOFT_LINK_CONSTANT(Contacts, CNPostalAddressISOCountryCodeKey, NSString *);
    45 SOFT_LINK_CONSTANT(Contacts, CNPostalAddressPostalCodeKey, NSString *);
    46 SOFT_LINK_CONSTANT(Contacts, CNPostalAddressStateKey, NSString *);
    47 SOFT_LINK_CONSTANT(Contacts, CNPostalAddressStreetKey, NSString *);
    48 SOFT_LINK_CONSTANT(Contacts, CNPostalAddressSubAdministrativeAreaKey, NSString *);
    49 SOFT_LINK_CONSTANT(Contacts, CNPostalAddressSubLocalityKey, NSString *);
    50 
    5141namespace WebKit {
    5242
     
    116106        case WebCore::PaymentError::ContactField::AddressLines:
    117107            pkContactField = PAL::get_PassKit_PKContactFieldPostalAddress();
    118             postalAddressKey = getCNPostalAddressStreetKey();
     108            postalAddressKey = CNPostalAddressStreetKey;
    119109            break;
    120110           
    121111        case WebCore::PaymentError::ContactField::SubLocality:
    122112            pkContactField = PAL::get_PassKit_PKContactFieldPostalAddress();
    123             postalAddressKey = getCNPostalAddressSubLocalityKey();
     113            postalAddressKey = CNPostalAddressSubLocalityKey;
    124114            break;
    125115           
    126116        case WebCore::PaymentError::ContactField::Locality:
    127117            pkContactField = PAL::get_PassKit_PKContactFieldPostalAddress();
    128             postalAddressKey = getCNPostalAddressCityKey();
     118            postalAddressKey = CNPostalAddressCityKey;
    129119            break;
    130120           
    131121        case WebCore::PaymentError::ContactField::PostalCode:
    132122            pkContactField = PAL::get_PassKit_PKContactFieldPostalAddress();
    133             postalAddressKey = getCNPostalAddressPostalCodeKey();
     123            postalAddressKey = CNPostalAddressPostalCodeKey;
    134124            break;
    135125           
    136126        case WebCore::PaymentError::ContactField::SubAdministrativeArea:
    137127            pkContactField = PAL::get_PassKit_PKContactFieldPostalAddress();
    138             postalAddressKey = getCNPostalAddressSubAdministrativeAreaKey();
     128            postalAddressKey = CNPostalAddressSubAdministrativeAreaKey;
    139129            break;
    140130           
    141131        case WebCore::PaymentError::ContactField::AdministrativeArea:
    142132            pkContactField = PAL::get_PassKit_PKContactFieldPostalAddress();
    143             postalAddressKey = getCNPostalAddressStateKey();
     133            postalAddressKey = CNPostalAddressStateKey;
    144134            break;
    145135           
    146136        case WebCore::PaymentError::ContactField::Country:
    147137            pkContactField = PAL::get_PassKit_PKContactFieldPostalAddress();
    148             postalAddressKey = getCNPostalAddressCountryKey();
     138            postalAddressKey = CNPostalAddressCountryKey;
    149139            break;
    150140           
    151141        case WebCore::PaymentError::ContactField::CountryCode:
    152142            pkContactField = PAL::get_PassKit_PKContactFieldPostalAddress();
    153             postalAddressKey = getCNPostalAddressISOCountryCodeKey();
     143            postalAddressKey = CNPostalAddressISOCountryCodeKey;
    154144            break;
    155145        }
Note: See TracChangeset for help on using the changeset viewer.