Index: services/ui/demo/mus_demo_external.cc |
diff --git a/services/ui/demo/mus_demo_external.cc b/services/ui/demo/mus_demo_external.cc |
index 468506a978cbcba623afa4743c63ea8d6ae30612..f76c0a8dedbb0952bb9b9b23f555755a2acbb644 100644 |
--- a/services/ui/demo/mus_demo_external.cc |
+++ b/services/ui/demo/mus_demo_external.cc |
@@ -22,19 +22,13 @@ namespace { |
class WindowTreeDataExternal : public WindowTreeData { |
public: |
// Creates a new window tree host associated to the WindowTreeData. |
- WindowTreeDataExternal(mojom::WindowTreeHostFactory* factory, |
- mojom::WindowTreeClientPtr tree_client, |
+ WindowTreeDataExternal(aura::WindowTreeClient* window_tree_client, |
int square_size) |
: WindowTreeData(square_size) { |
- // TODO(tonikitoo,fwang): Extend the API to allow creating WindowTreeHost |
- // using the WindowTreeClient. |
- factory->CreateWindowTreeHost(MakeRequest(&host_), std::move(tree_client)); |
+ SetWindowTreeHost( |
+ base::MakeUnique<aura::WindowTreeHostMus>(window_tree_client)); |
} |
- private: |
- // Holds the Mojo pointer to the window tree host. |
- mojom::WindowTreeHostPtr host_; |
- |
DISALLOW_COPY_AND_ASSIGN(WindowTreeDataExternal); |
}; |
@@ -50,9 +44,7 @@ MusDemoExternal::~MusDemoExternal() {} |
std::unique_ptr<aura::WindowTreeClient> |
MusDemoExternal::CreateWindowTreeClient() { |
- return base::MakeUnique<aura::WindowTreeClient>( |
- context()->connector(), this, nullptr, |
- MakeRequest(&window_tree_client_mojo_)); |
+ return base::MakeUnique<aura::WindowTreeClient>(context()->connector(), this); |
} |
void MusDemoExternal::OnStartImpl() { |
@@ -67,38 +59,31 @@ void MusDemoExternal::OnStartImpl() { |
} |
} |
- // TODO(tonikitoo,fwang): Extend the WindowTreeClient API to allow connection |
- // to the window tree host factory using window_tree_client(). |
- context()->connector()->BindInterface(ui::mojom::kServiceName, |
- &window_tree_host_factory_); |
+ window_tree_client()->ConnectViaWindowTreeHostFactory(); |
// TODO(tonikitoo,fwang): Implement management of displays in external mode. |
// For now, a fake display is created in order to work around an assertion in |
// aura::GetDeviceScaleFactorFromDisplay(). |
AddPrimaryDisplay(display::Display(0)); |
- // The number of windows to open is specified by number_of_windows_. The |
- // windows are opened sequentially (the first one here and the others after |
- // each call to OnEmbed) to ensure that the WindowTreeHostMus passed to |
- // OnEmbed corresponds to the WindowTreeDataExternal::host_ created in |
- // OpenNewWindow. |
+ // TODO(tonikitoo,fwang): New windows can be launched without need to wait |
+ // the respective ::OnEmbed call of the previous instance. |
OpenNewWindow(); |
} |
void MusDemoExternal::OpenNewWindow() { |
- // TODO(tonikitoo,fwang): Extend the WindowTreeClient API to allow creation |
- // of window tree host. Then pass window_tree_client() here and remove |
- // window_tree_host_factory_ and window_tree_client_mojo_. Currently |
- // window_tree_client_mojo_ is only initialized once so this is incorrect when |
- // kNumberOfWindows > 1. |
AppendWindowTreeData(base::MakeUnique<WindowTreeDataExternal>( |
- window_tree_host_factory_.get(), std::move(window_tree_client_mojo_), |
+ window_tree_client(), |
GetSquareSizeForWindow(initialized_windows_count_))); |
} |
void MusDemoExternal::OnEmbed( |
std::unique_ptr<aura::WindowTreeHostMus> window_tree_host) { |
- InitWindowTreeData(std::move(window_tree_host)); |
+ DCHECK(!window_tree_host); |
+ |
+ // TODO: Clean up WindowTreeClientDelegate::OnEmbed API so that it passes |
+ // no ownership of WindowTreeHostMus instance. |
+ InitWindowTreeData(nullptr); |
initialized_windows_count_++; |
// Open the next window until the requested number of windows is reached. |