Title: [292106] trunk/Source
Revision
292106
Author
cdu...@apple.com
Date
2022-03-30 07:56:39 -0700 (Wed, 30 Mar 2022)

Log Message

Add HashTranslator for ASCIILiteral for faster lookup in HashMaps / HashSets
https://bugs.webkit.org/show_bug.cgi?id=238521

Reviewed by Geoffrey Garen.

Add HashTranslator for ASCIILiteral for faster lookup in HashMaps / HashSets using an ASCIILiteral,
without the need for allocating a String.

Source/WebCore:

* Modules/fetch/FetchBodyConsumer.cpp:
(WebCore::FetchBodyConsumer::packageFormData):
* Modules/plugins/YouTubePluginReplacement.cpp:
(WebCore::YouTubePluginReplacement::installReplacement):
* Modules/websockets/WebSocketDeflateFramer.cpp:
(WebCore::WebSocketExtensionDeflateFrame::processResponse):
* loader/CrossOriginPreflightResultCache.cpp:
(WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginMethod const):
(WebCore::CrossOriginPreflightResultCacheItem::validateCrossOriginHeaders const):
* platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::filter):
(WebCore::ResourceResponseBase::sanitizeHTTPHeaderFieldsAccordingToTainting):

Source/WebKit:

* Shared/mac/AuxiliaryProcessMac.mm:
(WebKit::getUserDirectorySuffix):
* UIProcess/AuxiliaryProcessProxy.cpp:
(WebKit::AuxiliaryProcessProxy::getLaunchOptions):
* UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm:
(WebKit::ProcessLauncher::launchProcess):
* UIProcess/Launcher/glib/ProcessLauncherGLib.cpp:
(WebKit::ProcessLauncher::launchProcess):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::getLaunchOptions):
* UIProcess/glib/WebProcessProxyGLib.cpp:
(WebKit::WebProcessProxy::platformGetLaunchOptions):
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeProcess):

Source/WTF:

* wtf/text/StringImpl.h:
* wtf/text/WTFString.h:
(WTF::HashTranslatorASCIILiteral::hash):
(WTF::HashTranslatorASCIILiteral::equal):
(WTF::HashTranslatorASCIILiteral::translate):

Modified Paths

Diff

Modified: trunk/Source/WTF/ChangeLog (292105 => 292106)


--- trunk/Source/WTF/ChangeLog	2022-03-30 13:28:05 UTC (rev 292105)
+++ trunk/Source/WTF/ChangeLog	2022-03-30 14:56:39 UTC (rev 292106)
@@ -1,3 +1,19 @@
+2022-03-30  Chris Dumez  <cdu...@apple.com>
+
+        Add HashTranslator for ASCIILiteral for faster lookup in HashMaps / HashSets
+        https://bugs.webkit.org/show_bug.cgi?id=238521
+
+        Reviewed by Geoffrey Garen.
+
+        Add HashTranslator for ASCIILiteral for faster lookup in HashMaps / HashSets using an ASCIILiteral,
+        without the need for allocating a String.
+
+        * wtf/text/StringImpl.h:
+        * wtf/text/WTFString.h:
+        (WTF::HashTranslatorASCIILiteral::hash):
+        (WTF::HashTranslatorASCIILiteral::equal):
+        (WTF::HashTranslatorASCIILiteral::translate):
+
 2022-03-30  Youenn Fablet  <you...@apple.com>
 
         Implement ServiceWorker WindowClient.ancestorOrigins

Modified: trunk/Source/WTF/wtf/text/StringImpl.h (292105 => 292106)


--- trunk/Source/WTF/wtf/text/StringImpl.h	2022-03-30 13:28:05 UTC (rev 292105)
+++ trunk/Source/WTF/wtf/text/StringImpl.h	2022-03-30 14:56:39 UTC (rev 292106)
@@ -60,6 +60,7 @@
 
 struct CStringTranslator;
 struct HashAndUTF8CharactersTranslator;
+struct HashTranslatorASCIILiteral;
 struct LCharBufferTranslator;
 struct SubstringTranslator;
 struct UCharBufferTranslator;
