Unreviewed, rolling out r222686, r222695, and r222698.
authorryanhaddad@apple.com <ryanhaddad@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 3 Oct 2017 20:51:00 +0000 (20:51 +0000)
committerryanhaddad@apple.com <ryanhaddad@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 3 Oct 2017 20:51:00 +0000 (20:51 +0000)
https://bugs.webkit.org/show_bug.cgi?id=177835

Caused LayoutTests to crash in
WebCore::TimerBase::setNextFireTime (Requested by ryanhaddad
on #webkit).

Reverted changesets:

"[Settings] Replace SettingsMacros.h with a generated base
class for Settings"
https://bugs.webkit.org/show_bug.cgi?id=177681
http://trac.webkit.org/changeset/222686

"[Settings] Enums should not be passed by const reference"
https://bugs.webkit.org/show_bug.cgi?id=177727
http://trac.webkit.org/changeset/222695

"[Settings] Move remaining simple settings to Settings.in"
https://bugs.webkit.org/show_bug.cgi?id=177730
http://trac.webkit.org/changeset/222698

Patch by Commit Queue <commit-queue@webkit.org> on 2017-10-03

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@222806 268f45cc-cd09-0410-ab3c-d52691b4dbfc

38 files changed:
Source/WebCore/CMakeLists.txt
Source/WebCore/ChangeLog
Source/WebCore/DerivedSources.make
Source/WebCore/Scripts/GenerateSettings.py
Source/WebCore/Scripts/GenerateSettings/GenerateInternalSettingsImplementationFile.py
Source/WebCore/Scripts/GenerateSettings/GenerateSettings.py
Source/WebCore/Scripts/GenerateSettings/GenerateSettingsHeaderFile.py [deleted file]
Source/WebCore/Scripts/GenerateSettings/GenerateSettingsImplementationFile.py [deleted file]
Source/WebCore/Scripts/GenerateSettings/GenerateSettingsMacrosHeader.py [new file with mode: 0755]
Source/WebCore/Scripts/GenerateSettings/Settings.py
Source/WebCore/WebCore.xcodeproj/project.pbxproj
Source/WebCore/WebCoreMacros.cmake
Source/WebCore/accessibility/ForcedAccessibilityValue.h [deleted file]
Source/WebCore/css/MediaQueryEvaluator.cpp
Source/WebCore/editing/EditableLinkBehavior.h [deleted file]
Source/WebCore/editing/EditingBehavior.h
Source/WebCore/editing/EditingBehaviorTypes.h [moved from Source/WebCore/editing/EditingBehaviorType.h with 100% similarity]
Source/WebCore/editing/cocoa/DataDetection.h
Source/WebCore/editing/cocoa/DataDetectorTypes.h [deleted file]
Source/WebCore/html/parser/HTMLParserOptions.cpp
Source/WebCore/page/DebugOverlayRegions.h [deleted file]
Source/WebCore/page/FrameFlattening.h [deleted file]
Source/WebCore/page/PDFImageCachingPolicy.h [deleted file]
Source/WebCore/page/Settings.cpp
Source/WebCore/page/Settings.h
Source/WebCore/page/Settings.in
Source/WebCore/page/SettingsDefaultValues.h [deleted file]
Source/WebCore/page/TextDirectionSubmenuInclusionBehavior.h [deleted file]
Source/WebCore/page/UserInterfaceDirectionPolicy.h [deleted file]
Source/WebCore/page/cocoa/SettingsCocoa.mm
Source/WebCore/page/cocoa/SettingsDefaultValuesCocoa.mm [deleted file]
Source/WebCore/platform/text/FontRenderingMode.h [deleted file]
Source/WebCore/platform/text/TextDirection.h [deleted file]
Source/WebCore/platform/text/TextFlags.h
Source/WebCore/platform/text/WritingMode.h
Source/WebCore/style/StyleTreeResolver.cpp
Source/WebCore/testing/InternalSettings.cpp
Source/WebCore/testing/InternalSettings.h

index d5708e9..1cc16c7 100644 (file)
@@ -4022,9 +4022,8 @@ GENERATE_EVENT_FACTORY(${WEBCORE_DIR}/dom/EventTargetFactory.in EventTargetInter
 list(APPEND WebCore_DERIVED_SOURCES ${DERIVED_SOURCES_WEBCORE_DIR}/EventTargetInterfaces.h)
 
 
-GENERATE_SETTINGS_MACROS(${WEBCORE_DIR}/page/Settings.in SettingsGenerated.h)
-list(APPEND WebCore_DERIVED_SOURCES ${DERIVED_SOURCES_WEBCORE_DIR}/SettingsGenerated.h)
-list(APPEND WebCore_DERIVED_SOURCES ${DERIVED_SOURCES_WEBCORE_DIR}/SettingsGenerated.cpp)
+GENERATE_SETTINGS_MACROS(${WEBCORE_DIR}/page/Settings.in SettingsMacros.h)
+list(APPEND WebCore_DERIVED_SOURCES ${DERIVED_SOURCES_WEBCORE_DIR}/SettingsMacros.h)
 list(APPEND WebCoreTestSupport_SOURCES ${DERIVED_SOURCES_WEBCORE_DIR}/InternalSettingsGenerated.cpp)
 
 
index 2fb2f57..1ca6110 100644 (file)
@@ -1,3 +1,27 @@
+2017-10-03  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed, rolling out r222686, r222695, and r222698.
+        https://bugs.webkit.org/show_bug.cgi?id=177835
+
+        Caused LayoutTests to crash in
+        WebCore::TimerBase::setNextFireTime (Requested by ryanhaddad
+        on #webkit).
+
+        Reverted changesets:
+
+        "[Settings] Replace SettingsMacros.h with a generated base
+        class for Settings"
+        https://bugs.webkit.org/show_bug.cgi?id=177681
+        http://trac.webkit.org/changeset/222686
+
+        "[Settings] Enums should not be passed by const reference"
+        https://bugs.webkit.org/show_bug.cgi?id=177727
+        http://trac.webkit.org/changeset/222695
+
+        "[Settings] Move remaining simple settings to Settings.in"
+        https://bugs.webkit.org/show_bug.cgi?id=177730
+        http://trac.webkit.org/changeset/222698
+
 2017-10-03  Jer Noble  <jer.noble@apple.com>
 
         Implement quality-of-service tiers in WebCoreDecompressionSession
index a34e7bb..1d5ef02 100644 (file)
@@ -1381,13 +1381,12 @@ GENERATE_SETTINGS_SCRIPTS = \
     $(WebCore)/Scripts/GenerateSettings/GenerateInternalSettingsIDLFile.py \
     $(WebCore)/Scripts/GenerateSettings/GenerateInternalSettingsImplementationFile.py \
     $(WebCore)/Scripts/GenerateSettings/GenerateSettings.py \
-    $(WebCore)/Scripts/GenerateSettings/GenerateSettingsHeaderFile.py \
-    $(WebCore)/Scripts/GenerateSettings/GenerateSettingsImplementationFile.py \
+    $(WebCore)/Scripts/GenerateSettings/GenerateSettingsMacrosHeader.py \
     $(WebCore)/Scripts/GenerateSettings/Settings.py \
     $(WebCore)/Scripts/GenerateSettings/__init__.py
 
-all : InternalSettingsGenerated.idl InternalSettingsGenerated.cpp InternalSettingsGenerated.h SettingsGenerated.cpp SettingsGenerated.h
-InternalSettingsGenerated%idl InternalSettingsGenerated%cpp InternalSettingsGenerated%h SettingsGenerated%cpp SettingsGenerated%h : $(WebCore)/Scripts/GenerateSettings.py $(GENERATE_SETTINGS_SCRIPTS) page/Settings.in
+all : InternalSettingsGenerated.idl InternalSettingsGenerated.cpp InternalSettingsGenerated.h SettingsMacros.h
+InternalSettingsGenerated%idl InternalSettingsGenerated%cpp InternalSettingsGenerated%h SettingsMacros%h : $(WebCore)/Scripts/GenerateSettings.py $(GENERATE_SETTINGS_SCRIPTS) page/Settings.in
        $(PYTHON) $< --input $(WebCore)/page/Settings.in
 
 # --------
index e2bac81..92cb4f7 100755 (executable)
@@ -49,8 +49,7 @@ def main():
 
     settings = parseInput(options.input)
 
-    generateSettingsHeaderFile(outputDirectory, settings)
-    generateSettingsImplementationFile(outputDirectory, settings)
+    generateSettingsMacrosHeader(outputDirectory, settings)
     generateInternalSettingsIDLFile(outputDirectory, settings)
     generateInternalSettingsHeaderFile(outputDirectory, settings)
     generateInternalSettingsImplementationFile(outputDirectory, settings)
index b8a73d0..f08ca20 100755 (executable)
@@ -25,7 +25,7 @@
 
 import os.path
 
-from Settings import license, makeSetterFunctionName, makeGetterFunctionName, makeConditionalString, mapToIDLType
+from Settings import license, makeSetterFunctionName, makeConditionalString, mapToIDLType, makeConditionalString
 
 
 def generateInternalSettingsImplementationFile(outputDirectory, settings):
@@ -53,7 +53,7 @@ def generateInternalSettingsImplementationFile(outputDirectory, settings):
         if setting.conditional:
             outputFile.write("#if " + makeConditionalString(setting.conditional) + "\n")
 
-        outputFile.write("    , m_" + setting.name + "(page->settings()." + makeGetterFunctionName(setting) + "())\n")
+        outputFile.write("    , m_" + setting.name + "(page->settings()." + setting.name + "())\n")
 
         if setting.conditional:
             outputFile.write("#endif\n")
index 0089fee..4038102 100644 (file)
@@ -1,6 +1,5 @@
 from Settings import *
-from GenerateInternalSettingsIDLFile import *
 from GenerateInternalSettingsHeaderFile import *
+from GenerateInternalSettingsIDLFile import *
 from GenerateInternalSettingsImplementationFile import *
-from GenerateSettingsHeaderFile import *
-from GenerateSettingsImplementationFile import *
+from GenerateSettingsMacrosHeader import *
diff --git a/Source/WebCore/Scripts/GenerateSettings/GenerateSettingsHeaderFile.py b/Source/WebCore/Scripts/GenerateSettings/GenerateSettingsHeaderFile.py
deleted file mode 100755 (executable)
index 05622da..0000000
+++ /dev/null
@@ -1,209 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (c) 2017 Apple Inc. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-#    notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-#    notice, this list of conditions and the following disclaimer in the
-#    documentation and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
-# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-# THE POSSIBILITY OF SUCH DAMAGE.
-
-import os.path
-
-from Settings import license, makeConditionalString, makeSetterFunctionName, makeGetterFunctionName, includeForSetting, typeIsValueType
-
-
-def generateSettingsHeaderFile(outputDirectory, settings):
-    outputPath = os.path.join(outputDirectory, "SettingsGenerated.h")
-    outputFile = open(outputPath, 'w')
-    outputFile.write(license())
-
-    settingsByConditional = {}
-    unconditionalSettings = {}
-
-    for settingName in sorted(settings.iterkeys()):
-        setting = settings[settingName]
-        if setting.conditional:
-            if setting.conditional not in settingsByConditional:
-                settingsByConditional[setting.conditional] = {}
-            settingsByConditional[setting.conditional][setting.name] = True
-        else:
-            unconditionalSettings[setting.name] = True
-
-    sortedUnconditionalSettingsNames = sorted(unconditionalSettings.iterkeys())
-    sortedConditionals = sorted(settingsByConditional.iterkeys())
-
-    outputFile.write("#pragma once\n\n")
-
-    outputFile.write("#include <wtf/RefCounted.h>\n\n")
-
-    printIncludes(outputFile, sortedUnconditionalSettingsNames, sortedConditionals, settingsByConditional, settings)
-
-    outputFile.write("namespace WebCore {\n\n")
-
-    outputFile.write("class Page;\n\n")
-
-    outputFile.write("class SettingsGenerated : public RefCounted<SettingsGenerated> {\n")
-    outputFile.write("public:\n")
-    outputFile.write("    ~SettingsGenerated();\n\n")
-
-    printGettersAndSetters(outputFile, sortedUnconditionalSettingsNames, sortedConditionals, settingsByConditional, settings)
-
-    outputFile.write("\n")
-    outputFile.write("protected:\n")
-    outputFile.write("    SettingsGenerated();\n\n")
-
-    outputFile.write("    Page* m_page { nullptr };\n")
-    printMemberVariables(outputFile, sortedUnconditionalSettingsNames, sortedConditionals, settingsByConditional, settings)
-
-    outputFile.write("};\n\n")
-    outputFile.write("}\n")
-
-    outputFile.close()
-
-
-def printIncludes(outputFile, sortedUnconditionalSettingsNames, sortedConditionals, settingsByConditional, settings):
-    unconditionalIncludes = set()
-    includesByConditional = {}
-
-    for unconditionalSettingName in sortedUnconditionalSettingsNames:
-        include = includeForSetting(settings[unconditionalSettingName])
-        if include:
-            unconditionalIncludes.add(include)
-
-    for conditional in sortedConditionals:
-        includesForCondition = set()
-        for settingName in sorted(settingsByConditional[conditional].iterkeys()):
-            include = includeForSetting(settings[settingName])
-            if include and include not in unconditionalIncludes:
-                includesForCondition.add(include)
-
-        if len(includesForCondition) != 0:
-            includesByConditional[conditional] = includesForCondition
-
-    for unconditionalInclude in sorted(unconditionalIncludes):
-        outputFile.write("#include " + unconditionalInclude + "\n")
-
-    outputFile.write("\n")
-
-    for conditional in sorted(includesByConditional.iterkeys()):
-        outputFile.write("#if " + makeConditionalString(conditional) + "\n")
-
-        for conditionalInclude in sorted(includesByConditional[conditional]):
-            outputFile.write("#include " + conditionalInclude + "\n")
-
-        outputFile.write("#endif\n\n")
-
-
-def printGetterAndSetter(outputFile, setting):
-    setterFunctionName = makeSetterFunctionName(setting)
-    getterFunctionName = makeGetterFunctionName(setting)
-
-    # Export is only needed if the definition is not in the header.
-    webcoreExport = "WEBCORE_EXPORT " if setting.setNeedsStyleRecalcInAllFrames else ""
-
-    if not typeIsValueType(setting):
-        outputFile.write("    " + setting.type + " " + getterFunctionName + "() const { return m_" + setting.name + "; } \n")
-        outputFile.write("    " + webcoreExport + "void " + setterFunctionName + "(" + setting.type + " " + setting.name + ")")
-    else:
-        outputFile.write("    const " + setting.type + "& " + getterFunctionName + "() const { return m_" + setting.name + "; } \n")
-        outputFile.write("    " + webcoreExport + "void " + setterFunctionName + "(const " + setting.type + "& " + setting.name + ")")
-
-    if setting.setNeedsStyleRecalcInAllFrames:
-        outputFile.write(";\n\n")
-    else:
-        outputFile.write(" { m_" + setting.name + " = " + setting.name + "; }\n\n")
-
-
-def printGettersAndSetters(outputFile, sortedUnconditionalSettingsNames, sortedConditionals, settingsByConditional, settings):
-    for unconditionalSettingName in sortedUnconditionalSettingsNames:
-        printGetterAndSetter(outputFile, settings[unconditionalSettingName])
-
-    for conditional in sortedConditionals:
-        outputFile.write("#if " + makeConditionalString(conditional) + "\n")
-
-        for settingName in sorted(settingsByConditional[conditional].iterkeys()):
-            printGetterAndSetter(outputFile, settings[settingName])
-
-        outputFile.write("#endif\n")
-
-
-def printMemberVariables(outputFile, sortedUnconditionalSettingsNames, sortedConditionals, settingsByConditional, settings):
-    # We list the bools together so we can bit pack them.
-
-    # Print all the bools
-
-    for unconditionalSettingName in sortedUnconditionalSettingsNames:
-        setting = settings[unconditionalSettingName]
-        if setting.type != "bool":
-            continue
-        outputFile.write("    " + setting.type + " m_" + setting.name + " : 1; \n")
-
-    for conditional in sortedConditionals:
-        sortedSettingsNames = sorted(settingsByConditional[conditional].iterkeys())
-
-        hasMember = False
-        for settingName in sortedSettingsNames:
-            setting = settings[settingName]
-            if setting.type == "bool":
-                hasMember = True
-                break
-
-        if not hasMember:
-            continue
-
-        outputFile.write("#if " + makeConditionalString(conditional) + "\n")
-
-        for settingName in sortedSettingsNames:
-            setting = settings[settingName]
-            if setting.type != "bool":
-                continue
-            outputFile.write("    " + setting.type + " m_" + setting.name + " : 1; \n")
-
-        outputFile.write("#endif\n")
-
-    # Print all the non-bools
-
-    for unconditionalSettingName in sortedUnconditionalSettingsNames:
-        setting = settings[unconditionalSettingName]
-        if setting.type == "bool":
-            continue
-        outputFile.write("    " + setting.type + " m_" + setting.name + ";\n")
-
-    for conditional in sortedConditionals:
-        sortedSettingsNames = sorted(settingsByConditional[conditional].iterkeys())
-
-        hasMember = False
-        for settingName in sortedSettingsNames:
-            setting = settings[settingName]
-            if setting.type != "bool":
-                hasMember = True
-                break
-
-        if not hasMember:
-            continue
-
-        outputFile.write("#if " + makeConditionalString(conditional) + "\n")
-
-        for settingName in sortedSettingsNames:
-            setting = settings[settingName]
-            if setting.type == "bool":
-                continue
-            outputFile.write("    " + setting.type + " m_" + setting.name + ";\n")
-
-        outputFile.write("#endif\n")
diff --git a/Source/WebCore/Scripts/GenerateSettings/GenerateSettingsImplementationFile.py b/Source/WebCore/Scripts/GenerateSettings/GenerateSettingsImplementationFile.py
deleted file mode 100755 (executable)
index 0cf057d..0000000
+++ /dev/null
@@ -1,194 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (c) 2017 Apple Inc. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-#    notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-#    notice, this list of conditions and the following disclaimer in the
-#    documentation and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
-# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-# THE POSSIBILITY OF SUCH DAMAGE.
-
-import os.path
-
-from Settings import license, makeConditionalString, makeSetterFunctionName, typeIsValueType
-
-
-def generateSettingsImplementationFile(outputDirectory, settings):
-    outputPath = os.path.join(outputDirectory, "SettingsGenerated.cpp")
-    outputFile = open(outputPath, 'w')
-    outputFile.write(license())
-
-    settingsByConditional = {}
-    unconditionalSettings = {}
-
-    for settingName in sorted(settings.iterkeys()):
-        setting = settings[settingName]
-        if setting.conditional:
-            if setting.conditional not in settingsByConditional:
-                settingsByConditional[setting.conditional] = {}
-            settingsByConditional[setting.conditional][setting.name] = True
-        else:
-            unconditionalSettings[setting.name] = True
-
-    sortedUnconditionalSettingsNames = sorted(unconditionalSettings.iterkeys())
-    sortedConditionals = sorted(settingsByConditional.iterkeys())
-
-    outputFile.write("#include \"config.h\"\n")
-    outputFile.write("#include \"SettingsGenerated.h\"\n\n")
-
-    outputFile.write("#include \"Page.h\"\n")
-    outputFile.write("#include \"SettingsDefaultValues.h\"\n\n")
-
-    outputFile.write("namespace WebCore {\n\n")
-
-    printConstructor(outputFile, sortedUnconditionalSettingsNames, sortedConditionals, settingsByConditional, settings)
-
-    outputFile.write("SettingsGenerated::~SettingsGenerated()\n")
-    outputFile.write("{\n")
-    outputFile.write("}\n\n")
-
-    printSetterBodies(outputFile, sortedUnconditionalSettingsNames, sortedConditionals, settingsByConditional, settings)
-
-    outputFile.write("}\n")
-
-    outputFile.close()
-
-
-def needsInitializer(setting, state):
-    if not setting.initial:
-        return False
-
-    if state["processingBool"] and setting.type != "bool":
-        return False
-
-    if not state["processingBool"] and setting.type == "bool":
-        return False
-
-    return True
-
-
-def printInitializer(outputFile, setting, state):
-    if not needsInitializer(setting, state):
-        return
-
-    if not state["handledFirstVariable"]:
-        outputFile.write("    : m_" + setting.name + "(" + setting.initial + ")\n")
-        state["handledFirstVariable"] = True
-    else:
-        outputFile.write("    , m_" + setting.name + "(" + setting.initial + ")\n")
-
-
-def printConditionalInitializers(outputFile, conditional, settingsByConditional, settings, state):
-    hasInitializer = False
-
-    sortedSettingsNames = sorted(settingsByConditional[conditional].iterkeys())
-    for settingName in sortedSettingsNames:
-        setting = settings[settingName]
-        if needsInitializer(setting, state):
-            hasInitializer = True
-            break
-
-    if not hasInitializer:
-        return
-
-    outputFile.write("#if " + makeConditionalString(conditional) + "\n")
-
-    for settingName in sortedSettingsNames:
-        setting = settings[settingName]
-        printInitializer(outputFile, setting, state)
-
-    outputFile.write("#endif\n")
-
-
-def printConstructor(outputFile, sortedUnconditionalSettingsNames, sortedConditionals, settingsByConditional, settings):
-    outputFile.write("SettingsGenerated::SettingsGenerated()\n")
-
-    state = {
-        "handledFirstVariable": False,
-        "processingBool": True
-    }
-
-    for unconditionalSettingName in sortedUnconditionalSettingsNames:
-        setting = settings[unconditionalSettingName]
-        printInitializer(outputFile, setting, state)
-
-    for conditional in sortedConditionals:
-        printConditionalInitializers(outputFile, conditional, settingsByConditional, settings, state)
-
-    state["processingBool"] = False
-
-    for unconditionalSettingName in sortedUnconditionalSettingsNames:
-        setting = settings[unconditionalSettingName]
-        printInitializer(outputFile, setting, state)
-
-    for conditional in sortedConditionals:
-        printConditionalInitializers(outputFile, conditional, settingsByConditional, settings, state)
-
-    outputFile.write("{\n")
-    outputFile.write("}\n\n")
-
-
-def needsSetterBody(setting):
-    if setting.setNeedsStyleRecalcInAllFrames:
-        return True
-    return False
-
-
-def printSetterBody(outputFile, setting):
-    if not needsSetterBody(setting):
-        return
-
-    setterFunctionName = makeSetterFunctionName(setting)
-
-    if not typeIsValueType(setting):
-        outputFile.write("void SettingsGenerated::" + setterFunctionName + "(" + setting.type + " " + setting.name + ")\n")
-    else:
-        outputFile.write("void SettingsGenerated::" + setterFunctionName + "(const " + setting.type + "& " + setting.name + ")\n")
-
-    outputFile.write("{\n")
-    outputFile.write("    if (m_" + setting.name + " == " + setting.name + ")\n")
-    outputFile.write("        return;\n")
-    outputFile.write("    m_" + setting.name + " = " + setting.name + ";\n")
-    outputFile.write("    m_page->setNeedsRecalcStyleInAllFrames();\n")
-    outputFile.write("}\n\n")
-
-
-def printSetterBodies(outputFile, sortedUnconditionalSettingsNames, sortedConditionals, settingsByConditional, settings):
-    for unconditionalSettingName in sortedUnconditionalSettingsNames:
-        setting = settings[unconditionalSettingName]
-        printSetterBody(outputFile, setting)
-
-    for conditional in sortedConditionals:
-        hasSetter = False
-        sortedSettingsNames = sorted(settingsByConditional[conditional].iterkeys())
-        for settingName in sortedSettingsNames:
-            setting = settings[settingName]
-            if needsSetterBody(setting):
-                hasSetter = True
-                break
-
-        if not hasSetter:
-            continue
-
-        outputFile.write("#if " + makeConditionalString(conditional) + "\n")
-
-        for settingName in sortedSettingsNames:
-            setting = settings[settingName]
-            printSetterBody(outputFile, setting)
-
-        outputFile.write("#endif\n")
diff --git a/Source/WebCore/Scripts/GenerateSettings/GenerateSettingsMacrosHeader.py b/Source/WebCore/Scripts/GenerateSettings/GenerateSettingsMacrosHeader.py
new file mode 100755 (executable)
index 0000000..f0c3265
--- /dev/null
@@ -0,0 +1,272 @@
+#!/usr/bin/env python
+#
+# Copyright (c) 2017 Apple Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+# THE POSSIBILITY OF SUCH DAMAGE.
+
+import os.path
+
+from Settings import license, makeConditionalString, makeSetterFunctionName, makePreferredConditional
+
+
+def generateSettingsMacrosHeader(outputDirectory, settings):
+    settingsByConditional = {}
+    unconditionalSettings = {}
+
+    for settingName in sorted(settings.iterkeys()):
+        setting = settings[settingName]
+        if setting.conditional:
+            if setting.conditional not in settingsByConditional:
+                settingsByConditional[setting.conditional] = {}
+            settingsByConditional[setting.conditional][setting.name] = True
+        else:
+            unconditionalSettings[setting.name] = True
+
+    outputPath = os.path.join(outputDirectory, "SettingsMacros.h")
+    outputFile = open(outputPath, 'w')
+    outputFile.write(license())
+
+    # FIXME: Sort by type so bools come last and are bit packed.
+
+    # FIXME: Convert to #pragma once
+    outputFile.write("#ifndef SettingsMacros_h\n")
+    outputFile.write("#define SettingsMacros_h\n\n")
+
+    sortedUnconditionalSettingsNames = sorted(unconditionalSettings.iterkeys())
+    sortedConditionals = sorted(settingsByConditional.iterkeys())
+
+    printConditionalMacros(outputFile, sortedConditionals, settingsByConditional, settings)
+
+    printGettersAndSetters(outputFile, sortedUnconditionalSettingsNames, sortedConditionals, settings)
+    printMemberVariables(outputFile, sortedUnconditionalSettingsNames, sortedConditionals, settings)
+    printInitializerList(outputFile, sortedUnconditionalSettingsNames, sortedConditionals, settings)
+    printSetterBodies(outputFile, sortedUnconditionalSettingsNames, sortedConditionals, settings)
+
+    outputFile.write("#endif // SettingsMacros_h\n")
+    outputFile.close()
+
+
+def printGetterAndSetter(outputFile, setting):
+    setterFunctionName = makeSetterFunctionName(setting)
+
+    # Export is only needed if the definition is not in the header.
+    webcoreExport = "WEBCORE_EXPORT" if setting.setNeedsStyleRecalcInAllFrames else ""
+
+    # FIXME: When webcoreExport is "", line has extra space.
+
+    if setting.type[0].islower():
+        outputFile.write("    " + setting.type + " " + setting.name + "() const { return m_" + setting.name + "; } \\\n")
+        outputFile.write("    " + webcoreExport + " void " + setterFunctionName + "(" + setting.type + " " + setting.name + ")")
+    else:
+        outputFile.write("    const " + setting.type + "& " + setting.name + "() const { return m_" + setting.name + "; } \\\n")
+        outputFile.write("    " + webcoreExport + " void " + setterFunctionName + "(const " + setting.type + "& " + setting.name + ")")
+
+    if setting.setNeedsStyleRecalcInAllFrames:
+        outputFile.write("; \\\n")
+    else:
+        outputFile.write(" { m_" + setting.name + " = " + setting.name + "; } \\\n")
+
+
+def printSetterBody(outputFile, setting):
+    if not setting.setNeedsStyleRecalcInAllFrames:
+        return
+
+    setterFunctionName = makeSetterFunctionName(setting)
+
+    if setting.type[0].islower():
+        outputFile.write("void Settings::" + setterFunctionName + "(" + setting.type + " " + setting.name + ") \\\n")
+    else:
+        outputFile.write("void Settings::" + setterFunctionName + "(const " + setting.type + "& " + setting.name + ") \\\n")
+
+    outputFile.write("{ \\\n")
+    outputFile.write("    if (m_" + setting.name + " == " + setting.name + ") \\\n")
+    outputFile.write("        return; \\\n")
+    outputFile.write("    m_" + setting.name + " = " + setting.name + "; \\\n")
+    outputFile.write("    m_page->setNeedsRecalcStyleInAllFrames(); \\\n")
+    outputFile.write("} \\\n")
+
+
+def printConditionalMacros(outputFile, sortedConditionals, settingsByConditional, settings):
+    for conditional in sortedConditionals:
+        outputFile.write("#if " + makeConditionalString(conditional) + "\n")
+
+        # Getter/Setters
+
+        sortedSettingsNames = sorted(settingsByConditional[conditional].iterkeys())
+
+        preferredConditional = makePreferredConditional(conditional)
+
+        outputFile.write("#define " + preferredConditional + "_SETTINGS_GETTER_AND_SETTERS \\\n")
+
+        for settingName in sortedSettingsNames:
+            printGetterAndSetter(outputFile, settings[settingName])
+
+        outputFile.write("// End of " + preferredConditional + "_SETTINGS_GETTER_AND_SETTERS\n")
+
+        # Member variables
+
+        outputFile.write("#define " + preferredConditional + "_SETTINGS_NON_BOOL_MEMBER_VARIABLES \\\n")
+
+        for settingName in sortedSettingsNames:
+            setting = settings[settingName]
+            if setting.type == 'bool':
+                continue
+            outputFile.write("    " + setting.type + " m_" + setting.name + "; \\\n")
+
+        outputFile.write("// End of " + preferredConditional + "_SETTINGS_NON_BOOL_MEMBER_VARIABLES\n")
+
+        outputFile.write("#define " + preferredConditional + "_SETTINGS_BOOL_MEMBER_VARIABLES \\\n")
+
+        for settingName in sortedSettingsNames:
+            setting = settings[settingName]
+            if setting.type != 'bool':
+                continue
+            outputFile.write("    " + setting.type + " m_" + setting.name + " : 1; \\\n")
+
+        outputFile.write("// End of " + preferredConditional + "_SETTINGS_BOOL_MEMBER_VARIABLES\n")
+
+        # Initializers
+
+        outputFile.write("#define " + preferredConditional + "_SETTINGS_NON_BOOL_INITIALIZERS \\\n")
+
+        for settingName in sortedSettingsNames:
+            setting = settings[settingName]
+            if setting.type == 'bool':
+                continue
+            if not setting.initial:
+                continue
+            outputFile.write("    , m_" + setting.name + "(" + setting.initial + ") \\\n")
+
+        outputFile.write("// End of " + preferredConditional + "_SETTINGS_NON_BOOL_INITIALIZERS\n")
+
+        outputFile.write("#define " + preferredConditional + "_SETTINGS_BOOL_INITIALIZERS \\\n")
+
+        for settingName in sortedSettingsNames:
+            setting = settings[settingName]
+            if setting.type != 'bool':
+                continue
+            if not setting.initial:
+                continue
+            outputFile.write("    , m_" + setting.name + "(" + setting.initial + ") \\\n")
+
+        outputFile.write("// End of " + preferredConditional + "_SETTINGS_BOOL_INITIALIZERS\n")
+
+        # Setter Bodies
+
+        outputFile.write("#define " + preferredConditional + "_SETTINGS_SETTER_BODIES \\\n")
+
+        for settingName in sortedSettingsNames:
+            setting = settings[settingName]
+            printSetterBody(outputFile, setting)
+
+        outputFile.write("// End of " + preferredConditional + "_SETTINGS_SETTER_BODIES\n")
+
+        outputFile.write("#else\n")
+        outputFile.write("#define " + preferredConditional + "_SETTINGS_GETTER_AND_SETTERS\n")
+        outputFile.write("#define " + preferredConditional + "_SETTINGS_NON_BOOL_MEMBER_VARIABLES\n")
+        outputFile.write("#define " + preferredConditional + "_SETTINGS_BOOL_MEMBER_VARIABLES\n")
+        outputFile.write("#define " + preferredConditional + "_SETTINGS_NON_BOOL_INITIALIZERS\n")
+        outputFile.write("#define " + preferredConditional + "_SETTINGS_BOOL_INITIALIZERS\n")
+        outputFile.write("#define " + preferredConditional + "_SETTINGS_SETTER_BODIES\n")
+        outputFile.write("#endif\n")
+        outputFile.write("\n")
+
+
+def printGettersAndSetters(outputFile, sortedUnconditionalSettingsNames, sortedConditionals, settings):
+    outputFile.write("#define SETTINGS_GETTERS_AND_SETTERS \\\n")
+
+    for unconditionalSettingName in sortedUnconditionalSettingsNames:
+        printGetterAndSetter(outputFile, settings[unconditionalSettingName])
+
+    for conditional in sortedConditionals:
+        outputFile.write("    " + makePreferredConditional(conditional) + "_SETTINGS_GETTER_AND_SETTERS \\\n")
+
+    outputFile.write("// End of SETTINGS_GETTERS_AND_SETTERS.\n\n")
+
+
+def printMemberVariables(outputFile, sortedUnconditionalSettingsNames, sortedConditionals, settings):
+    outputFile.write("#define SETTINGS_MEMBER_VARIABLES \\\n")
+
+    # We list the bools last so we can bit pack them.
+
+    for unconditionalSettingName in sortedUnconditionalSettingsNames:
+        setting = settings[unconditionalSettingName]
+        if setting.type == "bool":
+            continue
+        outputFile.write("    " + setting.type + " m_" + setting.name + "; \\\n")
+
+    for conditional in sortedConditionals:
+        outputFile.write("    " + makePreferredConditional(conditional) + "_SETTINGS_NON_BOOL_MEMBER_VARIABLES \\\n")
+
+    for unconditionalSettingName in sortedUnconditionalSettingsNames:
+        setting = settings[unconditionalSettingName]
+        if setting.type != "bool":
+            continue
+        outputFile.write("    " + setting.type + " m_" + setting.name + " : 1; \\\n")
+
+    for conditional in sortedConditionals:
+        outputFile.write("    " + makePreferredConditional(conditional) + "_SETTINGS_BOOL_MEMBER_VARIABLES \\\n")
+
+    outputFile.write("// End of SETTINGS_MEMBER_VARIABLES.\n\n")
+
+
+def printInitializerList(outputFile, sortedUnconditionalSettingsNames, sortedConditionals, settings):
+    outputFile.write("#define SETTINGS_INITIALIZER_LIST \\\n")
+
+    # We list the bools last so we can bit pack them.
+
+    for unconditionalSettingName in sortedUnconditionalSettingsNames:
+        setting = settings[unconditionalSettingName]
+        if setting.type == "bool":
+            continue
+        if not setting.initial:
+            continue
+        outputFile.write("    , m_" + setting.name + "(" + setting.initial + ") \\\n")
+
+    for conditional in sortedConditionals:
+        outputFile.write("    " + makePreferredConditional(conditional) + "_SETTINGS_NON_BOOL_INITIALIZERS \\\n")
+
+    for unconditionalSettingName in sortedUnconditionalSettingsNames:
+        setting = settings[unconditionalSettingName]
+        if setting.type != "bool":
+            continue
+        if not setting.initial:
+            continue
+        outputFile.write("    , m_" + setting.name + "(" + setting.initial + ") \\\n")
+
+    for conditional in sortedConditionals:
+        outputFile.write("    " + makePreferredConditional(conditional) + "_SETTINGS_BOOL_INITIALIZERS \\\n")
+
+    outputFile.write("// End of SETTINGS_INITIALIZER_LIST.\n\n")
+
+
+def printSetterBodies(outputFile, sortedUnconditionalSettingsNames, sortedConditionals, settings):
+    outputFile.write("#define SETTINGS_SETTER_BODIES \\\n")
+
+    for unconditionalSettingName in sortedUnconditionalSettingsNames:
+        setting = settings[unconditionalSettingName]
+        printSetterBody(outputFile, setting)
+
+    for conditional in sortedConditionals:
+        outputFile.write("    " + makePreferredConditional(conditional) + "_SETTINGS_SETTER_BODIES \\\n")
+
+    outputFile.write("// End of SETTINGS_SETTER_BODIES.\n\n")
index 147b5fd..47f1b9e 100755 (executable)
@@ -65,8 +65,6 @@ class Setting:
         self.initial = None
         self.conditional = None
         self.setNeedsStyleRecalcInAllFrames = None
-        self.include = None
-        self.getter = None
 
     def __str__(self):
         result = self.name + " TYPE:" + self.type
@@ -76,10 +74,6 @@ class Setting:
             result += " COND:" + self.conditional
         if (self.setNeedsStyleRecalcInAllFrames):
             result += " RECALC:" + self.setNeedsStyleRecalcInAllFrames
-        if (self.include):
-            result += " INCLUDE:" + self.include
-        if (self.getter):
-            result += " GETTER:" + self.getter
         return result
 
 
@@ -94,12 +88,6 @@ def makeSetterFunctionName(setting):
     return "set" + uppercaseFirstN(setting.name, 1)
 
 
-def makeGetterFunctionName(setting):
-    if setting.getter:
-        return setting.getter
-    return setting.name
-
-
 def makePreferredConditional(conditional):
     return conditional.split('|')[0]
 
@@ -113,7 +101,7 @@ def mapToIDLType(setting):
     # FIXME: Add support for more types including enumerate types.
     if setting.type == 'int':
         return 'long'
-    if setting.type == 'unsigned':
+    if setting.type == 'unsigned' or setting.type == 'size_t':
         return 'unsigned long'
     if setting.type == 'double':
         return 'double'
@@ -126,51 +114,11 @@ def mapToIDLType(setting):
     return None
 
 
-def typeIsPrimitive(setting):
-    if setting.type == 'int':
-        return True
-    if setting.type == 'unsigned':
-        return True
-    if setting.type == 'double':
-        return True
-    if setting.type == 'float':
-        return True
-    if setting.type == 'bool':
-        return True
-    return False
-
-
-def typeIsValueType(setting):
-    if setting.type == 'String':
-        return True
-
-    return False
-
-
-def includeForSetting(setting):
-    # Always prefer an explicit include.
-    if setting.include:
-        return setting.include
-
-    # Include nothing for primitive types.
-    if typeIsPrimitive(setting):
-        return None
-
-    # Special case String and Seconds, as they doesn't follow the pattern of being in a file with the
-    # same name as the class.
-    if setting.type == 'String':
-        return "<wtf/text/WTFString.h>"
-    if setting.type == 'Seconds':
-        return "<wtf/Seconds.h>"
-
-    # Default to using the type name for the include.
-    return "\"" + setting.type + ".h\""
-
-
 def parseInput(input):
     settings = {}
     for line in open(input, "r"):
         if not line.startswith("#") and not line.isspace():
+
             (name, optionsString) = line.rstrip().split(' ', 1)
 
             options = re.split(r' *, *', optionsString)
@@ -186,10 +134,6 @@ def parseInput(input):
                     setting.conditional = value
                 if (name == 'setNeedsStyleRecalcInAllFrames'):
                     setting.setNeedsStyleRecalcInAllFrames = value
-                if (name == 'include'):
-                    setting.include = value
-                if (name == 'getter'):
-                    setting.getter = value
 
             # FIXME: ASSERT something about setting.initial
 
index a6c656b..b0e7549 100644 (file)
                4E19592B0A39DACC00220FE5 /* MediaQueryEvaluator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4E1959250A39DACC00220FE5 /* MediaQueryEvaluator.cpp */; };
                4E19592C0A39DACC00220FE5 /* MediaQueryEvaluator.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E1959260A39DACC00220FE5 /* MediaQueryEvaluator.h */; settings = {ATTRIBUTES = (Private, ); }; };
                4F1534DE11B532EC0021FD86 /* EditingBehavior.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F1534DD11B532EC0021FD86 /* EditingBehavior.h */; settings = {ATTRIBUTES = (Private, ); }; };
