Source/WebKit/ChangeLog

 12020-12-21 Peng Liu <peng.liu6@apple.com>
 2
 3 [Cocoa] Add a script to generate the "Feature Flags" plist file
 4 https://bugs.webkit.org/show_bug.cgi?id=220080
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 Add a script to combine a plist file from WebKitAdditions with the corresponding plist
 9 file in this repo to generate a `WebKit.plist` required by the Feature Flags interface.
 10
 11 * FeatureFlags/WebKit-appletvos.plist: Copied from Source/WebKit/FeatureFlags/WebKit.plist.
 12 * FeatureFlags/WebKit-ios.plist: Copied from Source/WebKit/FeatureFlags/WebKit.plist.
 13 * FeatureFlags/WebKit-macos.plist: Copied from Source/WebKit/FeatureFlags/WebKit.plist.
 14 * FeatureFlags/WebKit-watchos.plist: Renamed from Source/WebKit/FeatureFlags/WebKit.plist.
 15 * Scripts/combine-feature-flags-plist.py: Added.
 16 (main):
 17 * Scripts/generate-feature-flags-plist.sh: Added.
 18 * WebKit.xcodeproj/project.pbxproj:
 19
1202020-12-18 Peng Liu <peng.liu6@apple.com>
221
322 [Media in GPU Process][MSE] SourceBufferPrivateRemote needs to override some track buffer related functions of SourceBufferPrivate

Source/WebKit/FeatureFlags/WebKit-appletvos.plist

was renamed from

Source/WebKit/FeatureFlags/WebKit.plist

4646 <dict>
4747 <key>Enabled</key>
4848 <true/>
49  </dict>
50  <key>ScriptOptimizations</key>
51  <dict>
52  <key>Enabled</key>
53  <false/>
5449 </dict>
5550 <key>sw_vp9_decoder_on_battery</key>
5651 <dict>

Source/WebKit/FeatureFlags/WebKit-ios.plist

 1<?xml version="1.0" encoding="UTF-8"?>
 2<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 3<plist version="1.0">
 4<dict>
 5 <key>app_highlights</key>
 6 <dict>
 7 <key>Enabled</key>
 8 <true/>
 9 </dict>
 10 <key>async_frame_and_overflow_scrolling</key>
 11 <dict>
 12 <key>Enabled</key>
 13 <true/>
 14 </dict>
 15 <key>gpu_process_canvas_rendering</key>
 16 <dict>
 17 <key>Enabled</key>
 18 <false/>
 19 </dict>
 20 <key>gpu_process_dom_rendering</key>
 21 <dict>
 22 <key>Enabled</key>
 23 <false/>
 24 </dict>
 25 <key>gpu_process_media</key>
 26 <dict>
 27 <key>Enabled</key>
 28 <false/>
 29 </dict>
 30 <key>gpu_process_webgl</key>
 31 <dict>
 32 <key>Enabled</key>
 33 <false/>
 34 </dict>
 35 <key>gpu_process_webrtc</key>
 36 <dict>
 37 <key>Enabled</key>
 38 <false/>
 39 </dict>
 40 <key>InAppBrowserPrivacy</key>
 41 <dict>
 42 <key>Enabled</key>
 43 <false/>
 44 </dict>
 45 <key>incremental_pdf</key>
 46 <dict>
 47 <key>Enabled</key>
 48 <true/>
 49 </dict>
 50 <key>sw_vp9_decoder_on_battery</key>
 51 <dict>
 52 <key>Enabled</key>
 53 <false/>
 54 </dict>
 55 <key>vp9_decoder</key>
 56 <dict>
 57 <key>Enabled</key>
 58 <true/>
 59 </dict>
 60 <key>WebGL2</key>
 61 <dict>
 62 <key>Enabled</key>
 63 <false/>
 64 </dict>
 65 <key>WebGPU</key>
 66 <dict>
 67 <key>Enabled</key>
 68 <false/>
 69 </dict>
 70 <key>WebXR</key>
 71 <dict>
 72 <key>Enabled</key>
 73 <false/>
 74 </dict>
 75 <key>webm_format_reader</key>
 76 <dict>
 77 <key>Enabled</key>
 78 <true/>
 79 </dict>
 80 <key>webm_parser</key>
 81 <dict>
 82 <key>Enabled</key>
 83 <true/>
 84 </dict>
 85 <key>RB_full_manage_WK_jetsam</key>
 86 <dict>
 87 <key>Enabled</key>
 88 <true/>
 89 </dict>
 90</dict>
 91</plist>

