Changeset 258447 in webkit


Ignore:
Timestamp:
Mar 13, 2020 4:33:33 PM (4 years ago)
Author:
mmaxfield@apple.com
Message:

[Cocoa] Push applicationSDKVersion() down from WebCore into WTF
https://bugs.webkit.org/show_bug.cgi?id=209030

Reviewed by Simon Fraser.

Source/JavaScriptCore:

dyld_get_program_sdk_version() gives you the wrong answer in the Web Process (or at least
not the answer you actually want). There are already facilities for the UI Process to tell
the Web Process what the real value is, but those functions are currently in WebCore,
which is inaccessible to WTF. This patch is in preparation for
https://bugs.webkit.org/show_bug.cgi?id=208969 which needs to know this information in WTF.

I also found a few places which were calling dyld_get_program_sdk_version() in JavaScriptCore
and WebCore (which is wrong because those libraries exist in the Web Process), and have fixed
them up to use applicationSDKVersion() instead.

  • API/JSWrapperMap.mm:

(supportsInitMethodConstructors):

Source/WebCore:

  • html/HTMLObjectElement.cpp:
  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::requiresFullscreenForVideoPlayback const):

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequest):

  • platform/RuntimeApplicationChecks.h:
  • platform/Timer.cpp:

(WebCore::shouldSuppressThreadSafetyCheck):

  • platform/cocoa/RuntimeApplicationChecksCocoa.mm:

(WebCore::applicationSDKVersionOverride): Deleted.
(WebCore::setApplicationSDKVersion): Deleted.
(WebCore::applicationSDKVersion): Deleted.

Source/WebKit:

  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultCSSOMViewScrollingAPIEnabled):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

Source/WTF:

  • WTF.xcodeproj/project.pbxproj:
  • wtf/PlatformMac.cmake:
  • wtf/cocoa/RuntimeApplicationChecksCocoa.cpp: Added.
  • wtf/cocoa/RuntimeApplicationChecksCocoa.h: Added.

(WTF::applicationSDKVersionOverride):
(WTF::setApplicationSDKVersion):
(WTF::applicationSDKVersion):