-               4F1534E011B533020021FD86 /* EditingBehaviorType.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F1534DF11B533020021FD86 /* EditingBehaviorType.h */; settings = {ATTRIBUTES = (Private, ); }; };
+               4F1534E011B533020021FD86 /* EditingBehaviorTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F1534DF11B533020021FD86 /* EditingBehaviorTypes.h */; settings = {ATTRIBUTES = (Private, ); }; };
                4F6FDD641341DEDD001F8EE3 /* InspectorPageAgent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F6FDD621341DEDD001F8EE3 /* InspectorPageAgent.cpp */; };
                4F6FDD651341DEDD001F8EE3 /* InspectorPageAgent.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F6FDD631341DEDD001F8EE3 /* InspectorPageAgent.h */; settings = {ATTRIBUTES = (Private, ); }; };
                4FA65A6B1108ABED002615E0 /* MathMLSpaceElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4FA65A691108ABED002615E0 /* MathMLSpaceElement.cpp */; };
                53E29E5F167A8A1900586D3D /* InternalSettingsGenerated.h in Headers */ = {isa = PBXBuildFile; fileRef = 53E29E5D167A8A1900586D3D /* InternalSettingsGenerated.h */; };
                53ED3FDE167A88E7006762E6 /* JSInternalSettingsGenerated.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 53ED3FDC167A88E7006762E6 /* JSInternalSettingsGenerated.cpp */; };
                53ED3FDF167A88E7006762E6 /* JSInternalSettingsGenerated.h in Headers */ = {isa = PBXBuildFile; fileRef = 53ED3FDD167A88E7006762E6 /* JSInternalSettingsGenerated.h */; };
