[CSS Shadow Parts] Minor exportparts attribute parsing cleanups
authorantti@apple.com <antti@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 9 Oct 2019 16:45:00 +0000 (16:45 +0000)
committerantti@apple.com <antti@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 9 Oct 2019 16:45:00 +0000 (16:45 +0000)
https://bugs.webkit.org/show_bug.cgi?id=202740

Reviewed by Zalan Bujtas.

* dom/ShadowRoot.cpp:
(WebCore::parsePartMapping):
(WebCore::parsePartMappingsList):

Return the map as the return value.

(WebCore::ShadowRoot::partMappings const):

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

Source/WebCore/ChangeLog
Source/WebCore/dom/ShadowRoot.cpp

index cc11cc3..588474a 100644 (file)
@@ -1,3 +1,18 @@
+2019-10-09  Antti Koivisto  <antti@apple.com>
+
+        [CSS Shadow Parts] Minor exportparts attribute parsing cleanups
+        https://bugs.webkit.org/show_bug.cgi?id=202740
+
+        Reviewed by Zalan Bujtas.
+
+        * dom/ShadowRoot.cpp:
+        (WebCore::parsePartMapping):
+        (WebCore::parsePartMappingsList):
+
+        Return the map as the return value.
+
+        (WebCore::ShadowRoot::partMappings const):
+
 2019-10-09  Andy Estes  <aestes@apple.com>
 
         [iOS] Remove redundant uses of USE(UIKIT_EDITING)
index c3c8159..2a3267c 100644 (file)
@@ -258,13 +258,13 @@ static Optional<std::pair<AtomString, AtomString>> parsePartMapping(StringView m
 {
     const auto end = mappingString.length();
 
-    auto skipWhitespace = [&] (auto position) {
+    auto skipWhitespace = [&](auto position) {
         while (position < end && isHTMLSpace(mappingString[position]))
             ++position;
         return position;
     };
 
-    auto collectValue = [&] (auto position) {
+    auto collectValue = [&](auto position) {
         while (position < end && (!isHTMLSpace(mappingString[position]) && mappingString[position] != ':'))
             ++position;
         return position;
@@ -301,8 +301,13 @@ static Optional<std::pair<AtomString, AtomString>> parsePartMapping(StringView m
     return std::make_pair(firstPart, secondPart);
 }
 
-static void parsePartMappingsList(ShadowRoot::PartMappings& mappings, StringView mappingsListString)
+static ShadowRoot::PartMappings parsePartMappingsList(StringView mappingsListString)
 {
+    if (!RuntimeEnabledFeatures::sharedFeatures().cssShadowPartsEnabled())
+        return { };
+
+    ShadowRoot::PartMappings mappings;
+
     const auto end = mappingsListString.length();
 
     size_t begin = 0;
@@ -320,16 +325,15 @@ static void parsePartMappingsList(ShadowRoot::PartMappings& mappings, StringView
 
         begin = mappingEnd + 1;
     }
+
+    return mappings;
 }
 
 const ShadowRoot::PartMappings& ShadowRoot::partMappings() const
 {
     if (!m_partMappings) {
-        m_partMappings = PartMappings();
-
         auto exportpartsValue = host()->attributeWithoutSynchronization(HTMLNames::exportpartsAttr);
-        if (!exportpartsValue.isEmpty() && RuntimeEnabledFeatures::sharedFeatures().cssShadowPartsEnabled())
-            parsePartMappingsList(*m_partMappings, exportpartsValue);
+        m_partMappings = parsePartMappingsList(exportpartsValue);
     }
 
     return *m_partMappings;