Main environment:
- https://social-tools.wmflabs.org
- MediaWiki 1.30.0 (latest of REL1_30)
- HHVM 3.18.2
Reproduction steps:
- Visit Special:UploadAvatar
- Don't press Choose file, go straight to pressing Upload file
- Receive PHP notices similar to this:
[116d670e43e48d4a8cf870b1] /wiki/Special:UploadAvatar BadMethodCallException from line 356 of /vagrant/mediawiki/includes/specials/SpecialUpload.php: Call to a member function setSubmitText() on a non-object (string) Backtrace: #0 /vagrant/mediawiki/includes/specials/SpecialUpload.php(571): SpecialUpload->showRecoverableUploadError(string) #1 /vagrant/mediawiki/includes/specials/SpecialUpload.php(207): SpecialUpload->processUpload() #2 /vagrant/mediawiki/extensions/SocialProfile/UserProfile/SpecialUploadAvatar.php(52): SpecialUpload->execute(NULL) #3 /vagrant/mediawiki/includes/specialpage/SpecialPage.php(522): SpecialUploadAvatar->execute(NULL) #4 /vagrant/mediawiki/includes/specialpage/SpecialPageFactory.php(578): SpecialPage->run(NULL) #5 /vagrant/mediawiki/includes/MediaWiki.php(287): SpecialPageFactory::executePath(Title, RequestContext) #6 /vagrant/mediawiki/includes/MediaWiki.php(851): MediaWiki->performRequest() #7 /vagrant/mediawiki/includes/MediaWiki.php(523): MediaWiki->main() #8 /vagrant/mediawiki/index.php(43): MediaWiki->run() #9 /var/www/w/index.php(5): include(string) #10 {main}
You might also see this warning (reproduced on local environment, latest version of REL1_30 on PHP 5.6.28):
Warning: getimagesize(): Filename cannot be empty in C:\xampp\htdocs\core\extensions\SocialProfile\UserProfile\SpecialUploadAvatar.php on line 361
Currently, SocialProfile doesn't handle this special situation correctly. There should be a safer fallback to handle this, such as a message saying "You have not chosen an avatar yet; please choose one before uploading".