#include "third_party/blink/renderer/core/svg/svg_use_element.h"
#include "third_party/blink/public/platform/task_type.h"
#include "third_party/blink/renderer/core/css/style_change_reason.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/events/event.h"
#include "third_party/blink/renderer/core/dom/id_target_observer.h"
#include "third_party/blink/renderer/core/dom/increment_load_event_delay_count.h"
#include "third_party/blink/renderer/core/dom/node_cloning_data.h"
#include "third_party/blink/renderer/core/dom/shadow_root.h"
#include "third_party/blink/renderer/core/dom/xml_document.h"
#include "third_party/blink/renderer/core/frame/deprecation/deprecation.h"
#include "third_party/blink/renderer/core/frame/local_dom_window.h"
#include "third_party/blink/renderer/core/layout/svg/layout_svg_transformable_container.h"
#include "third_party/blink/renderer/core/svg/svg_animated_length.h"
#include "third_party/blink/renderer/core/svg/svg_circle_element.h"
#include "third_party/blink/renderer/core/svg/svg_ellipse_element.h"
#include "third_party/blink/renderer/core/svg/svg_g_element.h"
#include "third_party/blink/renderer/core/svg/svg_length_context.h"
#include "third_party/blink/renderer/core/svg/svg_path_element.h"
#include "third_party/blink/renderer/core/svg/svg_polygon_element.h"
#include "third_party/blink/renderer/core/svg/svg_polyline_element.h"
#include "third_party/blink/renderer/core/svg/svg_rect_element.h"
#include "third_party/blink/renderer/core/svg/svg_resource_document_content.h"
#include "third_party/blink/renderer/core/svg/svg_svg_element.h"
#include "third_party/blink/renderer/core/svg/svg_symbol_element.h"
#include "third_party/blink/renderer/core/svg/svg_text_element.h"
#include "third_party/blink/renderer/core/svg/svg_title_element.h"
#include "third_party/blink/renderer/core/svg_names.h"
#include "third_party/blink/renderer/core/xlink_names.h"
#include "third_party/blink/renderer/core/xml/parser/xml_document_parser.h"
#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
#include "third_party/blink/renderer/platform/loader/fetch/fetch_initiator_type_names.h"
#include "third_party/blink/renderer/platform/loader/fetch/fetch_parameters.h"
#include "third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h"
#include "third_party/blink/renderer/platform/loader/fetch/resource_loader_options.h"
#include "third_party/blink/renderer/platform/wtf/vector.h"
namespace blink {
SVGUseElement::SVGUseElement(Document& document)
: … { … }
SVGUseElement::~SVGUseElement() = default;
void SVGUseElement::Trace(Visitor* visitor) const { … }
#if DCHECK_IS_ON()
static inline bool IsWellFormedDocument(const Document& document) { … }
#endif
Node::InsertionNotificationRequest SVGUseElement::InsertedInto(
ContainerNode& root_parent) { … }
void SVGUseElement::RemovedFrom(ContainerNode& root_parent) { … }
void SVGUseElement::DidMoveToNewDocument(Document& old_document) { … }
static void TransferUseWidthAndHeightIfNeeded(
const SVGUseElement& use,
SVGElement& shadow_element,
const SVGElement& original_element) { … }
void SVGUseElement::CollectStyleForPresentationAttribute(
const QualifiedName& name,
const AtomicString& value,
MutableCSSPropertyValueSet* style) { … }
bool SVGUseElement::IsStructurallyExternal() const { … }
bool SVGUseElement::HaveLoadedRequiredResources() { … }
void SVGUseElement::UpdateDocumentContent(
SVGResourceDocumentContent* document_content) { … }
void SVGUseElement::UpdateTargetReference() { … }
void SVGUseElement::SvgAttributeChanged(
const SvgAttributeChangedParams& params) { … }
static bool IsDisallowedElement(const Element& element) { … }
void SVGUseElement::ScheduleShadowTreeRecreation() { … }
void SVGUseElement::CancelShadowTreeRecreation() { … }
void SVGUseElement::ClearResourceReference() { … }
Element* SVGUseElement::ResolveTargetElement() { … }
SVGElement* SVGUseElement::InstanceRoot() const { … }
void SVGUseElement::BuildPendingResource() { … }
String SVGUseElement::title() const { … }
static void PostProcessInstanceTree(SVGElement& target_root,
SVGElement& instance_root) { … }
static void MoveChildrenToReplacementElement(ContainerNode& source_root,
ContainerNode& destination_root) { … }
SVGElement* SVGUseElement::CreateInstanceTree(SVGElement& target_root) const { … }
void SVGUseElement::AttachShadowTree(SVGElement& target) { … }
void SVGUseElement::DetachShadowTree() { … }
LayoutObject* SVGUseElement::CreateLayoutObject(const ComputedStyle&) { … }
static bool IsDirectReference(const SVGElement& element) { … }
Path SVGUseElement::ToClipPath() const { … }
SVGGraphicsElement* SVGUseElement::VisibleTargetGraphicsElementForClipping()
const { … }
bool SVGUseElement::HasCycleUseReferencing(const ContainerNode& target_instance,
const SVGElement& target) const { … }
bool SVGUseElement::ShadowTreeRebuildPending() const { … }
void SVGUseElement::InvalidateShadowTree() { … }
void SVGUseElement::InvalidateTargetReference() { … }
bool SVGUseElement::SelfHasRelativeLengths() const { … }
gfx::RectF SVGUseElement::GetBBox() { … }
void SVGUseElement::QueueOrDispatchPendingEvent(
const AtomicString& event_name) { … }
void SVGUseElement::ResourceNotifyFinished(
SVGResourceDocumentContent* document_content) { … }
SVGAnimatedPropertyBase* SVGUseElement::PropertyFromAttribute(
const QualifiedName& attribute_name) const { … }
void SVGUseElement::SynchronizeAllSVGAttributes() const { … }
void SVGUseElement::CollectExtraStyleForPresentationAttribute(
MutableCSSPropertyValueSet* style) { … }
}