Source/WebKit/FeatureFlags/WebKit-macos.plist

 1<?xml version="1.0" encoding="UTF-8"?>
 2<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 3<plist version="1.0">
 4<dict>
 5 <key>app_highlights</key>
 6 <dict>
 7 <key>Enabled</key>
 8 <true/>
 9 </dict>
 10 <key>async_frame_and_overflow_scrolling</key>
 11 <dict>
 12 <key>Enabled</key>
 13 <true/>
 14 </dict>
 15 <key>gpu_process_canvas_rendering</key>
 16 <dict>
 17 <key>Enabled</key>
 18 <false/>
 19 </dict>
 20 <key>gpu_process_dom_rendering</key>
 21 <dict>
 22 <key>Enabled</key>
 23 <false/>
 24 </dict>
 25 <key>gpu_process_media</key>
 26 <dict>
 27 <key>Enabled</key>
 28 <false/>
 29 </dict>
 30 <key>gpu_process_webgl</key>
 31 <dict>
 32 <key>Enabled</key>
 33 <false/>
 34 </dict>
 35 <key>gpu_process_webrtc</key>
 36 <dict>
 37 <key>Enabled</key>
 38 <false/>
 39 </dict>
 40 <key>InAppBrowserPrivacy</key>
 41 <dict>
 42 <key>Enabled</key>
 43 <false/>
 44 </dict>
 45 <key>incremental_pdf</key>
 46 <dict>
 47 <key>Enabled</key>
 48 <true/>
 49 </dict>
 50 <key>sw_vp9_decoder_on_battery</key>
 51 <dict>
 52 <key>Enabled</key>
 53 <false/>
 54 </dict>
 55 <key>vp9_decoder</key>
 56 <dict>
 57 <key>Enabled</key>
 58 <true/>
 59 </dict>
 60 <key>WebGL2</key>
 61 <dict>
 62 <key>Enabled</key>
 63 <false/>
 64 </dict>
 65 <key>WebGPU</key>
 66 <dict>
 67 <key>Enabled</key>
 68 <false/>
 69 </dict>
 70 <key>WebXR</key>
 71 <dict>
 72 <key>Enabled</key>
 73 <false/>
 74 </dict>
 75 <key>webm_format_reader</key>
 76 <dict>
 77 <key>Enabled</key>
 78 <true/>
 79 </dict>
 80 <key>webm_parser</key>
 81 <dict>
 82 <key>Enabled</key>
 83 <true/>
 84 </dict>
 85 <key>RB_full_manage_WK_jetsam</key>
 86 <dict>
 87 <key>Enabled</key>
 88 <true/>
 89 </dict>
 90</dict>
 91</plist>

Source/WebKit/FeatureFlags/WebKit-watchos.plist

 1<?xml version="1.0" encoding="UTF-8"?>
 2<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 3<plist version="1.0">
 4<dict>
 5 <key>app_highlights</key>
 6 <dict>
 7 <key>Enabled</key>
 8 <true/>
 9 </dict>
 10 <key>async_frame_and_overflow_scrolling</key>
 11 <dict>
 12 <key>Enabled</key>
 13 <true/>
 14 </dict>
 15 <key>gpu_process_canvas_rendering</key>
 16 <dict>
 17 <key>Enabled</key>
 18 <false/>
 19 </dict>
 20 <key>gpu_process_dom_rendering</key>
 21 <dict>
 22 <key>Enabled</key>
 23 <false/>
 24 </dict>
 25 <key>gpu_process_media</key>
 26 <dict>
 27 <key>Enabled</key>
 28 <false/>
 29 </dict>
 30 <key>gpu_process_webgl</key>
 31 <dict>
 32 <key>Enabled</key>
 33 <false/>
 34 </dict>
 35 <key>gpu_process_webrtc</key>
 36 <dict>
 37 <key>Enabled</key>
 38 <false/>
 39 </dict>
 40 <key>InAppBrowserPrivacy</key>
 41 <dict>
 42 <key>Enabled</key>
 43 <false/>
 44 </dict>
 45 <key>incremental_pdf</key>
 46 <dict>
 47 <key>Enabled</key>
 48 <true/>
 49 </dict>
 50 <key>sw_vp9_decoder_on_battery</key>
 51 <dict>
 52 <key>Enabled</key>
 53 <false/>
 54 </dict>
 55 <key>vp9_decoder</key>
 56 <dict>
 57 <key>Enabled</key>
 58 <true/>
 59 </dict>
 60 <key>WebGL2</key>
 61 <dict>
 62 <key>Enabled</key>
 63 <false/>
 64 </dict>
 65 <key>WebGPU</key>
 66 <dict>
 67 <key>Enabled</key>
 68 <false/>
 69 </dict>
 70 <key>WebXR</key>
 71 <dict>
 72 <key>Enabled</key>
 73 <false/>
 74 </dict>
 75 <key>webm_format_reader</key>
 76 <dict>
 77 <key>Enabled</key>
 78 <true/>
 79 </dict>
 80 <key>webm_parser</key>
 81 <dict>
 82 <key>Enabled</key>
 83 <true/>
 84 </dict>
 85 <key>RB_full_manage_WK_jetsam</key>
 86 <dict>
 87 <key>Enabled</key>
 88 <true/>
 89 </dict>
 90</dict>
 91</plist>

