Commit graph

227 commits

Author SHA1 Message Date
Brad Jorsch
0facbe3e3d Try harder to avoid parser cache pollution
* ParserOptions is reorganized so it knows all the options and their
  defaults, and can report whether the non-key options are at their
  defaults.
* Definition of the "canonical" ParserOptions (which is unfortunately
  different from the "default" ParserOptions) is moved from
  ContentHandler to ParserOptions.
* WikiPage uses this to throw an exception if it's asked to cache
  with options that aren't used in the cache key.
* ParserCache gets some temporary code to try to avoid a massive cache
  stampede on upgrade.

Bug: T110269
Change-Id: I7fb9ffca96e6bd04db44d2d5f2509ec96ad9371f
Depends-On: I4070a8f51927121f690469716625db4a1064dea5
2017-06-05 14:17:28 +00:00
Paladox
54c56da85a Fix php code style
Preparation change for updating mediawiki code sniffer to 0.8.0

Change-Id: Ib0b3fe4afea9096ffa3a1347b4f7e07d3398b0b2
2017-05-05 12:03:54 +00:00
Erik Bernhardson
53514e5d5d Allow editors to exclude navigation items from search indices
When you perform a particular search, the results can be polluted by
navigation elements that are not supposed to be displayed. This gives
editors the ability to mark sections of the document that should not
be indexed.

Bug: T162905
Change-Id: Iab2b83c3778cd5f7f44736c0da569fd938ae2968
2017-04-18 14:12:47 -07:00
jenkins-bot
aa3319c4c0 Merge "Miscellaneous indentation tweaks" 2017-02-28 18:38:36 +00:00
Bartosz Dziewoński
ecdef925bb Miscellaneous indentation tweaks
I was bored. What? Don't look at me that way.

I mostly targetted mixed tabs and spaces, but others were not spared.
Note that some of the whitespace changes are inside HTML output,
extended regexps or SQL snippets.

Change-Id: Ie206cc946459f6befcfc2d520e35ad3ea3c0f1e0
2017-02-27 19:23:54 +01:00
James D. Forrester
9635dda73a includes: Replace implicit Bugzilla bug numbers with Phab ones
It's unreasonable to expect newbies to know that "bug 12345" means "Task T14345"
except where it doesn't, so let's just standardise on the real numbers.

Change-Id: I6f59febaf8fc96e80f8cfc11f4356283f461142a
2017-02-21 18:13:24 +00:00
Stanislav Malyshev
fb44ca9094 Add GetContentModels hook to allow extensions to enumerate dynamic content models.
Bug: T155139
Change-Id: Icb41c470dfa4638676eb3ba0e74f437e85acc792
2017-02-02 12:00:42 -08:00
Stanislav Malyshev
8de54f8349 Add content model indexing
Bug: T156371
Change-Id: I1514f9db70870ec05b30153cc56558af0a28b8c9
2017-01-26 15:42:52 -08:00
rlot
99800a9e03 Removed deprecated ContentHandler hooks.
Plus removed unused "ContentHandler::runLegacyHooks"

Bug: T154498
Change-Id: Ie398fd4e06d3e286fe8e24112d0c8b4ac7d883dc
2017-01-18 21:19:17 +00:00
mynk-96
037c58d9b1 moved Exception classes from ContentHandler.php
Bug: T153243
Change-Id: Ieb37b34e76441c5f68ec565c43421c50ac9be7e7
2016-12-26 14:31:39 +00:00
Leszek Manicki
95b9d82a3a Fix parameter type docs
Changes:
 - uses int instead of number as param and return value type,
 - uses stdClass instead of stdObject
 - fixes ResourceLoaderClientHtml constructor's $target param type:
   it is string|null, not an array (previously misspelled as "aray")
 - changes the type of references to XML parser in XMP lib to resource
   instead of not existing XMLParser

Change-Id: I98c363ebc6658d1f4dcabad97a9a92f3fcd7ea8c
2016-12-14 17:01:47 +01:00
jenkins-bot
fba48c6dae Merge "content: Use Language::factory( 'en' ) instead of wfGetLangObj( 'en' )" 2016-11-18 22:53:48 +00:00
Fomafix
9d12d0749c content: Use Language::factory( 'en' ) instead of wfGetLangObj( 'en' )
'en' is a static value so wfGetLangObj always calls Language::factory.

Change-Id: I22df4f7321ffa3e62a552bd2f449bf27feb5c042
2016-11-18 22:43:40 +00:00
jenkins-bot
0a6f97bf40 Merge "Remove ContentHandler::deprecated()" 2016-10-12 23:48:14 +00:00
Reedy
11a0f7d858 Remove ContentHandler::deprecated()
Now unused, replaced with wfDeprecated() calls specifically

Bug: T145728
Change-Id: Id269bcd2958f23ecbc7f4f06a8c3ab5873c53117
2016-10-12 23:41:18 +00:00
Fomafix
7de07e8991 Update weblinks in comments from HTTP to HTTPS
Use HTTPS instead of HTTP where the HTTP link is a redirect to the HTTPS link.

