| Index: ui/aura/env.cc
|
| diff --git a/ui/aura/env.cc b/ui/aura/env.cc
|
| index 0130bcbbe0f3f77e6f9f41d31d47fae3f0f1cd36..4d2db40d6f1cd33136a5ce42d450a142cc8767e2 100644
|
| --- a/ui/aura/env.cc
|
| +++ b/ui/aura/env.cc
|
| @@ -28,18 +28,10 @@
|
| ////////////////////////////////////////////////////////////////////////////////
|
| // Env, public:
|
|
|
| -Env::~Env() {
|
| - FOR_EACH_OBSERVER(EnvObserver, observers_, OnWillDestroyEnv());
|
| - DCHECK_EQ(this, lazy_tls_ptr.Pointer()->Get());
|
| - lazy_tls_ptr.Pointer()->Set(NULL);
|
| -}
|
| -
|
| // static
|
| -scoped_ptr<Env> Env::CreateInstance() {
|
| - DCHECK(!lazy_tls_ptr.Pointer()->Get());
|
| - scoped_ptr<Env> env(new Env());
|
| - env->Init();
|
| - return env.Pass();
|
| +void Env::CreateInstance(bool create_event_source) {
|
| + if (!lazy_tls_ptr.Pointer()->Get())
|
| + (new Env())->Init(create_event_source);
|
| }
|
|
|
| // static
|
| @@ -53,6 +45,11 @@
|
| // static
|
| Env* Env::GetInstanceDontCreate() {
|
| return lazy_tls_ptr.Pointer()->Get();
|
| +}
|
| +
|
| +// static
|
| +void Env::DeleteInstance() {
|
| + delete lazy_tls_ptr.Pointer()->Get();
|
| }
|
|
|
| void Env::AddObserver(EnvObserver* observer) {
|
| @@ -80,13 +77,19 @@
|
| lazy_tls_ptr.Pointer()->Set(this);
|
| }
|
|
|
| -void Env::Init() {
|
| +Env::~Env() {
|
| + FOR_EACH_OBSERVER(EnvObserver, observers_, OnWillDestroyEnv());
|
| + DCHECK_EQ(this, lazy_tls_ptr.Pointer()->Get());
|
| + lazy_tls_ptr.Pointer()->Set(NULL);
|
| +}
|
| +
|
| +void Env::Init(bool create_event_source) {
|
| #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();
|
| #endif
|
| - if (!ui::PlatformEventSource::GetInstance())
|
| + if (create_event_source && !ui::PlatformEventSource::GetInstance())
|
| event_source_ = ui::PlatformEventSource::CreateDefault();
|
| }
|
|
|
|
|