Skip to content

Commit

Permalink
[iOS] Add debug information about the view controller
Browse files Browse the repository at this point in the history
This patch adds information in UserSigninCoordinator,
ConsistencyPromoSigninCoordinator and HistorySyncPopupCoordintor
related to their view controller.
This adds the information if the view controller is being presented,
presented, being dismissed or not presented.

(cherry picked from commit f64f6b6)

Change-Id: I67654a99e83069617309b278abd4e0a6a678218f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4890330
Commit-Queue: Jérôme Lebel <jlebel@chromium.org>
Auto-Submit: Jérôme Lebel <jlebel@chromium.org>
Reviewed-by: Tanmoy Mollik <triploblastic@google.com>
Cr-Original-Commit-Position: refs/heads/main@{#1202031}
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4905022
Commit-Queue: Tanmoy Mollik <triploblastic@google.com>
Cr-Commit-Position: refs/branch-heads/5993@{#958}
Cr-Branched-From: 5113507-refs/heads/main@{#1192594}
  • Loading branch information
Jérôme Lebel authored and Chromium LUCI CQ committed Sep 29, 2023
1 parent 6b6dc2d commit 96e9b63
Show file tree
Hide file tree
Showing 6 changed files with 46 additions and 4 deletions.
6 changes: 6 additions & 0 deletions ios/chrome/browser/ui/authentication/authentication_ui_util.h
Original file line number Diff line number Diff line change
Expand Up @@ -54,4 +54,10 @@ AlertCoordinator* ErrorCoordinatorNoItem(NSError* error,
UIViewController* viewController,
Browser* browser);

// Returns a string for the view controller presentation status. This string
// can only be used for class description for debug purposes.
// `view_controller` can be nil.
NSString* ViewControllerPresentationStatusDescription(
UIViewController* view_controller);

#endif // IOS_CHROME_BROWSER_UI_AUTHENTICATION_AUTHENTICATION_UI_UTIL_H_
15 changes: 15 additions & 0 deletions ios/chrome/browser/ui/authentication/authentication_ui_util.mm
Original file line number Diff line number Diff line change
Expand Up @@ -92,3 +92,18 @@
message:errorMessage];
return alertCoordinator;
}

NSString* ViewControllerPresentationStatusDescription(
UIViewController* view_controller) {
if (!view_controller) {
return @"No view controller";
} else if (view_controller.isBeingPresented) {
return @"Being presented";
} else if (view_controller.isBeingDismissed) {
return @"Being dismissed";
} else if (view_controller.presentingViewController) {
return [NSString stringWithFormat:@"Presented by: %@",
view_controller.presentingViewController];
}
return @"Not presented";
}
1 change: 1 addition & 0 deletions ios/chrome/browser/ui/authentication/history_sync/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ source_set("history_sync") {
"//ios/chrome/browser/signin",
"//ios/chrome/browser/signin:constants",
"//ios/chrome/browser/sync",
"//ios/chrome/browser/ui/authentication",
"//ios/chrome/browser/ui/authentication/enterprise:enterprise_utils",
"//ios/chrome/browser/ui/authentication/signin:constants",
"//ios/chrome/common/ui/promo_style",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
#import "ios/chrome/browser/signin/authentication_service.h"
#import "ios/chrome/browser/signin/authentication_service_factory.h"
#import "ios/chrome/browser/sync/sync_service_factory.h"
#import "ios/chrome/browser/ui/authentication/authentication_ui_util.h"
#import "ios/chrome/browser/ui/authentication/history_sync/history_sync_coordinator.h"

@interface HistorySyncPopupCoordinator () <
Expand Down Expand Up @@ -197,4 +198,17 @@ - (void)presentationControllerDidDismiss:
[self viewWasDismissedWithResult:SigninCoordinatorResultCanceledByUser];
}

#pragma mark - NSObject

- (NSString*)description {
return [NSString
stringWithFormat:
@"<%@: %p, authenticationService: %p, historySyncCoordinator: %@, "
@"presented: %@, accessPoint: %d>",
self.class.description, self, _authenticationService,
_historySyncCoordinator,
ViewControllerPresentationStatusDescription(_navigationController),
static_cast<int>(_accessPoint)];
}

@end
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
#import "ios/chrome/browser/signin/identity_manager_factory.h"
#import "ios/chrome/browser/signin/system_identity.h"
#import "ios/chrome/browser/ui/authentication/authentication_flow.h"
#import "ios/chrome/browser/ui/authentication/authentication_ui_util.h"
#import "ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/consistency_account_chooser/consistency_account_chooser_coordinator.h"
#import "ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/consistency_default_account/consistency_default_account_coordinator.h"
#import "ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/consistency_layout_delegate.h"
Expand Down Expand Up @@ -524,10 +525,13 @@ - (NSString*)description {
return [NSString
stringWithFormat:
@"<%@: %p, defaultAccountCoordinator: %p, alertCoordinator: %p, "
@"accountChooserCoordinator %p, addAccountCoordinator %p>",
@"accountChooserCoordinator %p, addAccountCoordinator %p, presented: "
@"%@>",
self.class.description, self, self.defaultAccountCoordinator,
self.alertCoordinator, self.accountChooserCoordinator,
self.addAccountCoordinator];
self.addAccountCoordinator,
ViewControllerPresentationStatusDescription(
self.navigationController)];
}

@end
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
#import "ios/chrome/browser/sync/sync_service_factory.h"
#import "ios/chrome/browser/sync/sync_setup_service_factory.h"
#import "ios/chrome/browser/ui/authentication/authentication_flow.h"
#import "ios/chrome/browser/ui/authentication/authentication_ui_util.h"
#import "ios/chrome/browser/ui/authentication/signin/signin_constants.h"
#import "ios/chrome/browser/ui/authentication/signin/signin_coordinator+protected.h"
#import "ios/chrome/browser/ui/authentication/signin/signin_utils.h"
Expand Down Expand Up @@ -640,14 +641,15 @@ - (NSString*)description {
@"%p, advancedSettingsSigninCoordinator: "
@"%p, signinIntent: %lu, signinStateOnStart: %lu, interruptCallback "
@"%p, accessPoint: %d, signin in progress %d, mediator %p, "
@"viewController: %p, beingPresented: %d, baseViewController: %@, "
@"viewController: %p, presented: %@, baseViewController: %@, "
@"window: %p>",
self.class.description, self, self.addAccountSigninCoordinator,
self.advancedSettingsSigninCoordinator, self.signinIntent,
self.signinStateOnStart, self.interruptCallback,
static_cast<int>(self.logger.accessPoint),
self.mediator.isAuthenticationInProgress, self.mediator,
self.viewController, self.viewController.isBeingPresented,
self.viewController,
ViewControllerPresentationStatusDescription(self.viewController),
NSStringFromClass([self.baseViewController class]),
self.baseViewController.view.window];
}
Expand Down

0 comments on commit 96e9b63

Please sign in to comment.