diff options
Diffstat (limited to 'chromium/ui/aura/env.cc')
-rw-r--r-- | chromium/ui/aura/env.cc | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/chromium/ui/aura/env.cc b/chromium/ui/aura/env.cc index 148300ca43b..7e82d4e13cd 100644 --- a/chromium/ui/aura/env.cc +++ b/chromium/ui/aura/env.cc @@ -4,6 +4,7 @@ #include "ui/aura/env.h" +#include "base/command_line.h" #include "base/lazy_instance.h" #include "base/threading/thread_local.h" #include "ui/aura/env_observer.h" @@ -23,6 +24,14 @@ namespace { base::LazyInstance<base::ThreadLocalPointer<Env> >::Leaky lazy_tls_ptr = LAZY_INSTANCE_INITIALIZER; +#if defined(USE_OZONE) +// Returns true if running inside of mus. Checks for mojo specific flag. +bool RunningInsideMus() { + return base::CommandLine::ForCurrentProcess()->HasSwitch( + "primordial-pipe-token"); +} +#endif + } // namespace //////////////////////////////////////////////////////////////////////////////// @@ -84,12 +93,16 @@ Env::~Env() { } void Env::Init(bool create_event_source) { + if (!create_event_source) + return; #if defined(USE_OZONE) // The ozone platform can provide its own event source. So initialize the - // platform before creating the default event source. - ui::OzonePlatform::InitializeForUI(); + // platform before creating the default event source. If running inside mus + // let the mus process initialize ozone instead. + if (!RunningInsideMus()) + ui::OzonePlatform::InitializeForUI(); #endif - if (create_event_source && !ui::PlatformEventSource::GetInstance()) + if (!ui::PlatformEventSource::GetInstance()) event_source_ = ui::PlatformEventSource::CreateDefault(); } |