Unreviewed, rolling out r231223 and r231288.
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 3 May 2018 16:37:01 +0000 (16:37 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 3 May 2018 16:37:01 +0000 (16:37 +0000)
https://bugs.webkit.org/show_bug.cgi?id=185256

The change in r231223 breaks internal builds, and r231288 is a
dependent change. (Requested by ryanhaddad on #webkit).

Reverted changesets:

"Use default std::optional if it is provided"
https://bugs.webkit.org/show_bug.cgi?id=185159
https://trac.webkit.org/changeset/231223

"Use pointer instead of
std::optional<std::reference_wrapper<>>"
https://bugs.webkit.org/show_bug.cgi?id=185186
https://trac.webkit.org/changeset/231288

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

21 files changed:
Source/WTF/ChangeLog
Source/WTF/wtf/Expected.h
Source/WTF/wtf/Optional.h
Source/WebCore/ChangeLog
Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp
Source/WebCore/css/parser/CSSParser.cpp
Source/WebCore/css/parser/CSSParser.h
Source/WebCore/dom/DatasetDOMStringMap.cpp
Source/WebCore/dom/DatasetDOMStringMap.h
Source/WebCore/dom/Element.cpp
Source/WebCore/dom/Element.h
Source/WebCore/html/canvas/CanvasStyle.cpp
Source/WebCore/inspector/DOMEditor.cpp
Source/WebCore/platform/network/curl/CurlFormDataStream.cpp
Source/WebCore/platform/network/curl/CurlFormDataStream.h
Source/WebCore/platform/network/curl/CurlRequest.cpp
Source/WebCore/testing/MockCDMFactory.cpp
Source/WebCore/testing/MockCDMFactory.h
Source/WebKit/ChangeLog
Source/WebKit/Shared/SandboxExtension.h
Source/WebKit/Shared/TouchBarMenuItemData.cpp

index f0f7055..9454561 100644 (file)
@@ -1,3 +1,22 @@
+2018-05-03  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed, rolling out r231223 and r231288.
+        https://bugs.webkit.org/show_bug.cgi?id=185256
+
+        The change in r231223 breaks internal builds, and r231288 is a
+        dependent change. (Requested by ryanhaddad on #webkit).
+
+        Reverted changesets:
+
+        "Use default std::optional if it is provided"
+        https://bugs.webkit.org/show_bug.cgi?id=185159
+        https://trac.webkit.org/changeset/231223
+
+        "Use pointer instead of
+        std::optional<std::reference_wrapper<>>"
+        https://bugs.webkit.org/show_bug.cgi?id=185186
+        https://trac.webkit.org/changeset/231288
+
 2018-05-02  Commit Queue  <commit-queue@webkit.org>
 
         Unreviewed, rolling out r231251.
index e9b0ec9..dd045e5 100644 (file)
@@ -573,5 +573,5 @@ template<typename T, typename E> void swap(expected<T, E>& x, expected<T, E>& y)
 
 }}} // namespace std::experimental::fundamentals_v3
 
-__EXPECTED_INLINE_VARIABLE constexpr auto& unexpect = std::experimental::unexpect;
+__EXPECTED_INLINE_VARIABLE constexpr std::experimental::unexpected_t& unexpect = std::experimental::unexpect;
 template<class T, class E> using Expected = std::experimental::expected<T, E>;
index aac45a7..a3fc589 100644 (file)
 # include <wtf/Compiler.h>
 # include <wtf/StdLibExtras.h>
 
-#if !COMPILER(MSVC) && __has_include(<optional>)
-# include <optional>
-#endif
-
-#if !COMPILER(MSVC) && defined(__cpp_lib_optional) && __cpp_lib_optional >= 201603
-
-// Use default std::optional.
-
-#else
-
 # define TR2_OPTIONAL_REQUIRES(...) typename std::enable_if<__VA_ARGS__::value, bool>::type = false
 
 # if defined __GNUC__ // NOTE: GNUC is also defined for Clang
