How to disable Incognito mode in Chrome?

Solution 1:

The short answer: you must edit the preferences file so that the key IncognitoModeAvailability has a value of 1.

Original Instructions

In /Library/Preferences/ add a plist entry to the file com.google.Chrome.plist such that the key is IncognitoModeAvailability and the value is 1.

Here is an example: assuming the file com.google.Chrome.plist doesn't exist, use a text editor to save the following code:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
   <key>IncognitoModeAvailability</key>
   <integer>1</integer>
</dict>
</plist>

The full file name and path of the above should be /Library/Preferences/com.google.Chrome.plist.

Updated Instructions

Since macOS Sierra, proper plist files seem to be in some binary format by default—a format that you can't edit with a normal text editor. I found that I can open them in Apple's Xcode and it has a nice GUI—very easy to edit. If you don't have access to Xcode, I think you can use the plutil terminal command like this:

plutil -convert xml1 YOUR_FILE_NAME_HERE

In xml format, you should be able to edit it in a text editor, and a web site I read says that the xml format should work fine.

Regardless, I recently was able to disable Incognito mode using Xcode on the ~/Library/Preferences/com.google.Chrome.plist file. (Furthermore, I had to delete /Library/Preferences/com.google.Chrome.plist because my old version was deemed "corrupted" because it wasn't in a proper file format.)

Solution 2:

Rather than converting the plist and manually editing it, you can set the option in one step. In the Terminal, run:

defaults write com.google.chrome IncognitoModeAvailability -integer 1

Then reboot or run:

killall cfprefsd

to reload the plist cache. It is not enough to quit and relaunch Chrome, or even to logout and login again.

IncognitoModeAvailability can be set to 0, 1, or 2:

  • 0 means Incognito is enabled
  • 1 means Incognito is disabled
  • 2 means Incognito is forced