Source/WebKit/Scripts/combine-feature-flags-plist.py

 1#
 2# Copyright (c) 2020 Apple Inc. All rights reserved.
 3#
 4# Redistribution and use in source and binary forms, with or without
 5# modification, are permitted provided that the following conditions
 6# are met:
 7# 1. Redistributions of source code must retain the above copyright
 8# notice, this list of conditions and the following disclaimer.
 9# 2. Redistributions in binary form must reproduce the above copyright
 10# notice, this list of conditions and the following disclaimer in the
 11# documentation and/or other materials provided with the distribution.
 12#
 13# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
 14# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 15# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 16# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
 17# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 18# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 19# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 20# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 21# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 22# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 23# THE POSSIBILITY OF SUCH DAMAGE.
 24
 25import plistlib
 26import sys
 27
 28
 29def main(argv):
 30 if len(argv) != 4:
 31 print('Usage: ', argv[0], '<feature_flags_plist> <internal_feature_flags_plist> <output_plist>')
 32 return 1
 33
 34 feature_flags_plist_path = argv[1]
 35 internal_feature_flags_plist_path = argv[2]
 36 output_plist_path = argv[3]
 37
 38 try:
 39 with open(feature_flags_plist_path, 'rb') as feature_flags_file, open(internal_feature_flags_plist_path, 'rb') as internal_feature_flags_file:
 40 feature_flags = plistlib.load(feature_flags_file)
 41 internal_feature_flags = plistlib.load(internal_feature_flags_file)
 42 for key in internal_feature_flags:
 43 if key not in feature_flags:
 44 print('Error!', key, 'does not exist in' + feature_flags_plist_path)
 45 return 1
 46
 47 feature_flags[key].update(internal_feature_flags[key])
 48
 49 with open(output_plist_path, 'wb') as output_plist_file:
 50 plistlib.dump(feature_flags, output_plist_file)
 51 except IOError:
 52 print('File read/write error! Please make sure file names', feature_flags_plist_path, 'and', internal_feature_flags_plist_path, 'are correct.')
 53
 54 return 0
 55
 56
 57if __name__ == '__main__':
 58 sys.exit(main(sys.argv))

Source/WebKit/Scripts/generate-feature-flags-plist.sh

 1#!/bin/sh
 2#
 3# Copyright (c) 2020 Apple Inc. All rights reserved.
 4#
 5# Redistribution and use in source and binary forms, with or without
 6# modification, are permitted provided that the following conditions
 7# are met:
 8# 1. Redistributions of source code must retain the above copyright
 9# notice, this list of conditions and the following disclaimer.
 10# 2. Redistributions in binary form must reproduce the above copyright
 11# notice, this list of conditions and the following disclaimer in the
 12# documentation and/or other materials provided with the distribution.
 13#
 14# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
 15# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 16# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 17# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
 18# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 19# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 20# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 21# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 22# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 23# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 24# THE POSSIBILITY OF SUCH DAMAGE.
 25
 26set -e
 27
 28if [[ ${WK_PLATFORM_NAME} == "appletvos" ]]; then
 29 WEBKIT_PLIST_FILE_NAME="WebKit-appletvos.plist"
 30elif [[ ${WK_PLATFORM_NAME} == "iphoneos" ]]; then
 31 WEBKIT_PLIST_FILE_NAME="WebKit-ios.plist"
 32elif [[ ${WK_PLATFORM_NAME} == "macosx" ]]; then
 33 WEBKIT_PLIST_FILE_NAME="WebKit-macos.plist"
 34elif [[ ${WK_PLATFORM_NAME} == "watchos" ]]; then
 35 WEBKIT_PLIST_FILE_NAME="WebKit-watchos.plist"
 36else
 37 exit 0;
 38fi
 39
 40WEBKIT_PLIST_DIR="${SRCROOT}/FeatureFlags"
 41INTERNAL_WEBKIT_PLIST_DIR="${WK_WEBKITADDITIONS_HEADERS_FOLDER_PATH}/WebKit"
 42DEST_DIR="${INSTALL_ROOT}/${WK_INSTALL_PATH_PREFIX}/${SYSTEM_LIBRARY_DIR}/FeatureFlags/Domain"
 43
 44if [[ ! -d "${DEST_DIR}" ]]; then
 45 mkdir -p "${DEST_DIR}"
 46fi
 47
 48if [[ ! -f "${INTERNAL_WEBKIT_PLIST_DIR}/${WEBKIT_PLIST_FILE_NAME}" ]]; then
 49 echo "Copy ${WEBKIT_PLIST_DIR}/${WEBKIT_PLIST_FILE_NAME} to ${DEST_DIR}/WebKit.plist"
 50 ditto "${WEBKIT_PLIST_DIR}/${WEBKIT_PLIST_FILE_NAME}" "${DEST_DIR}/WebKit.plist"
 51else
 52 echo "Generate ${DEST_DIR}/WebKit.plist"
 53 python3 "${SRCROOT}/Scripts/combine-feature-flags-plist.py" "${WEBKIT_PLIST_DIR}/${WEBKIT_PLIST_FILE_NAME}" "${INTERNAL_WEBKIT_PLIST_DIR}/${WEBKIT_PLIST_FILE_NAME}" "${DEST_DIR}/WebKit.plist"
 54fi

