Page MenuHomePhabricator

wgAction should contain the actually performed action instead of whatever the query value contains
Closed, ResolvedPublic

Description

Although the action parameter overrides the diff-parameter when it's present...

ie. [1] http://commons.wikimedia.org/w/index.php?title=File%3AMessi_Training_.jpg&action=submit&diff=45556202&oldid=45511597 and [2] http://commons.wikimedia.org/w/index.php?title=File%3AMessi_Training_.jpg&action=history&diff=45556202&oldid=45511597 don't show diff-views but editscreens and historypages respectively.

.. when it's not present the diff-parameter instructs MediaWiki to asume a historysubmit and generate a diff.
Such as on this link [3] http://commons.wikimedia.org/w/index.php?title=File%3AMessi_Training_.jpg&diff=45556202&oldid=45511597 or [4] http://commons.wikimedia.org/w/index.php?diff=45556202&oldid=45511597 or even [5] http://commons.wikimedia.org/?diff=45556202 for that matter, all show the diff-view. But also all of them have wgAction set to "view" which is wrong.

Although the last link variation is nowhere generated by MediaWiki itself, the first two varations ([3] and [4]) are actually generated by MediaWiki from IRC and in RecentChanges.

The main reason being that it will be a lot easier for user scripts, widgets and tools to detect diff-views as there are so many different URLs possibly leading to it, the easiest way is just for the wgAction to say what it is.


Version: 1.17.x
Severity: enhancement

Details

Reference
bz25800

Event Timeline

bzimport raised the priority of this task from to Medium.Nov 21 2014, 11:12 PM
bzimport set Reference to bz25800.
  • Bug 26528 has been marked as a duplicate of this bug. ***

This seems pretty wrong... you *should* generally have 'view' as the action on a diff page, as it's a *page view* with some specialized additions (a particular version, some diffs at the top).

By default, old revision & diff views both show a full page rendering, and have some extra UI at top. Neither is expected to change the action away from 'view'.

http://en.wikipedia.org/w/index.php?title=Foobar&action=historysubmit&diff=437783052&oldid=437205393

and

http://en.wikipedia.org/w/index.php?title=Foobar&diff=437783052&oldid=437205393

both output *exactly* the same page. Why is one action=view and the other action=historysubmit?

(In reply to comment #3)

This seems pretty wrong... you *should* generally have 'view' as the action on
a diff page, as it's a *page view*

Then why's there an action historysubmit?

action=historysubmit is for.... submitting the history form.

Note that there are at least two distinct things available in that form right now:

  • diff selection (which really just points you off to a view)
  • selection of revs for show/hide/revdel

I think both of these should redirect you to consistent GET & action=view URLs, for the page w/ diff view or Special:RevisionDelete respectively.

(Note that the millions of direct diff links all over the site have *never* included action=historysubmit, and they shouldn't.)

(In reply to comment #7)

(Note that the millions of direct diff links all over the site have *never*
included action=historysubmit, and they shouldn't.

That they included action=historysubmit in the diff selection is actually a sideefffect of r57415

Now that bug 27930 is resolved. We can fix this bug by using MediaWiki::getAction() instead of looking at the URL directly and doing all sorts of nasty things (e.g. action=yadadadad shouldn't result in "wgAction": "yadadadad".).

See also bug 33587.