Change-Id: I06d9e043730accc4ae71b927e0f8229f0fc3b340
2016-10-11 17:25:10 +00:00
Reedy
dee0d1ce4e Mark 3 hooks deprecated by ContentHandler as such
ArticleViewCustom, EditPageGetDiffText and EditPageGetPreviewText hooks
now marked as deprecated in 1.21.

TitleIsCssOrJsPage and TitleIsWikitextPage deprecation version dropped
from 1.25 to 1.21 to match other hooks.

Bug: T145728
Bug: T147382
Bug: T147383
Bug: T147384
Bug: T147385
Bug: T147386
Change-Id: I59b6b9f253857eb1040dad879a71e0d8cf141553
2016-10-05 23:41:14 +00:00
jenkins-bot
eea57afbbe Merge "Directly use Language::factory instead of wfGetLangObj" 2016-09-27 15:03:33 +00:00
jenkins-bot
f842bf2739 Merge "Create fields & data for image/file data indexing" 2016-09-27 07:46:36 +00:00
Stanislav Malyshev
2a395370fc Create fields & data for image/file data indexing
Bug: T145558
Change-Id: I23d4c8235d0e4150eefec31cea4b2cfdd32bf32a
2016-09-26 23:42:06 -07:00
Max Semenik
068e0e6ca0 Remove/actualize unused imports
Change-Id: I6ef19d5d982aa45dbf5554107ad9ee720442f466
2016-09-26 17:03:26 -07:00
Fomafix
a4645dc202 Directly use Language::factory instead of wfGetLangObj
figureMessage always returns a valid language code.

Change-Id: Ifa11ca278e7a6f49781846bb6d1eec94669999f3
2016-09-24 12:18:13 +02:00
jenkins-bot
d908ac0d44 Merge "JsonContentHandler: Make sure makeEmptyContent() is valid JSON" 2016-09-09 08:29:15 +00:00
Brian Wolff
386bed1ffd Allow undoing edits that change content model if top
This allows people to revert content model changes
using the undo button, provided that we are undoing
the topmost edit (Otherwise it may get confusing
if you try to undo an edit in the middle of the
history that changes content model).

Bug: T145044
Change-Id: Ic528f65d0dc581c4e241a22f19c512e02aeaa9e7
2016-09-08 20:19:40 -07:00
Kunal Mehta
bb8fff662a JsonContentHandler: Make sure makeEmptyContent() is valid JSON
The default TextContentHandler::makeEmptyContent() implementation
is an empty string, which is not valid JSON.

Change-Id: I8bc6ec647c5e8cd01c5cd63031525619c4ef44d0
2016-09-08 12:52:56 -07:00
Kunal Mehta
a94311363f ContentHandler: Remove entirely-unused mModelName property
This property isn't documented anywhere nor used anywhere.

Change-Id: I37b20260c6abbec49364b31183dd2337be44846b
2016-09-07 23:10:12 -07:00
Kunal Mehta
35e511086b Don't throw exceptions in ContentHandler::getUndoContent()
The method is not documented to throw any exceptions, and already
returns false on failure, and it can be seen as a failure case when the
content models are not the same.

Bug: T145044
Change-Id: I0394d19cd65f9dd3ee350d2cde95afb11ab9e7f4
2016-09-07 20:52:19 -07:00
Aaron Schulz
950cf6016c Rename DB_SLAVE constant to DB_REPLICA
This is more consistent with LoadBalancer, modern, and inclusive
of master/master mysql, NDB cluster, and MariaDB galera cluster.

The old constant is an alias now.

Change-Id: I0b37299ecb439cc446ffbe8c341365d1eef45849
2016-09-05 22:55:53 -07:00
jenkins-bot
fd8a5d4689 Merge "Remove SourceIndexField FLAG_SOURCE_DATA" 2016-09-01 18:59:55 +00:00
dcausse
2dc04ccdb4 Remove SourceIndexField FLAG_SOURCE_DATA
Change-Id: I080f06a5a09f2d67a153b491555d0dbf65c626d0
2016-09-01 17:03:56 +02:00
jenkins-bot
dc36560cdf Merge "Add DEFAULTSORT to search index field data" 2016-09-01 14:51:41 +00:00
dcausse
7c09f09432 Add DEFAULTSORT to search index field data
Added FLAG_SOURCE_DATA to support additional data that is not supposed to be
part of the default mapping.

Should merged with I1484c2e62788bedb57a42869a5fb25cd8f64482f, otherwize rebuilding
an index may add an extra field to CirrusSearch mapping.

Bug: T134978
Change-Id: Ia41f8eeb9dd4f764543bdd4d71b7a50de8101101
2016-08-29 16:51:57 +02:00
Kunal Mehta
85034abca5 content: Refactor normalization of line endings code
The code that normalizes line endings ("\r\n" and "\r" to "\n") and
trims trailing whitespace is buried in Parser::preSaveTransform(), and
was duplicated to TextContent in 96b6afb31d, as non-wikitext content
models should still be normalizing line endings.

