Title: [282667] trunk/Source/WebCore
Revision
282667
Author
wei...@apple.com
Date
2021-09-17 10:18:08 -0700 (Fri, 17 Sep 2021)

Log Message

Add MIME type and URL to WebCore::Model to allow processing different model types
https://bugs.webkit.org/show_bug.cgi?id=230384

Reviewed by Darin Adler.

Adds MIME type and URL to WebCore::Model to allow processing different model types.
This change does not take advantave of them (and we still only support one type)
but this will allow us to add additional types going forward.

* Modules/model-element/HTMLModelElement.cpp:
(WebCore::HTMLModelElement::notifyFinished):
* platform/graphics/Model.cpp:
(WebCore::Model::create):
(WebCore::Model::Model):
(WebCore::operator<<):
* platform/graphics/Model.h:
(WebCore::Model::encode const):
(WebCore::Model::decode):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (282666 => 282667)


--- trunk/Source/WebCore/ChangeLog	2021-09-17 17:15:11 UTC (rev 282666)
+++ trunk/Source/WebCore/ChangeLog	2021-09-17 17:18:08 UTC (rev 282667)
@@ -1,3 +1,24 @@
+2021-09-17  Sam Weinig  <wei...@apple.com>
+
+        Add MIME type and URL to WebCore::Model to allow processing different model types
+        https://bugs.webkit.org/show_bug.cgi?id=230384
+
+        Reviewed by Darin Adler.
+
+        Adds MIME type and URL to WebCore::Model to allow processing different model types.
+        This change does not take advantave of them (and we still only support one type)
+        but this will allow us to add additional types going forward.
+
+        * Modules/model-element/HTMLModelElement.cpp:
+        (WebCore::HTMLModelElement::notifyFinished):
+        * platform/graphics/Model.cpp:
+        (WebCore::Model::create):
+        (WebCore::Model::Model):
+        (WebCore::operator<<):
+        * platform/graphics/Model.h:
+        (WebCore::Model::encode const):
+        (WebCore::Model::decode):
+
 2021-09-17  Alan Bujtas  <za...@apple.com>
 
         [LFC][Integration] Start using InlineInvalidation to clean runs and lines

Modified: trunk/Source/WebCore/Modules/model-element/HTMLModelElement.cpp (282666 => 282667)


--- trunk/Source/WebCore/Modules/model-element/HTMLModelElement.cpp	2021-09-17 17:15:11 UTC (rev 282666)
+++ trunk/Source/WebCore/Modules/model-element/HTMLModelElement.cpp	2021-09-17 17:18:08 UTC (rev 282667)
@@ -229,7 +229,7 @@
     }
 
     m_dataComplete = true;
-    m_model = Model::create(*m_data);
+    m_model = Model::create(*m_data, resource.mimeType(), resource.url());
 
     invalidateResourceHandleAndUpdateRenderer();
 

Modified: trunk/Source/WebCore/platform/graphics/Model.cpp (282666 => 282667)


--- trunk/Source/WebCore/platform/graphics/Model.cpp	2021-09-17 17:15:11 UTC (rev 282666)
+++ trunk/Source/WebCore/platform/graphics/Model.cpp	2021-09-17 17:18:08 UTC (rev 282667)
@@ -30,13 +30,15 @@
 
 namespace WebCore {
 
-Ref<Model> Model::create(Ref<SharedBuffer> data)
+Ref<Model> Model::create(Ref<SharedBuffer> data, String mimeType, URL url)
 {
-    return adoptRef(*new Model(data));
+    return adoptRef(*new Model(WTFMove(data), WTFMove(mimeType), WTFMove(url)));
 }
 
-Model::Model(Ref<SharedBuffer> data)
-    : m_data(data)
+Model::Model(Ref<SharedBuffer> data, String mimeType, URL url)
+    : m_data(WTFMove(data))
+    , m_mimeType(WTFMove(mimeType))
+    , m_url(WTFMove(url))
 {
 }
 
@@ -45,9 +47,11 @@
 TextStream& operator<<(TextStream& ts, const Model& model)
 {
     TextStream::GroupScope groupScope(ts);
-    
+
     ts.dumpProperty("data-size", model.data()->size());
-    
+    ts.dumpProperty("mime-type", model.mimeType());
+    ts.dumpProperty("url", model.url());
+
     return ts;
 }
 

Modified: trunk/Source/WebCore/platform/graphics/Model.h (282666 => 282667)


--- trunk/Source/WebCore/platform/graphics/Model.h	2021-09-17 17:15:11 UTC (rev 282666)
+++ trunk/Source/WebCore/platform/graphics/Model.h	2021-09-17 17:18:08 UTC (rev 282667)
@@ -29,6 +29,8 @@
 
 #include "SharedBuffer.h"
 #include <wtf/RefCounted.h>
+#include <wtf/URL.h>
+#include <wtf/text/WTFString.h>
 
 namespace WTF {
 class TextStream;
@@ -38,18 +40,22 @@
 
 class Model final : public RefCounted<Model> {
 public:
-    WEBCORE_EXPORT static Ref<Model> create(Ref<SharedBuffer>);
+    WEBCORE_EXPORT static Ref<Model> create(Ref<SharedBuffer>, String, URL);
     WEBCORE_EXPORT ~Model();
 
     Ref<SharedBuffer> data() const { return m_data; }
+    const String& mimeType() const { return m_mimeType; }
+    const URL& url() const { return m_url; }
     
     template<class Encoder> void encode(Encoder&) const;
     template<class Decoder> static RefPtr<Model> decode(Decoder&);
 
 private:
-    explicit Model(Ref<SharedBuffer>);
+    explicit Model(Ref<SharedBuffer>, String, URL);
 
     Ref<SharedBuffer> m_data;
+    String m_mimeType;
+    URL m_url;
 };
 
 template<class Encoder>
@@ -57,6 +63,8 @@
 {
     encoder << static_cast<size_t>(m_data->size());
     encoder.encodeFixedLengthData(m_data->data(), m_data->size(), 1);
+    encoder << m_mimeType;
+    encoder << m_url;
 }
 
 template<class Decoder>
@@ -77,7 +85,17 @@
     if (!decoder.decodeFixedLengthData(data.data(), data.size(), 1))
         return nullptr;
 
-    return Model::create(SharedBuffer::create(WTFMove(data)));
+    std::optional<String> mimeType;
+    decoder >> mimeType;
+    if (!mimeType)
+        return nullptr;
+
+    std::optional<URL> url;
+    decoder >> url;
+    if (!url)
+        return nullptr;
+
+    return Model::create(SharedBuffer::create(WTFMove(data)), WTFMove(*mimeType), WTFMove(*url));
 }
 
 WEBCORE_EXPORT WTF::TextStream& operator<<(WTF::TextStream&, const Model&);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to