Index: ui/aura/env.cc |
diff --git a/ui/aura/env.cc b/ui/aura/env.cc |
index 1799a59d9eb6718df033557d642377692c35319d..9436b2be50f4a95bc40322d8bef9a0a43b4b202c 100644 |
--- a/ui/aura/env.cc |
+++ b/ui/aura/env.cc |
@@ -76,7 +76,7 @@ class Env::ActiveFocusClientWindowObserver : public WindowObserver { |
// Env, public: |
Env::~Env() { |
- if (RunningInsideMus()) |
+ if (is_os_exchange_data_provider_factory_) |
ui::OSExchangeDataProviderFactory::SetFactory(nullptr); |
for (EnvObserver& observer : observers_) |
@@ -197,7 +197,7 @@ Env::Env(Mode mode) |
void Env::Init() { |
if (RunningInsideMus()) { |
- ui::OSExchangeDataProviderFactory::SetFactory(this); |
+ EnableMusOSExchangeDataProvider(); |
return; |
} |
@@ -211,6 +211,13 @@ void Env::Init() { |
event_source_ = ui::PlatformEventSource::CreateDefault(); |
} |
+void Env::EnableMusOSExchangeDataProvider() { |
+ if (!is_os_exchange_data_provider_factory_) { |
+ ui::OSExchangeDataProviderFactory::SetFactory(this); |
+ is_os_exchange_data_provider_factory_ = true; |
+ } |
+} |
+ |
void Env::NotifyWindowInitialized(Window* window) { |
for (EnvObserver& observer : observers_) |
observer.OnWindowInitialized(window); |