Revert 18512 - Revert 18373  Consider a redirect following user gesture as userinitiated in maintaining
navigation entries. Also, ignore redirect or machineinitiated new subframe
navigations.

The current code treats all redirects as machineinitiated in processing
navigation to a new page (to fix Bugs 9663 and 10531). This is not always
appropriate, because some sites, e.g., www.google.com/ig, use redirect to
implement userinitiated navigation (Bug 11896).

This change assumes that a machineinitiated redirect happens within 300ms
since the last document load was completed, while  a userinitiated one
happens later.

This assumption is not always correct, e.g., a user may cause transition within
300ms. But I cannot think of any better ways to tell if a redirect is machine
initiated or userinitiated.

I believe this change works good enough, at least better than the status quo.

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

TEST=Open http://www.hp.com and observe it redirects to
http://www.hp.com/#Product . Hit Back button and observe
the former URL is not visited. Open http://www.google.com/ig and
click tabs inside the page, and try hitting Back and Forward to see if the
navigation is right. Open http://www.google.com/codesearch, search for
something, click on a result item, and try hitting Back.

BUG=11896,12820





TBR=yuzo@chromium.org

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

TBR=laforge@chromium.org

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

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