1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- // Copyright 2021 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #include "components/exo/security_delegate.h"
- #include <memory>
- #include <string>
- #include "ash/public/cpp/app_types_util.h"
- #include "components/exo/shell_surface_util.h"
- namespace exo {
- namespace {
- class DefaultSecurityDelegate : public SecurityDelegate {
- public:
- ~DefaultSecurityDelegate() override = default;
- // SecurityDelegate:
- std::string GetSecurityContext() const override { return ""; }
- bool CanLockPointer(aura::Window* toplevel) const override {
- // TODO(b/200896773): Move this out from exo's default security delegate
- // define in client's security delegates.
- return ash::IsArcWindow(toplevel) || ash::IsLacrosWindow(toplevel);
- }
- };
- } // namespace
- SecurityDelegate::~SecurityDelegate() = default;
- // static
- std::unique_ptr<SecurityDelegate>
- SecurityDelegate::GetDefaultSecurityDelegate() {
- return std::make_unique<DefaultSecurityDelegate>();
- }
- bool SecurityDelegate::CanSelfActivate(aura::Window* window) const {
- // TODO(b/233691818): The default should be "false", and clients should
- // override that if they need to self-activate.
- //
- // Unfortunately, several clients don't have their own SecurityDelegate yet,
- // so we will continue to use the old exo::Permissions stuff until they do.
- return HasPermissionToActivate(window);
- }
- bool SecurityDelegate::CanLockPointer(aura::Window* window) const {
- return false;
- }
- } // namespace exo
|