#include "third_party/blink/renderer/core/annotation/annotation_agent_container_impl.h"
#include "base/functional/callback.h"
#include "base/trace_event/typed_macros.h"
#include "components/shared_highlighting/core/common/disabled_sites.h"
#include "components/shared_highlighting/core/common/shared_highlighting_features.h"
#include "third_party/blink/renderer/core/annotation/annotation_agent_generator.h"
#include "third_party/blink/renderer/core/annotation/annotation_agent_impl.h"
#include "third_party/blink/renderer/core/annotation/annotation_selector.h"
#include "third_party/blink/renderer/core/annotation/text_annotation_selector.h"
#include "third_party/blink/renderer/core/editing/frame_selection.h"
#include "third_party/blink/renderer/core/editing/visible_selection.h"
#include "third_party/blink/renderer/core/execution_context/execution_context.h"
#include "third_party/blink/renderer/core/fragment_directive/text_fragment_handler.h"
#include "third_party/blink/renderer/core/fragment_directive/text_fragment_selector.h"
#include "third_party/blink/renderer/core/frame/local_frame.h"
#include "third_party/blink/renderer/core/page/chrome_client.h"
#include "third_party/blink/renderer/core/page/page.h"
namespace blink {
namespace {
const char* ToString(mojom::blink::AnnotationType type) { … }
}
const char AnnotationAgentContainerImpl::kSupplementName[] = …;
void AnnotationAgentContainerImpl::AddObserver(Observer* observer) { … }
void AnnotationAgentContainerImpl::RemoveObserver(Observer* observer) { … }
AnnotationAgentContainerImpl* AnnotationAgentContainerImpl::CreateIfNeeded(
Document& document) { … }
AnnotationAgentContainerImpl* AnnotationAgentContainerImpl::FromIfExists(
Document& document) { … }
void AnnotationAgentContainerImpl::BindReceiver(
LocalFrame* frame,
mojo::PendingReceiver<mojom::blink::AnnotationAgentContainer> receiver) { … }
AnnotationAgentContainerImpl::AnnotationAgentContainerImpl(Document& document,
PassKey)
: … { … }
void AnnotationAgentContainerImpl::Bind(
mojo::PendingReceiver<mojom::blink::AnnotationAgentContainer> receiver) { … }
void AnnotationAgentContainerImpl::Trace(Visitor* visitor) const { … }
void AnnotationAgentContainerImpl::PerformInitialAttachments() { … }
AnnotationAgentImpl* AnnotationAgentContainerImpl::CreateUnboundAgent(
mojom::blink::AnnotationType type,
AnnotationSelector& selector) { … }
void AnnotationAgentContainerImpl::RemoveAgent(AnnotationAgentImpl& agent,
AnnotationAgentImpl::PassKey) { … }
HeapHashSet<Member<AnnotationAgentImpl>>
AnnotationAgentContainerImpl::GetAgentsOfType(
mojom::blink::AnnotationType type) { … }
void AnnotationAgentContainerImpl::CreateAgent(
mojo::PendingRemote<mojom::blink::AnnotationAgentHost> host_remote,
mojo::PendingReceiver<mojom::blink::AnnotationAgent> agent_receiver,
mojom::blink::AnnotationType type,
const String& serialized_selector) { … }
void AnnotationAgentContainerImpl::CreateAgentFromSelection(
mojom::blink::AnnotationType type,
CreateAgentFromSelectionCallback callback) { … }
void AnnotationAgentContainerImpl::DidFinishSelectorGeneration(
CreateAgentFromSelectionCallback callback,
mojom::blink::AnnotationType type,
shared_highlighting::LinkGenerationReadyStatus ready_status,
const String& selected_text,
const TextFragmentSelector& selector,
shared_highlighting::LinkGenerationError error) { … }
void AnnotationAgentContainerImpl::OpenedContextMenuOverSelection() { … }
bool AnnotationAgentContainerImpl::IsLifecycleCleanForAttachment() const { … }
bool AnnotationAgentContainerImpl::ShouldPreemptivelyGenerate() { … }
void AnnotationAgentContainerImpl::ScheduleBeginMainFrame() { … }
Document& AnnotationAgentContainerImpl::GetDocument() const { … }
LocalFrame& AnnotationAgentContainerImpl::GetFrame() const { … }
}