Add chromium-side support for history.{push,replace}State.

Enables the feature so that all but 2 of the related layout tests pass.

Modifies TestShell to correctly update its location bar as navigations occur.
It was incorrectly showing firstPartyForCookies for some crazy reason.

Modifies glue_serialize.cc to store the state object associated with a session
history entry.

Modifies navigation_controller.cc to always replace the current navigation
entry when observing an in-page navigation.  This is required since the page ID
isn't changing for an in-page navigation.

BUG=29393
R=brettw
TEST=covered by layout tests

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

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