@@ -178,6 +179,7 @@
 
     friend struct WTF::CStringTranslator;
     friend struct WTF::HashAndUTF8CharactersTranslator;
+    friend struct WTF::HashTranslatorASCIILiteral;
     friend struct WTF::LCharBufferTranslator;
     friend struct WTF::SubstringTranslator;
     friend struct WTF::UCharBufferTranslator;

Modified: trunk/Source/WTF/wtf/text/WTFString.h (292105 => 292106)


--- trunk/Source/WTF/wtf/text/WTFString.h	2022-03-30 13:28:05 UTC (rev 292105)
+++ trunk/Source/WTF/wtf/text/WTFString.h	2022-03-30 14:56:39 UTC (rev 292106)
@@ -609,6 +609,24 @@
     return startsWithLettersIgnoringASCIICase(string.impl(), lowercaseLetters);
 }
 
+struct HashTranslatorASCIILiteral {
+    static unsigned hash(ASCIILiteral literal)
+    {
+        return StringHasher::computeHashAndMaskTop8Bits(literal.characters(), literal.length());
+    }
+
+    static bool equal(const String& a, ASCIILiteral b)
+    {
+        return a == b;
+    }
+
+    static void translate(String& location, ASCIILiteral literal, unsigned hash)
+    {
+        location = literal;
+        location.impl()->setHash(hash);
+    }
+};
+
 inline namespace StringLiterals {
 
 inline String operator"" _str(const char* characters, size_t)
@@ -620,6 +638,7 @@
 
 } // namespace WTF
 
+using WTF::HashTranslatorASCIILiteral;
 using WTF::KeepTrailingZeros;
 using WTF::String;
 using WTF::appendNumber;

Modified: trunk/Source/WebCore/ChangeLog (292105 => 292106)


--- trunk/Source/WebCore/ChangeLog	2022-03-30 13:28:05 UTC (rev 292105)
+++ trunk/Source/WebCore/ChangeLog	2022-03-30 14:56:39 UTC (rev 292106)
@@ -1,3 +1,26 @@
+2022-03-30  Chris Dumez  <cdu...@apple.com>
+
+        Add HashTranslator for ASCIILiteral for faster lookup in HashMaps / HashSets
+        https://bugs.webkit.org/show_bug.cgi?id=238521
+
+        Reviewed by Geoffrey Garen.
+
+        Add HashTranslator for ASCIILiteral for faster lookup in HashMaps / HashSets using an ASCIILiteral,
+        without the need for allocating a String.
+
+        * Modules/fetch/FetchBodyConsumer.cpp:
+        (WebCore::FetchBodyConsumer::packageFormData):
+        * Modules/plugins/YouTubePluginReplacement.cpp:
+        (WebCore::YouTubePluginReplacement::installReplacement):
+        * Modules/websockets/WebSocketDeflateFramer.cpp:
+        (WebCore::WebSocketExtensionDeflateFrame::processResponse):
+        * loader/CrossOriginPreflightResultCache.cpp:
+        (WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginMethod const):
+        (WebCore::CrossOriginPreflightResultCacheItem::validateCrossOriginHeaders const):
+        * platform/network/ResourceResponseBase.cpp:
+        (WebCore::ResourceResponseBase::filter):
+        (WebCore::ResourceResponseBase::sanitizeHTTPHeaderFieldsAccordingToTainting):
+
 2022-03-30  Youenn Fablet  <you...@apple.com>
 
         Implement ServiceWorker WindowClient.ancestorOrigins

Modified: trunk/Source/WebCore/Modules/fetch/FetchBodyConsumer.cpp (292105 => 292106)


--- trunk/Source/WebCore/Modules/fetch/FetchBodyConsumer.cpp	2022-03-30 13:28:05 UTC (rev 292105)
+++ trunk/Source/WebCore/Modules/fetch/FetchBodyConsumer.cpp	2022-03-30 14:56:39 UTC (rev 292106)
@@ -150,10 +150,10 @@
             contentDispositionParametersBegin++;
 
         auto parameters = parseParameters(StringView(header).substring(contentDispositionParametersBegin, contentDispositionEnd - contentDispositionParametersBegin), 0);
