Generated file

Copy as Markdown

Other Tools

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef speculationrules_ffi_generated_h
#define speculationrules_ffi_generated_h
/* Generated with cbindgen:0.29.4 */
/* DO NOT MODIFY THIS MANUALLY! This file was generated using cbindgen. See RunCbindgen.py */
#include <cstdarg>
#include <cstdint>
#include <cstdlib>
#include <ostream>
#include <new>
#include "nsString.h"
#include "nsTArray.h"
namespace mozilla::dom {
class Element;
class PrefetchCandidates;
class SpeculationRuleSet;
}
namespace mozilla {
namespace dom {
enum class SpeculationRuleParseError {
None,
TopLevelValueMustBeJsonObject,
InvalidTag,
InvalidBaseUrl,
};
enum class SpeculationRulesReferrerPolicy : uint8_t {
Empty,
NoReferrer,
NoReferrerWhenDowngrade,
Origin,
OriginWhenCrossOrigin,
UnsafeUrl,
SameOrigin,
StrictOrigin,
StrictOriginWhenCrossOrigin,
};
enum class Eagerness : uint8_t {
Conservative,
Moderate,
Eager,
Immediate,
};
struct PrefetchCandidate {
nsCString url;
nsTArray<nsCString> tags;
Eagerness eagerness;
SpeculationRulesReferrerPolicy referrer_policy;
nsCString no_vary_search_hint;
};
struct SpeculationRulesUsage {
bool used_prefetch;
bool used_list_source;
bool used_document_source;
bool used_eagerness_conservative;
bool used_eagerness_moderate;
bool used_eagerness_eager;
bool used_eagerness_immediate;
bool used_tag;
};
extern "C" {
mozilla::dom::SpeculationRuleSet *parse_speculation_rule_set(const nsACString *aRules,
const nsACString *aDocumentBaseUrl,
const nsACString *aBaseUrl,
SpeculationRuleParseError *aParseError);
void speculation_rule_set_destroy(mozilla::dom::SpeculationRuleSet *aRules);
extern bool Gecko_Element_GetHrefURI(const mozilla::dom::Element *aElement, nsACString *aSpec);
extern SpeculationRulesReferrerPolicy Gecko_Element_GetReferrerPolicy(const mozilla::dom::Element *aElement);
void consider_speculative_loads_for_rule_set(const mozilla::dom::SpeculationRuleSet *aRules,
mozilla::dom::PrefetchCandidates *aCandidates,
const nsTArray<const mozilla::dom::Element*> *aElements);
mozilla::dom::PrefetchCandidates *create_prefetch_candidates();
void prefetch_candidates_destroy(mozilla::dom::PrefetchCandidates *aCandidates);
uintptr_t prefetch_candidates_length(const mozilla::dom::PrefetchCandidates *aCandidates);
void prefetch_candidates_group(mozilla::dom::PrefetchCandidates *aCandidates);
void prefetch_candidates_as_array(const mozilla::dom::PrefetchCandidates *aCandidates,
nsTArray<PrefetchCandidate> *aResult);
SpeculationRulesUsage speculation_rule_set_use_counters(const mozilla::dom::SpeculationRuleSet *aRules);
} // extern "C"
} // namespace dom
} // namespace mozilla
#endif // speculationrules_ffi_generated_h