#include "third_party/blink/renderer/modules/presentation/presentation_controller.h"
#include <memory>
#include "base/task/single_thread_task_runner.h"
#include "third_party/blink/public/platform/browser_interface_broker_proxy.h"
#include "third_party/blink/renderer/core/frame/local_dom_window.h"
#include "third_party/blink/renderer/modules/presentation/presentation_availability_callbacks.h"
#include "third_party/blink/renderer/modules/presentation/presentation_availability_observer.h"
#include "third_party/blink/renderer/modules/presentation/presentation_availability_state.h"
#include "third_party/blink/renderer/modules/presentation/presentation_connection.h"
#include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
namespace blink {
PresentationController::PresentationController(LocalDOMWindow& window)
: … { … }
PresentationController::~PresentationController() = default;
const char PresentationController::kSupplementName[] = …;
PresentationController* PresentationController::From(LocalDOMWindow& window) { … }
PresentationController* PresentationController::FromContext(
ExecutionContext* execution_context) { … }
void PresentationController::Trace(Visitor* visitor) const { … }
void PresentationController::SetPresentation(Presentation* presentation) { … }
void PresentationController::RegisterConnection(
ControllerPresentationConnection* connection) { … }
PresentationAvailabilityState* PresentationController::GetAvailabilityState() { … }
void PresentationController::AddAvailabilityObserver(
PresentationAvailabilityObserver* observer) { … }
void PresentationController::RemoveAvailabilityObserver(
PresentationAvailabilityObserver* observer) { … }
void PresentationController::OnScreenAvailabilityUpdated(
const KURL& url,
mojom::blink::ScreenAvailability availability) { … }
void PresentationController::OnConnectionStateChanged(
mojom::blink::PresentationInfoPtr presentation_info,
mojom::blink::PresentationConnectionState state) { … }
void PresentationController::OnConnectionClosed(
mojom::blink::PresentationInfoPtr presentation_info,
mojom::blink::PresentationConnectionCloseReason reason,
const String& message) { … }
void PresentationController::OnDefaultPresentationStarted(
mojom::blink::PresentationConnectionResultPtr result) { … }
ControllerPresentationConnection*
PresentationController::FindExistingConnection(
const blink::WebVector<blink::WebURL>& presentation_urls,
const blink::WebString& presentation_id) { … }
HeapMojoRemote<mojom::blink::PresentationService>&
PresentationController::GetPresentationService() { … }
ControllerPresentationConnection* PresentationController::FindConnection(
const mojom::blink::PresentationInfo& presentation_info) const { … }
}