+               53EF766B16530A61004CBE49 /* SettingsMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 53EF766A16530A61004CBE49 /* SettingsMacros.h */; };
+               53EF766C16531994004CBE49 /* SettingsMacros.h in Copy Generated Headers */ = {isa = PBXBuildFile; fileRef = 53EF766A16530A61004CBE49 /* SettingsMacros.h */; };
                550A0BC9085F6039007353D6 /* QualifiedName.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 550A0BC7085F6039007353D6 /* QualifiedName.cpp */; };
                550A0BCA085F6039007353D6 /* QualifiedName.h in Headers */ = {isa = PBXBuildFile; fileRef = 550A0BC8085F6039007353D6 /* QualifiedName.h */; settings = {ATTRIBUTES = (Private, ); }; };
                5550CB421E955E3C00111AA0 /* ImageTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 5550CB411E955E3C00111AA0 /* ImageTypes.h */; settings = {ATTRIBUTES = (Private, ); }; };
                7AF9B20E18CFB5F400C64BEF /* JSVTTRegionList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7AF9B20A18CFB5F300C64BEF /* JSVTTRegionList.cpp */; };
                7AF9B20F18CFB5F400C64BEF /* JSVTTRegionList.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AF9B20B18CFB5F300C64BEF /* JSVTTRegionList.h */; };
                7BE7427381FA906FBB4F0F2C /* JSSVGGraphicsElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 950C4C02BED8936F818E2F99 /* JSSVGGraphicsElement.h */; };
-               7C017CB61F7E704B00444E9B /* SettingsGenerated.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C017CB21F7E6FFF00444E9B /* SettingsGenerated.cpp */; };
-               7C017CB71F7E705000444E9B /* SettingsGenerated.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C017CB31F7E6FFF00444E9B /* SettingsGenerated.h */; settings = {ATTRIBUTES = (Private, ); }; };
-               7C017CBB1F7E97CE00444E9B /* DebugOverlayRegions.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C017CBA1F7E97CE00444E9B /* DebugOverlayRegions.h */; settings = {ATTRIBUTES = (Private, ); }; };
-               7C017CBD1F7E983700444E9B /* EditableLinkBehavior.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C017CBC1F7E983700444E9B /* EditableLinkBehavior.h */; settings = {ATTRIBUTES = (Private, ); }; };
-               7C017CBF1F7E988800444E9B /* ForcedAccessibilityValue.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C017CBE1F7E988800444E9B /* ForcedAccessibilityValue.h */; settings = {ATTRIBUTES = (Private, ); }; };
-               7C017CC11F7E99BB00444E9B /* FrameFlattening.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C017CC01F7E99BB00444E9B /* FrameFlattening.h */; settings = {ATTRIBUTES = (Private, ); }; };
-               7C017CC31F7E9A1E00444E9B /* PDFImageCachingPolicy.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C017CC21F7E9A1E00444E9B /* PDFImageCachingPolicy.h */; settings = {ATTRIBUTES = (Private, ); }; };
-               7C017CC51F7E9A7400444E9B /* UserInterfaceDirectionPolicy.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C017CC41F7E9A7400444E9B /* UserInterfaceDirectionPolicy.h */; settings = {ATTRIBUTES = (Private, ); }; };
-               7C017CC71F7E9ACB00444E9B /* TextDirection.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C017CC61F7E9ACB00444E9B /* TextDirection.h */; settings = {ATTRIBUTES = (Private, ); }; };
-               7C017CC91F7E9B3000444E9B /* TextDirectionSubmenuInclusionBehavior.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C017CC81F7E9B3000444E9B /* TextDirectionSubmenuInclusionBehavior.h */; settings = {ATTRIBUTES = (Private, ); }; };
-               7C017CCB1F7E9B8B00444E9B /* SettingsDefaultValues.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C017CCA1F7E9B8B00444E9B /* SettingsDefaultValues.h */; settings = {ATTRIBUTES = (Private, ); }; };
-               7C017CCF1F7EB28F00444E9B /* DataDetectorTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C017CCE1F7EB28F00444E9B /* DataDetectorTypes.h */; settings = {ATTRIBUTES = (Private, ); }; };
-               7C017CD31F7ECA6300444E9B /* SettingsDefaultValuesCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 7C017CD11F7ECA6200444E9B /* SettingsDefaultValuesCocoa.mm */; };
                7C1843FD1C8B7283002EB973 /* Autofill.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C1843FB1C8B7283002EB973 /* Autofill.cpp */; };
                7C1843FE1C8B7283002EB973 /* Autofill.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C1843FC1C8B7283002EB973 /* Autofill.h */; settings = {ATTRIBUTES = (Private, ); }; };
                7C193BBB1F5E0EED0088F3E6 /* CanvasDirection.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C193BB61F5E0EB90088F3E6 /* CanvasDirection.h */; };
                7C1F5D591F22FF7300A8874F /* JSDOMConvertScheduledAction.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C1F5D581F22FF7300A8874F /* JSDOMConvertScheduledAction.h */; };
                7C2BDD3D17C7F98C0038FF15 /* JSDOMGlobalObjectTask.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C2BDD3B17C7F98B0038FF15 /* JSDOMGlobalObjectTask.cpp */; };
                7C2BDD3E17C7F98C0038FF15 /* JSDOMGlobalObjectTask.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C2BDD3C17C7F98B0038FF15 /* JSDOMGlobalObjectTask.h */; };
-               7C2F8BC21F81BF5B00305C32 /* FontRenderingMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CCB11D81F81B22000849AFD /* FontRenderingMode.h */; settings = {ATTRIBUTES = (Private, ); }; };
                7C2FA6111EA95A3900A03108 /* ResourceCryptographicDigest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C2FA60F1EA95A3200A03108 /* ResourceCryptographicDigest.cpp */; };
                7C2FA6121EA95A3C00A03108 /* ResourceCryptographicDigest.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C2FA6101EA95A3200A03108 /* ResourceCryptographicDigest.h */; settings = {ATTRIBUTES = (Private, ); }; };
                7C30D9831F815AEC00268356 /* JSAbortController.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C30D97E1F815AC000268356 /* JSAbortController.cpp */; };
                9B2D8A7914997CCF00ECEF3E /* UndoStep.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B2D8A7814997CCF00ECEF3E /* UndoStep.h */; settings = {ATTRIBUTES = (Private, ); }; };
                9B32CDA913DF7FA900F34D13 /* RenderedPosition.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B32CDA713DF7FA900F34D13 /* RenderedPosition.h */; };
                9B32CDAA13DF7FA900F34D13 /* RenderedPosition.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9B32CDA813DF7FA900F34D13 /* RenderedPosition.cpp */; };
+               9B3A8872145632F9003AE8F5 /* DOMDOMSettableTokenList.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B3A8871145632F9003AE8F5 /* DOMDOMSettableTokenList.h */; };
                9B417064125662B3006B28FC /* ApplyBlockElementCommand.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B417062125662B3006B28FC /* ApplyBlockElementCommand.h */; };
                9B417065125662B3006B28FC /* ApplyBlockElementCommand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9B417063125662B3006B28FC /* ApplyBlockElementCommand.cpp */; };
                9B50B1DE17CD4C0F0087F63C /* FormNamedItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B50B1DC17CD4C0F0087F63C /* FormNamedItem.h */; settings = {ATTRIBUTES = (Private, ); }; };
                                A8D06B390A265DCD005E7203 /* HTMLNames.h in Copy Generated Headers */,
                                1403BA0F09EB18F900797C7F /* JSDOMWindow.h in Copy Generated Headers */,
                                14DC0D3809FED073007B0235 /* JSNode.h in Copy Generated Headers */,