Location:
trunk/Source
Files:
2 added
16 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/API/JSWrapperMap.mm

    r254241 r258447  
    4141#import "WeakGCMapInlines.h"
    4242#import <wtf/Vector.h>
    43 #import <wtf/spi/darwin/dyldSPI.h>
     43
     44#if PLATFORM(COCOA)
     45#import <wtf/cocoa/RuntimeApplicationChecksCocoa.h>
     46#endif
    4447
    4548#include <mach-o/dyld.h>
     
    721724    static uint32_t programSDKVersion = 0;
    722725    if (!programSDKVersion)
    723         programSDKVersion = dyld_get_program_sdk_version();
     726        programSDKVersion = applicationSDKVersion();
    724727
    725728    return programSDKVersion >= firstSDKVersionWithInitConstructorSupport;
  • trunk/Source/JavaScriptCore/ChangeLog

    r258443 r258447  
     12020-03-13  Myles C. Maxfield  <mmaxfield@apple.com>
     2
     3        [Cocoa] Push applicationSDKVersion() down from WebCore into WTF
     4        https://bugs.webkit.org/show_bug.cgi?id=209030
     5
     6        Reviewed by Simon Fraser.
     7
     8        dyld_get_program_sdk_version() gives you the wrong answer in the Web Process (or at least
     9        not the answer you actually want). There are already facilities for the UI Process to tell
     10        the Web Process what the real value is, but those functions are currently in WebCore,
     11        which is inaccessible to WTF. This patch is in preparation for
     12        https://bugs.webkit.org/show_bug.cgi?id=208969 which needs to know this information in WTF.
     13
     14        I also found a few places which were calling dyld_get_program_sdk_version() in JavaScriptCore
     15        and WebCore (which is wrong because those libraries exist in the Web Process), and have fixed
     16        them up to use applicationSDKVersion() instead.
     17
     18        * API/JSWrapperMap.mm:
     19        (supportsInitMethodConstructors):
     20
    1212020-03-13  Yusuke Suzuki  <ysuzuki@apple.com>
    222
  • trunk/Source/WTF/ChangeLog

    r258314 r258447  
     12020-03-13  Myles C. Maxfield  <mmaxfield@apple.com>
     2
     3        [Cocoa] Push applicationSDKVersion() down from WebCore into WTF
     4        https://bugs.webkit.org/show_bug.cgi?id=209030
     5
     6        Reviewed by Simon Fraser.
     7
     8        * WTF.xcodeproj/project.pbxproj:
     9        * wtf/PlatformMac.cmake:
     10        * wtf/cocoa/RuntimeApplicationChecksCocoa.cpp: Added.
     11        * wtf/cocoa/RuntimeApplicationChecksCocoa.h: Added.
     12        (WTF::applicationSDKVersionOverride):
     13        (WTF::setApplicationSDKVersion):
     14        (WTF::applicationSDKVersion):
     15
    1162020-03-11  Jer Noble  <jer.noble@apple.com>
    217
  • trunk/Source/WTF/WTF.xcodeproj/project.pbxproj

    r257762 r258447  
    6262                1C181C961D30800A00F5FA16 /* TextBreakIteratorInternalICUCocoa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1C181C951D30800A00F5FA16 /* TextBreakIteratorInternalICUCocoa.cpp */; };
    6363                1C503BE623AAE0AE0072E66B /* LanguageCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1C503BE523AAE0AE0072E66B /* LanguageCocoa.mm */; };
     64                1CA85CA9241B0B260071C2F5 /* RuntimeApplicationChecksCocoa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1CA85CA8241B0B260071C2F5 /* RuntimeApplicationChecksCocoa.cpp */; };
    6465                1FA47C8A152502DA00568D1B /* WebCoreThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1FA47C88152502DA00568D1B /* WebCoreThread.cpp */; };
    6566                2CCD892A15C0390200285083 /* GregorianDateTime.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2CCD892915C0390200285083 /* GregorianDateTime.cpp */; };
     
    345346                1C503BE423AADEEA0072E66B /* NSLocaleSPI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSLocaleSPI.h; sourceTree = "<group>"; };
    346347                1C503BE523AAE0AE0072E66B /* LanguageCocoa.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = LanguageCocoa.mm; sourceTree = "<group>"; };
     348                1CA85CA7241B0B110071C2F5 /* RuntimeApplicationChecksCocoa.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RuntimeApplicationChecksCocoa.h; sourceTree = "<group>"; };
     349                1CA85CA8241B0B260071C2F5 /* RuntimeApplicationChecksCocoa.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = RuntimeApplicationChecksCocoa.cpp; sourceTree = "<group>"; };
    347350                1CCDB1491E566626006C73C0 /* TextBreakIteratorCF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextBreakIteratorCF.h; sourceTree = "<group>"; };
    348351                1CCDB14D1E566898006C73C0 /* TextBreakIteratorICU.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextBreakIteratorICU.h; sourceTree = "<group>"; };
     
    15171520                                5CC0EE882162BC2200A1A842 /* NSURLExtras.mm */,
    15181521                                E392FA2622E92BFF00ECDC73 /* ResourceUsageCocoa.cpp */,
     1522                                1CA85CA8241B0B260071C2F5 /* RuntimeApplicationChecksCocoa.cpp */,
     1523                                1CA85CA7241B0B110071C2F5 /* RuntimeApplicationChecksCocoa.h */,
    15191524                                A30D412C1F0DE0BA00B71954 /* SoftLinking.h */,
    15201525                                EB61EDC62409CCC0001EFE36 /* SystemTracingCocoa.cpp */,
     
    17001705                                2CDED0EF18115C38004DBA70 /* RunLoopCF.cpp in Sources */,
    17011706                                A3EE5C3E21FFAC7D00FABD61 /* RunLoopTimerCF.cpp in Sources */,
     1707                                1CA85CA9241B0B260071C2F5 /* RuntimeApplicationChecksCocoa.cpp in Sources */,
    17021708                                A3EE5C3D21FFAC7D00FABD61 /* SchedulePairCF.cpp in Sources */,
    17031709                                A3EE5C4021FFACA200FABD61 /* SchedulePairMac.mm in Sources */,
  • trunk/Source/WTF/wtf/PlatformMac.cmake

    r257762 r258447  
    1717    cocoa/Entitlements.h
    1818    cocoa/NSURLExtras.h
     19    cocoa/RuntimeApplicationChecksCocoa.h
    1920    cocoa/SoftLinking.h
    2021
     
    6667    cocoa/NSURLExtras.mm
    6768    cocoa/ResourceUsageCocoa.cpp
     69    cocoa/RuntimeApplicationChecksCocoa.cpp
    6870    cocoa/SystemTracingCocoa.cpp
    6971    cocoa/URLCocoa.mm
  • trunk/Source/WebCore/ChangeLog

    r258442 r258447  
     12020-03-13  Myles C. Maxfield  <mmaxfield@apple.com>
     2
     3        [Cocoa] Push applicationSDKVersion() down from WebCore into WTF
     4        https://bugs.webkit.org/show_bug.cgi?id=209030
     5
     6        Reviewed by Simon Fraser.
     7
     8        * html/HTMLObjectElement.cpp:
     9        * html/MediaElementSession.cpp:
     10        (WebCore::MediaElementSession::requiresFullscreenForVideoPlayback const):
     11        * loader/DocumentThreadableLoader.cpp:
     12        (WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequest):
     13        * platform/RuntimeApplicationChecks.h:
     14        * platform/Timer.cpp:
     15        (WebCore::shouldSuppressThreadSafetyCheck):
     16        * platform/cocoa/RuntimeApplicationChecksCocoa.mm:
     17        (WebCore::applicationSDKVersionOverride): Deleted.
     18        (WebCore::setApplicationSDKVersion): Deleted.
     19        (WebCore::applicationSDKVersion): Deleted.
     20
    1212020-03-13  Jiewen Tan  <jiewen_tan@apple.com>
    222
  • trunk/Source/WebCore/html/HTMLObjectElement.cpp

    r256905 r258447  
    5555#if PLATFORM(IOS_FAMILY)
    5656#include "RuntimeApplicationChecks.h"
    57 #include <wtf/spi/darwin/dyldSPI.h>
    5857#endif
    5958
  • trunk/Source/WebCore/html/MediaElementSession.cpp

    r257913 r258447  
    5555#include "AudioSession.h"
    5656#include "RuntimeApplicationChecks.h"
    57 #include <wtf/spi/darwin/dyldSPI.h>
     57#include <wtf/cocoa/RuntimeApplicationChecksCocoa.h>
    5858#endif
    5959
     
    739739    if (IOSApplication::isIBooks())
    740740        return !m_element.hasAttributeWithoutSynchronization(HTMLNames::webkit_playsinlineAttr) && !m_element.hasAttributeWithoutSynchronization(HTMLNames::playsinlineAttr);
    741     if (dyld_get_program_sdk_version() < DYLD_IOS_VERSION_10_0)
     741    if (applicationSDKVersion() < DYLD_IOS_VERSION_10_0)
    742742        return !m_element.hasAttributeWithoutSynchronization(HTMLNames::webkit_playsinlineAttr);
    743743#endif
  • trunk/Source/WebCore/loader/DocumentThreadableLoader.cpp

    r258330 r258447  
    6565
    6666#if PLATFORM(IOS_FAMILY)
    67 #include <wtf/spi/darwin/dyldSPI.h>
     67#include <wtf/cocoa/RuntimeApplicationChecksCocoa.h>
    6868#endif
    6969
  • trunk/Source/WebCore/platform/RuntimeApplicationChecks.h

    r256530 r258447  
    4343bool isInWebProcess();
    4444bool isInNetworkProcess();
    45 
    46 WEBCORE_EXPORT void setApplicationSDKVersion(uint32_t);
    47 WEBCORE_EXPORT uint32_t applicationSDKVersion();
    4845
    4946WEBCORE_EXPORT void setApplicationBundleIdentifier(const String&);
  • trunk/Source/WebCore/platform/Timer.cpp

    r254087 r258447  
    3838
    3939#if PLATFORM(COCOA)
    40 #include <wtf/spi/darwin/dyldSPI.h>
     40#include <wtf/cocoa/RuntimeApplicationChecksCocoa.h>
    4141#endif
    4242
  • trunk/Source/WebCore/platform/cocoa/RuntimeApplicationChecksCocoa.mm

    r256530 r258447  
    7676}
    7777
    78 static Optional<uint32_t>& applicationSDKVersionOverride()
    79 {
    80     static NeverDestroyed<Optional<uint32_t>> version;
    81     return version;
    82 }
    83 
    84 void setApplicationSDKVersion(uint32_t version)
    85 {
    86     applicationSDKVersionOverride() = version;
    87 }
    88 
    89 uint32_t applicationSDKVersion()
    90 {
    91     if (applicationSDKVersionOverride())
    92         return *applicationSDKVersionOverride();
    93     return dyld_get_program_sdk_version();
    94 }
    95 
    9678bool isInWebProcess()
    9779{
  • trunk/Source/WebKit/ChangeLog

    r258445 r258447  
     12020-03-13  Myles C. Maxfield  <mmaxfield@apple.com>
     2
     3        [Cocoa] Push applicationSDKVersion() down from WebCore into WTF
     4        https://bugs.webkit.org/show_bug.cgi?id=209030
     5
     6        Reviewed by Simon Fraser.
     7
     8        * NetworkProcess/cocoa/NetworkProcessCocoa.mm:
     9        (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
     10        * Shared/WebPreferencesDefaultValues.cpp:
     11        (WebKit::defaultCSSOMViewScrollingAPIEnabled):
     12        * WebProcess/cocoa/WebProcessCocoa.mm:
     13        (WebKit::WebProcess::platformInitializeWebProcess):
     14
    1152020-03-13  Brent Fulgham  <bfulgham@apple.com>
    216
  • trunk/Source/WebKit/NetworkProcess/cocoa/NetworkProcessCocoa.mm

    r256845 r258447  
    4646#import <wtf/ProcessPrivilege.h>
    4747#import <wtf/RetainPtr.h>
     48#import <wtf/cocoa/RuntimeApplicationChecksCocoa.h>
    4849
    4950namespace WebKit {
     
    7273{
    7374    WebCore::setApplicationBundleIdentifier(parameters.uiProcessBundleIdentifier);
    74     WebCore::setApplicationSDKVersion(parameters.uiProcessSDKVersion);
     75    setApplicationSDKVersion(parameters.uiProcessSDKVersion);
    7576
    7677#if HAVE(HSTS_STORAGE_PATH)
  • trunk/Source/WebKit/Shared/WebPreferencesDefaultValues.cpp

    r258134 r258447  
    2929
    3030#if PLATFORM(COCOA)
     31#include "VersionChecks.h"
    3132#include <pal/spi/cocoa/FeatureFlagsSPI.h>
    32 #include <wtf/spi/darwin/dyldSPI.h>
    33 #endif
    34 
    35 #if PLATFORM(IOS_FAMILY)
    36 #include "VersionChecks.h"
     33#include <wtf/cocoa/RuntimeApplicationChecksCocoa.h>
    3734#endif
    3835
     
    5148{
    5249#if PLATFORM(IOS_FAMILY)
    53     if (WebCore::IOSApplication::isIMDb() && WebCore::applicationSDKVersion() < DYLD_IOS_VERSION_13_0)
     50    if (WebCore::IOSApplication::isIMDb() && applicationSDKVersion() < DYLD_IOS_VERSION_13_0)
    5451        return false;
    5552#endif
  • trunk/Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm

    r258359 r258447  
    8484#import <wtf/ProcessPrivilege.h>
    8585#import <wtf/cocoa/NSURLExtras.h>
     86#import <wtf/cocoa/RuntimeApplicationChecksCocoa.h>
    8687
    8788#if ENABLE(REMOTE_INSPECTOR)
     
    174175
    175176    WebCore::setApplicationBundleIdentifier(parameters.uiProcessBundleIdentifier);
    176     WebCore::setApplicationSDKVersion(parameters.uiProcessSDKVersion);
     177    setApplicationSDKVersion(parameters.uiProcessSDKVersion);
    177178
    178179    m_uiProcessBundleIdentifier = parameters.uiProcessBundleIdentifier;
Note: See TracChangeset for help on using the changeset viewer.