Chromium Code Reviews| Index: ui/views/mus/aura_init.cc |
| diff --git a/ui/views/mus/aura_init.cc b/ui/views/mus/aura_init.cc |
| index 761708679bcaa8210af345ede60131abfc58ed5b..747ef39529ad384cd51c34c9560f0503867c4acc 100644 |
| --- a/ui/views/mus/aura_init.cc |
| +++ b/ui/views/mus/aura_init.cc |
| @@ -13,10 +13,13 @@ |
| #include "services/catalog/public/cpp/resource_loader.h" |
| #include "services/service_manager/public/cpp/connector.h" |
| #include "ui/aura/env.h" |
| +#include "ui/aura/mus/window_port_mus.h" |
| +#include "ui/aura/window_port_local.h" |
| #include "ui/base/ime/input_method_initializer.h" |
| #include "ui/base/material_design/material_design_controller.h" |
| #include "ui/base/resource/resource_bundle.h" |
| #include "ui/base/ui_base_paths.h" |
| +#include "ui/views/mus/mus_client.h" |
| #include "ui/views/views_delegate.h" |
| #if defined(OS_LINUX) |
| @@ -46,13 +49,20 @@ class MusViewsDelegate : public ViewsDelegate { |
| } // namespace |
| AuraInit::AuraInit(service_manager::Connector* connector, |
| + const service_manager::Identity& identity, |
| const std::string& resource_file, |
| const std::string& resource_file_200, |
| - const aura::Env::WindowPortFactory& window_port_factory) |
| + scoped_refptr<base::SingleThreadTaskRunner> io_task_runner, |
| + Mode mode) |
| : resource_file_(resource_file), |
| resource_file_200_(resource_file_200), |
| - env_(aura::Env::CreateInstance(window_port_factory)), |
| + env_(aura::Env::CreateInstance( |
| + base::Bind(&AuraInit::CreateWindowPort, base::Unretained(this)))), |
| views_delegate_(new MusViewsDelegate) { |
| + if (mode == Mode::AURA_MUS) { |
| + mus_client_ = |
| + base::WrapUnique(new MusClient(connector, identity, io_task_runner)); |
|
Elliot Glaysher
2016/11/03 00:21:43
MakeUnique<MusClient>?
sky
2016/11/03 03:07:52
The constructor is private (AuraInit is friended),
|
| + } |
| ui::MaterialDesignController::Initialize(); |
| InitializeResources(connector); |
| @@ -107,4 +117,17 @@ void AuraInit::InitializeResources(service_manager::Connector* connector) { |
| loader.TakeFile(resource_file_200_), ui::SCALE_FACTOR_200P); |
| } |
| +std::unique_ptr<aura::WindowPort> AuraInit::CreateWindowPort( |
| + aura::Window* window) { |
| + if (mus_client_) { |
| + std::unique_ptr<aura::WindowPortMus> window_port = |
| + base::MakeUnique<aura::WindowPortMus>(mus_client_->window_tree_client(), |
| + aura::WindowMusType::LOCAL); |
| + return std::move(window_port); |
|
Elliot Glaysher
2016/11/03 00:21:43
Are you able to just return the output of MakeUniq
sky
2016/11/03 03:07:52
Because the types differ, no. By that I mean uniqu
|
| + } |
| + std::unique_ptr<aura::WindowPortLocal> window_port = |
| + base::MakeUnique<aura::WindowPortLocal>(window); |
| + return std::move(window_port); |
| +} |
| + |
| } // namespace views |