Source/WebKit/WebKit.xcodeproj/project.pbxproj

29532953 1D0369A82567943C00440372 /* RemoteTextTrackProxyMessagesReplies.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = RemoteTextTrackProxyMessagesReplies.h; path = DerivedSources/WebKit2/RemoteTextTrackProxyMessagesReplies.h; sourceTree = BUILT_PRODUCTS_DIR; };
29542954 1D0369A92567943C00440372 /* RemoteVideoTrackProxyMessagesReplies.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = RemoteVideoTrackProxyMessagesReplies.h; path = DerivedSources/WebKit2/RemoteVideoTrackProxyMessagesReplies.h; sourceTree = BUILT_PRODUCTS_DIR; };
29552955 1D0369AA2567943C00440372 /* RemoteTextTrackProxyMessageReceiver.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = RemoteTextTrackProxyMessageReceiver.cpp; path = DerivedSources/WebKit2/RemoteTextTrackProxyMessageReceiver.cpp; sourceTree = BUILT_PRODUCTS_DIR; };
 2956 1D0530C9258EAB4400E436F7 /* combine-feature-flags-plist.py */ = {isa = PBXFileReference; lastKnownFileType = text.script.python; path = "combine-feature-flags-plist.py"; sourceTree = "<group>"; };
 2957 1D0530D1259162C800E436F7 /* WebKit-ios.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "WebKit-ios.plist"; sourceTree = "<group>"; };
 2958 1D0530D2259162C900E436F7 /* WebKit-appletvos.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "WebKit-appletvos.plist"; sourceTree = "<group>"; };
 2959 1D0530D3259162C900E436F7 /* WebKit-macos.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "WebKit-macos.plist"; sourceTree = "<group>"; };
 2960 1D0530D4259162C900E436F7 /* WebKit-watchos.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "WebKit-watchos.plist"; sourceTree = "<group>"; };
 2961 1D0530D52591941500E436F7 /* generate-feature-flags-plist.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = "generate-feature-flags-plist.sh"; sourceTree = "<group>"; };
29562962 1D0ECEAA23FC858400D172F6 /* RemoteMediaPlayerProxyCocoa.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = RemoteMediaPlayerProxyCocoa.mm; sourceTree = "<group>"; };
29572963 1D32F89823A8465A00B1EA6A /* RemoteMediaResource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RemoteMediaResource.h; sourceTree = "<group>"; };
29582964 1D32F89923A8468000B1EA6A /* RemoteMediaResource.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = RemoteMediaResource.cpp; sourceTree = "<group>"; };

29983004 1DE076D92460CCBD00B211E8 /* WebPreferencesDefaultValuesCocoa.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = WebPreferencesDefaultValuesCocoa.mm; sourceTree = "<group>"; };
29993005 1DE0D095211CC21300439B5F /* WKShareSheet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKShareSheet.h; sourceTree = "<group>"; };
30003006 1DE2DFAC23A959F8003E013A /* RemoteMediaResourceIdentifier.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RemoteMediaResourceIdentifier.h; sourceTree = "<group>"; };
3001  1DEC97AC246B691E007C83F4 /* WebKit.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = WebKit.plist; sourceTree = "<group>"; };
30023007 1DF29018257F202F003C28AF /* MediaSourcePrivateRemote.messages.in */ = {isa = PBXFileReference; lastKnownFileType = text; path = MediaSourcePrivateRemote.messages.in; sourceTree = "<group>"; };
30033008 1DF29E61257F3794003C28AF /* MediaSourcePrivateRemoteMessageReceiver.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = MediaSourcePrivateRemoteMessageReceiver.cpp; path = DerivedSources/WebKit2/MediaSourcePrivateRemoteMessageReceiver.cpp; sourceTree = BUILT_PRODUCTS_DIR; };
30043009 1DF29E62257F3795003C28AF /* MediaSourcePrivateRemoteMessagesReplies.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = MediaSourcePrivateRemoteMessagesReplies.h; path = DerivedSources/WebKit2/MediaSourcePrivateRemoteMessagesReplies.h; sourceTree = BUILT_PRODUCTS_DIR; };

69616966 1DEC97AB246B6865007C83F4 /* FeatureFlags */ = {
69626967 isa = PBXGroup;
69636968 children = (
6964  1DEC97AC246B691E007C83F4 /* WebKit.plist */,
 6969 1D0530D2259162C900E436F7 /* WebKit-appletvos.plist */,
 6970 1D0530D1259162C800E436F7 /* WebKit-ios.plist */,
 6971 1D0530D3259162C900E436F7 /* WebKit-macos.plist */,
 6972 1D0530D4259162C900E436F7 /* WebKit-watchos.plist */,
69656973 );
69666974 path = FeatureFlags;
69676975 sourceTree = "<group>";

1095810966 535E08CA225460FC00DF00CA /* postprocess-header-rule */,
1095910967 7CDE73A21F9DA59700390312 /* PreferencesTemplates */,
1096010968 0FC0856E187CE0A900780D86 /* __init__.py */,
 10969 1D0530C9258EAB4400E436F7 /* combine-feature-flags-plist.py */,
1096110970 4157853021276B6F00DD3800 /* copy-webcontent-resources-to-private-headers.sh */,
 10971 1D0530D52591941500E436F7 /* generate-feature-flags-plist.sh */,
1096210972 C0CE73361247F70E00BC0EC4 /* generate-message-receiver.py */,
1096310973 0FC0856F187CE0A900780D86 /* messages.py */,
1096410974 0FC08570187CE0A900780D86 /* model.py */,

1307713087 inputFileListPaths = (
1307813088 );
1307913089 inputPaths = (
13080  "${SRCROOT}/FeatureFlags/WebKit.plist",
 13090 "$(SRCROOT)/FeatureFlags/WebKit-appletvos.plist",
 13091 "$(SRCROOT)/FeatureFlags/WebKit-ios.plist",
 13092 "$(SRCROOT)/FeatureFlags/WebKit-macos.plist",
 13093 "$(SRCROOT)/FeatureFlags/WebKit-watchos.plist",
1308113094 );
1308213095 name = "Copy Feature Flags Plist";
1308313096 outputFileListPaths = (
1308413097 );
1308513098 outputPaths = (
13086  "${INSTALL_ROOT}/${WK_INSTALL_PATH_PREFIX}/${SYSTEM_LIBRARY_DIR}/FeatureFlags/Domain/WebKit.plist",
 13099 "$(INSTALL_ROOT)/$(WK_INSTALL_PATH_PREFIX)/$(SYSTEM_LIBRARY_DIR)/FeatureFlags/Domain/WebKit.plist",
1308713100 );
1308813101 runOnlyForDeploymentPostprocessing = 1;
1308913102 shellPath = /bin/sh;
13090  shellScript = "if [[ ${WK_PLATFORM_NAME} == \"maccatalyst\" ]]; then\n exit 0;\nfi\n\nSOURCE_DIR=\"${SRCROOT}/FeatureFlags\"\nDEST_DIR=${INSTALL_ROOT}/${WK_INSTALL_PATH_PREFIX}/${SYSTEM_LIBRARY_DIR}/FeatureFlags/Domain\n\nif [[ ! -d \"${DEST_DIR}\" ]]; then\n mkdir -p \"${DEST_DIR}\"\nfi\n\nditto \"${SOURCE_DIR}/WebKit.plist\" \"${DEST_DIR}/WebKit.plist\"\n";
 13103 shellScript = "${SRCROOT}/Scripts/generate-feature-flags-plist.sh\n";
1309113104 };
1309213105 2D7DEBDF21269C9F00B9F73C /* Generate Unified Sources */ = {
1309313106 isa = PBXShellScriptBuildPhase;