Changeset 223612 in webkit


Ignore:
Timestamp:
Oct 18, 2017 10:10:16 AM (6 years ago)
Author:
commit-queue@webkit.org
Message:

[Settings] Miscellaneous cleanup of the settings generation scripts
https://bugs.webkit.org/show_bug.cgi?id=178462

Patch by Sam Weinig <sam@webkit.org> on 2017-10-18
Reviewed by Daniel Bates.

  • Stop generating and remove now unused SettingsMacros.h
  • Make functions operating on the python Setting object member functions
  • Add predicate to determine if a Setting's type is a value type, allowing us to exclude those from using const references.
  • CMakeLists.txt:
  • DerivedSources.make:
  • Scripts/GenerateSettings.py:
  • Scripts/GenerateSettings/GenerateInternalSettingsHeaderFile.py:
  • Scripts/GenerateSettings/GenerateInternalSettingsIDLFile.py:
  • Scripts/GenerateSettings/GenerateInternalSettingsImplementationFile.py:
  • Scripts/GenerateSettings/GenerateSettings.py:
  • Scripts/GenerateSettings/GenerateSettingsHeaderFile.py:
  • Scripts/GenerateSettings/GenerateSettingsImplementationFile.py:
  • Scripts/GenerateSettings/GenerateSettingsMacrosHeader.py: Removed.
  • Scripts/GenerateSettings/Settings.py:
  • WebCoreMacros.cmake:
  • WebCore.xcodeproj/project.pbxproj:
Location:
trunk/Source/WebCore
Files:
1 deleted
13 edited

