blob: 2f3a1e9cebfffa467b01c611470926b2617e5d6b [file] [log] [blame]
// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "third_party/blink/renderer/core/frame/display_cutout_client_impl.h"
#include "third_party/blink/renderer/core/css/document_style_environment_variables.h"
#include "third_party/blink/renderer/core/css/style_engine.h"
#include "third_party/blink/renderer/core/frame/local_frame.h"
namespace blink {
DisplayCutoutClientImpl::DisplayCutoutClientImpl(
LocalFrame* frame,
mojo::PendingAssociatedReceiver<mojom::blink::DisplayCutoutClient> receiver)
: frame_(frame), receiver_(this, std::move(receiver)) {}
void DisplayCutoutClientImpl::BindMojoReceiver(
LocalFrame* frame,
mojo::PendingAssociatedReceiver<mojom::blink::DisplayCutoutClient>
receiver) {
if (!frame)
return;
MakeGarbageCollected<DisplayCutoutClientImpl>(frame, std::move(receiver));
}
void DisplayCutoutClientImpl::SetSafeArea(const gfx::Insets& safe_area) {
DocumentStyleEnvironmentVariables& vars =
frame_->GetDocument()->GetStyleEngine().EnsureEnvironmentVariables();
vars.SetVariable(UADefinedVariable::kSafeAreaInsetTop,
StyleEnvironmentVariables::FormatPx(safe_area.top()));
vars.SetVariable(UADefinedVariable::kSafeAreaInsetLeft,
StyleEnvironmentVariables::FormatPx(safe_area.left()));
vars.SetVariable(UADefinedVariable::kSafeAreaInsetBottom,
StyleEnvironmentVariables::FormatPx(safe_area.bottom()));
vars.SetVariable(UADefinedVariable::kSafeAreaInsetRight,
StyleEnvironmentVariables::FormatPx(safe_area.right()));
}
void DisplayCutoutClientImpl::Trace(Visitor* visitor) const {
visitor->Trace(frame_);
}
} // namespace blink