aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add optional serialization_type and hmac_key param values to RESTBagOStuffBill Pirkle2019-10-083-11/+133
| | | | | | | | | | | | | | | | T233537 made RESTBagOStuff work with the Kask external session storage service, but broke backward compatibility. Add optional values to the RESTBagOStuff $params constructor parameter to support communicating with Kask, and to allow using HMAC. The new values are: serialization_type: legacy (default), PHP, or JSON hmac_key: HMAC key to use for protecting the serialized blob If these new values are not specified, behavior remains unchanged (PHP serialization with no HMAC protection). Bug: T233963 Change-Id: Ia2625c04e08cfe9616569500f1d613be73c170a2 (cherry picked from commit 2ed69af15cb8971e35aafc2c08397ed38c480488)
* Merge "Disable flaky Selenium test" into REL1_34jenkins-bot2019-10-081-1/+1
|\
| * Disable flaky Selenium testReedy2019-10-081-1/+1
| | | | | | | | | | Bug: T226144 Change-Id: Ib49898617ba419f709b249ae9a05d9cb7b8e4e9d
* | Merge "Services: Convert LocalisationCache's static to a const now HHVM is ↵jenkins-bot2019-10-084-7/+5
|\ \ | | | | | | | | | gone" into REL1_34
| * | Services: Convert LocalisationCache's static to a const now HHVM is goneJames D. Forrester2019-10-084-7/+5
| | | | | | | | | | | | | | | Change-Id: If5c015debed7efc034613b976bc5292ac30036d7 (cherry picked from commit ebac0247cf38b45a253042be16998c7fffbffcbc)
* | | Merge "Make LocalisationCache a service" into REL1_34jenkins-bot2019-10-0816-142/+311
|\| |
| * | Make LocalisationCache a serviceAryeh Gregor2019-10-0816-142/+311
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This removes Language::$dataCache without deprecation, because 1) I don't know of a way to properly simulate it in the new paradigm, and 2) I found no direct access to the member outside of the Language and LanguageTest classes. An earlier version of this patch (e4468a1d6b6) had to be reverted because of a massive slowdown on test runs. Based on some local testing, this should fix the problem. Running all tests in languages is slowed down by only around 20% instead of a factor of five, and memory usage is actually reduced greatly (~350 MB -> ~200 MB). The slowdown is still not great, but I assume it's par for the course for converting things to services and is acceptable. If not, I can try to optimize further. Bug: T231220 Bug: T231198 Bug: T231200 Bug: T201405 Change-Id: Ieadbd820379a006d8ad2d2e4a1e96241e172ec5a (cherry picked from commit 043d88f680cf66c90e2bdf423187ff8b994b1d02)
* | | Merge "Services: Convert DefaultPreferencesFactory's static to a const now ↵jenkins-bot2019-10-083-6/+4
|\ \ \ | |/ / |/| | | | | HHVM is gone" into REL1_34
| * | Services: Convert DefaultPreferencesFactory's static to a const now HHVM is goneJames D. Forrester2019-10-083-6/+4
| |/ | | | | | | | | Change-Id: If24c5f120cb96311b50750c5b3022664dc6b20e5 (cherry picked from commit 17f3f9cee31cd3aab4370808871309d9de5a87f9)
* | Services: Convert PasswordReset's static to a const now HHVM is goneJames D. Forrester2019-10-083-3/+3
| | | | | | | | | | Change-Id: I77e0d9ce86cf96824eb672d0f35c32b5f4c484be (cherry picked from commit 662b27776b0df77f31e9767bfbecd8bf0ca6ef93)
* | Optionally require both username and email for password resetsMax Semenik2019-10-084-59/+449
|/ | | | | | Bug: T232694 Change-Id: I70ed25ea4f810bf642fcb3df6f9b2663732b5dcf (cherry picked from commit 1de3611539dbef2df2b9c0a4632aecd066695990)
* Services: Convert BlobStoreFactory's static to a const now HHVM is goneJames D. Forrester2019-10-082-5/+3
| | | | | Change-Id: Ia319c881f0457fde71e355eca4873ac157e605d3 (cherry picked from commit 4afe9030c2ff36811e5ff8260e9c401b6e047c01)
* Merge "Services: Convert BlockManager's static to a const now HHVM is gone" ↵jenkins-bot2019-10-083-6/+4
|\ | | | | | | into REL1_34
| * Services: Convert BlockManager's static to a const now HHVM is goneJames D. Forrester2019-10-083-6/+4
| | | | | | | | | | Change-Id: I01d6e18fc30bd61ba7ea5ce1c7c646524579c4ba (cherry picked from commit 40c35286cbf11a12c855eb9ffa722b867028564b)
* | Services: Convert PermissionManager's static to a const now HHVM is goneJames D. Forrester2019-10-084-12/+10
|/ | | | | Change-Id: Ib75b6f5d6b3e793ddbce42951693d8c99e6b7e57 (cherry picked from commit 9cba9f8567ade9a142a49a75b834d1b938c18336)
* Include REL1_34 submodules and default settingsDan Duvall2019-10-0732-2/+117
| | | | Change-Id: If54420b942832cb3db5523de1ea52e9ab5d855e4
* Merge "Drop strings for wgExternalDiffEngine, deprecated in 1.27 and 1.32" ↵jenkins-bot2019-10-076-64/+41
|\ | | | | | | into REL1_34
| * Drop strings for wgExternalDiffEngine, deprecated in 1.27 and 1.32James D. Forrester2019-10-076-64/+41
| | | | | | | | | | | | | | | | Also move the 'unit' test into integration, given it tests code using globals. Change-Id: Ie039cae9b5d2870c18a6deefec9a73de522dd847 (cherry picked from commit 5b3bbd5adea327912694745db9c53d5d39de3315)
* | Merge "Turn PasswordReset into a service" into REL1_34jenkins-bot2019-10-078-45/+100
|\ \
| * | Turn PasswordReset into a serviceMax Semenik2019-10-078-45/+100
| |/ | | | | | | | | | | | | | | My team has plans to work in this area, better make it more testable. Bug: T232694 Change-Id: I200874ec10db69378ada1743b2a7953b3fa01e3e (cherry picked from commit 631f56c5766f582f21dd35eff0376b14692aa145)
* / Drop HHVM support from MediaWikiJames D. Forrester2019-10-073-26/+7
|/ | | | | | | | | This is just a first, top-level patch for documentation and the PHPVersionCheck class itself. Much more clean-up to follow. Bug: T192166 Change-Id: I50f5adc8d5fff604a14c8a889a31d3b92cc568c5 (cherry picked from commit ed8e9397adf9477c381f3880276a2e0917087a7b)
* installer: Fix warningBox arguments in WebInstallerRestartDaimona Eaytoy2019-10-061-1/+1
| | | | | | Found in Idde7a766bb0d084d6b67bb0c940d7ad704847ad2. Change-Id: Ia576f6c39098a58f57ad422d548d0236a3e59cce
* Merge "tests: Fix broken assertion in ApiQueryAllPagesTest"jenkins-bot2019-10-011-2/+1
|\
| * tests: Fix broken assertion in ApiQueryAllPagesTestThiemo Kreuz2019-09-301-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The description had two errors: * It talked about the presence of a specific value, but all it did was checking a count. * It was talking about the value *not* being there. I just removed it. The possible error message from PHPUnit should be good enough. Change-Id: I7ea85dd37db8969bdd120f9600eeb6145e42eb1e
* | Merge "selenium: Replace ES5 one-var assignments with const/let per line"jenkins-bot2019-10-0110-54/+51
|\ \
| * | selenium: Replace ES5 one-var assignments with const/let per lineTimo Tijhof2019-10-0110-54/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The one-var rule only applies to 'var' where it matters that we don't let the engine implicitly hoist variables leading to confusing code that may be unsafe to refactor in a straight-forward manner. This doesn't apply to ES6 const and let. While I updated the rule in 1955a8aa5 to allow ES6, I did not enforce it. Fixed now. When assigning a value, each assignment should be its own statement (disallow awkward comma separated assignments). When not assigning a value, and the lines are next to each other, they should be in one statement. This makes sense for this small directory and might make sense to propose for the wikimedia preset at some point. Note that the rule I added was not required to make the build pass. The changes I made are allowed by default by the wikimedia preset for es6+. The rule I added disallows the previous way. Change-Id: I26cda095a8a4589084e36273038877f2dd1fc50b
* | | Localisation updates from https://translatewiki.net.Translation updater bot2019-10-0120-311/+417
|/ / | | | | | | Change-Id: I8c399d24532a18870561e054cca2d9651e0908ec
* | Avoid dynamic call to static method in ResourceLoaderModule::buildContent()Aaron Schulz2019-09-301-2/+1
| | | | | | | | Change-Id: I4e3d944b6468ad2f4bfc39532498d8ca38617689
* | Merge "Selenium: Hide VE welcome and beta dialogs"jenkins-bot2019-09-304-19/+1
|\ \
| * | Selenium: Hide VE welcome and beta dialogsKosta Harlan2019-09-304-19/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Remove uses of setLocalStorage (incompatible with chromedriver >= 75) and also requires slightly fewer requests since BlankPage.open() doesn't need to be invoked. Bug: T234002 Change-Id: I4cfb4fe17a3c99bfcb7ff39ac6db60f5c5e8a687
* | | Merge "RevisionStore::newRevisionFromBatch should use Title::newFromRow"jenkins-bot2019-09-302-7/+34
|\ \ \
| * | | RevisionStore::newRevisionFromBatch should use Title::newFromRowPetr Pchelko2019-09-302-7/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the rows were obtained using RevisionStore::getQueryInfo with 'page' flags, the revision row already contains the fields needed to construct the Title without an additional database query. Change-Id: Ie36c85871a8996a5706c80d286854a9c8363905f
* | | | Merge "Parser: Add Title type hints"jenkins-bot2019-09-301-70/+61
|\ \ \ \
| * | | | Parser: Add Title type hintsFomafix2019-09-261-70/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | getTitle() and Title() will never return NULL anymore. When mTitle is not set then a TypeError be thrown at runtime. The explicit local checks for is_null( $this->mTitle ) are not needed anymore when $this-getTitle() instead of $this->mTitle is used. Change-Id: I09a178e5c6938954edb2949f13660227d6a01fbc
* | | | | Merge "filebackend: Convert trigger_error to PSR log warning"jenkins-bot2019-09-301-3/+10
|\ \ \ \ \ | |_|_|/ / |/| | | |
| * | | | filebackend: Convert trigger_error to PSR log warningTimo Tijhof2019-09-261-3/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add 'filebackend' name to the context. * Convert message to a normalized form for better de-duplication in Logstash so that it is easier to see whether something is rare or common. Without this, each instance is unique and it might seem rare in a small sample of log messages. This does not fully solve T231107, because we'd really want to know at least the file name the issue is about, but it seems the FileBackendStore does not have access to that right now, that's for a future commit. (It also can't be logged from the caller right now because this method does not expose the result of the operation in question). Bug: T231107 Change-Id: Iaf18d7d5c11334c84077667aa147d99fadb76a30
* | | | | Merge "selenium: Fix inefficient use of MWBot in specs/page.js"jenkins-bot2019-09-301-46/+34
|\ \ \ \ \
| * | | | | selenium: Fix inefficient use of MWBot in specs/page.jsTimo Tijhof2019-09-301-46/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This test previously took 4 minutes to run locally and ended up running the MWBot.login process 9 times. After this, the specs/page tests only log-in once. Bug: T234002 Change-Id: I374620a01f49d4da559070d0982bdbe4c1269e2e
* | | | | | Merge "selenium: Use async-await for wdio-mediawiki/Api internals"jenkins-bot2019-09-301-51/+39
|\| | | | | | |_|_|/ / |/| | | |
| * | | | selenium: Use async-await for wdio-mediawiki/Api internalsTimo Tijhof2019-09-301-51/+39
| | | | | | | | | | | | | | | | | | | | | | | | | Bug: T234002 Change-Id: Ie4ad5248f832dd57f35710e0e9a91250e061b0bb
* | | | | Merge "selenium: Remove "RunJobs" wait from specialrecentchanges test"jenkins-bot2019-09-301-3/+1
|\| | | |
| * | | | selenium: Remove "RunJobs" wait from specialrecentchanges testTimo Tijhof2019-09-291-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This test was consistently reaching the RunJobs timeout of 10 tries and then giving up. This happens in CI, where it wasted about ~ 5 seconds, and locally where it takes about 30s for mw. Like so: > RunJobs through requests to the main page (run 1). > RunJobs detected 12 more queued job(s). > RunJobs through requests to the main page (run 2). > RunJobs detected 12 more queued job(s). Etc, until it reaches run 10 and gives up. This also suggests the whole thing isn't wokring, but that's a separate matter. First and foremost, RecentChange objects are saved from a PRESEND deferred update, which means it does not require a job queue wait in order to appear on Special:RecentChanges. This was added in e908d347ef2 (T199446) "to keep the number of unrun jobs low". The idea being that this test makes an edit via the API, which means it creates jobs without running them. On the other hand, there's also lots of test steps that view pages but don't create jobs, which would make this optimisation premature. If and when we do encounter a test failing due to a job backlog, I'm confident we can find a better solution at that time. Bug: T234002 Bug: T225730 Bug: T199446 Change-Id: I9ef8c5b65d4b636572569912f04f48ed40aa0564
* | | | | Merge "selenium: Remove deprecated legacy methods"jenkins-bot2019-09-305-39/+3
|\ \ \ \ \
| * | | | | selenium: Remove deprecated legacy methodsTimo Tijhof2019-09-295-39/+3
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These are from 2018, prior to introducing wdio-mediawiki in commit 16a4d9da7bb81. Some extensions referenced these pageobjects files through escalating "../../" references. None of these are seen in Codesearch anymore, as well as no references to these deprecated methods by other means. Change-Id: Idbc373f13f9767cecd6404922b5c9773d796dda5
* | | | | Merge "selenium: Upgrade from webdriver v4 to v5"jenkins-bot2019-09-3028-2108/+5471
|\| | | |
| * | | | selenium: Upgrade from webdriver v4 to v5Timo Tijhof2019-09-2928-2108/+5471
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Options no longer needed or no longer exist in wdio v5: - coloredLogs: Now always on. The underlying 'chalk' library can still be influenced via the FORCE_COLOR environment variable. - screenshotPath: Removed. Was already disabled in our config. - deprecationWarnings: Meh. - 'sync: true' – On by default when `@wdio/sync` is installed. The wdio v5 config generator doesn't recommend setting manually. * The selenium.sh script was removed. It existed to start and stop chromedriver for local use by developers. This is now done by the wdio-chromedriver-service. In WMF CI, Quibble starts its own chromedriver (as optimisation, reused across gated repos), which is why the 'selenium-test' entry points remains and skips this. * The wdio-mediawiki package now requires wdio v5 and Node 10. This doesn't affect extension repos because versions are pinned. Upgrade may happen at the earliest convenience. * Several WDIO methods changed names or signature. Full list at: <https://github.com/webdriverio/webdriverio/blob/v5.13.2/CHANGELOG.md#v500-2018-12-20> Highlights: - browser.element() is now browser.findElement() with "$()" as alias. - browser.localStorage replaced by browser.setLocalStorage. - browser.deleteCookie() requires `name` param. To delete all at once, there is a new method browser.deleteAllCookies(). - Commands that return data no longer wrapped in `{ value: … }`. Values are now returned directly. - Custom config keys are now under browser.config instead of browser.options. Renamed our username/password keys to be mw-prefixed, to avoid clashes and reduce confusion with similar config keys. - browser.click(selector) and browser.getText(selector) no longer exist. Use $(selector).click() or .getText() instead. * Fix "no such alert" warning from specs/page.js by removing the apparently redundant code. Bug: T234002 Bug: T213268 Change-Id: I908997569ca8457997af30cb29e98ac41fae3b64
* | | | | Merge "RevisionStore: Introduce getContentBlobsForBatch"jenkins-bot2019-09-304-40/+408
|\ \ \ \ \
| * | | | | RevisionStore: Introduce getContentBlobsForBatchdaniel2019-09-274-40/+408
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | getContentBlobsForBatch provides a more low level interface than newRevisionsFromBatch, allowing bulk access to serialized content without the need to instantiate Title, RevisionRecord, RevisionSlots, SlotRecord, and Content objects. Bug: T228675 Bug: T234034 Change-Id: I8481ad211e2d9f11bc10ea10c16e78b74538d95b
* | | | | | Merge "tests: Replace assertions on count() == 0 with strict === []"jenkins-bot2019-09-303-3/+3
|\ \ \ \ \ \
| * | | | | | tests: Replace assertions on count() == 0 with strict === []Thiemo Kreuz2019-09-303-3/+3
| | |_|_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The benefit of using count() is that the test would still succeed if the return vfalue is not an array, but an iterable object. It seems this is not needed. Change-Id: I23529f6990aebe0cce86e236a21820fe74993204