Changeset 223903 in webkit


Ignore:
Timestamp:
Oct 24, 2017 11:43:31 AM (6 years ago)
Author:
commit-queue@webkit.org
Message:

[Settings] Add initial support for generating preferences related code
https://bugs.webkit.org/show_bug.cgi?id=178656

Patch by Sam Weinig <sam@webkit.org> on 2017-10-24
Reviewed by Dean Jackson.

As a first step towards getting off the macros in WebPreferencesDefinitions.h
and reducing the overhead of adding a preference, this change generates adds
WebPreferences.yaml where preference changes will go, and generates much of
WebPreferencesDefinitions.h from it (all the custom defaults moved to
WebPreferencesDefinitionsBase.h). Subsequent changes will remove the need for
the macros in WebPreferencesDefinitions.h entirely.

  • CMakeLists.txt:
  • DerivedSources.make:
  • WebKit.xcodeproj/project.pbxproj:

Add new files / rules to generate WebPreferencesDefinitions.h.

  • Scripts/GeneratePreferences.rb: Added.
  • Scripts/PreferencesTemplates: Added.
  • Scripts/PreferencesTemplates/WebPreferencesDefinitions.h.erb: Added.

Add scripts and template to generate WebPreferencesDefinitions.h from
WebPreferences.yaml.

  • Shared/WebPreferences.yaml: Added.

Configuration file for preferences.

  • Shared/WebPreferencesDefinitions.h: Removed.
  • Shared/WebPreferencesDefinitionsBase.h: Copied from Source/WebKit/Shared/WebPreferencesDefinitions.h.

Moved custom defaults to new WebPreferencesDefinitionsBase.h. Removed the need for
FOR_EACH_WEBKIT_STRING_PREFERENCE by using custom defaults for the font family values.

