Changeset 291821 in webkit


Ignore:
Timestamp:
Mar 24, 2022 4:14:15 PM (2 years ago)
Author:
pvollan@apple.com
Message:

REGRESSION(r286590): Links with URL schemes are not clickable in Mail
https://bugs.webkit.org/show_bug.cgi?id=238262
<rdar://89145552>

Reviewed by Geoffrey Garen.

This feature requires access to the Launch Services daemon in Mail and other apps on iOS.
This patch is a partial revert of r286590.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::nonBrowserServices):
(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

Location:
trunk/Source/WebKit
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r291818 r291821  
     12022-03-24  Per Arne Vollan  <pvollan@apple.com>
     2
     3        REGRESSION(r286590): Links with URL schemes are not clickable in Mail
     4        https://bugs.webkit.org/show_bug.cgi?id=238262
     5        <rdar://89145552>
     6
     7        Reviewed by Geoffrey Garen.
     8
     9        This feature requires access to the Launch Services daemon in Mail and other apps on iOS.
     10        This patch is a partial revert of r286590.
     11
     12        * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
     13        * Shared/WebProcessCreationParameters.cpp:
     14        (WebKit::WebProcessCreationParameters::encode const):
     15        (WebKit::WebProcessCreationParameters::decode):
     16        * Shared/WebProcessCreationParameters.h:
     17        * UIProcess/Cocoa/WebProcessPoolCocoa.mm:
     18        (WebKit::nonBrowserServices):
     19        (WebKit::WebProcessPool::platformInitializeWebProcess):
     20        * WebProcess/cocoa/WebProcessCocoa.mm:
     21        (WebKit::WebProcess::platformInitializeWebProcess):
     22
    1232022-03-24  Brent Fulgham  <bfulgham@apple.com>
    224
  • trunk/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in

    r291814 r291821  
    11101110        (global-name
    11111111            "com.apple.iconservices"
     1112            "com.apple.lsd.open"
    11121113        )
    11131114    )
  • trunk/Source/WebKit/Shared/WebProcessCreationParameters.cpp

    r291472 r291821  
    173173
    174174#if PLATFORM(IOS_FAMILY)
     175    encoder << dynamicMachExtensionHandles;
    175176    encoder << dynamicIOKitExtensionHandles;
    176177#endif
     
    482483
    483484#if PLATFORM(IOS_FAMILY)
     485    std::optional<Vector<SandboxExtension::Handle>> dynamicMachExtensionHandles;
     486    decoder >> dynamicMachExtensionHandles;
     487    if (!dynamicMachExtensionHandles)
     488        return false;
     489    parameters.dynamicMachExtensionHandles = WTFMove(*dynamicMachExtensionHandles);
     490
    484491    std::optional<Vector<SandboxExtension::Handle>> dynamicIOKitExtensionHandles;
    485492    decoder >> dynamicIOKitExtensionHandles;
  • trunk/Source/WebKit/Shared/WebProcessCreationParameters.h

    r291472 r291821  
    214214
    215215#if PLATFORM(IOS_FAMILY)
     216    Vector<SandboxExtension::Handle> dynamicMachExtensionHandles;
    216217    Vector<SandboxExtension::Handle> dynamicIOKitExtensionHandles;
    217218#endif
  • trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm

    r291511 r291821  
    292292}
    293293
     294#if PLATFORM(IOS_FAMILY)
     295static const Vector<ASCIILiteral>& nonBrowserServices()
     296{
     297    ASSERT(isMainRunLoop());
     298    static NeverDestroyed services = Vector<ASCIILiteral> {
     299        "com.apple.lsd.open"_s,
     300    };
     301    return services;
     302}
     303#endif
     304
    294305void WebProcessPool::platformInitializeWebProcess(const WebProcessProxy& process, WebProcessCreationParameters& parameters)
    295306{
     
    408419
    409420#if PLATFORM(IOS_FAMILY)
     421    if (!isFullWebBrowser())
     422        parameters.dynamicMachExtensionHandles = SandboxExtension::createHandlesForMachLookup(nonBrowserServices(), std::nullopt);
     423
    410424    if (WebCore::deviceHasAGXCompilerService())
    411425        parameters.dynamicIOKitExtensionHandles = SandboxExtension::createHandlesForIOKitClassExtensions(WebCore::agxCompilerClasses(), std::nullopt);
  • trunk/Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm

    r291190 r291821  
    427427
    428428#if PLATFORM(IOS_FAMILY)
     429    SandboxExtension::consumePermanently(parameters.dynamicMachExtensionHandles);
    429430    SandboxExtension::consumePermanently(parameters.dynamicIOKitExtensionHandles);
    430431#endif
Note: See TracChangeset for help on using the changeset viewer.