This splits the duplicated code into
TextContent::normalizeLineEndings(), and utilize it in the Parser.
Additionally, expand the documentation of
TextContent::preSaveTransform() to document that subclasses should make
sure they normalize line endings during the PST stage.

And remove a useless rtrim() call from WikitextContent that did nothing.

Change-Id: I9094c671d4bbd23d75436f8f1d682d6dd6e6d2fc
2016-08-23 11:09:59 -07:00
jenkins-bot
4b70bc2b28 Merge "Extract ParserOutput search index data fields from WikiTextContentHandler" 2016-08-19 18:40:17 +00:00
aude
64ee3d3269 Extract ParserOutput search index data fields from WikiTextContentHandler
Bug: T142491
Change-Id: I69b010b893135e53fac7f16f4b927b8fbcba06d2
2016-08-19 09:26:17 -04:00
Kunal Mehta
4b5c1745ec Allow marking legacy ContentHandler hooks as deprecated
Instead of having a single development flag that controls whether all
the hooks emit warnings, use the standard hook deprecation method to
mark individual hooks as deprecated once we have determined that their
usage is minimal.

Change-Id: I9a00ae131cb7f609c1d44926d1f6547089f70c34
2016-08-18 17:43:49 +00:00
Stanislav Malyshev
9053f5f2c6 Fix text extraction where we don't have proper file handler
Bug: T143251
Change-Id: I611f6a001bbcea971cc9126bd3f004622e88b47d
2016-08-17 13:54:23 -07:00
jenkins-bot
120e275384 Merge "Call parent::getFieldsForSearchIndex in ContentHandlers" 2016-08-16 17:36:20 +00:00
Brad Jorsch
96b6afb31d TextContent: Normalize newlines in preSaveTransform()
This does the same normalization of newlines that
Parser::preSaveTransform() does. This should be appropriate for any text
content type, especially considering that EditPage uses
WebRequest::getText() which does a less-strict version of this same
transformation.

This also cleans up the code for doing that newline replacement
to be a bit less verbose.

Bug: T142805
Change-Id: I462afcda502f031a8b0360d982ce2398a0383a96
2016-08-16 10:21:32 -04:00
aude
c67536716d Call parent::getFieldsForSearchIndex in ContentHandlers
ContentHandler implementations were not including fields
defined by their parent ContentHandler classes.

merge method is added to the SearchIndexFieldDefinition
mock in SearchEngineTest, to allow merges of fields
in the way that SearchIndexFieldDefition implementation does.

Change-Id: Id04a51528f566da2666bad0394a2f61c949c69b4
2016-08-15 19:33:09 -04:00
Kunal Mehta
3cb341b185 content: Use "::class" when overriding TextContent::getContentClass()
Change-Id: Iea03d2cd24fdb90253145a8abfefe9f8a09e46cd
2016-08-12 21:16:37 -07:00
Stanislav Malyshev
723bb18646 Add search-ignored-headings string, copied from cirrus-search-ignored-headings.
Change-Id: I4178f872996800379843301f7119840f4a4551df
2016-08-04 11:12:26 -07:00
Stanislav Malyshev
add1ebe2ab Make content handlers assemble content for search
Bug: T89733
Change-Id: Ie45de496ecc826211d98eea3a410c7639b4be0a4
2016-07-26 13:08:45 -07:00
Stanislav Malyshev
dc9e171e98 Improve comments on fields and fix opening_text - needs no highlights.
Change-Id: Iad6876aae109ad84c5534619f47c72edc900d704
2016-07-08 13:02:06 -07:00
Stanislav Malyshev
86b55ad03c Create API to allow content handlers to handle structured data definitions
Change-Id: Ia1738803c42f6114575587c1c838fec62b6f54aa
Bug: T89733
2016-07-06 13:41:20 -07:00
Erik Bernhardson
dd3b9a3343 Fix a few incorrect annotations
Found by applying etsy/phan to the mediawiki codebase, in preparation
for getting it running more regularly via CI. Has no effect on how the
code runs, simply does a better job of documenting the code.

Change-Id: I4c844a51df3ffe4fbb96cac25f3eff2f7a9faca2
2016-06-30 17:50:40 -07:00
Thiemo Mättig
c415767e0e Add actual documentation for ContentHandler::getActionOverrides
Change-Id: I7fd803204ad137dd3510ea321ff7e6fa11d910c0
2016-05-18 15:49:26 +02:00
Aaron Schulz
bd863cc1f3 Avoid master queries in getAutoDeleteReason()
This largely used the slaves anyway, but not for certain bits.

Bug: T92357
Change-Id: I909a14b25a959ee28960aa7aa3d799c5f10988d1
2016-04-28 14:26:38 -07:00
Reedy
4277983737 Fix undefined $modelId in MWUnknownContentModelException
Change-Id: I13b93cc1e9d7c050765fab5d8de4e17ca4319dc1
2016-03-14 21:57:03 +00:00
jenkins-bot
7875c6cbfa Merge "Make use of …::class feature in ContentHandler/DatabaseUpdater" 2016-03-14 17:38:08 +00:00