WebCore:
authortomernic <tomernic@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 22 Mar 2006 22:30:39 +0000 (22:30 +0000)
committertomernic <tomernic@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 22 Mar 2006 22:30:39 +0000 (22:30 +0000)
commitd4d609880651a7ee1d264f2fdeb3dfa98f7dc06a
treee529d7474018378baf2c5b0f3b6a04a8839fd3ef
parent9b9fce07f82ad3f3a8fffd49dc54f568f802a9ac
WebCore:

        Reviewed by Kevin Decker.

        Part of <rdar://problem/4351664> REGRESSION (420+): extra URL in b/f list - navigating back to previous page fails at apple.com/retail/)
        This also fixes <rdar://problem/4477821> REGRESSION (10.4.5-TOT): meta tag specifying refresh is being added to history.

        * bridge/mac/FrameMac.h:
        * bridge/mac/FrameMac.mm:
        Removed redirectionTimerFired().  This was added as attempt to fix <http://bugzilla.opendarwin.org/show_bug.cgi?id=7058>.  The
        aim was to cause Safari and WebKit to update their loading status after a redirect.  Unfortunately, the fix had a bad side
        effect.  Calling -reportClientRedirectCancelled: on a successful redirect causes WebKit to forget that the redirect was supposed
        to lock history (i.e. reuse the current back/forward entry for the new page).  The end result was that intermediate "quick" redirects
        were creating back/forward entries when they should not have been.  See 4351664.  That fix was almost correct, in that we do need to
        notify the frame load delegate when a redirect ends, either because it succeeded or because it was cancelled.  However, this is the
        wrong place to do it.  WebCore's redirect notification logic did not need to change to fix 7058.  The never-ending spinning indicators
        problem was actually caused by a bug at the WebKit level.

        * manual-tests/redirectHistory: Added.
        * manual-tests/redirectHistory/redir-1.html: Added.
        * manual-tests/redirectHistory/redir-2.html: Added.
        * manual-tests/redirectHistory/redir-3.html: Added.
        Manual test case.  I couldn't figure out how to create a layout test for this, because it involves navigation through history and
        it was unclear how/when to tell DumpRenderTree to dump its output.

WebKit:

        Reviewed by Kevin Decker.

        Better fix for <rdar://problem/4432562> REGRESSION (TOT): Safari's "stop loading" active, "view source" inactive after page load [7058]

        * WebView/WebFrame.m:
        (-[WebFrame _transitionToCommitted:]):
        Cancel the client redirect when we commit the provisional load, if we were waiting for a redirect.
        This is a better fix for 7058 (<rdar://problem/4432562>).  The original fix for 7058 changed the timing of the redirect cancel
        in such a way that WebKit was precluded from ever reusing back/forward list entries for redirects.  Clearing the redirect state
        here actually makes logical sense, as the redirect's target page is being committed at this point.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@13441 268f45cc-cd09-0410-ab3c-d52691b4dbfc
WebCore/ChangeLog
WebCore/bridge/mac/FrameMac.h
WebCore/bridge/mac/FrameMac.mm
WebCore/manual-tests/redirectHistory/redir-1.html [new file with mode: 0644]
WebCore/manual-tests/redirectHistory/redir-2.html [new file with mode: 0644]
WebCore/manual-tests/redirectHistory/redir-3.html [new file with mode: 0644]
WebKit/ChangeLog
WebKit/WebView/WebFrame.m