new_window_delegate.cc 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. // Copyright 2019 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "ash/public/cpp/new_window_delegate.h"
  5. #include "base/check.h"
  6. #include "base/check_op.h"
  7. namespace ash {
  8. namespace {
  9. NewWindowDelegateProvider* g_delegate_provider = nullptr;
  10. }
  11. // static
  12. NewWindowDelegate* NewWindowDelegate::GetInstance() {
  13. if (!g_delegate_provider)
  14. return nullptr;
  15. return g_delegate_provider->GetInstance();
  16. }
  17. // static
  18. NewWindowDelegate* NewWindowDelegate::GetPrimary() {
  19. if (!g_delegate_provider)
  20. return nullptr;
  21. return g_delegate_provider->GetPrimary();
  22. }
  23. NewWindowDelegate::NewWindowDelegate() = default;
  24. NewWindowDelegate::~NewWindowDelegate() = default;
  25. NewWindowDelegateProvider::NewWindowDelegateProvider() {
  26. DCHECK(!g_delegate_provider);
  27. g_delegate_provider = this;
  28. }
  29. NewWindowDelegateProvider::~NewWindowDelegateProvider() {
  30. DCHECK_EQ(g_delegate_provider, this);
  31. g_delegate_provider = nullptr;
  32. }
  33. } // namespace ash