| Index: ios/clean/chrome/browser/ui/omnibox/location_bar_mediator.mm
|
| diff --git a/ios/clean/chrome/browser/ui/omnibox/location_bar_mediator.mm b/ios/clean/chrome/browser/ui/omnibox/location_bar_mediator.mm
|
| index 1ff70c0ea6e5fb63a75394fc04e1e802c5b9502c..99ccc909045783ea1aac6bb6d5174029316e00b9 100644
|
| --- a/ios/clean/chrome/browser/ui/omnibox/location_bar_mediator.mm
|
| +++ b/ios/clean/chrome/browser/ui/omnibox/location_bar_mediator.mm
|
| @@ -5,6 +5,7 @@
|
| #import "ios/clean/chrome/browser/ui/omnibox/location_bar_mediator.h"
|
|
|
| #include "base/memory/ptr_util.h"
|
| +#include "base/scoped_observer.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "ios/chrome/browser/ui/toolbar/toolbar_model_delegate_ios.h"
|
| #include "ios/chrome/browser/ui/toolbar/toolbar_model_impl_ios.h"
|
| @@ -29,6 +30,8 @@
|
| // Observes the WebStateList so that this mediator can update the UI when the
|
| // active WebState changes.
|
| std::unique_ptr<WebStateListObserverBridge> _webStateListObserver;
|
| + std::unique_ptr<ScopedObserver<WebStateList, WebStateListObserverBridge>>
|
| + _scopedWebStateListObserver;
|
|
|
| // Used to update the UI in response to WebState observer notifications. This
|
| // observer is always observing the currently-active WebState and may be
|
| @@ -54,7 +57,10 @@
|
| _webStateList = webStateList;
|
|
|
| _webStateListObserver = base::MakeUnique<WebStateListObserverBridge>(self);
|
| - _webStateList->AddObserver(_webStateListObserver.get());
|
| + _scopedWebStateListObserver = base::MakeUnique<
|
| + ScopedObserver<WebStateList, WebStateListObserverBridge>>(
|
| + _webStateListObserver.get());
|
| + _scopedWebStateListObserver->Add(_webStateList);
|
| web::WebState* webState = _webStateList->GetActiveWebState();
|
| if (webState) {
|
| _webStateObserver =
|
| @@ -69,10 +75,6 @@
|
| return self;
|
| }
|
|
|
| -- (void)dealloc {
|
| - _webStateList->RemoveObserver(_webStateListObserver.get());
|
| -}
|
| -
|
| - (void)setLocationBar:(std::unique_ptr<LocationBarController>)locationBar {
|
| _locationBar = std::move(locationBar);
|
| _locationBar->OnToolbarUpdated();
|
|
|