-        String name = parameters.get("name"_s);
+        String name = parameters.get<HashTranslatorASCIILiteral>("name"_s);
         if (!name)
             return false;
-        String filename = parameters.get("filename"_s);
+        String filename = parameters.get<HashTranslatorASCIILiteral>("filename"_s);
         if (!filename)
             form.append(name, String::fromUTF8(bodyBegin, bodyLength));
         else {
@@ -176,7 +176,7 @@
         if (!mimeType)
             return std::nullopt;
         if (equalIgnoringASCIICase(mimeType->type, "multipart") && equalIgnoringASCIICase(mimeType->subtype, "form-data")) {
-            auto iterator = mimeType->parameters.find("boundary"_s);
+            auto iterator = mimeType->parameters.find<HashTranslatorASCIILiteral>("boundary"_s);
             if (iterator != mimeType->parameters.end())
                 return iterator->value;
         }

Modified: trunk/Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp (292105 => 292106)


--- trunk/Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp	2022-03-30 13:28:05 UTC (rev 292105)
+++ trunk/Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp	2022-03-30 14:56:39 UTC (rev 292106)
@@ -84,16 +84,16 @@
     root.appendChild(*m_embedShadowElement);
 
     auto iframeElement = HTMLIFrameElement::create(HTMLNames::iframeTag, m_parentElement->document());
-    if (m_attributes.contains("width"_s))
+    if (m_attributes.contains<HashTranslatorASCIILiteral>("width"_s))
         iframeElement->setAttributeWithoutSynchronization(HTMLNames::widthAttr, AtomString("100%", AtomString::ConstructFromLiteral));
 
-    const auto& heightValue = m_attributes.find("height"_s);
+    const auto& heightValue = m_attributes.find<HashTranslatorASCIILiteral>("height"_s);
     if (heightValue != m_attributes.end()) {
         iframeElement->setAttribute(HTMLNames::styleAttr, AtomString("max-height: 100%", AtomString::ConstructFromLiteral));
         iframeElement->setAttributeWithoutSynchronization(HTMLNames::heightAttr, heightValue->value);
     }
 
-    iframeElement->setAttributeWithoutSynchronization(HTMLNames::srcAttr, youTubeURL(m_attributes.get("src"_s)));
+    iframeElement->setAttributeWithoutSynchronization(HTMLNames::srcAttr, youTubeURL(m_attributes.get<HashTranslatorASCIILiteral>("src"_s)));
     iframeElement->setAttributeWithoutSynchronization(HTMLNames::frameborderAttr, AtomString("0", AtomString::ConstructFromLiteral));
     
     // Disable frame flattening for this iframe.

Modified: trunk/Source/WebCore/Modules/websockets/WebSocketDeflateFramer.cpp (292105 => 292106)


--- trunk/Source/WebCore/Modules/websockets/WebSocketDeflateFramer.cpp	2022-03-30 13:28:05 UTC (rev 292105)
+++ trunk/Source/WebCore/Modules/websockets/WebSocketDeflateFramer.cpp	2022-03-30 14:56:39 UTC (rev 292106)
@@ -76,7 +76,7 @@
 
     unsigned expectedNumParameters = 0;
     int windowBits = 15;
-    auto parameter = serverParameters.find("max_window_bits"_s);
+    auto parameter = serverParameters.find<HashTranslatorASCIILiteral>("max_window_bits"_s);
     if (parameter != serverParameters.end()) {
         windowBits = parseIntegerAllowingTrailingJunk<int>(parameter->value).value_or(0);
         if (windowBits < 8 || windowBits > 15) {
@@ -87,7 +87,7 @@
     }
 
     WebSocketDeflater::ContextTakeOverMode mode = WebSocketDeflater::TakeOverContext;
-    parameter = serverParameters.find("no_context_takeover"_s);
+    parameter = serverParameters.find<HashTranslatorASCIILiteral>("no_context_takeover"_s);
     if (parameter != serverParameters.end()) {
         if (!parameter->value.isNull()) {
             m_failureReason = "Received invalid no_context_takeover parameter"_s;

Modified: trunk/Source/WebCore/dom/ProcessingInstruction.cpp (292105 => 292106)


--- trunk/Source/WebCore/dom/ProcessingInstruction.cpp	2022-03-30 13:28:05 UTC (rev 292105)
+++ trunk/Source/WebCore/dom/ProcessingInstruction.cpp	2022-03-30 14:56:39 UTC (rev 292106)
@@ -92,7 +92,7 @@
         auto attributes = parseAttributes(data());
         if (!attributes)
             return;
-        String type = attributes->get("type"_s);
+        String type = attributes->get<HashTranslatorASCIILiteral>("type"_s);
 
         m_isCSS = type.isEmpty() || type == "text/css";
 #if ENABLE(XSLT)
@@ -103,11 +103,11 @@
 #endif
             return;
 
-        String href = ""
-        String alternate = attributes->get("alternate"_s);
+        String href = ""
+        String alternate = attributes->get<HashTranslatorASCIILiteral>("alternate"_s);
         m_alternate = alternate == "yes";
-        m_title = attributes->get("title"_s);
-        m_media = attributes->get("media"_s);
+        m_title = attributes->get<HashTranslatorASCIILiteral>("title"_s);
+        m_media = attributes->get<HashTranslatorASCIILiteral>("media"_s);
 
         if (m_alternate && m_title.isEmpty())
             return;
@@ -156,7 +156,7 @@
             } else
 #endif
             {
-                String charset = attributes->get("charset"_s);
+                String charset = attributes->get<HashTranslatorASCIILiteral>("charset"_s);
                 CachedResourceRequest request(document().completeURL(href), CachedResourceLoader::defaultCachedResourceOptions(), std::nullopt, charset.isEmpty() ? document().charset() : WTFMove(charset));
 
                 m_cachedSheet = document().cachedResourceLoader().requestCSSStyleSheet(WTFMove(request)).value_or(nullptr);

Modified: trunk/Source/WebCore/loader/CrossOriginEmbedderPolicy.cpp (292105 => 292106)


--- trunk/Source/WebCore/loader/CrossOriginEmbedderPolicy.cpp	2022-03-30 13:28:05 UTC (rev 292105)
+++ trunk/Source/WebCore/loader/CrossOriginEmbedderPolicy.cpp	2022-03-30 14:56:39 UTC (rev 292106)
@@ -45,7 +45,7 @@
         auto coepParsingResult = parseStructuredFieldValue(response.httpHeaderField(headerName));
         if (coepParsingResult && coepParsingResult->first == "require-corp") {
             value = CrossOriginEmbedderPolicyValue::RequireCORP;
-            reportingEndpoint = coepParsingResult->second.get("report-to"_s);
+            reportingEndpoint = coepParsingResult->second.get<HashTranslatorASCIILiteral>("report-to"_s);
         }
     };
 

Modified: trunk/Source/WebCore/loader/CrossOriginOpenerPolicy.cpp (292105 => 292106)


--- trunk/Source/WebCore/loader/CrossOriginOpenerPolicy.cpp	2022-03-30 13:28:05 UTC (rev 292105)
+++ trunk/Source/WebCore/loader/CrossOriginOpenerPolicy.cpp	2022-03-30 14:56:39 UTC (rev 292106)
@@ -149,7 +149,7 @@
         } else if (coopParsingResult->first == "same-origin-allow-popups")
             value = CrossOriginOpenerPolicyValue::SameOriginAllowPopups;
 
-        reportingEndpoint = coopParsingResult->second.get("report-to"_s);
+        reportingEndpoint = coopParsingResult->second.get<HashTranslatorASCIILiteral>("report-to"_s);
     };
 
     CrossOriginOpenerPolicy policy;

Modified: trunk/Source/WebCore/loader/CrossOriginPreflightResultCache.cpp (292105 => 292106)


--- trunk/Source/WebCore/loader/CrossOriginPreflightResultCache.cpp	2022-03-30 13:28:05 UTC (rev 292105)
+++ trunk/Source/WebCore/loader/CrossOriginPreflightResultCache.cpp	2022-03-30 14:56:39 UTC (rev 292106)
@@ -85,12 +85,12 @@
 
 bool CrossOriginPreflightResultCacheItem::allowsCrossOriginMethod(const String& method, StoredCredentialsPolicy storedCredentialsPolicy) const
 {
-    return m_methods.contains(method) || (m_methods.contains("*"_s) && storedCredentialsPolicy != StoredCredentialsPolicy::Use) || isOnAccessControlSimpleRequestMethodAllowlist(method);
+    return m_methods.contains(method) || (m_methods.contains<HashTranslatorASCIILiteral>("*"_s) && storedCredentialsPolicy != StoredCredentialsPolicy::Use) || isOnAccessControlSimpleRequestMethodAllowlist(method);
 }
 
 std::optional<String> CrossOriginPreflightResultCacheItem::validateCrossOriginHeaders(const HTTPHeaderMap& requestHeaders, StoredCredentialsPolicy storedCredentialsPolicy) const
 {
-    bool validWildcard = m_headers.contains("*"_s) && storedCredentialsPolicy != StoredCredentialsPolicy::Use;
+    bool validWildcard = m_headers.contains<HashTranslatorASCIILiteral>("*"_s) && storedCredentialsPolicy != StoredCredentialsPolicy::Use;
     for (const auto& header : requestHeaders) {
         if (header.keyAsHTTPHeaderName && isCrossOriginSafeRequestHeader(header.keyAsHTTPHeaderName.value(), header.value))
             continue;

Modified: trunk/Source/WebCore/platform/network/ResourceResponseBase.cpp (292105 => 292106)


--- trunk/Source/WebCore/platform/network/ResourceResponseBase.cpp	2022-03-30 13:28:05 UTC (rev 292105)
+++ trunk/Source/WebCore/platform/network/ResourceResponseBase.cpp	2022-03-30 14:56:39 UTC (rev 292106)
@@ -193,7 +193,7 @@
     filteredResponse.setType(Type::Cors);
 
     auto accessControlExposeHeaderSet = valueOrDefault(parseAccessControlAllowList<ASCIICaseInsensitiveHash>(response.httpHeaderField(HTTPHeaderName::AccessControlExposeHeaders)));
-    if (performCheck == PerformExposeAllHeadersCheck::Yes && accessControlExposeHeaderSet.contains("*"_s))
+    if (performCheck == PerformExposeAllHeadersCheck::Yes && accessControlExposeHeaderSet.contains<HashTranslatorASCIILiteral>("*"_s))
         return filteredResponse;
 
     filteredResponse.m_httpHeaderFields.uncommonHeaders().removeAllMatching([&](auto& entry) {
@@ -459,7 +459,7 @@
         break;
     case ResourceResponse::Tainting::Cors: {
         auto corsSafeHeaderSet = valueOrDefault(parseAccessControlAllowList<ASCIICaseInsensitiveHash>(httpHeaderField(HTTPHeaderName::AccessControlExposeHeaders)));
-        if (corsSafeHeaderSet.contains("*"_str))
+        if (corsSafeHeaderSet.contains<HashTranslatorASCIILiteral>("*"_s))
             return;
 
         m_httpHeaderFields.commonHeaders().removeAllMatching([&corsSafeHeaderSet](auto& header) {

Modified: trunk/Source/WebKit/ChangeLog (292105 => 292106)


--- trunk/Source/WebKit/ChangeLog	2022-03-30 13:28:05 UTC (rev 292105)
+++ trunk/Source/WebKit/ChangeLog	2022-03-30 14:56:39 UTC (rev 292106)
@@ -1,3 +1,28 @@
+2022-03-30  Chris Dumez  <cdu...@apple.com>
+
+        Add HashTranslator for ASCIILiteral for faster lookup in HashMaps / HashSets
+        https://bugs.webkit.org/show_bug.cgi?id=238521
+
+        Reviewed by Geoffrey Garen.
+
+        Add HashTranslator for ASCIILiteral for faster lookup in HashMaps / HashSets using an ASCIILiteral,
+        without the need for allocating a String.
+
+        * Shared/mac/AuxiliaryProcessMac.mm:
+        (WebKit::getUserDirectorySuffix):
+        * UIProcess/AuxiliaryProcessProxy.cpp:
+        (WebKit::AuxiliaryProcessProxy::getLaunchOptions):
+        * UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm:
+        (WebKit::ProcessLauncher::launchProcess):
+        * UIProcess/Launcher/glib/ProcessLauncherGLib.cpp:
+        (WebKit::ProcessLauncher::launchProcess):
+        * UIProcess/WebProcessProxy.cpp:
+        (WebKit::WebProcessProxy::getLaunchOptions):
+        * UIProcess/glib/WebProcessProxyGLib.cpp:
+        (WebKit::WebProcessProxy::platformGetLaunchOptions):
+        * WebProcess/cocoa/WebProcessCocoa.mm:
+        (WebKit::WebProcess::platformInitializeProcess):
+
 2022-03-30  Youenn Fablet  <you...@apple.com>
 
         Implement ServiceWorker WindowClient.ancestorOrigins

Modified: trunk/Source/WebKit/Shared/mac/AuxiliaryProcessMac.mm (292105 => 292106)


--- trunk/Source/WebKit/Shared/mac/AuxiliaryProcessMac.mm	2022-03-30 13:28:05 UTC (rev 292105)
+++ trunk/Source/WebKit/Shared/mac/AuxiliaryProcessMac.mm	2022-03-30 14:56:39 UTC (rev 292106)
@@ -642,7 +642,7 @@
 
 static String getUserDirectorySuffix(const AuxiliaryProcessInitializationParameters& parameters)
 {
-    auto userDirectorySuffix = parameters.extraInitializationData.find("user-directory-suffix");
+    auto userDirectorySuffix = parameters.extraInitializationData.find<HashTranslatorASCIILiteral>("user-directory-suffix"_s);
     if (userDirectorySuffix != parameters.extraInitializationData.end()) {
         String suffix = userDirectorySuffix->value;
         auto firstPathSeparator = suffix.find('/');

Modified: trunk/Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp (292105 => 292106)


--- trunk/Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp	2022-03-30 13:28:05 UTC (rev 292105)
+++ trunk/Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp	2022-03-30 14:56:39 UTC (rev 292106)
@@ -65,10 +65,10 @@
     launchOptions.processIdentifier = m_processIdentifier;
 
     if (const char* userDirectorySuffix = getenv("DIRHELPER_USER_DIR_SUFFIX"))
-        launchOptions.extraInitializationData.add("user-directory-suffix"_s, userDirectorySuffix);
+        launchOptions.extraInitializationData.add<HashTranslatorASCIILiteral>("user-directory-suffix"_s, userDirectorySuffix);
 
     if (m_alwaysRunsAtBackgroundPriority)
-        launchOptions.extraInitializationData.add("always-runs-at-background-priority"_s, "true");
+        launchOptions.extraInitializationData.add<HashTranslatorASCIILiteral>("always-runs-at-background-priority"_s, "true");
 
 #if ENABLE(DEVELOPER_MODE) && (PLATFORM(GTK) || PLATFORM(WPE))
     const char* varname;

Modified: trunk/Source/WebKit/UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm (292105 => 292106)


--- trunk/Source/WebKit/UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm	2022-03-30 13:28:05 UTC (rev 292105)
+++ trunk/Source/WebKit/UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm	2022-03-30 14:56:39 UTC (rev 292106)
@@ -154,7 +154,7 @@
     xpc_dictionary_set_value(initializationMessage.get(), "ContainerEnvironmentVariables", containerEnvironmentVariables.get());
 #endif
 
-    auto languagesIterator = m_launchOptions.extraInitializationData.find("OverrideLanguages");
+    auto languagesIterator = m_launchOptions.extraInitializationData.find<HashTranslatorASCIILiteral>("OverrideLanguages"_s);
     if (languagesIterator != m_launchOptions.extraInitializationData.end()) {
         LOG_WITH_STREAM(Language, stream << "Process Launcher is copying OverrideLanguages into initialization message: " << languagesIterator->value);
         auto languages = adoptOSObject(xpc_array_create(nullptr, 0));

Modified: trunk/Source/WebKit/UIProcess/Launcher/glib/ProcessLauncherGLib.cpp (292105 => 292106)


--- trunk/Source/WebKit/UIProcess/Launcher/glib/ProcessLauncherGLib.cpp	2022-03-30 13:28:05 UTC (rev 292105)
+++ trunk/Source/WebKit/UIProcess/Launcher/glib/ProcessLauncherGLib.cpp	2022-03-30 14:56:39 UTC (rev 292106)
@@ -138,7 +138,7 @@
 
 #if OS(LINUX)
     const char* sandboxEnv = g_getenv("WEBKIT_FORCE_SANDBOX");
-    bool sandboxEnabled = m_launchOptions.extraInitializationData.get("enable-sandbox") == "true";
+    bool sandboxEnabled = m_launchOptions.extraInitializationData.get<HashTranslatorASCIILiteral>("enable-sandbox"_s) == "true";
 
     if (sandboxEnv)
         sandboxEnabled = !strcmp(sandboxEnv, "1");

Modified: trunk/Source/WebKit/UIProcess/WebProcessProxy.cpp (292105 => 292106)


--- trunk/Source/WebKit/UIProcess/WebProcessProxy.cpp	2022-03-30 13:28:05 UTC (rev 292105)
+++ trunk/Source/WebKit/UIProcess/WebProcessProxy.cpp	2022-03-30 14:56:39 UTC (rev 292106)
@@ -407,7 +407,7 @@
     if (!m_processPool->customWebContentServiceBundleIdentifier().isEmpty())
         launchOptions.customWebContentServiceBundleIdentifier = m_processPool->customWebContentServiceBundleIdentifier().ascii();
     if (WebKit::isInspectorProcessPool(processPool()))
-        launchOptions.extraInitializationData.add("inspector-process"_s, "1"_s);
+        launchOptions.extraInitializationData.add<HashTranslatorASCIILiteral>("inspector-process"_s, "1"_s);
 
     LOG(Language, "WebProcessProxy is getting launch options.");
     auto overrideLanguages = m_processPool->configuration().overrideLanguages();
@@ -423,7 +423,7 @@
             languageString.append(overrideLanguages[i]);
         }
         LOG_WITH_STREAM(Language, stream << "Setting WebProcess's launch OverrideLanguages to " << languageString);
-        launchOptions.extraInitializationData.add("OverrideLanguages"_s, languageString.toString());
+        launchOptions.extraInitializationData.add<HashTranslatorASCIILiteral>("OverrideLanguages"_s, languageString.toString());
     } else
         LOG(Language, "overrideLanguages is still empty. Not setting WebProcess's launch OverrideLanguages.");
 
@@ -430,7 +430,7 @@
     launchOptions.nonValidInjectedCodeAllowed = shouldAllowNonValidInjectedCode();
 
     if (isPrewarmed())
-        launchOptions.extraInitializationData.add("is-prewarmed"_s, "1"_s);
+        launchOptions.extraInitializationData.add<HashTranslatorASCIILiteral>("is-prewarmed"_s, "1"_s);
 
 #if PLATFORM(PLAYSTATION)
     launchOptions.processPath = m_processPool->webProcessPath();
@@ -443,8 +443,8 @@
     }
 
     if (m_serviceWorkerInformation) {
-        launchOptions.extraInitializationData.add("service-worker-process"_s, "1"_s);
-        launchOptions.extraInitializationData.add("registrable-domain"_s, m_registrableDomain->string());
+        launchOptions.extraInitializationData.add<HashTranslatorASCIILiteral>("service-worker-process"_s, "1"_s);
+        launchOptions.extraInitializationData.add<HashTranslatorASCIILiteral>("registrable-domain"_s, m_registrableDomain->string());
     }
 }
 

Modified: trunk/Source/WebKit/UIProcess/glib/WebProcessProxyGLib.cpp (292105 => 292106)


--- trunk/Source/WebKit/UIProcess/glib/WebProcessProxyGLib.cpp	2022-03-30 13:28:05 UTC (rev 292105)
+++ trunk/Source/WebKit/UIProcess/glib/WebProcessProxyGLib.cpp	2022-03-30 14:56:39 UTC (rev 292106)
@@ -39,7 +39,7 @@
 
 void WebProcessProxy::platformGetLaunchOptions(ProcessLauncher::LaunchOptions& launchOptions)
 {
-    launchOptions.extraInitializationData.set("enable-sandbox", m_processPool->sandboxEnabled() ? "true" : "false");
+    launchOptions.extraInitializationData.set("enable-sandbox"_s, m_processPool->sandboxEnabled() ? "true" : "false");
 
     if (m_processPool->sandboxEnabled()) {
         WebsiteDataStore* dataStore = m_websiteDataStore.get();
@@ -51,9 +51,9 @@
 
         ASSERT(dataStore);
         dataStore->resolveDirectoriesIfNecessary();
-        launchOptions.extraInitializationData.set("webSQLDatabaseDirectory", dataStore->resolvedDatabaseDirectory());
-        launchOptions.extraInitializationData.set("mediaKeysDirectory", dataStore->resolvedMediaKeysDirectory());
-        launchOptions.extraInitializationData.set("applicationCacheDirectory", dataStore->resolvedApplicationCacheDirectory());
+        launchOptions.extraInitializationData.set("webSQLDatabaseDirectory"_s, dataStore->resolvedDatabaseDirectory());
+        launchOptions.extraInitializationData.set("mediaKeysDirectory"_s, dataStore->resolvedMediaKeysDirectory());
+        launchOptions.extraInitializationData.set("applicationCacheDirectory"_s, dataStore->resolvedApplicationCacheDirectory());
 
         launchOptions.extraSandboxPaths = m_processPool->sandboxPaths();
     }

Modified: trunk/Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm (292105 => 292106)


--- trunk/Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm	2022-03-30 13:28:05 UTC (rev 292105)
+++ trunk/Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm	2022-03-30 14:56:39 UTC (rev 292106)
@@ -638,17 +638,17 @@
     MainThreadSharedTimer::shouldSetupPowerObserver() = false;
 #endif // PLATFORM(MAC)
 
-    if (parameters.extraInitializationData.get("inspector-process"_s) == "1")
+    if (parameters.extraInitializationData.get<HashTranslatorASCIILiteral>("inspector-process"_s) == "1")
         m_processType = ProcessType::Inspector;
 #if ENABLE(SERVICE_WORKER)
-    else if (parameters.extraInitializationData.get("service-worker-process"_s) == "1") {
+    else if (parameters.extraInitializationData.get<HashTranslatorASCIILiteral>("service-worker-process"_s) == "1") {
         m_processType = ProcessType::ServiceWorker;
 #if PLATFORM(MAC)
-        m_registrableDomain = RegistrableDomain::uncheckedCreateFromRegistrableDomainString(parameters.extraInitializationData.get("registrable-domain"_s));
+        m_registrableDomain = RegistrableDomain::uncheckedCreateFromRegistrableDomainString(parameters.extraInitializationData.get<HashTranslatorASCIILiteral>("registrable-domain"_s));
 #endif
     }
 #endif
-    else if (parameters.extraInitializationData.get("is-prewarmed"_s) == "1")
+    else if (parameters.extraInitializationData.get<HashTranslatorASCIILiteral>("is-prewarmed"_s) == "1")
         m_processType = ProcessType::PrewarmedWebContent;
     else
         m_processType = ProcessType::WebContent;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to