Reland rest of r77399.

I had temporarily reverted it so I could break it up into 2 commits, so the first could be merged to 696. This is part 2.

BUG=none
TEST=none

Review URL: http://codereview.chromium.org/6684019

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77908 0039d316-1c4b-4281-b951-d872f2087c98
16 files changed