+                               53EF766C16531994004CBE49 /* SettingsMacros.h in Copy Generated Headers */,
                                08C7A2C710DC7462002D368B /* SVGNames.h in Copy Generated Headers */,
                                1A1414B613A0F0500019996C /* WebKitFontFamilyNames.h in Copy Generated Headers */,
                        );
                4E1959250A39DACC00220FE5 /* MediaQueryEvaluator.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = MediaQueryEvaluator.cpp; sourceTree = "<group>"; };
                4E1959260A39DACC00220FE5 /* MediaQueryEvaluator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MediaQueryEvaluator.h; sourceTree = "<group>"; };
                4F1534DD11B532EC0021FD86 /* EditingBehavior.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EditingBehavior.h; sourceTree = "<group>"; };
-               4F1534DF11B533020021FD86 /* EditingBehaviorType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EditingBehaviorType.h; sourceTree = "<group>"; };
+               4F1534DF11B533020021FD86 /* EditingBehaviorTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EditingBehaviorTypes.h; sourceTree = "<group>"; };
                4F6FDD621341DEDD001F8EE3 /* InspectorPageAgent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorPageAgent.cpp; sourceTree = "<group>"; };
                4F6FDD631341DEDD001F8EE3 /* InspectorPageAgent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorPageAgent.h; sourceTree = "<group>"; };
                4FA65A691108ABED002615E0 /* MathMLSpaceElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MathMLSpaceElement.cpp; sourceTree = "<group>"; };
                53E29E5D167A8A1900586D3D /* InternalSettingsGenerated.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InternalSettingsGenerated.h; sourceTree = "<group>"; };
                53ED3FDC167A88E7006762E6 /* JSInternalSettingsGenerated.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSInternalSettingsGenerated.cpp; sourceTree = "<group>"; };
                53ED3FDD167A88E7006762E6 /* JSInternalSettingsGenerated.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSInternalSettingsGenerated.h; sourceTree = "<group>"; };
+               53EF766A16530A61004CBE49 /* SettingsMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SettingsMacros.h; sourceTree = "<group>"; };
                550A0BC7085F6039007353D6 /* QualifiedName.cpp */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = QualifiedName.cpp; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                550A0BC8085F6039007353D6 /* QualifiedName.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = QualifiedName.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
                5550CB411E955E3C00111AA0 /* ImageTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ImageTypes.h; sourceTree = "<group>"; };
                7AF9B20918CFB5F200C64BEF /* JSVTTRegion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSVTTRegion.h; sourceTree = "<group>"; };
                7AF9B20A18CFB5F300C64BEF /* JSVTTRegionList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSVTTRegionList.cpp; sourceTree = "<group>"; };
                7AF9B20B18CFB5F300C64BEF /* JSVTTRegionList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSVTTRegionList.h; sourceTree = "<group>"; };
-               7C017CB21F7E6FFF00444E9B /* SettingsGenerated.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SettingsGenerated.cpp; sourceTree = "<group>"; };
-               7C017CB31F7E6FFF00444E9B /* SettingsGenerated.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SettingsGenerated.h; sourceTree = "<group>"; };
-               7C017CBA1F7E97CE00444E9B /* DebugOverlayRegions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DebugOverlayRegions.h; sourceTree = "<group>"; };
-               7C017CBC1F7E983700444E9B /* EditableLinkBehavior.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EditableLinkBehavior.h; sourceTree = "<group>"; };
-               7C017CBE1F7E988800444E9B /* ForcedAccessibilityValue.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ForcedAccessibilityValue.h; sourceTree = "<group>"; };
-               7C017CC01F7E99BB00444E9B /* FrameFlattening.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FrameFlattening.h; sourceTree = "<group>"; };
-               7C017CC21F7E9A1E00444E9B /* PDFImageCachingPolicy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PDFImageCachingPolicy.h; sourceTree = "<group>"; };
-               7C017CC41F7E9A7400444E9B /* UserInterfaceDirectionPolicy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UserInterfaceDirectionPolicy.h; sourceTree = "<group>"; };
-               7C017CC61F7E9ACB00444E9B /* TextDirection.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TextDirection.h; sourceTree = "<group>"; };
-               7C017CC81F7E9B3000444E9B /* TextDirectionSubmenuInclusionBehavior.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TextDirectionSubmenuInclusionBehavior.h; sourceTree = "<group>"; };
-               7C017CCA1F7E9B8B00444E9B /* SettingsDefaultValues.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SettingsDefaultValues.h; sourceTree = "<group>"; };
-               7C017CCE1F7EB28F00444E9B /* DataDetectorTypes.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DataDetectorTypes.h; sourceTree = "<group>"; };
-               7C017CD11F7ECA6200444E9B /* SettingsDefaultValuesCocoa.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = SettingsDefaultValuesCocoa.mm; sourceTree = "<group>"; };
                7C0CEF281E4A542C008DEB80 /* JSDOMConstructorBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSDOMConstructorBase.h; sourceTree = "<group>"; };
                7C0CEF291E4A54D3008DEB80 /* JSDOMConstructorWithDocument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSDOMConstructorWithDocument.h; sourceTree = "<group>"; };
                7C0CEF2A1E4A556C008DEB80 /* JSDOMBuiltinConstructorBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSDOMBuiltinConstructorBase.h; sourceTree = "<group>"; };
                7CC6993E191EC5F500AF2270 /* JSWebKitNamespace.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSWebKitNamespace.cpp; sourceTree = "<group>"; };
                7CC6993F191EC5F500AF2270 /* JSWebKitNamespace.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSWebKitNamespace.h; sourceTree = "<group>"; };
                7CC7E3D617208C0F003C5277 /* IDNScriptWhiteList.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = IDNScriptWhiteList.txt; sourceTree = "<group>"; };
-               7CCB11D81F81B22000849AFD /* FontRenderingMode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FontRenderingMode.h; sourceTree = "<group>"; };
                7CD0BA021B8F79C9005CEBBE /* ActiveDOMCallbackMicrotask.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ActiveDOMCallbackMicrotask.cpp; sourceTree = "<group>"; };
                7CD0BA031B8F79C9005CEBBE /* ActiveDOMCallbackMicrotask.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ActiveDOMCallbackMicrotask.h; sourceTree = "<group>"; };
                7CD0E2B51F80A4820016A4CE /* AbortController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AbortController.h; sourceTree = "<group>"; };
                9B2D8A7814997CCF00ECEF3E /* UndoStep.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UndoStep.h; sourceTree = "<group>"; };
                9B32CDA713DF7FA900F34D13 /* RenderedPosition.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderedPosition.h; sourceTree = "<group>"; };
                9B32CDA813DF7FA900F34D13 /* RenderedPosition.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderedPosition.cpp; sourceTree = "<group>"; };
+               9B3A8871145632F9003AE8F5 /* DOMDOMSettableTokenList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMDOMSettableTokenList.h; sourceTree = "<group>"; };
                9B417062125662B3006B28FC /* ApplyBlockElementCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ApplyBlockElementCommand.h; sourceTree = "<group>"; };
                9B417063125662B3006B28FC /* ApplyBlockElementCommand.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ApplyBlockElementCommand.cpp; sourceTree = "<group>"; };
                9B50B1DC17CD4C0F0087F63C /* FormNamedItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FormNamedItem.h; sourceTree = "<group>"; };
                                2981CAAF131822EC00D12F2A /* AXObjectCache.cpp */,
                                29A8121A0FBB9C1D00510293 /* AXObjectCache.h */,
                                91C9F2F81AE3BE240095B61C /* AXTextStateChangeIntent.h */,
-                               7C017CBE1F7E988800444E9B /* ForcedAccessibilityValue.h */,
                        );
                        path = accessibility;
                        sourceTree = "<group>";
                                ADFE2B541BD5F41200DAB457 /* ResourceUsageOverlayCocoa.mm */,
                                A5071E881C56D4FA009951BE /* ResourceUsageThreadCocoa.mm */,
                                A182D5B61BE722620087A7CC /* SettingsCocoa.mm */,
-                               7C017CD11F7ECA6200444E9B /* SettingsDefaultValuesCocoa.mm */,
                                26255F0118878E110006E1FD /* UserAgent.h */,
                                5D5975B61963637B00D00878 /* UserAgent.mm */,
                        );
                                E41EA0391198374900710BC5 /* CSSValueKeywords.cpp */,
                                6565814709D13043000E61D7 /* CSSValueKeywords.gperf */,
                                6565814809D13043000E61D7 /* CSSValueKeywords.h */,
+                               9B3A8871145632F9003AE8F5 /* DOMDOMSettableTokenList.h */,
                                E334825E1DC93AA0009C9544 /* DOMJITAbstractHeapRepository.h */,
                                E1C6CFC21746D293007B87A1 /* DOMWindowConstructors.idl */,
                                970B72A5145008EB00F00A37 /* EventHeaders.h */,
                                43B85ED318CBEC5200E31AF4 /* SelectorPseudoClassAndCompatibilityElementMap.gperf */,
                                26AA0F9D18D2A18B00419381 /* SelectorPseudoElementTypeMap.cpp */,
                                26AA0F9F18D2A1C100419381 /* SelectorPseudoElementTypeMap.gperf */,
-                               7C017CB21F7E6FFF00444E9B /* SettingsGenerated.cpp */,
-                               7C017CB31F7E6FFF00444E9B /* SettingsGenerated.h */,
+                               53EF766A16530A61004CBE49 /* SettingsMacros.h */,
                                9908B0FD1BCAD07D00ED0F55 /* StreamInternalsBuiltins.cpp */,
                                9B03D8061BB3110D00B764C9 /* StreamInternalsBuiltins.h */,
                                8386A96E19F61E4F00E1EC4A /* StyleBuilder.cpp */,
                                975CA289130365F800E99AD9 /* Crypto.idl */,
                                1ACB2B211A5733F400333392 /* DatabaseProvider.cpp */,
                                1ACB2B221A5733F400333392 /* DatabaseProvider.h */,
-                               7C017CBA1F7E97CE00444E9B /* DebugOverlayRegions.h */,
                                0F6A12BB1A00923700C6DE72 /* DebugPageOverlays.cpp */,
                                0F6A12BC1A00923700C6DE72 /* DebugPageOverlays.h */,
                                CCC2B51015F613060048CDD6 /* DeviceClient.h */,
                                65BF022A0974816300C43196 /* Frame.h */,
                                974A862014B7ADBB003FDC76 /* FrameDestructionObserver.cpp */,
                                974A862114B7ADBB003FDC76 /* FrameDestructionObserver.h */,
-                               7C017CC01F7E99BB00444E9B /* FrameFlattening.h */,
                                C4CD629818383766007EBAF1 /* FrameSnapshotting.cpp */,
                                C4CD629918383766007EBAF1 /* FrameSnapshotting.h */,
                                65A21482097A3F5300B9050A /* FrameTree.cpp */,
                                371E65CD13661EED00BEEDB0 /* PageSerializer.cpp */,
                                371E65CB13661EDC00BEEDB0 /* PageSerializer.h */,
                                FFD5B978135CC97800D5E92A /* PageVisibilityState.h */,
-                               7C017CC21F7E9A1E00444E9B /* PDFImageCachingPolicy.h */,
                                E526AF3E1727F8F200E41781 /* Performance.cpp */,
                                8A844D0211D3C18E0014065C /* Performance.h */,
                                8A844D0311D3C18E0014065C /* Performance.idl */,
                                14C9A5E90B3D105F005A0232 /* Settings.cpp */,
                                F587863A02DE3A1401EA4122 /* Settings.h */,
                                BC59DEF8169DEDC30016AC34 /* Settings.in */,
-                               7C017CCA1F7E9B8B00444E9B /* SettingsDefaultValues.h */,
                                5C688AA21D38126F000B54FA /* SocketProvider.cpp */,
                                5C7C88D71D0F1F2B009D2F6D /* SocketProvider.h */,
                                626CDE0C1140424C001E5A68 /* SpatialNavigation.cpp */,
                                626CDE0D1140424C001E5A68 /* SpatialNavigation.h */,
                                62C1217A11AB9E76003C462C /* SuspendableTimer.cpp */,
                                62C1217B11AB9E77003C462C /* SuspendableTimer.h */,
-                               7C017CC81F7E9B3000444E9B /* TextDirectionSubmenuInclusionBehavior.h */,
                                2D4F96F11A1ECC240098BF88 /* TextIndicator.cpp */,
                                2D4F96F21A1ECC240098BF88 /* TextIndicator.h */,
                                1AE79D40188DB61F002239C2 /* UserContentController.cpp */,
                                003F1FE911E6AB43008258D9 /* UserContentTypes.h */,
                                BCACF3BA1072921A00C0C8A3 /* UserContentURLPattern.cpp */,
                                BCACF3BB1072921A00C0C8A3 /* UserContentURLPattern.h */,
