#include "third_party/blink/renderer/modules/service_worker/fetch_respond_with_observer.h"
#include <memory>
#include <utility>
#include "base/metrics/histogram_macros.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "services/network/public/mojom/fetch_api.mojom-blink.h"
#include "third_party/blink/public/mojom/devtools/console_message.mojom-blink.h"
#include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom-blink-forward.h"
#include "third_party/blink/public/mojom/fetch/fetch_api_response.mojom-blink.h"
#include "third_party/blink/public/mojom/loader/request_context_frame_type.mojom-blink.h"
#include "third_party/blink/public/mojom/service_worker/service_worker_stream_handle.mojom-blink.h"
#include "third_party/blink/public/platform/task_type.h"
#include "third_party/blink/renderer/bindings/core/v8/script_value.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_response.h"
#include "third_party/blink/renderer/core/execution_context/execution_context.h"
#include "third_party/blink/renderer/core/fetch/body_stream_buffer.h"
#include "third_party/blink/renderer/core/fetch/response.h"
#include "third_party/blink/renderer/core/inspector/console_message.h"
#include "third_party/blink/renderer/core/streams/readable_stream.h"
#include "third_party/blink/renderer/modules/service_worker/cross_origin_resource_policy_checker.h"
#include "third_party/blink/renderer/modules/service_worker/fetch_event.h"
#include "third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h"
#include "third_party/blink/renderer/modules/service_worker/wait_until_observer.h"
#include "third_party/blink/renderer/platform/bindings/exception_state.h"
#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
#include "third_party/blink/renderer/platform/loader/fetch/bytes_consumer.h"
#include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
#include "third_party/blink/renderer/platform/wtf/gc_plugin.h"
#include "v8/include/v8.h"
ServiceWorkerResponseError;
namespace blink {
namespace {
const String GetMessageForResponseError(ServiceWorkerResponseError error,
const KURL& request_url) { … }
bool IsNavigationRequest(mojom::RequestContextFrameType frame_type) { … }
bool IsClientRequest(mojom::RequestContextFrameType frame_type,
network::mojom::RequestDestination destination) { … }
class FetchLoaderClient final : public GarbageCollected<FetchLoaderClient>,
public FetchDataLoader::Client { … };
class UploadingCompletionObserver
: public GarbageCollected<UploadingCompletionObserver>,
public BytesUploader::Client { … };
}
void FetchRespondWithObserver::OnResponseRejected(
ServiceWorkerResponseError error) { … }
void FetchRespondWithObserver::OnResponseFulfilled(
ScriptState* script_state,
const ScriptValue& value,
const ExceptionContext& exception_context) { … }
void FetchRespondWithObserver::OnNoResponse(ScriptState* script_state) { … }
void FetchRespondWithObserver::SetEvent(FetchEvent* event) { … }
FetchRespondWithObserver::FetchRespondWithObserver(
ExecutionContext* context,
int fetch_event_id,
base::WeakPtr<CrossOriginResourcePolicyChecker> corp_checker,
const mojom::blink::FetchAPIRequest& request,
WaitUntilObserver* observer)
: … { … }
void FetchRespondWithObserver::Trace(Visitor* visitor) const { … }
}