Location:
trunk/Source/WebKit
Files:
5 added
1 deleted
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/CMakeLists.txt

    r223739 r223903  
    903903)
    904904
     905set(WebKit_WEB_PREFERENCES_TEMPLATES
     906    ${WEBKIT_DIR}/Scripts/PreferencesTemplates/WebPreferencesDefinitions.h.erb
     907)
     908
     909add_custom_command(
     910    OUTPUT ${DERIVED_SOURCES_WEBKIT_DIR}/WebPreferencesDefinitions.h
     911    MAIN_DEPENDENCY ${WEBKIT_DIR}/Shared/WebPreferences.yaml
     912    DEPENDS ${WebKit_WEB_PREFERENCES_TEMPLATES}
     913    COMMAND ${RUBY_EXECUTABLE} ${WEBKIT_DIR}/Scripts/GeneratePreferences.rb --input ${WEBKIT_DIR}/Shared/WebPreferences.yaml --outputDir "${DERIVED_SOURCES_WEBKIT_DIR}"
     914    VERBATIM)
     915
     916list(APPEND WebKit_HEADERS
     917    ${DERIVED_SOURCES_WEBKIT_DIR}/WebPreferencesDefinitions.h
     918)
     919
    905920list(APPEND WebKit_SOURCES ${WebKit_DERIVED_SOURCES})
    906921
  • trunk/Source/WebKit/ChangeLog

    r223900 r223903  
     12017-10-24  Sam Weinig  <sam@webkit.org>
     2
     3        [Settings] Add initial support for generating preferences related code
     4        https://bugs.webkit.org/show_bug.cgi?id=178656
     5
     6        Reviewed by Dean Jackson.
     7
     8        As a first step towards getting off the macros in WebPreferencesDefinitions.h
     9        and reducing the overhead of adding a preference, this change generates adds
     10        WebPreferences.yaml where preference changes will go, and generates much of
     11        WebPreferencesDefinitions.h from it (all the custom defaults moved to
     12        WebPreferencesDefinitionsBase.h). Subsequent changes will remove the need for
     13        the macros in WebPreferencesDefinitions.h entirely.
     14
     15        * CMakeLists.txt:
     16        * DerivedSources.make:
     17        * WebKit.xcodeproj/project.pbxproj:
     18       
     19            Add new files / rules to generate WebPreferencesDefinitions.h.
     20       
     21        * Scripts/GeneratePreferences.rb: Added.
     22        * Scripts/PreferencesTemplates: Added.
     23        * Scripts/PreferencesTemplates/WebPreferencesDefinitions.h.erb: Added.
     24       
     25            Add scripts and template to generate WebPreferencesDefinitions.h from
     26            WebPreferences.yaml.
     27
     28        * Shared/WebPreferences.yaml: Added.
     29       
     30            Configuration file for preferences.
     31       
     32        * Shared/WebPreferencesDefinitions.h: Removed.
     33        * Shared/WebPreferencesDefinitionsBase.h: Copied from Source/WebKit/Shared/WebPreferencesDefinitions.h.
     34       
     35            Moved custom defaults to new WebPreferencesDefinitionsBase.h. Removed the need for
     36            FOR_EACH_WEBKIT_STRING_PREFERENCE by using custom defaults for the font family values.
     37
    1382017-10-24  Matt Lewis  <jlewis3@apple.com>
    239
  • trunk/Source/WebKit/DerivedSources.make

    r223739 r223903  
    285285
    286286all : WebAutomationSessionProxyScriptSource.h
     287
     288# WebPreferences generation
     289
     290WEB_PREFERENCES_TEMPLATES = \
     291    $(WebKit2)/Scripts/PreferencesTemplates/WebPreferencesDefinitions.h.erb \
     292#
     293
     294all : WebPreferencesDefinitions.h
     295
     296WebPreferencesDefinitions%h : $(WebKit2)/Scripts/GeneratePreferences.rb $(WEB_PREFERENCES_TEMPLATES) $(WebKit2)/Shared/WebPreferences.yaml
     297        $(RUBY) $< --input $(WebKit2)/Shared/WebPreferences.yaml
     298
  • trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj

    r223839 r223903  
    12881288                7C6D37FC172F555F009D2847 /* PageBannerMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 7C6D37FA172F555F009D2847 /* PageBannerMac.mm */; };
    12891289                7C6E70FB18B2DC7A00F24E2E /* WebProcessCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 7C6E70F918B2D4A000F24E2E /* WebProcessCocoa.mm */; };
    1290                 7C85FD7C193415A8000177C4 /* WebPreferencesDefinitions.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C85FD7B193415A8000177C4 /* WebPreferencesDefinitions.h */; };
    12911290                7C85FD7F19341665000177C4 /* WebPreferencesKeys.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C85FD7D19341665000177C4 /* WebPreferencesKeys.cpp */; };
    12921291                7C85FD8019341665000177C4 /* WebPreferencesKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C85FD7E19341665000177C4 /* WebPreferencesKeys.h */; };
     
    36603659                7C6D37FA172F555F009D2847 /* PageBannerMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = PageBannerMac.mm; sourceTree = "<group>"; };
    36613660                7C6E70F918B2D4A000F24E2E /* WebProcessCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebProcessCocoa.mm; sourceTree = "<group>"; };
    3662                 7C85FD7B193415A8000177C4 /* WebPreferencesDefinitions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebPreferencesDefinitions.h; sourceTree = "<group>"; };
    36633661                7C85FD7D19341665000177C4 /* WebPreferencesKeys.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebPreferencesKeys.cpp; sourceTree = "<group>"; };
    36643662                7C85FD7E19341665000177C4 /* WebPreferencesKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebPreferencesKeys.h; sourceTree = "<group>"; };
     
    37183716                7CD622751739D863005BD7FF /* PluginSandboxProfile.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = PluginSandboxProfile.mm; sourceTree = "<group>"; };
    37193717                7CD622761739D863005BD7FF /* PluginSandboxProfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PluginSandboxProfile.h; sourceTree = "<group>"; };
     3718                7CDE739F1F9DA37A00390312 /* WebPreferences.yaml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebPreferences.yaml; sourceTree = "<group>"; };
     3719                7CDE73A01F9DA37B00390312 /* WebPreferencesDefinitionsBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebPreferencesDefinitionsBase.h; sourceTree = "<group>"; };
     3720                7CDE73A11F9DA41400390312 /* GeneratePreferences.rb */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.ruby; path = GeneratePreferences.rb; sourceTree = "<group>"; };
     3721                7CDE73A21F9DA59700390312 /* PreferencesTemplates */ = {isa = PBXFileReference; lastKnownFileType = folder; path = PreferencesTemplates; sourceTree = "<group>"; };
     3722                7CDE73A31F9DAB6500390312 /* WebPreferencesDefinitions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = WebPreferencesDefinitions.h; path = WebPreferencesDefinitions.h; sourceTree = "<group>"; };
    37203723                7CE4D2061A46775700C7F152 /* APILegacyContextHistoryClient.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = APILegacyContextHistoryClient.h; sourceTree = "<group>"; };
    37213724                7CE4D2151A49148400C7F152 /* WebProcessPoolCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebProcessPoolCocoa.mm; sourceTree = "<group>"; };
     
    51265129                                BC5744ED12638FB3006F0F12 /* WebPopupItem.cpp */,
    51275130                                BC5744EE12638FB3006F0F12 /* WebPopupItem.h */,
    5128                                 7C85FD7B193415A8000177C4 /* WebPreferencesDefinitions.h */,
     5131                                7CDE739F1F9DA37A00390312 /* WebPreferences.yaml */,
     5132                                7CDE73A01F9DA37B00390312 /* WebPreferencesDefinitionsBase.h */,
    51295133                                7C85FD7D19341665000177C4 /* WebPreferencesKeys.cpp */,
    51305134                                7C85FD7E19341665000177C4 /* WebPreferencesKeys.h */,
     
    81208124                                1AB1F7941D1B3613007C9BD1 /* WebPaymentCoordinatorProxyMessageReceiver.cpp */,
    81218125                                1AB1F7951D1B3613007C9BD1 /* WebPaymentCoordinatorProxyMessages.h */,
     8126                                7CDE73A31F9DAB6500390312 /* WebPreferencesDefinitions.h */,
    81228127                                1A043F6712514D8B00FFBFB5 /* WebProcessConnectionMessageReceiver.cpp */,
    81238128                                1A043F6812514D8B00FFBFB5 /* WebProcessConnectionMessages.h */,
     
    81558160                        isa = PBXGroup;
    81568161                        children = (
     8162                                7CDE73A21F9DA59700390312 /* PreferencesTemplates */,
    81578163                                0FC0856E187CE0A900780D86 /* __init__.py */,
    81588164                                C0CE73361247F70E00BC0EC4 /* generate-message-receiver.py */,
    81598165                                C0CE73371247F70E00BC0EC4 /* generate-messages-header.py */,
     8166                                7CDE73A11F9DA41400390312 /* GeneratePreferences.rb */,
    81608167                                0FC0856F187CE0A900780D86 /* messages.py */,
    81618168                                0FC08570187CE0A900780D86 /* model.py */,
     
    90149021                                BC5750971268F3C6006F0F12 /* WebPopupMenuProxyMac.h in Headers */,
    90159022                                BCD597FF112B57BE00EC8C23 /* WebPreferences.h in Headers */,
    9016                                 7C85FD7C193415A8000177C4 /* WebPreferencesDefinitions.h in Headers */,
    90179023                                7C85FD8019341665000177C4 /* WebPreferencesKeys.h in Headers */,
    90189024                                BCD598AC112B7FDF00EC8C23 /* WebPreferencesStore.h in Headers */,
Note: See TracChangeset for help on using the changeset viewer.