chromium/chrome/browser/ui/ash/shelf/app_service/exo_app_type_resolver.h

// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CHROME_BROWSER_UI_ASH_SHELF_APP_SERVICE_EXO_APP_TYPE_RESOLVER_H_
#define CHROME_BROWSER_UI_ASH_SHELF_APP_SERVICE_EXO_APP_TYPE_RESOLVER_H_

#include "ash/components/arc/video_accelerator/protected_native_pixmap_query_client.h"
#include "components/exo/wm_helper.h"

// This class populates the window property to identify the type of application
// for exo's toplevel window based on |app_id| and |startup_id|.
class ExoAppTypeResolver : public exo::WMHelper::AppPropertyResolver {
 public:
  ExoAppTypeResolver() = default;
  ExoAppTypeResolver(const ExoAppTypeResolver&) = delete;
  ExoAppTypeResolver& operator=(const ExoAppTypeResolver&) = delete;
  ~ExoAppTypeResolver() override = default;

  // exo::WMHelper::AppPropertyResolver:
  void PopulateProperties(
      const Params& params,
      ui::PropertyHandler& out_properties_container) override;

 private:
  arc::ProtectedNativePixmapQueryClient protected_native_pixmap_query_client_;
};

#endif  // CHROME_BROWSER_UI_ASH_SHELF_APP_SERVICE_EXO_APP_TYPE_RESOLVER_H_