-                               7C017CC41F7E9A7400444E9B /* UserInterfaceDirectionPolicy.h */,
                                7C3B796F1908757B00B47A2D /* UserMessageHandler.cpp */,
                                7C3B79701908757B00B47A2D /* UserMessageHandler.h */,
                                7C73FB0E191EF60E007DE061 /* UserMessageHandler.idl */,
                        children = (
                                C5227DEF1C3C6DD700F5ED54 /* DataDetection.h */,
                                C5227DF01C3C6DD700F5ED54 /* DataDetection.mm */,
-                               7C017CCE1F7EB28F00444E9B /* DataDetectorTypes.h */,
                                9B55EEE81B3E8898005342BC /* EditorCocoa.mm */,
                                7C3E510818DF8F3500C112F7 /* HTMLConverter.h */,
                                7C3E510918DF8F3500C112F7 /* HTMLConverter.mm */,
                                CECADFC4153778FF00E37068 /* DictationCommand.cpp */,
                                CECADFC5153778FF00E37068 /* DictationCommand.h */,
                                2D5646AF1B8F8493003C4994 /* DictionaryPopupInfo.h */,
-                               7C017CBC1F7E983700444E9B /* EditableLinkBehavior.h */,
                                93309D93099E64910056E581 /* EditAction.h */,
                                93309D94099E64910056E581 /* EditCommand.cpp */,
                                93309D95099E64910056E581 /* EditCommand.h */,
                                93309D98099E64910056E581 /* Editing.cpp */,
                                93309D99099E64910056E581 /* Editing.h */,
                                4F1534DD11B532EC0021FD86 /* EditingBehavior.h */,
-                               4F1534DF11B533020021FD86 /* EditingBehaviorType.h */,
+                               4F1534DF11B533020021FD86 /* EditingBehaviorTypes.h */,
                                3AC648B1129E146500C3EB25 /* EditingBoundary.h */,
                                9BAB6C6B12550631001626D4 /* EditingStyle.cpp */,
                                9BAB6C6A12550631001626D4 /* EditingStyle.h */,
                                0FDA7C2018832BCC00C954B5 /* DateTimeFormat.cpp */,
                                453EB635159C570400001BB7 /* DateTimeFormat.h */,
                                CECCFC3A141973D5002A0AC1 /* DecodeEscapeSequences.h */,
-                               7CCB11D81F81B22000849AFD /* FontRenderingMode.h */,
                                375CD231119D43C800A2A859 /* Hyphenation.h */,
                                7633A72413D8B33A008501B6 /* LocaleToScriptMapping.h */,
                                7633A72513D8B33A008501B6 /* LocaleToScriptMappingDefault.cpp */,
                                B2C3DA120D006C1D00EF6F26 /* TextCodecUTF16.h */,
                                9343CB7F12F25E510033C5EE /* TextCodecUTF8.cpp */,
                                9343CB8012F25E510033C5EE /* TextCodecUTF8.h */,
-                               7C017CC61F7E9ACB00444E9B /* TextDirection.h */,
                                B2C3DA160D006C1D00EF6F26 /* TextEncoding.cpp */,
                                B2C3DA170D006C1D00EF6F26 /* TextEncoding.h */,
                                C105DA630F3AA6B8001DD44F /* TextEncodingDetector.h */,
                        children = (
                                CE2616A4187E65C1007955F3 /* ios */,
                                2D5036661BCDDDC400E20BB3 /* mac */,
-                               7CD0E2B61F80A4820016A4CE /* AbortController.cpp */,
-                               7CD0E2B51F80A4820016A4CE /* AbortController.h */,
-                               7CD0E2B71F80A4820016A4CE /* AbortController.idl */,
-                               7CD0E2BD1F80A56E0016A4CE /* AbortSignal.cpp */,
-                               7CD0E2BC1F80A56E0016A4CE /* AbortSignal.h */,
-                               7CD0E2BE1F80A56E0016A4CE /* AbortSignal.idl */,
                                7C5222971E1DAE16002CB8F7 /* ActiveDOMCallback.cpp */,
                                7C5222981E1DAE16002CB8F7 /* ActiveDOMCallback.h */,
                                7CD0BA021B8F79C9005CEBBE /* ActiveDOMCallbackMicrotask.cpp */,
                                E1C4DE6D0EA75C650023CCD6 /* ActiveDOMObject.cpp */,
                                E1C4DE680EA75C1E0023CCD6 /* ActiveDOMObject.h */,
                                83BB5C871D5D6F3A005A71F4 /* AllDescendantsCollection.h */,
+                               7CD0E2B51F80A4820016A4CE /* AbortController.h */,
+                               7CD0E2B61F80A4820016A4CE /* AbortController.cpp */,
+                               7CD0E2B71F80A4820016A4CE /* AbortController.idl */,
+                               7CD0E2BC1F80A56E0016A4CE /* AbortSignal.h */,
+                               7CD0E2BD1F80A56E0016A4CE /* AbortSignal.cpp */,
+                               7CD0E2BE1F80A56E0016A4CE /* AbortSignal.idl */,
                                319847FE1A1D816700A13318 /* AnimationEvent.cpp */,
                                319847FF1A1D816700A13318 /* AnimationEvent.h */,
                                319848001A1D816700A13318 /* AnimationEvent.idl */,
                        isa = PBXHeadersBuildPhase;
                        buildActionMask = 2147483647;
                        files = (
-                               7CD0E2B81F80A4820016A4CE /* AbortController.h in Headers */,
-                               7CD0E2BF1F80A56E0016A4CE /* AbortSignal.h in Headers */,
                                F48223131E386E240066FC79 /* AbstractPasteboard.h in Headers */,
                                41E1B1D10FF5986900576B3B /* AbstractWorker.h in Headers */,
                                29A8122E0FBB9C1D00510293 /* AccessibilityARIAGridCell.h in Headers */,
                                BE23480D18A9871400E4B6E8 /* DataCue.h in Headers */,
                                C5227DF11C3C6DF100F5ED54 /* DataDetection.h in Headers */,
                                7C7941E51C56C29300A4C58E /* DataDetectorsCoreSoftLink.h in Headers */,
-                               7C017CCF1F7EB28F00444E9B /* DataDetectorTypes.h in Headers */,
                                BC22746F0E83664500E7F975 /* DataRef.h in Headers */,
                                BC64641C11D7F416006455B0 /* DatasetDOMStringMap.h in Headers */,
                                85031B3E0A44EFC700F992E0 /* DataTransfer.h in Headers */,
                                453EB637159C570400001BB7 /* DateTimeFormat.h in Headers */,
                                F55B3DB81251F12D003EF269 /* DateTimeInputType.h in Headers */,
                                F55B3DBA1251F12D003EF269 /* DateTimeLocalInputType.h in Headers */,
-                               7C017CBB1F7E97CE00444E9B /* DebugOverlayRegions.h in Headers */,
                                0F6A12BE1A00923700C6DE72 /* DebugPageOverlays.h in Headers */,
                                45FEA5D0156DDE8C00654101 /* Decimal.h in Headers */,
                                A8C228A111D5722E00D5A7D3 /* DecodedDataDocumentParser.h in Headers */,
                                41FABD2D1F4DFE4A006A6C97 /* DOMCacheEngine.h in Headers */,
                                41380C291F3436AC00155FDA /* DOMCacheStorage.h in Headers */,
                                FC9A0F75164094CF003D6B8D /* DOMCSSNamespace.h in Headers */,
+                               9B3A8872145632F9003AE8F5 /* DOMDOMSettableTokenList.h in Headers */,
                                7AABA25A14BC613300AA9A11 /* DOMEditor.h in Headers */,
                                BC60D6E90D28D83400B9918F /* DOMException.h in Headers */,
                                8399470C1F50B63E00E9D86B /* DOMFileSystem.h in Headers */,
                                FD6ED2C8136B8E66003CF072 /* DynamicsCompressor.h in Headers */,
                                FD537357137B653B00008DCE /* DynamicsCompressorKernel.h in Headers */,
                                FD6ED2C4136B8E42003CF072 /* DynamicsCompressorNode.h in Headers */,
-                               7C017CBD1F7E983700444E9B /* EditableLinkBehavior.h in Headers */,
                                93309DE2099E64920056E581 /* EditAction.h in Headers */,
                                93309DE4099E64920056E581 /* EditCommand.h in Headers */,
                                93309DE8099E64920056E581 /* Editing.h in Headers */,
                                4F1534DE11B532EC0021FD86 /* EditingBehavior.h in Headers */,
-                               4F1534E011B533020021FD86 /* EditingBehaviorType.h in Headers */,
+                               4F1534E011B533020021FD86 /* EditingBehaviorTypes.h in Headers */,
                                3AC648B2129E146500C3EB25 /* EditingBoundary.h in Headers */,
                                9BAB6C6C12550631001626D4 /* EditingStyle.h in Headers */,
                                4B3043CD0AE0373B00A82647 /* Editor.h in Headers */,
                                0845680812B90DA600960A9F /* FontMetrics.h in Headers */,
                                B5320D6B122A24E9002D1440 /* FontPlatformData.h in Headers */,
                                371F4FFC0D25E7F300ECE0D5 /* FontRanges.h in Headers */,
-                               7C2F8BC21F81BF5B00305C32 /* FontRenderingMode.h in Headers */,
                                C2AB0AF71E6B3C6C001348C5 /* FontSelectionAlgorithm.h in Headers */,
                                B2C3DA6B0D006CD600EF6F26 /* FontSelector.h in Headers */,
                                E419041F1CC6486B00C35F5D /* FontSelectorClient.h in Headers */,
                                4A6E9FC813C17D570046A7F8 /* FontTaggedSettings.h in Headers */,
                                C2015C0A1BE6FEB200822389 /* FontVariantBuilder.h in Headers */,
-                               7C017CBF1F7E988800444E9B /* ForcedAccessibilityValue.h in Headers */,
                                4A0DA2FF129B241900AB61E1 /* FormAssociatedElement.h in Headers */,
                                D05CED2A0A40BB2C00C5AF38 /* FormatBlockCommand.h in Headers */,
                                7CE6CBFB187F370700D46BF5 /* FormatConverter.h in Headers */,
                                A853123D11D0471B00D4D077 /* FragmentScriptingPermission.h in Headers */,
                                65BF022F0974816300C43196 /* Frame.h in Headers */,
                                974A862314B7ADBB003FDC76 /* FrameDestructionObserver.h in Headers */,
-                               7C017CC11F7E99BB00444E9B /* FrameFlattening.h in Headers */,
                                656D373C0ADBA5DE00A4554D /* FrameLoader.h in Headers */,
                                656D373E0ADBA5DE00A4554D /* FrameLoaderClient.h in Headers */,
                                D000EBA311BDAFD400C47726 /* FrameLoaderStateMachine.h in Headers */,
                                2D0B4AAB18DA1CCD00434DE1 /* IOSurface.h in Headers */,
                                1C21E57D183ED1FF001C289D /* IOSurfacePool.h in Headers */,
                                07AC47021952102100EE9723 /* ISOVTTCue.h in Headers */,
-                               7C30D9841F815AEC00268356 /* JSAbortController.h in Headers */,
-                               7C30D9861F815AEC00268356 /* JSAbortSignal.h in Headers */,
                                418F88050FF957AF0080F045 /* JSAbstractWorker.h in Headers */,
                                5704405A1E53936200356601 /* JSAesCbcCfbParams.h in Headers */,
                                57E1E5AD1E8DD09B00EE37C9 /* JSAesCtrParams.h in Headers */,
                                52F10866162B6DA8009AC81E /* MixedContentChecker.h in Headers */,
                                CDF2B0111820540600F2B424 /* MockBox.h in Headers */,
                                CDF4B7241E03BF8100E235A2 /* MockCDMFactory.h in Headers */,
+                               7C30D9841F815AEC00268356 /* JSAbortController.h in Headers */,
                                CDF4B7201E03BF6F00E235A2 /* MockCDMFactory.idl in Headers */,
                                51058AE01D67C229009A538C /* MockGamepad.h in Headers */,
                                51058AE21D67C229009A538C /* MockGamepadProvider.h in Headers */,
                                A1F76B551F44D2C70014C318 /* PaymentShippingOption.h in Headers */,
                                A1F76B491F44D07A0014C318 /* PaymentShippingType.h in Headers */,
                                B27535650B053814002CE64F /* PDFDocumentImage.h in Headers */,
-                               7C017CC31F7E9A1E00444E9B /* PDFImageCachingPolicy.h in Headers */,
                                5E2C43511BCEE2F60001E2BC /* PeerConnectionBackend.h in Headers */,
                                5EBB89391C77C39900C65D41 /* PeerMediaDescription.h in Headers */,
                                8A7CC96B12076D73001D4588 /* PendingScript.h in Headers */,
                                93309E10099E64920056E581 /* SetNodeAttributeCommand.h in Headers */,
                                B8DBDB4C130B0F8A00F5CDB1 /* SetSelectionCommand.h in Headers */,
                                93F1994F08245E59001E9ABC /* Settings.h in Headers */,
-                               7C017CCB1F7E9B8B00444E9B /* SettingsDefaultValues.h in Headers */,
-                               7C017CB71F7E705000444E9B /* SettingsGenerated.h in Headers */,
+                               53EF766B16530A61004CBE49 /* SettingsMacros.h in Headers */,
                                0F3DD45012F5EA1B000D9190 /* ShadowBlur.h in Headers */,
                                BC5EB8C40E82031B00B25965 /* ShadowData.h in Headers */,
                                A6D169641346B4C1000EB770 /* ShadowRoot.h in Headers */,
                                B22279950D00BF220071B782 /* SVGAnimateTransformElement.h in Headers */,
                                B22279980D00BF220071B782 /* SVGAnimationElement.h in Headers */,
                                439D334513A6911C00C20F4F /* SVGAnimatorFactory.h in Headers */,
+                               7C30D9861F815AEC00268356 /* JSAbortSignal.h in Headers */,
                                08FB3F8413BC754C0099FC18 /* SVGAttributeToPropertyMap.h in Headers */,
                                B222799C0D00BF220071B782 /* SVGCircleElement.h in Headers */,
                                B222799F0D00BF220071B782 /* SVGClipPathElement.h in Headers */,
                                B2227A060D00BF220071B782 /* SVGFETileElement.h in Headers */,
                                B2227A090D00BF220071B782 /* SVGFETurbulenceElement.h in Headers */,
                                845E72FC0FD2623900A87D79 /* SVGFilter.h in Headers */,
+                               7CD0E2BF1F80A56E0016A4CE /* AbortSignal.h in Headers */,
                                081EBF3B0FD34F4100DA7559 /* SVGFilterBuilder.h in Headers */,
                                B2227A0C0D00BF220071B782 /* SVGFilterElement.h in Headers */,
                                B2227A0F0D00BF220071B782 /* SVGFilterPrimitiveStandardAttributes.h in Headers */,
                                9343CB8212F25E510033C5EE /* TextCodecUTF8.h in Headers */,
                                142B97CA13138943008BEF4B /* TextControlInnerElements.h in Headers */,
                                582DE3251C30C85400BE02A8 /* TextDecorationPainter.h in Headers */,
-                               7C017CC71F7E9ACB00444E9B /* TextDirection.h in Headers */,
-                               7C017CC91F7E9B3000444E9B /* TextDirectionSubmenuInclusionBehavior.h in Headers */,
                                97BC84B412371180000C6161 /* TextDocument.h in Headers */,
                                97BC84841236FD93000C6161 /* TextDocumentParser.h in Headers */,
                                B2C3DA470D006C1D00EF6F26 /* TextEncoding.h in Headers */,
                                BCACF3BD1072921A00C0C8A3 /* UserContentURLPattern.h in Headers */,
                                2542F4DB1166C25A00E89A86 /* UserGestureIndicator.h in Headers */,
                                9920398318B95BC600B39AF9 /* UserInputBridge.h in Headers */,
-                               7C017CC51F7E9A7400444E9B /* UserInterfaceDirectionPolicy.h in Headers */,
                                71C916081D1483A300ACA47D /* UserInterfaceLayoutDirection.h in Headers */,
                                078E092E17D14D1C00420AA1 /* UserMediaClient.h in Headers */,
                                078E092F17D14D1C00420AA1 /* UserMediaController.h in Headers */,
                                77A17A7812F28642004E02F6 /* WebGLVertexArrayObjectOES.h in Headers */,
                                316BDB8C1E6E153000DE0D5A /* WebGPULayer.h in Headers */,
                                A5E2123C1E4924A400CE1044 /* WebHeapAgent.h in Headers */,
+                               7CD0E2B81F80A4820016A4CE /* AbortController.h in Headers */,
                                A5840E25187B8AC200843B10 /* WebInjectedScriptHost.h in Headers */,
                                A584FE301864CB8400843B10 /* WebInjectedScriptManager.h in Headers */,
                                F48223111E3869B80066FC79 /* WebItemProviderPasteboard.h in Headers */,
                        isa = PBXSourcesBuildPhase;
                        buildActionMask = 2147483647;
                        files = (
-                               7CD0E2B91F80A4820016A4CE /* AbortController.cpp in Sources */,
-                               7CD0E2C01F80A56E0016A4CE /* AbortSignal.cpp in Sources */,
                                41E1B1D00FF5986900576B3B /* AbstractWorker.cpp in Sources */,
                                37F57AB91A50726900876F98 /* AccessibilityARIAGrid.cpp in Sources */,
                                37F57ABA1A50726F00876F98 /* AccessibilityARIAGridCell.cpp in Sources */,
                                CE2849891CA3614600B4A57F /* ContentSecurityPolicyDirectiveNames.cpp in Sources */,
                                CE799FA71C6A50570097B518 /* ContentSecurityPolicyMediaListDirective.cpp in Sources */,
                                CE6DADF91C591E6A003F6A88 /* ContentSecurityPolicyResponseHeaders.cpp in Sources */,
+                               7C30D9851F815AEC00268356 /* JSAbortSignal.cpp in Sources */,
                                CE799F9F1C6A4C160097B518 /* ContentSecurityPolicySource.cpp in Sources */,
                                CE799F971C6A46BC0097B518 /* ContentSecurityPolicySourceList.cpp in Sources */,
                                CE799FAB1C6A50660097B518 /* ContentSecurityPolicySourceListDirective.cpp in Sources */,
                                E1233F10185A4130008DFAF5 /* CryptoAlgorithmRSAES_PKCS1_v1_5Mac.cpp in Sources */,
                                E1BD3319182D8DDD00C05D9F /* CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp in Sources */,
                                E1C266D818317AB4003F8B33 /* CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp in Sources */,
+                               7C30D9831F815AEC00268356 /* JSAbortController.cpp in Sources */,
                                E125F82B1822CFEC00D84CD9 /* CryptoAlgorithmSHA1.cpp in Sources */,
                                E19AC3EE1824DC7900349426 /* CryptoAlgorithmSHA224.cpp in Sources */,
                                E19AC3F01824DC7900349426 /* CryptoAlgorithmSHA256.cpp in Sources */,
                                1C21E57C183ED1FF001C289D /* IOSurfacePool.cpp in Sources */,
                                AD9FF6E11908391D003B61E0 /* IOSurfacePoolCocoa.mm in Sources */,
                                07AC47011952102100EE9723 /* ISOVTTCue.cpp in Sources */,
-                               7C30D9831F815AEC00268356 /* JSAbortController.cpp in Sources */,
-                               7C30D9851F815AEC00268356 /* JSAbortSignal.cpp in Sources */,
                                418F88040FF957AE0080F045 /* JSAbstractWorker.cpp in Sources */,
                                5704405C1E53937900356601 /* JSAesCbcCfbParams.cpp in Sources */,
                                57E1E5AC1E8DD09B00EE37C9 /* JSAesCtrParams.cpp in Sources */,
                                A584FE3B1864E2D800843B10 /* JSCommandLineAPIHost.cpp in Sources */,
                                93F9B6E00BA0FB7200854064 /* JSComment.cpp in Sources */,
                                79AC9218109945C80021266E /* JSCompositionEvent.cpp in Sources */,
+                               7CD0E2C01F80A56E0016A4CE /* AbortSignal.cpp in Sources */,
                                FDA15EBD12B03F0B003A583A /* JSConvolverNode.cpp in Sources */,
                                FE6FD48D0F676E9300092873 /* JSCoordinates.cpp in Sources */,
                                14DCF3B21B6BE2080062D4C2 /* JSCountQueuingStrategy.cpp in Sources */,
                                836ACED21ECAAB19004BD012 /* JSDOMMatrix.cpp in Sources */,
                                7CBBBCCB1F56180D005EFAAC /* JSDOMMatrix2DInit.cpp in Sources */,
                                835657C71ECAB10700CDE72D /* JSDOMMatrixInit.cpp in Sources */,
+                               7CD0E2B91F80A4820016A4CE /* AbortController.cpp in Sources */,
                                836ACED51ECAAB19004BD012 /* JSDOMMatrixReadOnly.cpp in Sources */,
                                A9D248060D757E7D00FDF959 /* JSDOMMimeType.cpp in Sources */,
                                A9D248080D757E7D00FDF959 /* JSDOMMimeTypeArray.cpp in Sources */,
                                B8DBDB4B130B0F8A00F5CDB1 /* SetSelectionCommand.cpp in Sources */,
                                14C9A5EA0B3D105F005A0232 /* Settings.cpp in Sources */,
                                A182D5B71BE722670087A7CC /* SettingsCocoa.mm in Sources */,
-                               7C017CD31F7ECA6300444E9B /* SettingsDefaultValuesCocoa.mm in Sources */,
-                               7C017CB61F7E704B00444E9B /* SettingsGenerated.cpp in Sources */,
                                0F3DD44F12F5EA1B000D9190 /* ShadowBlur.cpp in Sources */,
                                BC5EB8C30E82031B00B25965 /* ShadowData.cpp in Sources */,
                                A6D169621346B49B000EB770 /* ShadowRoot.cpp in Sources */,
index 7a0561e..16bf389 100644 (file)
@@ -209,7 +209,6 @@ macro(GENERATE_SETTINGS_MACROS _infile _outfile)
     # build in parallel or the two instances of the rule may conflict.
     # <https://cmake.org/cmake/help/v3.0/command/add_custom_command.html>
     set(_extra_output
-        ${DERIVED_SOURCES_WEBCORE_DIR}/SettingsGenerated.cpp
         ${DERIVED_SOURCES_WEBCORE_DIR}/InternalSettingsGenerated.h
         ${DERIVED_SOURCES_WEBCORE_DIR}/InternalSettingsGenerated.cpp
         ${DERIVED_SOURCES_WEBCORE_DIR}/InternalSettingsGenerated.idl
@@ -219,9 +218,8 @@ macro(GENERATE_SETTINGS_MACROS _infile _outfile)
         ${WEBCORE_DIR}/Scripts/GenerateSettings/GenerateInternalSettingsHeaderFile.py
         ${WEBCORE_DIR}/Scripts/GenerateSettings/GenerateInternalSettingsIDLFile.py
         ${WEBCORE_DIR}/Scripts/GenerateSettings/GenerateInternalSettingsImplementationFile.py
-        ${WEBCORE_DIR}/Scripts/GenerateSettings/GenerateSettingsHeaderFile.py
-        ${WEBCORE_DIR}/Scripts/GenerateSettings/GenerateSettingsImplementationFile.py
         ${WEBCORE_DIR}/Scripts/GenerateSettings/GenerateSettings.py
+        ${WEBCORE_DIR}/Scripts/GenerateSettings/GenerateSettingsMacrosHeader.py
         ${WEBCORE_DIR}/Scripts/GenerateSettings/Settings.py
         ${WEBCORE_DIR}/Scripts/GenerateSettings/__init__.py
     )
diff --git a/Source/WebCore/accessibility/ForcedAccessibilityValue.h b/Source/WebCore/accessibility/ForcedAccessibilityValue.h
deleted file mode 100644 (file)
index abd9127..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2017 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#pragma once
-
-namespace WebCore {
-
-enum class ForcedAccessibilityValue { System, On, Off };
-
-}
index 37979fa..e6fda18 100644 (file)
@@ -299,9 +299,9 @@ static bool monochromeEvaluate(CSSValue* value, const CSSToLengthConversionData&
 {
     bool isMonochrome;
 
-    if (frame.settings().forcedDisplayIsMonochromeAccessibilityValue() == ForcedAccessibilityValue::On)
+    if (frame.settings().forcedDisplayIsMonochromeAccessibilityValue() == Settings::ForcedAccessibilityValue::On)
         isMonochrome = true;
-    else if (frame.settings().forcedDisplayIsMonochromeAccessibilityValue() == ForcedAccessibilityValue::Off)
+    else if (frame.settings().forcedDisplayIsMonochromeAccessibilityValue() == Settings::ForcedAccessibilityValue::Off)
         isMonochrome = false;
     else
         isMonochrome = screenIsMonochrome(frame.mainFrame().view());
@@ -315,9 +315,9 @@ static bool invertedColorsEvaluate(CSSValue* value, const CSSToLengthConversionD
 {
     bool isInverted;
 
-    if (frame.settings().forcedColorsAreInvertedAccessibilityValue() == ForcedAccessibilityValue::On)
+    if (frame.settings().forcedColorsAreInvertedAccessibilityValue() == Settings::ForcedAccessibilityValue::On)
         isInverted = true;
-    else if (frame.settings().forcedColorsAreInvertedAccessibilityValue() == ForcedAccessibilityValue::Off)
+    else if (frame.settings().forcedColorsAreInvertedAccessibilityValue() == Settings::ForcedAccessibilityValue::Off)
         isInverted = false;
     else
         isInverted = screenHasInvertedColors();
@@ -716,12 +716,12 @@ static bool prefersReducedMotionEvaluate(CSSValue* value, const CSSToLengthConve
     bool userPrefersReducedMotion = false;
 
     switch (frame.settings().forcedPrefersReducedMotionAccessibilityValue()) {
-    case ForcedAccessibilityValue::On:
+    case Settings::ForcedAccessibilityValue::On:
         userPrefersReducedMotion = true;
         break;
-    case ForcedAccessibilityValue::Off:
+    case Settings::ForcedAccessibilityValue::Off:
         break;
-    case ForcedAccessibilityValue::System:
+    case Settings::ForcedAccessibilityValue::System:
 #if USE(NEW_THEME)
         userPrefersReducedMotion = Theme::singleton().userPrefersReducedMotion();
 #endif
diff --git a/Source/WebCore/editing/EditableLinkBehavior.h b/Source/WebCore/editing/EditableLinkBehavior.h
deleted file mode 100644 (file)
index 1511298..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 2017 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#pragma once
-
-namespace WebCore {
-
-enum EditableLinkBehavior {
-    EditableLinkDefaultBehavior,
-    EditableLinkAlwaysLive,
-    EditableLinkOnlyLiveWithShiftKey,
-    EditableLinkLiveWhenNotFocused,
-    EditableLinkNeverLive
-};
-
-}
index 8e67e11..27fb1f0 100644 (file)
@@ -20,7 +20,7 @@
 
 #pragma once
 
-#include "EditingBehaviorType.h"
+#include "EditingBehaviorTypes.h"
 
 namespace WebCore {
 
index d6ebc07..21de062 100644 (file)
@@ -27,7 +27,6 @@
 
 #if ENABLE(DATA_DETECTION)
 
-#import "DataDetectorTypes.h"
 #import <wtf/RefPtr.h>
 #import <wtf/RetainPtr.h>
 #import <wtf/text/WTFString.h>
@@ -44,6 +43,18 @@ class HitTestResult;
 class Range;
 class URL;
 
+enum DataDetectorTypes {
+    DataDetectorTypeNone = 0,
+    DataDetectorTypePhoneNumber = 1 << 0,
+    DataDetectorTypeLink = 1 << 1,
+    DataDetectorTypeAddress = 1 << 2,
+    DataDetectorTypeCalendarEvent = 1 << 3,
+    DataDetectorTypeTrackingNumber = 1 << 4,
+    DataDetectorTypeFlightNumber = 1 << 5,
+    DataDetectorTypeLookupSuggestion = 1 << 6,
+    DataDetectorTypeAll = ULONG_MAX
+};
+
 class DataDetection {
 public:
 #if PLATFORM(MAC)
diff --git a/Source/WebCore/editing/cocoa/DataDetectorTypes.h b/Source/WebCore/editing/cocoa/DataDetectorTypes.h
deleted file mode 100644 (file)
index ad165ba..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2017 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#pragma once
-
-namespace WebCore {
-
-enum DataDetectorTypes {
-    DataDetectorTypeNone = 0,
-    DataDetectorTypePhoneNumber = 1 << 0,
-    DataDetectorTypeLink = 1 << 1,
-    DataDetectorTypeAddress = 1 << 2,
-    DataDetectorTypeCalendarEvent = 1 << 3,
-    DataDetectorTypeTrackingNumber = 1 << 4,
-    DataDetectorTypeFlightNumber = 1 << 5,
-    DataDetectorTypeLookupSuggestion = 1 << 6,
-    DataDetectorTypeAll = ULONG_MAX
-};
-
-}
index d7e38ed..0d2d9fb 100644 (file)
@@ -31,7 +31,6 @@
 #include "FrameLoader.h"
 #include "ScriptController.h"
 #include "Settings.h"
-#include "SettingsDefaultValues.h"
 #include "SubframeLoader.h"
 
 namespace WebCore {
@@ -40,7 +39,7 @@ HTMLParserOptions::HTMLParserOptions()
     : scriptEnabled(false)
     , pluginsEnabled(false)
     , usePreHTML5ParserQuirks(false)
-    , maximumDOMTreeDepth(defaultMaximumHTMLParserDOMTreeDepth)
+    , maximumDOMTreeDepth(Settings::defaultMaximumHTMLParserDOMTreeDepth)
 {
 }
 
diff --git a/Source/WebCore/page/DebugOverlayRegions.h b/Source/WebCore/page/DebugOverlayRegions.h
deleted file mode 100644 (file)
index 5f0a7cc..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2017 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#pragma once
-
-namespace WebCore {
-
-enum DebugOverlayRegionFlags {
-    NonFastScrollableRegion = 1 << 0,
-    WheelEventHandlerRegion = 1 << 1,
-};
-
-typedef unsigned DebugOverlayRegions;
-
-}
diff --git a/Source/WebCore/page/FrameFlattening.h b/Source/WebCore/page/FrameFlattening.h
deleted file mode 100644 (file)
index bb1fdb6..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) 2017 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#pragma once
-
-namespace WebCore {
-
-enum FrameFlattening {
-    FrameFlatteningDisabled,
-    FrameFlatteningEnabledForNonFullScreenIFrames,
-    FrameFlatteningFullyEnabled
-};
-
-}
diff --git a/Source/WebCore/page/PDFImageCachingPolicy.h b/Source/WebCore/page/PDFImageCachingPolicy.h
deleted file mode 100644 (file)
index a26737e..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2017 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#pragma once
-
-namespace WebCore {
-
-enum PDFImageCachingPolicy {
-    PDFImageCachingEnabled,
-    PDFImageCachingBelowMemoryLimit,
-    PDFImageCachingDisabled,
-    PDFImageCachingClipBoundsOnly,
-#if PLATFORM(IOS)
-    PDFImageCachingDefault = PDFImageCachingBelowMemoryLimit
-#else
-    PDFImageCachingDefault = PDFImageCachingEnabled
-#endif
-};
-
-}
index aa4ff38..691c1d9 100644 (file)
@@ -43,6 +43,7 @@
 #include "Page.h"
 #include "PageCache.h"
 #include "RuntimeApplicationChecks.h"
+#include "StorageMap.h"
 #include <limits>
 #include <wtf/NeverDestroyed.h>
 #include <wtf/StdLibExtras.h>
@@ -120,6 +121,29 @@ bool Settings::gShouldOptOutOfNetworkStateObservation = false;
 bool Settings::gManageAudioSession = false;
 bool Settings::gCustomPasteboardDataEnabled = false;
 
+// NOTEs
+//  1) EditingMacBehavior comprises Tiger, Leopard, SnowLeopard and iOS builds, as well as QtWebKit when built on Mac;
+//  2) EditingWindowsBehavior comprises Win32 build;
+//  3) EditingUnixBehavior comprises all unix-based systems, but Darwin/MacOS (and then abusing the terminology);
+// 99) MacEditingBehavior is used as a fallback.
+static EditingBehaviorType editingBehaviorTypeForPlatform()
+{
+    return
+#if PLATFORM(IOS)
+    EditingIOSBehavior
+#elif OS(DARWIN)
+    EditingMacBehavior
+#elif OS(WINDOWS)
+    EditingWindowsBehavior
+#elif OS(UNIX)
+    EditingUnixBehavior
+#else
+    // Fallback
+    EditingMacBehavior
+#endif
+    ;
+}
+
 bool Settings::customPasteboardDataEnabled()
 {
     static std::once_flag initializeCustomPasteboardDataToDefaultValue;
@@ -136,37 +160,96 @@ bool Settings::customPasteboardDataEnabled()
     return gCustomPasteboardDataEnabled;
 }
 
+#if PLATFORM(COCOA)
+static const bool defaultYouTubeFlashPluginReplacementEnabled = true;
+#else
+static const bool defaultYouTubeFlashPluginReplacementEnabled = false;
+#endif
+
+#if PLATFORM(IOS)
+static const bool defaultFixedBackgroundsPaintRelativeToDocument = true;
+static const bool defaultAcceleratedCompositingForFixedPositionEnabled = true;
+static const bool defaultAllowsInlineMediaPlayback = false;
+static const bool defaultInlineMediaPlaybackRequiresPlaysInlineAttribute = true;
+static const bool defaultVideoPlaybackRequiresUserGesture = true;
+static const bool defaultAudioPlaybackRequiresUserGesture = true;
+static const bool defaultMediaDataLoadsAutomatically = false;
+static const bool defaultShouldRespectImageOrientation = true;
+static const bool defaultImageSubsamplingEnabled = true;
+static const bool defaultScrollingTreeIncludesFrames = true;
+static const bool defaultMediaControlsScaleWithPageZoom = true;
+static const bool defaultQuickTimePluginReplacementEnabled = true;
+#else
+static const bool defaultFixedBackgroundsPaintRelativeToDocument = false;
+static const bool defaultAcceleratedCompositingForFixedPositionEnabled = false;
+static const bool defaultAllowsInlineMediaPlayback = true;
+static const bool defaultInlineMediaPlaybackRequiresPlaysInlineAttribute = false;
+static const bool defaultVideoPlaybackRequiresUserGesture = false;
+static const bool defaultAudioPlaybackRequiresUserGesture = false;
+static const bool defaultMediaDataLoadsAutomatically = true;
+static const bool defaultShouldRespectImageOrientation = false;
+static const bool defaultImageSubsamplingEnabled = false;
+static const bool defaultScrollingTreeIncludesFrames = false;
+static const bool defaultMediaControlsScaleWithPageZoom = true;
+static const bool defaultQuickTimePluginReplacementEnabled = false;
+#endif
+
+static const bool defaultRequiresUserGestureToLoadVideo = true;
+
+static const bool defaultAllowsPictureInPictureMediaPlayback = true;
+
+static const double defaultIncrementalRenderingSuppressionTimeoutInSeconds = 5;
+#if USE(UNIFIED_TEXT_CHECKING)
+static const bool defaultUnifiedTextCheckerEnabled = true;
+#else
+static const bool defaultUnifiedTextCheckerEnabled = false;
+#endif
+static const bool defaultSmartInsertDeleteEnabled = true;
+static const bool defaultSelectTrailingWhitespaceEnabled = false;
+
 // This amount of time must have elapsed before we will even consider scheduling a layout without a delay.
 // FIXME: For faster machines this value can really be lowered to 200. 250 is adequate, but a little high
 // for dual G5s. :)
 static const Seconds layoutScheduleThreshold = 250_ms;
 
 Settings::Settings(Page* page)
-    : m_mediaTypeOverride("screen")
+    : m_page(nullptr)
+    , m_mediaTypeOverride("screen")
     , m_fontGenericFamilies(std::make_unique<FontGenericFamilies>())
     , m_storageBlockingPolicy(SecurityOrigin::AllowAllStorage)
     , m_layoutInterval(layoutScheduleThreshold)
     , m_minimumDOMTimerInterval(DOMTimer::defaultMinimumInterval())
+    SETTINGS_INITIALIZER_LIST
+    , m_isJavaEnabled(false)
+    , m_isJavaEnabledForLocalFiles(true)
     , m_loadsImagesAutomatically(false)
     , m_areImagesEnabled(true)
+    , m_preferMIMETypeForImages(false)
     , m_arePluginsEnabled(false)
     , m_isScriptEnabled(false)
+    , m_needsAdobeFrameReloadingQuirk(false)
     , m_usesPageCache(false)
+    , m_fontRenderingMode(0)
+    , m_showTiledScrollingIndicator(false)
     , m_backgroundShouldExtendBeyondPage(false)
     , m_dnsPrefetchingEnabled(false)
+#if ENABLE(TOUCH_EVENTS)
+    , m_touchEventEmulationEnabled(false)
+#endif
     , m_scrollingPerformanceLoggingEnabled(false)
+    , m_timeWithoutMouseMovementBeforeHidingControls(3_s)
     , m_setImageLoadingSettingsTimer(*this, &Settings::imageLoadingSettingsTimerFired)
     , m_hiddenPageDOMTimerThrottlingEnabled(false)
     , m_hiddenPageCSSAnimationSuspensionEnabled(false)
+    , m_fontFallbackPrefersPictographs(false)
+    , m_webFontsAlwaysFallBack(false)
+    , m_forcePendingWebGLPolicy(false)
 {
     // A Frame may not have been created yet, so we initialize the AtomicString
     // hash before trying to use it.
     AtomicString::init();
-
     initializeDefaultFontFamilies();
-
-    // Page is not yet fully initialized when constructing Settings, so keeping m_page null over initializeDefaultFontFamilies() call.
-    m_page = page;
+    m_page = page; // Page is not yet fully initialized when constructing Settings, so keeping m_page null over initializeDefaultFontFamilies() call.
 }
 
 Settings::~Settings()
@@ -178,6 +261,8 @@ Ref<Settings> Settings::create(Page* page)
     return adoptRef(*new Settings(page));
 }
 
+SETTINGS_SETTER_BODIES
+
 #if !PLATFORM(COCOA)
 void Settings::initializeDefaultFontFamilies()
 {
@@ -269,15 +354,17 @@ void Settings::setPictographFontFamily(const AtomicString& family, UScriptCode s
         invalidateAfterGenericFamilyChange(m_page);
 }
 
-bool Settings::defaultTextAutosizingEnabled()
+float Settings::defaultMinimumZoomFontSize()
 {
-    return WebCore::defaultTextAutosizingEnabled();
+    return 15;
 }
 
-float Settings::defaultMinimumZoomFontSize()
+#if !PLATFORM(IOS)
+bool Settings::defaultTextAutosizingEnabled()
 {
-    return WebCore::defaultMinimumZoomFontSize;
+    return false;
 }
+#endif
 
 void Settings::setMediaTypeOverride(const String& mediaTypeOverride)
 {
@@ -330,6 +417,16 @@ void Settings::setScriptEnabled(bool isScriptEnabled)
 #endif
 }
 
+void Settings::setJavaEnabled(bool isJavaEnabled)
+{
+    m_isJavaEnabled = isJavaEnabled;
+}
+
+void Settings::setJavaEnabledForLocalFiles(bool isJavaEnabledForLocalFiles)
+{
+    m_isJavaEnabledForLocalFiles = isJavaEnabledForLocalFiles;
+}
+
 void Settings::setImagesEnabled(bool areImagesEnabled)
 {
     m_areImagesEnabled = areImagesEnabled;
@@ -338,6 +435,16 @@ void Settings::setImagesEnabled(bool areImagesEnabled)
     m_setImageLoadingSettingsTimer.startOneShot(0_s);
 }
 
+void Settings::setPreferMIMETypeForImages(bool preferMIMETypeForImages)
+{
+    m_preferMIMETypeForImages = preferMIMETypeForImages;
+}
+
+void Settings::setForcePendingWebGLPolicy(bool forced)
+{
+    m_forcePendingWebGLPolicy = forced;
+}
+
 void Settings::setPluginsEnabled(bool arePluginsEnabled)
 {
     if (m_arePluginsEnabled == arePluginsEnabled)
@@ -358,6 +465,13 @@ void Settings::setUserStyleSheetLocation(const URL& userStyleSheetLocation)
         m_page->userStyleSheetLocationChanged();
 }
 
+// FIXME: This quirk is needed because of Radar 4674537 and 5211271. We need to phase it out once Adobe
+// can fix the bug from their end.
+void Settings::setNeedsAdobeFrameReloadingQuirk(bool shouldNotReloadIFramesForUnchangedSRC)
+{
+    m_needsAdobeFrameReloadingQuirk = shouldNotReloadIFramesForUnchangedSRC;
+}
+
 void Settings::setMinimumDOMTimerInterval(Seconds interval)
 {
     auto oldTimerInterval = std::exchange(m_minimumDOMTimerInterval, interval);
@@ -392,6 +506,20 @@ void Settings::setUsesPageCache(bool usesPageCache)
         PageCache::singleton().pruneToSizeNow(0, PruningReason::None);
 }
 
+void Settings::setFontRenderingMode(FontRenderingMode mode)
+{
+    if (fontRenderingMode() == mode)
+        return;
+    m_fontRenderingMode = static_cast<int>(mode);
+    if (m_page)
+        m_page->setNeedsRecalcStyleInAllFrames();
+}
+
+FontRenderingMode Settings::fontRenderingMode() const
+{
+    return static_cast<FontRenderingMode>(m_fontRenderingMode);
+}
+
 void Settings::setDNSPrefetchingEnabled(bool dnsPrefetchingEnabled)
 {
     if (m_dnsPrefetchingEnabled == dnsPrefetchingEnabled)
@@ -402,6 +530,14 @@ void Settings::setDNSPrefetchingEnabled(bool dnsPrefetchingEnabled)
         m_page->dnsPrefetchingStateChanged();
 }
 
+void Settings::setShowTiledScrollingIndicator(bool enabled)
+{
+    if (m_showTiledScrollingIndicator == enabled)
+        return;
+        
+    m_showTiledScrollingIndicator = enabled;
+}
+
 #if ENABLE(RESOURCE_USAGE)
 void Settings::setResourceUsageOverlayVisible(bool visible)
 {
@@ -587,6 +723,24 @@ void Settings::setHiddenPageCSSAnimationSuspensionEnabled(bool flag)
         m_page->hiddenPageCSSAnimationSuspensionStateChanged();
 }
 
+void Settings::setFontFallbackPrefersPictographs(bool preferPictographs)
+{
+    if (m_fontFallbackPrefersPictographs == preferPictographs)
+        return;
+
+    m_fontFallbackPrefersPictographs = preferPictographs;
+    if (m_page)
+        m_page->setNeedsRecalcStyleInAllFrames();
+}
+
+void Settings::setWebFontsAlwaysFallBack(bool enable)
+{
+    if (m_webFontsAlwaysFallBack == enable)
+        return;
+
+    m_webFontsAlwaysFallBack = enable;
+}
+
 void Settings::setLowPowerVideoAudioBufferSizeEnabled(bool flag)
 {
     gLowPowerVideoAudioBufferSizeEnabled = flag;
index 23f880a..f60096d 100644 (file)
 
 #pragma once
 
+#include "ClipboardAccessPolicy.h"
 #include "ContentType.h"
+#include "EditingBehaviorTypes.h"
+#include "IntSize.h"
 #include "SecurityOrigin.h"
-#include "SettingsDefaultValues.h"
-#include "SettingsGenerated.h"
+#include "SettingsMacros.h"
+#include "TextFlags.h"
 #include "Timer.h"
 #include "URL.h"
+#include "WritingMode.h"
+#include <runtime/RuntimeFlags.h>
 #include <unicode/uscript.h>
 #include <wtf/HashMap.h>
+#include <wtf/RefCounted.h>
 #include <wtf/text/AtomicString.h>
 #include <wtf/text/AtomicStringHash.h>
 
+#if ENABLE(DATA_DETECTION)
+#include "DataDetection.h"
+#endif
+
 namespace WebCore {
 
 class FontGenericFamilies;
+class Page;
+
+enum EditableLinkBehavior {
+    EditableLinkDefaultBehavior,
+    EditableLinkAlwaysLive,
+    EditableLinkOnlyLiveWithShiftKey,
+    EditableLinkLiveWhenNotFocused,
+    EditableLinkNeverLive
+};
+
+enum TextDirectionSubmenuInclusionBehavior {
+    TextDirectionSubmenuNeverIncluded,
+    TextDirectionSubmenuAutomaticallyIncluded,
+    TextDirectionSubmenuAlwaysIncluded
+};
+
+enum DebugOverlayRegionFlags {
+    NonFastScrollableRegion = 1 << 0,
+    WheelEventHandlerRegion = 1 << 1,
+};
+
+enum class UserInterfaceDirectionPolicy {
+    Content,
+    System
+};
 
-class Settings : public SettingsGenerated {
+enum PDFImageCachingPolicy {
+    PDFImageCachingEnabled,
+    PDFImageCachingBelowMemoryLimit,
+    PDFImageCachingDisabled,
+    PDFImageCachingClipBoundsOnly,
+#if PLATFORM(IOS)
+    PDFImageCachingDefault = PDFImageCachingBelowMemoryLimit
+#else
+    PDFImageCachingDefault = PDFImageCachingEnabled
+#endif
+};
+
+enum FrameFlattening {
+    FrameFlatteningDisabled,
+    FrameFlatteningEnabledForNonFullScreenIFrames,
+    FrameFlatteningFullyEnabled
+};
+
+typedef unsigned DebugOverlayRegions;
+
+class Settings : public RefCounted<Settings> {
+    WTF_MAKE_NONCOPYABLE(Settings); WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<Settings> create(Page*);
     ~Settings();
 
     void pageDestroyed() { m_page = nullptr; }
 
+    enum class ForcedAccessibilityValue { System, On, Off };
+    static const Settings::ForcedAccessibilityValue defaultForcedColorsAreInvertedAccessibilityValue = ForcedAccessibilityValue::System;
+    static const Settings::ForcedAccessibilityValue defaultForcedDisplayIsMonochromeAccessibilityValue = ForcedAccessibilityValue::System;
+    static const Settings::ForcedAccessibilityValue defaultForcedPrefersReducedMotionAccessibilityValue = ForcedAccessibilityValue::System;
+
     WEBCORE_EXPORT void setStandardFontFamily(const AtomicString&, UScriptCode = USCRIPT_COMMON);
     WEBCORE_EXPORT const AtomicString& standardFontFamily(UScriptCode = USCRIPT_COMMON) const;
 
@@ -87,9 +148,21 @@ public:
     bool isScriptEnabled() const { return m_isScriptEnabled; }
     WEBCORE_EXPORT void setScriptEnabled(bool);
 
+    SETTINGS_GETTERS_AND_SETTERS
+
+    WEBCORE_EXPORT void setJavaEnabled(bool);
+    bool isJavaEnabled() const { return m_isJavaEnabled; }
+
+    // This settings is only consulted if isJavaEnabled() returns true;
+    WEBCORE_EXPORT void setJavaEnabledForLocalFiles(bool);
+    bool isJavaEnabledForLocalFiles() const { return m_isJavaEnabledForLocalFiles; }
+
     WEBCORE_EXPORT void setImagesEnabled(bool);
     bool areImagesEnabled() const { return m_areImagesEnabled; }
 
+    WEBCORE_EXPORT void setPreferMIMETypeForImages(bool);
+    bool preferMIMETypeForImages() const { return m_preferMIMETypeForImages; }
+
     WEBCORE_EXPORT void setPluginsEnabled(bool);
     bool arePluginsEnabled() const { return m_arePluginsEnabled; }
 
@@ -99,6 +172,9 @@ public:
     WEBCORE_EXPORT void setUserStyleSheetLocation(const URL&);
     const URL& userStyleSheetLocation() const { return m_userStyleSheetLocation; }
 
+    WEBCORE_EXPORT void setNeedsAdobeFrameReloadingQuirk(bool);
+    bool needsAcrobatFrameReloadingQuirk() const { return m_needsAdobeFrameReloadingQuirk; }
+
     WEBCORE_EXPORT void setMinimumDOMTimerInterval(Seconds); // Initialized to DOMTimer::defaultMinimumInterval().
     Seconds minimumDOMTimerInterval() const { return m_minimumDOMTimerInterval; }
 
@@ -112,6 +188,12 @@ public:
 
     WEBCORE_EXPORT void setUsesPageCache(bool);
     bool usesPageCache() const { return m_usesPageCache; }
+        
+    void setFontRenderingMode(FontRenderingMode mode);
+    FontRenderingMode fontRenderingMode() const;
+
+    WEBCORE_EXPORT void setShowTiledScrollingIndicator(bool);
+    bool showTiledScrollingIndicator() const { return m_showTiledScrollingIndicator; }
 
 #if ENABLE(RESOURCE_USAGE)
     bool resourceUsageOverlayVisible() const { return m_resourceUsageOverlayVisible; }
@@ -154,6 +236,9 @@ public:
     static bool isGStreamerEnabled() { return gGStreamerEnabled; }
 #endif
 
+    static const unsigned defaultMaximumHTMLParserDOMTreeDepth = 512;
+    static const unsigned defaultMaximumRenderTreeDepth = 512;
+
     WEBCORE_EXPORT static void setMockScrollbarsEnabled(bool flag);
     WEBCORE_EXPORT static bool mockScrollbarsEnabled();
 
@@ -163,6 +248,11 @@ public:
     WEBCORE_EXPORT static void setUsesMockScrollAnimator(bool);
     static bool usesMockScrollAnimator();
 
+#if ENABLE(TOUCH_EVENTS)
+    void setTouchEventEmulationEnabled(bool enabled) { m_touchEventEmulationEnabled = enabled; }
+    bool isTouchEventEmulationEnabled() const { return m_touchEventEmulationEnabled; }
+#endif
+
     WEBCORE_EXPORT void setStorageBlockingPolicy(SecurityOrigin::StorageBlockingPolicy);
     SecurityOrigin::StorageBlockingPolicy storageBlockingPolicy() const { return m_storageBlockingPolicy; }
 
@@ -172,9 +262,18 @@ public:
     WEBCORE_EXPORT static void setShouldRespectPriorityInCSSAttributeSetters(bool);
     static bool shouldRespectPriorityInCSSAttributeSetters();
 
+    void setTimeWithoutMouseMovementBeforeHidingControls(Seconds time) { m_timeWithoutMouseMovementBeforeHidingControls = time; }
+    Seconds timeWithoutMouseMovementBeforeHidingControls() const { return m_timeWithoutMouseMovementBeforeHidingControls; }
+
     bool hiddenPageCSSAnimationSuspensionEnabled() const { return m_hiddenPageCSSAnimationSuspensionEnabled; }
     WEBCORE_EXPORT void setHiddenPageCSSAnimationSuspensionEnabled(bool);
 
+    WEBCORE_EXPORT void setFontFallbackPrefersPictographs(bool);
+    bool fontFallbackPrefersPictographs() const { return m_fontFallbackPrefersPictographs; }
+
+    WEBCORE_EXPORT void setWebFontsAlwaysFallBack(bool);
+    bool webFontsAlwaysFallBack() const { return m_webFontsAlwaysFallBack; }
+
     static bool lowPowerVideoAudioBufferSizeEnabled() { return gLowPowerVideoAudioBufferSizeEnabled; }
     WEBCORE_EXPORT static void setLowPowerVideoAudioBufferSizeEnabled(bool);
 
@@ -207,8 +306,16 @@ public:
 
     static void setCustomPasteboardDataEnabled(bool enabled) { gCustomPasteboardDataEnabled = enabled; }
     WEBCORE_EXPORT static bool customPasteboardDataEnabled();
+
+#if ENABLE(LEGACY_ENCRYPTED_MEDIA)
+    void setMediaKeysStorageDirectory(const String& directory) { m_mediaKeysStorageDirectory = directory; }
+    const String& mediaKeysStorageDirectory() const { return m_mediaKeysStorageDirectory; }
+#endif
     
 #if ENABLE(MEDIA_STREAM)
+    void setMediaDeviceIdentifierStorageDirectory(const String& directory) { m_mediaDeviceIdentifierStorageDirectory = directory; }
+    const String& mediaDeviceIdentifierStorageDirectory() const { return m_mediaDeviceIdentifierStorageDirectory; }
+
     static bool mockCaptureDevicesEnabled();
     WEBCORE_EXPORT static void setMockCaptureDevicesEnabled(bool);
 
@@ -216,6 +323,17 @@ public:
     WEBCORE_EXPORT static void setMediaCaptureRequiresSecureConnection(bool);
 #endif
 
+#if ENABLE(APPLE_PAY)
+    bool applePayEnabled() const { return m_applePayEnabled; }
+    void setApplePayEnabled(bool applePayEnabled) { m_applePayEnabled = applePayEnabled; }
+
+    bool applePayCapabilityDisclosureAllowed() const { return m_applePayCapabilityDisclosureAllowed; }
+    void setApplePayCapabilityDisclosureAllowed(bool applePayCapabilityDisclosureAllowed) { m_applePayCapabilityDisclosureAllowed = applePayCapabilityDisclosureAllowed; }
+#endif
+
+    WEBCORE_EXPORT void setForcePendingWebGLPolicy(bool);
+    bool isForcePendingWebGLPolicy() const { return m_forcePendingWebGLPolicy; }
+
     WEBCORE_EXPORT static void setAllowsAnySSLCertificate(bool);
     static bool allowsAnySSLCertificate();
 
@@ -229,6 +347,8 @@ private:
 
     void initializeDefaultFontFamilies();
 
+    Page* m_page;
+
     String m_mediaTypeOverride;
     URL m_userStyleSheetLocation;
     const std::unique_ptr<FontGenericFamilies> m_fontGenericFamilies;
@@ -236,21 +356,38 @@ private:
     Seconds m_layoutInterval;
     Seconds m_minimumDOMTimerInterval;
 
+    SETTINGS_MEMBER_VARIABLES
+
+    bool m_isJavaEnabled : 1;
+    bool m_isJavaEnabledForLocalFiles : 1;
     bool m_loadsImagesAutomatically : 1;
     bool m_areImagesEnabled : 1;
+    bool m_preferMIMETypeForImages : 1;
     bool m_arePluginsEnabled : 1;
     bool m_isScriptEnabled : 1;
+    bool m_needsAdobeFrameReloadingQuirk : 1;
     bool m_usesPageCache : 1;
+    unsigned m_fontRenderingMode : 1;
+    bool m_showTiledScrollingIndicator : 1;
     bool m_backgroundShouldExtendBeyondPage : 1;
     bool m_dnsPrefetchingEnabled : 1;
 
+#if ENABLE(TOUCH_EVENTS)
+    bool m_touchEventEmulationEnabled : 1;
+#endif
     bool m_scrollingPerformanceLoggingEnabled : 1;
 
+    Seconds m_timeWithoutMouseMovementBeforeHidingControls;
+
     Timer m_setImageLoadingSettingsTimer;
     void imageLoadingSettingsTimerFired();
 
     bool m_hiddenPageDOMTimerThrottlingEnabled : 1;
     bool m_hiddenPageCSSAnimationSuspensionEnabled : 1;
+    bool m_fontFallbackPrefersPictographs : 1;
+    bool m_webFontsAlwaysFallBack : 1;
+
+    bool m_forcePendingWebGLPolicy : 1;
 
 #if ENABLE(RESOURCE_USAGE)
     bool m_resourceUsageOverlayVisible { false };
@@ -287,11 +424,21 @@ private:
     WEBCORE_EXPORT static bool gManageAudioSession;
     WEBCORE_EXPORT static bool gCustomPasteboardDataEnabled;
 
+#if ENABLE(LEGACY_ENCRYPTED_MEDIA)
+    String m_mediaKeysStorageDirectory;
+#endif
+    
 #if ENABLE(MEDIA_STREAM)
+    String m_mediaDeviceIdentifierStorageDirectory;
     static bool gMockCaptureDevicesEnabled;
     static bool gMediaCaptureRequiresSecureConnection;
 #endif
 
+#if ENABLE(APPLE_PAY)
+    bool m_applePayEnabled { false };
+    bool m_applePayCapabilityDisclosureAllowed { true };
+#endif
+
     static bool gLowPowerVideoAudioBufferSizeEnabled;
     static bool gResourceLoadStatisticsEnabledEnabled;
     static bool gAllowsAnySSLCertificate;
index ff01270..90bf197 100644 (file)
@@ -66,7 +66,6 @@ acceleratedCompositedAnimationsEnabled initial=true, setNeedsStyleRecalcInAllFra
 showDebugBorders initial=false, setNeedsStyleRecalcInAllFrames=1
 showRepaintCounter initial=false, setNeedsStyleRecalcInAllFrames=1
 visibleDebugOverlayRegions type=DebugOverlayRegions, initial=0
-showTiledScrollingIndicator initial=false
 
 # This is a quirk we are pro-actively applying to old applications. It changes keyboard event dispatching,
 # making keyIdentifier available on keypress events, making charCode available on keydown/keyup events,
@@ -94,7 +93,7 @@ acceleratedDrawingEnabled initial=false
 displayListDrawingEnabled initial=false
 acceleratedFiltersEnabled initial=false
 useLegacyTextAlignPositionedElementBehavior initial=false
-javaScriptRuntimeFlags type=JSC::RuntimeFlags, include=<runtime/RuntimeFlags.h>
+javaScriptRuntimeFlags type=JSC::RuntimeFlags
 
 # FIXME: This should really be disabled by default as it makes platforms that don't support the feature download files
 # they can't use by. Leaving enabled for now to not change existing behavior.
@@ -201,7 +200,7 @@ fixedBackgroundsPaintRelativeToDocument initial=defaultFixedBackgroundsPaintRela
 
 textAutosizingEnabled initial=defaultTextAutosizingEnabled(), setNeedsStyleRecalcInAllFrames=1, conditional=TEXT_AUTOSIZING
 textAutosizingWindowSizeOverride type=IntSize, setNeedsStyleRecalcInAllFrames=1, conditional=TEXT_AUTOSIZING
-minimumZoomFontSize type=float, initial=defaultMinimumZoomFontSize, conditional=TEXT_AUTOSIZING
+minimumZoomFontSize type=float, initial=defaultMinimumZoomFontSize(), conditional=TEXT_AUTOSIZING
 
 subpixelAntialiasedLayerTextEnabled initial=false, setNeedsStyleRecalcInAllFrames=1
 simpleLineLayoutEnabled initial=true, setNeedsStyleRecalcInAllFrames=1
@@ -302,32 +301,7 @@ viewportFitEnabled initial=false
 
 allowMediaContentTypesRequiringHardwareSupportAsFallback initial=false
 
-storageAccessAPIEnabled initial=false
-
-timeWithoutMouseMovementBeforeHidingControls type=Seconds, initial=3_s 
-
-fontFallbackPrefersPictographs initial=false, setNeedsStyleRecalcInAllFrames=1
-webFontsAlwaysFallBack initial=false
-
 paymentRequestEnabled initial=false, conditional=PAYMENT_REQUEST
 
-applePayEnabled initial=false, conditional=APPLE_PAY
-applePayCapabilityDisclosureAllowed initial=true, conditional=APPLE_PAY
-
-javaEnabled initial=false, getter=isJavaEnabled
-javaEnabledForLocalFiles initial=true, getter=isJavaEnabledForLocalFiles
-
-fontRenderingMode type=FontRenderingMode, initial=FontRenderingMode::Normal
-
-preferMIMETypeForImages initial=false
-
-forcePendingWebGLPolicy initial=false, getter=isForcePendingWebGLPolicy
-
-mediaKeysStorageDirectory type=String, conditional=LEGACY_ENCRYPTED_MEDIA
-mediaDeviceIdentifierStorageDirectory type=String, conditional=MEDIA_STREAM
-
-# FIXME: This quirk is needed because of Radar 4674537 and 5211271. We need to phase it out once Adobe
-# can fix the bug from their end.
-needsAdobeFrameReloadingQuirk initial=false, getter=needsAcrobatFrameReloadingQuirk
+storageAccessAPIEnabled initial=false
 
-touchEventEmulationEnabled initial=false, getter=isTouchEventEmulationEnabled, conditional=TOUCH_EVENTS
\ No newline at end of file
diff --git a/Source/WebCore/page/SettingsDefaultValues.h b/Source/WebCore/page/SettingsDefaultValues.h
deleted file mode 100644 (file)
index 1c9ecf1..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (C) 2017 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#pragma once
-
-#include "EditingBehaviorType.h"
-#include "ForcedAccessibilityValue.h"
-#include "StorageMap.h"
-
-namespace WebCore {
-
-#if USE(UNIFIED_TEXT_CHECKING)
-static const bool defaultUnifiedTextCheckerEnabled = true;
-#else
-static const bool defaultUnifiedTextCheckerEnabled = false;
-#endif
-
-#if PLATFORM(COCOA)
-static const bool defaultYouTubeFlashPluginReplacementEnabled = true;
-#else
-static const bool defaultYouTubeFlashPluginReplacementEnabled = false;
-#endif
-
-#if PLATFORM(IOS)
-static const bool defaultFixedBackgroundsPaintRelativeToDocument = true;
-static const bool defaultAcceleratedCompositingForFixedPositionEnabled = true;
-static const bool defaultAllowsInlineMediaPlayback = false;
-static const bool defaultInlineMediaPlaybackRequiresPlaysInlineAttribute = true;
-static const bool defaultVideoPlaybackRequiresUserGesture = true;
-static const bool defaultAudioPlaybackRequiresUserGesture = true;
-static const bool defaultMediaDataLoadsAutomatically = false;
-static const bool defaultShouldRespectImageOrientation = true;
-static const bool defaultImageSubsamplingEnabled = true;
-static const bool defaultScrollingTreeIncludesFrames = true;
-static const bool defaultQuickTimePluginReplacementEnabled = true;
-#else
-static const bool defaultFixedBackgroundsPaintRelativeToDocument = false;
-static const bool defaultAcceleratedCompositingForFixedPositionEnabled = false;
-static const bool defaultAllowsInlineMediaPlayback = true;
-static const bool defaultInlineMediaPlaybackRequiresPlaysInlineAttribute = false;
-static const bool defaultVideoPlaybackRequiresUserGesture = false;
-static const bool defaultAudioPlaybackRequiresUserGesture = false;
-static const bool defaultMediaDataLoadsAutomatically = true;
-static const bool defaultShouldRespectImageOrientation = false;
-static const bool defaultImageSubsamplingEnabled = false;
-static const bool defaultScrollingTreeIncludesFrames = false;
-static const bool defaultQuickTimePluginReplacementEnabled = false;
-#endif
-
-static const bool defaultMediaControlsScaleWithPageZoom = true;
-static const bool defaultAllowsPictureInPictureMediaPlayback = true;
-static const bool defaultRequiresUserGestureToLoadVideo = true;
-static const bool defaultSmartInsertDeleteEnabled = true;
-static const bool defaultSelectTrailingWhitespaceEnabled = false;
-static const unsigned defaultMaximumHTMLParserDOMTreeDepth = 512;
-static const double defaultIncrementalRenderingSuppressionTimeoutInSeconds = 5;
-static const float defaultMinimumZoomFontSize = 15;
-static const ForcedAccessibilityValue defaultForcedColorsAreInvertedAccessibilityValue = ForcedAccessibilityValue::System;
-static const ForcedAccessibilityValue defaultForcedDisplayIsMonochromeAccessibilityValue = ForcedAccessibilityValue::System;
-static const ForcedAccessibilityValue defaultForcedPrefersReducedMotionAccessibilityValue = ForcedAccessibilityValue::System;
-
-inline EditingBehaviorType editingBehaviorTypeForPlatform()
-{
-    return
-#if PLATFORM(IOS)
-    EditingIOSBehavior;
-#elif OS(DARWIN)
-    EditingMacBehavior;
-#elif OS(WINDOWS)
-    EditingWindowsBehavior;
-#elif OS(UNIX)
-    EditingUnixBehavior;
-#else
-    // Fallback
-    EditingMacBehavior;
-#endif
-}
-
-#if PLATFORM(IOS)
-WEBCORE_EXPORT bool defaultTextAutosizingEnabled();
-#else
-inline bool defaultTextAutosizingEnabled()
-{
-    return false;
-}
-#endif
-
-}
diff --git a/Source/WebCore/page/TextDirectionSubmenuInclusionBehavior.h b/Source/WebCore/page/TextDirectionSubmenuInclusionBehavior.h
deleted file mode 100644 (file)
index 7c47e5b..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) 2017 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#pragma once
-
-namespace WebCore {
-
-enum TextDirectionSubmenuInclusionBehavior {
-    TextDirectionSubmenuNeverIncluded,
-    TextDirectionSubmenuAutomaticallyIncluded,
-    TextDirectionSubmenuAlwaysIncluded
-};
-
-}
diff --git a/Source/WebCore/page/UserInterfaceDirectionPolicy.h b/Source/WebCore/page/UserInterfaceDirectionPolicy.h
deleted file mode 100644 (file)
index f6b1d86..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) 2017 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#pragma once
-
-namespace WebCore {
-
-enum class UserInterfaceDirectionPolicy {
-    Content,
-    System
-};
-
-}
index b44073d..9186bf8 100644 (file)
 
 #include <wtf/NeverDestroyed.h>
 
+#if PLATFORM(IOS)
+#include "Device.h"
+#include <pal/spi/ios/UIKitSPI.h>
+#include <wtf/SoftLinking.h>
+#endif
+
+#if PLATFORM(IOS)
+SOFT_LINK_FRAMEWORK(UIKit)
+SOFT_LINK_CLASS(UIKit, UIApplication)
+#endif
+
 namespace WebCore {
 
 static inline const char* sansSerifTraditionalHanFontFamily()
@@ -117,6 +128,11 @@ void Settings::initializeDefaultFontFamilies()
     setSansSerifFontFamily("Helvetica", USCRIPT_COMMON);
 }
 
+bool Settings::defaultTextAutosizingEnabled()
+{
+    return !deviceHasIPadCapability() || [[getUIApplicationClass() sharedApplication] _isClassic];
+}
+
 #endif
 
 const String& Settings::defaultMediaContentTypesRequiringHardwareSupport()
diff --git a/Source/WebCore/page/cocoa/SettingsDefaultValuesCocoa.mm b/Source/WebCore/page/cocoa/SettingsDefaultValuesCocoa.mm
deleted file mode 100644 (file)
index 0bf44a1..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (C) 2017 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "SettingsDefaultValues.h"
-
-#if PLATFORM(COCOA)
-
-#if PLATFORM(IOS)
-#include "Device.h"
-#include <pal/spi/ios/UIKitSPI.h>
-#include <wtf/SoftLinking.h>
-
-SOFT_LINK_FRAMEWORK(UIKit)
-SOFT_LINK_CLASS(UIKit, UIApplication)
-#endif
-
-namespace WebCore {
-
-#if PLATFORM(IOS)
-bool defaultTextAutosizingEnabled()
-{
-    return !deviceHasIPadCapability() || [[getUIApplicationClass() sharedApplication] _isClassic];
-}
-#endif
-
-}
-
-#endif // PLATFORM(COCOA)
diff --git a/Source/WebCore/platform/text/FontRenderingMode.h b/Source/WebCore/platform/text/FontRenderingMode.h
deleted file mode 100644 (file)
index a60247e..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (C) 2003, 2006 Apple Inc.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
- */
-
-#pragma once
-
-namespace WebCore {
-
-// This setting is used to provide ways of switching between multiple rendering modes that may have different
-// metrics. It is used to switch between CG and GDI text on Windows.
-enum class FontRenderingMode { Normal, Alternate };
-
-}
diff --git a/Source/WebCore/platform/text/TextDirection.h b/Source/WebCore/platform/text/TextDirection.h
deleted file mode 100644 (file)
index 46755e2..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2017 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#pragma once
-
-namespace WebCore {
-
-enum TextDirection { LTR, RTL };
-
-inline bool isLeftToRightDirection(TextDirection direction)
-{
-    return direction == LTR;
-}
-
-}
index 1e5574f..dfde5bf 100644 (file)
 
 #pragma once
 
-#include "FontRenderingMode.h"
-
 namespace WebCore {
 
 enum TextRenderingMode { AutoTextRendering, OptimizeSpeed, OptimizeLegibility, GeometricPrecision };
 
 enum FontSmoothingMode { AutoSmoothing, NoSmoothing, Antialiased, SubpixelAntialiased };
 
+// This setting is used to provide ways of switching between multiple rendering modes that may have different
+// metrics. It is used to switch between CG and GDI text on Windows.
+enum class FontRenderingMode { Normal, Alternate };
+
 enum FontOrientation { Horizontal, Vertical };
 
 enum class NonCJKGlyphOrientation { Mixed, Upright };
index 8bf60e1..87da8c3 100644 (file)
 
 #pragma once
 
-#include "TextDirection.h"
-
 namespace WebCore {
 
+enum TextDirection { LTR, RTL };
+
+inline bool isLeftToRightDirection(TextDirection direction)
+{
+    return direction == LTR;
+}
+
 enum WritingMode {
     TopToBottomWritingMode = 0, // horizontal-tb
     BottomToTopWritingMode = 1, // horizontal-bt
index 7307af4..58ab2f9 100644 (file)
@@ -350,8 +350,6 @@ static bool hasLoadingStylesheet(const Style::Scope& styleScope, const Element&
     return false;
 }
 
-static const unsigned defaultMaximumRenderTreeDepth = 512;
-
 void TreeResolver::resolveComposedTree()
 {
     ASSERT(m_parentStack.size() == 1);
@@ -386,7 +384,7 @@ void TreeResolver::resolveComposedTree()
 
         auto& element = downcast<Element>(node);
 
-        if (it.depth() > defaultMaximumRenderTreeDepth) {
+        if (it.depth() > Settings::defaultMaximumRenderTreeDepth) {
             resetStyleForNonRenderedDescendants(element);
             element.clearChildNeedsStyleRecalc();
             it.traverseNextSkippingChildren();
index e58205b..5321fe7 100644 (file)
@@ -860,34 +860,64 @@ ExceptionOr<void> InternalSettings::setCustomPasteboardDataEnabled(bool enabled)
     return { };
 }
 
-ForcedAccessibilityValue InternalSettings::forcedColorsAreInvertedAccessibilityValue() const
+static InternalSettings::ForcedAccessibilityValue settingsToInternalSettingsValue(Settings::ForcedAccessibilityValue value)
 {
-    return settings().forcedColorsAreInvertedAccessibilityValue();
+    switch (value) {
+    case Settings::ForcedAccessibilityValue::System:
+        return InternalSettings::ForcedAccessibilityValue::System;
+    case Settings::ForcedAccessibilityValue::On:
+        return InternalSettings::ForcedAccessibilityValue::On;
+    case Settings::ForcedAccessibilityValue::Off:
+        return InternalSettings::ForcedAccessibilityValue::Off;
+    }
+
+    ASSERT_NOT_REACHED();
+    return InternalSettings::ForcedAccessibilityValue::Off;
+}
+
+static Settings::ForcedAccessibilityValue internalSettingsToSettingsValue(InternalSettings::ForcedAccessibilityValue value)
+{
+    switch (value) {
+    case InternalSettings::ForcedAccessibilityValue::System:
+        return Settings::ForcedAccessibilityValue::System;
+    case InternalSettings::ForcedAccessibilityValue::On:
+        return Settings::ForcedAccessibilityValue::On;
+    case InternalSettings::ForcedAccessibilityValue::Off:
+        return Settings::ForcedAccessibilityValue::Off;
+    }
+
+    ASSERT_NOT_REACHED();
+    return Settings::ForcedAccessibilityValue::Off;
+}
+
+InternalSettings::ForcedAccessibilityValue InternalSettings::forcedColorsAreInvertedAccessibilityValue() const
+{
+    return settingsToInternalSettingsValue(settings().forcedColorsAreInvertedAccessibilityValue());
 }
 
-void InternalSettings::setForcedColorsAreInvertedAccessibilityValue(ForcedAccessibilityValue value)
+void InternalSettings::setForcedColorsAreInvertedAccessibilityValue(InternalSettings::ForcedAccessibilityValue value)
 {
-    settings().setForcedColorsAreInvertedAccessibilityValue(value);
+    settings().setForcedColorsAreInvertedAccessibilityValue(internalSettingsToSettingsValue(value));
 }
 
-ForcedAccessibilityValue InternalSettings::forcedDisplayIsMonochromeAccessibilityValue() const
+InternalSettings::ForcedAccessibilityValue InternalSettings::forcedDisplayIsMonochromeAccessibilityValue() const
 {
-    return settings().forcedDisplayIsMonochromeAccessibilityValue();
+    return settingsToInternalSettingsValue(settings().forcedDisplayIsMonochromeAccessibilityValue());
 }
 
-void InternalSettings::setForcedDisplayIsMonochromeAccessibilityValue(ForcedAccessibilityValue value)
+void InternalSettings::setForcedDisplayIsMonochromeAccessibilityValue(InternalSettings::ForcedAccessibilityValue value)
 {
-    settings().setForcedDisplayIsMonochromeAccessibilityValue(value);
+    settings().setForcedDisplayIsMonochromeAccessibilityValue(internalSettingsToSettingsValue(value));
 }
 
-ForcedAccessibilityValue InternalSettings::forcedPrefersReducedMotionAccessibilityValue() const
+InternalSettings::ForcedAccessibilityValue InternalSettings::forcedPrefersReducedMotionAccessibilityValue() const
 {
-    return settings().forcedPrefersReducedMotionAccessibilityValue();
+    return settingsToInternalSettingsValue(settings().forcedPrefersReducedMotionAccessibilityValue());
 }
 
-void InternalSettings::setForcedPrefersReducedMotionAccessibilityValue(ForcedAccessibilityValue value)
+void InternalSettings::setForcedPrefersReducedMotionAccessibilityValue(InternalSettings::ForcedAccessibilityValue value)
 {
-    settings().setForcedPrefersReducedMotionAccessibilityValue(value);
+    settings().setForcedPrefersReducedMotionAccessibilityValue(internalSettingsToSettingsValue(value));
 }
 
 // If you add to this class, make sure that you update the Backup class for test reproducability!
index 9e3c726..201023d 100644 (file)
 // FIXME (121927): This include should not be needed.
 #include <wtf/text/AtomicStringHash.h>
 
-#include "EditingBehaviorType.h"
+#include "EditingBehaviorTypes.h"
 #include "ExceptionOr.h"
 #include "FontGenericFamilies.h"
-#include "ForcedAccessibilityValue.h"
 #include "IntSize.h"
 #include "InternalSettingsGenerated.h"
 #include "SecurityOrigin.h"
@@ -108,7 +107,7 @@ public:
     ExceptionOr<bool> deferredCSSParserEnabled();
     ExceptionOr<void> setDeferredCSSParserEnabled(bool);
 
-    using ForcedAccessibilityValue = WebCore::ForcedAccessibilityValue;
+    enum class ForcedAccessibilityValue { System, On, Off };
     ForcedAccessibilityValue forcedColorsAreInvertedAccessibilityValue() const;
     void setForcedColorsAreInvertedAccessibilityValue(ForcedAccessibilityValue);
     ForcedAccessibilityValue forcedDisplayIsMonochromeAccessibilityValue() const;
@@ -190,9 +189,9 @@ private:
         UserInterfaceDirectionPolicy m_userInterfaceDirectionPolicy;
         TextDirection m_systemLayoutDirection;
         PDFImageCachingPolicy m_pdfImageCachingPolicy;
-        ForcedAccessibilityValue m_forcedColorsAreInvertedAccessibilityValue;
-        ForcedAccessibilityValue m_forcedDisplayIsMonochromeAccessibilityValue;
-        ForcedAccessibilityValue m_forcedPrefersReducedMotionAccessibilityValue;
+        Settings::ForcedAccessibilityValue m_forcedColorsAreInvertedAccessibilityValue;
+        Settings::ForcedAccessibilityValue m_forcedDisplayIsMonochromeAccessibilityValue;
+        Settings::ForcedAccessibilityValue m_forcedPrefersReducedMotionAccessibilityValue;
         FrameFlattening m_frameFlattening;
 
         // Runtime enabled settings.