瀏覽代碼

LibWeb: Add fetch group from the fetch spec

Add fetch group concept from the '2.4. Fetch groups' in
the fetch specs to the environment settings object.
mobounya 1 年之前
父節點
當前提交
9e223f6dae

+ 2 - 0
Userland/Libraries/LibWeb/HTML/Scripting/Environments.cpp

@@ -8,6 +8,7 @@
 
 
 #include <LibWeb/Bindings/MainThreadVM.h>
 #include <LibWeb/Bindings/MainThreadVM.h>
 #include <LibWeb/DOM/Document.h>
 #include <LibWeb/DOM/Document.h>
+#include <LibWeb/Fetch/Infrastructure/FetchRecord.h>
 #include <LibWeb/HTML/PromiseRejectionEvent.h>
 #include <LibWeb/HTML/PromiseRejectionEvent.h>
 #include <LibWeb/HTML/Scripting/Environments.h>
 #include <LibWeb/HTML/Scripting/Environments.h>
 #include <LibWeb/HTML/Scripting/ExceptionReporter.h>
 #include <LibWeb/HTML/Scripting/ExceptionReporter.h>
@@ -54,6 +55,7 @@ void EnvironmentSettingsObject::visit_edges(Cell::Visitor& visitor)
     visitor.visit(m_module_map);
     visitor.visit(m_module_map);
     visitor.ignore(m_outstanding_rejected_promises_weak_set);
     visitor.ignore(m_outstanding_rejected_promises_weak_set);
     m_realm_execution_context->visit_edges(visitor);
     m_realm_execution_context->visit_edges(visitor);
+    visitor.visit(m_fetch_group);
 }
 }
 
 
 JS::ExecutionContext& EnvironmentSettingsObject::realm_execution_context()
 JS::ExecutionContext& EnvironmentSettingsObject::realm_execution_context()

+ 6 - 0
Userland/Libraries/LibWeb/HTML/Scripting/Environments.h

@@ -9,6 +9,7 @@
 
 
 #include <LibJS/Forward.h>
 #include <LibJS/Forward.h>
 #include <LibURL/URL.h>
 #include <LibURL/URL.h>
+#include <LibWeb/Forward.h>
 #include <LibWeb/HTML/EventLoop/EventLoop.h>
 #include <LibWeb/HTML/EventLoop/EventLoop.h>
 #include <LibWeb/HTML/Origin.h>
 #include <LibWeb/HTML/Origin.h>
 #include <LibWeb/HTML/Scripting/ModuleMap.h>
 #include <LibWeb/HTML/Scripting/ModuleMap.h>
@@ -89,6 +90,7 @@ public:
     JS::Realm& realm();
     JS::Realm& realm();
     JS::Object& global_object();
     JS::Object& global_object();
     EventLoop& responsible_event_loop();
     EventLoop& responsible_event_loop();
+    Vector<JS::NonnullGCPtr<Fetch::Infrastructure::FetchRecord>>& fetch_group() { return m_fetch_group; }
 
 
     RunScriptDecision can_run_script();
     RunScriptDecision can_run_script();
     void prepare_to_run_script();
     void prepare_to_run_script();
@@ -135,6 +137,10 @@ private:
 
 
     // https://html.spec.whatwg.org/multipage/webappapis.html#about-to-be-notified-rejected-promises-list
     // https://html.spec.whatwg.org/multipage/webappapis.html#about-to-be-notified-rejected-promises-list
     Vector<JS::Handle<JS::Promise>> m_about_to_be_notified_rejected_promises_list;
     Vector<JS::Handle<JS::Promise>> m_about_to_be_notified_rejected_promises_list;
+
+    // https://fetch.spec.whatwg.org/#concept-fetch-record
+    // A fetch group holds an ordered list of fetch records
+    Vector<JS::NonnullGCPtr<Fetch::Infrastructure::FetchRecord>> m_fetch_group;
 };
 };
 
 
 EnvironmentSettingsObject& incumbent_settings_object();
 EnvironmentSettingsObject& incumbent_settings_object();