Page MenuHomePhabricator
Feed Advanced Search

Yesterday

Tgr edited Description on GrowthExperiments.
Mon, Jul 15, 2:04 PM
Tgr removed a hashtag from GrowthExperiments- HelpModule: #growthexperiments.
Mon, Jul 15, 2:04 PM
Tgr added a comment to T228041: Using shell.php in production sends warnings to Logstash.

We could create a separate www-data-writable config directory for every user. I'm not quite sure of the security implications - if an attacker gains www-data access and is able to mess with PHP files executed by another user sudoing as www-data, can that be used somehow to mess with that user's original (probably more privileged) shell account?

Mon, Jul 15, 1:44 PM · Wikimedia-production-error
Tgr added a comment to T220802: Homepage: Time localisation.

Grammatical cases aren't really supported by the i18n framework, translators typically have to work around them by finding a phrasing that's in the nominative. There's a {{GRAMMAR}} magic word which in theory can correctly inflect some limited, predefined set of words, but usually there's no way for the programmer to tell what case a message fragment is going to be in, that's going to depend on the translation of the surrounding message, and there is no way for the translator to set parameters.

Mon, Jul 15, 12:29 PM · I18n, Wikimedia-Hackathon-2019, GrowthExperiments-Homepage, Growth-Team
Tgr added a member for Growth-Team: Tgr.
Mon, Jul 15, 11:30 AM

Sun, Jul 14

Tgr added a comment to T223900: Create ORES dataset for huwiki edits in the last two years or so.

I can just split the file into chunks. It seems something worth fixing in the ores utility in the long run, though - there are a couple Pythong libraries like JSONAutoArray or jsonstreams that allow streaming JSON output.

Sun, Jul 14, 6:50 PM · artificial-intelligence, Scoring-platform-team, editquality-modeling, User-Tgr
Tgr added a comment to T218215: SO878 Step 4: Bind permissions to 2FA.

We should check if a precise error message in case a user looses the permission due to not having 2FA is possible. If not, it's no show stopper.

Sun, Jul 14, 6:13 PM · Core Platform Team Workboards (Contractor Workboard), Core Platform Team (Security, stability, performance and scalability (TEC1)), MediaWiki-extensions-OATHAuth
Tgr placed T224375: JSON validation in REST API up for grabs.
Sun, Jul 14, 4:01 PM · Core Platform Team Workboards (Team 1), Core Platform Team (Parsoid REST API in PHP (CDP2)), MediaWiki-REST-API
Tgr moved T223247: Unit or integration test for Sample REST API Handler from Doing to Code Review on the Reading-Infrastructure-Team-Backlog (Kanban) board.
Sun, Jul 14, 4:00 PM · Core Platform Team Workboards (Team 1), Patch-For-Review, Reading-Infrastructure-Team-Backlog (Kanban), MediaWiki-REST-API, Core Platform Team (Parsoid REST API in PHP (CDP2))
Tgr updated the task description for T212639: Separate could do / can do / is doing permission checks in MediaWiki.
Sun, Jul 14, 3:46 PM · MediaWiki-Authentication-and-authorization
Tgr added a comment to T218674: User::getRights() applies session rights restrictions to non-session users.

User::getRights() has been refactored into PermissionManager::getUserPermissions() which has a comment saying FIXME: $user->getRequest().. need to be replaced with something else. So presumably in the long term a different mechanism will be needed to signal whether the permission check should take session restrictions into account. Possibly T212639: Separate could do / can do / is doing permission checks in MediaWiki.

Sun, Jul 14, 3:45 PM · MediaWiki-User-management, MediaWiki-API
Tgr created T227975: Grant permission errors where the user has the right but the app does not have the grant are unclear.
Sun, Jul 14, 2:19 PM · MediaWiki-extensions-OAuthAuthentication, I18n, MediaWiki-Authentication-and-authorization

Fri, Jul 12

Tgr closed T222410: ObjectFactory should allow using services as Resolved.
Fri, Jul 12, 2:02 PM · MW-1.34-notes (1.34.0-wmf.10; 2019-06-18), MediaWiki-ServiceContainer, ObjectFactory
Tgr closed T227665: Announce or revert ResultWrapper iteration change as Resolved.

