diff --git a/atom/browser/atom_browser_main_parts_mac.mm b/atom/browser/atom_browser_main_parts_mac.mm index 073945fbecafc..251207bc8f03a 100644 --- a/atom/browser/atom_browser_main_parts_mac.mm +++ b/atom/browser/atom_browser_main_parts_mac.mm @@ -54,8 +54,26 @@ auto application = [principalClass sharedApplication]; NSString* mainNibName = [infoDictionary objectForKey:@"NSMainNibFile"]; - auto mainNib = [[NSNib alloc] initWithNibNamed:mainNibName - bundle:base::mac::FrameworkBundle()]; + + NSNib* mainNib; + + @try { + mainNib = [[NSNib alloc] initWithNibNamed:mainNibName + bundle:base::mac::FrameworkBundle()]; + // Handle failure of initWithNibNamed on SMB shares + // TODO(codebytere): Remove when + // https://bugs.chromium.org/p/chromium/issues/detail?id=932935 is fixed + } @catch (NSException* exception) { + NSString* nibPath = + [NSString stringWithFormat:@"Resources/%@.nib", mainNibName]; + nibPath = [base::mac::FrameworkBundle().bundlePath + stringByAppendingPathComponent:nibPath]; + + NSData* data = [NSData dataWithContentsOfFile:nibPath]; + mainNib = [[NSNib alloc] initWithNibData:data + bundle:base::mac::FrameworkBundle()]; + } + [mainNib instantiateWithOwner:application topLevelObjects:nil]; [mainNib release]; }