@@ -1022,6 +1012,20 @@ constexpr optional<X&> make_optional(std::reference_wrapper<X> v)
 
 } // namespace std
 
+namespace WTF {
+
+// -- WebKit Additions --
+template <class OptionalType, class Callback>
+ALWAYS_INLINE
+auto valueOrCompute(OptionalType optional, Callback callback) -> typename OptionalType::value_type
+{
+    if (optional)
+        return *optional;
+    return callback();
+}
+
+} // namespace WTF
+
 namespace std
 {
   template <typename T>
@@ -1050,20 +1054,4 @@ namespace std
 # undef TR2_OPTIONAL_REQUIRES
 # undef TR2_OPTIONAL_ASSERTED_EXPRESSION
 
-#endif // defined(__cpp_lib_optional)
-
-namespace WTF {
-
-// -- WebKit Additions --
-template <class OptionalType, class Callback>
-ALWAYS_INLINE
-auto valueOrCompute(OptionalType optional, Callback callback) -> typename OptionalType::value_type
-{
-    if (optional)
-        return *optional;
-    return callback();
-}
-
-} // namespace WTF
-
 using WTF::valueOrCompute;
index bee00c2..9842893 100644 (file)
@@ -1,3 +1,22 @@
+2018-05-03  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed, rolling out r231223 and r231288.
+        https://bugs.webkit.org/show_bug.cgi?id=185256
+
+        The change in r231223 breaks internal builds, and r231288 is a
+        dependent change. (Requested by ryanhaddad on #webkit).
+
+        Reverted changesets:
+
+        "Use default std::optional if it is provided"
+        https://bugs.webkit.org/show_bug.cgi?id=185159
+        https://trac.webkit.org/changeset/231223
+
+        "Use pointer instead of
+        std::optional<std::reference_wrapper<>>"
+        https://bugs.webkit.org/show_bug.cgi?id=185186
+        https://trac.webkit.org/changeset/231288
+
 2018-05-03  Ryan Haddad  <ryanhaddad@apple.com>
 
         Unreviewed, rolling out r231253.
index 0e3c4f6..851c9c8 100644 (file)
@@ -301,7 +301,7 @@ void RTCPeerConnection::queuedAddIceCandidate(RTCIceCandidate* rtcCandidate, DOM
 }
 
 // Implementation of https://w3c.github.io/webrtc-pc/#set-pc-configuration
-static inline ExceptionOr<Vector<MediaEndpointConfiguration::IceServerInfo>> iceServersFromConfiguration(RTCConfiguration& newConfiguration, const RTCConfiguration* existingConfiguration, bool isLocalDescriptionSet)
+static inline ExceptionOr<Vector<MediaEndpointConfiguration::IceServerInfo>> iceServersFromConfiguration(RTCConfiguration& newConfiguration, std::optional<const RTCConfiguration&> existingConfiguration, bool isLocalDescriptionSet)
 {
     if (existingConfiguration && newConfiguration.bundlePolicy != existingConfiguration->bundlePolicy)
         return Exception { InvalidModificationError, "IceTransportPolicy does not match existing policy" };
@@ -342,7 +342,7 @@ ExceptionOr<void> RTCPeerConnection::initializeConfiguration(RTCConfiguration&&
 {
     INFO_LOG(LOGIDENTIFIER);
 
-    auto servers = iceServersFromConfiguration(configuration, nullptr, false);
+    auto servers = iceServersFromConfiguration(configuration, std::nullopt, false);
     if (servers.hasException())
         return servers.releaseException();
 
@@ -360,7 +360,7 @@ ExceptionOr<void> RTCPeerConnection::setConfiguration(RTCConfiguration&& configu
 
     INFO_LOG(LOGIDENTIFIER);
 
-    auto servers = iceServersFromConfiguration(configuration, &m_configuration, m_backend->isLocalDescriptionSet());
+    auto servers = iceServersFromConfiguration(configuration, m_configuration, m_backend->isLocalDescriptionSet());
     if (servers.hasException())
         return servers.releaseException();
 
index 8413801..954ab08 100644 (file)
@@ -178,14 +178,14 @@ Color CSSParser::parseColor(const String& string, bool strict)
     return primitiveValue.color();
 }
 
-Color CSSParser::parseSystemColor(const String& string, const CSSParserContext* context)
+Color CSSParser::parseSystemColor(const String& string, std::optional<const CSSParserContext&> context)
 {
     CSSValueID id = cssValueKeywordID(string);
     if (!StyleColor::isSystemColor(id))
         return Color();
 
     OptionSet<StyleColor::Options> options;
-    if (context && context->useSystemAppearance)
+    if (context && context.value().useSystemAppearance)
         options |= StyleColor::Options::UseSystemAppearance;
     return RenderTheme::singleton().systemColor(id, options);
 }
index 2930d45..d92fa5a 100644 (file)
@@ -78,7 +78,7 @@ public:
     RefPtr<CSSValue> parseValueWithVariableReferences(CSSPropertyID, const CSSValue&, const CustomPropertyValueMap& customProperties, TextDirection, WritingMode);
 
     static Color parseColor(const String&, bool strict = false);
-    static Color parseSystemColor(const String&, const CSSParserContext*);
+    static Color parseSystemColor(const String&, std::optional<const CSSParserContext&>);
 
 private:
     ParseResult parseValue(MutableStyleProperties&, CSSPropertyID, const String&, bool important);
index ec6315c..f2d8420 100644 (file)
@@ -188,7 +188,7 @@ Vector<String> DatasetDOMStringMap::supportedPropertyNames() const
     return names;
 }
 
-const AtomicString* DatasetDOMStringMap::item(const String& propertyName) const
+std::optional<const AtomicString&> DatasetDOMStringMap::item(const String& propertyName) const
 {
     if (m_element.hasAttributes()) {
         AttributeIteratorAccessor attributeIteratorAccessor = m_element.attributesIterator();
@@ -198,24 +198,22 @@ const AtomicString* DatasetDOMStringMap::item(const String& propertyName) const
             // Building a new AtomicString in that case is overkill so we do a direct character comparison.
             const Attribute& attribute = *attributeIteratorAccessor.begin();
             if (propertyNameMatchesAttributeName(propertyName, attribute.localName()))
-                return &attribute.value();
+                return attribute.value();
         } else {
             AtomicString attributeName = convertPropertyNameToAttributeName(propertyName);
             for (const Attribute& attribute : attributeIteratorAccessor) {
                 if (attribute.localName() == attributeName)
-                    return &attribute.value();
+                    return attribute.value();
             }
         }
     }
 
-    return nullptr;
+    return std::nullopt;
 }
 
 String DatasetDOMStringMap::namedItem(const AtomicString& name) const
 {
-    if (const auto* value = item(name))
-        return *value;
-    return String { };
+    return item(name).value_or(String { });
 }
 
 ExceptionOr<void> DatasetDOMStringMap::setNamedItem(const String& name, const String& value)
index 9100db8..483f763 100644 (file)
@@ -53,7 +53,7 @@ public:
     Element& element() { return m_element; }
 
 private:
-    const AtomicString* item(const String& name) const;
+    std::optional<const AtomicString&> item(const String& name) const;
 
     Element& m_element;
 };
index 3a7a4e8..4d17f57 100644 (file)
@@ -3732,7 +3732,7 @@ static ExceptionOr<Ref<Element>> contextElementForInsertion(const String& where,
 }
 
 // https://w3c.github.io/DOM-Parsing/#dom-element-insertadjacenthtml
-ExceptionOr<void> Element::insertAdjacentHTML(const String& where, const String& markup, NodeVector* addedNodes)
+ExceptionOr<void> Element::insertAdjacentHTML(const String& where, const String& markup, std::optional<NodeVector&> addedNodes)
 {
     // Steps 1 and 2.
     auto contextElement = contextElementForInsertion(where, *this);
@@ -3758,7 +3758,7 @@ ExceptionOr<void> Element::insertAdjacentHTML(const String& where, const String&
 
 ExceptionOr<void> Element::insertAdjacentHTML(const String& where, const String& markup)
 {
-    return insertAdjacentHTML(where, markup, nullptr);
+    return insertAdjacentHTML(where, markup, std::nullopt);
 }
 
 ExceptionOr<void> Element::insertAdjacentText(const String& where, const String& text)
index 1c4db86..9e52d33 100644 (file)
@@ -314,7 +314,7 @@ public:
     WEBCORE_EXPORT void setTabIndex(int);
     virtual RefPtr<Element> focusDelegate();
 
-    ExceptionOr<void> insertAdjacentHTML(const String& where, const String& html, NodeVector* addedNodes);
+    ExceptionOr<void> insertAdjacentHTML(const String& where, const String& html, std::optional<NodeVector&> addedNodes);
 
     WEBCORE_EXPORT ExceptionOr<Element*> insertAdjacentElement(const String& where, Element& newChild);
     WEBCORE_EXPORT ExceptionOr<void> insertAdjacentHTML(const String& where, const String& html);
index aca8a60..ff49ad1 100644 (file)
@@ -53,7 +53,7 @@ static Color parseColor(const String& colorString)
     Color color = CSSParser::parseColor(colorString);
     if (color.isValid())
         return color;
-    return CSSParser::parseSystemColor(colorString, nullptr);
+    return CSSParser::parseSystemColor(colorString, std::nullopt);
 }
 
 Color currentColor(HTMLCanvasElement* canvas)
index e0af0fd..3493b01 100644 (file)
@@ -266,7 +266,7 @@ private:
 
     ExceptionOr<void> redo() final
     {
-        auto result = m_element->insertAdjacentHTML(m_position, m_html, &m_addedNodes);
+        auto result = m_element->insertAdjacentHTML(m_position, m_html, m_addedNodes);
         if (result.hasException())
             return result.releaseException();
         return { };
index 889892d..84f5e2b 100644 (file)
@@ -69,15 +69,15 @@ void CurlFormDataStream::clean()
     }
 }
 
-const Vector<char>* CurlFormDataStream::getPostData()
+std::optional<const Vector<char>&> CurlFormDataStream::getPostData()
 {
     if (!m_formData)
-        return nullptr;
+        return std::nullopt;
 
     if (!m_postData)
         m_postData = std::make_unique<Vector<char>>(m_formData->flatten());
 
-    return m_postData.get();
+    return *m_postData;
 }
 
 bool CurlFormDataStream::shouldUseChunkTransfer()
index 4f1b308..d1ca1ad 100644 (file)
@@ -41,7 +41,7 @@ public:
 
     size_t elementSize() { return m_formData ? m_formData->elements().size() : 0; }
 
-    const Vector<char>* getPostData();
+    std::optional<const Vector<char>&> getPostData();
     bool shouldUseChunkTransfer();
     unsigned long long totalSize();
 
index f2d0c9b..0335a67 100644 (file)
@@ -489,7 +489,7 @@ void CurlRequest::setupPOST(ResourceRequest& request)
 
     // Do not stream for simple POST data
     if (elementSize == 1) {
-        const auto* postData = m_formDataStream.getPostData();
+        auto postData = m_formDataStream.getPostData();
         if (postData && postData->size())
             m_curlHandle->setPostFields(postData->data(), postData->size());
     } else
index e2fdfbc..95f7e6b 100644 (file)
@@ -81,12 +81,12 @@ Vector<Ref<SharedBuffer>> MockCDMFactory::removeKeysFromSessionWithID(const Stri
     return WTFMove(it->value);
 }
 
-const Vector<Ref<SharedBuffer>>* MockCDMFactory::keysForSessionWithID(const String& id) const
+std::optional<const Vector<Ref<SharedBuffer>>&> MockCDMFactory::keysForSessionWithID(const String& id) const
 {
     auto it = m_sessions.find(id);
     if (it == m_sessions.end())
-        return nullptr;
-    return &it->value;
+        return std::nullopt;
+    return it->value;
 }
 
 void MockCDMFactory::setSupportedDataTypes(Vector<String>&& types)
@@ -314,7 +314,7 @@ void MockCDMInstance::updateLicense(const String& sessionID, LicenseType, const
 
     std::optional<KeyStatusVector> changedKeys;
     if (responseVector.contains(String(ASCIILiteral("keys-changed")))) {
-        const auto* keys = factory->keysForSessionWithID(sessionID);
+        std::optional<const Vector<Ref<SharedBuffer>>&> keys = factory->keysForSessionWithID(sessionID);
         if (keys) {
             KeyStatusVector keyStatusVector;
             keyStatusVector.reserveInitialCapacity(keys->size());
index 418d390..237b2b3 100644 (file)
@@ -73,7 +73,7 @@ public:
     bool hasSessionWithID(const String& id) { return m_sessions.contains(id); }
     void removeSessionWithID(const String& id) { m_sessions.remove(id); }
     void addKeysToSessionWithID(const String& id, Vector<Ref<SharedBuffer>>&&);
-    const Vector<Ref<SharedBuffer>>* keysForSessionWithID(const String& id) const;
+    std::optional<const Vector<Ref<SharedBuffer>>&> keysForSessionWithID(const String& id) const;
     Vector<Ref<SharedBuffer>> removeKeysFromSessionWithID(const String& id);
 
 private:
index 9cc3cda..a48a7c7 100644 (file)
@@ -1,3 +1,22 @@
+2018-05-03  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed, rolling out r231223 and r231288.
+        https://bugs.webkit.org/show_bug.cgi?id=185256
+
+        The change in r231223 breaks internal builds, and r231288 is a
+        dependent change. (Requested by ryanhaddad on #webkit).
+
+        Reverted changesets:
+
+        "Use default std::optional if it is provided"
+        https://bugs.webkit.org/show_bug.cgi?id=185159
+        https://trac.webkit.org/changeset/231223
+
+        "Use pointer instead of
+        std::optional<std::reference_wrapper<>>"
+        https://bugs.webkit.org/show_bug.cgi?id=185186
+        https://trac.webkit.org/changeset/231288
+
 2018-05-03  Per Arne Vollan  <pvollan@apple.com>
 
         An error message is written to stderr when the WebContent process is blocking WindowServer access.
index cb53aad..1f76808 100644 (file)
@@ -120,7 +120,7 @@ private:
 inline SandboxExtension::Handle::Handle() { }
 inline SandboxExtension::Handle::~Handle() { }
 inline void SandboxExtension::Handle::encode(IPC::Encoder&) const { }
-inline std::optional<SandboxExtension::Handle> SandboxExtension::Handle::decode(IPC::Decoder&) { return SandboxExtension::Handle { }; }
+inline std::optional<SandboxExtension::Handle> SandboxExtension::Handle::decode(IPC::Decoder&) { return {{ }}; }
 inline SandboxExtension::HandleArray::HandleArray() { }
 inline SandboxExtension::HandleArray::~HandleArray() { }
 inline void SandboxExtension::HandleArray::allocate(size_t) { }
index 3cdee82..d0226bb 100644 (file)
@@ -65,7 +65,7 @@ std::optional<TouchBarMenuItemData> TouchBarMenuItemData::decode(IPC::Decoder& d
     if (!decoder.decode(result.priority))
         return std::nullopt;
     
-    return std::make_optional(WTFMove(result));
+    return WTFMove(result);
 }
 
 }