Last modified: 2014-11-19 18:41:03 UTC
In our Android app, we allow the user to create an account, and if the API rejects the account creation request, we would like to tell the user exactly why it was rejected. When the createaccount action fails because of an extension, we get back a "code" of "createaccount-hook-aborted", which is not specific enough for us to understand what the exact error is. We do see the "info" text, which is HTML, but we don't want to display it as-is inside the app, for various reasons (e.g. localization). Ideally the API should tell us which extension was responsible for rejecting the request, so that we may decide how to present the corresponding error to the user.
I think AntiSpoof just needs to use the API specific hooks (like was done to ConfirmEdit in Id628defaeab2bf5979ca8f4284d14fc42d9c3e46).
The API-specific hooks aren't actually necessary for this. AddNewAccountApiForm is really intended for mapping from parameters named in API style (such as "captchaid" and "captchaword") to form style (such as "wpCaptchaId" and "wpCaptchaWord"), while AddNewAccountApiResult is for adjusting a non-fatal outcome. AntiSpoof needs to update its AbortNewAccount hook function to use the $abortStatus parameter added to that hook in 1.23, if it wants to avoid a generic 'createaccount-hook-aborted' message.