Define AtomString(ASCIILiteral) and use ASCIILiteral more to avoid memory allocation
https://bugs.webkit.org/show_bug.cgi?id=224125
Reviewed by Saam Barati.
Source/WebCore:
We apply "..."_s more. This avoids allocating of string storage when creating StringImpl.
* accessibility/AccessibilityObject.cpp:
(WebCore::initializeRoleMap):
* dom/ScriptElement.cpp:
(WebCore::isLegacySupportedJavaScriptLanguage):
* editing/EditorCommand.cpp:
(WebCore::createCommandMap):
* html/Autofill.cpp:
(WebCore::fieldNameMap):
* platform/LegacySchemeRegistry.cpp:
(WebCore::builtinLocalURLSchemes):
(WebCore::builtinSecureSchemes):
(WebCore::builtinSchemesWithUniqueOrigins):
(WebCore::builtinEmptyDocumentSchemes):
(WebCore::builtinCanDisplayOnlyIfCanRequestSchemes):
(WebCore::builtinCORSEnabledSchemes):
* platform/MIMETypeRegistry.cpp:
(WebCore::MIMETypeRegistry::systemPreviewMIMETypes):
* platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::hasValidAverageCharWidth const):
* platform/graphics/HEVCUtilities.cpp:
(WebCore::codecStringForDoViCodecType):
(WebCore::profileIDForAlphabeticDoViProfile):
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::staticMIMETypeList):
* platform/graphics/avfoundation/objc/AVAssetMIMETypeCache.mm:
(WebCore::AVAssetMIMETypeCache::staticContainerTypeList):
* platform/graphics/cg/ImageSourceCGWin.cpp:
(WebCore::preferredExtensionForImageType):
* svg/SVGTests.cpp:
(WebCore::supportedSVGFeatures):
Source/WTF:
Add AtomString(ASCIILiteral). ASCIILiteral ensures that storage is constant non-heap string by its type.
So we can just use it as a literal (not allocating a string storage).
* wtf/text/AtomString.h:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@275457 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index c09fdcc..ca14506 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,43 @@
+2021-04-05 Yusuke Suzuki <ysuzuki@apple.com>
+
+ Define AtomString(ASCIILiteral) and use ASCIILiteral more to avoid memory allocation
+ https://bugs.webkit.org/show_bug.cgi?id=224125
+
+ Reviewed by Saam Barati.
+
+ We apply "..."_s more. This avoids allocating of string storage when creating StringImpl.
+
+ * accessibility/AccessibilityObject.cpp:
+ (WebCore::initializeRoleMap):
+ * dom/ScriptElement.cpp:
+ (WebCore::isLegacySupportedJavaScriptLanguage):
+ * editing/EditorCommand.cpp:
+ (WebCore::createCommandMap):
+ * html/Autofill.cpp:
+ (WebCore::fieldNameMap):
+ * platform/LegacySchemeRegistry.cpp:
+ (WebCore::builtinLocalURLSchemes):
+ (WebCore::builtinSecureSchemes):
+ (WebCore::builtinSchemesWithUniqueOrigins):
+ (WebCore::builtinEmptyDocumentSchemes):
+ (WebCore::builtinCanDisplayOnlyIfCanRequestSchemes):
+ (WebCore::builtinCORSEnabledSchemes):
+ * platform/MIMETypeRegistry.cpp:
+ (WebCore::MIMETypeRegistry::systemPreviewMIMETypes):
+ * platform/graphics/FontCascade.cpp:
+ (WebCore::FontCascade::hasValidAverageCharWidth const):
+ * platform/graphics/HEVCUtilities.cpp:
+ (WebCore::codecStringForDoViCodecType):
+ (WebCore::profileIDForAlphabeticDoViProfile):
+ * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
+ (WebCore::MediaPlayerPrivateAVFoundation::staticMIMETypeList):
+ * platform/graphics/avfoundation/objc/AVAssetMIMETypeCache.mm:
+ (WebCore::AVAssetMIMETypeCache::staticContainerTypeList):
+ * platform/graphics/cg/ImageSourceCGWin.cpp:
+ (WebCore::preferredExtensionForImageType):
+ * svg/SVGTests.cpp:
+ (WebCore::supportedSVGFeatures):
+
2021-04-02 Ryosuke Niwa <rniwa@webkit.org>
PendingImageBitmap gets created on a stopped script execution context.
diff --git a/Source/WebCore/accessibility/AccessibilityObject.cpp b/Source/WebCore/accessibility/AccessibilityObject.cpp
index 843101e..0d7218c 100644
--- a/Source/WebCore/accessibility/AccessibilityObject.cpp
+++ b/Source/WebCore/accessibility/AccessibilityObject.cpp
@@ -2046,130 +2046,130 @@
ASSERT(!gAriaReverseRoleMap);
const RoleEntry roles[] = {
- { "alert", AccessibilityRole::ApplicationAlert },
- { "alertdialog", AccessibilityRole::ApplicationAlertDialog },
- { "application", AccessibilityRole::WebApplication },
- { "article", AccessibilityRole::DocumentArticle },
- { "banner", AccessibilityRole::LandmarkBanner },
- { "blockquote", AccessibilityRole::Blockquote },
- { "button", AccessibilityRole::Button },
- { "caption", AccessibilityRole::Caption },
- { "checkbox", AccessibilityRole::CheckBox },
- { "complementary", AccessibilityRole::LandmarkComplementary },
- { "contentinfo", AccessibilityRole::LandmarkContentInfo },
- { "deletion", AccessibilityRole::Deletion },
- { "dialog", AccessibilityRole::ApplicationDialog },
- { "directory", AccessibilityRole::Directory },
+ { "alert"_s, AccessibilityRole::ApplicationAlert },
+ { "alertdialog"_s, AccessibilityRole::ApplicationAlertDialog },
+ { "application"_s, AccessibilityRole::WebApplication },
+ { "article"_s, AccessibilityRole::DocumentArticle },
+ { "banner"_s, AccessibilityRole::LandmarkBanner },
+ { "blockquote"_s, AccessibilityRole::Blockquote },
+ { "button"_s, AccessibilityRole::Button },
+ { "caption"_s, AccessibilityRole::Caption },
+ { "checkbox"_s, AccessibilityRole::CheckBox },
+ { "complementary"_s, AccessibilityRole::LandmarkComplementary },
+ { "contentinfo"_s, AccessibilityRole::LandmarkContentInfo },
+ { "deletion"_s, AccessibilityRole::Deletion },
+ { "dialog"_s, AccessibilityRole::ApplicationDialog },
+ { "directory"_s, AccessibilityRole::Directory },
// The 'doc-*' roles are defined the ARIA DPUB mobile: https://www.w3.org/TR/dpub-aam-1.0/
// Editor's draft is currently at https://rawgit.com/w3c/aria/master/dpub-aam/dpub-aam.html
- { "doc-abstract", AccessibilityRole::ApplicationTextGroup },
- { "doc-acknowledgments", AccessibilityRole::LandmarkDocRegion },
- { "doc-afterword", AccessibilityRole::LandmarkDocRegion },
- { "doc-appendix", AccessibilityRole::LandmarkDocRegion },
- { "doc-backlink", AccessibilityRole::WebCoreLink },
- { "doc-biblioentry", AccessibilityRole::ListItem },
- { "doc-bibliography", AccessibilityRole::LandmarkDocRegion },
- { "doc-biblioref", AccessibilityRole::WebCoreLink },
- { "doc-chapter", AccessibilityRole::LandmarkDocRegion },
- { "doc-colophon", AccessibilityRole::ApplicationTextGroup },
- { "doc-conclusion", AccessibilityRole::LandmarkDocRegion },
- { "doc-cover", AccessibilityRole::Image },
- { "doc-credit", AccessibilityRole::ApplicationTextGroup },
- { "doc-credits", AccessibilityRole::LandmarkDocRegion },
- { "doc-dedication", AccessibilityRole::ApplicationTextGroup },
- { "doc-endnote", AccessibilityRole::ListItem },
- { "doc-endnotes", AccessibilityRole::LandmarkDocRegion },
- { "doc-epigraph", AccessibilityRole::ApplicationTextGroup },
- { "doc-epilogue", AccessibilityRole::LandmarkDocRegion },
- { "doc-errata", AccessibilityRole::LandmarkDocRegion },
- { "doc-example", AccessibilityRole::ApplicationTextGroup },
- { "doc-footnote", AccessibilityRole::Footnote },
- { "doc-foreword", AccessibilityRole::LandmarkDocRegion },
- { "doc-glossary", AccessibilityRole::LandmarkDocRegion },
- { "doc-glossref", AccessibilityRole::WebCoreLink },
- { "doc-index", AccessibilityRole::LandmarkNavigation },
- { "doc-introduction", AccessibilityRole::LandmarkDocRegion },
- { "doc-noteref", AccessibilityRole::WebCoreLink },
- { "doc-notice", AccessibilityRole::DocumentNote },
- { "doc-pagebreak", AccessibilityRole::Splitter },
- { "doc-pagelist", AccessibilityRole::LandmarkNavigation },
- { "doc-part", AccessibilityRole::LandmarkDocRegion },
- { "doc-preface", AccessibilityRole::LandmarkDocRegion },
- { "doc-prologue", AccessibilityRole::LandmarkDocRegion },
- { "doc-pullquote", AccessibilityRole::ApplicationTextGroup },
- { "doc-qna", AccessibilityRole::ApplicationTextGroup },
- { "doc-subtitle", AccessibilityRole::Heading },
- { "doc-tip", AccessibilityRole::DocumentNote },
- { "doc-toc", AccessibilityRole::LandmarkNavigation },
- { "figure", AccessibilityRole::Figure },
+ { "doc-abstract"_s, AccessibilityRole::ApplicationTextGroup },
+ { "doc-acknowledgments"_s, AccessibilityRole::LandmarkDocRegion },
+ { "doc-afterword"_s, AccessibilityRole::LandmarkDocRegion },
+ { "doc-appendix"_s, AccessibilityRole::LandmarkDocRegion },
+ { "doc-backlink"_s, AccessibilityRole::WebCoreLink },
+ { "doc-biblioentry"_s, AccessibilityRole::ListItem },
+ { "doc-bibliography"_s, AccessibilityRole::LandmarkDocRegion },
+ { "doc-biblioref"_s, AccessibilityRole::WebCoreLink },
+ { "doc-chapter"_s, AccessibilityRole::LandmarkDocRegion },
+ { "doc-colophon"_s, AccessibilityRole::ApplicationTextGroup },
+ { "doc-conclusion"_s, AccessibilityRole::LandmarkDocRegion },
+ { "doc-cover"_s, AccessibilityRole::Image },
+ { "doc-credit"_s, AccessibilityRole::ApplicationTextGroup },
+ { "doc-credits"_s, AccessibilityRole::LandmarkDocRegion },
+ { "doc-dedication"_s, AccessibilityRole::ApplicationTextGroup },
+ { "doc-endnote"_s, AccessibilityRole::ListItem },
+ { "doc-endnotes"_s, AccessibilityRole::LandmarkDocRegion },
+ { "doc-epigraph"_s, AccessibilityRole::ApplicationTextGroup },
+ { "doc-epilogue"_s, AccessibilityRole::LandmarkDocRegion },
+ { "doc-errata"_s, AccessibilityRole::LandmarkDocRegion },
+ { "doc-example"_s, AccessibilityRole::ApplicationTextGroup },
+ { "doc-footnote"_s, AccessibilityRole::Footnote },
+ { "doc-foreword"_s, AccessibilityRole::LandmarkDocRegion },
+ { "doc-glossary"_s, AccessibilityRole::LandmarkDocRegion },
+ { "doc-glossref"_s, AccessibilityRole::WebCoreLink },
+ { "doc-index"_s, AccessibilityRole::LandmarkNavigation },
+ { "doc-introduction"_s, AccessibilityRole::LandmarkDocRegion },
+ { "doc-noteref"_s, AccessibilityRole::WebCoreLink },
+ { "doc-notice"_s, AccessibilityRole::DocumentNote },
+ { "doc-pagebreak"_s, AccessibilityRole::Splitter },
+ { "doc-pagelist"_s, AccessibilityRole::LandmarkNavigation },
+ { "doc-part"_s, AccessibilityRole::LandmarkDocRegion },
+ { "doc-preface"_s, AccessibilityRole::LandmarkDocRegion },
+ { "doc-prologue"_s, AccessibilityRole::LandmarkDocRegion },
+ { "doc-pullquote"_s, AccessibilityRole::ApplicationTextGroup },
+ { "doc-qna"_s, AccessibilityRole::ApplicationTextGroup },
+ { "doc-subtitle"_s, AccessibilityRole::Heading },
+ { "doc-tip"_s, AccessibilityRole::DocumentNote },
+ { "doc-toc"_s, AccessibilityRole::LandmarkNavigation },
+ { "figure"_s, AccessibilityRole::Figure },
// The mappings for 'graphics-*' roles are defined in this spec: https://w3c.github.io/graphics-aam/
- { "graphics-document", AccessibilityRole::GraphicsDocument },
- { "graphics-object", AccessibilityRole::GraphicsObject },
- { "graphics-symbol", AccessibilityRole::GraphicsSymbol },
- { "grid", AccessibilityRole::Grid },
- { "gridcell", AccessibilityRole::GridCell },
- { "table", AccessibilityRole::Table },
- { "cell", AccessibilityRole::Cell },
- { "columnheader", AccessibilityRole::ColumnHeader },
- { "combobox", AccessibilityRole::ComboBox },
- { "definition", AccessibilityRole::Definition },
- { "document", AccessibilityRole::Document },
- { "feed", AccessibilityRole::Feed },
- { "form", AccessibilityRole::Form },
- { "rowheader", AccessibilityRole::RowHeader },
- { "group", AccessibilityRole::ApplicationGroup },
- { "heading", AccessibilityRole::Heading },
- { "img", AccessibilityRole::Image },
- { "insertion", AccessibilityRole::Insertion },
- { "link", AccessibilityRole::WebCoreLink },
- { "list", AccessibilityRole::List },
- { "listitem", AccessibilityRole::ListItem },
- { "listbox", AccessibilityRole::ListBox },
- { "log", AccessibilityRole::ApplicationLog },
- { "main", AccessibilityRole::LandmarkMain },
- { "marquee", AccessibilityRole::ApplicationMarquee },
- { "math", AccessibilityRole::DocumentMath },
- { "menu", AccessibilityRole::Menu },
- { "menubar", AccessibilityRole::MenuBar },
- { "menuitem", AccessibilityRole::MenuItem },
- { "menuitemcheckbox", AccessibilityRole::MenuItemCheckbox },
- { "menuitemradio", AccessibilityRole::MenuItemRadio },
- { "meter", AccessibilityRole::Meter },
- { "none", AccessibilityRole::Presentational },
- { "note", AccessibilityRole::DocumentNote },
- { "navigation", AccessibilityRole::LandmarkNavigation },
- { "option", AccessibilityRole::ListBoxOption },
- { "paragraph", AccessibilityRole::Paragraph },
- { "presentation", AccessibilityRole::Presentational },
- { "progressbar", AccessibilityRole::ProgressIndicator },
- { "radio", AccessibilityRole::RadioButton },
- { "radiogroup", AccessibilityRole::RadioGroup },
- { "region", AccessibilityRole::LandmarkRegion },
- { "row", AccessibilityRole::Row },
- { "rowgroup", AccessibilityRole::RowGroup },
- { "scrollbar", AccessibilityRole::ScrollBar },
- { "search", AccessibilityRole::LandmarkSearch },
- { "searchbox", AccessibilityRole::SearchField },
- { "separator", AccessibilityRole::Splitter },
- { "slider", AccessibilityRole::Slider },
- { "spinbutton", AccessibilityRole::SpinButton },
- { "status", AccessibilityRole::ApplicationStatus },
- { "subscript", AccessibilityRole::Subscript },
- { "superscript", AccessibilityRole::Superscript },
- { "switch", AccessibilityRole::Switch },
- { "tab", AccessibilityRole::Tab },
- { "tablist", AccessibilityRole::TabList },
- { "tabpanel", AccessibilityRole::TabPanel },
- { "text", AccessibilityRole::StaticText },
- { "textbox", AccessibilityRole::TextArea },
- { "term", AccessibilityRole::Term },
- { "time", AccessibilityRole::Time },
- { "timer", AccessibilityRole::ApplicationTimer },
- { "toolbar", AccessibilityRole::Toolbar },
- { "tooltip", AccessibilityRole::UserInterfaceTooltip },
- { "tree", AccessibilityRole::Tree },
- { "treegrid", AccessibilityRole::TreeGrid },
- { "treeitem", AccessibilityRole::TreeItem }
+ { "graphics-document"_s, AccessibilityRole::GraphicsDocument },
+ { "graphics-object"_s, AccessibilityRole::GraphicsObject },
+ { "graphics-symbol"_s, AccessibilityRole::GraphicsSymbol },
+ { "grid"_s, AccessibilityRole::Grid },
+ { "gridcell"_s, AccessibilityRole::GridCell },
+ { "table"_s, AccessibilityRole::Table },
+ { "cell"_s, AccessibilityRole::Cell },
+ { "columnheader"_s, AccessibilityRole::ColumnHeader },
+ { "combobox"_s, AccessibilityRole::ComboBox },
+ { "definition"_s, AccessibilityRole::Definition },
+ { "document"_s, AccessibilityRole::Document },
+ { "feed"_s, AccessibilityRole::Feed },
+ { "form"_s, AccessibilityRole::Form },
+ { "rowheader"_s, AccessibilityRole::RowHeader },
+ { "group"_s, AccessibilityRole::ApplicationGroup },
+ { "heading"_s, AccessibilityRole::Heading },
+ { "img"_s, AccessibilityRole::Image },
+ { "insertion"_s, AccessibilityRole::Insertion },
+ { "link"_s, AccessibilityRole::WebCoreLink },
+ { "list"_s, AccessibilityRole::List },
+ { "listitem"_s, AccessibilityRole::ListItem },
+ { "listbox"_s, AccessibilityRole::ListBox },
+ { "log"_s, AccessibilityRole::ApplicationLog },
+ { "main"_s, AccessibilityRole::LandmarkMain },
+ { "marquee"_s, AccessibilityRole::ApplicationMarquee },
+ { "math"_s, AccessibilityRole::DocumentMath },
+ { "menu"_s, AccessibilityRole::Menu },
+ { "menubar"_s, AccessibilityRole::MenuBar },
+ { "menuitem"_s, AccessibilityRole::MenuItem },
+ { "menuitemcheckbox"_s, AccessibilityRole::MenuItemCheckbox },
+ { "menuitemradio"_s, AccessibilityRole::MenuItemRadio },
+ { "meter"_s, AccessibilityRole::Meter },
+ { "none"_s, AccessibilityRole::Presentational },
+ { "note"_s, AccessibilityRole::DocumentNote },
+ { "navigation"_s, AccessibilityRole::LandmarkNavigation },
+ { "option"_s, AccessibilityRole::ListBoxOption },
+ { "paragraph"_s, AccessibilityRole::Paragraph },
+ { "presentation"_s, AccessibilityRole::Presentational },
+ { "progressbar"_s, AccessibilityRole::ProgressIndicator },
+ { "radio"_s, AccessibilityRole::RadioButton },
+ { "radiogroup"_s, AccessibilityRole::RadioGroup },
+ { "region"_s, AccessibilityRole::LandmarkRegion },
+ { "row"_s, AccessibilityRole::Row },
+ { "rowgroup"_s, AccessibilityRole::RowGroup },
+ { "scrollbar"_s, AccessibilityRole::ScrollBar },
+ { "search"_s, AccessibilityRole::LandmarkSearch },
+ { "searchbox"_s, AccessibilityRole::SearchField },
+ { "separator"_s, AccessibilityRole::Splitter },
+ { "slider"_s, AccessibilityRole::Slider },
+ { "spinbutton"_s, AccessibilityRole::SpinButton },
+ { "status"_s, AccessibilityRole::ApplicationStatus },
+ { "subscript"_s, AccessibilityRole::Subscript },
+ { "superscript"_s, AccessibilityRole::Superscript },
+ { "switch"_s, AccessibilityRole::Switch },
+ { "tab"_s, AccessibilityRole::Tab },
+ { "tablist"_s, AccessibilityRole::TabList },
+ { "tabpanel"_s, AccessibilityRole::TabPanel },
+ { "text"_s, AccessibilityRole::StaticText },
+ { "textbox"_s, AccessibilityRole::TextArea },
+ { "term"_s, AccessibilityRole::Term },
+ { "time"_s, AccessibilityRole::Time },
+ { "timer"_s, AccessibilityRole::ApplicationTimer },
+ { "toolbar"_s, AccessibilityRole::Toolbar },
+ { "tooltip"_s, AccessibilityRole::UserInterfaceTooltip },
+ { "tree"_s, AccessibilityRole::Tree },
+ { "treegrid"_s, AccessibilityRole::TreeGrid },
+ { "treeitem"_s, AccessibilityRole::TreeItem }
};
gAriaRoleMap = new ARIARoleMap;
diff --git a/Source/WebCore/dom/ScriptElement.cpp b/Source/WebCore/dom/ScriptElement.cpp
index 5e99f0f..a56c883 100644
--- a/Source/WebCore/dom/ScriptElement.cpp
+++ b/Source/WebCore/dom/ScriptElement.cpp
@@ -111,18 +111,18 @@
static bool isLegacySupportedJavaScriptLanguage(const String& language)
{
static const auto languages = makeNeverDestroyed(HashSet<String, ASCIICaseInsensitiveHash> {
- "javascript",
- "javascript1.0",
- "javascript1.1",
- "javascript1.2",
- "javascript1.3",
- "javascript1.4",
- "javascript1.5",
- "javascript1.6",
- "javascript1.7",
- "livescript",
- "ecmascript",
- "jscript",
+ "javascript"_s,
+ "javascript1.0"_s,
+ "javascript1.1"_s,
+ "javascript1.2"_s,
+ "javascript1.3"_s,
+ "javascript1.4"_s,
+ "javascript1.5"_s,
+ "javascript1.6"_s,
+ "javascript1.7"_s,
+ "livescript"_s,
+ "ecmascript"_s,
+ "jscript"_s,
});
return languages.get().contains(language);
}
diff --git a/Source/WebCore/editing/EditorCommand.cpp b/Source/WebCore/editing/EditorCommand.cpp
index 98417de..a6b5d55 100644
--- a/Source/WebCore/editing/EditorCommand.cpp
+++ b/Source/WebCore/editing/EditorCommand.cpp
@@ -1598,160 +1598,160 @@
// Map of functions
struct CommandEntry {
- const char* name;
+ ASCIILiteral name;
EditorInternalCommand command;
};
static const CommandMap& createCommandMap()
{
static const CommandEntry commands[] = {
- { "AlignCenter", { executeJustifyCenter, supportedFromMenuOrKeyBinding, enabledInRichlyEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "AlignJustified", { executeJustifyFull, supportedFromMenuOrKeyBinding, enabledInRichlyEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "AlignLeft", { executeJustifyLeft, supportedFromMenuOrKeyBinding, enabledInRichlyEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "AlignRight", { executeJustifyRight, supportedFromMenuOrKeyBinding, enabledInRichlyEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "BackColor", { executeBackColor, supported, enabledInRichlyEditableText, stateNone, valueBackColor, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "Bold", { executeToggleBold, supported, enabledInRichlyEditableText, stateBold, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "ClearText", { executeClearText, supported, enabledClearText, stateNone, valueNull, notTextInsertion, allowExecutionWhenDisabled } },
- { "Copy", { executeCopy, supportedCopyCut, enabledCopy, stateNone, valueNull, notTextInsertion, allowExecutionWhenDisabledCopyCut } },
- { "CreateLink", { executeCreateLink, supported, enabledInRichlyEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "Cut", { executeCut, supportedCopyCut, enabledCut, stateNone, valueNull, notTextInsertion, allowExecutionWhenDisabledCopyCut } },
- { "DefaultParagraphSeparator", { executeDefaultParagraphSeparator, supported, enabled, stateNone, valueDefaultParagraphSeparator, notTextInsertion, doNotAllowExecutionWhenDisabled} },
- { "Delete", { executeDelete, supported, enabledDelete, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "DeleteBackward", { executeDeleteBackward, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "DeleteBackwardByDecomposingPreviousCharacter", { executeDeleteBackwardByDecomposingPreviousCharacter, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "DeleteForward", { executeDeleteForward, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "DeleteToBeginningOfLine", { executeDeleteToBeginningOfLine, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "DeleteToBeginningOfParagraph", { executeDeleteToBeginningOfParagraph, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "DeleteToEndOfLine", { executeDeleteToEndOfLine, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "DeleteToEndOfParagraph", { executeDeleteToEndOfParagraph, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "DeleteToMark", { executeDeleteToMark, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "DeleteWordBackward", { executeDeleteWordBackward, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "DeleteWordForward", { executeDeleteWordForward, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "FindString", { executeFindString, supported, enabled, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "FontName", { executeFontName, supported, enabledInEditableText, stateNone, valueFontName, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "FontSize", { executeFontSize, supported, enabledInEditableText, stateNone, valueFontSize, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "FontSizeDelta", { executeFontSizeDelta, supported, enabledInEditableText, stateNone, valueFontSizeDelta, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "ForeColor", { executeForeColor, supported, enabledInRichlyEditableText, stateNone, valueForeColor, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "FormatBlock", { executeFormatBlock, supported, enabledInRichlyEditableText, stateNone, valueFormatBlock, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "ForwardDelete", { executeForwardDelete, supported, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "HiliteColor", { executeBackColor, supported, enabledInRichlyEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "IgnoreSpelling", { executeIgnoreSpelling, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "Indent", { executeIndent, supported, enabledInRichlyEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "InsertBacktab", { executeInsertBacktab, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, isTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "InsertHTML", { executeInsertHTML, supported, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "InsertHorizontalRule", { executeInsertHorizontalRule, supported, enabledInRichlyEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "InsertImage", { executeInsertImage, supported, enabledInRichlyEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "InsertLineBreak", { executeInsertLineBreak, supported, enabledInEditableText, stateNone, valueNull, isTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "InsertNewline", { executeInsertNewline, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, isTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "InsertNewlineInQuotedContent", { executeInsertNewlineInQuotedContent, supported, enabledInRichlyEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "InsertOrderedList", { executeInsertOrderedList, supported, enabledInRichlyEditableText, stateOrderedList, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "InsertNestedOrderedList", { executeInsertNestedOrderedList, supported, enabledInRichlyEditableText, stateOrderedList, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "InsertParagraph", { executeInsertParagraph, supported, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "InsertTab", { executeInsertTab, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, isTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "InsertText", { executeInsertText, supported, enabledInEditableText, stateNone, valueNull, isTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "InsertUnorderedList", { executeInsertUnorderedList, supported, enabledInRichlyEditableText, stateUnorderedList, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "InsertNestedUnorderedList", { executeInsertNestedUnorderedList, supported, enabledInRichlyEditableText, stateUnorderedList, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "Italic", { executeToggleItalic, supported, enabledInRichlyEditableText, stateItalic, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "JustifyCenter", { executeJustifyCenter, supported, enabledInRichlyEditableText, stateJustifyCenter, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "JustifyFull", { executeJustifyFull, supported, enabledInRichlyEditableText, stateJustifyFull, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "JustifyLeft", { executeJustifyLeft, supported, enabledInRichlyEditableText, stateJustifyLeft, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "JustifyNone", { executeJustifyLeft, supported, enabledInRichlyEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "JustifyRight", { executeJustifyRight, supported, enabledInRichlyEditableText, stateJustifyRight, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MakeTextWritingDirectionLeftToRight", { executeMakeTextWritingDirectionLeftToRight, supportedFromMenuOrKeyBinding, enabledInRichlyEditableText, stateTextWritingDirectionLeftToRight, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MakeTextWritingDirectionNatural", { executeMakeTextWritingDirectionNatural, supportedFromMenuOrKeyBinding, enabledInRichlyEditableText, stateTextWritingDirectionNatural, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MakeTextWritingDirectionRightToLeft", { executeMakeTextWritingDirectionRightToLeft, supportedFromMenuOrKeyBinding, enabledInRichlyEditableText, stateTextWritingDirectionRightToLeft, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveBackward", { executeMoveBackward, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveBackwardAndModifySelection", { executeMoveBackwardAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveDown", { executeMoveDown, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveDownAndModifySelection", { executeMoveDownAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveForward", { executeMoveForward, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveForwardAndModifySelection", { executeMoveForwardAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveLeft", { executeMoveLeft, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveLeftAndModifySelection", { executeMoveLeftAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MovePageDown", { executeMovePageDown, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MovePageDownAndModifySelection", { executeMovePageDownAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelection, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MovePageUp", { executeMovePageUp, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MovePageUpAndModifySelection", { executeMovePageUpAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelection, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveParagraphBackwardAndModifySelection", { executeMoveParagraphBackwardAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveParagraphForwardAndModifySelection", { executeMoveParagraphForwardAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveRight", { executeMoveRight, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveRightAndModifySelection", { executeMoveRightAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveToBeginningOfDocument", { executeMoveToBeginningOfDocument, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveToBeginningOfDocumentAndModifySelection", { executeMoveToBeginningOfDocumentAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveToBeginningOfLine", { executeMoveToBeginningOfLine, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveToBeginningOfLineAndModifySelection", { executeMoveToBeginningOfLineAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveToBeginningOfParagraph", { executeMoveToBeginningOfParagraph, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveToBeginningOfParagraphAndModifySelection", { executeMoveToBeginningOfParagraphAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveToBeginningOfSentence", { executeMoveToBeginningOfSentence, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveToBeginningOfSentenceAndModifySelection", { executeMoveToBeginningOfSentenceAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveToEndOfDocument", { executeMoveToEndOfDocument, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveToEndOfDocumentAndModifySelection", { executeMoveToEndOfDocumentAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveToEndOfLine", { executeMoveToEndOfLine, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveToEndOfLineAndModifySelection", { executeMoveToEndOfLineAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveToEndOfParagraph", { executeMoveToEndOfParagraph, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveToEndOfParagraphAndModifySelection", { executeMoveToEndOfParagraphAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveToEndOfSentence", { executeMoveToEndOfSentence, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveToEndOfSentenceAndModifySelection", { executeMoveToEndOfSentenceAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveToLeftEndOfLine", { executeMoveToLeftEndOfLine, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveToLeftEndOfLineAndModifySelection", { executeMoveToLeftEndOfLineAndModifySelection, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveToRightEndOfLine", { executeMoveToRightEndOfLine, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveToRightEndOfLineAndModifySelection", { executeMoveToRightEndOfLineAndModifySelection, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveUp", { executeMoveUp, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveUpAndModifySelection", { executeMoveUpAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveWordBackward", { executeMoveWordBackward, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveWordBackwardAndModifySelection", { executeMoveWordBackwardAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveWordForward", { executeMoveWordForward, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveWordForwardAndModifySelection", { executeMoveWordForwardAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveWordLeft", { executeMoveWordLeft, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveWordLeftAndModifySelection", { executeMoveWordLeftAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveWordRight", { executeMoveWordRight, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "MoveWordRightAndModifySelection", { executeMoveWordRightAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "Outdent", { executeOutdent, supported, enabledInRichlyEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "OverWrite", { executeToggleOverwrite, supportedFromMenuOrKeyBinding, enabledInRichlyEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "Paste", { executePaste, supportedPaste, enabledPaste, stateNone, valueNull, notTextInsertion, allowExecutionWhenDisabledPaste } },
- { "PasteAndMatchStyle", { executePasteAndMatchStyle, supportedPaste, enabledPaste, stateNone, valueNull, notTextInsertion, allowExecutionWhenDisabledPaste } },
- { "PasteAsPlainText", { executePasteAsPlainText, supportedPaste, enabledPaste, stateNone, valueNull, notTextInsertion, allowExecutionWhenDisabledPaste } },
- { "PasteAsQuotation", { executePasteAsQuotation, supportedPaste, enabledPaste, stateNone, valueNull, notTextInsertion, allowExecutionWhenDisabledPaste } },
- { "Print", { executePrint, supported, enabled, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "Redo", { executeRedo, supported, enabledRedo, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "RemoveFormat", { executeRemoveFormat, supported, enabledRangeInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "ScrollPageBackward", { executeScrollPageBackward, supportedFromMenuOrKeyBinding, enabled, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "ScrollPageForward", { executeScrollPageForward, supportedFromMenuOrKeyBinding, enabled, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "ScrollLineUp", { executeScrollLineUp, supportedFromMenuOrKeyBinding, enabled, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "ScrollLineDown", { executeScrollLineDown, supportedFromMenuOrKeyBinding, enabled, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "ScrollToBeginningOfDocument", { executeScrollToBeginningOfDocument, supportedFromMenuOrKeyBinding, enabled, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "ScrollToEndOfDocument", { executeScrollToEndOfDocument, supportedFromMenuOrKeyBinding, enabled, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "SelectAll", { executeSelectAll, supported, enabled, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "SelectLine", { executeSelectLine, supportedFromMenuOrKeyBinding, enabledVisibleSelection, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "SelectParagraph", { executeSelectParagraph, supportedFromMenuOrKeyBinding, enabledVisibleSelection, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "SelectSentence", { executeSelectSentence, supportedFromMenuOrKeyBinding, enabledVisibleSelection, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "SelectToMark", { executeSelectToMark, supportedFromMenuOrKeyBinding, enabledVisibleSelectionAndMark, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "SelectWord", { executeSelectWord, supportedFromMenuOrKeyBinding, enabledVisibleSelection, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "SetMark", { executeSetMark, supportedFromMenuOrKeyBinding, enabledVisibleSelection, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "Strikethrough", { executeStrikethrough, supported, enabledInRichlyEditableText, stateStrikethrough, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "StyleWithCSS", { executeStyleWithCSS, supported, enabled, stateStyleWithCSS, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "Subscript", { executeSubscript, supported, enabledInRichlyEditableText, stateSubscript, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "Superscript", { executeSuperscript, supported, enabledInRichlyEditableText, stateSuperscript, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "SwapWithMark", { executeSwapWithMark, supportedFromMenuOrKeyBinding, enabledVisibleSelectionAndMark, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "ToggleBold", { executeToggleBold, supportedFromMenuOrKeyBinding, enabledInRichlyEditableText, stateBold, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "ToggleItalic", { executeToggleItalic, supportedFromMenuOrKeyBinding, enabledInRichlyEditableText, stateItalic, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "ToggleUnderline", { executeUnderline, supportedFromMenuOrKeyBinding, enabledInRichlyEditableText, stateUnderline, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "Transpose", { executeTranspose, supported, enableCaretInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "Underline", { executeUnderline, supported, enabledInRichlyEditableText, stateUnderline, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "Undo", { executeUndo, supported, enabledUndo, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "Unlink", { executeUnlink, supported, enabledRangeInRichlyEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "Unscript", { executeUnscript, supportedFromMenuOrKeyBinding, enabledInRichlyEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "Unselect", { executeUnselect, supported, enabledVisibleSelection, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "UseCSS", { executeUseCSS, supported, enabled, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "Yank", { executeYank, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "YankAndSelect", { executeYankAndSelect, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "AlignCenter"_s, { executeJustifyCenter, supportedFromMenuOrKeyBinding, enabledInRichlyEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "AlignJustified"_s, { executeJustifyFull, supportedFromMenuOrKeyBinding, enabledInRichlyEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "AlignLeft"_s, { executeJustifyLeft, supportedFromMenuOrKeyBinding, enabledInRichlyEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "AlignRight"_s, { executeJustifyRight, supportedFromMenuOrKeyBinding, enabledInRichlyEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "BackColor"_s, { executeBackColor, supported, enabledInRichlyEditableText, stateNone, valueBackColor, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "Bold"_s, { executeToggleBold, supported, enabledInRichlyEditableText, stateBold, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "ClearText"_s, { executeClearText, supported, enabledClearText, stateNone, valueNull, notTextInsertion, allowExecutionWhenDisabled } },
+ { "Copy"_s, { executeCopy, supportedCopyCut, enabledCopy, stateNone, valueNull, notTextInsertion, allowExecutionWhenDisabledCopyCut } },
+ { "CreateLink"_s, { executeCreateLink, supported, enabledInRichlyEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "Cut"_s, { executeCut, supportedCopyCut, enabledCut, stateNone, valueNull, notTextInsertion, allowExecutionWhenDisabledCopyCut } },
+ { "DefaultParagraphSeparator"_s, { executeDefaultParagraphSeparator, supported, enabled, stateNone, valueDefaultParagraphSeparator, notTextInsertion, doNotAllowExecutionWhenDisabled} },
+ { "Delete"_s, { executeDelete, supported, enabledDelete, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "DeleteBackward"_s, { executeDeleteBackward, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "DeleteBackwardByDecomposingPreviousCharacter"_s, { executeDeleteBackwardByDecomposingPreviousCharacter, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "DeleteForward"_s, { executeDeleteForward, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "DeleteToBeginningOfLine"_s, { executeDeleteToBeginningOfLine, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "DeleteToBeginningOfParagraph"_s, { executeDeleteToBeginningOfParagraph, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "DeleteToEndOfLine"_s, { executeDeleteToEndOfLine, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "DeleteToEndOfParagraph"_s, { executeDeleteToEndOfParagraph, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "DeleteToMark"_s, { executeDeleteToMark, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "DeleteWordBackward"_s, { executeDeleteWordBackward, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "DeleteWordForward"_s, { executeDeleteWordForward, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "FindString"_s, { executeFindString, supported, enabled, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "FontName"_s, { executeFontName, supported, enabledInEditableText, stateNone, valueFontName, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "FontSize"_s, { executeFontSize, supported, enabledInEditableText, stateNone, valueFontSize, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "FontSizeDelta"_s, { executeFontSizeDelta, supported, enabledInEditableText, stateNone, valueFontSizeDelta, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "ForeColor"_s, { executeForeColor, supported, enabledInRichlyEditableText, stateNone, valueForeColor, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "FormatBlock"_s, { executeFormatBlock, supported, enabledInRichlyEditableText, stateNone, valueFormatBlock, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "ForwardDelete"_s, { executeForwardDelete, supported, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "HiliteColor"_s, { executeBackColor, supported, enabledInRichlyEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "IgnoreSpelling"_s, { executeIgnoreSpelling, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "Indent"_s, { executeIndent, supported, enabledInRichlyEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "InsertBacktab"_s, { executeInsertBacktab, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, isTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "InsertHTML"_s, { executeInsertHTML, supported, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "InsertHorizontalRule"_s, { executeInsertHorizontalRule, supported, enabledInRichlyEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "InsertImage"_s, { executeInsertImage, supported, enabledInRichlyEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "InsertLineBreak"_s, { executeInsertLineBreak, supported, enabledInEditableText, stateNone, valueNull, isTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "InsertNewline"_s, { executeInsertNewline, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, isTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "InsertNewlineInQuotedContent"_s, { executeInsertNewlineInQuotedContent, supported, enabledInRichlyEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "InsertOrderedList"_s, { executeInsertOrderedList, supported, enabledInRichlyEditableText, stateOrderedList, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "InsertNestedOrderedList"_s, { executeInsertNestedOrderedList, supported, enabledInRichlyEditableText, stateOrderedList, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "InsertParagraph"_s, { executeInsertParagraph, supported, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "InsertTab"_s, { executeInsertTab, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, isTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "InsertText"_s, { executeInsertText, supported, enabledInEditableText, stateNone, valueNull, isTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "InsertUnorderedList"_s, { executeInsertUnorderedList, supported, enabledInRichlyEditableText, stateUnorderedList, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "InsertNestedUnorderedList"_s, { executeInsertNestedUnorderedList, supported, enabledInRichlyEditableText, stateUnorderedList, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "Italic"_s, { executeToggleItalic, supported, enabledInRichlyEditableText, stateItalic, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "JustifyCenter"_s, { executeJustifyCenter, supported, enabledInRichlyEditableText, stateJustifyCenter, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "JustifyFull"_s, { executeJustifyFull, supported, enabledInRichlyEditableText, stateJustifyFull, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "JustifyLeft"_s, { executeJustifyLeft, supported, enabledInRichlyEditableText, stateJustifyLeft, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "JustifyNone"_s, { executeJustifyLeft, supported, enabledInRichlyEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "JustifyRight"_s, { executeJustifyRight, supported, enabledInRichlyEditableText, stateJustifyRight, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MakeTextWritingDirectionLeftToRight"_s, { executeMakeTextWritingDirectionLeftToRight, supportedFromMenuOrKeyBinding, enabledInRichlyEditableText, stateTextWritingDirectionLeftToRight, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MakeTextWritingDirectionNatural"_s, { executeMakeTextWritingDirectionNatural, supportedFromMenuOrKeyBinding, enabledInRichlyEditableText, stateTextWritingDirectionNatural, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MakeTextWritingDirectionRightToLeft"_s, { executeMakeTextWritingDirectionRightToLeft, supportedFromMenuOrKeyBinding, enabledInRichlyEditableText, stateTextWritingDirectionRightToLeft, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveBackward"_s, { executeMoveBackward, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveBackwardAndModifySelection"_s, { executeMoveBackwardAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveDown"_s, { executeMoveDown, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveDownAndModifySelection"_s, { executeMoveDownAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveForward"_s, { executeMoveForward, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveForwardAndModifySelection"_s, { executeMoveForwardAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveLeft"_s, { executeMoveLeft, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveLeftAndModifySelection"_s, { executeMoveLeftAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MovePageDown"_s, { executeMovePageDown, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MovePageDownAndModifySelection"_s, { executeMovePageDownAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelection, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MovePageUp"_s, { executeMovePageUp, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MovePageUpAndModifySelection"_s, { executeMovePageUpAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelection, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveParagraphBackwardAndModifySelection"_s, { executeMoveParagraphBackwardAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveParagraphForwardAndModifySelection"_s, { executeMoveParagraphForwardAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveRight"_s, { executeMoveRight, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveRightAndModifySelection"_s, { executeMoveRightAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveToBeginningOfDocument"_s, { executeMoveToBeginningOfDocument, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveToBeginningOfDocumentAndModifySelection"_s, { executeMoveToBeginningOfDocumentAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveToBeginningOfLine"_s, { executeMoveToBeginningOfLine, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveToBeginningOfLineAndModifySelection"_s, { executeMoveToBeginningOfLineAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveToBeginningOfParagraph"_s, { executeMoveToBeginningOfParagraph, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveToBeginningOfParagraphAndModifySelection"_s, { executeMoveToBeginningOfParagraphAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveToBeginningOfSentence"_s, { executeMoveToBeginningOfSentence, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveToBeginningOfSentenceAndModifySelection"_s, { executeMoveToBeginningOfSentenceAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveToEndOfDocument"_s, { executeMoveToEndOfDocument, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveToEndOfDocumentAndModifySelection"_s, { executeMoveToEndOfDocumentAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveToEndOfLine"_s, { executeMoveToEndOfLine, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveToEndOfLineAndModifySelection"_s, { executeMoveToEndOfLineAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveToEndOfParagraph"_s, { executeMoveToEndOfParagraph, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveToEndOfParagraphAndModifySelection"_s, { executeMoveToEndOfParagraphAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveToEndOfSentence"_s, { executeMoveToEndOfSentence, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveToEndOfSentenceAndModifySelection"_s, { executeMoveToEndOfSentenceAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveToLeftEndOfLine"_s, { executeMoveToLeftEndOfLine, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveToLeftEndOfLineAndModifySelection"_s, { executeMoveToLeftEndOfLineAndModifySelection, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveToRightEndOfLine"_s, { executeMoveToRightEndOfLine, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveToRightEndOfLineAndModifySelection"_s, { executeMoveToRightEndOfLineAndModifySelection, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveUp"_s, { executeMoveUp, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveUpAndModifySelection"_s, { executeMoveUpAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveWordBackward"_s, { executeMoveWordBackward, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveWordBackwardAndModifySelection"_s, { executeMoveWordBackwardAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveWordForward"_s, { executeMoveWordForward, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveWordForwardAndModifySelection"_s, { executeMoveWordForwardAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveWordLeft"_s, { executeMoveWordLeft, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveWordLeftAndModifySelection"_s, { executeMoveWordLeftAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveWordRight"_s, { executeMoveWordRight, supportedFromMenuOrKeyBinding, enabledInEditableTextOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "MoveWordRightAndModifySelection"_s, { executeMoveWordRightAndModifySelection, supportedFromMenuOrKeyBinding, enabledVisibleSelectionOrCaretBrowsing, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "Outdent"_s, { executeOutdent, supported, enabledInRichlyEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "OverWrite"_s, { executeToggleOverwrite, supportedFromMenuOrKeyBinding, enabledInRichlyEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "Paste"_s, { executePaste, supportedPaste, enabledPaste, stateNone, valueNull, notTextInsertion, allowExecutionWhenDisabledPaste } },
+ { "PasteAndMatchStyle"_s, { executePasteAndMatchStyle, supportedPaste, enabledPaste, stateNone, valueNull, notTextInsertion, allowExecutionWhenDisabledPaste } },
+ { "PasteAsPlainText"_s, { executePasteAsPlainText, supportedPaste, enabledPaste, stateNone, valueNull, notTextInsertion, allowExecutionWhenDisabledPaste } },
+ { "PasteAsQuotation"_s, { executePasteAsQuotation, supportedPaste, enabledPaste, stateNone, valueNull, notTextInsertion, allowExecutionWhenDisabledPaste } },
+ { "Print"_s, { executePrint, supported, enabled, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "Redo"_s, { executeRedo, supported, enabledRedo, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "RemoveFormat"_s, { executeRemoveFormat, supported, enabledRangeInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "ScrollPageBackward"_s, { executeScrollPageBackward, supportedFromMenuOrKeyBinding, enabled, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "ScrollPageForward"_s, { executeScrollPageForward, supportedFromMenuOrKeyBinding, enabled, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "ScrollLineUp"_s, { executeScrollLineUp, supportedFromMenuOrKeyBinding, enabled, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "ScrollLineDown"_s, { executeScrollLineDown, supportedFromMenuOrKeyBinding, enabled, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "ScrollToBeginningOfDocument"_s, { executeScrollToBeginningOfDocument, supportedFromMenuOrKeyBinding, enabled, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "ScrollToEndOfDocument"_s, { executeScrollToEndOfDocument, supportedFromMenuOrKeyBinding, enabled, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "SelectAll"_s, { executeSelectAll, supported, enabled, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "SelectLine"_s, { executeSelectLine, supportedFromMenuOrKeyBinding, enabledVisibleSelection, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "SelectParagraph"_s, { executeSelectParagraph, supportedFromMenuOrKeyBinding, enabledVisibleSelection, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "SelectSentence"_s, { executeSelectSentence, supportedFromMenuOrKeyBinding, enabledVisibleSelection, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "SelectToMark"_s, { executeSelectToMark, supportedFromMenuOrKeyBinding, enabledVisibleSelectionAndMark, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "SelectWord"_s, { executeSelectWord, supportedFromMenuOrKeyBinding, enabledVisibleSelection, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "SetMark"_s, { executeSetMark, supportedFromMenuOrKeyBinding, enabledVisibleSelection, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "Strikethrough"_s, { executeStrikethrough, supported, enabledInRichlyEditableText, stateStrikethrough, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "StyleWithCSS"_s, { executeStyleWithCSS, supported, enabled, stateStyleWithCSS, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "Subscript"_s, { executeSubscript, supported, enabledInRichlyEditableText, stateSubscript, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "Superscript"_s, { executeSuperscript, supported, enabledInRichlyEditableText, stateSuperscript, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "SwapWithMark"_s, { executeSwapWithMark, supportedFromMenuOrKeyBinding, enabledVisibleSelectionAndMark, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "ToggleBold"_s, { executeToggleBold, supportedFromMenuOrKeyBinding, enabledInRichlyEditableText, stateBold, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "ToggleItalic"_s, { executeToggleItalic, supportedFromMenuOrKeyBinding, enabledInRichlyEditableText, stateItalic, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "ToggleUnderline"_s, { executeUnderline, supportedFromMenuOrKeyBinding, enabledInRichlyEditableText, stateUnderline, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "Transpose"_s, { executeTranspose, supported, enableCaretInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "Underline"_s, { executeUnderline, supported, enabledInRichlyEditableText, stateUnderline, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "Undo"_s, { executeUndo, supported, enabledUndo, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "Unlink"_s, { executeUnlink, supported, enabledRangeInRichlyEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "Unscript"_s, { executeUnscript, supportedFromMenuOrKeyBinding, enabledInRichlyEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "Unselect"_s, { executeUnselect, supported, enabledVisibleSelection, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "UseCSS"_s, { executeUseCSS, supported, enabled, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "Yank"_s, { executeYank, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "YankAndSelect"_s, { executeYankAndSelect, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
#if PLATFORM(GTK)
- { "PasteGlobalSelection", { executePasteGlobalSelection, supportedFromMenuOrKeyBinding, enabledPaste, stateNone, valueNull, notTextInsertion, allowExecutionWhenDisabled } },
+ { "PasteGlobalSelection"_s, { executePasteGlobalSelection, supportedFromMenuOrKeyBinding, enabledPaste, stateNone, valueNull, notTextInsertion, allowExecutionWhenDisabled } },
#endif
#if PLATFORM(COCOA)
- { "TakeFindStringFromSelection", { executeTakeFindStringFromSelection, supportedFromMenuOrKeyBinding, enabledTakeFindStringFromSelection, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
+ { "TakeFindStringFromSelection"_s, { executeTakeFindStringFromSelection, supportedFromMenuOrKeyBinding, enabledTakeFindStringFromSelection, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
#endif
};
diff --git a/Source/WebCore/html/Autofill.cpp b/Source/WebCore/html/Autofill.cpp
index 8f712f7..7d4927b 100644
--- a/Source/WebCore/html/Autofill.cpp
+++ b/Source/WebCore/html/Autofill.cpp
@@ -53,66 +53,66 @@
{
static const auto map = makeNeverDestroyed([] {
struct MapEntry {
- const char* name;
+ ASCIILiteral name;
AutofillInfo value;
};
static const MapEntry entries[] = {
- { "off", { AutofillFieldName::None, AutofillCategory::Off } },
- { "on", { AutofillFieldName::None, AutofillCategory::Automatic } },
- { "name", { AutofillFieldName::Name, AutofillCategory::Normal } },
- { "honorific-prefix", { AutofillFieldName::HonorificPrefix, AutofillCategory::Normal } },
- { "given-name", { AutofillFieldName::GivenName, AutofillCategory::Normal } },
- { "additional-name", { AutofillFieldName::AdditionalName, AutofillCategory::Normal } },
- { "family-name", { AutofillFieldName::FamilyName, AutofillCategory::Normal } },
- { "honorific-suffix", { AutofillFieldName::HonorificSuffix, AutofillCategory::Normal } },
- { "nickname", { AutofillFieldName::Nickname, AutofillCategory::Normal } },
- { "username", { AutofillFieldName::Username, AutofillCategory::Normal } },
- { "new-password", { AutofillFieldName::NewPassword, AutofillCategory::Normal } },
- { "current-password", { AutofillFieldName::CurrentPassword, AutofillCategory::Normal } },
- { "organization-title", { AutofillFieldName::OrganizationTitle, AutofillCategory::Normal } },
- { "organization", { AutofillFieldName::Organization, AutofillCategory::Normal } },
- { "street-address", { AutofillFieldName::StreetAddress, AutofillCategory::Normal } },
- { "address-line1", { AutofillFieldName::AddressLine1, AutofillCategory::Normal } },
- { "address-line2", { AutofillFieldName::AddressLine2, AutofillCategory::Normal } },
- { "address-line3", { AutofillFieldName::AddressLine3, AutofillCategory::Normal } },
- { "address-level4", { AutofillFieldName::AddressLevel4, AutofillCategory::Normal } },
- { "address-level3", { AutofillFieldName::AddressLevel3, AutofillCategory::Normal } },
- { "address-level2", { AutofillFieldName::AddressLevel2, AutofillCategory::Normal } },
- { "address-level1", { AutofillFieldName::AddressLevel1, AutofillCategory::Normal } },
- { "country", { AutofillFieldName::Country, AutofillCategory::Normal } },
- { "country-name", { AutofillFieldName::CountryName, AutofillCategory::Normal } },
- { "postal-code", { AutofillFieldName::PostalCode, AutofillCategory::Normal } },
- { "cc-name", { AutofillFieldName::CcName, AutofillCategory::Normal } },
- { "cc-given-name", { AutofillFieldName::CcGivenName, AutofillCategory::Normal } },
- { "cc-additional-name", { AutofillFieldName::CcAdditionalName, AutofillCategory::Normal } },
- { "cc-family-name", { AutofillFieldName::CcFamilyName, AutofillCategory::Normal } },
- { "cc-number", { AutofillFieldName::CcNumber, AutofillCategory::Normal } },
- { "cc-exp", { AutofillFieldName::CcExp, AutofillCategory::Normal } },
- { "cc-exp-month", { AutofillFieldName::CcExpMonth, AutofillCategory::Normal } },
- { "cc-exp-year", { AutofillFieldName::CcExpYear, AutofillCategory::Normal } },
- { "cc-csc", { AutofillFieldName::CcCsc, AutofillCategory::Normal } },
- { "cc-type", { AutofillFieldName::CcType, AutofillCategory::Normal } },
- { "transaction-currency", { AutofillFieldName::TransactionCurrency, AutofillCategory::Normal } },
- { "transaction-amount", { AutofillFieldName::TransactionAmount, AutofillCategory::Normal } },
- { "language", { AutofillFieldName::Language, AutofillCategory::Normal } },
- { "bday", { AutofillFieldName::Bday, AutofillCategory::Normal } },
- { "bday-day", { AutofillFieldName::BdayDay, AutofillCategory::Normal } },
- { "bday-month", { AutofillFieldName::BdayMonth, AutofillCategory::Normal } },
- { "bday-year", { AutofillFieldName::BdayYear, AutofillCategory::Normal } },
- { "sex", { AutofillFieldName::Sex, AutofillCategory::Normal } },
- { "url", { AutofillFieldName::URL, AutofillCategory::Normal } },
- { "photo", { AutofillFieldName::Photo, AutofillCategory::Normal } },
+ { "off"_s, { AutofillFieldName::None, AutofillCategory::Off } },
+ { "on"_s, { AutofillFieldName::None, AutofillCategory::Automatic } },
+ { "name"_s, { AutofillFieldName::Name, AutofillCategory::Normal } },
+ { "honorific-prefix"_s, { AutofillFieldName::HonorificPrefix, AutofillCategory::Normal } },
+ { "given-name"_s, { AutofillFieldName::GivenName, AutofillCategory::Normal } },
+ { "additional-name"_s, { AutofillFieldName::AdditionalName, AutofillCategory::Normal } },
+ { "family-name"_s, { AutofillFieldName::FamilyName, AutofillCategory::Normal } },
+ { "honorific-suffix"_s, { AutofillFieldName::HonorificSuffix, AutofillCategory::Normal } },
+ { "nickname"_s, { AutofillFieldName::Nickname, AutofillCategory::Normal } },
+ { "username"_s, { AutofillFieldName::Username, AutofillCategory::Normal } },
+ { "new-password"_s, { AutofillFieldName::NewPassword, AutofillCategory::Normal } },
+ { "current-password"_s, { AutofillFieldName::CurrentPassword, AutofillCategory::Normal } },
+ { "organization-title"_s, { AutofillFieldName::OrganizationTitle, AutofillCategory::Normal } },
+ { "organization"_s, { AutofillFieldName::Organization, AutofillCategory::Normal } },
+ { "street-address"_s, { AutofillFieldName::StreetAddress, AutofillCategory::Normal } },
+ { "address-line1"_s, { AutofillFieldName::AddressLine1, AutofillCategory::Normal } },
+ { "address-line2"_s, { AutofillFieldName::AddressLine2, AutofillCategory::Normal } },
+ { "address-line3"_s, { AutofillFieldName::AddressLine3, AutofillCategory::Normal } },
+ { "address-level4"_s, { AutofillFieldName::AddressLevel4, AutofillCategory::Normal } },
+ { "address-level3"_s, { AutofillFieldName::AddressLevel3, AutofillCategory::Normal } },
+ { "address-level2"_s, { AutofillFieldName::AddressLevel2, AutofillCategory::Normal } },
+ { "address-level1"_s, { AutofillFieldName::AddressLevel1, AutofillCategory::Normal } },
+ { "country"_s, { AutofillFieldName::Country, AutofillCategory::Normal } },
+ { "country-name"_s, { AutofillFieldName::CountryName, AutofillCategory::Normal } },
+ { "postal-code"_s, { AutofillFieldName::PostalCode, AutofillCategory::Normal } },
+ { "cc-name"_s, { AutofillFieldName::CcName, AutofillCategory::Normal } },
+ { "cc-given-name"_s, { AutofillFieldName::CcGivenName, AutofillCategory::Normal } },
+ { "cc-additional-name"_s, { AutofillFieldName::CcAdditionalName, AutofillCategory::Normal } },
+ { "cc-family-name"_s, { AutofillFieldName::CcFamilyName, AutofillCategory::Normal } },
+ { "cc-number"_s, { AutofillFieldName::CcNumber, AutofillCategory::Normal } },
+ { "cc-exp"_s, { AutofillFieldName::CcExp, AutofillCategory::Normal } },
+ { "cc-exp-month"_s, { AutofillFieldName::CcExpMonth, AutofillCategory::Normal } },
+ { "cc-exp-year"_s, { AutofillFieldName::CcExpYear, AutofillCategory::Normal } },
+ { "cc-csc"_s, { AutofillFieldName::CcCsc, AutofillCategory::Normal } },
+ { "cc-type"_s, { AutofillFieldName::CcType, AutofillCategory::Normal } },
+ { "transaction-currency"_s, { AutofillFieldName::TransactionCurrency, AutofillCategory::Normal } },
+ { "transaction-amount"_s, { AutofillFieldName::TransactionAmount, AutofillCategory::Normal } },
+ { "language"_s, { AutofillFieldName::Language, AutofillCategory::Normal } },
+ { "bday"_s, { AutofillFieldName::Bday, AutofillCategory::Normal } },
+ { "bday-day"_s, { AutofillFieldName::BdayDay, AutofillCategory::Normal } },
+ { "bday-month"_s, { AutofillFieldName::BdayMonth, AutofillCategory::Normal } },
+ { "bday-year"_s, { AutofillFieldName::BdayYear, AutofillCategory::Normal } },
+ { "sex"_s, { AutofillFieldName::Sex, AutofillCategory::Normal } },
+ { "url"_s, { AutofillFieldName::URL, AutofillCategory::Normal } },
+ { "photo"_s, { AutofillFieldName::Photo, AutofillCategory::Normal } },
- { "tel", { AutofillFieldName::Tel, AutofillCategory::Contact } },
- { "tel-country-code", { AutofillFieldName::TelCountryCode, AutofillCategory::Contact } },
- { "tel-national", { AutofillFieldName::TelNational, AutofillCategory::Contact } },
- { "tel-area-code", { AutofillFieldName::TelAreaCode, AutofillCategory::Contact } },
- { "tel-local", { AutofillFieldName::TelLocal, AutofillCategory::Contact } },
- { "tel-local-prefix", { AutofillFieldName::TelLocalPrefix, AutofillCategory::Contact } },
- { "tel-local-suffix", { AutofillFieldName::TelLocalSuffix, AutofillCategory::Contact } },
- { "tel-extension", { AutofillFieldName::TelExtension, AutofillCategory::Contact } },
- { "email", { AutofillFieldName::Email, AutofillCategory::Contact } },
- { "impp", { AutofillFieldName::Impp, AutofillCategory::Contact } },
+ { "tel"_s, { AutofillFieldName::Tel, AutofillCategory::Contact } },
+ { "tel-country-code"_s, { AutofillFieldName::TelCountryCode, AutofillCategory::Contact } },
+ { "tel-national"_s, { AutofillFieldName::TelNational, AutofillCategory::Contact } },
+ { "tel-area-code"_s, { AutofillFieldName::TelAreaCode, AutofillCategory::Contact } },
+ { "tel-local"_s, { AutofillFieldName::TelLocal, AutofillCategory::Contact } },
+ { "tel-local-prefix"_s, { AutofillFieldName::TelLocalPrefix, AutofillCategory::Contact } },
+ { "tel-local-suffix"_s, { AutofillFieldName::TelLocalSuffix, AutofillCategory::Contact } },
+ { "tel-extension"_s, { AutofillFieldName::TelExtension, AutofillCategory::Contact } },
+ { "email"_s, { AutofillFieldName::Email, AutofillCategory::Contact } },
+ { "impp"_s, { AutofillFieldName::Impp, AutofillCategory::Contact } },
};
MemoryCompactLookupOnlyRobinHoodHashMap<AtomString, AutofillInfo> map;
for (auto& entry : entries)
diff --git a/Source/WebCore/platform/LegacySchemeRegistry.cpp b/Source/WebCore/platform/LegacySchemeRegistry.cpp
index b73d06a..c3f7560 100644
--- a/Source/WebCore/platform/LegacySchemeRegistry.cpp
+++ b/Source/WebCore/platform/LegacySchemeRegistry.cpp
@@ -113,9 +113,9 @@
{
ASSERT(schemeRegistryLock.isHeld());
static const auto schemes = makeNeverDestroyed(URLSchemesMap {
- "file",
+ "file"_s,
#if PLATFORM(COCOA)
- "applewebdata",
+ "applewebdata"_s,
#endif
});
return schemes;
@@ -139,12 +139,12 @@
{
ASSERT(schemeRegistryLock.isHeld());
static const auto schemes = makeNeverDestroyed(Vector<String> {
- "https",
- "about",
- "data",
- "wss",
+ "https"_s,
+ "about"_s,
+ "data"_s,
+ "wss"_s,
#if PLATFORM(GTK) || PLATFORM(WPE)
- "resource",
+ "resource"_s,
#endif
});
return schemes;
@@ -161,11 +161,11 @@
{
ASSERT(schemeRegistryLock.isHeld());
static const auto schemes = makeNeverDestroyed(Vector<String> {
- "about",
- "javascript",
+ "about"_s,
+ "javascript"_s,
// This is an intentional difference from the behavior the HTML specification calls for.
// See https://bugs.webkit.org/show_bug.cgi?id=11885
- "data",
+ "data"_s,
});
return schemes;
}
@@ -180,7 +180,7 @@
const Vector<String>& builtinEmptyDocumentSchemes()
{
ASSERT(isMainThread());
- static const auto schemes = makeNeverDestroyed(Vector<String> { "about" });
+ static const auto schemes = makeNeverDestroyed(Vector<String> { "about"_s });
return schemes;
}
@@ -201,7 +201,7 @@
const Vector<String>& builtinCanDisplayOnlyIfCanRequestSchemes()
{
ASSERT(schemeRegistryLock.isHeld());
- static const auto schemes = makeNeverDestroyed(Vector<String> { "blob" });
+ static const auto schemes = makeNeverDestroyed(Vector<String> { "blob"_s });
return schemes;
}
@@ -267,7 +267,7 @@
const Vector<String>& builtinCORSEnabledSchemes()
{
ASSERT(isMainThread());
- static const auto schemes = makeNeverDestroyed(Vector<String> { "http", "https" });
+ static const auto schemes = makeNeverDestroyed(Vector<String> { "http"_s, "https"_s });
return schemes;
}
diff --git a/Source/WebCore/platform/MIMETypeRegistry.cpp b/Source/WebCore/platform/MIMETypeRegistry.cpp
index 68f1d29..2b0d8ab 100644
--- a/Source/WebCore/platform/MIMETypeRegistry.cpp
+++ b/Source/WebCore/platform/MIMETypeRegistry.cpp
@@ -685,12 +685,12 @@
{
static NeverDestroyed<HashSet<String, ASCIICaseInsensitiveHash>> systemPreviewMIMETypes = std::initializer_list<String> {
// The official type: https://www.iana.org/assignments/media-types/model/vnd.usdz+zip
- "model/vnd.usdz+zip",
+ "model/vnd.usdz+zip"_s,
// Unofficial, but supported because we documented them.
- "model/usd",
- "model/vnd.pixar.usd",
+ "model/usd"_s,
+ "model/vnd.pixar.usd"_s,
// Reality files.
- "model/vnd.reality"
+ "model/vnd.reality"_s,
};
return systemPreviewMIMETypes;
}
diff --git a/Source/WebCore/platform/graphics/FontCascade.cpp b/Source/WebCore/platform/graphics/FontCascade.cpp
index a6a8a06..2cc3b3b 100644
--- a/Source/WebCore/platform/graphics/FontCascade.cpp
+++ b/Source/WebCore/platform/graphics/FontCascade.cpp
@@ -384,40 +384,40 @@
#endif
static const auto map = makeNeverDestroyed(MemoryCompactLookupOnlyRobinHoodHashSet<AtomString> {
- "American Typewriter",
- "Arial Hebrew",
- "Chalkboard",
- "Cochin",
- "Corsiva Hebrew",
- "Courier",
- "Euphemia UCAS",
- "Geneva",
- "Gill Sans",
- "Hei",
- "Helvetica",
- "Hoefler Text",
- "InaiMathi",
- "Kai",
- "Lucida Grande",
- "Marker Felt",
- "Monaco",
- "Mshtakan",
- "New Peninim MT",
- "Osaka",
- "Raanana",
- "STHeiti",
- "Symbol",
- "Times",
- "Apple Braille",
- "Apple LiGothic",
- "Apple LiSung",
- "Apple Symbols",
- "AppleGothic",
- "AppleMyungjo",
- "#GungSeo",
- "#HeadLineA",
- "#PCMyungjo",
- "#PilGi",
+ "American Typewriter"_s,
+ "Arial Hebrew"_s,
+ "Chalkboard"_s,
+ "Cochin"_s,
+ "Corsiva Hebrew"_s,
+ "Courier"_s,
+ "Euphemia UCAS"_s,
+ "Geneva"_s,
+ "Gill Sans"_s,
+ "Hei"_s,
+ "Helvetica"_s,
+ "Hoefler Text"_s,
+ "InaiMathi"_s,
+ "Kai"_s,
+ "Lucida Grande"_s,
+ "Marker Felt"_s,
+ "Monaco"_s,
+ "Mshtakan"_s,
+ "New Peninim MT"_s,
+ "Osaka"_s,
+ "Raanana"_s,
+ "STHeiti"_s,
+ "Symbol"_s,
+ "Times"_s,
+ "Apple Braille"_s,
+ "Apple LiGothic"_s,
+ "Apple LiSung"_s,
+ "Apple Symbols"_s,
+ "AppleGothic"_s,
+ "AppleMyungjo"_s,
+ "#GungSeo"_s,
+ "#HeadLineA"_s,
+ "#PCMyungjo"_s,
+ "#PilGi"_s,
});
return !map.get().contains(family);
}
diff --git a/Source/WebCore/platform/graphics/HEVCUtilities.cpp b/Source/WebCore/platform/graphics/HEVCUtilities.cpp
index 3995249..3382b31 100644
--- a/Source/WebCore/platform/graphics/HEVCUtilities.cpp
+++ b/Source/WebCore/platform/graphics/HEVCUtilities.cpp
@@ -26,9 +26,9 @@
#include "config.h"
#include "HEVCUtilities.h"
-#include <wtf/HashMap.h>
-#include <wtf/HashSet.h>
#include <wtf/NeverDestroyed.h>
+#include <wtf/RobinHoodHashMap.h>
+#include <wtf/RobinHoodHashSet.h>
#include <wtf/text/StringHash.h>
#include <wtf/text/StringToIntegerConversion.h>
@@ -116,12 +116,12 @@
static String codecStringForDoViCodecType(const String& codec)
{
- using MapType = HashMap<String, String>;
+ using MapType = MemoryCompactLookupOnlyRobinHoodHashMap<String, String>;
static NeverDestroyed<MapType> types = std::initializer_list<MapType::KeyValuePairType>({
- { "dvhe", "hev1" },
- { "dvh1", "hvc1" },
- { "dvav", "avc3" },
- { "dva1", "avc1" }
+ { "dvhe"_s, "hev1"_s },
+ { "dvh1"_s, "hvc1"_s },
+ { "dvav"_s, "avc3"_s },
+ { "dva1"_s, "avc1"_s }
});
auto findResults = types.get().find(codec);
@@ -133,13 +133,13 @@
static Optional<unsigned short> profileIDForAlphabeticDoViProfile(const String& profile)
{
// See Table 7 of "Dolby Vision Profiles and Levels Version 1.3.2"
- using MapType = HashMap<String, unsigned short>;
+ using MapType = MemoryCompactLookupOnlyRobinHoodHashMap<String, unsigned short>;
static NeverDestroyed<MapType> map = std::initializer_list<MapType::KeyValuePairType>({
- { "dvhe.dtr", 4 },
- { "dvhe.stn", 5 },
- { "dvhe.dtb", 7 },
- { "dvhe.st", 8 },
- { "dvav.se", 9 }
+ { "dvhe.dtr"_s, 4 },
+ { "dvhe.stn"_s, 5 },
+ { "dvhe.dtb"_s, 7 },
+ { "dvhe.st"_s, 8 },
+ { "dvav.se"_s, 9 }
});
auto findResults = map.get().find(profile);
diff --git a/Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp b/Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp
index b884509..ef5300b 100644
--- a/Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp
+++ b/Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp
@@ -1065,37 +1065,37 @@
const HashSet<String, ASCIICaseInsensitiveHash>& MediaPlayerPrivateAVFoundation::staticMIMETypeList()
{
static const auto cache = makeNeverDestroyed(HashSet<String, ASCIICaseInsensitiveHash> {
- "application/vnd.apple.mpegurl",
- "application/x-mpegurl",
- "audio/3gpp",
- "audio/aac",
- "audio/aacp",
- "audio/aiff",
- "audio/basic",
- "audio/mp3",
- "audio/mp4",
- "audio/mpeg",
- "audio/mpeg3",
- "audio/mpegurl",
- "audio/mpg",
- "audio/vnd.wave",
- "audio/wav",
- "audio/wave",
- "audio/x-aac",
- "audio/x-aiff",
- "audio/x-m4a",
- "audio/x-mpegurl",
- "audio/x-wav",
- "video/3gpp",
- "video/3gpp2",
- "video/mp4",
- "video/mpeg",
- "video/mpeg2",
- "video/mpg",
- "video/quicktime",
- "video/x-m4v",
- "video/x-mpeg",
- "video/x-mpg",
+ "application/vnd.apple.mpegurl"_s,
+ "application/x-mpegurl"_s,
+ "audio/3gpp"_s,
+ "audio/aac"_s,
+ "audio/aacp"_s,
+ "audio/aiff"_s,
+ "audio/basic"_s,
+ "audio/mp3"_s,
+ "audio/mp4"_s,
+ "audio/mpeg"_s,
+ "audio/mpeg3"_s,
+ "audio/mpegurl"_s,
+ "audio/mpg"_s,
+ "audio/vnd.wave"_s,
+ "audio/wav"_s,
+ "audio/wave"_s,
+ "audio/x-aac"_s,
+ "audio/x-aiff"_s,
+ "audio/x-m4a"_s,
+ "audio/x-mpegurl"_s,
+ "audio/x-wav"_s,
+ "video/3gpp"_s,
+ "video/3gpp2"_s,
+ "video/mp4"_s,
+ "video/mpeg"_s,
+ "video/mpeg2"_s,
+ "video/mpg"_s,
+ "video/quicktime"_s,
+ "video/x-m4v"_s,
+ "video/x-mpeg"_s,
+ "video/x-mpg"_s,
});
return cache;
}
diff --git a/Source/WebCore/platform/graphics/avfoundation/objc/AVAssetMIMETypeCache.mm b/Source/WebCore/platform/graphics/avfoundation/objc/AVAssetMIMETypeCache.mm
index 6ee5a98..22237ee 100644
--- a/Source/WebCore/platform/graphics/avfoundation/objc/AVAssetMIMETypeCache.mm
+++ b/Source/WebCore/platform/graphics/avfoundation/objc/AVAssetMIMETypeCache.mm
@@ -95,37 +95,37 @@
const HashSet<String, ASCIICaseInsensitiveHash>& AVAssetMIMETypeCache::staticContainerTypeList()
{
static const auto cache = makeNeverDestroyed(HashSet<String, ASCIICaseInsensitiveHash> {
- "application/vnd.apple.mpegurl",
- "application/x-mpegurl",
- "audio/3gpp",
- "audio/aac",
- "audio/aacp",
- "audio/aiff",
- "audio/basic",
- "audio/mp3",
- "audio/mp4",
- "audio/mpeg",
- "audio/mpeg3",
- "audio/mpegurl",
- "audio/mpg",
- "audio/vnd.wave",
- "audio/wav",
- "audio/wave",
- "audio/x-aac",
- "audio/x-aiff",
- "audio/x-m4a",
- "audio/x-mpegurl",
- "audio/x-wav",
- "video/3gpp",
- "video/3gpp2",
- "video/mp4",
- "video/mpeg",
- "video/mpeg2",
- "video/mpg",
- "video/quicktime",
- "video/x-m4v",
- "video/x-mpeg",
- "video/x-mpg",
+ "application/vnd.apple.mpegurl"_s,
+ "application/x-mpegurl"_s,
+ "audio/3gpp"_s,
+ "audio/aac"_s,
+ "audio/aacp"_s,
+ "audio/aiff"_s,
+ "audio/basic"_s,
+ "audio/mp3"_s,
+ "audio/mp4"_s,
+ "audio/mpeg"_s,
+ "audio/mpeg3"_s,
+ "audio/mpegurl"_s,
+ "audio/mpg"_s,
+ "audio/vnd.wave"_s,
+ "audio/wav"_s,
+ "audio/wave"_s,
+ "audio/x-aac"_s,
+ "audio/x-aiff"_s,
+ "audio/x-m4a"_s,
+ "audio/x-mpegurl"_s,
+ "audio/x-wav"_s,
+ "video/3gpp"_s,
+ "video/3gpp2"_s,
+ "video/mp4"_s,
+ "video/mpeg"_s,
+ "video/mpeg2"_s,
+ "video/mpg"_s,
+ "video/quicktime"_s,
+ "video/x-m4v"_s,
+ "video/x-mpeg"_s,
+ "video/x-mpg"_s,
});
return cache;
}
diff --git a/Source/WebCore/platform/graphics/cg/ImageSourceCGWin.cpp b/Source/WebCore/platform/graphics/cg/ImageSourceCGWin.cpp
index 5fe8252..2fc1879 100644
--- a/Source/WebCore/platform/graphics/cg/ImageSourceCGWin.cpp
+++ b/Source/WebCore/platform/graphics/cg/ImageSourceCGWin.cpp
@@ -52,31 +52,31 @@
return String();
static const auto map = makeNeverDestroyed(HashMap<String, String, ASCIICaseInsensitiveHash> {
- { "public.html", "html" },
- { "public.jpeg", "jpeg" },
- { "public.jpeg-2000", "jp2" },
- { "public.plain-text", "txt" },
- { "public.png", "png" },
- { "public.tiff", "tiff" },
- { "public.xbitmap-image", "xbm" },
- { "public.xml", "xml" },
- { "com.adobe.illustrator.ai-image", "ai" },
- { "com.adobe.pdf", "pdf" },
- { "com.adobe.photoshop-image", "psd" },
- { "com.adobe.postscript", "ps" },
- { "com.apple.icns", "icns" },
- { "com.apple.macpaint-image", "pntg" },
- { "com.apple.pict", "pict" },
- { "com.apple.quicktime-image", "qtif" },
- { "com.apple.webarchive", "webarchive" },
- { "com.compuserve.gif", "gif" },
- { "com.ilm.openexr-image", "exr" },
- { "com.kodak.flashpix-image", "fpx" },
- { "com.microsoft.bmp", "bmp" },
- { "com.microsoft.ico", "ico" },
- { "com.netscape.javascript-source", "js" },
- { "com.sgi.sgi-image", "sgi" },
- { "com.truevision.tga-image", "tga" },
+ { "public.html"_s, "html"_s },
+ { "public.jpeg"_s, "jpeg"_s },
+ { "public.jpeg-2000"_s, "jp2"_s },
+ { "public.plain-text"_s, "txt"_s },
+ { "public.png"_s, "png"_s },
+ { "public.tiff"_s, "tiff"_s },
+ { "public.xbitmap-image"_s, "xbm"_s },
+ { "public.xml"_s, "xml"_s },
+ { "com.adobe.illustrator.ai-image"_s, "ai"_s },
+ { "com.adobe.pdf"_s, "pdf"_s },
+ { "com.adobe.photoshop-image"_s, "psd"_s },
+ { "com.adobe.postscript"_s, "ps"_s },
+ { "com.apple.icns"_s, "icns"_s },
+ { "com.apple.macpaint-image"_s, "pntg"_s },
+ { "com.apple.pict"_s, "pict"_s },
+ { "com.apple.quicktime-image"_s, "qtif"_s },
+ { "com.apple.webarchive"_s, "webarchive"_s },
+ { "com.compuserve.gif"_s, "gif"_s },
+ { "com.ilm.openexr-image"_s, "exr"_s },
+ { "com.kodak.flashpix-image"_s, "fpx"_s },
+ { "com.microsoft.bmp"_s, "bmp"_s },
+ { "com.microsoft.ico"_s, "ico"_s },
+ { "com.netscape.javascript-source"_s, "js"_s },
+ { "com.sgi.sgi-image"_s, "sgi"_s },
+ { "com.truevision.tga-image"_s, "tga"_s },
});
return map.get().get(type);
}
diff --git a/Source/WebCore/svg/SVGTests.cpp b/Source/WebCore/svg/SVGTests.cpp
index c582310..b6b0992 100644
--- a/Source/WebCore/svg/SVGTests.cpp
+++ b/Source/WebCore/svg/SVGTests.cpp
@@ -40,65 +40,69 @@
static const HashSet<String, ASCIICaseInsensitiveHash>& supportedSVGFeatures()
{
+#define PREFIX_W3C "org.w3c."
+#define PREFIX_SVG11 "http://www.w3.org/tr/svg11/feature#"
static NeverDestroyed<HashSet<String, ASCIICaseInsensitiveHash>> features = [] {
- static const char* const features10[] = {
- "dom",
- "dom.svg",
- "dom.svg.static",
- "svg",
- "svg.static",
+ static const ASCIILiteral features10[] = {
+ PREFIX_W3C "dom"_s,
+ PREFIX_W3C "dom.svg"_s,
+ PREFIX_W3C "dom.svg.static"_s,
+ PREFIX_W3C "svg"_s,
+ PREFIX_W3C "svg.static"_s,
};
- static const char* const features11[] = {
- "animation",
- "basegraphicsattribute",
- "basicclip",
- "basicfilter",
- "basicpaintattribute",
- "basicstructure",
- "basictext",
- "clip",
- "conditionalprocessing",
- "containerattribute",
- "coreattribute",
- "cursor",
- "documenteventsattribute",
- "extensibility",
- "externalresourcesrequired",
- "filter",
- "gradient",
- "graphicaleventsattribute",
- "graphicsattribute",
- "hyperlinking",
- "image",
- "marker",
- "mask",
- "opacityattribute",
- "paintattribute",
- "pattern",
- "script",
- "shape",
- "structure",
- "style",
- "svg-animation",
- "svgdom-animation",
- "text",
- "view",
- "viewportattribute",
- "xlinkattribute",
- "basicfont",
- "font",
- "svg",
- "svg-static",
- "svgdom",
- "svgdom-static",
+ static const ASCIILiteral features11[] = {
+ PREFIX_SVG11 "animation"_s,
+ PREFIX_SVG11 "basegraphicsattribute"_s,
+ PREFIX_SVG11 "basicclip"_s,
+ PREFIX_SVG11 "basicfilter"_s,
+ PREFIX_SVG11 "basicpaintattribute"_s,
+ PREFIX_SVG11 "basicstructure"_s,
+ PREFIX_SVG11 "basictext"_s,
+ PREFIX_SVG11 "clip"_s,
+ PREFIX_SVG11 "conditionalprocessing"_s,
+ PREFIX_SVG11 "containerattribute"_s,
+ PREFIX_SVG11 "coreattribute"_s,
+ PREFIX_SVG11 "cursor"_s,
+ PREFIX_SVG11 "documenteventsattribute"_s,
+ PREFIX_SVG11 "extensibility"_s,
+ PREFIX_SVG11 "externalresourcesrequired"_s,
+ PREFIX_SVG11 "filter"_s,
+ PREFIX_SVG11 "gradient"_s,
+ PREFIX_SVG11 "graphicaleventsattribute"_s,
+ PREFIX_SVG11 "graphicsattribute"_s,
+ PREFIX_SVG11 "hyperlinking"_s,
+ PREFIX_SVG11 "image"_s,
+ PREFIX_SVG11 "marker"_s,
+ PREFIX_SVG11 "mask"_s,
+ PREFIX_SVG11 "opacityattribute"_s,
+ PREFIX_SVG11 "paintattribute"_s,
+ PREFIX_SVG11 "pattern"_s,
+ PREFIX_SVG11 "script"_s,
+ PREFIX_SVG11 "shape"_s,
+ PREFIX_SVG11 "structure"_s,
+ PREFIX_SVG11 "style"_s,
+ PREFIX_SVG11 "svg-animation"_s,
+ PREFIX_SVG11 "svgdom-animation"_s,
+ PREFIX_SVG11 "text"_s,
+ PREFIX_SVG11 "view"_s,
+ PREFIX_SVG11 "viewportattribute"_s,
+ PREFIX_SVG11 "xlinkattribute"_s,
+ PREFIX_SVG11 "basicfont"_s,
+ PREFIX_SVG11 "font"_s,
+ PREFIX_SVG11 "svg"_s,
+ PREFIX_SVG11 "svg-static"_s,
+ PREFIX_SVG11 "svgdom"_s,
+ PREFIX_SVG11 "svgdom-static"_s,
};
HashSet<String, ASCIICaseInsensitiveHash> set;
for (auto& feature : features10)
- set.add(makeString("org.w3c.", feature));
+ set.add(feature);
for (auto& feature : features11)
- set.add(makeString("http://www.w3.org/tr/svg11/feature#", feature));
+ set.add(feature);
return set;
}();
+#undef PREFIX_W3C
+#undef PREFIX_SVG11
return features;
}