blob: c6ae6ffd043cd957b62290e2c97ed614f0440b7f [file] [log] [blame]
// Copyright 2015 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 "services/ui/public/cpp/window_tree_host_factory.h"
#include "base/memory/ptr_util.h"
#include "services/service_manager/public/cpp/connector.h"
#include "services/ui/public/cpp/window_tree_client.h"
#include "services/ui/public/cpp/window_tree_client_delegate.h"
#include "services/ui/public/interfaces/constants.mojom.h"
namespace ui {
std::unique_ptr<WindowTreeClient> CreateWindowTreeHost(
mojom::WindowTreeHostFactory* factory,
WindowTreeClientDelegate* delegate,
mojom::WindowTreeHostPtr* host,
WindowManagerDelegate* window_manager_delegate) {
mojom::WindowTreeClientPtr tree_client;
std::unique_ptr<WindowTreeClient> window_tree_client =
base::MakeUnique<WindowTreeClient>(delegate, window_manager_delegate,
MakeRequest(&tree_client));
factory->CreateWindowTreeHost(MakeRequest(host), std::move(tree_client));
return window_tree_client;
}
std::unique_ptr<WindowTreeClient> CreateWindowTreeHost(
service_manager::Connector* connector,
WindowTreeClientDelegate* delegate,
mojom::WindowTreeHostPtr* host,
WindowManagerDelegate* window_manager_delegate) {
mojom::WindowTreeHostFactoryPtr factory;
connector->BindInterface(ui::mojom::kServiceName, &factory);
return CreateWindowTreeHost(factory.get(), delegate, host,
window_manager_delegate);
}
} // namespace ui