Skip to content
Permalink
Browse files
Reviewed by John.
        - fix <rdar://problem/4432562> REGRESSION (TOT):
          Safari's "stop loading" active, "view source" inactive after page load [7058]
          http://bugzilla.opendarwin.org/show_bug.cgi?id=7058

        * page/Frame.h: Make redirectionTimerFired virtual.
        * bridge/mac/MacFrame.h: Override redirectionTimerFired.
        * bridge/mac/MacFrame.mm: (WebCore::MacFrame::redirectionTimerFired):
        Send the redirectionTimerCancelled callback here, even though it has
        fired rather than being cancelled.

        * manual-tests/redirect.html: Added.
        * manual-tests/redirection-target.html: Added.



Canonical link: https://commits.webkit.org/10615@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@12598 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  • Loading branch information
darinadler committed Feb 6, 2006
1 parent 0b9a78f commit 9024c167387154aef2b3d410d8e207d8d9e33578
Showing 6 changed files with 41 additions and 1 deletion.
@@ -1,3 +1,20 @@
2006-02-06 Darin Adler <darin@apple.com>

Reviewed by John.

- fix <rdar://problem/4432562> REGRESSION (TOT):
Safari's "stop loading" active, "view source" inactive after page load [7058]
http://bugzilla.opendarwin.org/show_bug.cgi?id=7058

* page/Frame.h: Make redirectionTimerFired virtual.
* bridge/mac/MacFrame.h: Override redirectionTimerFired.
* bridge/mac/MacFrame.mm: (WebCore::MacFrame::redirectionTimerFired):
Send the redirectionTimerCancelled callback here, even though it has
fired rather than being cancelled.

* manual-tests/redirect.html: Added.
* manual-tests/redirection-target.html: Added.

2006-02-06 David Harrison <harrison@apple.com>

Reviewed by John.
@@ -316,6 +316,7 @@ class MacFrame : public Frame

virtual void startRedirectionTimer();
virtual void stopRedirectionTimer();
virtual void redirectionTimerFired(Timer<Frame>*);

private:
virtual void khtmlMousePressEvent(MousePressEvent *);
@@ -914,6 +914,19 @@ - (void *)pluginScriptableObject;
[_bridge reportClientRedirectCancelled:d->m_cancelWithLoadInProgress];
}

void MacFrame::redirectionTimerFired(Timer<Frame>* timer)
{
// Note, despite its name, we must call "redirect cancelled" even when the
// redirect has completed successfully. Although that may not have been our
// original intent, Safari depends on this behavior at the time of this writing.
// See Radar 4432562 and Bugzilla 7058.

// Don't report history navigations, just actual redirection.
if (d->m_scheduledRedirection != historyNavigationScheduled)
[_bridge reportClientRedirectCancelled:d->m_cancelWithLoadInProgress];

Frame::redirectionTimerFired(timer);
}

QString MacFrame::userAgent() const
{
@@ -0,0 +1,2 @@
<meta http-equiv="refresh" content="0;url=redirection-target.html">
<p>See redirection-target.html for details of what this tests.</p>
@@ -0,0 +1,6 @@
<p>
This test checks that redirection does not leave Safari thinking it's still loading.
Check that the title bar does not say "Loading" any more.
The bug was <a href="rdar://problem/4432562">4432562</a> in Radar and
<a href="http://bugzilla.opendarwin.org/show_bug.cgi?id=7058">7058</a> in Bugzilla.
</p>
@@ -800,6 +800,8 @@ class Frame : public ObjectContents {
virtual Frame* createFrame(const KURL& url, const QString& name, RenderPart* renderer, const DOMString& referrer) = 0;
virtual ObjectContentType objectContentType(const KURL& url, const QString& mimeType) = 0;

virtual void redirectionTimerFired(Timer<Frame>*);

public slots:
/**
* Stops all animated images on the current and child pages
@@ -813,7 +815,6 @@ private slots:
void slotRestoreData( const ByteArray &data );
void slotFinished( KIO::Job* );
void slotFinishedParsing();
void redirectionTimerFired(Timer<Frame>*);
void slotRedirection(KIO::Job*, const KURL&);

void slotIncZoom();

0 comments on commit 9024c16

Please sign in to comment.