New issue
Advanced search Search tips

Issue 876747 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Sep 20
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: iOS
Pri: 1
Type: Bug



Sign in to add a comment

NSAssert failing related to ProductSans-Regular

Project Member Reported by jlebel@chromium.org, Aug 22

Issue description

This following assert is failing in Chromium:
  NSAssert(gSkipLockupFontAssertionForTesting || font != nil,
           @"Font resource missing for font name %@.", fontName);
https://cs.corp.google.com/piper///depot/google3/googlemac/iPhone/Shared/GoogleMaterial/components/ProductLockups/src/GMDCProductLockupFonts.m?l=72

To reproduce it:
 + Open Chromium/Chrome iOS
 + Log in
 + Open the settings
 + Click on your account at the top of the settings
 + Click on your account under "Signed In to Google as"

The issue is that "ProductSans-Regular" font is expected to be included in the Chromium. This font is not included in Chromium.

The stacktrace:
(lldb) bt
* thread #1, name = 'CrWebMain', queue = 'com.apple.main-thread', stop reason = breakpoint 2.2
    frame #0: 0x000000011c19f001 libobjc.A.dylib`objc_exception_throw
    frame #1: 0x00000001147c3472 CoreFoundation`+[NSException raise:format:arguments:] + 98
    frame #2: 0x0000000115619652 Foundation`-[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 193
  * frame #3: 0x0000000108744912 Chromium`-[GMDCProductLockupFonts fontWithName:size:](self=0x000060c00000a920, _cmd="fontWithName:size:", fontName=@"ProductSans-Regular", size=22) at GMDCProductLockupFonts.m:72
    frame #4: 0x000000010874743a Chromium`-[GMDCProductLockupView productLockupAttributedStringForSize:](self=0x00007fed4475b780, _cmd="productLockupAttributedStringForSize:", size=22) at GMDCProductLockupView.m:226
    frame #5: 0x0000000108747db8 Chromium`-[GMDCProductLockupView updateTextRelatedValues](self=0x00007fed4475b780, _cmd="updateTextRelatedValues") at GMDCProductLockupView.m:277
    frame #6: 0x0000000108746690 Chromium`-[GMDCProductLockupView setFullProductName:](self=0x00007fed4475b780, _cmd="setFullProductName:", fullProductName=@"Google Account") at GMDCProductLockupView.m:116
    frame #7: 0x00000001087208c0 Chromium`-[ASMHeaderView setLockupTitle:](self=0x00007fed44665400, _cmd="setLockupTitle:", title=@"Google Account") at ASMHeaderView.m:149
    frame #8: 0x00000001086f1d67 Chromium`-[ASMMyAccountViewController setUpHeader](self=0x00007fed4477a1e0, _cmd="setUpHeader") at ASMMyAccountViewController.m:208
    frame #9: 0x00000001086f0e8a Chromium`-[ASMMyAccountViewController viewDidLoad](self=0x00007fed4477a1e0, _cmd="viewDidLoad") at ASMMyAccountViewController.m:106
    frame #10: 0x0000000116194191 UIKit`-[UIViewController loadViewIfRequired] + 1215
    frame #11: 0x00000001161945d4 UIKit`-[UIViewController view] + 27
    frame #12: 0x0000000107fd358f Chromium`-[GOOThinNavigationChildController initWithViewController:](self=0x000060c000652e40, _cmd="initWithViewController:", viewController=0x00007fed4477a1e0) at GOONavigationChildController.m:707
    frame #13: 0x0000000107fd602b Chromium`-[GOONavigationController setViewControllers:animated:](self=0x00007fed45845400, _cmd="setViewControllers:animated:", viewControllers=@"1 element", animated=NO) at GOONavigationController.m:429
    frame #14: 0x0000000107fd4e04 Chromium`-[GOONavigationController setViewControllers:](self=0x00007fed45845400, _cmd="setViewControllers:", viewControllers=@"1 element") at GOONavigationController.m:272
    frame #15: 0x00000001082d5b18 Chromium`(anonymous namespace)::CreateNavigationControllerForSSOWithRootViewController(rootViewController=0x00007fed4477a1e0) at chrome_identity_service_impl.mm:56
    frame #16: 0x00000001082d5778 Chromium`ChromeIdentityServiceImpl::CreateAccountDetailsController(this=0x000060c0000aea00, identity=0x000060400000b070, browser_opener=0x00007fed48805e00) at chrome_identity_service_impl.mm:193
    frame #17: 0x00000001083cedf4 Chromium`::-[AccountsCollectionViewController showAccountDetails:](self=0x00007fed48805e00, _cmd="showAccountDetails:", identity=0x000060400000b070) at accounts_collection_view_controller.mm:536
    frame #18: 0x00000001083cd2be Chromium`::-[AccountsCollectionViewController collectionView:didSelectItemAtIndexPath:](self=0x00007fed48805e00, _cmd="collectionView:didSelectItemAtIndexPath:", collectionView=0x00007fed448e6000, indexPath=0xc000000000000016) at accounts_collection_view_controller.mm:378
    frame #19: 0x0000000116aae0ca UIKit`-[UICollectionView _selectItemAtIndexPath:animated:scrollPosition:notifyDelegate:] + 702
    frame #20: 0x0000000116ada279 UIKit`-[UICollectionView touchesEnded:withEvent:] + 594
    frame #21: 0x000000011621d7c7 UIKit`forwardTouchMethod + 340
    frame #22: 0x000000011621d891 UIKit`-[UIResponder touchesEnded:withEvent:] + 49
    frame #23: 0x000000011621d7c7 UIKit`forwardTouchMethod + 340
    frame #24: 0x000000011621d891 UIKit`-[UIResponder touchesEnded:withEvent:] + 49
    frame #25: 0x00000001165d8e88 UIKit`_UIGestureEnvironmentSortAndSendDelayedTouches + 5525
    frame #26: 0x00000001165d2da1 UIKit`_UIGestureEnvironmentUpdate + 1506
    frame #27: 0x00000001165d2773 UIKit`-[UIGestureEnvironment _deliverEvent:toGestureRecognizers:usingBlock:] + 484
    frame #28: 0x00000001165d1875 UIKit`-[UIGestureEnvironment _updateGesturesForEvent:window:] + 281
    frame #29: 0x000000011606780b UIKit`-[UIWindow sendEvent:] + 4064
    frame #30: 0x000000011600b370 UIKit`-[UIApplication sendEvent:] + 352
    frame #31: 0x000000011694c57f UIKit`__dispatchPreprocessedEventFromEventQueue + 2796
    frame #32: 0x000000011694f194 UIKit`__handleEventQueueInternal + 5949
    frame #33: 0x0000000114760bb1 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
    frame #34: 0x00000001147454af CoreFoundation`__CFRunLoopDoSources0 + 271
    frame #35: 0x0000000114744a6f CoreFoundation`__CFRunLoopRun + 1263
    frame #36: 0x000000011474430b CoreFoundation`CFRunLoopRunSpecific + 635
    frame #37: 0x000000011d62ca73 GraphicsServices`GSEventRunModal + 62
    frame #38: 0x0000000115ff00b7 UIKit`UIApplicationMain + 159
    frame #39: 0x000000010609f513 Chromium`(anonymous namespace)::RunUIApplicationMain(argc=1, argv=0x00007ffee9b611c0) at chrome_exe_main.mm:54
    frame #40: 0x000000010609efe3 Chromium`main(argc=1, argv=0x00007ffee9b611c0) at chrome_exe_main.mm:78
    frame #41: 0x000000011ea43955 libdyld.dylib`start + 1

 

Comment 1 Deleted

An API has been created to avoir the NSAssert with this patch: https://critique.corp.google.com/#review/209897203
Project Member

Comment 3 by bugdroid1@chromium.org, Aug 30

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/chrome/ios_internal.git/+/993c8511a0de2025f627205eae3406b89dc92b94

commit 993c8511a0de2025f627205eae3406b89dc92b94
Author: Jérôme Lebel <jlebel@google.com>
Date: Thu Aug 30 16:21:30 2018

Status: Fixed (was: ExternalDependency)

Sign in to add a comment