Index: ash/host/ash_window_tree_host.cc |
diff --git a/ash/host/ash_window_tree_host.cc b/ash/host/ash_window_tree_host.cc |
index 5cbe067e6ec2fd13b38c13a3f361afaabfbebeeb..0bc59558f36effcf81d2c04348067faf9a6147e0 100644 |
--- a/ash/host/ash_window_tree_host.cc |
+++ b/ash/host/ash_window_tree_host.cc |
@@ -21,6 +21,12 @@ |
namespace ash { |
+namespace { |
+ |
+AshWindowTreeHost::Factory creation_factory; |
+ |
+} // namespace |
+ |
AshWindowTreeHost::AshWindowTreeHost() : input_method_handler_(nullptr) { |
} |
@@ -49,8 +55,12 @@ void AshWindowTreeHost::TranslateLocatedEvent(ui::LocatedEvent* event) { |
} |
} |
+// static |
AshWindowTreeHost* AshWindowTreeHost::Create( |
const AshWindowTreeHostInitParams& init_params) { |
+ if (!creation_factory.is_null()) |
+ return creation_factory.Run(init_params); |
+ |
if (init_params.offscreen) |
return new AshWindowTreeHostUnified(init_params.initial_bounds); |
#if defined(USE_OZONE) |
@@ -64,4 +74,9 @@ AshWindowTreeHost* AshWindowTreeHost::Create( |
#endif |
} |
+// static |
+void AshWindowTreeHost::SetFactory(const Factory& factory) { |
+ creation_factory = factory; |
+} |
+ |
} // namespace ash |