Index: ash/test/tray_cast_test_api.cc |
diff --git a/ash/test/tray_cast_test_api.cc b/ash/test/tray_cast_test_api.cc |
index 5d0bcf8aab277930581d87407e18bcec6a98b317..90a0aeb13c4122808cc7f2c27b3a7ff4da99435c 100644 |
--- a/ash/test/tray_cast_test_api.cc |
+++ b/ash/test/tray_cast_test_api.cc |
@@ -4,7 +4,10 @@ |
#include "ash/test/tray_cast_test_api.h" |
+#include "ash/cast_config_delegate.h" |
+#include "ash/shell.h" |
#include "ash/system/tray/system_tray.h" |
+#include "ash/system/tray/system_tray_delegate.h" |
#include "ui/views/view.h" |
namespace ash { |
@@ -46,7 +49,15 @@ void TrayCastTestAPI::OnCastingSessionStartedOrStopped(bool is_casting) { |
} |
void TrayCastTestAPI::ReleaseConfigCallbacks() { |
- tray_cast_->device_update_subscription_.reset(); |
+ tray_cast_->added_observer_ = false; |
+ |
+ if (ash::Shell::GetInstance() && |
+ ash::Shell::GetInstance()->system_tray_delegate()) { |
+ ash::Shell::GetInstance() |
+ ->system_tray_delegate() |
+ ->GetCastConfigDelegate() |
+ ->RemoveObserver(tray_cast_); |
+ } |
} |
bool TrayCastTestAPI::IsViewDrawn(TrayCast::ChildViewId id) const { |