Patch from Gaetano Mendola <mendola@gmail.com>
Original review: http://codereview.chromium.org/4273
I added some additions on my part and two unit test fix due to the added DCHECK. Reduced atl header inclusion.
Review URL: http://codereview.chromium.org/5009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2730 0039d316-1c4b-4281-b951-d872f2087c98