[go: nahoru, domu]

blob: 302be8ed52933a59ddc6a6eb3c99fd4ee4bb1b6c [file] [log] [blame]
// Copyright 2022 The Chromium Authors
// 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_CORE_LOADER_SPECULATION_RULE_LOADER_H_
#define THIRD_PARTY_BLINK_RENDERER_CORE_LOADER_SPECULATION_RULE_LOADER_H_
#include "base/time/time.h"
#include "third_party/blink/renderer/core/core_export.h"
#include "third_party/blink/renderer/platform/bindings/name_client.h"
#include "third_party/blink/renderer/platform/heap/member.h"
#include "third_party/blink/renderer/platform/loader/fetch/resource_finish_observer.h"
namespace blink {
class Document;
class SpeculationRulesResource;
// This is used for Speculation-Rules header
class CORE_EXPORT SpeculationRuleLoader final : public ResourceFinishObserver,
public NameClient {
public:
explicit SpeculationRuleLoader(Document& document);
~SpeculationRuleLoader() override;
void Trace(Visitor*) const override;
const char* NameInHeapSnapshot() const override {
return "SpeculationRuleLoader";
}
String DebugName() const override { return "SpeculationRuleLoader"; }
void LoadResource(SpeculationRulesResource*);
private:
void NotifyFinished() override;
Member<Document> document_;
Member<SpeculationRulesResource> resource_;
base::TimeTicks start_time_;
};
} // namespace blink
#endif // THIRD_PARTY_BLINK_RENDERER_CORE_LOADER_SPECULATION_RULE_LOADER_H_