blob: d1d9273e39a6bdafe4ed938ef026bd4fb19ec307 [file] [log] [blame]
// 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 "chrome/browser/apps/app_service/browser_app_instance_forwarder.h"
#include <utility>
#include "chrome/browser/apps/app_service/browser_app_instance.h"
#include "chrome/browser/apps/app_service/browser_app_instance_tracker.h"
#include "chrome/browser/lacros/window_utility.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_window.h"
#include "chrome/common/chrome_features.h"
#include "chromeos/crosapi/mojom/app_service.mojom.h"
#include "chromeos/crosapi/mojom/browser_app_instance_registry.mojom.h"
#include "chromeos/lacros/lacros_service.h"
namespace apps {
BrowserAppInstanceForwarder::BrowserAppInstanceForwarder(
BrowserAppInstanceTracker& tracker)
: registry_(chromeos::LacrosService::Get()
->GetRemote<crosapi::mojom::BrowserAppInstanceRegistry>()) {
tracker_observation_.Observe(&tracker);
}
BrowserAppInstanceForwarder::~BrowserAppInstanceForwarder() = default;
std::unique_ptr<BrowserAppInstanceForwarder>
BrowserAppInstanceForwarder::Create(BrowserAppInstanceTracker* tracker) {
if (!base::FeatureList::IsEnabled(features::kBrowserAppInstanceTracking)) {
return nullptr;
}
return std::make_unique<BrowserAppInstanceForwarder>(*tracker);
}
void BrowserAppInstanceForwarder::OnBrowserWindowAdded(
const apps::BrowserWindowInstance& instance) {
registry_->OnBrowserWindowAdded(instance.ToUpdate());
}
void BrowserAppInstanceForwarder::OnBrowserWindowUpdated(
const apps::BrowserWindowInstance& instance) {
registry_->OnBrowserWindowUpdated(instance.ToUpdate());
}
void BrowserAppInstanceForwarder::OnBrowserWindowRemoved(
const apps::BrowserWindowInstance& instance) {
registry_->OnBrowserWindowRemoved(instance.ToUpdate());
}
void BrowserAppInstanceForwarder::OnBrowserAppAdded(
const apps::BrowserAppInstance& instance) {
registry_->OnBrowserAppAdded(instance.ToUpdate());
}
void BrowserAppInstanceForwarder::OnBrowserAppUpdated(
const apps::BrowserAppInstance& instance) {
registry_->OnBrowserAppUpdated(instance.ToUpdate());
}
void BrowserAppInstanceForwarder::OnBrowserAppRemoved(
const apps::BrowserAppInstance& instance) {
registry_->OnBrowserAppRemoved(instance.ToUpdate());
}
} // namespace apps