#include "third_party/blink/renderer/core/dom/visited_link_state.h"
#include "base/metrics/histogram_functions.h"
#include "base/metrics/histogram_macros.h"
#include "third_party/blink/public/common/features.h"
#include "third_party/blink/public/platform/platform.h"
#include "third_party/blink/renderer/core/dom/document.h"
#include "third_party/blink/renderer/core/dom/element_traversal.h"
#include "third_party/blink/renderer/core/dom/shadow_root.h"
#include "third_party/blink/renderer/core/execution_context/security_context.h"
#include "third_party/blink/renderer/core/frame/local_dom_window.h"
#include "third_party/blink/renderer/core/frame/local_frame.h"
#include "third_party/blink/renderer/core/html/html_anchor_element.h"
#include "third_party/blink/renderer/core/html_names.h"
#include "third_party/blink/renderer/core/svg/svg_element.h"
#include "third_party/blink/renderer/core/svg/svg_uri_reference.h"
namespace blink {
static inline const SecurityOrigin* CalculateFrameOrigin(
const Document& document) { … }
static inline const AtomicString& LinkAttribute(const Element& element) { … }
static inline LinkHash UnpartitionedLinkHashForElement(
const Element& element,
const AtomicString& attribute) { … }
static inline LinkHash PartitionedLinkHashForElement(
const Element& element,
const AtomicString& attribute) { … }
static inline LinkHash LinkHashForElement(
const Element& element,
const AtomicString& attribute = AtomicString()) { … }
VisitedLinkState::VisitedLinkState(const Document& document)
: … { … }
static void InvalidateStyleForAllLinksRecursively(
Node& root_node,
bool invalidate_visited_link_hashes) { … }
void VisitedLinkState::InvalidateStyleForAllLinks(
bool invalidate_visited_link_hashes) { … }
static void InvalidateStyleForLinkRecursively(Node& root_node,
LinkHash link_hash) { … }
void VisitedLinkState::InvalidateStyleForLink(LinkHash link_hash) { … }
void VisitedLinkState::UpdateSalt(uint64_t visited_link_salt) { … }
EInsideLink VisitedLinkState::DetermineLinkStateSlowCase(
const Element& element) { … }
void VisitedLinkState::Trace(Visitor* visitor) const { … }
}