Commit 59bbe5cc authored by sczs's avatar sczs Committed by Commit Bot

[ios Checks ContentSuggestions KVO flag before any KVO change

Bug: 1122031
Change-Id: Ie2733764f57d824cb9bf61155c69ddb248e4c704
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2468715Reviewed-by: default avatarGanggui Tang <gogerald@chromium.org>
Commit-Queue: Sergio Collazos <sczs@chromium.org>
Cr-Commit-Position: refs/heads/master@{#816793}
parent e4faf304
...@@ -125,10 +125,7 @@ NSString* const kContentSuggestionsMostVisitedAccessibilityIdentifierPrefix = ...@@ -125,10 +125,7 @@ NSString* const kContentSuggestionsMostVisitedAccessibilityIdentifierPrefix =
} }
- (void)dealloc { - (void)dealloc {
if (self.observingDiscoverFeedHeight) { [self removeContentSizeKVO];
[self.feedView removeObserver:self forKeyPath:@"contentSize"];
self.observingDiscoverFeedHeight = NO;
}
if (self.discoverFeedVC.parentViewController) { if (self.discoverFeedVC.parentViewController) {
[self.discoverFeedVC willMoveToParentViewController:nil]; [self.discoverFeedVC willMoveToParentViewController:nil];
[self.discoverFeedVC.view removeFromSuperview]; [self.discoverFeedVC.view removeFromSuperview];
...@@ -442,8 +439,7 @@ NSString* const kContentSuggestionsMostVisitedAccessibilityIdentifierPrefix = ...@@ -442,8 +439,7 @@ NSString* const kContentSuggestionsMostVisitedAccessibilityIdentifierPrefix =
// If previous VC is not nil, remove it from the view hierarchy and stop // If previous VC is not nil, remove it from the view hierarchy and stop
// osberving its feedView. // osberving its feedView.
if (self.discoverFeedVC) { if (self.discoverFeedVC) {
[self.feedView removeObserver:self forKeyPath:@"contentSize"]; [self removeContentSizeKVO];
self.observingDiscoverFeedHeight = NO;
[self.discoverFeedVC willMoveToParentViewController:nil]; [self.discoverFeedVC willMoveToParentViewController:nil];
[self.discoverFeedVC.view removeFromSuperview]; [self.discoverFeedVC.view removeFromSuperview];
[self.discoverFeedVC removeFromParentViewController]; [self.discoverFeedVC removeFromParentViewController];
...@@ -462,11 +458,7 @@ NSString* const kContentSuggestionsMostVisitedAccessibilityIdentifierPrefix = ...@@ -462,11 +458,7 @@ NSString* const kContentSuggestionsMostVisitedAccessibilityIdentifierPrefix =
self.feedView = static_cast<UICollectionView*>(view); self.feedView = static_cast<UICollectionView*>(view);
} }
} }
[self.feedView addObserver:self [self addContentSizeKVO];
forKeyPath:@"contentSize"
options:0
context:nil];
self.observingDiscoverFeedHeight = YES;
self.discoverFeedVC = newFeedViewController; self.discoverFeedVC = newFeedViewController;
return cell; return cell;
} }
...@@ -841,6 +833,25 @@ NSString* const kContentSuggestionsMostVisitedAccessibilityIdentifierPrefix = ...@@ -841,6 +833,25 @@ NSString* const kContentSuggestionsMostVisitedAccessibilityIdentifierPrefix =
#pragma mark - Private #pragma mark - Private
// Adds KVO observing for the feedView contentSize if there is not one already.
- (void)addContentSizeKVO {
if (!self.observingDiscoverFeedHeight) {
[self.feedView addObserver:self
forKeyPath:@"contentSize"
options:0
context:nil];
self.observingDiscoverFeedHeight = YES;
}
}
// Removes KVO observing for the feedView contentSize if one exists.
- (void)removeContentSizeKVO {
if (self.observingDiscoverFeedHeight) {
[self.feedView removeObserver:self forKeyPath:@"contentSize"];
self.observingDiscoverFeedHeight = NO;
}
}
- (void)handleLongPress:(UILongPressGestureRecognizer*)gestureRecognizer { - (void)handleLongPress:(UILongPressGestureRecognizer*)gestureRecognizer {
if (self.editor.editing || if (self.editor.editing ||
gestureRecognizer.state != UIGestureRecognizerStateBegan) { gestureRecognizer.state != UIGestureRecognizerStateBegan) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment