This was committed as part of r105914, which was later reverted due to mysterious tsan failures. I am splitting the original patch into smaller chunks to figure out the failure.
Review URL: http://codereview.chromium.org/8347007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@106113 0039d316-1c4b-4281-b951-d872f2087c98