Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(271)

Unified Diff: ios/clean/chrome/browser/ui/web_contents/web_contents_mediator.mm

Issue 2820493002: Use a scoped WebStateListObserverBridge. (Closed)
Patch Set: Use ScopedObserver Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ios/clean/chrome/browser/ui/web_contents/web_contents_mediator.mm
diff --git a/ios/clean/chrome/browser/ui/web_contents/web_contents_mediator.mm b/ios/clean/chrome/browser/ui/web_contents/web_contents_mediator.mm
index 447209e8403d8516ebfb566dd7d8412824536214..56cae8de9a2784121fe9e61838191e5ee4131864 100644
--- a/ios/clean/chrome/browser/ui/web_contents/web_contents_mediator.mm
+++ b/ios/clean/chrome/browser/ui/web_contents/web_contents_mediator.mm
@@ -5,6 +5,7 @@
#import "ios/clean/chrome/browser/ui/web_contents/web_contents_mediator.h"
#include "base/memory/ptr_util.h"
+#include "base/scoped_observer.h"
#include "ios/chrome/browser/chrome_url_constants.h"
#import "ios/chrome/browser/web_state_list/web_state_list.h"
#import "ios/chrome/browser/web_state_list/web_state_list_observer_bridge.h"
@@ -23,6 +24,8 @@
@implementation WebContentsMediator {
std::unique_ptr<WebStateListObserverBridge> _webStateListObserver;
+ std::unique_ptr<ScopedObserver<WebStateList, WebStateListObserverBridge>>
+ _scopedWebStateListObserver;
}
@synthesize webStateList = _webStateList;
@synthesize consumer = _consumer;
@@ -44,16 +47,17 @@
#pragma mark - Properties
- (void)setWebStateList:(WebStateList*)webStateList {
- if (_webStateList) {
- _webStateList->RemoveObserver(_webStateListObserver.get());
- _webStateListObserver.reset();
- }
+ _scopedWebStateListObserver.reset();
sdefresne 2017/04/20 10:02:07 ditto, use RemoveAll/Add to avoid creating destroy
lpromero 2017/04/20 16:25:13 Done.
+ _webStateListObserver.reset();
sdefresne 2017/04/20 10:02:07 Why don't we call "[self disableWebUsage:self.webS
lpromero 2017/04/20 16:25:13 No idea. I filed http://crbug.com/713757.
_webStateList = webStateList;
if (!_webStateList) {
return;
}
_webStateListObserver = base::MakeUnique<WebStateListObserverBridge>(self);
- _webStateList->AddObserver(_webStateListObserver.get());
+ _scopedWebStateListObserver = base::MakeUnique<
+ ScopedObserver<WebStateList, WebStateListObserverBridge>>(
+ _webStateListObserver.get());
+ _scopedWebStateListObserver->Add(_webStateList);
if (_webStateList->GetActiveWebState()) {
[self updateConsumerWithWebState:_webStateList->GetActiveWebState()];
}

Powered by Google App Engine
This is Rietveld 408576698