Google Chrome quits unexpectedly

Solution 1:

Just a guess:

This could be an issue with your user profile in Chrome. I know I've had this problem before on a Windows PC. This would make sense since uninstalling and reinstalling the application in Mac would not remove these user files.

It's possible they might have been corrupted or damaged.

Navigate to:

~/Library/Application Support/Google/Chrome/

Rename the folder Default to something like Default-Backup and relaunch Chrome. It should generate a new default profile and hopefully your problem will be fixed.

Doing this, however, will cause you to lose your data. Turn on Chrome sync before you start this process if you are worried about losing anything.

I suppose that if the fix works, you could 'cherry pick' files and folders from the backup directory until it starts having the problem again to narrow down the file that might be the root cause of the crashing.

Edit:

The Problem:

Judging by the amount of attention chromium issues has gotten over the past few days, it looks like the problem you are describing is caused by an issue with the Mac touch pad driver.

But this is a weird bug because it's clearly not affecting everyone, even people with the most updated version of Mac OS X (10.10.2). But according to this, the problem stems from Apple depreciating the isResting selector and then completely removing it in the most recent update.

Again, the error people are reporting looks like this:

[NSTouch _initWithPreviousTouch:newPhase:position:isResting:]: unrecognized selector sent to instance

The Solution:

It looks like some people are simply plugging in external mice and if they don't touch the trackpad, it's fine. If this sounds like a good solution, make sure you also enable “Ignore trackpad when mouse.” in Accessibility settings.

You could try downgrading Chrome if the former option sounds like a hassle. Not sure if this would work, but it might be a good try.

I imagine a patch will be pushed out to canary builds over the next couple of days or Apple will send out a new driver update (but probably not since they were working to remove isResting). I would stay on the lookout for that.

Solution 2:

Option 2 of Pippyn's answer works so giving the full temporary fix (I can't just upvote the answer):

[1] Put the following in a file "patch.m":

#import <AppKit/AppKit.h>

__attribute((constructor)) void Patch_10_10_2_entry()
{
    NSLog(@"10.10.2 patch loaded");
}

@interface NSTouch ()
- (id)_initWithPreviousTouch:(NSTouch *)touch newPhase:(NSTouchPhase)phase position:(CGPoint)position isResting:(BOOL)isResting force:(double)force;
@end

@implementation NSTouch (Patch_10_10_2)
- (id)_initWithPreviousTouch:(NSTouch *)touch newPhase:(NSTouchPhase)phase position:(CGPoint)position isResting:(BOOL)isResting
{
    return [self _initWithPreviousTouch:touch newPhase:phase position:position isResting:isResting force:0];
}
@end

Compile it:

clang -dynamiclib -framework AppKit patch.m -o patch.dylib

Use it:

env DYLD_INSERT_LIBRARIES=/path/to/patch.dylib "/path/to/Google Chrome.app/Contents/MacOS/Google Chrome"

Part 2 Automator

In Automator select Run Shell Script, paste the command above and save as app to desktop

Solution 3:

It's a problem with the new trackpad driver in OSX 10.10.2.

OPTION 1: You could use a external mouse en disable the use of the trackpad while a USB mouse is connected. (Accessibility>Mouse & Trackpad>Ignore built-in trackpad when mouse or wireless trackpad is present)

OPTION 2: (found on Reddit) This fix is not the best solution, but it works. When you follow the instructions you'll have to run the last terminal command every time you want to run Chrome. But you can also make a chrome launcher with the automator app and the terminal command.

Solution 4:

I got this problem solved by basically renaming some other file called ~/Library/Application Support/Google/Chrome/Local State. I renamed it to Local State-backup.

Now I started chrome again, it starts and creates fresh Local State file. You don't need to touch ~/Library/Application Support/Google/Chrome/Default folder at all.