https://secure.php.net/manual/en/function.implode.php defines the order
of arguments as
string implode ( string $glue , array $pieces )
string implode ( array $pieces )
Note:
implode() can, for historical reasons, accept its parameters in
either order. For consistency with explode(), however, it may be less
confusing to use the documented order of arguments.
Change-Id: I03bf5712204e283f52d3ede54af9b9ec117d4280
Deprecated in 1.25, last vestiges have been removed.
Inline one last function that's not supposed to be public anyway.
Change-Id: If44c6a9cce7d2d95dc63e6f135b73b8c969f1c07
Clean up use of @codingStandardsIgnore
- @codingStandardsIgnoreFile -> phpcs:ignoreFile
- @codingStandardsIgnoreLine -> phpcs:ignore
- @codingStandardsIgnoreStart -> phpcs:disable
- @codingStandardsIgnoreEnd -> phpcs:enable
For phpcs:disable always the necessary sniffs are provided.
Some start/end pairs are changed to line ignore
Change-Id: I92ef235849bcc349c69e53504e664a155dd162c8
Deprecate the second argument to Maintenance::error() in favor of a new
Maintenance::fatalError() method. This is intended to make it easier to
review flow control in maintenance scripts.
Change-Id: I75699008638f7e99b11210c7bb9e2e131fca7c9e
Having such comments is worse than not having them. They add zero
information. But you must read the text to understand there is
nothing you don't already know from the class and the method name.
This is similar to I994d11e. Even more trivial, because this here is
about comments that don't say anything but "constructor".
Change-Id: I474dcdb5997bea3aafd11c0760ee072dfaff124c
Use HTTPS instead of HTTP where the HTTP link is a redirect to the HTTPS link.
Also update some defect links.
Change-Id: Ic3a5eac910d098ed5c2a21e9f47c9b6ee06b2643
* Removed fallback code from Language, the associated data file
(Utf8Case.ser), and the code to generate that data file.
* Removed comment in LanguageFi that "mb_substr has a compatibility
function in GlobalFunctions.php".
* Removed check for mbstring in bench_utf8_title_check.php.
* In the tests for StringUtils::isUtf8():
* Removed separate test for the non-mbstring code path.
* Removed mentions of mbstring from function names and assertion
messages, since mb_check_encoding() is now always used.
* Also updated the comment in StringUtils::isUtf8() referring to
PHP 5.3, which is no longer supported in MediaWiki, to indicate
that the same issue also exists in old versions of HHVM. (If
we don't have to support 3.4 or older, then the function could
be deprecated and removed if desired.)
Follows-up 943563062f.
Change-Id: I55e5cd534b849c6ea06a7fadacbbf34a12d87ebe
Update Makefile.py for Chinese conversion table to convert array() syntax to [] in languages/data/ZhConversion.php .
Change-Id: I10ba5d16ca619f64458feba51e12c3bd5d18435d
It doesn't make sense to get a table passed in then ignore that one
completely so it doesn't look like the intentional behavior, and
regardless of this, the edited code is still more logical.
Change-Id: I98bc841e982d328e268309c06fefd3d3ca9f6cd7
* testCompression.php: Called $wgLang, but didn't set it.
It just assumed it was English. Use a local variable instead.
* update.php: Set $wgLang to English. Set main RequestContext as well.
* transstat.php: Rename $wgLanguages to $languages for less confusion.
It's just a local instance of language.inc's Languages class.
Change-Id: I67865f4d8710946001f7586ab0a17e125366b184
Move ZhConversion.php and Names.php to languages/data and make them both
expose their data as static class variables instead of in the local
scope. This means that the autoloader can be used to load the data,
which is efficient and secure. This also makes additional request-local
caching of the arrays unnecessary.
Change-Id: Iafb96ac4165d0965fcb9a69f1d0a91139ea9790c
* Delete includes/compat/normal/.gitignore, which excluded files
now located in various directories within the utfnormal repo.
* Remove "For NFC see includes/compat/normal" comments from
maintenance/language, replacing them with a note that "This
data file is used after normalizing to NFC."
Change-Id: I0ac990ec1a547b4c454ed738ce1dfffce0f53ba4
Instead of littering includes/ with stub back-compat aliases, house such
classes in includes/compat/.
Change-Id: I4c1b83e35c8d6c18777a4a3e17d81023915cfb7f
wfSuppressWarnings() and wfRestoreWarnings() were split out into a
separate library. All usages in core were replaced with the new
functions, and the wf* global functions are marked as deprecated.
Additionally, some uses of @ were replaced due to composer's autoloader
being loaded even earlier.
Ie1234f8c12693408de9b94bf6f84480a90bd4f8e adds the library to
mediawiki/vendor.
Bug: T100923
Change-Id: I5c35079a0a656180852be0ae6b1262d40f6534c4
* Fix incorrect parsing of phrases with spaces in them by using tabs as
separators only in *.manual
* Make the order of items in PHP array output more stable, so contribs
from different people don't conflict with each other
* Include version number in file name of Unihan database, so existing
old file doesn't prevent downloading of a newer version of Unihan
Change-Id: Ifb6b33b937a7b82218172e3fdd937bda4ea4cc6c
Update the Chinese conversion table to fix bugs reported.
It is only data changes and only works for Chinese WikiProjects.
Bug: T92758
Change-Id: I89a425517b2ba48645e57c48103a48ac5b1718c2
This drops support for the custom utf8 normal PHP extension in favor
of the intl extension.
Bug: T90825
Change-Id: Ifbaeb2ef684217cf6187ccc4fb4d303f89608300
The Chinese conversion table is substantially updated to fix a lot of
bugs reported in recent years, and the script generating conversion
table (LanguageZh.php) is also modified to facilitate the maintenance.
Zh-sg and zh-my is set to fallback to zh-cn to improve reading
experience, since there is only trivial difference among them, just like
zh-hk and zh-mo. Further optimization for zh-sg and zh-my will be
performed in local conversion table of Chinese WikiProjects.
Bug: T91620
Change-Id: I1bb0315d6d7a2c9653905654d933942e362bcc42
0X is a legal hex prefix, but tools like pfff and my syntax highlighter
prefer the more common 0x.
Change-Id: I38bba068f9a97566b0df9fb0a2fe72d25519a21b
- Added/removed spaces around parenthesis
- Added space after switch/if/foreach
- changed else if to elseif
Change-Id: I99cda543e0e077320091addd75c188cb6e3a42c2
They are not being used anymore since the messages lists are in JSON
format, no idea why they were still here. Especially messages.inc is
just confusing everyone adding or removing messages.
Change-Id: If104ca1609e122b6871a97521065916a26734516
Allow category pages to be moved. This is to preserve attribution of the
page only and does not cause pages in the category to recategorize to the
new one. A warning explains this when such a move is attempted. The new
right move-categorypages is required to do this, which is assigned to user
and sysop by default (the same as other move-related rights). The message
category-move-redirect-override can be used to cause custom text to be
placed on the "old" category page in lieu of a redirect.
Bug: 28569
Bug: 5451
Change-Id: Ic93616a54c8e98e3dc71daee3c92c466d64daffc
SecurePoll is going to need the ability to have a form for stuff like
"one or more admin usernames" and "one or more poll questions, each with
one or more options".
This change implements a generic field container that simply displays as
a <ul> followed by an "add more" button, with each <li> containing
various fields including a "remove" button.
Since this is only going to show up in SecurePoll to people creating a
poll (not to general users), the current design is functional but not
necessarily beautiful. Those interested in beauty are welcome to do so
in a followup change.
Change-Id: I46fad3971739ddc961259fe32eb6e1cd265a1c06
* This can limit how many workers work on a given file at once,
regardless of which specific thumbnail parameters are requested.
* Also added a BagOStuff::incrWithInit() method per DRY.
* Tweaked the register_shutdown_function() callback to avoid
File/MediaTransformOutput references, since they may involve
TempFSFile objects.
Change-Id: Ic01461cb974ab23b179ac3b60cf6de12e36360f6
Swapped some "$var type" to "type $var" or added missing types
before the $var. Changed some other types to match the more common
spelling. Makes beginning of some text in captial.
Also added some missing @param.
Change-Id: I727deec35a712de0f0c676cc87dfa661f1ee965b
Removed 'Remember my login' from Preferences, as it was unwanted. It adds
to the complexity of the user preferences
Bug: 52342
Co-Author: Tyler Romeo <tylerromeo@gmail.com>
Change-Id: I7c957e1e1aaecf47f7c47bc063b5d3b364644afc
Statistics are now showing always no messages since languages.inc
does not manage to load the JSON messages.
Had to make LocalisationCache::readJSONFile() public so that it can
be used in languages.inc; since all methods from LocalisationCache
return localisations merged with fallbacks, which is not what we
want here.
Fix for I918cfdc46c (0dd91d5).
Change-Id: Ib52287db618b9d072e847130070d165a3e7ae44b
Special page to implement list of Tracking Categories. Global
$wgTrackingCategories added containing list of tracking categories
Bug: 60333
Change-Id: I7d4bb90622a6bae60845942ef93cfe64f229d2d2
I saw some comments recently on commons suggesting that
better ways are needed to manage duplicate files (There are tools
for if a specific file is a duplicate, but no backlog of
outstanding duplicate files).
This seems like a fairly easy first step in that direction.
Wasn't sure if this should be an image gallery type
query page, or just a list. I think in this case a plain
list is more useful.
Change-Id: Ibe4b9da71ca6451ec4e6b0050feaf3ca70e1b888
Reuses the existing helppage default message and
adds it to ignored messages as Special:MyLanguage
is used and translations have to be removed:
this does not bother customised local links.
Now using HTTPS URL to mediawiki.org per Brion
on bug 54835. This slightly increases the footprint
of the change but should keep everything functionally
equivalent. The sidebar is not bothered by full URLs,
except in self-defeating tests which are also fixed here.
Bug: 53887
Change-Id: I999b97729536dbab4a3a5efd8d6f86527f031948
As part of https://www.mediawiki.org/wiki/Requests_for_comment/Passwords
This patch:
* Allows users to login with a password that does not meet the
requirements of User::isValidPassword(), including the minimum password
length.
* Adds a configuration flag that specifies if users should be sent to
the change password form when they login with a password that doesn't
meet the requirements of User::isValidPassword().
To test the UX as it will be on WMF wikis, set
$wgMinimalPasswordLength=6 in your LocalSettings.php.
Change-Id: Ib7b72005fea1c69073c0a33a68c0a0df0d6528d2
Detailed rationale discussed on bugzilla, bug 53888 and parent,
where consensus on the design was gained.
Using https link per Brion et al. in comments and bug 54835,
with new keys for the messages in order to avoid any conflict
with existing messages. (The translations of the removed messages
will be automatically removed by localisation updates.)
https://www.mediawiki.org/wiki/Help:Logging_in was improved by Lloffiwr
and now also marked for translation. The link is ready for future
translations thanks to the use of the standard Special:MyLanguage, hence
the message is made ignored to allow customisations only locally.
Bug: 53888
Change-Id: I8cefafbcd3bd1d6a03cec7cf1d0efdf607fec21d
This allows a file adjusted message when delete file versions and can
make clear the difference between deleting a revision of the file
description page or a version of the file.
Also renamed 'revdelete-selected' to 'revdelete-selected-text' to be
able to reorder the params, this allows using the same code for each
type (log, text and file)
Change-Id: I02514eda2f267ede16b4298ed5cae64c6787f79d
This reverts commit a0c72523c7.
which has terrible effects on mobile.
Most browser inputs on a mobile phone default to lowercase meaning
a username with a lowercase starting character will always trigger the
warning.
This means the user will have to re-enter their passwords, fill out the captcha
again and their email again (as all these are sensitive and not retained when
reloading the form with the warning)
If this is truly wanted on desktop, more thought it needed for the mobile use
case.
Bug: 61416
Change-Id: I8b93e5a4ca687f87305ced4343dcb28ca2909939
The user name can be adjusted due to various technical restrictions:
the first letter is capitalized, underscores are changed to spaces,
numerous other less visible changes happen. Some of these tweaks can
be unwanted by some users.
Generate a warning if that happens. If the user has JavaScript
enabled, the check happens entirely client-side – a little warning box
is shown, the user doesn't have to do anything. Otherwise the check
happens server-side and the user has to resubmit the form.
The way this is done makes it trivial to also check if the username
is invalid or already taken, so let's do that. It also means that we
can't check for all error conditions, e.g. these enforced by
extensions – that is still handled server-side. (Client-side we
intentionally never say that whatever the user typed in is valid – we
only warn when we know it's not.)
API behavior is unchanged.
Co-Authored-By: umherirrender <umherirrender_de.wp@web.de>
Co-Authored-By: Bartosz Dziewoński <matma.rex@gmail.com>
Bug: 34447
Bug: 61416
Change-Id: Ic461a5e597ad71b854dc65bbf8a395c0f55d1fc3
* Add newOnly option to Special:Contributions
* Add to i18n files
* Add ucshow={new,!new,top,!top} to list=usercontribs
* Deprecated 'uctoponly' in favor of ucshow=top per Anomie.
* Add param 'newonly' to API action=feedcontributions
* Implementation: rev_parent_id=0
Bug: 42026
Change-Id: I07d597ef378d897690097804bf7c774fdadb654c
This commit concerns the filters on the [[Special:RecentChanges]] box.
Previously, "Show" and "Hide" in messages such as "Show anonymous users" were a
shared system message: now each filter can be assigned a verb individually.
For example:
* Argument $1 of `rcshowhideminor` used to come from `show` or `hide`.
* $1 now comes from `rcshowhideminor-show` or `rcshowhideminor-hide`.
In place of `show` and `hide`, the following system messages are affected:
* `rcshowhideminor` uses `rcshowhideminor-show` and `rcshowhideminor-hide`.
* `rcshowhidebots` uses `rcshowhidebots-show` and `rcshowhidebots-hide`.
* `rcshowhideanons` uses `rcshowhideanons-show` and `rcshowhideanons-hide`.
* `rcshowhidepatr` uses `rcshowhidepatr-show` and `rcshowhideanons-hide`.
* `rcshowhidemine` uses `rcshowhidemine-show` and `rcshowhidemine-hide`.
This change attempts to correct an issue encountered when localising into
Chechen (ce); previous behaviour made it impossible to translate the entire
sentence fragment correctly (as the verb is rendered slightly differently
depending on the rest of the sentence, and this was not possible with a shared
Show/Hide message).
Bug: 58449
Change-Id: Ibbfc3cd0477b029c8f22a3c812a891ac2109d660
For users who are able to see the log, provide links to view
suppression log entries for actions done by the user. A link is also
added on Special:DeletedContributions.
This was formerly done by the Oversight extension.
Bug: 59120
Change-Id: I0e606636e80810f9917d6aa624a79f1e190297f6
Add personal tools messages for:
* login -- pt-login
* userlogout -- pt-userlogout
* createaccount -- pt-createaccount
Those messages shouldn't be used as personal tools messages.
Bug: 52861
Change-Id: I8fb229b15c4736945db46672b42a26fd7dafb5f6
Add functionality to expire users' passwords:
* Adds column to the user table to keep a password expiration
* Adds $wgPasswordExpirationDays, which will force users to reset
their passwords after a set number of days. By default, this set
to false, so passwords never expire.
* Adds a default grace period of 7 days, where if the user's password
is expired, they can still login, but are encouraged to reset their
password.
* Adds hook 'LoginPasswordResetMessage' to update reset message, in
case an extension wants to vary the message on a particular reset
event.
* Adds hook 'ResetPasswordExpiration' to allow extensions to change
the expiration date when the user resets their password. E.g., if
an extension wants to vary the expiration based on the user's group.
If the user is in the grace period, they get a password reset form
added to the login successful page. If an extension prevents showing
the login successful page (like CentralAuth), it should be updated to
show a password change form during the grace period. After the grace
period, the user will not be able to login without changing their
password.
Also prevents a successful reset if the user is "changing" their
password to their existing password.
No passwords will expire by default. Sites will have to call
User->expirePassword() from their own maintenance script to trigger a
password reset for a user.
Bug: 54997
Change-Id: I92a9fc63b409b182b1d7b48781d73fc7216f8061
The vector-simplesearch preference is enabled by default since version 1.22.
The option is removed to decrease the clutter in the preference page
Bug: 52815
Change-Id: I6d8dd997a4c4a6b8fb06b4674dda5f306432c6af
Adding the pr_id to log_search table and use a join to get the user,
timestamp and comment from the logging table. For logs without the pr_id
a placeholder text is shown.
The code for page protection is changed from a replace to delete/insert
to have for each pr_id a log_id and not reusing pr_ids which was used
for the first protection on a protection change.
The log_deleted field is checked to avoid showing revision deleted data
from the logging table.
This is a alternative patch for
Ie40057398a7829c698df3d68813006798a72dccb
and Iade82653999ca770586762b3c1383f73dfe3a5ee to avoid a schema change
on table page_restriction.
Idea by Aaron Schulz.
Change-Id: Ia0dc5895ec672896fe4b75c2e0f76da2474bd6e4
This toggle was introduced in 8d06ad6e, but the most useful feature for
human users there (disabling <h1> conversion on a per-user basis) has
been dropped due to cache fragmentation. The only remaining part is not
quite useful and can be covered by the URL parameter &linkconvert=no.
Change-Id: I12f2cdc9b0d44d6e47487b14fa8ef010de5c94a7
Changes pagination message from "starting with #X" to
"in range #X to #Y" for special pages such as
Special:MostLinkedCategories
Bug: 11269
Change-Id: Ibf9191f3a694014ad02eba9a58c600833e8361ec
When an edit has already been undone by a later edit, the current
behavior of displaying undo-success with an empty diff tends to confuse
users. It seems it would be better to detect this situation and display
a message along the lines of "This edit has already been undone".
Bug: 29762
Change-Id: Ia40a06046a72b0de52a2b75165ca105bbf4e2e6a
This was used as an alternative id for the login link in the
personal tools at the top right for ShowIPinHeader context.
This seems to have been inherited since the days of the
PHPTal-based skins (at least git-blame shows their presence back
in Brion's rewrite of the skin in november 2004).
I've asked several maintainers about this and nobody could figure
out why it would need a different id. After all, whenever the
user sees the login link it means they are using the wiki as an
anonymous user.
My best guess is that this was meant to allow the ability to
style the login differently when the (anonymous) user has
already made an edit (or if we init a session for other reasons).
This is also what toggles the anon userlinks are shown (i.e. the
links to the IP userpage and talkpage), but I see no evidence of
this, and in any case it would be better to change the class of
the whole personal tools div instead of changing the IDs.
Change-Id: Ib3445934853db5361c3c6fecfe75623b0b921400
My rationale for doing this is that passing this several functions
down is awkward and arguably bad design.
It's still a better rationale than the one used to add this in 2004,
which was replacing another value to fix HTML injection bug (r4728).
Change-Id: Iada3a93762dd25fdaf35fb707304abc40bd4a5b1
Removed the option 'Justify paragraphs' from MW Preferences
as it is not a necessary option there.
Added RELEASE NOTES.
Bug: 52810
Change-Id: I1fe6a5857070828726077e6ba229b786c017c858
The local Special:AllMessages page is the first and most friendly place
where average users will look for the message and try to translate it:
when they find it, add a link to translatewiki.net so that they can start
translating without searching for it from scratch.
Special:SearchTranslations is the only target usable for this: the solr
search is smart enough to present the most relevant results first and the
translation interface is directly available in place.
On the bright side, similar messages popping up from other projects or areas
of the code will provide suggestions and help find other occurrences of
translations which can similarly be improved.
More specifically, we are using a combined language, key and text search:
* the English text is the only thing guaranteed to exist, if the message is
available, though quoting it can give some false negatives and not quoting
it would give it too much weight if it's long;
* the key can be used thanks to the feature revealed by Niklas Laxström in
comments to this patch: it is simpler to handle but allows only exact matches
and can be wrong if TWN adds a prefix for the extension, so it can't be used
alone, but in the best case it's what we're looking for;
* the language makes sense in combination with the key match.
We boost key and language to get the current translation of the message where
possible; if it's not, the first result will usually be English text.
https://wiki.apache.org/solr/SolrQuerySyntaxhttps://lucene.apache.org/core/2_9_4/queryparsersyntax.html
From the initial search, the user can further refine its search and navigate
the interface to find the message(s) and editor where to add or edit the
translation.
Change-Id: I8de3faba829c50cdc0f2d09726f738c585792e00
The table of contents box is auto-inserted, can trivially be hidden or
exposed on a per-page basis with __MAGICWORDS__, includes a sticky
[show|hide] link, and can be easily hidden with site-wide CSS as
necessary. It needlessly adds complexity and user interface clutter.
Bug: 52813
Change-Id: If2139317dae4aa980b373c73d7b81dac627b5af8
Unwanted user preference option in MW adding to the clutter.
Users interested in hiding section-edit links can use per-user
(or site-wide) CSS.
Removed 'editsection' from Defaultsettings.php and
ResourceLoaderUserCSSPrefsModule.php
Updated Release Notes
Bug: 52811
Change-Id: I5fc49106621943ca7180ddb37590b624edac67d5
With this fix and relevant fix for ConfirmEdit in, an API account creation
attempt that fails the captcha check will return a much cleaner error such as:
{
'error': {
'code': 'captcha-createaccount-fail',
'info': 'Incorrect or missing CAPTCHA.'
}
}
Abort hooks that use the old interface and send a text message will now
be reported with the generic 'createaccount-hook-abort' message code, with the
string passed back intact.
Previously, the returned result would list the contents of the message
_as_ the error code, making it hard for a client to determine the error.
'AbortNewAccount' hook clients can add a '&$status=null' function paramater
on their signature, and along with the back-compat message parameter
you can set something like:
$msg = wfMessage( 'captcha-createaccount-fail' )->text(); // back-compat
$status = Status::newFatal( 'captcha-createaccount-fail' ); // new
This is done for ConfirmEdit in If9cc08e
Bug: 60008
Change-Id: I6ae34c00d1051d34363b6d654424be17dcb1ea30
Replaced calls to the `login-throttled` system message to new, separate system
messages for [[Special:ChangeEmail]] and [[Special:ChangePassword]] in order to
minimise message reuse.
* [[Special:ChangeEmail]] now uses `changeemail-throttled` instead of
`login-throttled`.
* [[Special:ChangePassword]] now uses `changepassword-throttled` instead of
`login-throttled`.
Follow-up to I565971a90fc383327a51d717a80013cb7a3e9c9b.
Bug: 53655
Change-Id: Icc7ad829b381514627dca16cde62ccf0831967b6
This gets the web installer working without the mysql or mysqli
PHP extension, which is not needed for other database systems.
* Avoid "lego" construction: put link text directly in the messages,
which because the messages are parsed as wikitext, is easy to do.
* Put URLs in separate, ignored messages to avoid duplication in
Database*::getSoftwareLink().
* Because I had to touch a MySQL-related i18n message, I figured
this would be a good time to address bug 28281 (regarding MySQL
forks and Special:Version).
* Other miscellaneous message changes, such as recommending the
mysqli PHP extension over the old, deprecated mysql extension.
Bug: 28281
Bug: 58167
Change-Id: I6dbc9d32c8c2d8f233a67d574229b80444885aea
When one user has made all of the intermediate revisions in a diff,
make it clear whether or not this is the same user that made the
latest revision.
Bug: 59833
Change-Id: I7db9a02ae8bc7a8e092fcdc257b5e17595de02b4
This allows getting rid of serialized/serialize.php. I also moved
includes/normal/Utf8CaseGenerate.php to maintenance/language/
generateUtf8Case.php and updated it to subclass Maintenance, as
it seems to be largely unrelated to normalization.
Using version 6.0.0 of UnicodeData.txt, the updated script generates
exactly the same serialized output as was previously checked in.
Also updated the Makefile to reflect the current set of .ser files
and added some .gitignore entries.
Change-Id: I05afece3dc4505a9f43993ac4d7726b37d9c6956
* "Confirm block" checkbox is now highlighted
* Added "check the box if you're sure" message to the errors at the top
Bug: 58783
Change-Id: I2b496d763a14fe47d7458525cb1e8bb9fa5788f6
Cleaned up some HTML, added some CSS classes for the version
information, and refactored some of the code.
Also added column headers for the extension descriptions.
Change-Id: I5bbc4d4024620ea57ab1bf778255a487fbc9b378
Allow extensions to register a software license and present
this on the Special:Version page. A new $wgExtensionCredits
parameter has been introduced for this purpose: 'license-name'.
This will also automatically pick up the presense of additional
licensing and/or credits files. If ((AUTHORS)|(CREDITS))(\.txt)?
exists in the extension base directory a credits link will be
created. If ((LICENSE)|(COPYING))(\.txt)? exists a license link
will be created.
The API has also been updated to produce VCS information and present
links to the license/credits files.
Bug: 48418
Change-Id: I388f3b630462f1909f30751c987f7af585e98881
When an file is being uploaded, we tell the user if it has been
uploaded and deleted in the past. But we shouldn't reveal the title
under which that was done if the file was suppressed via RevDel.
Note this introduces a breaking API change: clients may now receive a
"deleted-archive" warning with an empty value if the title was
suppressed.
Bug: 59167
Change-Id: I01a3ac2ba0cbac6b28de26a7f1a1d09b6b02097e
The sender name for system mailings can now be configured
locally by modifying the system message "emailsender". The
new default sender name is simply "{{SITENAME}}". Added to
release notes.
Also modify UserMailer to strip CR/LF linebreaks from header
values to prevent mail header injection now that the sender
name can be modified.
Bug: 32770
Change-Id: Ibfd28cd181365c8c0b5f3e8ffe8f5de8c89844a3