Page MenuHomePhabricator

CORS errors on commons on debug servers
Closed, ResolvedPublic

Description

Steps to reproduce

  • look at an File page on commons in chrome with the WikimediaDebug plugin turned on, and pointed at one of the debug servers
  • click on 'structured data' tab
  • click into the 'items portrayed in this file' input box and type a word
  • look in console - you'll see errors like this
Access to XMLHttpRequest at 'https://www.wikidata.org/w/api.php?action=wbsearchentities&format=json&origin=https%3A%2F%2Fcommons.wikimedia.org&centralauthtoken=5dda404d53fb823bc91d5a3fe132f46d327a41e&search=q&language=en&uselang=en&type=item' from origin 'https://commons.wikimedia.org' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

This doesn't happen on production servers

Event Timeline

MediaViewer is also broken, due to a slightly different error:

Request header field x-wikimedia-debug is not allowed by Access-Control-Allow-Headers in preflight response.

To fix that, CORS preflight responses should have a Access-Control-Allow-Headers header with the value X-Wikimedia-Debug (it's a comma-separated list, if we are already whitelisting something else - I think the only case is Range headers for uploads), whenever the preflight request includes a Access-Control-Request-Headers header with that header name.

Change 585252 had a related patch set uploaded (by Gergő Tisza; owner: Gergő Tisza):
[operations/puppet@production] Whitelist X-Wikimedia-Debug header for CORS media requests

https://gerrit.wikimedia.org/r/585252

ema triaged this task as Medium priority.Apr 2 2020, 9:00 AM

Change 585252 merged by Ema:
[operations/puppet@production] Whitelist X-Wikimedia-Debug header for CORS media requests

https://gerrit.wikimedia.org/r/585252

Change 585491 had a related patch set uploaded (by Gergő Tisza; owner: Gergő Tisza):
[mediawiki/core@master] Whitelist X-Wikimedia-Debug header for API CORS

https://gerrit.wikimedia.org/r/585491

Change 585779 had a related patch set uploaded (by Gergő Tisza; owner: Gergő Tisza):
[operations/mediawiki-config@master] Whitelist X-Wikimedia-Debug header for cross-wiki API requests

https://gerrit.wikimedia.org/r/585779

Change 585491 merged by jenkins-bot:
[mediawiki/core@master] Allow whitelisting custom headers in action API CORS logic

https://gerrit.wikimedia.org/r/585491

Change 585779 merged by jenkins-bot:
[operations/mediawiki-config@master] Whitelist X-Wikimedia-Debug header for cross-wiki API requests

https://gerrit.wikimedia.org/r/585779

Mentioned in SAL (#wikimedia-operations) [2020-04-06T11:11:32Z] <awight@deploy1001> Synchronized wmf-config/CommonSettings.php: SWAT: [[gerrit:585779| Whitelist X-Wikimedia-Debug header for cross-wiki API requests (T249107)]] (duration: 00m 59s)

Tgr claimed this task.

The error can't be reproduced on Commons anymore.