HTTP refresh header + accessibility.blockautorefresh causes refresh notification to disappear immediately

NEW
Unassigned

Status

()

Firefox
Disability Access
3 years ago
2 years ago

People

(Reporter: xuu, Unassigned)

Tracking

Trunk
Points:
---
Bug Flags:
firefox-backlog +
in-testsuite ?
qe-verify -

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

(Reporter)

Description

3 years ago
Created attachment 8492746 [details]
refresh.php: Simple demonstration script that sets the HTTP refresh header (or alternatively a meta refresh tag if an 'meta_refresh' GET parameter is set)

User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101 Firefox/32.0
Build ID: 20140912222815

Steps to reproduce:

Check Preferences>General>"Warn me when websites try to redirect or reload the page" or set accessibility.blockautorefresh to true on about:config.
Go to a website in that sets the HTTP refresh header.



Actual results:

Website is displayed normally while the refresh header is ignored (no refreshing or redirecting is done) and no notification is visible.
Sometimes it is possible to observe a upward-moving animation of the website, just like when a notification is hiding.


Expected results:

A notification should have been visible displaying the text "Firefox prevented this page from automatically reloading." together with an "Allow"-Button to follow the refresh header.
The notification is shown correctly if an meta refresh tag instead of the HTTP refresh header is used.
(Reporter)

Comment 1

3 years ago
It appears to be that the notification is shown by TabsProgressListener.onRefreshAttempted defined in browser/base/content/browser.js while it is hidden by TabsProgressListener.onLocationChange by a call to gBrowser.getNotificationBox(aBrowser).removeTransientNotifications. Both, the onRefreshAttempted event and the onLocationChange event are fired when accessing a page with the refresh header set.
The same goes for the case that a meta refresh tag is used instead of the refresh header.
The difference is that when the meta refresh tag is used, the onLocationChange event is fired before the onRefreshAttempted is fired.
When a refresh header is used, the onRefreshAttempted event is fired much sooner which results in the onLocationChange event to be fired after it and so it immediately removes the notification again.
(Reporter)

Comment 2

3 years ago
> Check Preferences>General>"Warn me when websites try to redirect or reload
> the page" or set accessibility.blockautorefresh to true on about:config.
Correction: I meant Preferences>Advanced>General>"Warn me when websites try to redirect or reload the page"

Updated

3 years ago
Component: Untriaged → Disability Access
(Reporter)

Updated

3 years ago
OS: Linux → All
Hardware: x86_64 → All
Version: 32 Branch → Trunk

Updated

2 years ago
Duplicate of this bug: 1126516

Updated

2 years ago
Status: UNCONFIRMED → NEW
Ever confirmed: true
Flags: qe-verify-
Flags: in-testsuite?
Flags: firefox-backlog+
You need to log in before you can comment on or make changes to this bug.