Legend:

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

    r223574 r223612  
    40014001
    40024002
    4003 GENERATE_SETTINGS_MACROS(${WEBCORE_DIR}/page/Settings.in SettingsMacros.h)
    4004 list(APPEND WebCore_DERIVED_SOURCES ${DERIVED_SOURCES_WEBCORE_DIR}/SettingsMacros.h)
     4003GENERATE_SETTINGS_MACROS(${WEBCORE_DIR}/page/Settings.in Settings.h)
    40054004list(APPEND WebCore_DERIVED_SOURCES ${DERIVED_SOURCES_WEBCORE_DIR}/Settings.h)
    40064005list(APPEND WebCore_DERIVED_SOURCES ${DERIVED_SOURCES_WEBCORE_DIR}/Settings.cpp)
  • trunk/Source/WebCore/ChangeLog

    r223611 r223612  
     12017-10-18  Sam Weinig  <sam@webkit.org>
     2
     3        [Settings] Miscellaneous cleanup of the settings generation scripts
     4        https://bugs.webkit.org/show_bug.cgi?id=178462
     5
     6        Reviewed by Daniel Bates.
     7
     8        - Stop generating and remove now unused SettingsMacros.h
     9        - Make functions operating on the python Setting object member functions
     10        - Add predicate to determine if a Setting's type is a value type, allowing
     11          us to exclude those from using const references.
     12
     13        * CMakeLists.txt:
     14        * DerivedSources.make:
     15        * Scripts/GenerateSettings.py:
     16        * Scripts/GenerateSettings/GenerateInternalSettingsHeaderFile.py:
     17        * Scripts/GenerateSettings/GenerateInternalSettingsIDLFile.py:
     18        * Scripts/GenerateSettings/GenerateInternalSettingsImplementationFile.py:
     19        * Scripts/GenerateSettings/GenerateSettings.py:
     20        * Scripts/GenerateSettings/GenerateSettingsHeaderFile.py:
     21        * Scripts/GenerateSettings/GenerateSettingsImplementationFile.py:
     22        * Scripts/GenerateSettings/GenerateSettingsMacrosHeader.py: Removed.
     23        * Scripts/GenerateSettings/Settings.py:
     24        * WebCoreMacros.cmake:
     25        * WebCore.xcodeproj/project.pbxproj:
     26
    1272017-10-18  Chris Dumez  <cdumez@apple.com>
    228
  • trunk/Source/WebCore/DerivedSources.make

    r223574 r223612  
    13711371    $(WebCore)/Scripts/GenerateSettings/GenerateSettingsHeaderFile.py \
    13721372    $(WebCore)/Scripts/GenerateSettings/GenerateSettingsImplementationFile.py \
    1373     $(WebCore)/Scripts/GenerateSettings/GenerateSettingsMacrosHeader.py \
    13741373    $(WebCore)/Scripts/GenerateSettings/Settings.py \
    13751374    $(WebCore)/Scripts/GenerateSettings/__init__.py
    13761375
    1377 all : InternalSettingsGenerated.idl InternalSettingsGenerated.cpp InternalSettingsGenerated.h Settings.cpp Settings.h SettingsMacros.h
    1378 InternalSettingsGenerated%idl InternalSettingsGenerated%cpp InternalSettingsGenerated%h Settings%cpp Settings%h SettingsMacros%h : $(WebCore)/Scripts/GenerateSettings.py $(GENERATE_SETTINGS_SCRIPTS) page/Settings.in
     1376all : InternalSettingsGenerated.idl InternalSettingsGenerated.cpp InternalSettingsGenerated.h Settings.cpp Settings.h
     1377InternalSettingsGenerated%idl InternalSettingsGenerated%cpp InternalSettingsGenerated%h Settings%cpp Settings%h : $(WebCore)/Scripts/GenerateSettings.py $(GENERATE_SETTINGS_SCRIPTS) page/Settings.in
    13791378        $(PYTHON) $< --input $(WebCore)/page/Settings.in
    13801379
  • trunk/Source/WebCore/Scripts/GenerateSettings.py

    r223574 r223612  
    5252    generateSettingsHeaderFile(outputDirectory, settings)
    5353    generateSettingsImplementationFile(outputDirectory, settings)
    54     generateSettingsMacrosHeader(outputDirectory, settings)
    5554    generateInternalSettingsIDLFile(outputDirectory, settings)
    5655    generateInternalSettingsHeaderFile(outputDirectory, settings)
  • trunk/Source/WebCore/Scripts/GenerateSettings/GenerateInternalSettingsHeaderFile.py

    r222647 r223612  
    2626import os.path
    2727
    28 from Settings import license, makeConditionalString, mapToIDLType, makeSetterFunctionName
     28from Settings import license, makeConditionalString
    2929
    3030
     
    5252    for settingName in sorted(settings.iterkeys()):
    5353        setting = settings[settingName]
    54         idlType = mapToIDLType(setting)
     54        idlType = setting.idlType()
    5555        if not idlType:
    5656            continue
    5757
    5858        type = "const String&" if setting.type == "String" else setting.type
    59         outputFile.write("    void " + makeSetterFunctionName(setting) + "(" + type + " " + setting.name + ");\n")
     59        outputFile.write("    void " + setting.setterFunctionName() + "(" + type + " " + setting.name + ");\n")
    6060
    6161    outputFile.write("\n")
     
    6565    for settingName in sorted(settings.iterkeys()):
    6666        setting = settings[settingName]
    67         idlType = mapToIDLType(setting)
     67        idlType = setting.idlType()
    6868        if not idlType:
    6969            continue
  • trunk/Source/WebCore/Scripts/GenerateSettings/GenerateInternalSettingsIDLFile.py

    r222647 r223612  
    2626import os.path
    2727
    28 from Settings import license, mapToIDLType, makeSetterFunctionName
     28from Settings import license
    2929
    3030
     
    4141    for settingName in sorted(settings.iterkeys()):
    4242        setting = settings[settingName]
    43         idlType = mapToIDLType(setting)
     43        idlType = setting.idlType()
    4444        if not idlType:
    4545            continue
    46         outputFile.write("    void " + makeSetterFunctionName(setting) + "(" + idlType + " " + setting.name + ");\n")
     46        outputFile.write("    void " + setting.setterFunctionName() + "(" + idlType + " " + setting.name + ");\n")
    4747
    4848    outputFile.write("};\n")
  • trunk/Source/WebCore/Scripts/GenerateSettings/GenerateInternalSettingsImplementationFile.py

    r222806 r223612  
    2626import os.path
    2727
    28 from Settings import license, makeSetterFunctionName, makeConditionalString, mapToIDLType, makeConditionalString
     28from Settings import license, makeConditionalString, makeConditionalString
    2929
    3030
     
    4747    for settingName in sorted(settings.iterkeys()):
    4848        setting = settings[settingName]
    49         idlType = mapToIDLType(setting)
     49        idlType = setting.idlType()
    5050        if not idlType:
    5151            continue
     
    5454            outputFile.write("#if " + makeConditionalString(setting.conditional) + "\n")
    5555
    56         outputFile.write("    , m_" + setting.name + "(page->settings()." + setting.name + "())\n")
     56        outputFile.write("    , m_" + setting.name + "(page->settings()." + setting.getterFunctionName() + "())\n")
    5757
    5858        if setting.conditional:
     
    7171    for settingName in sorted(settings.iterkeys()):
    7272        setting = settings[settingName]
    73         idlType = mapToIDLType(setting)
     73        idlType = setting.idlType()
    7474        if not idlType:
    7575            continue
     
    7878            outputFile.write("#if " + makeConditionalString(setting.conditional) + "\n")
    7979
    80         outputFile.write("    m_page->settings()." + makeSetterFunctionName(setting) + "(m_" + setting.name + ");\n")
     80        outputFile.write("    m_page->settings()." + setting.setterFunctionName() + "(m_" + setting.name + ");\n")
    8181
    8282        if setting.conditional:
     
    8787    for settingName in sorted(settings.iterkeys()):
    8888        setting = settings[settingName]
    89         idlType = mapToIDLType(setting)
     89        idlType = setting.idlType()
    9090        if not idlType:
    9191            continue
     
    9393        type = "const String&" if setting.type == "String" else setting.type
    9494
    95         outputFile.write("void InternalSettingsGenerated::" + makeSetterFunctionName(setting) + "(" + type + " " + setting.name + ")\n")
     95        outputFile.write("void InternalSettingsGenerated::" + setting.setterFunctionName() + "(" + type + " " + setting.name + ")\n")
    9696        outputFile.write("{\n")
    9797
     
    9999            outputFile.write("#if " + makeConditionalString(setting.conditional) + "\n")
    100100
    101         outputFile.write("    m_page->settings()." + makeSetterFunctionName(setting) + "(" + setting.name + ");\n")
     101        outputFile.write("    m_page->settings()." + setting.setterFunctionName() + "(" + setting.name + ");\n")
    102102
    103103        if setting.conditional:
  • trunk/Source/WebCore/Scripts/GenerateSettings/GenerateSettings.py

    r223574 r223612  
    55from GenerateSettingsHeaderFile import *
    66from GenerateSettingsImplementationFile import *
    7 from GenerateSettingsMacrosHeader import *
  • trunk/Source/WebCore/Scripts/GenerateSettings/GenerateSettingsHeaderFile.py

    r223607 r223612  
    2626import os.path
    2727
    28 from Settings import license, makeConditionalString, makeSetterFunctionName, makePreferredConditional
     28from Settings import license, makeConditionalString, makePreferredConditional
    2929
    3030
     
    7979
    8080def printGetterAndSetter(outputFile, setting):
    81     setterFunctionName = makeSetterFunctionName(setting)
     81    setterFunctionName = setting.setterFunctionName()
     82    getterFunctionName = setting.getterFunctionName()
    8283
    83     webcoreExport = "WEBCORE_EXPORT " if setting.setNeedsStyleRecalcInAllFrames else ""
     84    webcoreExport = "WEBCORE_EXPORT " if setting.hasComplexSetter() else ""
    8485
    85     if setting.type[0].islower():
    86         outputFile.write("    " + setting.type + " " + setting.name + "() const { return m_" + setting.name + "; }\n")
     86    if setting.typeIsValueType():
     87        outputFile.write("    " + setting.type + " " + getterFunctionName + "() const { return m_" + setting.name + "; }\n")
    8788        outputFile.write("    " + webcoreExport + "void " + setterFunctionName + "(" + setting.type + " " + setting.name + ")")
    8889    else:
    89         outputFile.write("    const " + setting.type + "& " + setting.name + "() const { return m_" + setting.name + "; } \n")
     90        outputFile.write("    const " + setting.type + "& " + getterFunctionName + "() const { return m_" + setting.name + "; }\n")
    9091        outputFile.write("    " + webcoreExport + "void " + setterFunctionName + "(const " + setting.type + "& " + setting.name + ")")
    9192
    92     if setting.setNeedsStyleRecalcInAllFrames:
    93         outputFile.write("; \n")
     93    if setting.hasComplexSetter():
     94        outputFile.write(";\n")
    9495    else:
    95         outputFile.write(" { m_" + setting.name + " = " + setting.name + "; } \n")
     96        outputFile.write(" { m_" + setting.name + " = " + setting.name + "; }\n")
    9697
    9798
  • trunk/Source/WebCore/Scripts/GenerateSettings/GenerateSettingsImplementationFile.py

    r223607 r223612  
    2626import os.path
    2727
    28 from Settings import license, makeConditionalString, makeSetterFunctionName, makePreferredConditional
     28from Settings import license, makeConditionalString, makePreferredConditional
    2929
    3030
     
    148148
    149149def printSetterBody(outputFile, setting):
    150     if not setting.setNeedsStyleRecalcInAllFrames:
     150    if not setting.hasComplexSetter():
    151151        return
    152152
    153     setterFunctionName = makeSetterFunctionName(setting)
     153    setterFunctionName = setting.setterFunctionName()
    154154
    155     if setting.type[0].islower():
     155    if setting.typeIsValueType():
    156156        outputFile.write("void Settings::" + setterFunctionName + "(" + setting.type + " " + setting.name + ")\n")
    157157    else:
     
    175175        for settingName in sorted(settingsByConditional[conditional].iterkeys()):
    176176            setting = settings[settingName]
    177             if setting.setNeedsStyleRecalcInAllFrames:
     177            if setting.hasComplexSetter():
    178178                hasSetterBody = True
    179179                break
  • trunk/Source/WebCore/Scripts/GenerateSettings/Settings.py

    r222806 r223612  
    7777        return result
    7878
     79    def hasComplexSetter(self):
     80        if self.setNeedsStyleRecalcInAllFrames:
     81            return True
     82        return False
     83
     84    def typeIsValueType(self):
     85        if self.type == 'String':
     86            return False
     87        return True
     88
     89    def setterFunctionName(self):
     90        for prefix in ["css", "xss", "ftp", "dom"]:
     91            if self.name.startswith(prefix):
     92                return "set" + uppercaseFirstN(self.name, len(prefix))
     93        return "set" + uppercaseFirstN(self.name, 1)
     94
     95    def getterFunctionName(self):
     96        return self.name
     97
     98    def idlType(self):
     99        # FIXME: Add support for more types including enumerate types.
     100        if self.type == 'int':
     101            return 'long'
     102        if self.type == 'unsigned':
     103            return 'unsigned long'
     104        if self.type == 'double':
     105            return 'double'
     106        if self.type == 'float':
     107            return 'float'
     108        if self.type == 'String':
     109            return 'DOMString'
     110        if self.type == 'bool':
     111            return 'boolean'
     112        return None
     113
    79114
    80115def uppercaseFirstN(string, n):
    81116    return string[:n].upper() + string[n:]
    82 
    83 
    84 def makeSetterFunctionName(setting):
    85     for prefix in ["css", "xss", "ftp", "dom"]:
    86         if setting.name.startswith(prefix):
    87             return "set" + uppercaseFirstN(setting.name, len(prefix))
    88     return "set" + uppercaseFirstN(setting.name, 1)
    89117
    90118
     
    96124    conditionals = conditional.split('|')
    97125    return "ENABLE(" + ") || ENABLE(".join(conditionals) + ")"
    98 
    99 
    100 def mapToIDLType(setting):
    101     # FIXME: Add support for more types including enumerate types.
    102     if setting.type == 'int':
    103         return 'long'
    104     if setting.type == 'unsigned' or setting.type == 'size_t':
    105         return 'unsigned long'
    106     if setting.type == 'double':
    107         return 'double'
    108     if setting.type == 'float':
    109         return 'float'
    110     if setting.type == 'String':
    111         return 'DOMString'
    112     if setting.type == 'bool':
    113         return 'boolean'
    114     return None
    115126
    116127
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r223574 r223612  
    25492549                53ED3FDE167A88E7006762E6 /* JSInternalSettingsGenerated.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 53ED3FDC167A88E7006762E6 /* JSInternalSettingsGenerated.cpp */; };
    25502550                53ED3FDF167A88E7006762E6 /* JSInternalSettingsGenerated.h in Headers */ = {isa = PBXBuildFile; fileRef = 53ED3FDD167A88E7006762E6 /* JSInternalSettingsGenerated.h */; };
    2551                 53EF766B16530A61004CBE49 /* SettingsMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 53EF766A16530A61004CBE49 /* SettingsMacros.h */; };
    2552                 53EF766C16531994004CBE49 /* SettingsMacros.h in Copy Generated Headers */ = {isa = PBXBuildFile; fileRef = 53EF766A16530A61004CBE49 /* SettingsMacros.h */; };
    25532551                550A0BC9085F6039007353D6 /* QualifiedName.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 550A0BC7085F6039007353D6 /* QualifiedName.cpp */; };
    25542552                550A0BCA085F6039007353D6 /* QualifiedName.h in Headers */ = {isa = PBXBuildFile; fileRef = 550A0BC8085F6039007353D6 /* QualifiedName.h */; settings = {ATTRIBUTES = (Private, ); }; };
     
    75127510                                14DC0D3809FED073007B0235 /* JSNode.h in Copy Generated Headers */,
    75137511                                7CD58DFE1F9565EC00112791 /* Settings.h in Copy Generated Headers */,
    7514                                 53EF766C16531994004CBE49 /* SettingsMacros.h in Copy Generated Headers */,
    75157512                                08C7A2C710DC7462002D368B /* SVGNames.h in Copy Generated Headers */,
    75167513                                1A1414B613A0F0500019996C /* WebKitFontFamilyNames.h in Copy Generated Headers */,
     
    1048810485                53ED3FDC167A88E7006762E6 /* JSInternalSettingsGenerated.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSInternalSettingsGenerated.cpp; sourceTree = "<group>"; };
    1048910486                53ED3FDD167A88E7006762E6 /* JSInternalSettingsGenerated.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSInternalSettingsGenerated.h; sourceTree = "<group>"; };
    10490                 53EF766A16530A61004CBE49 /* SettingsMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SettingsMacros.h; sourceTree = "<group>"; };
    1049110487                550A0BC7085F6039007353D6 /* QualifiedName.cpp */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = QualifiedName.cpp; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
    1049210488                550A0BC8085F6039007353D6 /* QualifiedName.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = QualifiedName.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
     
    1948919485                                7CEB57EA1F95651500097AEC /* Settings.cpp */,
    1949019486                                7CEB57E91F95651500097AEC /* Settings.h */,
    19491                                 53EF766A16530A61004CBE49 /* SettingsMacros.h */,
    1949219487                                9908B0FD1BCAD07D00ED0F55 /* StreamInternalsBuiltins.cpp */,
    1949319488                                9B03D8061BB3110D00B764C9 /* StreamInternalsBuiltins.h */,
     
    3018630181                                7CD58DFB1F9565A500112791 /* Settings.h in Headers */,
    3018730182                                7CC9722E1F93E3360004D4CF /* SettingsBase.h in Headers */,
    30188                                 53EF766B16530A61004CBE49 /* SettingsMacros.h in Headers */,
    3018930183                                0F3DD45012F5EA1B000D9190 /* ShadowBlur.h in Headers */,
    3019030184                                BC5EB8C40E82031B00B25965 /* ShadowData.h in Headers */,
  • trunk/Source/WebCore/WebCoreMacros.cmake

    r223574 r223612  
    210210    # <https://cmake.org/cmake/help/v3.0/command/add_custom_command.html>
    211211    set(_extra_output
    212         ${DERIVED_SOURCES_WEBCORE_DIR}/Settings.h
    213212        ${DERIVED_SOURCES_WEBCORE_DIR}/Settings.cpp
    214213        ${DERIVED_SOURCES_WEBCORE_DIR}/InternalSettingsGenerated.h
     
    223222        ${WEBCORE_DIR}/Scripts/GenerateSettings/GenerateSettingsHeaderFile.py
    224223        ${WEBCORE_DIR}/Scripts/GenerateSettings/GenerateSettingsImplementationFile.py
    225         ${WEBCORE_DIR}/Scripts/GenerateSettings/GenerateSettingsMacrosHeader.py
    226224        ${WEBCORE_DIR}/Scripts/GenerateSettings/GenerateSettings.py
    227225        ${WEBCORE_DIR}/Scripts/GenerateSettings/Settings.py
Note: See TracChangeset for help on using the changeset viewer.