Sent a mail to wikitech-l. I think that covers all that can be reasonably expected to be done to notify reusers (DB operations are ubiquitous and there's nothing specific in the way they are operated so I doubt grepping the code would be manageable).

Fri, Jul 12, 9:51 AM · MW-1.34-notes (1.34.0-wmf.14; 2019-07-16), Performance-Team, MediaWiki-Database

Thu, Jul 11

Tgr added a comment to T227688: PHP error from Special:OAuth: "Indirect modification of overloaded property User::$oAuthUserData".

PHP handles

$obj->foo['bar'] = 1;

as

$tmp = $obj->__get( 'foo' );
$tmp['bar'] = 1;

which works fine if foo exists and __get is declared to return references . (Which IIRC was somehow problematic in older PHP and has been fixed recently, but I can't find any docs about that so maybe I'm confusing things.) The issue is when foo doesn't exist, there is no good way to handle the initial $obj->__get( 'foo' ) call. The nice way would be if PHP handled it like this instead:

if ( !$obj->__isset( 'foo' ) ) {
    $obj->__set( 'foo', [] );
}
$tmp = $obj->__get( 'foo' );
$tmp['bar'] = 1;

which is IMO not that unreasonable as native properties behav ein a similar way.

Thu, Jul 11, 8:09 PM · MW-1.34-notes (1.34.0-wmf.13; 2019-07-09), MediaWiki-extensions-OAuth, Wikimedia-production-error
revi awarded T227772: Fix or remove capability to override user rights for the current request a The World Burns token.
Thu, Jul 11, 4:52 PM · Core Platform Team, Patch-For-Review, Stewards-and-global-tools, ArticleFeedbackv5, GraphViz, MediaWiki-extensions-CentralAuth
Tgr added a comment to T227772: Fix or remove capability to override user rights for the current request.

May I please please ask to stop the removal of this function (the bot flag one) before a solution is found?

Thu, Jul 11, 3:50 PM · Core Platform Team, Patch-For-Review, Stewards-and-global-tools, ArticleFeedbackv5, GraphViz, MediaWiki-extensions-CentralAuth
Tgr added a comment to T227447: Librarize i18n-related PHP classes in MediaWiki.

Re: escaping, basically messages are processed in two stages: first either leave as is or preprocess or fully parse, then either escape or leave as is (conceptually, sanitizing the HTML would be the third option, but that happens as part of the parse). Some combinations do not make sense (specifically, if you parse a message, there's no point in escaping it), and sometimes the escaping step or even both are done manually by the caller, not by Message, but these are the fundamental use cases. The first stage corresponds to the format of the message - the message author and the programmer calling the Message rendering method need to be on the same page as to whether the message can contain templates, and whether it can contain wikimarkup. The second stage corresponds to the use site of the message - the programmer calling the Message rendering method needs to know whether the message is plain text or escaped or sanitized HTML and manually sanitize accordingly if needed before inserting in the output. That these two choices have to happen at the same time, in the same code location, makes things unnecessarily complicated.

Thu, Jul 11, 3:46 PM · Librarization, I18n, MediaWiki-Internationalization
Tgr added a comment to T213505: RfC: OpenGraph descriptions in wiki pages.
Thu, Jul 11, 3:07 PM · Reading-Infrastructure-Team-Backlog, MediaWiki-General-or-Unknown, TechCom-RFC
Tgr added a comment to T227772: Fix or remove capability to override user rights for the current request.

Are you suggesting to remove Special:MultiLock?

Thu, Jul 11, 2:56 PM · Core Platform Team, Patch-For-Review, Stewards-and-global-tools, ArticleFeedbackv5, GraphViz, MediaWiki-extensions-CentralAuth
Tgr added a comment to T227489: MediaWiki updater error: revision_comment_temp.

Invoking message localization in the updater seems like a pretty bad idea, it's not safe to assume you can read from the (unmigrated) database. The format returned by that method doesn't seem super useful for maintenance scripts anyway, it would be best to have a helper that returns structured data and can be used by both.

Thu, Jul 11, 1:52 PM · MediaWiki-Comment-backend, MediaWiki-Installer
Tgr created T227772: Fix or remove capability to override user rights for the current request.
Thu, Jul 11, 1:24 PM · Core Platform Team, Patch-For-Review, Stewards-and-global-tools, ArticleFeedbackv5, GraphViz, MediaWiki-extensions-CentralAuth
Tgr added a comment to T223882: Re-label huwiki damaging and badfaith edits.

@Halfak labeling is now mostly done (474 out of 500), all the remaining items need privileged access, and none of the admins are able to use the labeling tool due to the aforementioned bug (which seems to only affect a subset of the users).

Thu, Jul 11, 12:39 PM · Scoring-platform-team (Current), editquality-modeling, Wikilabels, artificial-intelligence
Tgr added a comment to T227688: PHP error from Special:OAuth: "Indirect modification of overloaded property User::$oAuthUserData".

Follow-ups left to do:

Thu, Jul 11, 10:27 AM · MW-1.34-notes (1.34.0-wmf.13; 2019-07-09), MediaWiki-extensions-OAuth, Wikimedia-production-error

Wed, Jul 10

Tgr added a comment to T227665: Announce or revert ResultWrapper iteration change.

Thanks @aaron!

Wed, Jul 10, 8:09 PM · MW-1.34-notes (1.34.0-wmf.14; 2019-07-16), Performance-Team, MediaWiki-Database
Tgr committed rEOAU1de417eb05f4: Do not rely on array autocreation for custom User properties (authored by Tgr).
Do not rely on array autocreation for custom User properties
Wed, Jul 10, 7:52 PM
Tgr added a comment to T227688: PHP error from Special:OAuth: "Indirect modification of overloaded property User::$oAuthUserData".
public function __set( $name, $value ) {
	// A shortcut for $mRights deprecation phase, only known legitimate use was for
	// testing purposes, other uses seem bad in principle

Breaking functionality without warning because it "seems bad in principle" is really not the way to do these things :(

Wed, Jul 10, 7:38 PM · MW-1.34-notes (1.34.0-wmf.13; 2019-07-09), MediaWiki-extensions-OAuth, Wikimedia-production-error
Tgr added a comment to T227688: PHP error from Special:OAuth: "Indirect modification of overloaded property User::$oAuthUserData".

I guess this is a PHP bug of sorts?

Wed, Jul 10, 6:35 PM · MW-1.34-notes (1.34.0-wmf.13; 2019-07-09), MediaWiki-extensions-OAuth, Wikimedia-production-error
Tgr added a comment to T227688: PHP error from Special:OAuth: "Indirect modification of overloaded property User::$oAuthUserData".

Oh wait, no train last week due to July 4. It does match then.

Wed, Jul 10, 6:21 PM · MW-1.34-notes (1.34.0-wmf.13; 2019-07-09), MediaWiki-extensions-OAuth, Wikimedia-production-error
Tgr added a comment to T227688: PHP error from Special:OAuth: "Indirect modification of overloaded property User::$oAuthUserData".

rMWdd6b94024c53: Re-apply: Factors out permissions check from User into PermissionManager service would be the obvious culprit as it added a __get() magic method to User, but the timing doesn't match (it was merged 12 days ago).

Wed, Jul 10, 6:12 PM · MW-1.34-notes (1.34.0-wmf.13; 2019-07-09), MediaWiki-extensions-OAuth, Wikimedia-production-error
Tgr added a comment to T227689: Allow bypassing TemplateStyles when viewing the content of a page.

safemode doesn't deactivate inline styles (or inline styles within a template) either. It's purpose is to determine whether the problem is with the standard rendering of the page or with the user's / wiki's personal settings. So the current behavior seems correct to me.

Wed, Jul 10, 5:39 PM · TemplateStyles, User-DannyS712
Tgr added a comment to T227664: Backwards compatibility break tag.

Regression IMO doesn't really have a use case. Why would I want to search for known regressions?
Since it doesn't have a use case, few people care about placing it.

Wed, Jul 10, 2:36 PM · Project-Admins
Tgr updated the task description for T226762: [Bug] GET /data/lists doesn't include "next" in an incomplete response.
Wed, Jul 10, 1:41 PM · Wikipedia-Android-App-Backlog, Reading-Infrastructure-Team-Backlog (Kanban), Wikipedia-iOS-App-Backlog, iOS-app-Bugs, Reading List Service
Tgr added a comment to T227664: Backwards compatibility break tag.

(Thought of this while thinking about what projects to add to T227665: Announce or revert ResultWrapper iteration change.)

Wed, Jul 10, 1:41 PM · Project-Admins
Tgr created T227665: Announce or revert ResultWrapper iteration change.
Wed, Jul 10, 1:40 PM · MW-1.34-notes (1.34.0-wmf.14; 2019-07-16), Performance-Team, MediaWiki-Database
Tgr created T227664: Backwards compatibility break tag.
Wed, Jul 10, 1:39 PM · Project-Admins
Tgr updated the task description for T226762: [Bug] GET /data/lists doesn't include "next" in an incomplete response.
Wed, Jul 10, 10:29 AM · Wikipedia-Android-App-Backlog, Reading-Infrastructure-Team-Backlog (Kanban), Wikipedia-iOS-App-Backlog, iOS-app-Bugs, Reading List Service
Tgr moved T226762: [Bug] GET /data/lists doesn't include "next" in an incomplete response from To Do to Doing on the Reading-Infrastructure-Team-Backlog (Kanban) board.
Wed, Jul 10, 10:27 AM · Wikipedia-Android-App-Backlog, Reading-Infrastructure-Team-Backlog (Kanban), Wikipedia-iOS-App-Backlog, iOS-app-Bugs, Reading List Service
Tgr updated the task description for T226762: [Bug] GET /data/lists doesn't include "next" in an incomplete response.
Wed, Jul 10, 10:23 AM · Wikipedia-Android-App-Backlog, Reading-Infrastructure-Team-Backlog (Kanban), Wikipedia-iOS-App-Backlog, iOS-app-Bugs, Reading List Service
Tgr added a comment to T152219: Statistics on Captcha success/failure rate.

Grafana stats haven't changed significantly since 2018. These stats are probably not very good for measuring false acceptance rates (ie. how many spambots get through), though - if only 99% of spambots fail instead of 99.9% that's 10x the workload for spamfighters but no visible change in the amount of attempts caught by captchas, and probably no visible change in successful attempts either (as those are still dominated by real humans). Maybe Tim's approach of looking at small wikis where spambots are a large fraction of the userbase would be more sensitive.

Wed, Jul 10, 10:23 AM · AICaptcha, Security-Team
Tgr added a comment to T226762: [Bug] GET /data/lists doesn't include "next" in an incomplete response.

There are two ways to use the Reading Lists API: fetch all lists (or all pages in a given list) for a given user, or fetch changes since a given timestamp. I'm not sure about the current app logic, but AIUI the idea was to do a full fetch first and then syncs and only do another full fetch of the app has been offline for so long that the API does not remember all changes anymore (currently that means more than 30 days). During the ~1 month the bug was live, any response longer than 11 items was terminated without indicating that it is a partial response and should be continued in another request (this was a bug with the DB result iteration logic so it affected everything - GET /data/lists/, GET /data/lists/{id}/entries/, GET /lists/changes/since/{date}). So if a client did a partial fetch or sync during that time and was made believe it was a full one, later it would only try to sync changes after that time, it wouldn't know to request the missing items.

Wed, Jul 10, 9:41 AM · Wikipedia-Android-App-Backlog, Reading-Infrastructure-Team-Backlog (Kanban), Wikipedia-iOS-App-Backlog, iOS-app-Bugs, Reading List Service
Tgr added a comment to T220145: Homepage Mentorship: allow mentors to configure their presentation.

It's used quite a bit.

Wed, Jul 10, 8:42 AM · GrowthExperiments- MentorshipModule, MW-1.34-notes (1.34.0-wmf.13; 2019-07-09), Growth-Team (Current Sprint), Wikimedia-Hackathon-2019, GrowthExperiments

Tue, Jul 9

Restricted Application updated subscribers of T71534: Metadata improvement campaign.
Tue, Jul 9, 6:04 PM · Multimedia, MediaViewer
Restricted Application updated subscribers of T75902: MediaViewer should have special handling for images which link to other images.
Tue, Jul 9, 6:03 PM · Multimedia, MediaViewer
Tgr removed a watcher for MediaViewer: Tgr.
Tue, Jul 9, 4:33 PM
Tgr removed a watcher for Space: Tgr.
Tue, Jul 9, 4:02 PM
Tgr awarded T129842: Launch the Wikimedia "Code Review Special Interest Group" a Yellow Medal token.
Tue, Jul 9, 3:54 PM · Release-Engineering-Team (Code Health), Code-Health, Developer-Advocacy
Tgr moved T226762: [Bug] GET /data/lists doesn't include "next" in an incomplete response from To Deploy to To Do on the Reading-Infrastructure-Team-Backlog (Kanban) board.
Tue, Jul 9, 3:35 PM · Wikipedia-Android-App-Backlog, Reading-Infrastructure-Team-Backlog (Kanban), Wikipedia-iOS-App-Backlog, iOS-app-Bugs, Reading List Service
Tgr added a project to T224985: Rename Special:ElectronPdf to Special:Download as Pdf or Special:Export as Pdf: Electron-PDFs.
Tue, Jul 9, 11:23 AM · patch-welcome, Electron-PDFs, good first bug, Reading-Infrastructure-Team-Backlog, Proton, PDF Rendering, Readers-Web-Backlog
Tgr added a comment to T224985: Rename Special:ElectronPdf to Special:Download as Pdf or Special:Export as Pdf.

Special:DownloadAsPdf is probably more in line with current naming conventions, I don't think we have any special page with space in its name.

Tue, Jul 9, 11:21 AM · patch-welcome, Electron-PDFs, good first bug, Reading-Infrastructure-Team-Backlog, Proton, PDF Rendering, Readers-Web-Backlog

Mon, Jul 8

Tgr added a comment to T223900: Create ORES dataset for huwiki edits in the last two years or so.

On Toolforge that command gets OOM-killed after consuming around 1G of memory, if I read the logs right:

Jul  8 13:07:24 tools-sgebastion-07 kernel: [3545133.021409] ores invoked oom-killer: gfp_mask=0x24000c0(GFP_KERNEL), nodemask=0, order=0, oom_score_adj=0
...
Jul  8 13:07:24 tools-sgebastion-07 kernel: [3545133.021463] memory: usage 1048576kB, limit 1048576kB, failcnt 14613
...
Jul  8 13:07:24 tools-sgebastion-07 kernel: [3545133.021465] Memory cgroup stats for /user.slice/user-2355.slice: cache:0KB rss:1042516KB rss_huge:0KB mapped_file:0KB dirty:0KB writeback:0KB inactive_anon:174236KB active_anon:868280KB inactive_file:0KB active_file:0KB unevictable:0KB
...
Jul  8 13:07:24 tools-sgebastion-07 kernel: [3545133.086951] oom_reaper: reaped process 24615 (ores), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB

Maybe it's trying to store the whole JSON output in memory instead of dumping it sequentially?

Mon, Jul 8, 10:30 PM · artificial-intelligence, Scoring-platform-team, editquality-modeling, User-Tgr
Tgr created T227489: MediaWiki updater error: revision_comment_temp.
Mon, Jul 8, 2:49 PM · MediaWiki-Comment-backend, MediaWiki-Installer
Tgr added a comment to T226598: REST API i18n.
  1. Refactor the existing Message class into a service and value object model. The service interface and value objects can theoretically be libraryized. Use the resulting classes directly from REST.
Mon, Jul 8, 11:48 AM · Patch-For-Review, MediaWiki-REST-API, Core Platform Team (Parsoid REST API in PHP (CDP2)), Services (watching)
Tgr added a comment to T227204: One feed to pull all the announcements published by the Foundation.

From a technical POV a feed to publish Foundation announcements and a feed to collect announcements community members are making towards the Foundation is not even similar, not sure if it's useful to discuss them in the same task. Translation requirements will be different, moderation requirements will be very different, wiki integration possibilities to consider will be entirely different etc.

Mon, Jul 8, 11:00 AM · Space (Jul-Sep-2019)
Tgr updated subscribers of T227447: Librarize i18n-related PHP classes in MediaWiki.

Possibly relevant (although maybe not something to attempt at the same time given the complexity) is that currently Message is something of a security nightmare: the code turning it into a string (and choosing whether to escape) doesn't know what format the message is in; the repository holding the message (ie. Translatewiki) doesn't know how it's going to be escaped. $wgRawHtmlMessages was an attempt to specify that, but it's a band-aid at best (and doesn't actually prevent using an undeclared message as raw HTML). Fixing that will probably involve some changes to ow Message is called, e.g. unbundling formatting (plain text, block etc) and escaping (raw HTML or not). See also @Simetrical's comments in T21291#4468578.

Mon, Jul 8, 9:35 AM · Librarization, I18n, MediaWiki-Internationalization
Nikerabbit awarded T227447: Librarize i18n-related PHP classes in MediaWiki a Like token.
Mon, Jul 8, 9:22 AM · Librarization, I18n, MediaWiki-Internationalization
Tgr added a comment to T227447: Librarize i18n-related PHP classes in MediaWiki.

Another approach (instead of a renderer service) would be to inject a MessageLocalizer-ish service into all libraries, and require all message objects to be created by that service, and the interface version of Message would specify the output methods (text(), parse() etc) instead of the input ones. But that would mean keeping the current mess of Message rendering itself (or using a service callback, which is still not nice and makes serialization more problematic). So probably not a good idea.

Mon, Jul 8, 9:20 AM · Librarization, I18n, MediaWiki-Internationalization
Tgr created T227447: Librarize i18n-related PHP classes in MediaWiki.
Mon, Jul 8, 9:09 AM · Librarization, I18n, MediaWiki-Internationalization
Tgr added a comment to T204592: [BUG] Wikitext appearing in some descriptions, which should be plain text.

Another interesting issue that was raised there is the capitalization - the short descriptions guideline recommends using sentence case, while Wikidata doesn't, so users will see inconsistent casing.

Mon, Jul 8, 7:27 AM · Reading-Infrastructure-Team-Backlog, iOS-app-Bugs, Wikipedia-iOS-App-Backlog
Tgr created T227424: Sentence-casing Wikidata descriptions in the Android app results in wrong case for proper nouns starting with lowercase.
Mon, Jul 8, 7:25 AM · Wikipedia-Android-App-Backlog

Sun, Jul 7

Tgr reopened T204592: [BUG] Wikitext appearing in some descriptions, which should be plain text as "Open".

Reopening per the discussion on the talk page. Apparently wikilinks (even if not used much) aren't really editor errors, the {{short description}} template is used in two different ways, to invoke the {{SHORTDESC:}} magic word which provides short descriptions via the API, and to provide content for the {{Annotated link}} template (which apprently uses Lua to fetch the linked page and then regular expressions to parse the {{short description}} template and its description parameter out of the wikitext - wow) so that the descriptions can be shown on e.g. disambiguation pages. In that latter usage pattern wikimarkup does get parsed, and there's no consensus on whether it should be allowable or not.

Sun, Jul 7, 10:42 AM · Reading-Infrastructure-Team-Backlog, iOS-app-Bugs, Wikipedia-iOS-App-Backlog
Tgr added a comment to T227159: Enable sandbox branches in gerrit.

The error message suggests LdapPrimaryAuthenticationProvider::beginPrimaryAccountCreation returned null (or some other non-object) instead of an AuthenticationResponse. I can't see that happening unless the code was altered locally.

Sun, Jul 7, 9:55 AM · Release-Engineering-Team-TODO (201907), Gerrit

Sat, Jul 6

Tgr added a project to T227391: ResourceLoader breaks Save Page functionality in browsers: New-Readers.
Sat, Jul 6, 10:04 PM · New-Readers, Performance-Team, MediaWiki-ResourceLoader
Tgr created T227391: ResourceLoader breaks Save Page functionality in browsers.
Sat, Jul 6, 10:03 PM · New-Readers, Performance-Team, MediaWiki-ResourceLoader

Fri, Jul 5

Tgr added a comment to T184529: Define a way to get a database connection based on a logical wiki ID..

@Tgr and I discussed this at the hackathon, but it seems we didn't write it down.

Fri, Jul 5, 11:36 PM · Core Platform Team (Cross-Wiki (CDP2)), User-Daniel, MediaWiki-Database
Tgr placed T227325: VE does not support wikitext in system messages up for grabs.

Allowing links in error messages is useful in general as site admins might want to link to the bug tracker, their organization's IT desk / support forum, document workarounds for specific issues they have etc.

Fri, Jul 5, 6:24 PM · I18n, VisualEditor
Tgr added a comment to T225366: "Fatal exception: MediaWiki\Revision\InvalidArgumentException" when trying to move user JS page on en.wp.

Yeah. The error was reproducible so I suppose someone could revert on mwdebug, add logging if needed, and test there.

Fri, Jul 5, 5:31 PM · Core Platform Team Workboards (Clinic Duty Team), MW-1.34-notes (1.34.0-wmf.10; 2019-06-18), Core Platform Team (Security, stability, performance and scalability (TEC1)), MediaWiki-Revision-backend, Wikimedia-production-error
Tgr added a comment to T224979: Parsoid REST Routes Extension.

Need to set up tests, that's T227352: Set up extension tests for Parsoid repo.

Fri, Jul 5, 5:25 PM · MediaWiki-REST-API, Core Platform Team (Parsoid REST API in PHP (CDP2)), Parsoid-PHP
Tgr created T227352: Set up extension tests for Parsoid repo.
Fri, Jul 5, 5:24 PM · Continuous-Integration-Config, Parsoid-PHP
Tgr updated subscribers of T226762: [Bug] GET /data/lists doesn't include "next" in an incomplete response.

Is this fully resolved, or does it need follow-up for clearing incorrect client-side caches?

Fri, Jul 5, 2:46 PM · Wikipedia-Android-App-Backlog, Reading-Infrastructure-Team-Backlog (Kanban), Wikipedia-iOS-App-Backlog, iOS-app-Bugs, Reading List Service
Tgr added a comment to T227147: Can't upgrade MW installs to MW1.33 if using a non-standard DB prefix.

Needs an 1.33.1 release.

Fri, Jul 5, 2:37 PM · MW-1.33-notes, MW-1.33-release, MediaWiki-Database
Tgr added a comment to T223882: Re-label huwiki damaging and badfaith edits.

@Halfak seems like something is wrong with wikilabels, after creating a new workset the request for workset contents (https://labels.wmflabs.org/campaigns/huwiki/<user>/<workset>/?tasks=&campaign=) returns tasks: [] so wikilabels shows a 0/0 progress bar and throws Could not select task. Index 0 out of bounds. at TaskList.selectByIndex on the JS console and Nem sikerült betölteni a(z) „damaging_and_goodfaith” űrlapot: $2 gets disoplayed to the user. Several other users have reproduced this (but not everyone who tried). Should I make a separate bug report?

Fri, Jul 5, 12:25 PM · Scoring-platform-team (Current), editquality-modeling, Wikilabels, artificial-intelligence
Tgr added a comment to T227118: Comments should be more apparent when viewing the Space blog.

The WMF news section is entirely readonly, so not the best example of how to invite users to participate.

Fri, Jul 5, 9:53 AM · Space (Jul-Sep-2019)
Tgr added a comment to T226633: PDF renderer needs better CJK font.

You can submit a patch to the operations/puppet repo if you want to speed things up. See the tutorials for Puppet and Gerrit.

Fri, Jul 5, 8:24 AM · PDF Rendering, Proton, Reading-Infrastructure-Team-Backlog

Thu, Jul 4

Tgr updated subscribers of T223882: Re-label huwiki damaging and badfaith edits.

Thanks! Announced and asked for participation here: https://hu.wikipedia.org/wiki/Wikip%C3%A9dia:J%C3%A1r%C5%91r%C3%B6k_%C3%BCzen%C5%91fala#ORES_oszt%C3%A1lyoz%C3%A1sok_fel%C3%BClvizsg%C3%A1lata

Thu, Jul 4, 9:55 AM · Scoring-platform-team (Current), editquality-modeling, Wikilabels, artificial-intelligence

Wed, Jul 3

Tgr added a comment to T208758: Extend Popups-Extension to render popups for annotated <math>.

T111231: Page previews for Wikidata might be relevant.

Wed, Jul 3, 9:43 PM · Readers-Web-Backlog (Design), Page-Previews
Tgr closed T204592: [BUG] Wikitext appearing in some descriptions, which should be plain text as Resolved.
Wed, Jul 3, 6:38 PM · Reading-Infrastructure-Team-Backlog, iOS-app-Bugs, Wikipedia-iOS-App-Backlog
Tgr added a comment to T204592: [BUG] Wikitext appearing in some descriptions, which should be plain text.

Is this a rare issue or are there hundreds or thousands of such occurrences?

Wed, Jul 3, 6:38 PM · Reading-Infrastructure-Team-Backlog, iOS-app-Bugs, Wikipedia-iOS-App-Backlog
Tgr added a comment to T226762: [Bug] GET /data/lists doesn't include "next" in an incomplete response.

Fix should be live now.

Wed, Jul 3, 4:27 PM · Wikipedia-Android-App-Backlog, Reading-Infrastructure-Team-Backlog (Kanban), Wikipedia-iOS-App-Backlog, iOS-app-Bugs, Reading List Service
Tgr merged T227197: [BUG] Reading Lists Not Syncing — 11 lists synced into T226762: [Bug] GET /data/lists doesn't include "next" in an incomplete response.
Wed, Jul 3, 4:26 PM · Wikipedia-Android-App-Backlog, Reading-Infrastructure-Team-Backlog (Kanban), Wikipedia-iOS-App-Backlog, iOS-app-Bugs, Reading List Service
Tgr merged task T227197: [BUG] Reading Lists Not Syncing — 11 lists synced into T226762: [Bug] GET /data/lists doesn't include "next" in an incomplete response.
Wed, Jul 3, 4:26 PM · Reading-Infrastructure-Team-Backlog (Kanban), Reading List Service, iOS-app-Bugs, Wikipedia-iOS-App-Backlog
Tgr added a comment to T226840: Consistent HTTP 503 Error on some urls for some logged-in users (CentralAuth Set-Cookie storm).

At a glance:

  • The edit API uses it because the way it works is to construct a fake request to the web edit form based on the API parameters. It's all rather horrible; the MCR rewrite was supposed to replace it with something non-hacky but that project seems to have stalled :(
  • The paraminfo API uses it to render messages in a custom language (I think). It could probably use DerivativeContext instead. But it overrides the user so it won't trigger this bug anyway.
  • The parser uses it to simulate query parameters for transcluded special pages. That probably can't be replaced with DerivativeContext, but it also overrides the user and request so should not be able to trigger session creation.
  • Echo and FileImporter use it for internal API requests. That's wrong, DerivativeContext should be used instead.
  • Flow, VisualEditor and LiquidThreads seem to use it to get an OutputPage separate from the main output. Probably should be using new OutputPage( RequestContext::getMain() )? Although the OutputPage constructor does say not to do that.
Wed, Jul 3, 4:24 PM · TimedMediaHandler, MW-1.34-notes (1.34.0-wmf.13; 2019-07-09), Wikimedia-Incident, Performance-Team (Radar), Traffic, MediaWiki-extensions-CentralAuth, Operations
Tgr committed rERLS84ff5f475968: Fix API continuation (authored by Tgr).
Fix API continuation
Wed, Jul 3, 3:57 PM
Tgr added a comment to T227197: [BUG] Reading Lists Not Syncing — 11 lists synced.

Oh wait, there's no train this week. I'll SWAT it today, then.

Wed, Jul 3, 3:52 PM · Reading-Infrastructure-Team-Backlog (Kanban), Reading List Service, iOS-app-Bugs, Wikipedia-iOS-App-Backlog
Tgr added a comment to T227197: [BUG] Reading Lists Not Syncing — 11 lists synced.

This is caused by T226762: [Bug] GET /data/lists doesn't include "next" in an incomplete response (which unfortunately has been going on for a while before we caught it). The fix should be deployed with this week's train. There's no data loss on the server side; I'd imagine the client needs a full reload of the lists (not just a sync of the delta since the last sync) to recover. Sorry for the trouble.

Wed, Jul 3, 3:51 PM · Reading-Infrastructure-Team-Backlog (Kanban), Reading List Service, iOS-app-Bugs, Wikipedia-iOS-App-Backlog
Tgr updated the task description for T227066: Integrate MW_API with MediaWiki REST API framework.
Wed, Jul 3, 2:57 PM · MediaWiki-API, MediaWiki-REST-API
Tgr added a comment to T226840: Consistent HTTP 503 Error on some urls for some logged-in users (CentralAuth Set-Cookie storm).

Sessions are created all the time, and they are short-lived (one hour I think?). I'm pretty sure creating a dozen sessions in some fairly rare corner cases is not something we need to be concerned about.

Wed, Jul 3, 1:15 PM · TimedMediaHandler, MW-1.34-notes (1.34.0-wmf.13; 2019-07-09), Wikimedia-Incident, Performance-Team (Radar), Traffic, MediaWiki-extensions-CentralAuth, Operations
Tgr added a comment to T226840: Consistent HTTP 503 Error on some urls for some logged-in users (CentralAuth Set-Cookie storm).

I wonder if other uses of new RequestContext() (most of which are intentional) can trigger this bug.

Wed, Jul 3, 1:07 PM · TimedMediaHandler, MW-1.34-notes (1.34.0-wmf.13; 2019-07-09), Wikimedia-Incident, Performance-Team (Radar), Traffic, MediaWiki-extensions-CentralAuth, Operations
Tgr added a comment to T226840: Consistent HTTP 503 Error on some urls for some logged-in users (CentralAuth Set-Cookie storm).

@Anomie tracked this down: a TimedMediaHandler utility method that's called several times in the same request uses new RequestContext() instead of RequestContext::getMain(). RequestContext caches the WebRequest object which caches a reference to the Session object, so every call new RequestContext() created a fresh Session object. Normally that doesn't really make a difference, except when there is "partial" session data in the request, that is, a token cookie but no session cookie (this is normal on browser restart, token cookies expire in a year, session cookies expire when closing the browser), a new session will automatically be created and the session cookie output when the Session is fetched, so every new RequestContext() call results in a new set of SetCookie headers.

Wed, Jul 3, 1:05 PM · TimedMediaHandler, MW-1.34-notes (1.34.0-wmf.13; 2019-07-09), Wikimedia-Incident, Performance-Team (Radar), Traffic, MediaWiki-extensions-CentralAuth, Operations
Tgr added a comment to T93414: Regularly run mwext-{name}-testextension-* jobs to make sure they are still passing after core or dependency changes.

Maybe start as opt-in? The list of extensions which 1) have good test coverage, 2) are used in production, 3) are not tested on core patches can't be that huge...

Wed, Jul 3, 8:35 AM · Release-Engineering-Team (CI & Testing services), Release-Engineering-Team-TODO, Continuous-Integration-Infrastructure

Tue, Jul 2

Tgr added a comment to T226840: Consistent HTTP 503 Error on some urls for some logged-in users (CentralAuth Set-Cookie storm).

Annoyingly, adding an X-Wikimedia-Debug header to the request results in an 502.

Tue, Jul 2, 9:42 PM · TimedMediaHandler, MW-1.34-notes (1.34.0-wmf.13; 2019-07-09), Wikimedia-Incident, Performance-Team (Radar), Traffic, MediaWiki-extensions-CentralAuth, Operations
Tgr added a comment to T227097: Make sure that we're taking CentralAuth into consideration for staging release.

I thought we agreed on per-request TTLs?

Tue, Jul 2, 8:57 PM · MW-1.34-notes (1.34.0-wmf.13; 2019-07-09), Patch-For-Review, Core Platform Team Workboards (Team 2), User-Clarakosi, Core Platform Team (Session Management Service (CDP2)), User-Eevans
Tgr added a comment to T226840: Consistent HTTP 503 Error on some urls for some logged-in users (CentralAuth Set-Cookie storm).

The cookie is output in CentralAuthSessionProvider::persistSession which is called fron SessionBackend::save, which is called from Session::save, Session::persist and various similar things. So at least three irregular things should be happening:

  1. some session method is called repeatedly
  2. the session does get saved, despite SessionBackend::save normally being a noop unless the session is over 50% of its expiry time or is dirty (so maybe something is changing a session variable repeatedly)
  3. the session ID gets renewed, even though an existing session ID should be reused (which would mean no Set-Cookie header as setting a cookie that is already set is a noop)
Tue, Jul 2, 7:28 PM · TimedMediaHandler, MW-1.34-notes (1.34.0-wmf.13; 2019-07-09), Wikimedia-Incident, Performance-Team (Radar), Traffic, MediaWiki-extensions-CentralAuth, Operations
Tgr added a comment to T223882: Re-label huwiki damaging and badfaith edits.

Thanks @Halfak! "Edit quality re-label" is "Szerkesztési minőség újraosztályozása".

Tue, Jul 2, 6:29 PM · Scoring-platform-team (Current), editquality-modeling, Wikilabels, artificial-intelligence
Tgr added a comment to T93414: Regularly run mwext-{name}-testextension-* jobs to make sure they are still passing after core or dependency changes.

So is this something that just needs to be configured now?

Tue, Jul 2, 6:27 PM · Release-Engineering-Team (CI & Testing services), Release-Engineering-Team-TODO, Continuous-Integration-Infrastructure
Tgr added a comment to T223899: Information about finished campaigns should be accessible in Wikilabels.

Also, while the /campaigns/ endpoint does work for archived campaigns, they are not listed at https://labels.wmflabs.org/campaigns/<wiki> (or the GUI) so pretty much undiscoverable.

Tue, Jul 2, 5:20 PM · Wikilabels, Scoring-platform-team
Tgr updated the task description for T223899: Information about finished campaigns should be accessible in Wikilabels.
Tue, Jul 2, 5:18 PM · Wikilabels, Scoring-platform-team
whym awarded T22892: Add ability to detect deleted revisions and page creation a Haypence token.
Tue, Jul 2, 11:40 AM · User-notice, Patch-For-Review, AbuseFilter
Tgr added a comment to T227066: Integrate MW_API with MediaWiki REST API framework.

The immediate need is error formatting. This is how an error looks with MW_API set:

1<!DOCTYPE html><html><head><title>Internal Server Error</title></head><body><h1>Internal Server Error</h1><p>[f1a823505e3ea9d69c158506] /w/rest.php/dev.wiki.local.wmftest.net/v3/transform/wikitext/to/html LogicException from line 51 of /vagrant/srv/parsoid/extension/src/Rest/Handler/TransformHandler.php: No title or wikitext was provided.<br />
2Backtrace:<br />
3#0 /vagrant/mediawiki/includes/Rest/Router.php(293): MWParsoid\Rest\Handler\TransformHandler-&gt;execute()<br />
4#1 /vagrant/mediawiki/includes/Rest/Router.php(280): MediaWiki\Rest\Router-&gt;executeHandler(MWParsoid\Rest\Handler\TransformHandler)<br />
5#2 /vagrant/mediawiki/includes/Rest/EntryPoint.php(65): MediaWiki\Rest\Router-&gt;execute(MediaWiki\Rest\RequestFromGlobals)<br />
6#3 /vagrant/mediawiki/includes/Rest/EntryPoint.php(53): MediaWiki\Rest\EntryPoint-&gt;execute()<br />
7#4 /vagrant/mediawiki/rest.php(29): MediaWiki\Rest\EntryPoint::main()<br />
8#5 /var/www/w/rest.php(5): require(string)<br />
9#6 {main}<br />
10</p></body></html>
Without it:
1<!DOCTYPE html>
2<html class="client-nojs" lang="en" dir="ltr">
3<head>
4<meta charset="UTF-8"/>
5<title>Internal error - devwiki</title>
6<script>document.documentElement.className=document.documentElement.className.replace(/(^|\s)client-nojs(\s|$)/,"$1client-js$2");RLCONF={"wgCanonicalNamespace":"Special","wgCanonicalSpecialPageName":"Badtitle","wgNamespaceNumber":-1,"wgPageName":"Special:Badtitle/rest.php","wgTitle":"Badtitle/rest.php","wgCurRevisionId":0,"wgRevisionId":0,"wgArticleId":0,"wgIsArticle":!1,"wgIsRedirect":!1,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":[],"wgBreakFrames":!0,"wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgMonthNamesShort":["","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"wgRelevantPageName":"Special:Badtitle/rest.php","wgRelevantArticleId":0,"wgRequestId":"fba815d09c1c66fe1f0373e2","wgCSPNonce":
7!1,"wgIsProbablyEditable":!1,"wgRelevantPageIsProbablyEditable":!1,"wgMFDisplayWikibaseDescriptions":{"search":!1,"nearby":!1,"watchlist":!1,"tagline":!1}};RLSTATE={"site.styles":"ready","noscript":"ready","user.styles":"ready","user":"ready","user.options":"ready","user.tokens":"loading","mediawiki.legacy.shared":"ready","mediawiki.legacy.commonPrint":"ready","mediawiki.skinning.interface":"ready","skins.vector.styles":"ready"};RLPAGEMODULES=["site","mediawiki.page.startup","mediawiki.page.ready","mediawiki.searchSuggest","mediawiki.debug","ext.eventLogging","skins.vector.js"];</script>
8<script>(RLQ=window.RLQ||[]).push(function(){mw.loader.implement("user.tokens@0tffind",function($,jQuery,require,module){/*@nomin*/mw.user.tokens.set({"editToken":"+\\","patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"});
9});});</script>
10<link rel="stylesheet" href="/w/load.php?lang=en&amp;modules=mediawiki.legacy.commonPrint%2Cshared%7Cmediawiki.skinning.interface%7Cskins.vector.styles&amp;only=styles&amp;skin=vector"/>
11<script async="" src="/w/load.php?lang=en&amp;modules=startup&amp;only=scripts&amp;raw=1&amp;skin=vector"></script>
12<meta name="ResourceLoaderDynamicStyles" content=""/>
13<meta name="generator" content="MediaWiki 1.34.0-alpha"/>
14<meta name="robots" content="noindex,nofollow"/>
15<link rel="shortcut icon" href="/favicon.ico"/>
16<link rel="search" type="application/opensearchdescription+xml" href="/w/opensearch_desc.php" title="devwiki (en)"/>
17<link rel="EditURI" type="application/rsd+xml" href="http://dev.wiki.local.wmftest.net:11000/w/api.php?action=rsd"/>
18<link rel="alternate" type="application/atom+xml" title="devwiki Atom feed" href="/w/index.php?title=Special:RecentChanges&amp;feed=atom"/>
19<!--[if lt IE 9]><script src="/w/load.php?modules=html5shiv&amp;only=scripts&amp;raw=1&amp;sync=1"></script><![endif]-->
20</head>
21<body class="mediawiki ltr sitedir-ltr mw-hide-empty-elt ns--1 ns-special mw-special-Badtitle page-Special_Badtitle_rest_php rootpage-Special_Badtitle_rest_php skin-vector action-view">
22<div id="mw-page-base" class="noprint"></div>
23<div id="mw-head-base" class="noprint"></div>
24<div id="content" class="mw-body" role="main">
25 <a id="top"></a>
26
27 <div class="mw-indicators mw-body-content">
28</div>
29
30 <h1 id="firstHeading" class="firstHeading" lang="en">Internal error</h1>
31
32 <div id="bodyContent" class="mw-body-content">
33
34 <div id="contentSub"></div>
35
36
37
38 <div id="jump-to-nav"></div>
39 <a class="mw-jump-link" href="#mw-head">Jump to navigation</a>
40 <a class="mw-jump-link" href="#p-search">Jump to search</a>
41 <div id="mw-content-text"><div class="errorbox mw-content-ltr"><p>[fba815d09c1c66fe1f0373e2] /w/rest.php/dev.wiki.local.wmftest.net/v3/transform/wikitext/to/html LogicException from line 51 of /vagrant/srv/parsoid/extension/src/Rest/Handler/TransformHandler.php: No title or wikitext was provided.</p><p>Backtrace:</p><p>#0 /vagrant/mediawiki/includes/Rest/Router.php(293): MWParsoid\Rest\Handler\TransformHandler-&gt;execute()<br />
42#1 /vagrant/mediawiki/includes/Rest/Router.php(280): MediaWiki\Rest\Router-&gt;executeHandler(MWParsoid\Rest\Handler\TransformHandler)<br />
43#2 /vagrant/mediawiki/includes/Rest/EntryPoint.php(65): MediaWiki\Rest\Router-&gt;execute(MediaWiki\Rest\RequestFromGlobals)<br />
44#3 /vagrant/mediawiki/includes/Rest/EntryPoint.php(53): MediaWiki\Rest\EntryPoint-&gt;execute()<br />
45#4 /vagrant/mediawiki/rest.php(29): MediaWiki\Rest\EntryPoint::main()<br />
46#5 /var/www/w/rest.php(5): require(string)<br />
47#6 {main}</p></div>
48</div>
49
50 <div class="printfooter">Retrieved from "<a dir="ltr" href="http://dev.wiki.local.wmftest.net:11000/wiki/Special:Badtitle/rest.php">http://dev.wiki.local.wmftest.net:11000/wiki/Special:Badtitle/rest.php</a>"</div>
51
52 <div id="catlinks" class="catlinks catlinks-allhidden" data-mw="interface"></div>
53
54 <div class="visualClear"></div>
55
56 </div>
57</div>
58
59 <div id="mw-navigation">
60 <h2>Navigation menu</h2>
61 <div id="mw-head">
62 <div id="p-personal" role="navigation" aria-labelledby="p-personal-label">
63 <h3 id="p-personal-label">Personal tools</h3>
64 <ul>
65 <li id="pt-anonuserpage">Not logged in</li><li id="pt-anontalk"><a href="/wiki/Special:MyTalk" title="Discussion about edits from this IP address [n]" accesskey="n">Talk</a></li><li id="pt-anoncontribs"><a href="/wiki/Special:MyContributions" title="A list of edits made from this IP address [y]" accesskey="y">Contributions</a></li><li id="pt-createaccount"><a href="/w/index.php?title=Special:CreateAccount&amp;returnto=Special%3ABadtitle%2Frest.php" title="You are encouraged to create an account and log in; however, it is not mandatory">Create account</a></li><li id="pt-login"><a href="/w/index.php?title=Special:UserLogin&amp;returnto=Special%3ABadtitle%2Frest.php" title="You are encouraged to log in; however, it is not mandatory [o]" accesskey="o">Log in</a></li> </ul>
66 </div>
67 <div id="left-navigation">
68 <div id="p-namespaces" role="navigation" class="vectorTabs" aria-labelledby="p-namespaces-label">
69 <h3 id="p-namespaces-label">Namespaces</h3>
70 <ul>
71 <li id="ca-nstab-special" class="selected"><span><a href="/w/rest.php/dev.wiki.local.wmftest.net/v3/transform/wikitext/to/html" title="This is a special page, and it cannot be edited">Special page</a></span></li> </ul>
72 </div>
73 <div id="p-variants" role="navigation" class="vectorMenu emptyPortlet" aria-labelledby="p-variants-label">
74 <input type="checkbox" class="vectorMenuCheckbox" aria-labelledby="p-variants-label" />
75 <h3 id="p-variants-label">
76 <span>Variants</span>
77 </h3>
78 <ul class="menu">
79 </ul>
80 </div>
81 </div>
82 <div id="right-navigation">
83 <div id="p-views" role="navigation" class="vectorTabs emptyPortlet" aria-labelledby="p-views-label">
84 <h3 id="p-views-label">Views</h3>
85 <ul>
86 </ul>
87 </div>
88 <div id="p-cactions" role="navigation" class="vectorMenu emptyPortlet" aria-labelledby="p-cactions-label">
89 <input type="checkbox" class="vectorMenuCheckbox" aria-labelledby="p-cactions-label" />
90 <h3 id="p-cactions-label"><span>More</span></h3>
91 <ul class="menu">
92 </ul>
93 </div>
94 <div id="p-search" role="search">
95 <h3>
96 <label for="searchInput">Search</label>
97 </h3>
98 <form action="/w/index.php" id="searchform">
99 <div id="simpleSearch">
100 <input type="search" name="search" placeholder="Search devwiki" title="Search devwiki [f]" accesskey="f" id="searchInput"/><input type="hidden" value="Special:Search" name="title"/><input type="submit" name="fulltext" value="Search" title="Search the pages for this text" id="mw-searchButton" class="searchButton mw-fallbackSearchButton"/><input type="submit" name="go" value="Go" title="Go to a page with this exact name if it exists" id="searchButton" class="searchButton"/> </div>
101 </form>
102 </div>
103 </div>
104 </div>
105 <div id="mw-panel">
106 <div id="p-logo" role="banner"><a class="mw-wiki-logo" href="/wiki/Main_Page" title="Visit the main page"></a></div>
107 <div class="portal" role="navigation" id="p-navigation" aria-labelledby="p-navigation-label">
108 <h3 id="p-navigation-label">Navigation</h3>
109 <div class="body">
110 <ul>
111 <li id="n-mainpage-description"><a href="/wiki/Main_Page" title="Visit the main page [z]" accesskey="z">Main page</a></li><li id="n-recentchanges"><a href="/wiki/Special:RecentChanges" title="A list of recent changes in the wiki [r]" accesskey="r">Recent changes</a></li><li id="n-randompage"><a href="/wiki/Special:Random" title="Load a random page [x]" accesskey="x">Random page</a></li><li id="n-help-mediawiki"><a href="https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents">Help about MediaWiki</a></li> </ul>
112 </div>
113 </div>
114 <div class="portal" role="navigation" id="p-tb" aria-labelledby="p-tb-label">
115 <h3 id="p-tb-label">Tools</h3>
116 <div class="body">
117 <ul>
118 <li id="t-specialpages"><a href="/wiki/Special:SpecialPages" title="A list of all special pages [q]" accesskey="q">Special pages</a></li><li id="t-print"><a href="/w/index.php?title=Special:Badtitle/rest.php&amp;printable=yes" rel="alternate" title="Printable version of this page [p]" accesskey="p">Printable version</a></li> </ul>
119 </div>
120 </div>
121 </div>
122 </div>
123 <div id="footer" role="contentinfo">
124 <ul id="footer-places">
125 <li id="footer-places-privacy"><a href="/wiki/Wiki:Privacy_policy" title="Wiki:Privacy policy">Privacy policy</a></li>
126 <li id="footer-places-about"><a href="/wiki/Wiki:About" title="Wiki:About">About devwiki</a></li>
127 <li id="footer-places-disclaimer"><a href="/wiki/Wiki:General_disclaimer" title="Wiki:General disclaimer">Disclaimers</a></li>
128 <li id="footer-places-mobileview"><a href="http://dev.wiki.local.wmftest.net:11000/w/index.php?title=Special:Badtitle/rest.php&amp;mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile view</a></li>
129 </ul>
130 <ul id="footer-icons" class="noprint">
131 <li id="footer-poweredbyico">
132 <a href="https://www.mediawiki.org/"><img src="/w/resources/assets/poweredby_mediawiki_88x31.png" alt="Powered by MediaWiki" srcset="/w/resources/assets/poweredby_mediawiki_132x47.png 1.5x, /w/resources/assets/poweredby_mediawiki_176x62.png 2x" width="88" height="31"/></a> </li>
133 </ul>
134 <div style="clear: both;"></div>
135 </div>
136
137<script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"debugInfo":{"mwVersion":"1.34.0-alpha","phpEngine":"PHP","phpVersion":"7.2.16-1+0~20190307202415.17+stretch~1.gbpa7be82+wmf1","gitRevision":"8816dfbf1890d3da9f950e0d09ef87ca6c27c271","gitBranch":"review/gerg_tisza/520066","gitViewUrl":"https://gerrit.wikimedia.org/g/mediawiki/core.git/+/8816dfbf1890d3da9f950e0d09ef87ca6c27c271","time":0.31394004821777344,"log":[{"msg":"MWDebug output complete","type":"log","caller":"MWDebug::getDebugHTML"}],"debugLog":[],"queries":[],"request":{"method":"POST","url":"/w/rest.php/dev.wiki.local.wmftest.net/v3/transform/wikitext/to/html","headers":{"HOST":"dev.wiki.local.wmftest.net:11000","USER-AGENT":"curl/7.58.0","ACCEPT":"*/*","COOKIE":"XDEBUG_SESSION=XDEBUG_ECLIPSE","CONTENT-LENGTH":"54","CONTENT-TYPE":"application/x-www-form-urlencoded"},"params":{"{\"wikitexts\":\"foo_''bar''_'''baz'''\",\"body_only\":true}":"","title":"dev.wiki.local.wmftest.net/v3/transform/wikitext/to/html"}},"memory":"6.34 MB","memoryPeak":"6.76 MB","includes":[{"name":"/var/www/w/rest.php","size":"193 bytes"},{"name":"/var/www/w/dblist.php","size":"368 bytes"},{"name":"/vagrant/settings.d/wikis/dbConf/10-mobilewiki-dbConf.php","size":"243 bytes"},{"name":"/vagrant/settings.d/wikis/dbConf/10-wiki-dbConf.php","size":"226 bytes"},{"name":"/var/www/w/MWMultiVersion.php","size":"8 KB"},{"name":"/var/www/w/defines.php","size":"392 bytes"},{"name":"/vagrant/mediawiki/rest.php","size":"955 bytes"},{"name":"/vagrant/mediawiki/includes/WebStart.php","size":"4 KB"},{"name":"/vagrant/mediawiki/includes/Setup.php","size":"32 KB"},{"name":"/vagrant/mediawiki/includes/AutoLoader.php","size":"5 KB"},{"name":"/vagrant/mediawiki/autoload.php","size":"130 KB"},{"name":"/vagrant/mediawiki/includes/Defines.php","size":"11 KB"},{"name":"/vagrant/mediawiki/includes/libs/mime/defines.php","size":"2 KB"},{"name":"/vagrant/mediawiki/includes/libs/rdbms/defines.php","size":"770 bytes"},{"name":"/vagrant/mediawiki/includes/libs/rdbms/database/IDatabase.php","size":"81 KB"},{"name":"/vagrant/mediawiki/includes/libs/rdbms/loadbalancer/ILoadBalancer.php","size":"26 KB"},{"name":"/vagrant/mediawiki/includes/DefaultSettings.php","size":"291 KB"},{"name":"/vagrant/mediawiki/includes/SiteConfiguration.php","size":"18 KB"},{"name":"/vagrant/mediawiki/includes/WebRequest.php","size":"38 KB"},{"name":"/vagrant/mediawiki/includes/libs/IP.php","size":"22 KB"},{"name":"/vagrant/mediawiki/includes/GlobalFunctions.php","size":"90 KB"},{"name":"/vagrant/mediawiki/vendor/autoload.php","size":"178 bytes"},{"name":"/vagrant/mediawiki/vendor/composer/autoload_real.php","size":"3 KB"},{"name":"/vagrant/mediawiki/vendor/composer/ClassLoader.php","size":"13 KB"},{"name":"/vagrant/mediawiki/vendor/composer/include_paths.php","size":"412 bytes"},{"name":"/vagrant/mediawiki/vendor/composer/autoload_static.php","size":"258 KB"},{"name":"/vagrant/mediawiki/vendor/symfony/polyfill-php73/bootstrap.php","size":"981 bytes"},{"name":"/vagrant/mediawiki/vendor/symfony/polyfill-php73/Php73.php","size":"642 bytes"},{"name":"/vagrant/mediawiki/vendor/symfony/polyfill-php72/bootstrap.php","size":"1 KB"},{"name":"/vagrant/mediawiki/vendor/wikimedia/at-ease/src/Wikimedia/Functions.php","size":"2 KB"},{"name":"/vagrant/mediawiki/vendor/ralouphie/getallheaders/src/getallheaders.php","size":"2 KB"},{"name":"/vagrant/mediawiki/vendor/symfony/var-dumper/Resources/functions/dump.php","size":"806 bytes"},{"name":"/vagrant/mediawiki/vendor/guzzlehttp/promises/src/functions_include.php","size":"167 bytes"},{"name":"/vagrant/mediawiki/vendor/guzzlehttp/promises/src/functions.php","size":"12 KB"},{"name":"/vagrant/mediawiki/vendor/guzzlehttp/psr7/src/functions_include.php","size":"156 bytes"},{"name":"/vagrant/mediawiki/vendor/guzzlehttp/psr7/src/functions.php","size":"26 KB"},{"name":"/vagrant/mediawiki/vendor/myclabs/deep-copy/src/DeepCopy/deep_copy.php","size":"396 bytes"},{"name":"/vagrant/mediawiki/vendor/wikimedia/timestamp/src/defines.php","size":"2 KB"},{"name":"/vagrant/mediawiki/vendor/giorgiosironi/eris/src/Generator/functions.php","size":"346 bytes"},{"name":"/vagrant/mediawiki/vendor/guzzlehttp/guzzle/src/functions_include.php","size":"160 bytes"},{"name":"/vagrant/mediawiki/vendor/guzzlehttp/guzzle/src/functions.php","size":"10 KB"},{"name":"/vagrant/mediawiki/vendor/psy/psysh/src/functions.php","size":"12 KB"},{"name":"/vagrant/mediawiki/vendor/wikimedia/base-convert/src/Functions.php","size":"4 KB"},{"name":"/vagrant/mediawiki/vendor/wikimedia/relpath/src/RelPath/RelPath.php","size":"2 KB"},{"name":"/vagrant/mediawiki/vendor/wikimedia/relpath/src/Wikimedia/RelPath.php","size":"4 KB"},{"name":"/vagrant/mediawiki/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest.php","size":"21 KB"},{"name":"/vagrant/mediawiki/vendor/wmde/hamcrest-html-matchers/src/functions.php","size":"2 KB"},{"name":"/vagrant/mediawiki/vendor/psr/log/Psr/Log/LoggerInterface.php","size":"3 KB"},{"name":"/vagrant/mediawiki/includes/HeaderCallback.php","size":"2 KB"},{"name":"/vagrant/mediawiki/LocalSettings.php","size":"4 KB"},{"name":"/vagrant/mediawiki/includes/registration/ExtensionRegistry.php","size":"13 KB"},{"name":"/vagrant/LocalSettings.php","size":"4 KB"},{"name":"/vagrant/settings.d/wikis/CommonSettings.php","size":"3 KB"},{"name":"/vagrant/settings.d/wikis/LoadWgConf.php","size":"2 KB"},{"name":"/vagrant/settings.d/wikis/mobilewiki/wgConf.php","size":"887 bytes"},{"name":"/vagrant/settings.d/wikis/wiki/wgConf.php","size":"806 bytes"},{"name":"/vagrant/settings.d/puppet-managed/01-psr3.php","size":"3 KB"},{"name":"/vagrant/settings.d/puppet-managed/04-parsoid-vrs.php","size":"472 bytes"},{"name":"/vagrant/settings.d/puppet-managed/05-EventBus.php","size":"2 KB"},{"name":"/vagrant/settings.d/puppet-managed/05-EventLogging.php","size":"863 bytes"},{"name":"/vagrant/settings.d/puppet-managed/10-MinervaNeue.php","size":"277 bytes"},{"name":"/vagrant/settings.d/puppet-managed/10-MobileFrontend.php","size":"913 bytes"},{"name":"/vagrant/settings.d/puppet-managed/10-Monolog.php","size":"1 KB"},{"name":"/vagrant/settings.d/puppet-managed/10-PageImages.php","size":"773 bytes"},{"name":"/vagrant/settings.d/puppet-managed/10-SyntaxHighlight_GeSHi.php","size":"883 bytes"},{"name":"/vagrant/settings.d/puppet-managed/10-TextExtracts.php","size":"793 bytes"},{"name":"/vagrant/settings.d/puppet-managed/10-Vector.php","size":"252 bytes"},{"name":"/vagrant/settings.d/10-Debugging.php","size":"306 bytes"},{"name":"/vagrant/settings.d/10-LocalSettings.php","size":"243 bytes"},{"name":"/vagrant/settings.d/10-Parsoid.php","size":"141 bytes"},{"name":"/vagrant/settings.d/wikis/wiki/settings.d/puppet-managed/00-RESTBase-VRS.php","size":"473 bytes"},{"name":"/vagrant/settings.d/wikis/wiki/settings.d/puppet-managed/05-RESTBase-VisualEditor.php","size":"229 bytes"},{"name":"/vagrant/settings.d/wikis/wiki/settings.d/puppet-managed/10-devwiki_suppress_group.php","size":"437 bytes"},{"name":"/vagrant/mediawiki/includes/debug/logger/LoggerFactory.php","size":"3 KB"},{"name":"/vagrant/mediawiki/vendor/wikimedia/object-factory/src/ObjectFactory.php","size":"9 KB"},{"name":"/vagrant/mediawiki/includes/debug/logger/MonologSpi.php","size":"8 KB"},{"name":"/vagrant/mediawiki/includes/debug/logger/Spi.php","size":"1 KB"},{"name":"/vagrant/mediawiki/includes/profiler/Profiler.php","size":"8 KB"},{"name":"/vagrant/mediawiki/includes/profiler/ProfilerStub.php","size":"1 KB"},{"name":"/vagrant/mediawiki/includes/libs/rdbms/TransactionProfiler.php","size":"11 KB"},{"name":"/vagrant/mediawiki/vendor/psr/log/Psr/Log/LoggerAwareInterface.php","size":"297 bytes"},{"name":"/vagrant/mediawiki/vendor/psr/log/Psr/Log/NullLogger.php","size":"651 bytes"},{"name":"/vagrant/mediawiki/vendor/psr/log/Psr/Log/AbstractLogger.php","size":"3 KB"},{"name":"/vagrant/mediawiki/includes/shell/Shell.php","size":"7 KB"},{"name":"/vagrant/mediawiki/includes/objectcache/ObjectCache.php","size":"14 KB"},{"name":"/vagrant/mediawiki/vendor/monolog/monolog/src/Monolog/Logger.php","size":"22 KB"},{"name":"/vagrant/mediawiki/vendor/monolog/monolog/src/Monolog/ResettableInterface.php","size":"943 bytes"},{"name":"/vagrant/mediawiki/includes/debug/logger/monolog/WikiProcessor.php","size":"2 KB"},{"name":"/vagrant/mediawiki/vendor/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php","size":"1 KB"},{"name":"/vagrant/mediawiki/vendor/monolog/monolog/src/Monolog/Processor/ProcessorInterface.php","size":"521 bytes"},{"name":"/vagrant/mediawiki/vendor/monolog/monolog/src/Monolog/Processor/ProcessIdProcessor.php","size":"604 bytes"},{"name":"/vagrant/mediawiki/vendor/monolog/monolog/src/Monolog/Processor/UidProcessor.php","size":"1 KB"},{"name":"/vagrant/mediawiki/vendor/monolog/monolog/src/Monolog/Processor/WebProcessor.php","size":"3 KB"},{"name":"/vagrant/mediawiki/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php","size":"5 KB"},{"name":"/vagrant/mediawiki/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php","size":"1 KB"},{"name":"/vagrant/mediawiki/vendor/monolog/monolog/src/Monolog/Handler/AbstractHandler.php","size":"4 KB"},{"name":"/vagrant/mediawiki/vendor/monolog/monolog/src/Monolog/Handler/HandlerInterface.php","size":"3 KB"},{"name":"/vagrant/mediawiki/includes/debug/logger/monolog/LineFormatter.php","size":"5 KB"},{"name":"/vagrant/mediawiki/vendor/monolog/monolog/src/Monolog/Formatter/LineFormatter.php","size":"5 KB"},{"name":"/vagrant/mediawiki/vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php","size":"10 KB"},{"name":"/vagrant/mediawiki/vendor/monolog/monolog/src/Monolog/Formatter/FormatterInterface.php","size":"787 bytes"},{"name":"/vagrant/mediawiki/includes/debug/logger/monolog/SyslogHandler.php","size":"3 KB"},{"name":"/vagrant/mediawiki/vendor/monolog/monolog/src/Monolog/Handler/SyslogUdpHandler.php","size":"3 KB"},{"name":"/vagrant/mediawiki/vendor/monolog/monolog/src/Monolog/Handler/AbstractSyslogHandler.php","size":"3 KB"},{"name":"/vagrant/mediawiki/vendor/monolog/monolog/src/Monolog/Handler/SyslogUdp/UdpSocket.php","size":"1 KB"},{"name":"/vagrant/mediawiki/includes/debug/logger/monolog/LogstashFormatter.php","size":"3 KB"},{"name":"/vagrant/mediawiki/vendor/monolog/monolog/src/Monolog/Formatter/LogstashFormatter.php","size":"5 KB"},{"name":"/vagrant/mediawiki/vendor/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php","size":"2 KB"},{"name":"/vagrant/mediawiki/vendor/monolog/monolog/src/Monolog/Handler/GroupHandler.php","size":"3 KB"},{"name":"/vagrant/mediawiki/includes/WikiMap.php","size":"10 KB"},{"name":"/vagrant/mediawiki/includes/libs/rdbms/database/domain/DatabaseDomain.php","size":"7 KB"},{"name":"/vagrant/mediawiki/includes/libs/objectcache/APCUBagOStuff.php","size":"3 KB"},{"name":"/vagrant/mediawiki/includes/libs/objectcache/BagOStuff.php","size":"32 KB"},{"name":"/vagrant/mediawiki/includes/libs/objectcache/IExpiringStore.php","size":"3 KB"},{"name":"/vagrant/mediawiki/includes/libs/objectcache/serialized/SerializedValueContainer.php","size":"1 KB"},{"name":"/vagrant/mediawiki/extensions/EventBus/vendor/autoload.php","size":"178 bytes"},{"name":"/vagrant/mediawiki/extensions/EventBus/vendor/composer/autoload_real.php","size":"2 KB"},{"name":"/vagrant/mediawiki/extensions/EventBus/vendor/composer/autoload_static.php","size":"31 KB"},{"name":"/vagrant/mediawiki/extensions/EventBus/vendor/symfony/polyfill-mbstring/bootstrap.php","size":"5 KB"},{"name":"/vagrant/srv/parsoid/vendor/autoload.php","size":"178 bytes"},{"name":"/vagrant/srv/parsoid/vendor/composer/autoload_real.php","size":"2 KB"},{"name":"/vagrant/srv/parsoid/vendor/composer/autoload_static.php","size":"275 KB"},{"name":"/vagrant/srv/parsoid/vendor/symfony/polyfill-ctype/bootstrap.php","size":"1 KB"},{"name":"/vagrant/srv/parsoid/vendor/sabre/event/lib/coroutine.php","size":"4 KB"},{"name":"/vagrant/srv/parsoid/vendor/sabre/event/lib/Loop/functions.php","size":"3 KB"},{"name":"/vagrant/srv/parsoid/vendor/sabre/event/lib/Promise/functions.php","size":"3 KB"},{"name":"/vagrant/mediawiki/includes/upload/UploadBase.php","size":"66 KB"},{"name":"/vagrant/mediawiki/includes/language/LanguageCode.php","size":"7 KB"},{"name":"/vagrant/mediawiki/vendor/wikimedia/at-ease/src/Wikimedia/AtEase/AtEase.php","size":"2 KB"},{"name":"/vagrant/mediawiki/includes/debug/MWDebug.php","size":"15 KB"},{"name":"/vagrant/mediawiki/includes/MediaWikiServices.php","size":"26 KB"},{"name":"/vagrant/mediawiki/includes/libs/services/ServiceContainer.php","size":"15 KB"},{"name":"/vagrant/mediawiki/vendor/psr/container/src/ContainerInterface.php","size":"1 KB"},{"name":"/vagrant/mediawiki/includes/libs/services/DestructibleService.php","size":"2 KB"},{"name":"/vagrant/mediawiki/includes/config/GlobalVarConfig.php","size":"2 KB"},{"name":"/vagrant/mediawiki/includes/config/Config.php","size":"1 KB"},{"name":"/vagrant/mediawiki/includes/exception/MWExceptionHandler.php","size":"23 KB"},{"name":"/vagrant/mediawiki/includes/libs/filebackend/fsfile/TempFSFile.php","size":"5 KB"},{"name":"/vagrant/mediawiki/includes/libs/filebackend/fsfile/FSFile.php","size":"6 KB"},{"name":"/vagrant/mediawiki/includes/context/RequestContext.php","size":"17 KB"},{"name":"/vagrant/mediawiki/includes/context/IContextSource.php","size":"4 KB"},{"name":"/vagrant/mediawiki/includes/language/MessageLocalizer.php","size":"1 KB"},{"name":"/vagrant/mediawiki/includes/context/MutableContext.php","size":"2 KB"},{"name":"/vagrant/mediawiki/includes/libs/rdbms/lbfactory/LBFactory.php","size":"24 KB"},{"name":"/vagrant/mediawiki/includes/libs/rdbms/lbfactory/ILBFactory.php","size":"14 KB"},{"name":"/vagrant/mediawiki/includes/libs/rdbms/ChronologyProtector.php","size":"13 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/assert/src/Assert.php","size":"7 KB"},{"name":"/vagrant/mediawiki/skins/MinervaNeue/includes/ServiceWiring.php","size":"3 KB"},{"name":"/vagrant/mediawiki/extensions/MobileFrontend/includes/ServiceWiring.php","size":"3 KB"},{"name":"/vagrant/srv/parsoid/extension/ServiceWiring.php","size":"1 KB"},{"name":"/vagrant/mediawiki/includes/ServiceWiring.php","size":"26 KB"},{"name":"/vagrant/mediawiki/includes/Hooks.php","size":"8 KB"},{"name":"/vagrant/mediawiki/includes/config/ConfigFactory.php","size":"5 KB"},{"name":"/vagrant/mediawiki/includes/libs/services/SalvageableService.php","size":"2 KB"},{"name":"/vagrant/mediawiki/includes/db/MWLBFactory.php","size":"13 KB"},{"name":"/vagrant/mediawiki/includes/config/ServiceOptions.php","size":"3 KB"},{"name":"/vagrant/mediawiki/includes/ConfiguredReadOnlyMode.php","size":"2 KB"},{"name":"/vagrant/mediawiki/includes/libs/objectcache/RedisBagOStuff.php","size":"13 KB"},{"name":"/vagrant/mediawiki/includes/deferred/DeferredUpdates.php","size":"15 KB"},{"name":"/vagrant/mediawiki/includes/libs/redis/RedisConnectionPool.php","size":"12 KB"},{"name":"/vagrant/mediawiki/includes/libs/stats/BufferingStatsdDataFactory.php","size":"3 KB"},{"name":"/vagrant/srv/parsoid/vendor/liuggio/statsd-php-client/src/Liuggio/StatsdClient/Factory/StatsdDataFactory.php","size":"3 KB"},{"name":"/vagrant/srv/parsoid/vendor/liuggio/statsd-php-client/src/Liuggio/StatsdClient/Factory/StatsdDataFactoryInterface.php","size":"3 KB"},{"name":"/vagrant/mediawiki/includes/libs/stats/IBufferingStatsdDataFactory.php","size":"933 bytes"},{"name":"/vagrant/mediawiki/includes/libs/objectcache/WANObjectCache.php","size":"100 KB"},{"name":"/vagrant/mediawiki/includes/libs/rdbms/lbfactory/LBFactorySimple.php","size":"4 KB"},{"name":"/vagrant/mediawiki/languages/Language.php","size":"156 KB"},{"name":"/vagrant/mediawiki/includes/title/MediaWikiTitleCodec.php","size":"16 KB"},{"name":"/vagrant/mediawiki/includes/title/TitleFormatter.php","size":"3 KB"},{"name":"/vagrant/mediawiki/includes/title/TitleParser.php","size":"2 KB"},{"name":"/vagrant/mediawiki/includes/Title.php","size":"136 KB"},{"name":"/vagrant/mediawiki/includes/linker/LinkTarget.php","size":"3 KB"},{"name":"/vagrant/mediawiki/includes/dao/IDBAccessObject.php","size":"3 KB"},{"name":"/vagrant/mediawiki/languages/classes/LanguageEn.php","size":"2 KB"},{"name":"/vagrant/mediawiki/languages/LanguageConverter.php","size":"34 KB"},{"name":"/vagrant/mediawiki/languages/FakeConverter.php","size":"3 KB"},{"name":"/vagrant/mediawiki/includes/cache/localisation/LocalisationCache.php","size":"32 KB"},{"name":"/vagrant/mediawiki/includes/cache/localisation/LCStoreCDB.php","size":"4 KB"},{"name":"/vagrant/mediawiki/includes/cache/localisation/LCStore.php","size":"2 KB"},{"name":"/vagrant/mediawiki/includes/PathRouter.php","size":"13 KB"},{"name":"/vagrant/mediawiki/includes/session/PHPSessionHandler.php","size":"10 KB"},{"name":"/vagrant/mediawiki/includes/session/SessionManager.php","size":"28 KB"},{"name":"/vagrant/mediawiki/includes/session/SessionManagerInterface.php","size":"4 KB"},{"name":"/vagrant/mediawiki/includes/libs/objectcache/CachedBagOStuff.php","size":"4 KB"},{"name":"/vagrant/mediawiki/includes/libs/objectcache/HashBagOStuff.php","size":"4 KB"},{"name":"/vagrant/mediawiki/vendor/wikimedia/php-session-serializer/src/Wikimedia/PhpSessionSerializer.php","size":"11 KB"},{"name":"/vagrant/mediawiki/includes/session/CookieSessionProvider.php","size":"13 KB"},{"name":"/vagrant/mediawiki/includes/session/SessionProvider.php","size":"20 KB"},{"name":"/vagrant/mediawiki/includes/session/SessionProviderInterface.php","size":"1 KB"},{"name":"/vagrant/mediawiki/includes/session/SessionInfo.php","size":"8 KB"},{"name":"/vagrant/mediawiki/includes/session/BotPasswordSessionProvider.php","size":"5 KB"},{"name":"/vagrant/mediawiki/includes/session/ImmutableSessionProviderWithCookie.php","size":"5 KB"},{"name":"/vagrant/mediawiki/includes/utils/MWCryptRand.php","size":"2 KB"},{"name":"/vagrant/mediawiki/includes/libs/redis/RedisConnRef.php","size":"8 KB"},{"name":"/vagrant/mediawiki/includes/session/SessionId.php","size":"2 KB"},{"name":"/vagrant/mediawiki/includes/session/SessionBackend.php","size":"20 KB"},{"name":"/vagrant/mediawiki/includes/user/User.php","size":"159 KB"},{"name":"/vagrant/mediawiki/includes/user/UserIdentity.php","size":"2 KB"},{"name":"/vagrant/mediawiki/vendor/monolog/monolog/src/Monolog/Utils.php","size":"529 bytes"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/scoped-callback/src/ScopedCallback.php","size":"3 KB"},{"name":"/vagrant/mediawiki/includes/session/Session.php","size":"19 KB"},{"name":"/vagrant/mediawiki/includes/MWTimestamp.php","size":"6 KB"},{"name":"/vagrant/mediawiki/vendor/wikimedia/timestamp/src/ConvertibleTimestamp.php","size":"12 KB"},{"name":"/vagrant/mediawiki/includes/WebResponse.php","size":"8 KB"},{"name":"/vagrant/mediawiki/includes/StubUserLang.php","size":"2 KB"},{"name":"/vagrant/mediawiki/includes/StubObject.php","size":"5 KB"},{"name":"/vagrant/mediawiki/includes/OutputPage.php","size":"122 KB"},{"name":"/vagrant/mediawiki/includes/context/ContextSource.php","size":"4 KB"},{"name":"/vagrant/mediawiki/includes/resourceloader/ResourceLoaderModule.php","size":"31 KB"},{"name":"/vagrant/mediawiki/extensions/EventLogging/includes/EventLoggingHooks.php","size":"3 KB"},{"name":"/vagrant/mediawiki/includes/Pingback.php","size":"8 KB"},{"name":"/vagrant/mediawiki/includes/deferred/MWCallableUpdate.php","size":"2 KB"},{"name":"/vagrant/mediawiki/includes/deferred/DeferrableUpdate.php","size":"258 bytes"},{"name":"/vagrant/mediawiki/includes/deferred/DeferrableCallback.php","size":"193 bytes"},{"name":"/vagrant/mediawiki/includes/deferred/TransactionRoundAwareUpdate.php","size":"542 bytes"},{"name":"/vagrant/mediawiki/includes/Rest/EntryPoint.php","size":"2 KB"},{"name":"/vagrant/mediawiki/includes/libs/IEUrlExtension.php","size":"9 KB"},{"name":"/vagrant/mediawiki/includes/Rest/RequestFromGlobals.php","size":"2 KB"},{"name":"/vagrant/mediawiki/includes/Rest/RequestBase.php","size":"2 KB"},{"name":"/vagrant/mediawiki/includes/Rest/RequestInterface.php","size":"8 KB"},{"name":"/vagrant/mediawiki/includes/Rest/Router.php","size":"8 KB"},{"name":"/vagrant/mediawiki/includes/Rest/ResponseFactory.php","size":"8 KB"},{"name":"/vagrant/mediawiki/vendor/guzzlehttp/psr7/src/Uri.php","size":"21 KB"},{"name":"/vagrant/mediawiki/vendor/psr/http-message/src/UriInterface.php","size":"12 KB"},{"name":"/vagrant/mediawiki/includes/Rest/PathTemplateMatcher/PathMatcher.php","size":"6 KB"},{"name":"/vagrant/srv/parsoid/extension/src/Rest/Handler/TransformHandler.php","size":"2 KB"},{"name":"/vagrant/srv/parsoid/extension/src/Rest/Handler/ParsoidHandler.php","size":"25 KB"},{"name":"/vagrant/mediawiki/includes/Rest/Handler.php","size":"3 KB"},{"name":"/vagrant/srv/parsoid/extension/src/ParsoidServices.php","size":"812 bytes"},{"name":"/vagrant/srv/parsoid/extension/src/Config/SiteConfig.php","size":"19 KB"},{"name":"/vagrant/srv/parsoid/src/Config/SiteConfig.php","size":"23 KB"},{"name":"/vagrant/srv/parsoid/extension/src/Config/PageConfigFactory.php","size":"2 KB"},{"name":"/vagrant/mediawiki/includes/Revision/RevisionStoreFactory.php","size":"5 KB"},{"name":"/vagrant/mediawiki/includes/Storage/BlobStoreFactory.php","size":"3 KB"},{"name":"/vagrant/mediawiki/includes/externalstore/ExternalStoreAccess.php","size":"5 KB"},{"name":"/vagrant/mediawiki/includes/externalstore/ExternalStoreFactory.php","size":"6 KB"},{"name":"/vagrant/mediawiki/includes/libs/rdbms/loadbalancer/LoadBalancer.php","size":"72 KB"},{"name":"/vagrant/mediawiki/includes/Storage/NameTableStoreFactory.php","size":"4 KB"},{"name":"/vagrant/mediawiki/includes/Revision/SlotRoleRegistry.php","size":"7 KB"},{"name":"/vagrant/mediawiki/includes/Storage/NameTableStore.php","size":"12 KB"},{"name":"/vagrant/mediawiki/includes/CommentStore.php","size":"23 KB"},{"name":"/vagrant/mediawiki/includes/ActorMigration.php","size":"12 KB"},{"name":"/vagrant/mediawiki/includes/Revision/RevisionStore.php","size":"89 KB"},{"name":"/vagrant/mediawiki/includes/Revision/RevisionFactory.php","size":"3 KB"},{"name":"/vagrant/mediawiki/includes/Revision/RevisionLookup.php","size":"4 KB"},{"name":"/vagrant/mediawiki/includes/Storage/SqlBlobStore.php","size":"19 KB"},{"name":"/vagrant/mediawiki/includes/Storage/BlobStore.php","size":"4 KB"},{"name":"/vagrant/mediawiki/includes/parser/Parser.php","size":"203 KB"},{"name":"/vagrant/mediawiki/includes/parser/ParserFactory.php","size":"4 KB"},{"name":"/vagrant/mediawiki/includes/MagicWordFactory.php","size":"6 KB"},{"name":"/vagrant/mediawiki/includes/specialpage/SpecialPageFactory.php","size":"23 KB"},{"name":"/vagrant/mediawiki/includes/linker/LinkRendererFactory.php","size":"2 KB"},{"name":"/vagrant/mediawiki/includes/cache/GenderCache.php","size":"5 KB"},{"name":"/vagrant/mediawiki/includes/title/NamespaceInfo.php","size":"17 KB"},{"name":"/vagrant/mediawiki/includes/interwiki/ClassicInterwikiLookup.php","size":"11 KB"},{"name":"/vagrant/mediawiki/includes/interwiki/InterwikiLookup.php","size":"2 KB"},{"name":"/vagrant/mediawiki/includes/libs/MapCacheLRU.php","size":"11 KB"},{"name":"/vagrant/mediawiki/includes/cache/LinkCache.php","size":"9 KB"},{"name":"/vagrant/mediawiki/includes/parser/ParserOptions.php","size":"39 KB"},{"name":"/vagrant/mediawiki/includes/skins/Skin.php","size":"46 KB"},{"name":"/vagrant/mediawiki/includes/skins/SkinFactory.php","size":"3 KB"},{"name":"/vagrant/mediawiki/extensions/MobileFrontend/includes/MobileFrontendHooks.php","size":"44 KB"},{"name":"/vagrant/mediawiki/extensions/MobileFrontend/includes/amc/Hooks.php","size":"2 KB"},{"name":"/vagrant/mediawiki/extensions/MobileFrontend/includes/amc/UserMode.php","size":"2 KB"},{"name":"/vagrant/mediawiki/extensions/MobileFrontend/includes/features/IUserMode.php","size":"518 bytes"},{"name":"/vagrant/srv/parsoid/extension/src/Config/DataAccess.php","size":"8 KB"},{"name":"/vagrant/srv/parsoid/src/Config/DataAccess.php","size":"5 KB"},{"name":"/vagrant/mediawiki/vendor/guzzlehttp/psr7/src/LazyOpenStream.php","size":"880 bytes"},{"name":"/vagrant/mediawiki/vendor/guzzlehttp/psr7/src/StreamDecoratorTrait.php","size":"3 KB"},{"name":"/vagrant/mediawiki/vendor/psr/http-message/src/StreamInterface.php","size":"5 KB"},{"name":"/vagrant/mediawiki/vendor/guzzlehttp/psr7/src/Stream.php","size":"7 KB"},{"name":"/vagrant/srv/parsoid/extension/src/Rest/FormatHelper.php","size":"6 KB"},{"name":"/vagrant/mediawiki/includes/Rest/HeaderContainer.php","size":"6 KB"},{"name":"/vagrant/mediawiki/includes/json/FormatJson.php","size":"11 KB"},{"name":"/vagrant/mediawiki/vendor/monolog/monolog/src/Monolog/Handler/NullHandler.php","size":"953 bytes"},{"name":"/vagrant/mediawiki/includes/exception/MWExceptionRenderer.php","size":"10 KB"},{"name":"/vagrant/mediawiki/includes/libs/HttpStatus.php","size":"3 KB"},{"name":"/vagrant/mediawiki/includes/language/Message.php","size":"38 KB"},{"name":"/vagrant/mediawiki/includes/libs/MessageSpecifier.php","size":"1 KB"},{"name":"/vagrant/mediawiki/includes/cache/MessageCache.php","size":"45 KB"},{"name":"/vagrant/mediawiki/includes/libs/objectcache/EmptyBagOStuff.php","size":"2 KB"},{"name":"/vagrant/mediawiki/vendor/wikimedia/cdb/src/Reader.php","size":"2 KB"},{"name":"/vagrant/mediawiki/vendor/wikimedia/cdb/src/Reader/PHP.php","size":"8 KB"},{"name":"/vagrant/mediawiki/vendor/wikimedia/cdb/src/Util.php","size":"2 KB"},{"name":"/vagrant/mediawiki/includes/cache/dependency/FileDependency.php","size":"2 KB"},{"name":"/vagrant/mediawiki/includes/cache/dependency/CacheDependency.php","size":"1 KB"},{"name":"/vagrant/mediawiki/includes/cache/dependency/GlobalDependency.php","size":"1 KB"},{"name":"/vagrant/mediawiki/includes/cache/dependency/MainConfigDependency.php","size":"1 KB"},{"name":"/vagrant/mediawiki/includes/cache/dependency/ConstantDependency.php","size":"1 KB"},{"name":"/vagrant/mediawiki/includes/parser/Sanitizer.php","size":"65 KB"},{"name":"/vagrant/mediawiki/includes/parser/MWTidy.php","size":"3 KB"},{"name":"/vagrant/mediawiki/includes/tidy/RemexDriver.php","size":"2 KB"},{"name":"/vagrant/mediawiki/includes/tidy/TidyDriverBase.php","size":"508 bytes"},{"name":"/vagrant/mediawiki/includes/parser/RemexStripTagHandler.php","size":"3 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/Tokenizer/TokenHandler.php","size":"4 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/Tokenizer/Tokenizer.php","size":"52 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/PropGuard.php","size":"476 bytes"},{"name":"/vagrant/mediawiki/includes/parser/CoreParserFunctions.php","size":"42 KB"},{"name":"/vagrant/mediawiki/includes/MagicWord.php","size":"12 KB"},{"name":"/vagrant/mediawiki/includes/parser/CoreTagHooks.php","size":"6 KB"},{"name":"/vagrant/mediawiki/includes/MagicWordArray.php","size":"8 KB"},{"name":"/vagrant/mediawiki/extensions/SyntaxHighlight_GeSHi/includes/SyntaxHighlight.php","size":"18 KB"},{"name":"/vagrant/mediawiki/includes/parser/ParserOutput.php","size":"42 KB"},{"name":"/vagrant/mediawiki/includes/parser/CacheTime.php","size":"5 KB"},{"name":"/vagrant/mediawiki/includes/parser/LinkHolderArray.php","size":"18 KB"},{"name":"/vagrant/mediawiki/includes/parser/StripState.php","size":"7 KB"},{"name":"/vagrant/mediawiki/includes/profiler/SectionProfiler.php","size":"14 KB"},{"name":"/vagrant/mediawiki/includes/parser/Preprocessor_Hash.php","size":"25 KB"},{"name":"/vagrant/mediawiki/includes/parser/Preprocessor.php","size":"4 KB"},{"name":"/vagrant/mediawiki/includes/parser/PPFrame_Hash.php","size":"16 KB"},{"name":"/vagrant/mediawiki/includes/parser/PPFrame.php","size":"5 KB"},{"name":"/vagrant/mediawiki/extensions/EventLogging/includes/JsonSchemaHooks.php","size":"3 KB"},{"name":"/vagrant/mediawiki/includes/parser/PPDStack_Hash.php","size":"1 KB"},{"name":"/vagrant/mediawiki/includes/parser/PPDStack.php","size":"3 KB"},{"name":"/vagrant/mediawiki/includes/parser/PPDStackElement_Hash.php","size":"2 KB"},{"name":"/vagrant/mediawiki/includes/parser/PPDStackElement.php","size":"3 KB"},{"name":"/vagrant/mediawiki/includes/parser/PPDPart_Hash.php","size":"1 KB"},{"name":"/vagrant/mediawiki/includes/parser/PPDPart.php","size":"1 KB"},{"name":"/vagrant/mediawiki/includes/parser/PPNode_Hash_Tree.php","size":"9 KB"},{"name":"/vagrant/mediawiki/includes/parser/PPNode.php","size":"3 KB"},{"name":"/vagrant/mediawiki/includes/parser/PPNode_Hash_Array.php","size":"2 KB"},{"name":"/vagrant/mediawiki/includes/page/Article.php","size":"86 KB"},{"name":"/vagrant/mediawiki/includes/page/Page.php","size":"894 bytes"},{"name":"/vagrant/mediawiki/includes/ContentSecurityPolicy.php","size":"16 KB"},{"name":"/vagrant/mediawiki/extensions/MobileFrontend/includes/MobileContext.php","size":"32 KB"},{"name":"/vagrant/mediawiki/extensions/MobileFrontend/includes/devices/DeviceDetectorService.php","size":"1 KB"},{"name":"/vagrant/mediawiki/extensions/MobileFrontend/includes/devices/DeviceDetector.php","size":"2 KB"},{"name":"/vagrant/mediawiki/extensions/MobileFrontend/includes/devices/AMFDeviceDetector.php","size":"828 bytes"},{"name":"/vagrant/mediawiki/extensions/MobileFrontend/includes/devices/CustomHeaderDeviceDetector.php","size":"1 KB"},{"name":"/vagrant/mediawiki/extensions/MobileFrontend/includes/devices/UADeviceDetector.php","size":"3 KB"},{"name":"/vagrant/mediawiki/extensions/MobileFrontend/includes/devices/DeviceProperties.php","size":"2 KB"},{"name":"/vagrant/mediawiki/skins/Vector/includes/SkinVector.php","size":"3 KB"},{"name":"/vagrant/mediawiki/includes/skins/SkinTemplate.php","size":"47 KB"},{"name":"/vagrant/mediawiki/extensions/PageImages/includes/PageImages.php","size":"6 KB"},{"name":"/vagrant/mediawiki/includes/libs/rdbms/database/Database.php","size":"146 KB"},{"name":"/vagrant/mediawiki/includes/libs/rdbms/database/IMaintainableDatabase.php","size":"11 KB"},{"name":"/vagrant/mediawiki/includes/libs/rdbms/database/DatabaseMysqli.php","size":"7 KB"},{"name":"/vagrant/mediawiki/includes/libs/rdbms/database/DatabaseMysqlBase.php","size":"44 KB"},{"name":"/vagrant/mediawiki/includes/libs/rdbms/database/utils/GeneralizedSql.php","size":"3 KB"},{"name":"/vagrant/mediawiki/includes/libs/rdbms/database/DBConnRef.php","size":"23 KB"},{"name":"/vagrant/mediawiki/includes/libs/rdbms/database/resultwrapper/ResultWrapper.php","size":"3 KB"},{"name":"/vagrant/mediawiki/includes/libs/rdbms/database/resultwrapper/IResultWrapper.php","size":"2 KB"},{"name":"/vagrant/srv/parsoid/vendor/liuggio/statsd-php-client/src/Liuggio/StatsdClient/Entity/StatsdDataInterface.php","size":"726 bytes"},{"name":"/vagrant/srv/parsoid/vendor/liuggio/statsd-php-client/src/Liuggio/StatsdClient/Entity/StatsdData.php","size":"2 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/utfnormal/src/Constants.php","size":"3 KB"},{"name":"/vagrant/mediawiki/includes/cache/LinkBatch.php","size":"6 KB"},{"name":"/vagrant/mediawiki/includes/title/TitleValue.php","size":"6 KB"},{"name":"/vagrant/mediawiki/skins/Vector/includes/VectorTemplate.php","size":"15 KB"},{"name":"/vagrant/mediawiki/includes/skins/BaseTemplate.php","size":"24 KB"},{"name":"/vagrant/mediawiki/includes/skins/QuickTemplate.php","size":"4 KB"},{"name":"/vagrant/mediawiki/includes/linker/LinkRenderer.php","size":"12 KB"},{"name":"/vagrant/mediawiki/includes/Permissions/PermissionManager.php","size":"45 KB"},{"name":"/vagrant/mediawiki/includes/Html.php","size":"33 KB"},{"name":"/vagrant/mediawiki/includes/specialpage/SpecialPage.php","size":"26 KB"},{"name":"/vagrant/mediawiki/includes/Linker.php","size":"73 KB"},{"name":"/vagrant/mediawiki/includes/libs/HtmlArmor.php","size":"1 KB"},{"name":"/vagrant/mediawiki/includes/libs/StringUtils.php","size":"11 KB"},{"name":"/vagrant/mediawiki/includes/parser/PPNode_Hash_Text.php","size":"2 KB"},{"name":"/vagrant/mediawiki/includes/parser/BlockLevelPass.php","size":"17 KB"},{"name":"/vagrant/mediawiki/includes/tidy/RemexCompatFormatter.php","size":"2 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/Serializer/HtmlFormatter.php","size":"6 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/Serializer/Formatter.php","size":"2 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/DOM/DOMFormatter.php","size":"452 bytes"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/HTMLData.php","size":"106 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/Serializer/Serializer.php","size":"10 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/Serializer/AbstractSerializer.php","size":"239 bytes"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/TreeBuilder/TreeHandler.php","size":"7 KB"},{"name":"/vagrant/mediawiki/includes/tidy/RemexCompatMunger.php","size":"16 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/TreeBuilder/TreeBuilder.php","size":"22 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/TreeBuilder/ActiveFormattingElements.php","size":"9 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/TreeBuilder/CachingStack.php","size":"12 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/TreeBuilder/Stack.php","size":"3 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/TreeBuilder/Dispatcher.php","size":"11 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/TreeBuilder/TemplateModeStack.php","size":"960 bytes"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/TreeBuilder/Initial.php","size":"4 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/TreeBuilder/InsertionMode.php","size":"3 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/TreeBuilder/BeforeHtml.php","size":"2 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/TreeBuilder/BeforeHead.php","size":"2 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/TreeBuilder/InHead.php","size":"4 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/TreeBuilder/InHeadNoscript.php","size":"3 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/TreeBuilder/AfterHead.php","size":"3 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/TreeBuilder/InBody.php","size":"17 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/TreeBuilder/Text.php","size":"927 bytes"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/TreeBuilder/InTable.php","size":"5 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/TreeBuilder/InTableText.php","size":"3 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/TreeBuilder/InCaption.php","size":"3 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/TreeBuilder/InColumnGroup.php","size":"3 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/TreeBuilder/InTableBody.php","size":"3 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/TreeBuilder/InRow.php","size":"3 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/TreeBuilder/InCell.php","size":"3 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/TreeBuilder/InSelect.php","size":"4 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/TreeBuilder/InSelectInTable.php","size":"2 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/TreeBuilder/InTemplate.php","size":"2 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/TreeBuilder/AfterBody.php","size":"2 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/TreeBuilder/InFrameset.php","size":"2 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/TreeBuilder/AfterFrameset.php","size":"1 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/TreeBuilder/AfterAfterBody.php","size":"2 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/TreeBuilder/AfterAfterFrameset.php","size":"1 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/TreeBuilder/InForeignContent.php","size":"6 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/TreeBuilder/InPre.php","size":"2 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/TreeBuilder/InTextarea.php","size":"2 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/Serializer/SerializerNode.php","size":"710 bytes"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/Tokenizer/PlainAttributes.php","size":"1 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/Tokenizer/Attributes.php","size":"972 bytes"},{"name":"/vagrant/mediawiki/includes/tidy/RemexMungerData.php","size":"3 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/TreeBuilder/Element.php","size":"5 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/remex-html/RemexHtml/TreeBuilder/FormattingElement.php","size":"157 bytes"},{"name":"/vagrant/mediawiki/includes/actions/Action.php","size":"12 KB"},{"name":"/vagrant/mediawiki/includes/auth/AuthManager.php","size":"84 KB"},{"name":"/vagrant/mediawiki/includes/auth/TemporaryPasswordPrimaryAuthenticationProvider.php","size":"14 KB"},{"name":"/vagrant/mediawiki/includes/auth/AbstractPasswordPrimaryAuthenticationProvider.php","size":"5 KB"},{"name":"/vagrant/mediawiki/includes/auth/AbstractPrimaryAuthenticationProvider.php","size":"4 KB"},{"name":"/vagrant/mediawiki/includes/auth/AbstractAuthenticationProvider.php","size":"2 KB"},{"name":"/vagrant/mediawiki/includes/auth/AuthenticationProvider.php","size":"3 KB"},{"name":"/vagrant/mediawiki/includes/auth/PrimaryAuthenticationProvider.php","size":"17 KB"},{"name":"/vagrant/mediawiki/includes/auth/LocalPasswordPrimaryAuthenticationProvider.php","size":"10 KB"},{"name":"/vagrant/mediawiki/includes/resourceloader/ResourceLoader.php","size":"56 KB"},{"name":"/vagrant/mediawiki/includes/resourceloader/ResourceLoaderContext.php","size":"11 KB"},{"name":"/vagrant/mediawiki/includes/resourceloader/ResourceLoaderStartUpModule.php","size":"16 KB"},{"name":"/vagrant/mediawiki/includes/resourceloader/MessageBlobStore.php","size":"7 KB"},{"name":"/vagrant/mediawiki/resources/Resources.php","size":"96 KB"},{"name":"/vagrant/mediawiki/includes/resourceloader/ResourceLoaderSiteModule.php","size":"2 KB"},{"name":"/vagrant/mediawiki/includes/resourceloader/ResourceLoaderWikiModule.php","size":"17 KB"},{"name":"/vagrant/mediawiki/includes/resourceloader/ResourceLoaderSiteStylesModule.php","size":"2 KB"},{"name":"/vagrant/mediawiki/includes/resourceloader/ResourceLoaderUserModule.php","size":"2 KB"},{"name":"/vagrant/mediawiki/includes/resourceloader/ResourceLoaderUserStylesModule.php","size":"2 KB"},{"name":"/vagrant/mediawiki/includes/resourceloader/ResourceLoaderUserDefaultsModule.php","size":"1 KB"},{"name":"/vagrant/mediawiki/includes/resourceloader/ResourceLoaderUserOptionsModule.php","size":"2 KB"},{"name":"/vagrant/mediawiki/includes/resourceloader/ResourceLoaderUserTokensModule.php","size":"2 KB"},{"name":"/vagrant/mediawiki/includes/resourceloader/ResourceLoaderSkinModule.php","size":"7 KB"},{"name":"/vagrant/mediawiki/includes/resourceloader/ResourceLoaderFileModule.php","size":"40 KB"},{"name":"/vagrant/mediawiki/includes/resourceloader/ResourceLoaderLessVarFileModule.php","size":"2 KB"},{"name":"/vagrant/mediawiki/includes/resourceloader/ResourceLoaderFilePath.php","size":"2 KB"},{"name":"/vagrant/mediawiki/includes/resourceloader/ResourceLoaderForeignApiModule.php","size":"1 KB"},{"name":"/vagrant/mediawiki/includes/resourceloader/ResourceLoaderLanguageDataModule.php","size":"3 KB"},{"name":"/vagrant/mediawiki/includes/resourceloader/ResourceLoaderOOUIFileModule.php","size":"3 KB"},{"name":"/vagrant/mediawiki/includes/resourceloader/ResourceLoaderOOUIModule.php","size":"5 KB"},{"name":"/vagrant/mediawiki/includes/resourceloader/ResourceLoaderOOUIIconPackModule.php","size":"3 KB"},{"name":"/vagrant/mediawiki/includes/resourceloader/ResourceLoaderOOUIImageModule.php","size":"5 KB"},{"name":"/vagrant/mediawiki/includes/resourceloader/ResourceLoaderImageModule.php","size":"15 KB"},{"name":"/vagrant/mediawiki/skins/Vector/includes/ResourceLoaderLessModule.php","size":"2 KB"},{"name":"/vagrant/mediawiki/skins/MinervaNeue/includes/ResourceLoaderLessVarFileModule.php","size":"1 KB"},{"name":"/vagrant/mediawiki/extensions/MobileFrontend/includes/modules/ResourceLoaderFileModuleWithMFConfig.php","size":"742 bytes"},{"name":"/vagrant/mediawiki/extensions/MobileFrontend/includes/modules/MobileMainPageStyleModule.php","size":"1 KB"},{"name":"/vagrant/mediawiki/extensions/MobileFrontend/includes/modules/MobileSiteModule.php","size":"995 bytes"},{"name":"/vagrant/mediawiki/extensions/MobileFrontend/includes/modules/MobileSiteStylesModule.php","size":"928 bytes"},{"name":"/vagrant/mediawiki/skins/MinervaNeue/includes/MinervaHooks.php","size":"9 KB"},{"name":"/vagrant/mediawiki/tests/qunit/QUnitTestResources.php","size":"6 KB"},{"name":"/vagrant/mediawiki/includes/FauxRequest.php","size":"6 KB"},{"name":"/vagrant/mediawiki/includes/resourceloader/ResourceLoaderClientHtml.php","size":"14 KB"},{"name":"/vagrant/mediawiki/includes/content/ContentHandler.php","size":"47 KB"},{"name":"/vagrant/mediawiki/includes/Revision/MainSlotRoleHandler.php","size":"4 KB"},{"name":"/vagrant/mediawiki/includes/Revision/SlotRoleHandler.php","size":"5 KB"},{"name":"/vagrant/mediawiki/extensions/MobileFrontend/includes/amc/Manager.php","size":"2 KB"},{"name":"/vagrant/mediawiki/extensions/MobileFrontend/includes/features/UserModes.php","size":"977 bytes"},{"name":"/vagrant/mediawiki/extensions/MobileFrontend/includes/features/StableUserMode.php","size":"1 KB"},{"name":"/vagrant/mediawiki/extensions/MobileFrontend/includes/features/IFeature.php","size":"1 KB"},{"name":"/vagrant/mediawiki/extensions/MobileFrontend/includes/features/BetaUserMode.php","size":"1 KB"},{"name":"/vagrant/mediawiki/extensions/MobileFrontend/includes/features/FeaturesManager.php","size":"4 KB"},{"name":"/vagrant/mediawiki/extensions/MobileFrontend/includes/features/Feature.php","size":"1 KB"},{"name":"/vagrant/mediawiki/includes/resourceloader/DerivativeResourceLoaderContext.php","size":"5 KB"},{"name":"/vagrant/mediawiki/vendor/wikimedia/wrappedstring/src/WrappedString.php","size":"4 KB"},{"name":"/vagrant/mediawiki/vendor/wikimedia/wrappedstring/src/WrappedStringList.php","size":"3 KB"},{"name":"/vagrant/mediawiki/includes/libs/JavaScriptMinifier.php","size":"28 KB"},{"name":"/vagrant/mediawiki/includes/Xml.php","size":"26 KB"},{"name":"/vagrant/mediawiki/includes/user/LoggedOutEditToken.php","size":"1 KB"},{"name":"/vagrant/mediawiki/includes/session/Token.php","size":"3 KB"},{"name":"/vagrant/mediawiki/includes/XmlJsCode.php","size":"2 KB"},{"name":"/vagrant/mediawiki/extensions/MobileFrontend/includes/MobileFrontendSkinHooks.php","size":"10 KB"},{"name":"/vagrant/mediawiki/includes/GitInfo.php","size":"11 KB"},{"name":"/vagrant/srv/parsoid/vendor/wikimedia/utfnormal/src/Validator.php","size":"22 KB"}]}});mw.config.set({"wgBackendResponseTime":302});});</script>
138</body>
139</html>

Tue, Jul 2, 9:29 AM · MediaWiki-API, MediaWiki-REST-API
Tgr renamed T227066: Integrate MW_API with MediaWiki REST API framework from Integrate MW_API with MediaWiki REST API fvramework to Integrate MW_API with MediaWiki REST API framework.
Tue, Jul 2, 9:26 AM · MediaWiki-API, MediaWiki-REST-API