#include "chrome/browser/picture_in_picture/picture_in_picture_occlusion_tracker.h"
#include "chrome/browser/picture_in_picture/picture_in_picture_occlusion_observer.h"
namespace {
constexpr base::TimeDelta kBoundsChangedUpdateDelay = …;
bool IsChildOfWidgetOrWidget(const views::Widget* widget,
const views::Widget* potential_ancestor) { … }
}
PictureInPictureOcclusionTracker::PictureInPictureOcclusionTracker() = default;
PictureInPictureOcclusionTracker::~PictureInPictureOcclusionTracker() = default;
void PictureInPictureOcclusionTracker::OnPictureInPictureWidgetOpened(
views::Widget* picture_in_picture_widget) { … }
void PictureInPictureOcclusionTracker::AddObserver(
PictureInPictureOcclusionTrackerObserver* observer) { … }
void PictureInPictureOcclusionTracker::RemoveObserver(
PictureInPictureOcclusionTrackerObserver* observer) { … }
void PictureInPictureOcclusionTracker::OnWidgetDestroying(
views::Widget* widget) { … }
void PictureInPictureOcclusionTracker::OnWidgetVisibilityChanged(
views::Widget* widget,
bool visibility) { … }
void PictureInPictureOcclusionTracker::OnWidgetBoundsChanged(
views::Widget* widget,
const gfx::Rect& new_bounds) { … }
std::vector<views::Widget*>
PictureInPictureOcclusionTracker::GetPictureInPictureWidgetsForTesting() { … }
void PictureInPictureOcclusionTracker::SetWidgetOcclusionStateForTesting(
views::Widget* observed_widget,
bool occluded) { … }
void PictureInPictureOcclusionTracker::ObserveWidgetAndParents(
views::Widget* widget,
bool directly_observe_this_widget) { … }
void PictureInPictureOcclusionTracker::UnobserveWidgetAndParents(
views::Widget* widget,
bool directly_unobserve_this_widget) { … }
void PictureInPictureOcclusionTracker::UpdateAllObserverStates() { … }
void PictureInPictureOcclusionTracker::UpdateObserverStateForWidget(
views::Widget* widget,
bool force_update) { … }