Last modified: 2014-11-12 18:29:10 UTC

Wikimedia Bugzilla is closed!

Wikimedia migrated from Bugzilla to Phabricator. Bug reports are handled in Wikimedia Phabricator.
This static website is read-only and for historical purposes. It is not possible to log in and except for displaying bug reports and their history, links might be broken. See T71160, the corresponding Phabricator task for complete and up-to-date bug report information.
Bug 69160 - Flow: when you close then reopen a topic, IE redisplays the closed state
Flow: when you close then reopen a topic, IE redisplays the closed state
Status: RESOLVED FIXED
Product: MediaWiki extensions
Classification: Unclassified
Flow (Other open bugs)
master
All All
: Unprioritized normal (vote)
: ---
Assigned To: Nobody - You can work on this!
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2014-08-06 00:45 UTC by spage
Modified: 2014-11-12 18:29 UTC (History)
6 users (show)

See Also:
Web browser: Internet Explorer
Mobile Platform: ---
Assignee Huggle Beta Tester: ---


Attachments

Description spage 2014-08-06 00:45:31 UTC
Summary: Flow needs to tell IE not to cache API requests, otherwise it will reuse old API responses for view-topic, etc.

The Close and open topics "Opening a topic" browser test has always failed on Windows 8 IE.
It genuinely doesn't work!

1. Close topic, enter a summary "I closed this", submit. Topic redisplays fine.
2. Reopen topic, enter "I MANUALLY REOPENED THIS", submit.

The topic displays the same *old* state:
  This topic was closed by <YOU>
  - - -
  I closed this

When you close or reopen a topic, Flow JS first makes a POST API request with 
  action=flow
  submodule=close-open-topic
  cotmoderationState=close/reopen

But then (by design, see comment for closeOpenTopic inflow-board.js) Flow JS makes a GET API request for action=flow&submodule=view-topic
and the server responds with the entire topic tree, and Flow JS displays this.

Except in Internet Explorer (so far I've reproduced in Windows 8.1 IE11 and Windows 8 IE10 viewing beta labs and mw.org) when you reopen IE doesn't even make the GET view-topic API request. IE remembers the same request when you close, and so IE redisplays the old content, including the old closed state and old summary. It's not until you reload that IE shows the new topic state.

Caching XML HTTP requests is is a known IE "feature", see e.g. http://www.dashbay.com/2011/05/internet-explorer-caches-ajax/ . IE's developer tools Net tab lies and shows an instantaneous server response of 304 Not Modified.

Many other Flow API requests can result in IE reusing an earlier API response.  In many cases Flow should tell jQuery ajax to disable caching, either with ajax: { cache: false } in the API request as Echo does, or with a single $.ajaxSetup({ cache: false }) call.  But the latter means every Flow API request includes a dummy { _: <TIMESTAMP>} parameter, so every API response has a  {"warnings":{"main":{"*":"Unrecognized parameter: '_'"}} response.
Comment 1 Danny Horn 2014-08-12 19:45:57 UTC
in backlog: https://trello.com/c/Zz3YN0mW
Comment 2 Gerrit Notification Bot 2014-08-20 23:16:13 UTC
Change 155463 had a related patch set uploaded by Bsitu:
Make IE not cache ajax request

https://gerrit.wikimedia.org/r/155463
Comment 3 Gerrit Notification Bot 2014-08-21 16:00:52 UTC
Change 155463 merged by jenkins-bot:
Make IE not cache ajax request

https://gerrit.wikimedia.org/r/155463
Comment 4 Andre Klapper 2014-11-12 14:52:54 UTC
All patches mentioned in this report were merged or abandoned - is there more work left to do here (if yes: please reset the bug report status to NEW or ASSIGNED), or can you close this ticket as RESOLVED FIXED?

Note You need to log in before you can comment on or make changes to this bug.


Navigation
Links