For any other module, the document root would get processed only
once, but for SkinModule the internal paths would be for the skin
directory, and the path for core ends up processed once.
Once in SkinModule::getStyleFiles via extractBasePaths(), which turns
a document root (wgScript=wgResourceBasePath="") empty string into
a slash (as it should). And then again later by FilePath::getRemotePath
when it is time to perform background image remapping.
The hybrid approach of SkinModule hasn't really been supported or
tested for in this case, but it hasn't been an issue for most installs
because the paths naturally don't end up ambiguous, except for
document root installs. This is likely not the last we've seen of
this, but for now it seems feasible to try to make FilePath
responsible for handling this when it is encountered .
Bug: T284391
Change-Id: I6f5f232bd6da6c655246a5e678a5600889cd78aa