blob: 7acce258f9adf23618106d7343f2632ea932813d [file] [log] [blame]
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_LOADER_TESTING_MOCK_FETCH_CONTEXT_H_
#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_LOADER_TESTING_MOCK_FETCH_CONTEXT_H_
#include "base/optional.h"
#include "base/single_thread_task_runner.h"
#include "third_party/blink/public/platform/platform.h"
#include "third_party/blink/renderer/platform/exported/wrapped_resource_request.h"
#include "third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object_snapshot.h"
#include "third_party/blink/renderer/platform/loader/fetch/fetch_context.h"
#include "third_party/blink/renderer/platform/loader/fetch/fetch_parameters.h"
#include "third_party/blink/renderer/platform/loader/fetch/resource_timing_info.h"
#include "third_party/blink/renderer/platform/scheduler/test/fake_task_runner.h"
#include <memory>
namespace blink {
class KURL;
class ResourceRequest;
struct ResourceLoaderOptions;
// Mocked FetchContext for testing.
class MockFetchContext : public FetchContext {
public:
MockFetchContext() = default;
~MockFetchContext() override = default;
long long GetTransferSize() const { return transfer_size_; }
void CountUsage(mojom::WebFeature) const override {}
void CountDeprecation(mojom::WebFeature) const override {}
// The last ResourceRequest passed to DispatchWillSendRequest.
base::Optional<ResourceRequest> RequestFromWillSendRequest() const {
return will_send_request_;
}
// FetchContext:
void DispatchWillSendRequest(
unsigned long identifier,
ResourceRequest& request,
const ResourceResponse& redirect_response,
ResourceType,
const FetchInitiatorInfo& = FetchInitiatorInfo()) override {
will_send_request_ = request;
}
bool AllowImage(bool images_enabled, const KURL&) const override {
return true;
}
base::Optional<ResourceRequestBlockedReason> CanRequest(
ResourceType,
const ResourceRequest&,
const KURL&,
const ResourceLoaderOptions&,
SecurityViolationReportingPolicy,
ResourceRequest::RedirectStatus redirect_status) const override {
return base::nullopt;
}
base::Optional<ResourceRequestBlockedReason> CheckCSPForRequest(
mojom::RequestContextType,
const KURL& url,
const ResourceLoaderOptions& options,
SecurityViolationReportingPolicy reporting_policy,
ResourceRequest::RedirectStatus redirect_status) const override {
return base::nullopt;
}
void AddResourceTiming(
const ResourceTimingInfo& resource_timing_info) override {
transfer_size_ = resource_timing_info.TransferSize();
}
private:
long long transfer_size_ = -1;
base::Optional<ResourceRequest> will_send_request_;
};
} // namespace blink
#endif