FetchAlgorithms.cpp 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. /*
  2. * Copyright (c) 2022, Linus Groh <linusg@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #include <LibJS/Heap/Heap.h>
  7. #include <LibJS/Runtime/VM.h>
  8. #include <LibWeb/Fetch/Infrastructure/FetchAlgorithms.h>
  9. namespace Web::Fetch::Infrastructure {
  10. JS::NonnullGCPtr<FetchAlgorithms> FetchAlgorithms::create(JS::VM& vm, Input input)
  11. {
  12. return vm.heap().allocate_without_realm<FetchAlgorithms>(vm, move(input));
  13. }
  14. FetchAlgorithms::FetchAlgorithms(JS::VM& vm, Input input)
  15. : m_process_request_body_chunk_length(JS::create_heap_function(vm.heap(), move(input.process_request_body_chunk_length)))
  16. , m_process_request_end_of_body(JS::create_heap_function(vm.heap(), move(input.process_request_end_of_body)))
  17. , m_process_early_hints_response(JS::create_heap_function(vm.heap(), move(input.process_early_hints_response)))
  18. , m_process_response(JS::create_heap_function(vm.heap(), move(input.process_response)))
  19. , m_process_response_end_of_body(JS::create_heap_function(vm.heap(), move(input.process_response_end_of_body)))
  20. , m_process_response_consume_body(JS::create_heap_function(vm.heap(), move(input.process_response_consume_body)))
  21. {
  22. }
  23. void FetchAlgorithms::visit_edges(JS::Cell::Visitor& visitor)
  24. {
  25. visitor.visit(m_process_request_body_chunk_length);
  26. visitor.visit(m_process_request_end_of_body);
  27. visitor.visit(m_process_early_hints_response);
  28. visitor.visit(m_process_response);
  29. visitor.visit(m_process_response_end_of_body);
  30. visitor.visit(m_process_response_consume_body);
  31. }
  32. }