for (;;);{"error":null,"payload":{"timeline":"\u003cdiv class=\"phui-timeline-shell phui-timeline-yellow\" data-sigil=\"transaction anchor-container\" data-meta=\"0_81\"\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-minor-event\"\u003e\u003cdiv class=\"phui-timeline-content\"\u003e\u003ca style=\"background-image: url(https:\/\/phab.wmfusercontent.org\/file\/data\/woaup5gfhgyt3xpvwi4f\/PHID-FILE-xcnwlpurjz3rsuiv56td\/profile)\" class=\"visual-only phui-timeline-image\" href=\"\/p\/Tgr\/\" aria-hidden=\"true\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-wedge\" style=\"\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-group\"\u003e\u003ca name=\"1578378\" id=\"1578378\" class=\"phabricator-anchor-view\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-title phui-timeline-title-with-icon\"\u003e\u003cspan class=\"phui-timeline-icon-fill\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-pencil phui-timeline-icon\" data-meta=\"0_76\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003ca href=\"\/p\/Tgr\/\" class=\"phui-handle phui-link-person\" data-sigil=\"hovercard\" data-meta=\"0_0\"\u003eTgr\u003c\/a\u003e created this task.\u003cspan class=\"phui-timeline-extra\"\u003e\u003ca href=\"#1578378\" data-sigil=\"has-tooltip\" data-meta=\"0_75\"\u003e\u003cspan class=\"screen-only\"\u003eAug 27 2015, 2:35 AM\u003c\/span\u003e\u003cspan class=\"print-only\" aria-hidden=\"true\"\u003e2015-08-27 02:35:46 (UTC+0)\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-title phui-timeline-title-with-icon\"\u003e\u003cspan class=\"phui-timeline-icon-fill fill-has-color phui-timeline-icon-fill-yellow\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-arrow-up phui-timeline-icon\" data-meta=\"0_77\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003ca href=\"\/p\/Tgr\/\" class=\"phui-handle phui-link-person\" data-sigil=\"hovercard\" data-meta=\"0_12\"\u003eTgr\u003c\/a\u003e raised the priority of this task from \u003cspan class=\"phui-timeline-value\"\u003e\u003c\/span\u003e to \u003cspan class=\"phui-timeline-value\"\u003eNeeds Triage\u003c\/span\u003e.\u003c\/div\u003e\u003cdiv class=\"phui-timeline-title phui-timeline-title-with-icon\"\u003e\u003cspan class=\"phui-timeline-icon-fill\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-pencil phui-timeline-icon\" data-meta=\"0_78\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003ca href=\"\/p\/Tgr\/\" class=\"phui-handle phui-link-person\" data-sigil=\"hovercard\" data-meta=\"0_13\"\u003eTgr\u003c\/a\u003e updated the task description. \u003ca href=\"\/transactions\/detail\/PHID-XACT-TASK-6xytp3krpsvh3gk\/\" data-sigil=\"workflow\"\u003e(Show Details)\u003c\/a\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-title phui-timeline-title-with-icon\"\u003e\u003cspan class=\"phui-timeline-icon-fill\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-link phui-timeline-icon\" data-meta=\"0_79\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003ca href=\"\/p\/Tgr\/\" class=\"phui-handle phui-link-person\" data-sigil=\"hovercard\" data-meta=\"0_14\"\u003eTgr\u003c\/a\u003e added projects: \u003ca href=\"\/tag\/mediawiki-extensions-general\/\" class=\"phui-handle\" data-sigil=\"hovercard\" data-meta=\"0_15\"\u003eMediaWiki-extensions-General\u003c\/a\u003e, \u003ca href=\"\/tag\/reading-infrastructure-team-old_don_t_use\/\" class=\"phui-handle handle-status-closed\" data-sigil=\"hovercard\" data-meta=\"0_16\"\u003eReading-Infrastructure-Team-Old (Don't use)\u003c\/a\u003e, \u003ca href=\"\/tag\/mediawiki-core-authmanager\/\" class=\"phui-handle\" data-sigil=\"hovercard\" data-meta=\"0_17\"\u003eMediaWiki-Core-AuthManager\u003c\/a\u003e.\u003c\/div\u003e\u003cdiv class=\"phui-timeline-title phui-timeline-title-with-icon\"\u003e\u003cspan class=\"phui-timeline-icon-fill\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-user-plus phui-timeline-icon\" data-meta=\"0_80\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003ca href=\"\/p\/Tgr\/\" class=\"phui-handle phui-link-person\" data-sigil=\"hovercard\" data-meta=\"0_18\"\u003eTgr\u003c\/a\u003e added subscribers: \u003ca href=\"\/p\/Liuxinyu970226\/\" class=\"phui-handle phui-link-person\"\u003eLiuxinyu970226\u003c\/a\u003e, \u003ca href=\"\/p\/Krenair\/\" class=\"phui-handle phui-link-person\"\u003eKrenair\u003c\/a\u003e, \u003ca href=\"\/p\/Florian\/\" class=\"phui-handle phui-link-person\"\u003eFlorian\u003c\/a\u003e and \u003ca href=\"\/subscriptions\/transaction\/add\/PHID-XACT-TASK-65wg3u772pabycm\/\" data-sigil=\"workflow\"\u003e2 others\u003c\/a\u003e.\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-spacer\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-shell\" data-sigil=\"transaction anchor-container\" data-meta=\"0_84\"\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-minor-event\"\u003e\u003cdiv class=\"phui-timeline-content\"\u003e\u003ca style=\"background-image: url(https:\/\/phab.wmfusercontent.org\/file\/data\/tz7lapf6xjud6l4n3hnu\/PHID-FILE-mc3f2ds2bpvzfeu4ogha\/profile)\" class=\"visual-only phui-timeline-image\" href=\"\/p\/bd808\/\" aria-hidden=\"true\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-wedge\" style=\"\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-group\"\u003e\u003ca name=\"1584739\" id=\"1584739\" class=\"phabricator-anchor-view\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-title phui-timeline-title-with-icon\"\u003e\u003cspan class=\"phui-timeline-icon-fill\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-columns phui-timeline-icon\" data-meta=\"0_83\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003ca href=\"\/p\/bd808\/\" class=\"phui-handle phui-link-person\" data-sigil=\"hovercard\" data-meta=\"0_19\"\u003ebd808\u003c\/a\u003e moved this task from \u003ca href=\"\/project\/board\/1037\/\" class=\"phui-handle\" data-sigil=\"hovercard\" data-meta=\"0_20\"\u003eBacklog\u003c\/a\u003e to \u003ca href=\"\/project\/board\/1037\/\" class=\"phui-handle\" data-sigil=\"hovercard\" data-meta=\"0_21\"\u003eAuthManager Backlog\u003c\/a\u003e on the \u003ca href=\"\/tag\/mediawiki-core-authmanager\/\" class=\"phui-handle\" data-sigil=\"hovercard\" data-meta=\"0_22\"\u003eMediaWiki-Core-AuthManager\u003c\/a\u003e board.\u003cspan class=\"phui-timeline-extra\"\u003e\u003ca href=\"#1584739\" data-sigil=\"has-tooltip\" data-meta=\"0_82\"\u003e\u003cspan class=\"screen-only\"\u003eAug 28 2015, 5:24 PM\u003c\/span\u003e\u003cspan class=\"print-only\" aria-hidden=\"true\"\u003e2015-08-28 17:24:46 (UTC+0)\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-spacer\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-shell\" data-sigil=\"transaction anchor-container\" data-meta=\"0_88\"\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-minor-event\"\u003e\u003cdiv class=\"phui-timeline-content\"\u003e\u003ca style=\"background-image: url(https:\/\/phab.wmfusercontent.org\/file\/data\/c33qhundr7y4be6d44a4\/PHID-FILE-n62pq2lv7cf4yjpa4fxk\/alphanumeric_aleo-white_U.png-_92b8c4-255%2C255%2C255%2C0.4.png)\" class=\"visual-only phui-timeline-image\" href=\"\/p\/Umherirrender\/\" aria-hidden=\"true\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-wedge\" style=\"\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-group\"\u003e\u003ca name=\"1634919\" id=\"1634919\" class=\"phabricator-anchor-view\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-title phui-timeline-title-with-icon\"\u003e\u003cspan class=\"phui-timeline-icon-fill\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-link phui-timeline-icon\" data-meta=\"0_86\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003ca href=\"\/p\/Umherirrender\/\" class=\"phui-handle phui-link-person\" data-sigil=\"hovercard\" data-meta=\"0_23\"\u003eUmherirrender\u003c\/a\u003e edited projects, added \u003ca href=\"\/tag\/mediawiki-extensions-other\/\" class=\"phui-handle\" data-sigil=\"hovercard\" data-meta=\"0_24\"\u003eMediaWiki-extensions-Other\u003c\/a\u003e; removed \u003ca href=\"\/tag\/mediawiki-extensions-general\/\" class=\"phui-handle\" data-sigil=\"hovercard\" data-meta=\"0_25\"\u003eMediaWiki-extensions-General\u003c\/a\u003e.\u003cspan class=\"phui-timeline-extra\"\u003e\u003ca href=\"#1634919\" data-sigil=\"has-tooltip\" data-meta=\"0_85\"\u003e\u003cspan class=\"screen-only\"\u003eSep 13 2015, 8:24 AM\u003c\/span\u003e\u003cspan class=\"print-only\" aria-hidden=\"true\"\u003e2015-09-13 08:24:09 (UTC+0)\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-title phui-timeline-title-with-icon\"\u003e\u003cspan class=\"phui-timeline-icon-fill\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-pencil phui-timeline-icon\" data-meta=\"0_87\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003ca href=\"\/p\/Umherirrender\/\" class=\"phui-handle phui-link-person\" data-sigil=\"hovercard\" data-meta=\"0_26\"\u003eUmherirrender\u003c\/a\u003e set Security to None.\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-spacer\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-shell\" data-sigil=\"transaction anchor-container\" data-meta=\"0_91\"\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-minor-event\"\u003e\u003cdiv class=\"phui-timeline-content\"\u003e\u003ca style=\"background-image: url(https:\/\/phab.wmfusercontent.org\/file\/data\/2kkoe2fjcdw4dsh66jb6\/PHID-FILE-yqwv7245sm6b26nho7m4\/profile)\" class=\"visual-only phui-timeline-image\" href=\"\/p\/Liuxinyu970226\/\" aria-hidden=\"true\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-wedge\" style=\"\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-group\"\u003e\u003ca name=\"1701176\" id=\"1701176\" class=\"phabricator-anchor-view\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-title phui-timeline-title-with-icon\"\u003e\u003cspan class=\"phui-timeline-icon-fill\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-user-plus phui-timeline-icon\" data-meta=\"0_90\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003ca href=\"\/p\/Liuxinyu970226\/\" class=\"phui-handle phui-link-person\" data-sigil=\"hovercard\" data-meta=\"0_27\"\u003eLiuxinyu970226\u003c\/a\u003e added a subscriber: \u003ca href=\"\/p\/cicalese\/\" class=\"phui-handle phui-link-person\" data-sigil=\"hovercard\" data-meta=\"0_28\"\u003ecicalese\u003c\/a\u003e.\u003cspan class=\"phui-timeline-extra\"\u003e\u003ca href=\"#1701176\" data-sigil=\"has-tooltip\" data-meta=\"0_89\"\u003e\u003cspan class=\"screen-only\"\u003eOct 5 2015, 1:03 AM\u003c\/span\u003e\u003cspan class=\"print-only\" aria-hidden=\"true\"\u003e2015-10-05 01:03:12 (UTC+0)\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-spacer\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-shell\" data-sigil=\"transaction anchor-container\" data-meta=\"0_100\"\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-major-event\"\u003e\u003cdiv class=\"phui-timeline-content\"\u003e\u003ca style=\"background-image: url(https:\/\/phab.wmfusercontent.org\/file\/data\/we4zgdzwslz3xt5z2l65\/PHID-FILE-dsbawu5kzuffjgi4th4h\/profile)\" class=\"visual-only phui-timeline-image\" href=\"\/p\/cicalese\/\" aria-hidden=\"true\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-wedge\" style=\"\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-group\"\u003e\u003cdiv class=\"phui-timeline-inner-content\"\u003e\u003ca name=\"1701982\" id=\"1701982\" class=\"phabricator-anchor-view\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-title phui-timeline-title-with-icon phui-timeline-title-with-menu\"\u003e\u003cspan class=\"phui-timeline-icon-fill\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-comment phui-timeline-icon\" data-meta=\"0_99\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003ca href=\"\/p\/cicalese\/\" class=\"phui-handle phui-link-person\" data-sigil=\"hovercard\" data-meta=\"0_29\"\u003ecicalese\u003c\/a\u003e added a comment.\u003cspan class=\"phui-timeline-extra\"\u003e\u003ca href=\"#1701982\" data-sigil=\"has-tooltip\" data-meta=\"0_98\"\u003e\u003cspan class=\"screen-only\"\u003eOct 5 2015, 2:08 PM\u003c\/span\u003e\u003cspan class=\"print-only\" aria-hidden=\"true\"\u003e2015-10-05 14:08:45 (UTC+0)\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/div\u003e\u003ca href=\"#\" class=\"phui-timeline-menu\" aria-haspopup=\"true\" aria-expanded=\"false\" data-sigil=\"phui-dropdown-menu\" data-meta=\"0_96\"\u003e\u003cspan class=\"aural-only\"\u003eComment Actions\u003c\/span\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-caret-down\" data-meta=\"0_97\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-core-content\"\u003e\u003cspan class=\"transaction-comment\" data-sigil=\"transaction-comment\" data-meta=\"0_30\"\u003e\u003cdiv class=\"phabricator-remarkup\"\u003e\u003cp\u003eWith respect to the timing of this change, which MediaWiki release is anticipated to include the AuthManager change?\u003c\/p\u003e\n\n\u003cp\u003eCould somebody please point me to the "related bullet point in the longish comment on the AuthManager skeleton patch" mentioned in \u003ca href=\"\/T110414#1578206\" class=\"phui-tag-view phui-tag-type-object \" data-sigil=\"hovercard\" data-meta=\"0_1\"\u003e\u003cspan class=\"phui-tag-core-closed\"\u003e\u003cspan class=\"phui-tag-core phui-tag-color-object\"\u003eT110414#1578206\u003c\/span\u003e\u003c\/span\u003e\u003c\/a\u003e:\u003c\/p\u003e\n\n\u003cblockquote\u003e\u003cp\u003e\u2022PluggableAuth: uses UserLoadFromSession to replace MediaWiki authentication with its own plugin system. AuthManager can probably replace it as long as its plugins can be converted to providers (-> need to audit extensions using PluggableAuthUserAuthorization hook), except that it can also log out on inactivity which AuthManager does not support currently (see the related bullet point in the longish comment on the AuthManager skeleton patch).\u003c\/p\u003e\u003c\/blockquote\u003e\n\n\u003cp\u003eThanks.\u003c\/p\u003e\u003c\/div\u003e\u003c\/span\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-spacer\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-shell\" data-sigil=\"transaction anchor-container\" data-meta=\"0_109\"\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-major-event\"\u003e\u003cdiv class=\"phui-timeline-content\"\u003e\u003ca style=\"background-image: url(https:\/\/phab.wmfusercontent.org\/file\/data\/woaup5gfhgyt3xpvwi4f\/PHID-FILE-xcnwlpurjz3rsuiv56td\/profile)\" class=\"visual-only phui-timeline-image\" href=\"\/p\/Tgr\/\" aria-hidden=\"true\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-wedge\" style=\"\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-group\"\u003e\u003cdiv class=\"phui-timeline-inner-content\"\u003e\u003ca name=\"1718698\" id=\"1718698\" class=\"phabricator-anchor-view\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-title phui-timeline-title-with-icon phui-timeline-title-with-menu\"\u003e\u003cspan class=\"phui-timeline-icon-fill\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-comment phui-timeline-icon\" data-meta=\"0_108\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003ca href=\"\/p\/Tgr\/\" class=\"phui-handle phui-link-person\" data-sigil=\"hovercard\" data-meta=\"0_31\"\u003eTgr\u003c\/a\u003e added a comment.\u003cspan class=\"phui-timeline-extra\"\u003e\u003ca href=\"#1718698\" data-sigil=\"has-tooltip\" data-meta=\"0_107\"\u003e\u003cspan class=\"screen-only\"\u003eOct 12 2015, 1:51 AM\u003c\/span\u003e\u003cspan class=\"print-only\" aria-hidden=\"true\"\u003e2015-10-12 01:51:59 (UTC+0)\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/div\u003e\u003ca href=\"#\" class=\"phui-timeline-menu\" aria-haspopup=\"true\" aria-expanded=\"false\" data-sigil=\"phui-dropdown-menu\" data-meta=\"0_105\"\u003e\u003cspan class=\"aural-only\"\u003eComment Actions\u003c\/span\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-caret-down\" data-meta=\"0_106\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-core-content\"\u003e\u003cspan class=\"transaction-comment\" data-sigil=\"transaction-comment\" data-meta=\"0_32\"\u003e\u003cdiv class=\"phabricator-remarkup\"\u003e\u003cblockquote\u003e\u003cp\u003eWith respect to the timing of this change, which MediaWiki release is anticipated to include the AuthManager change?\u003c\/p\u003e\u003c\/blockquote\u003e\n\n\u003cp\u003eProbably the next release.\u003c\/p\u003e\n\n\u003cblockquote\u003e\u003cp\u003eCould somebody please point me to the "related bullet point in the longish comment on the AuthManager skeleton patch" mentioned in \u003ca href=\"\/T110414#1578206\" class=\"phui-tag-view phui-tag-type-object \" data-sigil=\"hovercard\" data-meta=\"0_2\"\u003e\u003cspan class=\"phui-tag-core-closed\"\u003e\u003cspan class=\"phui-tag-core phui-tag-color-object\"\u003eT110414#1578206\u003c\/span\u003e\u003c\/span\u003e\u003c\/a\u003e:\u003c\/p\u003e\u003c\/blockquote\u003e\n\n\u003cp\u003e\u003ca href=\"https:\/\/gerrit.wikimedia.org\/r\/#\/c\/195297\" class=\"remarkup-link\" target=\"_blank\" rel=\"noreferrer\"\u003ehttps:\/\/gerrit.wikimedia.org\/r\/#\/c\/195297\u003c\/a\u003e: \u003cem\u003eIt would be also nice to expose a standard way for authentication providers to attach extra data to users. Locked\/hidden status in CentralAuth would be one use case; PluggableAuth probably another one (it's described on the RfC talk page).\u003c\/em\u003e\u003c\/p\u003e\u003c\/div\u003e\u003c\/span\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-spacer\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-shell\" data-sigil=\"transaction anchor-container\" data-meta=\"0_118\"\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-major-event\"\u003e\u003cdiv class=\"phui-timeline-content\"\u003e\u003ca style=\"background-image: url(https:\/\/phab.wmfusercontent.org\/file\/data\/35wul4aw7m4ngbjlzjyq\/PHID-FILE-hvf5uq7y6rk2okyhaxd7\/profile)\" class=\"visual-only phui-timeline-image\" href=\"\/p\/MarkAHershberger\/\" aria-hidden=\"true\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-wedge\" style=\"\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-group\"\u003e\u003cdiv class=\"phui-timeline-inner-content\"\u003e\u003ca name=\"1721475\" id=\"1721475\" class=\"phabricator-anchor-view\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-title phui-timeline-title-with-icon phui-timeline-title-with-menu\"\u003e\u003cspan class=\"phui-timeline-icon-fill\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-user-plus phui-timeline-icon\" data-meta=\"0_117\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003ca href=\"\/p\/MarkAHershberger\/\" class=\"phui-handle phui-link-person\" data-sigil=\"hovercard\" data-meta=\"0_34\"\u003eMarkAHershberger\u003c\/a\u003e subscribed.\u003cspan class=\"phui-timeline-extra\"\u003e\u003ca href=\"#1721475\" data-sigil=\"has-tooltip\" data-meta=\"0_116\"\u003e\u003cspan class=\"screen-only\"\u003eOct 13 2015, 2:26 PM\u003c\/span\u003e\u003cspan class=\"print-only\" aria-hidden=\"true\"\u003e2015-10-13 14:26:08 (UTC+0)\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/div\u003e\u003ca href=\"#\" class=\"phui-timeline-menu\" aria-haspopup=\"true\" aria-expanded=\"false\" data-sigil=\"phui-dropdown-menu\" data-meta=\"0_114\"\u003e\u003cspan class=\"aural-only\"\u003eComment Actions\u003c\/span\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-caret-down\" data-meta=\"0_115\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-core-content\"\u003e\u003cspan class=\"transaction-comment\" data-sigil=\"transaction-comment\" data-meta=\"0_33\"\u003e\u003cdiv class=\"phabricator-remarkup\"\u003e\u003cblockquote class=\"remarkup-reply-block\"\u003e\n\u003cdiv class=\"remarkup-reply-head\"\u003eIn \u003ca href=\"\/T110464#1718698\" class=\"phui-tag-view phui-tag-type-object \" data-sigil=\"hovercard\" data-meta=\"0_3\"\u003e\u003cspan class=\"phui-tag-core-closed\"\u003e\u003cspan class=\"phui-tag-core phui-tag-color-object\"\u003eT110464#1718698\u003c\/span\u003e\u003c\/span\u003e\u003c\/a\u003e, \u003ca href=\"\/p\/Tgr\/\" class=\"phui-tag-view phui-tag-type-person \" data-sigil=\"hovercard\" data-meta=\"0_4\"\u003e\u003cspan class=\"phui-tag-core phui-tag-color-person\"\u003e@Tgr\u003c\/span\u003e\u003c\/a\u003e wrote:\u003c\/div\u003e\n\u003cdiv class=\"remarkup-reply-body\"\u003e\u003cblockquote\u003e\u003cp\u003eWith respect to the timing of this change, which MediaWiki release is anticipated to include the AuthManager change?\u003c\/p\u003e\u003c\/blockquote\u003e\n\n\u003cp\u003eProbably the next release.\u003c\/p\u003e\u003c\/div\u003e\n\u003c\/blockquote\u003e\n\n\u003cp\u003e...\u003c\/p\u003e\n\n\u003cblockquote\u003e\u003cp\u003e\u003ca href=\"https:\/\/gerrit.wikimedia.org\/r\/#\/c\/195297\" class=\"remarkup-link\" target=\"_blank\" rel=\"noreferrer\"\u003ehttps:\/\/gerrit.wikimedia.org\/r\/#\/c\/195297\u003c\/a\u003e: \u003cem\u003eIt would be also nice to expose a standard way for authentication providers to attach extra data to users. Locked\/hidden status in CentralAuth would be one use case; PluggableAuth probably another one (it's described on the RfC talk page).\u003c\/em\u003e\u003c\/p\u003e\u003c\/blockquote\u003e\n\n\u003cp\u003eSince 1.26 has been branched and that still patch isn't in a ready-to-merge state, it sounds like \u003cem\u003eProbably the next release.\u003c\/em\u003e means 1.27.\u003c\/p\u003e\n\n\u003cp\u003eIs that accurate?\u003c\/p\u003e\u003c\/div\u003e\u003c\/span\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-spacer\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-shell\" data-sigil=\"transaction anchor-container\" data-meta=\"0_127\"\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-major-event\"\u003e\u003cdiv class=\"phui-timeline-content\"\u003e\u003ca style=\"background-image: url(https:\/\/phab.wmfusercontent.org\/file\/data\/woaup5gfhgyt3xpvwi4f\/PHID-FILE-xcnwlpurjz3rsuiv56td\/profile)\" class=\"visual-only phui-timeline-image\" href=\"\/p\/Tgr\/\" aria-hidden=\"true\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-wedge\" style=\"\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-group\"\u003e\u003cdiv class=\"phui-timeline-inner-content\"\u003e\u003ca name=\"1722714\" id=\"1722714\" class=\"phabricator-anchor-view\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-title phui-timeline-title-with-icon phui-timeline-title-with-menu\"\u003e\u003cspan class=\"phui-timeline-icon-fill\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-comment phui-timeline-icon\" data-meta=\"0_126\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003ca href=\"\/p\/Tgr\/\" class=\"phui-handle phui-link-person\" data-sigil=\"hovercard\" data-meta=\"0_35\"\u003eTgr\u003c\/a\u003e added a comment.\u003cspan class=\"phui-timeline-extra\"\u003e\u003ca href=\"#1722714\" data-sigil=\"has-tooltip\" data-meta=\"0_125\"\u003e\u003cspan class=\"screen-only\"\u003eOct 13 2015, 6:38 PM\u003c\/span\u003e\u003cspan class=\"print-only\" aria-hidden=\"true\"\u003e2015-10-13 18:38:23 (UTC+0)\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/div\u003e\u003ca href=\"#\" class=\"phui-timeline-menu\" aria-haspopup=\"true\" aria-expanded=\"false\" data-sigil=\"phui-dropdown-menu\" data-meta=\"0_123\"\u003e\u003cspan class=\"aural-only\"\u003eComment Actions\u003c\/span\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-caret-down\" data-meta=\"0_124\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-core-content\"\u003e\u003cspan class=\"transaction-comment\" data-sigil=\"transaction-comment\" data-meta=\"0_36\"\u003e\u003cdiv class=\"phabricator-remarkup\"\u003e\u003cp\u003eUh, yes, in the next MediaWiki version (1.27), not the next release. I keep forgetting those are different things.\u003c\/p\u003e\n\n\u003cp\u003eAnd that was the wrong bullet point (although it is also related to PluggableAuth), this is the right one:\u003cbr \/\u003e\n\u003cem\u003eOne use case that I'm not sure fits well into the current implementation: an auth provider (could be the primary authoritative one, or any secondary) wants to re-validate the session and force the user to (partially?) re-authenticate. E.g. Google does this, in both forms (primary: shows you a login page, with the username filled in; secondary: asks for the two-factor mobile code). This could be done based on the request (new IP), expiration time, security level of the action you are trying to perform... Especially with UserLoadFromSession deprecated, there doesn't seem to be a good way to do that.\u003c\/em\u003e\u003c\/p\u003e\u003c\/div\u003e\u003c\/span\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-spacer\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-shell\" data-sigil=\"transaction anchor-container\" data-meta=\"0_139\"\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-major-event\"\u003e\u003cdiv class=\"phui-timeline-content\"\u003e\u003ca style=\"background-image: url(https:\/\/phab.wmfusercontent.org\/file\/data\/ms665yc73j6nadjitytk\/PHID-FILE-mocohumlrcbe2lcuplml\/profile)\" class=\"visual-only phui-timeline-image\" href=\"\/p\/Anomie\/\" aria-hidden=\"true\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-badges\"\u003e\u003cul class=\"phui-badge-flex-view grouped flex-view-collapsed \"\u003e\u003cli class=\"phui-badge-flex-item\"\u003e\u003ca class=\"phui-badge-mini phui-badge-mini-orange \" href=\"\/badges\/view\/5\/\" data-sigil=\"has-tooltip\" data-meta=\"0_137\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-rocket\" data-meta=\"0_138\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/a\u003e\u003c\/li\u003e\u003c\/ul\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-wedge\" style=\"\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-group\"\u003e\u003cdiv class=\"phui-timeline-inner-content\"\u003e\u003ca name=\"2294055\" id=\"2294055\" class=\"phabricator-anchor-view\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-title phui-timeline-title-with-icon phui-timeline-title-with-menu\"\u003e\u003cspan class=\"phui-timeline-icon-fill\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-link phui-timeline-icon\" data-meta=\"0_135\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003ca href=\"\/p\/Anomie\/\" class=\"phui-handle phui-link-person\" data-sigil=\"hovercard\" data-meta=\"0_37\"\u003eAnomie\u003c\/a\u003e edited projects, added \u003ca href=\"\/tag\/mediawiki-extensions-pluggable-auth\/\" class=\"phui-handle\" data-sigil=\"hovercard\" data-meta=\"0_38\"\u003eMediaWiki-extensions-Pluggable-Auth\u003c\/a\u003e; removed \u003ca href=\"\/tag\/mediawiki-extensions-other\/\" class=\"phui-handle\" data-sigil=\"hovercard\" data-meta=\"0_39\"\u003eMediaWiki-extensions-Other\u003c\/a\u003e.\u003cspan class=\"phui-timeline-extra\"\u003e\u003ca href=\"#2294055\" data-sigil=\"has-tooltip\" data-meta=\"0_134\"\u003e\u003cspan class=\"screen-only\"\u003eMay 13 2016, 9:25 PM\u003c\/span\u003e\u003cspan class=\"print-only\" aria-hidden=\"true\"\u003e2016-05-13 21:25:12 (UTC+0)\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-title phui-timeline-title-with-icon phui-timeline-title-with-menu\"\u003e\u003cspan class=\"phui-timeline-icon-fill\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-user-plus phui-timeline-icon\" data-meta=\"0_136\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003ca href=\"\/p\/Anomie\/\" class=\"phui-handle phui-link-person\" data-sigil=\"hovercard\" data-meta=\"0_41\"\u003eAnomie\u003c\/a\u003e subscribed.\u003c\/div\u003e\u003ca href=\"#\" class=\"phui-timeline-menu\" aria-haspopup=\"true\" aria-expanded=\"false\" data-sigil=\"phui-dropdown-menu\" data-meta=\"0_132\"\u003e\u003cspan class=\"aural-only\"\u003eComment Actions\u003c\/span\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-caret-down\" data-meta=\"0_133\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-core-content\"\u003e\u003cspan class=\"transaction-comment\" data-sigil=\"transaction-comment\" data-meta=\"0_40\"\u003e\u003cdiv class=\"phabricator-remarkup\"\u003e\u003cp\u003eThe general replacement for the UserLoadFromSession hook used in a positive sense (i.e. being logged in as a user) is SessionManager, and in particular the SessionProvider class. Used in a negative sense (i.e. rejecting an existing logged-in session), you'd use the 'SessionMetadata' and 'SessionCheckInfo' hooks.\u003c\/p\u003e\n\n\u003cp\u003eIf PluggableAuth is being used as a hack around Special:UserLogin (e.g. the sub-extension has its own special page, and on a successful login it "triggers" PluggableAuth to do its autologin deal by setting the global), that would be better done as a PrimaryAuthenticationProvider, with the PluggableAuthUserAuthorization hook as a SecondaryAuthenticationProvider if it should apply to all logins and not only logins authenticated by the PluggableAuth class.\u003c\/p\u003e\n\n\u003cp\u003eThere's still no "standard" way to store arbitrary data associated with a user. For non-sensitive data you might use a user option, otherwise you'll need to create your own database table. If you're dealing with cross-wiki users, you might look at the new CentralIdLookup class.\u003c\/p\u003e\n\n\u003cp\u003eRegarding re-authentication, the 'SessionCheckInfo' hook is the way. It doesn't allow for redirecting the user to the login page, though; if they want to be logged in again they'll have to go there manually. And it doesn't allow for partial reauthentication.\u003c\/p\u003e\n\n\u003cp\u003eThere's also the 'SecuritySensitiveOperationStatus' hook, which can be used to force the user to reauthenticate before they can perform certain security-sensitive operations such as changing their email or password. This also doesn't allow for partial reauthentication.\u003c\/p\u003e\u003c\/div\u003e\u003c\/span\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-spacer\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-shell\" data-sigil=\"transaction anchor-container\" data-meta=\"0_148\"\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-major-event\"\u003e\u003cdiv class=\"phui-timeline-content\"\u003e\u003ca style=\"background-image: url(https:\/\/phab.wmfusercontent.org\/file\/data\/we4zgdzwslz3xt5z2l65\/PHID-FILE-dsbawu5kzuffjgi4th4h\/profile)\" class=\"visual-only phui-timeline-image\" href=\"\/p\/cicalese\/\" aria-hidden=\"true\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-wedge\" style=\"\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-group\"\u003e\u003cdiv class=\"phui-timeline-inner-content\"\u003e\u003ca name=\"2294101\" id=\"2294101\" class=\"phabricator-anchor-view\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-title phui-timeline-title-with-icon phui-timeline-title-with-menu\"\u003e\u003cspan class=\"phui-timeline-icon-fill\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-comment phui-timeline-icon\" data-meta=\"0_147\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003ca href=\"\/p\/cicalese\/\" class=\"phui-handle phui-link-person\" data-sigil=\"hovercard\" data-meta=\"0_42\"\u003ecicalese\u003c\/a\u003e added a comment.\u003cspan class=\"phui-timeline-extra\"\u003e\u003ca href=\"#2294101\" data-sigil=\"has-tooltip\" data-meta=\"0_146\"\u003e\u003cspan class=\"screen-only\"\u003eMay 13 2016, 9:37 PM\u003c\/span\u003e\u003cspan class=\"print-only\" aria-hidden=\"true\"\u003e2016-05-13 21:37:59 (UTC+0)\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/div\u003e\u003ca href=\"#\" class=\"phui-timeline-menu\" aria-haspopup=\"true\" aria-expanded=\"false\" data-sigil=\"phui-dropdown-menu\" data-meta=\"0_144\"\u003e\u003cspan class=\"aural-only\"\u003eComment Actions\u003c\/span\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-caret-down\" data-meta=\"0_145\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-core-content\"\u003e\u003cspan class=\"transaction-comment\" data-sigil=\"transaction-comment\" data-meta=\"0_43\"\u003e\u003cdiv class=\"phabricator-remarkup\"\u003e\u003cp\u003eThank you for the detailed information. So, is everything necessary in place now in MedaWiki master so that this conversion could be commenced? Do I correctly recall that the UserLoadFromSession hook will continue to be available at least in the near future so that PluggableAuth in its current form will still continue to work if a wiki is upgraded to MW 1.27? Obviously, it would be best to convert PluggableAuth to work with the new AuthManager code as soon as possible, but with the imminent release of MW 1.27, there will likely be a period of time between when it is released and when an updated PluggableAuth is available.\u003c\/p\u003e\u003c\/div\u003e\u003c\/span\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-spacer\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-shell\" data-sigil=\"transaction anchor-container\" data-meta=\"0_159\"\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-major-event\"\u003e\u003cdiv class=\"phui-timeline-content\"\u003e\u003ca style=\"background-image: url(https:\/\/phab.wmfusercontent.org\/file\/data\/ms665yc73j6nadjitytk\/PHID-FILE-mocohumlrcbe2lcuplml\/profile)\" class=\"visual-only phui-timeline-image\" href=\"\/p\/Anomie\/\" aria-hidden=\"true\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-badges\"\u003e\u003cul class=\"phui-badge-flex-view grouped flex-view-collapsed \"\u003e\u003cli class=\"phui-badge-flex-item\"\u003e\u003ca class=\"phui-badge-mini phui-badge-mini-orange \" href=\"\/badges\/view\/5\/\" data-sigil=\"has-tooltip\" data-meta=\"0_157\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-rocket\" data-meta=\"0_158\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/a\u003e\u003c\/li\u003e\u003c\/ul\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-wedge\" style=\"\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-group\"\u003e\u003cdiv class=\"phui-timeline-inner-content\"\u003e\u003ca name=\"2294374\" id=\"2294374\" class=\"phabricator-anchor-view\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-title phui-timeline-title-with-icon phui-timeline-title-with-menu\"\u003e\u003cspan class=\"phui-timeline-icon-fill\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-comment phui-timeline-icon\" data-meta=\"0_156\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003ca href=\"\/p\/Anomie\/\" class=\"phui-handle phui-link-person\" data-sigil=\"hovercard\" data-meta=\"0_44\"\u003eAnomie\u003c\/a\u003e added a comment.\u003cspan class=\"phui-timeline-extra\"\u003e\u003ca href=\"#2294374\" data-sigil=\"has-tooltip\" data-meta=\"0_155\"\u003e\u003cspan class=\"screen-only\"\u003eMay 13 2016, 11:03 PM\u003c\/span\u003e\u003cspan class=\"print-only\" aria-hidden=\"true\"\u003e2016-05-13 23:03:23 (UTC+0)\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/div\u003e\u003ca href=\"#\" class=\"phui-timeline-menu\" aria-haspopup=\"true\" aria-expanded=\"false\" data-sigil=\"phui-dropdown-menu\" data-meta=\"0_153\"\u003e\u003cspan class=\"aural-only\"\u003eComment Actions\u003c\/span\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-caret-down\" data-meta=\"0_154\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-core-content\"\u003e\u003cspan class=\"transaction-comment\" data-sigil=\"transaction-comment\" data-meta=\"0_45\"\u003e\u003cdiv class=\"phabricator-remarkup\"\u003e\u003cp\u003eMost of the things I described are already in MediaWiki master and the REL1_27 branch. The exceptions are PrimaryAuthenticationProvider, SecondaryAuthenticationProvider, and the 'SecuritySensitiveOperationStatus' hook, which are in the following patches that we hope to merge soon: \u003ca href=\"https:\/\/gerrit.wikimedia.org\/r\/#\/c\/195297\/\" class=\"remarkup-link\" target=\"_blank\" rel=\"noreferrer\"\u003ebackend\u003c\/a\u003e, \u003ca href=\"https:\/\/gerrit.wikimedia.org\/r\/#\/c\/240052\/\" class=\"remarkup-link\" target=\"_blank\" rel=\"noreferrer\"\u003eweb UI\u003c\/a\u003e, \u003ca href=\"https:\/\/gerrit.wikimedia.org\/r\/#\/c\/265201\/\" class=\"remarkup-link\" target=\"_blank\" rel=\"noreferrer\"\u003eAPI\u003c\/a\u003e, \u003ca href=\"https:\/\/gerrit.wikimedia.org\/r\/#\/c\/282202\/\" class=\"remarkup-link\" target=\"_blank\" rel=\"noreferrer\"\u003erelease notes\u003c\/a\u003e.\u003c\/p\u003e\n\n\u003cp\u003eThere are no plans that I know of to change the status of the UserLoadFromSession hook from what it is now in the REL1_27 branch.\u003c\/p\u003e\u003c\/div\u003e\u003c\/span\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-spacer\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-shell\" data-sigil=\"transaction anchor-container\" data-meta=\"0_162\"\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-minor-event\"\u003e\u003cdiv class=\"phui-timeline-content\"\u003e\u003ca style=\"background-image: url(https:\/\/phab.wmfusercontent.org\/file\/data\/ms665yc73j6nadjitytk\/PHID-FILE-mocohumlrcbe2lcuplml\/profile)\" class=\"visual-only phui-timeline-image\" href=\"\/p\/Anomie\/\" aria-hidden=\"true\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-wedge\" style=\"\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-group\"\u003e\u003ca name=\"2453873\" id=\"2453873\" class=\"phabricator-anchor-view\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-title phui-timeline-title-with-icon\"\u003e\u003cspan class=\"phui-timeline-icon-fill\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-link phui-timeline-icon\" data-meta=\"0_161\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003ca href=\"\/p\/Anomie\/\" class=\"phui-handle phui-link-person\" data-sigil=\"hovercard\" data-meta=\"0_46\"\u003eAnomie\u003c\/a\u003e mentioned this in \u003ca href=\"\/T140114\" class=\"phui-handle handle-status-closed\" data-sigil=\"hovercard\" data-meta=\"0_47\"\u003eT140114: PluggableAuth::login should call $user->setCookies()\u003c\/a\u003e.\u003cspan class=\"phui-timeline-extra\"\u003e\u003ca href=\"#2453873\" data-sigil=\"has-tooltip\" data-meta=\"0_160\"\u003e\u003cspan class=\"screen-only\"\u003eJul 12 2016, 4:22 PM\u003c\/span\u003e\u003cspan class=\"print-only\" aria-hidden=\"true\"\u003e2016-07-12 16:22:20 (UTC+0)\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-spacer\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-shell phui-timeline-green\" data-sigil=\"transaction anchor-container\" data-meta=\"0_165\"\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-minor-event\"\u003e\u003cdiv class=\"phui-timeline-content\"\u003e\u003ca style=\"background-image: url(https:\/\/phab.wmfusercontent.org\/file\/data\/we4zgdzwslz3xt5z2l65\/PHID-FILE-dsbawu5kzuffjgi4th4h\/profile)\" class=\"visual-only phui-timeline-image\" href=\"\/p\/cicalese\/\" aria-hidden=\"true\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-wedge\" style=\"\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-group\"\u003e\u003ca name=\"2453898\" id=\"2453898\" class=\"phabricator-anchor-view\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-title phui-timeline-title-with-icon\"\u003e\u003cspan class=\"phui-timeline-icon-fill fill-has-color phui-timeline-icon-fill-green\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-user phui-timeline-icon\" data-meta=\"0_164\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003ca href=\"\/p\/cicalese\/\" class=\"phui-handle phui-link-person\" data-sigil=\"hovercard\" data-meta=\"0_48\"\u003ecicalese\u003c\/a\u003e claimed this task.\u003cspan class=\"phui-timeline-extra\"\u003e\u003ca href=\"#2453898\" data-sigil=\"has-tooltip\" data-meta=\"0_163\"\u003e\u003cspan class=\"screen-only\"\u003eJul 12 2016, 4:25 PM\u003c\/span\u003e\u003cspan class=\"print-only\" aria-hidden=\"true\"\u003e2016-07-12 16:25:52 (UTC+0)\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-spacer\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-shell\" data-sigil=\"transaction anchor-container\" data-meta=\"0_174\"\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-major-event\"\u003e\u003cdiv class=\"phui-timeline-content\"\u003e\u003ca style=\"background-image: url(https:\/\/phab.wmfusercontent.org\/file\/data\/we4zgdzwslz3xt5z2l65\/PHID-FILE-dsbawu5kzuffjgi4th4h\/profile)\" class=\"visual-only phui-timeline-image\" href=\"\/p\/cicalese\/\" aria-hidden=\"true\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-wedge\" style=\"\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-group\"\u003e\u003cdiv class=\"phui-timeline-inner-content\"\u003e\u003ca name=\"2464202\" id=\"2464202\" class=\"phabricator-anchor-view\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-title phui-timeline-title-with-icon phui-timeline-title-with-menu\"\u003e\u003cspan class=\"phui-timeline-icon-fill\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-comment phui-timeline-icon\" data-meta=\"0_173\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003ca href=\"\/p\/cicalese\/\" class=\"phui-handle phui-link-person\" data-sigil=\"hovercard\" data-meta=\"0_49\"\u003ecicalese\u003c\/a\u003e added a comment.\u003cspan class=\"phui-timeline-extra\"\u003e\u003ca href=\"#2464202\" data-sigil=\"has-tooltip\" data-meta=\"0_172\"\u003e\u003cspan class=\"screen-only\"\u003eJul 14 2016, 9:35 PM\u003c\/span\u003e\u003cspan class=\"print-only\" aria-hidden=\"true\"\u003e2016-07-14 21:35:51 (UTC+0)\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/div\u003e\u003ca href=\"#\" class=\"phui-timeline-menu\" aria-haspopup=\"true\" aria-expanded=\"false\" data-sigil=\"phui-dropdown-menu\" data-meta=\"0_170\"\u003e\u003cspan class=\"aural-only\"\u003eComment Actions\u003c\/span\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-caret-down\" data-meta=\"0_171\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-core-content\"\u003e\u003cspan class=\"transaction-comment\" data-sigil=\"transaction-comment\" data-meta=\"0_50\"\u003e\u003cdiv class=\"phabricator-remarkup\"\u003e\u003cp\u003e\u003ca href=\"\/p\/Anomie\/\" class=\"phui-tag-view phui-tag-type-person \" data-sigil=\"hovercard\" data-meta=\"0_5\"\u003e\u003cspan class=\"phui-tag-core phui-tag-color-person\"\u003e@Anomie\u003c\/span\u003e\u003c\/a\u003e , I'm working on this task and am having a session management issue.\u003c\/p\u003e\n\n\u003cp\u003eAs a first step, I have converted PluggableAuth to the new SessionManager approach following the guidance at \u003ca href=\"https:\/\/www.mediawiki.org\/wiki\/Manual:SessionManager_and_AuthManager\/Updating_tips\" class=\"remarkup-link\" target=\"_blank\" rel=\"noreferrer\"\u003ehttps:\/\/www.mediawiki.org\/wiki\/Manual:SessionManager_and_AuthManager\/Updating_tips\u003c\/a\u003e. I have not yet converted to PluggableAuth to use AuthManager.\u003c\/p\u003e\n\n\u003cp\u003eI tested the new SessionManager version of PluggableAuth with the existing versions of OpenIDConnect and SimpleSAMLphp. (The session management code is all encapsulated in PluggableAuth.) OpenIDConnect is working with the new SessionManager version of PluggableAuth - yay! However SimpleSAMLphp is having a session issue. The issue is as described at \u003ca href=\"https:\/\/simplesamlphp.org\/docs\/development\/simplesamlphp-nostate\" class=\"remarkup-link\" target=\"_blank\" rel=\"noreferrer\"\u003ehttps:\/\/simplesamlphp.org\/docs\/development\/simplesamlphp-nostate\u003c\/a\u003e. I had a similar problem with the earlier version of SimpleSAMLphp that was fixed with the following:\u003c\/p\u003e\n\n\u003cp\u003e$GLOBALS['wgSessionName'] = ini_get( 'session.name' );\u003c\/p\u003e\n\n\u003cp\u003eIs there an equivalent version of this approach that will work with the new SessionManager? That code does not help, so I am assuming it is not compatible with SessionManager.\u003c\/p\u003e\n\n\u003cp\u003eThanks in advance for any help!\u003c\/p\u003e\u003c\/div\u003e\u003c\/span\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-spacer\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-shell\" data-sigil=\"transaction anchor-container\" data-meta=\"0_183\"\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-major-event\"\u003e\u003cdiv class=\"phui-timeline-content\"\u003e\u003ca style=\"background-image: url(https:\/\/phab.wmfusercontent.org\/file\/data\/6vn6slgby7ia62ouikut\/PHID-FILE-ay56qvafgaxajuctgtw3\/profile)\" class=\"visual-only phui-timeline-image\" href=\"\/p\/gerritbot\/\" aria-hidden=\"true\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-wedge\" style=\"\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-group\"\u003e\u003cdiv class=\"phui-timeline-inner-content\"\u003e\u003ca name=\"2465085\" id=\"2465085\" class=\"phabricator-anchor-view\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-title phui-timeline-title-with-icon phui-timeline-title-with-menu\"\u003e\u003cspan class=\"phui-timeline-icon-fill\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-user-plus phui-timeline-icon\" data-meta=\"0_182\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003ca href=\"\/p\/gerritbot\/\" class=\"phui-handle phui-link-person\" data-sigil=\"hovercard\" data-meta=\"0_52\"\u003egerritbot\u003c\/a\u003e subscribed.\u003cspan class=\"phui-timeline-extra\"\u003e\u003ca href=\"#2465085\" data-sigil=\"has-tooltip\" data-meta=\"0_181\"\u003e\u003cspan class=\"screen-only\"\u003eJul 15 2016, 3:01 AM\u003c\/span\u003e\u003cspan class=\"print-only\" aria-hidden=\"true\"\u003e2016-07-15 03:01:54 (UTC+0)\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/div\u003e\u003ca href=\"#\" class=\"phui-timeline-menu\" aria-haspopup=\"true\" aria-expanded=\"false\" data-sigil=\"phui-dropdown-menu\" data-meta=\"0_179\"\u003e\u003cspan class=\"aural-only\"\u003eComment Actions\u003c\/span\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-caret-down\" data-meta=\"0_180\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-core-content\"\u003e\u003cspan class=\"transaction-comment\" data-sigil=\"transaction-comment\" data-meta=\"0_51\"\u003e\u003cdiv class=\"phabricator-remarkup\"\u003e\u003cp\u003eChange 299107 had a related patch set uploaded (by Cicalese):\u003cbr \/\u003e\nConvert to MW 1.27 SessionManager\u003c\/p\u003e\n\n\u003cp\u003e\u003ca href=\"https:\/\/gerrit.wikimedia.org\/r\/299107\" class=\"remarkup-link\" target=\"_blank\" rel=\"noreferrer\"\u003ehttps:\/\/gerrit.wikimedia.org\/r\/299107\u003c\/a\u003e\u003c\/p\u003e\u003c\/div\u003e\u003c\/span\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-spacer\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-shell\" data-sigil=\"transaction anchor-container\" data-meta=\"0_186\"\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-minor-event\"\u003e\u003cdiv class=\"phui-timeline-content\"\u003e\u003ca style=\"background-image: url(https:\/\/phab.wmfusercontent.org\/file\/data\/6vn6slgby7ia62ouikut\/PHID-FILE-ay56qvafgaxajuctgtw3\/profile)\" class=\"visual-only phui-timeline-image\" href=\"\/p\/gerritbot\/\" aria-hidden=\"true\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-wedge\" style=\"\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-group\"\u003e\u003ca name=\"2465086\" id=\"2465086\" class=\"phabricator-anchor-view\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-title phui-timeline-title-with-icon\"\u003e\u003cspan class=\"phui-timeline-icon-fill\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-link phui-timeline-icon\" data-meta=\"0_185\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003ca href=\"\/p\/gerritbot\/\" class=\"phui-handle phui-link-person\" data-sigil=\"hovercard\" data-meta=\"0_53\"\u003egerritbot\u003c\/a\u003e added a project: \u003ca href=\"\/tag\/patch-for-review\/\" class=\"phui-handle\" data-sigil=\"hovercard\" data-meta=\"0_54\"\u003ePatch-For-Review\u003c\/a\u003e.\u003cspan class=\"phui-timeline-extra\"\u003e\u003ca href=\"#2465086\" data-sigil=\"has-tooltip\" data-meta=\"0_184\"\u003e\u003cspan class=\"screen-only\"\u003eJul 15 2016, 3:01 AM\u003c\/span\u003e\u003cspan class=\"print-only\" aria-hidden=\"true\"\u003e2016-07-15 03:01:55 (UTC+0)\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-spacer\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-shell\" data-sigil=\"transaction anchor-container\" data-meta=\"0_197\"\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-major-event\"\u003e\u003cdiv class=\"phui-timeline-content\"\u003e\u003ca style=\"background-image: url(https:\/\/phab.wmfusercontent.org\/file\/data\/ms665yc73j6nadjitytk\/PHID-FILE-mocohumlrcbe2lcuplml\/profile)\" class=\"visual-only phui-timeline-image\" href=\"\/p\/Anomie\/\" aria-hidden=\"true\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-badges\"\u003e\u003cul class=\"phui-badge-flex-view grouped flex-view-collapsed \"\u003e\u003cli class=\"phui-badge-flex-item\"\u003e\u003ca class=\"phui-badge-mini phui-badge-mini-orange \" href=\"\/badges\/view\/5\/\" data-sigil=\"has-tooltip\" data-meta=\"0_195\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-rocket\" data-meta=\"0_196\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/a\u003e\u003c\/li\u003e\u003c\/ul\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-wedge\" style=\"\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-group\"\u003e\u003cdiv class=\"phui-timeline-inner-content\"\u003e\u003ca name=\"2466384\" id=\"2466384\" class=\"phabricator-anchor-view\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-title phui-timeline-title-with-icon phui-timeline-title-with-menu\"\u003e\u003cspan class=\"phui-timeline-icon-fill\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-comment phui-timeline-icon\" data-meta=\"0_194\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003ca href=\"\/p\/Anomie\/\" class=\"phui-handle phui-link-person\" data-sigil=\"hovercard\" data-meta=\"0_55\"\u003eAnomie\u003c\/a\u003e added a comment.\u003cspan class=\"phui-timeline-extra\"\u003e\u003ca href=\"#2466384\" data-sigil=\"has-tooltip\" data-meta=\"0_193\"\u003e\u003cspan class=\"screen-only\"\u003eJul 15 2016, 4:55 PM\u003c\/span\u003e\u003cspan class=\"print-only\" aria-hidden=\"true\"\u003e2016-07-15 16:55:16 (UTC+0)\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/div\u003e\u003ca href=\"#\" class=\"phui-timeline-menu\" aria-haspopup=\"true\" aria-expanded=\"false\" data-sigil=\"phui-dropdown-menu\" data-meta=\"0_191\"\u003e\u003cspan class=\"aural-only\"\u003eComment Actions\u003c\/span\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-caret-down\" data-meta=\"0_192\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-core-content\"\u003e\u003cspan class=\"transaction-comment\" data-sigil=\"transaction-comment\" data-meta=\"0_56\"\u003e\u003cdiv class=\"phabricator-remarkup\"\u003e\u003cp\u003eThat sounds like it's more specifically \u003ca href=\"https:\/\/simplesamlphp.org\/docs\/development\/simplesamlphp-nostate#section_3_1_2\" class=\"remarkup-link\" target=\"_blank\" rel=\"noreferrer\"\u003ehttps:\/\/simplesamlphp.org\/docs\/development\/simplesamlphp-nostate#section_3_1_2\u003c\/a\u003e. SessionManager doesn't use PHP's session storage, so whatever it does is unlikely to work reliably.\u003c\/p\u003e\n\n\u003cp\u003eProbably the most likely thing to do would be to write a custom storage module for simplesamlphp that uses MediaWiki's Session as a backend. I have no idea if this'll work, but it might be as simple as\u003c\/p\u003e\n\n\u003cdiv class=\"remarkup-code-block\" data-code-lang=\"php\" data-sigil=\"remarkup-code-block\"\u003e\u003cpre class=\"remarkup-code\"\u003e\u003cspan class=\"k\"\u003eclass\u003c\/span\u003e \u003cspan class=\"no\"\u003esspmod_mw_Store_Store\u003c\/span\u003e \u003cspan class=\"k\"\u003eextends\u003c\/span\u003e \u003cspan class=\"nc\" data-symbol-name=\"SimpleSAML_Store\"\u003eSimpleSAML_Store\u003c\/span\u003e \u003cspan class=\"o\"\u003e{\u003c\/span\u003e\n \u003cspan class=\"k\"\u003eprivate\u003c\/span\u003e \u003cspan class=\"k\"\u003efunction\u003c\/span\u003e \u003cspan class=\"no\"\u003egetSession\u003c\/span\u003e\u003cspan class=\"o\"\u003e()\u003c\/span\u003e \u003cspan class=\"o\"\u003e{\u003c\/span\u003e\n \u003cspan class=\"k\"\u003ereturn\u003c\/span\u003e \u003cspan class=\"nc\" data-symbol-name=\"MediaWiki\\Session\\SessionManager\"\u003eMediaWiki\\Session\\SessionManager\u003c\/span\u003e\u003cspan class=\"o\"\u003e::\u003c\/span\u003e\u003cspan class=\"nf\" data-symbol-context=\"MediaWiki\\Session\\SessionManager\" data-symbol-name=\"getGlobalSession\"\u003egetGlobalSession\u003c\/span\u003e\u003cspan class=\"o\"\u003e();\u003c\/span\u003e\n \u003cspan class=\"o\"\u003e}\u003c\/span\u003e\n\n \u003cspan class=\"k\"\u003eprivate\u003c\/span\u003e \u003cspan class=\"k\"\u003efunction\u003c\/span\u003e \u003cspan class=\"no\"\u003emakeKey\u003c\/span\u003e\u003cspan class=\"o\"\u003e(\u003c\/span\u003e \u003cspan class=\"nv\"\u003e$type\u003c\/span\u003e\u003cspan class=\"o\"\u003e,\u003c\/span\u003e \u003cspan class=\"nv\"\u003e$key\u003c\/span\u003e \u003cspan class=\"o\"\u003e)\u003c\/span\u003e \u003cspan class=\"o\"\u003e{\u003c\/span\u003e\n \u003cspan class=\"k\"\u003ereturn\u003c\/span\u003e \u003cspan class=\"s2\"\u003e"SimpleSAML:$type:$key"\u003c\/span\u003e\u003cspan class=\"o\"\u003e;\u003c\/span\u003e\n \u003cspan class=\"o\"\u003e}\u003c\/span\u003e\n\n \u003cspan class=\"k\"\u003epublic\u003c\/span\u003e \u003cspan class=\"k\"\u003efunction\u003c\/span\u003e \u003cspan class=\"no\"\u003eget\u003c\/span\u003e\u003cspan class=\"o\"\u003e(\u003c\/span\u003e \u003cspan class=\"nv\"\u003e$type\u003c\/span\u003e\u003cspan class=\"o\"\u003e,\u003c\/span\u003e \u003cspan class=\"nv\"\u003e$key\u003c\/span\u003e \u003cspan class=\"o\"\u003e)\u003c\/span\u003e \u003cspan class=\"o\"\u003e{\u003c\/span\u003e\n \u003cspan class=\"nv\"\u003e$skey\u003c\/span\u003e \u003cspan class=\"o\"\u003e=\u003c\/span\u003e \u003cspan class=\"nv\"\u003e$this\u003c\/span\u003e\u003cspan class=\"o\"\u003e->\u003c\/span\u003e\u003cspan class=\"na\" data-symbol-name=\"makeKey\"\u003emakeKey\u003c\/span\u003e\u003cspan class=\"o\"\u003e(\u003c\/span\u003e \u003cspan class=\"nv\"\u003e$type\u003c\/span\u003e\u003cspan class=\"o\"\u003e,\u003c\/span\u003e \u003cspan class=\"nv\"\u003e$key\u003c\/span\u003e \u003cspan class=\"o\"\u003e);\u003c\/span\u003e\n \u003cspan class=\"k\"\u003elist\u003c\/span\u003e\u003cspan class=\"o\"\u003e(\u003c\/span\u003e \u003cspan class=\"nv\"\u003e$value\u003c\/span\u003e\u003cspan class=\"o\"\u003e,\u003c\/span\u003e \u003cspan class=\"nv\"\u003e$expires\u003c\/span\u003e \u003cspan class=\"o\"\u003e)\u003c\/span\u003e \u003cspan class=\"o\"\u003e=\u003c\/span\u003e \u003cspan class=\"nv\"\u003e$this\u003c\/span\u003e\u003cspan class=\"o\"\u003e->\u003c\/span\u003e\u003cspan class=\"na\" data-symbol-name=\"getSession\"\u003egetSession\u003c\/span\u003e\u003cspan class=\"o\"\u003e()->\u003c\/span\u003e\u003cspan class=\"na\" data-symbol-name=\"get\"\u003eget\u003c\/span\u003e\u003cspan class=\"o\"\u003e(\u003c\/span\u003e \u003cspan class=\"nv\"\u003e$skey\u003c\/span\u003e \u003cspan class=\"o\"\u003e);\u003c\/span\u003e\n \u003cspan class=\"k\"\u003eif\u003c\/span\u003e \u003cspan class=\"o\"\u003e(\u003c\/span\u003e \u003cspan class=\"nv\"\u003e$expires\u003c\/span\u003e \u003cspan class=\"o\"\u003e!==\u003c\/span\u003e \u003cspan class=\"kc\"\u003enull\u003c\/span\u003e \u003cspan class=\"o\"\u003e&&\u003c\/span\u003e \u003cspan class=\"nv\"\u003e$expires\u003c\/span\u003e \u003cspan class=\"o\"\u003e<=\u003c\/span\u003e \u003cspan class=\"nf\" data-symbol-name=\"time\"\u003etime\u003c\/span\u003e\u003cspan class=\"o\"\u003e()\u003c\/span\u003e \u003cspan class=\"o\"\u003e)\u003c\/span\u003e \u003cspan class=\"o\"\u003e{\u003c\/span\u003e\n \u003cspan class=\"nv\"\u003e$this\u003c\/span\u003e\u003cspan class=\"o\"\u003e->\u003c\/span\u003e\u003cspan class=\"na\" data-symbol-name=\"delete\"\u003edelete\u003c\/span\u003e\u003cspan class=\"o\"\u003e(\u003c\/span\u003e \u003cspan class=\"nv\"\u003e$type\u003c\/span\u003e\u003cspan class=\"o\"\u003e,\u003c\/span\u003e \u003cspan class=\"nv\"\u003e$key\u003c\/span\u003e \u003cspan class=\"o\"\u003e);\u003c\/span\u003e\n \u003cspan class=\"k\"\u003ereturn\u003c\/span\u003e \u003cspan class=\"kc\"\u003enull\u003c\/span\u003e\u003cspan class=\"o\"\u003e;\u003c\/span\u003e\n \u003cspan class=\"o\"\u003e}\u003c\/span\u003e\n \u003cspan class=\"k\"\u003ereturn\u003c\/span\u003e \u003cspan class=\"nv\"\u003e$value\u003c\/span\u003e\u003cspan class=\"o\"\u003e;\u003c\/span\u003e\n \u003cspan class=\"o\"\u003e}\u003c\/span\u003e\n\n \u003cspan class=\"k\"\u003epublic\u003c\/span\u003e \u003cspan class=\"k\"\u003efunction\u003c\/span\u003e \u003cspan class=\"no\"\u003eset\u003c\/span\u003e\u003cspan class=\"o\"\u003e(\u003c\/span\u003e \u003cspan class=\"nv\"\u003e$type\u003c\/span\u003e\u003cspan class=\"o\"\u003e,\u003c\/span\u003e \u003cspan class=\"nv\"\u003e$key\u003c\/span\u003e\u003cspan class=\"o\"\u003e,\u003c\/span\u003e \u003cspan class=\"nv\"\u003e$value\u003c\/span\u003e\u003cspan class=\"o\"\u003e,\u003c\/span\u003e \u003cspan class=\"nv\"\u003e$expire\u003c\/span\u003e \u003cspan class=\"o\"\u003e=\u003c\/span\u003e \u003cspan class=\"kc\"\u003enull\u003c\/span\u003e \u003cspan class=\"o\"\u003e)\u003c\/span\u003e \u003cspan class=\"o\"\u003e{\u003c\/span\u003e\n \u003cspan class=\"nv\"\u003e$skey\u003c\/span\u003e \u003cspan class=\"o\"\u003e=\u003c\/span\u003e \u003cspan class=\"nv\"\u003e$this\u003c\/span\u003e\u003cspan class=\"o\"\u003e->\u003c\/span\u003e\u003cspan class=\"na\" data-symbol-name=\"makeKey\"\u003emakeKey\u003c\/span\u003e\u003cspan class=\"o\"\u003e(\u003c\/span\u003e \u003cspan class=\"nv\"\u003e$type\u003c\/span\u003e\u003cspan class=\"o\"\u003e,\u003c\/span\u003e \u003cspan class=\"nv\"\u003e$key\u003c\/span\u003e \u003cspan class=\"o\"\u003e);\u003c\/span\u003e\n \u003cspan class=\"nv\"\u003e$this\u003c\/span\u003e\u003cspan class=\"o\"\u003e->\u003c\/span\u003e\u003cspan class=\"na\" data-symbol-name=\"getSession\"\u003egetSession\u003c\/span\u003e\u003cspan class=\"o\"\u003e()->\u003c\/span\u003e\u003cspan class=\"na\" data-symbol-name=\"set\"\u003eset\u003c\/span\u003e\u003cspan class=\"o\"\u003e(\u003c\/span\u003e \u003cspan class=\"nv\"\u003e$skey\u003c\/span\u003e\u003cspan class=\"o\"\u003e,\u003c\/span\u003e \u003cspan class=\"o\"\u003e[\u003c\/span\u003e \u003cspan class=\"nv\"\u003e$value\u003c\/span\u003e\u003cspan class=\"o\"\u003e,\u003c\/span\u003e \u003cspan class=\"nv\"\u003e$expire\u003c\/span\u003e \u003cspan class=\"o\"\u003e]\u003c\/span\u003e \u003cspan class=\"o\"\u003e);\u003c\/span\u003e\n \u003cspan class=\"o\"\u003e}\u003c\/span\u003e\n\n \u003cspan class=\"k\"\u003epublic\u003c\/span\u003e \u003cspan class=\"k\"\u003efunction\u003c\/span\u003e \u003cspan class=\"no\"\u003edelete\u003c\/span\u003e\u003cspan class=\"o\"\u003e(\u003c\/span\u003e \u003cspan class=\"nv\"\u003e$type\u003c\/span\u003e\u003cspan class=\"o\"\u003e,\u003c\/span\u003e \u003cspan class=\"nv\"\u003e$key\u003c\/span\u003e \u003cspan class=\"o\"\u003e)\u003c\/span\u003e \u003cspan class=\"o\"\u003e{\u003c\/span\u003e\n \u003cspan class=\"nv\"\u003e$skey\u003c\/span\u003e \u003cspan class=\"o\"\u003e=\u003c\/span\u003e \u003cspan class=\"nv\"\u003e$this\u003c\/span\u003e\u003cspan class=\"o\"\u003e->\u003c\/span\u003e\u003cspan class=\"na\" data-symbol-name=\"makeKey\"\u003emakeKey\u003c\/span\u003e\u003cspan class=\"o\"\u003e(\u003c\/span\u003e \u003cspan class=\"nv\"\u003e$type\u003c\/span\u003e\u003cspan class=\"o\"\u003e,\u003c\/span\u003e \u003cspan class=\"nv\"\u003e$key\u003c\/span\u003e \u003cspan class=\"o\"\u003e);\u003c\/span\u003e\n \u003cspan class=\"nv\"\u003e$this\u003c\/span\u003e\u003cspan class=\"o\"\u003e->\u003c\/span\u003e\u003cspan class=\"na\" data-symbol-name=\"getSession\"\u003egetSession\u003c\/span\u003e\u003cspan class=\"o\"\u003e()->\u003c\/span\u003e\u003cspan class=\"na\" data-symbol-name=\"remove\"\u003eremove\u003c\/span\u003e\u003cspan class=\"o\"\u003e(\u003c\/span\u003e \u003cspan class=\"nv\"\u003e$skey\u003c\/span\u003e \u003cspan class=\"o\"\u003e);\u003c\/span\u003e\n \u003cspan class=\"o\"\u003e}\u003c\/span\u003e\n\u003cspan class=\"o\"\u003e}\u003c\/span\u003e\u003c\/pre\u003e\u003c\/div\u003e\n\n\u003cp\u003ethen configure simplesamlphp with \u003ctt class=\"remarkup-monospaced\"\u003e'store.type' => 'mw:Store'\u003c\/tt\u003e.\u003c\/p\u003e\u003c\/div\u003e\u003c\/span\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-spacer\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-shell\" data-sigil=\"transaction anchor-container\" data-meta=\"0_206\"\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-major-event\"\u003e\u003cdiv class=\"phui-timeline-content\"\u003e\u003ca style=\"background-image: url(https:\/\/phab.wmfusercontent.org\/file\/data\/we4zgdzwslz3xt5z2l65\/PHID-FILE-dsbawu5kzuffjgi4th4h\/profile)\" class=\"visual-only phui-timeline-image\" href=\"\/p\/cicalese\/\" aria-hidden=\"true\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-wedge\" style=\"\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-group\"\u003e\u003cdiv class=\"phui-timeline-inner-content\"\u003e\u003ca name=\"2466417\" id=\"2466417\" class=\"phabricator-anchor-view\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-title phui-timeline-title-with-icon phui-timeline-title-with-menu\"\u003e\u003cspan class=\"phui-timeline-icon-fill\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-comment phui-timeline-icon\" data-meta=\"0_205\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003ca href=\"\/p\/cicalese\/\" class=\"phui-handle phui-link-person\" data-sigil=\"hovercard\" data-meta=\"0_57\"\u003ecicalese\u003c\/a\u003e added a comment.\u003cspan class=\"phui-timeline-extra\"\u003e\u003ca href=\"#2466417\" data-sigil=\"has-tooltip\" data-meta=\"0_204\"\u003e\u003cspan class=\"screen-only\"\u003eJul 15 2016, 5:17 PM\u003c\/span\u003e\u003cspan class=\"print-only\" aria-hidden=\"true\"\u003e2016-07-15 17:17:05 (UTC+0)\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/div\u003e\u003ca href=\"#\" class=\"phui-timeline-menu\" aria-haspopup=\"true\" aria-expanded=\"false\" data-sigil=\"phui-dropdown-menu\" data-meta=\"0_202\"\u003e\u003cspan class=\"aural-only\"\u003eComment Actions\u003c\/span\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-caret-down\" data-meta=\"0_203\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-core-content\"\u003e\u003cspan class=\"transaction-comment\" data-sigil=\"transaction-comment\" data-meta=\"0_58\"\u003e\u003cdiv class=\"phabricator-remarkup\"\u003e\u003cp\u003eThanks! I'll give that a try.\u003c\/p\u003e\u003c\/div\u003e\u003c\/span\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-spacer\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-shell\" data-sigil=\"transaction anchor-container\" data-meta=\"0_215\"\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-major-event\"\u003e\u003cdiv class=\"phui-timeline-content\"\u003e\u003ca style=\"background-image: url(https:\/\/phab.wmfusercontent.org\/file\/data\/we4zgdzwslz3xt5z2l65\/PHID-FILE-dsbawu5kzuffjgi4th4h\/profile)\" class=\"visual-only phui-timeline-image\" href=\"\/p\/cicalese\/\" aria-hidden=\"true\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-wedge\" style=\"\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-group\"\u003e\u003cdiv class=\"phui-timeline-inner-content\"\u003e\u003ca name=\"2571565\" id=\"2571565\" class=\"phabricator-anchor-view\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-title phui-timeline-title-with-icon phui-timeline-title-with-menu\"\u003e\u003cspan class=\"phui-timeline-icon-fill\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-comment phui-timeline-icon\" data-meta=\"0_214\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003ca href=\"\/p\/cicalese\/\" class=\"phui-handle phui-link-person\" data-sigil=\"hovercard\" data-meta=\"0_59\"\u003ecicalese\u003c\/a\u003e added a comment.\u003cspan class=\"phui-timeline-extra\"\u003e\u003ca href=\"#2571565\" data-sigil=\"has-tooltip\" data-meta=\"0_213\"\u003e\u003cspan class=\"screen-only\"\u003eAug 22 2016, 2:15 PM\u003c\/span\u003e\u003cspan class=\"print-only\" aria-hidden=\"true\"\u003e2016-08-22 14:15:53 (UTC+0)\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/div\u003e\u003ca href=\"#\" class=\"phui-timeline-menu\" aria-haspopup=\"true\" aria-expanded=\"false\" data-sigil=\"phui-dropdown-menu\" data-meta=\"0_211\"\u003e\u003cspan class=\"aural-only\"\u003eComment Actions\u003c\/span\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-caret-down\" data-meta=\"0_212\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-core-content\"\u003e\u003cspan class=\"transaction-comment\" data-sigil=\"transaction-comment\" data-meta=\"0_60\"\u003e\u003cdiv class=\"phabricator-remarkup\"\u003e\u003cp\u003e\u003ca href=\"\/p\/Anomie\/\" class=\"phui-tag-view phui-tag-type-person \" data-sigil=\"hovercard\" data-meta=\"0_6\"\u003e\u003cspan class=\"phui-tag-core phui-tag-color-person\"\u003e@Anomie\u003c\/span\u003e\u003c\/a\u003e, I finally had a chance to get back to this to try your suggestion. The good news is that I was able to add the module you suggested to SimpleSAMLphp and have it be invoked. The bad news is that I'm still having session issues. I'm guessing that I'm not correctly initializing the MediaWiki code.\u003c\/p\u003e\n\n\u003cp\u003eThe initial problem was that the MediaWiki classes were not recognized in the getSession() function above. I took a stab in the dark and, before the class definition, included WebStart.php and LocalSettings.php after setting MW_INSTALL_PATH in the environment to resolve the "not found" errors. It is now able to get the global session and invoke the get\/set functions, but I'm still getting a NO STATE error when attempting to authenticate.\u003c\/p\u003e\n\n\u003cp\u003eTo isolate just the session interaction, I am using the SimpleSAMLphp "test authentication" entry point (https:\/\/<host>\/simplesaml\/module.php\/core\/authenticate.php). I test with 'store.type' => 'phpsession', and it works fine. I then swap that for 'store.type' => 'mw:Store' and make no other changes and get the NO STATE error.\u003c\/p\u003e\n\n\u003cp\u003eDo you have any suggestions for what the correct bits of MediaWiki are that I need to correctly initialize the session management code?\u003c\/p\u003e\n\n\u003cp\u003eThanks!\u003c\/p\u003e\n\n\u003cp\u003eCindy\u003c\/p\u003e\u003c\/div\u003e\u003c\/span\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-spacer\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-shell\" data-sigil=\"transaction anchor-container\" data-meta=\"0_224\"\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-major-event\"\u003e\u003cdiv class=\"phui-timeline-content\"\u003e\u003ca style=\"background-image: url(https:\/\/phab.wmfusercontent.org\/file\/data\/woaup5gfhgyt3xpvwi4f\/PHID-FILE-xcnwlpurjz3rsuiv56td\/profile)\" class=\"visual-only phui-timeline-image\" href=\"\/p\/Tgr\/\" aria-hidden=\"true\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-wedge\" style=\"\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-group\"\u003e\u003cdiv class=\"phui-timeline-inner-content\"\u003e\u003ca name=\"2572589\" id=\"2572589\" class=\"phabricator-anchor-view\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-title phui-timeline-title-with-icon phui-timeline-title-with-menu\"\u003e\u003cspan class=\"phui-timeline-icon-fill\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-comment phui-timeline-icon\" data-meta=\"0_223\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003ca href=\"\/p\/Tgr\/\" class=\"phui-handle phui-link-person\" data-sigil=\"hovercard\" data-meta=\"0_61\"\u003eTgr\u003c\/a\u003e added a comment.\u003cspan class=\"phui-timeline-extra\"\u003e\u003ca href=\"#2572589\" data-sigil=\"has-tooltip\" data-meta=\"0_222\"\u003e\u003cspan class=\"screen-only\"\u003eAug 22 2016, 6:06 PM\u003c\/span\u003e\u003cspan class=\"print-only\" aria-hidden=\"true\"\u003e2016-08-22 18:06:10 (UTC+0)\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/div\u003e\u003ca href=\"#\" class=\"phui-timeline-menu\" aria-haspopup=\"true\" aria-expanded=\"false\" data-sigil=\"phui-dropdown-menu\" data-meta=\"0_220\"\u003e\u003cspan class=\"aural-only\"\u003eComment Actions\u003c\/span\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-caret-down\" data-meta=\"0_221\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-core-content\"\u003e\u003cspan class=\"transaction-comment\" data-sigil=\"transaction-comment\" data-meta=\"0_62\"\u003e\u003cdiv class=\"phabricator-remarkup\"\u003e\u003cp\u003eAre you trying to use MediaWiki classes outside of MediaWiki? That sounds scary. Can you just use a proper MW special page for whatever SimpleSAML needs to do?\u003c\/p\u003e\u003c\/div\u003e\u003c\/span\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-spacer\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-shell\" data-sigil=\"transaction anchor-container\" data-meta=\"0_235\"\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-major-event\"\u003e\u003cdiv class=\"phui-timeline-content\"\u003e\u003ca style=\"background-image: url(https:\/\/phab.wmfusercontent.org\/file\/data\/ms665yc73j6nadjitytk\/PHID-FILE-mocohumlrcbe2lcuplml\/profile)\" class=\"visual-only phui-timeline-image\" href=\"\/p\/Anomie\/\" aria-hidden=\"true\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-badges\"\u003e\u003cul class=\"phui-badge-flex-view grouped flex-view-collapsed \"\u003e\u003cli class=\"phui-badge-flex-item\"\u003e\u003ca class=\"phui-badge-mini phui-badge-mini-orange \" href=\"\/badges\/view\/5\/\" data-sigil=\"has-tooltip\" data-meta=\"0_233\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-rocket\" data-meta=\"0_234\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/a\u003e\u003c\/li\u003e\u003c\/ul\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-wedge\" style=\"\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-group\"\u003e\u003cdiv class=\"phui-timeline-inner-content\"\u003e\u003ca name=\"2572745\" id=\"2572745\" class=\"phabricator-anchor-view\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-title phui-timeline-title-with-icon phui-timeline-title-with-menu\"\u003e\u003cspan class=\"phui-timeline-icon-fill\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-comment phui-timeline-icon\" data-meta=\"0_232\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003ca href=\"\/p\/Anomie\/\" class=\"phui-handle phui-link-person\" data-sigil=\"hovercard\" data-meta=\"0_63\"\u003eAnomie\u003c\/a\u003e added a comment.\u003cspan class=\"phui-timeline-extra\"\u003e\u003ca href=\"#2572745\" data-sigil=\"has-tooltip\" data-meta=\"0_231\"\u003e\u003cspan class=\"screen-only\"\u003eAug 22 2016, 6:18 PM\u003c\/span\u003e\u003cspan class=\"print-only\" aria-hidden=\"true\"\u003e2016-08-22 18:18:12 (UTC+0)\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/div\u003e\u003ca href=\"#\" class=\"phui-timeline-menu\" aria-haspopup=\"true\" aria-expanded=\"false\" data-sigil=\"phui-dropdown-menu\" data-meta=\"0_229\"\u003e\u003cspan class=\"aural-only\"\u003eComment Actions\u003c\/span\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-caret-down\" data-meta=\"0_230\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-core-content\"\u003e\u003cspan class=\"transaction-comment\" data-sigil=\"transaction-comment\" data-meta=\"0_64\"\u003e\u003cdiv class=\"phabricator-remarkup\"\u003e\u003cp\u003eWhen you make your HTTP requests, are SessionManager's cookies getting set properly and returned properly on the subsequent requests? Can you set up \u003ca href=\"https:\/\/www.mediawiki.org\/wiki\/Manual:How_to_debug#Logging\" class=\"remarkup-link\" target=\"_blank\" rel=\"noreferrer\"\u003eMediaWiki's logging\u003c\/a\u003e and see what's being logged to at least the 'session' and 'cookie' channels?\u003c\/p\u003e\n\n\u003cp\u003ePossible pitfalls include:\u003c\/p\u003e\n\n\u003cul class=\"remarkup-list\"\u003e\n\u003cli class=\"remarkup-list-item\"\u003eYou somehow don't have a real WebResponse for SessionManager to set its cookies on, although that seems unlikely.\u003c\/li\u003e\n\u003cli class=\"remarkup-list-item\"\u003eNothing is calling \u003ctt class=\"remarkup-monospaced\"\u003e$session->persist()\u003c\/tt\u003e. I see my code in \u003ca href=\"\/T110464#2466384\" class=\"phui-tag-view phui-tag-type-object \" data-sigil=\"hovercard\" data-meta=\"0_7\"\u003e\u003cspan class=\"phui-tag-core-closed\"\u003e\u003cspan class=\"phui-tag-core phui-tag-color-object\"\u003eT110464#2466384\u003c\/span\u003e\u003c\/span\u003e\u003c\/a\u003e overlooked it, you'll probably want to add a call to it somewhere in there. Maybe in set() and delete(), or maybe just put it in getSession().\u003c\/li\u003e\n\u003c\/ul\u003e\u003c\/div\u003e\u003c\/span\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-spacer\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-shell\" data-sigil=\"transaction anchor-container\" data-meta=\"0_244\"\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-major-event\"\u003e\u003cdiv class=\"phui-timeline-content\"\u003e\u003ca style=\"background-image: url(https:\/\/phab.wmfusercontent.org\/file\/data\/we4zgdzwslz3xt5z2l65\/PHID-FILE-dsbawu5kzuffjgi4th4h\/profile)\" class=\"visual-only phui-timeline-image\" href=\"\/p\/cicalese\/\" aria-hidden=\"true\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-wedge\" style=\"\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-group\"\u003e\u003cdiv class=\"phui-timeline-inner-content\"\u003e\u003ca name=\"2572826\" id=\"2572826\" class=\"phabricator-anchor-view\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-title phui-timeline-title-with-icon phui-timeline-title-with-menu\"\u003e\u003cspan class=\"phui-timeline-icon-fill\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-comment phui-timeline-icon\" data-meta=\"0_243\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003ca href=\"\/p\/cicalese\/\" class=\"phui-handle phui-link-person\" data-sigil=\"hovercard\" data-meta=\"0_65\"\u003ecicalese\u003c\/a\u003e added a comment.\u003cspan class=\"phui-timeline-extra\"\u003e\u003ca href=\"#2572826\" data-sigil=\"has-tooltip\" data-meta=\"0_242\"\u003e\u003cspan class=\"screen-only\"\u003eAug 22 2016, 6:31 PM\u003c\/span\u003e\u003cspan class=\"print-only\" aria-hidden=\"true\"\u003e2016-08-22 18:31:01 (UTC+0)\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/div\u003e\u003ca href=\"#\" class=\"phui-timeline-menu\" aria-haspopup=\"true\" aria-expanded=\"false\" data-sigil=\"phui-dropdown-menu\" data-meta=\"0_240\"\u003e\u003cspan class=\"aural-only\"\u003eComment Actions\u003c\/span\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-caret-down\" data-meta=\"0_241\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-core-content\"\u003e\u003cspan class=\"transaction-comment\" data-sigil=\"transaction-comment\" data-meta=\"0_66\"\u003e\u003cdiv class=\"phabricator-remarkup\"\u003e\u003cp\u003e\u003ca href=\"\/p\/Tgr\/\" class=\"phui-tag-view phui-tag-type-person \" data-sigil=\"hovercard\" data-meta=\"0_8\"\u003e\u003cspan class=\"phui-tag-core phui-tag-color-person\"\u003e@Tgr\u003c\/span\u003e\u003c\/a\u003e, the problem I'm trying to solve is session management conflicts between MediaWiki and SimpleSAMLphp. The issue is as described at \u003ca href=\"https:\/\/simplesamlphp.org\/docs\/development\/simplesamlphp-nostate\" class=\"remarkup-link\" target=\"_blank\" rel=\"noreferrer\"\u003ehttps:\/\/simplesamlphp.org\/docs\/development\/simplesamlphp-nostate\u003c\/a\u003e. Prior to MediaWiki 1.26, MediaWiki and SimpleSAMLphp were able to coexist as long as I did the following:\u003c\/p\u003e\n\n\u003cdiv class=\"remarkup-code-block\" data-code-lang=\"text\" data-sigil=\"remarkup-code-block\"\u003e\u003cpre class=\"remarkup-code\"\u003e$GLOBALS['wgSessionName'] = ini_get( 'session.name' );\u003c\/pre\u003e\u003c\/div\u003e\n\n\u003cp\u003eThis does not work with the new SessionManager.\u003c\/p\u003e\n\n\u003cp\u003e\u003ca href=\"\/p\/Anomie\/\" class=\"phui-tag-view phui-tag-type-person \" data-sigil=\"hovercard\" data-meta=\"0_9\"\u003e\u003cspan class=\"phui-tag-core phui-tag-color-person\"\u003e@Anomie\u003c\/span\u003e\u003c\/a\u003e, I did note the lack of \u003ctt class=\"remarkup-monospaced\"\u003e$session->persist()\u003c\/tt\u003e and had added it. I did also turn on logging and added some custom log statements and confirmed that the session ID it is using to look for the cookies does not contain them. It seems like the session ID is changing, so I'm wondering if the session is getting reset somewhere. I did not look at the session and cookie channels, though, so I will do that now.\u003c\/p\u003e\u003c\/div\u003e\u003c\/span\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-spacer\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-shell\" data-sigil=\"transaction anchor-container\" data-meta=\"0_253\"\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-major-event\"\u003e\u003cdiv class=\"phui-timeline-content\"\u003e\u003ca style=\"background-image: url(https:\/\/phab.wmfusercontent.org\/file\/data\/woaup5gfhgyt3xpvwi4f\/PHID-FILE-xcnwlpurjz3rsuiv56td\/profile)\" class=\"visual-only phui-timeline-image\" href=\"\/p\/Tgr\/\" aria-hidden=\"true\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-wedge\" style=\"\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-group\"\u003e\u003cdiv class=\"phui-timeline-inner-content\"\u003e\u003ca name=\"2572888\" id=\"2572888\" class=\"phabricator-anchor-view\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-title phui-timeline-title-with-icon phui-timeline-title-with-menu\"\u003e\u003cspan class=\"phui-timeline-icon-fill\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-comment phui-timeline-icon\" data-meta=\"0_252\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003ca href=\"\/p\/Tgr\/\" class=\"phui-handle phui-link-person\" data-sigil=\"hovercard\" data-meta=\"0_67\"\u003eTgr\u003c\/a\u003e added a comment.\u003cspan class=\"phui-timeline-extra\"\u003e\u003ca href=\"#2572888\" data-sigil=\"has-tooltip\" data-meta=\"0_251\"\u003e\u003cspan class=\"screen-only\"\u003eAug 22 2016, 6:47 PM\u003c\/span\u003e\u003cspan class=\"print-only\" aria-hidden=\"true\"\u003e2016-08-22 18:47:31 (UTC+0)\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/div\u003e\u003ca href=\"#\" class=\"phui-timeline-menu\" aria-haspopup=\"true\" aria-expanded=\"false\" data-sigil=\"phui-dropdown-menu\" data-meta=\"0_249\"\u003e\u003cspan class=\"aural-only\"\u003eComment Actions\u003c\/span\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-caret-down\" data-meta=\"0_250\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-core-content\"\u003e\u003cspan class=\"transaction-comment\" data-sigil=\"transaction-comment\" data-meta=\"0_68\"\u003e\u003cdiv class=\"phabricator-remarkup\"\u003e\u003cp\u003e\u003ca href=\"\/p\/cicalese\/\" class=\"phui-tag-view phui-tag-type-person \" data-sigil=\"hovercard\" data-meta=\"0_10\"\u003e\u003cspan class=\"phui-tag-core phui-tag-color-person\"\u003e@cicalese\u003c\/span\u003e\u003c\/a\u003e the point is that if you have to include \u003ctt class=\"remarkup-monospaced\"\u003eWebStart.php\u003c\/tt\u003e by hand you are doing something very wrong, and it's probably a deeper issue than how to set the session cookie name. You can't just extract parts of the initialization logic and expect it to work (and still keep working after the next unannounced change to initialization internals). It would be nice if MW was sufficiently modular to do that kind of thing but it is not.\u003c\/p\u003e\u003c\/div\u003e\u003c\/span\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-spacer\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-shell\" data-sigil=\"transaction anchor-container\" data-meta=\"0_262\"\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-major-event\"\u003e\u003cdiv class=\"phui-timeline-content\"\u003e\u003ca style=\"background-image: url(https:\/\/phab.wmfusercontent.org\/file\/data\/we4zgdzwslz3xt5z2l65\/PHID-FILE-dsbawu5kzuffjgi4th4h\/profile)\" class=\"visual-only phui-timeline-image\" href=\"\/p\/cicalese\/\" aria-hidden=\"true\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-wedge\" style=\"\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-group\"\u003e\u003cdiv class=\"phui-timeline-inner-content\"\u003e\u003ca name=\"2572911\" id=\"2572911\" class=\"phabricator-anchor-view\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-title phui-timeline-title-with-icon phui-timeline-title-with-menu\"\u003e\u003cspan class=\"phui-timeline-icon-fill\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-comment phui-timeline-icon\" data-meta=\"0_261\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003ca href=\"\/p\/cicalese\/\" class=\"phui-handle phui-link-person\" data-sigil=\"hovercard\" data-meta=\"0_69\"\u003ecicalese\u003c\/a\u003e added a comment.\u003cspan class=\"phui-timeline-extra\"\u003e\u003ca href=\"#2572911\" data-sigil=\"has-tooltip\" data-meta=\"0_260\"\u003e\u003cspan class=\"screen-only\"\u003eAug 22 2016, 6:55 PM\u003c\/span\u003e\u003cspan class=\"print-only\" aria-hidden=\"true\"\u003e2016-08-22 18:55:57 (UTC+0)\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/div\u003e\u003ca href=\"#\" class=\"phui-timeline-menu\" aria-haspopup=\"true\" aria-expanded=\"false\" data-sigil=\"phui-dropdown-menu\" data-meta=\"0_258\"\u003e\u003cspan class=\"aural-only\"\u003eComment Actions\u003c\/span\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-caret-down\" data-meta=\"0_259\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-core-content\"\u003e\u003cspan class=\"transaction-comment\" data-sigil=\"transaction-comment\" data-meta=\"0_70\"\u003e\u003cdiv class=\"phabricator-remarkup\"\u003e\u003cp\u003e\u003ca href=\"\/p\/Tgr\/\" class=\"phui-tag-view phui-tag-type-person \" data-sigil=\"hovercard\" data-meta=\"0_11\"\u003e\u003cspan class=\"phui-tag-core phui-tag-color-person\"\u003e@Tgr\u003c\/span\u003e\u003c\/a\u003e, yes, understood. Including \u003ctt class=\"remarkup-monospaced\"\u003eWebStart.php\u003c\/tt\u003e was a total act of desperation. The question is: how to get SimpleSAMLphp and MediaWiki to play nicely with PHP sessions. The alternative is to require configuring SimpleSAMLphp to use another mechanism such as memcache. It would be good to be able to get PHP sessions working, though. This was possible prior to MW 1.27 (I erroneously said 1.26 above).\u003c\/p\u003e\u003c\/div\u003e\u003c\/span\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-spacer\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-shell\" data-sigil=\"transaction anchor-container\" data-meta=\"0_271\"\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-major-event\"\u003e\u003cdiv class=\"phui-timeline-content\"\u003e\u003ca style=\"background-image: url(https:\/\/phab.wmfusercontent.org\/file\/data\/woaup5gfhgyt3xpvwi4f\/PHID-FILE-xcnwlpurjz3rsuiv56td\/profile)\" class=\"visual-only phui-timeline-image\" href=\"\/p\/Tgr\/\" aria-hidden=\"true\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-wedge\" style=\"\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-group\"\u003e\u003cdiv class=\"phui-timeline-inner-content\"\u003e\u003ca name=\"2572933\" id=\"2572933\" class=\"phabricator-anchor-view\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-title phui-timeline-title-with-icon phui-timeline-title-with-menu\"\u003e\u003cspan class=\"phui-timeline-icon-fill\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-comment phui-timeline-icon\" data-meta=\"0_270\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003ca href=\"\/p\/Tgr\/\" class=\"phui-handle phui-link-person\" data-sigil=\"hovercard\" data-meta=\"0_71\"\u003eTgr\u003c\/a\u003e added a comment.\u003cspan class=\"phui-timeline-extra\"\u003e\u003ca href=\"#2572933\" data-sigil=\"has-tooltip\" data-meta=\"0_269\"\u003e\u003cspan class=\"screen-only\"\u003eAug 22 2016, 7:06 PM\u003c\/span\u003e\u003cspan class=\"print-only\" aria-hidden=\"true\"\u003e2016-08-22 19:06:01 (UTC+0)\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/div\u003e\u003ca href=\"#\" class=\"phui-timeline-menu\" aria-haspopup=\"true\" aria-expanded=\"false\" data-sigil=\"phui-dropdown-menu\" data-meta=\"0_267\"\u003e\u003cspan class=\"aural-only\"\u003eComment Actions\u003c\/span\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-caret-down\" data-meta=\"0_268\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-core-content\"\u003e\u003cspan class=\"transaction-comment\" data-sigil=\"transaction-comment\" data-meta=\"0_72\"\u003e\u003cdiv class=\"phabricator-remarkup\"\u003e\u003cp\u003eI don't think there is a robust way to use MediaWiki sessions in a non-MediaWiki endpoint. You either have to turn it into a MediaWiki endpoint, or make assumptions about what configuration settings are used (e.g. read the session ID from the \u003ctt class=\"remarkup-monospaced\"\u003e<wikiname>Session\u003c\/tt\u003e cookie and do a Redis lookup with it, which will fail badly if MediaWiki uses non-default cookie configuration or does not use \u003ctt class=\"remarkup-monospaced\"\u003eCookieSessionProvider\u003c\/tt\u003e or does not use Redis for session storage).\u003c\/p\u003e\n\n\u003cp\u003eMore generally, using MediaWiki sessions as a shared storage for non-MediaWiki endpoints seems fundamentally wrong to me.\u003c\/p\u003e\u003c\/div\u003e\u003c\/span\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-spacer\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-shell\" data-sigil=\"transaction anchor-container\" data-meta=\"0_282\"\u003e\u003cdiv class=\"phui-timeline-event-view phui-timeline-major-event\"\u003e\u003cdiv class=\"phui-timeline-content\"\u003e\u003ca style=\"background-image: url(https:\/\/phab.wmfusercontent.org\/file\/data\/35wul4aw7m4ngbjlzjyq\/PHID-FILE-hvf5uq7y6rk2okyhaxd7\/profile)\" class=\"visual-only phui-timeline-image\" href=\"\/p\/MarkAHershberger\/\" aria-hidden=\"true\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-wedge\" style=\"\"\u003e\u003c\/div\u003e\u003cdiv class=\"phui-timeline-group\"\u003e\u003cdiv class=\"phui-timeline-inner-content\"\u003e\u003ca name=\"2573060\" id=\"2573060\" class=\"phabricator-anchor-view\"\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-title phui-timeline-title-with-icon phui-timeline-title-with-menu\"\u003e\u003cspan class=\"phui-timeline-icon-fill\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-comment phui-timeline-icon\" data-meta=\"0_281\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003ca href=\"\/p\/MarkAHershberger\/\" class=\"phui-handle phui-link-person\" data-sigil=\"hovercard\" data-meta=\"0_73\"\u003eMarkAHershberger\u003c\/a\u003e added a comment.\u003cspan class=\"phui-timeline-extra\"\u003e\u003ca href=\"#2573060\" data-sigil=\"has-tooltip\" data-meta=\"0_280\"\u003e\u003cspan class=\"screen-only\"\u003eAug 22 2016, 7:50 PM\u003c\/span\u003e\u003cspan class=\"print-only\" aria-hidden=\"true\"\u003e2016-08-22 19:50:56 (UTC+0)\u003c\/span\u003e\u003c\/a\u003e\u003c\/span\u003e\u003c\/div\u003e\u003ca href=\"#\" class=\"phui-timeline-menu\" aria-haspopup=\"true\" aria-expanded=\"false\" data-sigil=\"phui-dropdown-menu\" data-meta=\"0_278\"\u003e\u003cspan class=\"aural-only\"\u003eComment Actions\u003c\/span\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-caret-down\" data-meta=\"0_279\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\u003c\/a\u003e\u003cdiv class=\"phui-timeline-core-content\"\u003e\u003cspan class=\"transaction-comment\" data-sigil=\"transaction-comment\" data-meta=\"0_74\"\u003e\u003cdiv class=\"phabricator-remarkup\"\u003e\u003cp\u003ecicalese writes:\u003c\/p\u003e\n\n\u003cblockquote\u003e\u003cp\u003eThe alternative is to require configuring SimpleSAMLphp to use another\u003cbr \/\u003e\nmechanism such as memcache. It would be good to be able to get PHP\u003cbr \/\u003e\nsessions working, though.\u003c\/p\u003e\u003c\/blockquote\u003e\n\n\u003cp\u003eI'm probably missing something here, but isn't this exactly what\u003cbr \/\u003e\n$wgMemc->get\/set are for? Maybe that is what you were talking about, though.\u003c\/p\u003e\u003c\/div\u003e\u003c\/span\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e"},"javelin_metadata":[{"hovercardSpec":{"objectPHID":"PHID-USER-a6p24cvyblhfzc7we7nc"}},{"hovercardSpec":{"objectPHID":"PHID-TASK-nwdl4kg6xghlgxt77eui"}},{"hovercardSpec":{"objectPHID":"PHID-TASK-nwdl4kg6xghlgxt77eui"}},{"hovercardSpec":{"objectPHID":"PHID-TASK-osn2ll6c7mhfskkykntd"}},{"hovercardSpec":{"objectPHID":"PHID-USER-a6p24cvyblhfzc7we7nc","contextPHID":"PHID-TASK-osn2ll6c7mhfskkykntd"}},{"hovercardSpec":{"objectPHID":"PHID-USER-uqcn2l4ng4murmyfnvyp","contextPHID":"PHID-TASK-osn2ll6c7mhfskkykntd"}},{"hovercardSpec":{"objectPHID":"PHID-USER-uqcn2l4ng4murmyfnvyp","contextPHID":"PHID-TASK-osn2ll6c7mhfskkykntd"}},{"hovercardSpec":{"objectPHID":"PHID-TASK-osn2ll6c7mhfskkykntd"}},{"hovercardSpec":{"objectPHID":"PHID-USER-a6p24cvyblhfzc7we7nc","contextPHID":"PHID-TASK-osn2ll6c7mhfskkykntd"}},{"hovercardSpec":{"objectPHID":"PHID-USER-uqcn2l4ng4murmyfnvyp","contextPHID":"PHID-TASK-osn2ll6c7mhfskkykntd"}},{"hovercardSpec":{"objectPHID":"PHID-USER-mpmiy5j6qf3u6jazgvcy","contextPHID":"PHID-TASK-osn2ll6c7mhfskkykntd"}},{"hovercardSpec":{"objectPHID":"PHID-USER-a6p24cvyblhfzc7we7nc","contextPHID":"PHID-TASK-osn2ll6c7mhfskkykntd"}},{"hovercardSpec":{"objectPHID":"PHID-USER-a6p24cvyblhfzc7we7nc"}},{"hovercardSpec":{"objectPHID":"PHID-USER-a6p24cvyblhfzc7we7nc"}},{"hovercardSpec":{"objectPHID":"PHID-USER-a6p24cvyblhfzc7we7nc"}},{"hovercardSpec":{"objectPHID":"PHID-PROJ-5a6rhhc3i2nsrwnlndqy"}},{"hovercardSpec":{"objectPHID":"PHID-PROJ-7u4l52egerpxwhyaolys"}},{"hovercardSpec":{"objectPHID":"PHID-PROJ-xhtrsywzfp54rk26t6ga"}},{"hovercardSpec":{"objectPHID":"PHID-USER-a6p24cvyblhfzc7we7nc"}},{"hovercardSpec":{"objectPHID":"PHID-USER-ll6tmaogat2b5q7tnqas"}},{"hovercardSpec":{"objectPHID":"PHID-PCOL-2mzfhrpnbdybi6ydn6e3"}},{"hovercardSpec":{"objectPHID":"PHID-PCOL-7x25koj55ing5uzel37k"}},{"hovercardSpec":{"objectPHID":"PHID-PROJ-xhtrsywzfp54rk26t6ga"}},{"hovercardSpec":{"objectPHID":"PHID-USER-qaoxfiqu6bxhd5ehlwhc"}},{"hovercardSpec":{"objectPHID":"PHID-PROJ-ugywgddeduiigxffzuql"}},{"hovercardSpec":{"objectPHID":"PHID-PROJ-5a6rhhc3i2nsrwnlndqy"}},{"hovercardSpec":{"objectPHID":"PHID-USER-qaoxfiqu6bxhd5ehlwhc"}},{"hovercardSpec":{"objectPHID":"PHID-USER-chrmcih5qjpx5buo7vx6"}},{"hovercardSpec":{"objectPHID":"PHID-USER-mpmiy5j6qf3u6jazgvcy"}},{"hovercardSpec":{"objectPHID":"PHID-USER-mpmiy5j6qf3u6jazgvcy"}},{"phid":"PHID-XACT-TASK-svt5kyxpu2bv6y3"},{"hovercardSpec":{"objectPHID":"PHID-USER-a6p24cvyblhfzc7we7nc"}},{"phid":"PHID-XACT-TASK-phha3ociyvrri2m"},{"phid":"PHID-XACT-TASK-prefntvwpgl7bg3"},{"hovercardSpec":{"objectPHID":"PHID-USER-ogbcrxm45oo3n3xe5q25"}},{"hovercardSpec":{"objectPHID":"PHID-USER-a6p24cvyblhfzc7we7nc"}},{"phid":"PHID-XACT-TASK-cfiotots637pe54"},{"hovercardSpec":{"objectPHID":"PHID-USER-uqcn2l4ng4murmyfnvyp"}},{"hovercardSpec":{"objectPHID":"PHID-PROJ-sgcbdjrjuih5e5vezvj5"}},{"hovercardSpec":{"objectPHID":"PHID-PROJ-ugywgddeduiigxffzuql"}},{"phid":"PHID-XACT-TASK-ejvulcsq5khawrb"},{"hovercardSpec":{"objectPHID":"PHID-USER-uqcn2l4ng4murmyfnvyp"}},{"hovercardSpec":{"objectPHID":"PHID-USER-mpmiy5j6qf3u6jazgvcy"}},{"phid":"PHID-XACT-TASK-zzifudejuhdll7n"},{"hovercardSpec":{"objectPHID":"PHID-USER-uqcn2l4ng4murmyfnvyp"}},{"phid":"PHID-XACT-TASK-hjaipx7oggct6vw"},{"hovercardSpec":{"objectPHID":"PHID-USER-uqcn2l4ng4murmyfnvyp"}},{"hovercardSpec":{"objectPHID":"PHID-TASK-pazbs52wwoaqmvnlycgo"}},{"hovercardSpec":{"objectPHID":"PHID-USER-mpmiy5j6qf3u6jazgvcy"}},{"hovercardSpec":{"objectPHID":"PHID-USER-mpmiy5j6qf3u6jazgvcy"}},{"phid":"PHID-XACT-TASK-repe7ewbima3gom"},{"phid":"PHID-XACT-TASK-wqflttpvzcpxdmk"},{"hovercardSpec":{"objectPHID":"PHID-USER-idceizaw6elwiwm5xshb"}},{"hovercardSpec":{"objectPHID":"PHID-USER-idceizaw6elwiwm5xshb"}},{"hovercardSpec":{"objectPHID":"PHID-PROJ-onnxucoedheq3jevknyr"}},{"hovercardSpec":{"objectPHID":"PHID-USER-uqcn2l4ng4murmyfnvyp"}},{"phid":"PHID-XACT-TASK-mzyyu2z7vu5zlpv"},{"hovercardSpec":{"objectPHID":"PHID-USER-mpmiy5j6qf3u6jazgvcy"}},{"phid":"PHID-XACT-TASK-4uxtforf2mubtmt"},{"hovercardSpec":{"objectPHID":"PHID-USER-mpmiy5j6qf3u6jazgvcy"}},{"phid":"PHID-XACT-TASK-4kzpjycx467dkye"},{"hovercardSpec":{"objectPHID":"PHID-USER-a6p24cvyblhfzc7we7nc"}},{"phid":"PHID-XACT-TASK-am4bekinyefquth"},{"hovercardSpec":{"objectPHID":"PHID-USER-uqcn2l4ng4murmyfnvyp"}},{"phid":"PHID-XACT-TASK-y2skcebxuquahnd"},{"hovercardSpec":{"objectPHID":"PHID-USER-mpmiy5j6qf3u6jazgvcy"}},{"phid":"PHID-XACT-TASK-kayvidlouwzfp45"},{"hovercardSpec":{"objectPHID":"PHID-USER-a6p24cvyblhfzc7we7nc"}},{"phid":"PHID-XACT-TASK-px4dve6bhelagmu"},{"hovercardSpec":{"objectPHID":"PHID-USER-mpmiy5j6qf3u6jazgvcy"}},{"phid":"PHID-XACT-TASK-uge2yv2qpb4xdzt"},{"hovercardSpec":{"objectPHID":"PHID-USER-a6p24cvyblhfzc7we7nc"}},{"phid":"PHID-XACT-TASK-yzqw4zn6zyepvuu"},{"hovercardSpec":{"objectPHID":"PHID-USER-ogbcrxm45oo3n3xe5q25"}},{"phid":"PHID-XACT-TASK-qhyl76ls6zkd3vi"},{"tip":"Via Web"},[],[],[],[],[],{"phid":"PHID-XACT-TASK-3ywzr5mxebegmc6","anchor":"1578378"},{"tip":"Via Web"},[],{"phid":"PHID-XACT-TASK-xxzgma5l4f6uiaz","anchor":"1584739"},{"tip":"Via Web"},[],[],{"phid":"PHID-XACT-TASK-uh5ocixcu2orf6n","anchor":"1634919"},{"tip":"Via Web"},[],{"phid":"PHID-XACT-TASK-joux3wst4nnwzbg","anchor":"1701176"},{"targetID":"UQ0_1","uri":"\/transactions\/quote\/PHID-XACT-TASK-svt5kyxpu2bv6y3\/","ref":"T110464#1701982"},[],{"anchor":"1701982"},[],{"items":"\u003cul class=\"phabricator-action-list-view \"\u003e\u003cli id=\"UQ0_1\" class=\"phabricator-action-view phabricator-action-view-href action-has-icon\" style=\"\"\u003e\u003ca href=\"#\" class=\"phabricator-action-view-item\" data-sigil=\"transaction-quote\" data-meta=\"0_92\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-quote-left phabricator-action-view-icon\" data-meta=\"0_93\" aria-hidden=\"true\"\u003e\u003c\/span\u003eQuote Comment\u003c\/a\u003e\u003c\/li\u003e\u003cli id=\"UQ0_3\" class=\"phabricator-action-view phabricator-action-view-href action-has-icon\" style=\"\"\u003e\u003ca href=\"\/transactions\/raw\/PHID-XACT-TASK-svt5kyxpu2bv6y3\/\" class=\"phabricator-action-view-item\" data-sigil=\"transaction-raw\" data-meta=\"0_94\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-code phabricator-action-view-icon\" data-meta=\"0_95\" aria-hidden=\"true\"\u003e\u003c\/span\u003eView Raw Remarkup\u003c\/a\u003e\u003c\/li\u003e\u003c\/ul\u003e"},[],{"tip":"Via Web"},[],{"phid":"PHID-XACT-TASK-svt5kyxpu2bv6y3","anchor":"1701982"},{"targetID":"UQ0_1","uri":"\/transactions\/quote\/PHID-XACT-TASK-phha3ociyvrri2m\/","ref":"T110464#1718698"},[],{"anchor":"1718698"},[],{"items":"\u003cul class=\"phabricator-action-list-view \"\u003e\u003cli id=\"UQ0_5\" class=\"phabricator-action-view phabricator-action-view-href action-has-icon\" style=\"\"\u003e\u003ca href=\"#\" class=\"phabricator-action-view-item\" data-sigil=\"transaction-quote\" data-meta=\"0_101\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-quote-left phabricator-action-view-icon\" data-meta=\"0_102\" aria-hidden=\"true\"\u003e\u003c\/span\u003eQuote Comment\u003c\/a\u003e\u003c\/li\u003e\u003cli id=\"UQ0_7\" class=\"phabricator-action-view phabricator-action-view-href action-has-icon\" style=\"\"\u003e\u003ca href=\"\/transactions\/raw\/PHID-XACT-TASK-phha3ociyvrri2m\/\" class=\"phabricator-action-view-item\" data-sigil=\"transaction-raw\" data-meta=\"0_103\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-code phabricator-action-view-icon\" data-meta=\"0_104\" aria-hidden=\"true\"\u003e\u003c\/span\u003eView Raw Remarkup\u003c\/a\u003e\u003c\/li\u003e\u003c\/ul\u003e"},[],{"tip":"Via Web"},[],{"phid":"PHID-XACT-TASK-phha3ociyvrri2m","anchor":"1718698"},{"targetID":"UQ0_1","uri":"\/transactions\/quote\/PHID-XACT-TASK-prefntvwpgl7bg3\/","ref":"T110464#1721475"},[],{"anchor":"1721475"},[],{"items":"\u003cul class=\"phabricator-action-list-view \"\u003e\u003cli id=\"UQ0_9\" class=\"phabricator-action-view phabricator-action-view-href action-has-icon\" style=\"\"\u003e\u003ca href=\"#\" class=\"phabricator-action-view-item\" data-sigil=\"transaction-quote\" data-meta=\"0_110\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-quote-left phabricator-action-view-icon\" data-meta=\"0_111\" aria-hidden=\"true\"\u003e\u003c\/span\u003eQuote Comment\u003c\/a\u003e\u003c\/li\u003e\u003cli id=\"UQ0_11\" class=\"phabricator-action-view phabricator-action-view-href action-has-icon\" style=\"\"\u003e\u003ca href=\"\/transactions\/raw\/PHID-XACT-TASK-prefntvwpgl7bg3\/\" class=\"phabricator-action-view-item\" data-sigil=\"transaction-raw\" data-meta=\"0_112\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-code phabricator-action-view-icon\" data-meta=\"0_113\" aria-hidden=\"true\"\u003e\u003c\/span\u003eView Raw Remarkup\u003c\/a\u003e\u003c\/li\u003e\u003c\/ul\u003e"},[],{"tip":"Via Web"},[],{"phid":"PHID-XACT-TASK-prefntvwpgl7bg3","anchor":"1721475"},{"targetID":"UQ0_1","uri":"\/transactions\/quote\/PHID-XACT-TASK-cfiotots637pe54\/","ref":"T110464#1722714"},[],{"anchor":"1722714"},[],{"items":"\u003cul class=\"phabricator-action-list-view \"\u003e\u003cli id=\"UQ0_13\" class=\"phabricator-action-view phabricator-action-view-href action-has-icon\" style=\"\"\u003e\u003ca href=\"#\" class=\"phabricator-action-view-item\" data-sigil=\"transaction-quote\" data-meta=\"0_119\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-quote-left phabricator-action-view-icon\" data-meta=\"0_120\" aria-hidden=\"true\"\u003e\u003c\/span\u003eQuote Comment\u003c\/a\u003e\u003c\/li\u003e\u003cli id=\"UQ0_15\" class=\"phabricator-action-view phabricator-action-view-href action-has-icon\" style=\"\"\u003e\u003ca href=\"\/transactions\/raw\/PHID-XACT-TASK-cfiotots637pe54\/\" class=\"phabricator-action-view-item\" data-sigil=\"transaction-raw\" data-meta=\"0_121\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-code phabricator-action-view-icon\" data-meta=\"0_122\" aria-hidden=\"true\"\u003e\u003c\/span\u003eView Raw Remarkup\u003c\/a\u003e\u003c\/li\u003e\u003c\/ul\u003e"},[],{"tip":"Via Web"},[],{"phid":"PHID-XACT-TASK-cfiotots637pe54","anchor":"1722714"},{"targetID":"UQ0_1","uri":"\/transactions\/quote\/PHID-XACT-TASK-ejvulcsq5khawrb\/","ref":"T110464#2294055"},[],{"anchor":"2294055"},[],{"items":"\u003cul class=\"phabricator-action-list-view \"\u003e\u003cli id=\"UQ0_17\" class=\"phabricator-action-view phabricator-action-view-href action-has-icon\" style=\"\"\u003e\u003ca href=\"#\" class=\"phabricator-action-view-item\" data-sigil=\"transaction-quote\" data-meta=\"0_128\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-quote-left phabricator-action-view-icon\" data-meta=\"0_129\" aria-hidden=\"true\"\u003e\u003c\/span\u003eQuote Comment\u003c\/a\u003e\u003c\/li\u003e\u003cli id=\"UQ0_19\" class=\"phabricator-action-view phabricator-action-view-href action-has-icon\" style=\"\"\u003e\u003ca href=\"\/transactions\/raw\/PHID-XACT-TASK-ejvulcsq5khawrb\/\" class=\"phabricator-action-view-item\" data-sigil=\"transaction-raw\" data-meta=\"0_130\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-code phabricator-action-view-icon\" data-meta=\"0_131\" aria-hidden=\"true\"\u003e\u003c\/span\u003eView Raw Remarkup\u003c\/a\u003e\u003c\/li\u003e\u003c\/ul\u003e"},[],{"tip":"Via Web"},[],[],{"tip":"Backport Deployer","align":"E","size":300},[],{"phid":"PHID-XACT-TASK-mp3shiiq66fmerm","anchor":"2294055"},{"targetID":"UQ0_1","uri":"\/transactions\/quote\/PHID-XACT-TASK-zzifudejuhdll7n\/","ref":"T110464#2294101"},[],{"anchor":"2294101"},[],{"items":"\u003cul class=\"phabricator-action-list-view \"\u003e\u003cli id=\"UQ0_21\" class=\"phabricator-action-view phabricator-action-view-href action-has-icon\" style=\"\"\u003e\u003ca href=\"#\" class=\"phabricator-action-view-item\" data-sigil=\"transaction-quote\" data-meta=\"0_140\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-quote-left phabricator-action-view-icon\" data-meta=\"0_141\" aria-hidden=\"true\"\u003e\u003c\/span\u003eQuote Comment\u003c\/a\u003e\u003c\/li\u003e\u003cli id=\"UQ0_23\" class=\"phabricator-action-view phabricator-action-view-href action-has-icon\" style=\"\"\u003e\u003ca href=\"\/transactions\/raw\/PHID-XACT-TASK-zzifudejuhdll7n\/\" class=\"phabricator-action-view-item\" data-sigil=\"transaction-raw\" data-meta=\"0_142\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-code phabricator-action-view-icon\" data-meta=\"0_143\" aria-hidden=\"true\"\u003e\u003c\/span\u003eView Raw Remarkup\u003c\/a\u003e\u003c\/li\u003e\u003c\/ul\u003e"},[],{"tip":"Via Web"},[],{"phid":"PHID-XACT-TASK-zzifudejuhdll7n","anchor":"2294101"},{"targetID":"UQ0_1","uri":"\/transactions\/quote\/PHID-XACT-TASK-hjaipx7oggct6vw\/","ref":"T110464#2294374"},[],{"anchor":"2294374"},[],{"items":"\u003cul class=\"phabricator-action-list-view \"\u003e\u003cli id=\"UQ0_25\" class=\"phabricator-action-view phabricator-action-view-href action-has-icon\" style=\"\"\u003e\u003ca href=\"#\" class=\"phabricator-action-view-item\" data-sigil=\"transaction-quote\" data-meta=\"0_149\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-quote-left phabricator-action-view-icon\" data-meta=\"0_150\" aria-hidden=\"true\"\u003e\u003c\/span\u003eQuote Comment\u003c\/a\u003e\u003c\/li\u003e\u003cli id=\"UQ0_27\" class=\"phabricator-action-view phabricator-action-view-href action-has-icon\" style=\"\"\u003e\u003ca href=\"\/transactions\/raw\/PHID-XACT-TASK-hjaipx7oggct6vw\/\" class=\"phabricator-action-view-item\" data-sigil=\"transaction-raw\" data-meta=\"0_151\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-code phabricator-action-view-icon\" data-meta=\"0_152\" aria-hidden=\"true\"\u003e\u003c\/span\u003eView Raw Remarkup\u003c\/a\u003e\u003c\/li\u003e\u003c\/ul\u003e"},[],{"tip":"Via Web"},[],{"tip":"Backport Deployer","align":"E","size":300},[],{"phid":"PHID-XACT-TASK-hjaipx7oggct6vw","anchor":"2294374"},{"tip":"Via Web"},[],{"phid":"PHID-XACT-TASK-b3fgrrz4ml3l6yz","anchor":"2453873"},{"tip":"Via Web"},[],{"phid":"PHID-XACT-TASK-cmmxbabim77v2vj","anchor":"2453898"},{"targetID":"UQ0_1","uri":"\/transactions\/quote\/PHID-XACT-TASK-repe7ewbima3gom\/","ref":"T110464#2464202"},[],{"anchor":"2464202"},[],{"items":"\u003cul class=\"phabricator-action-list-view \"\u003e\u003cli id=\"UQ0_29\" class=\"phabricator-action-view phabricator-action-view-href action-has-icon\" style=\"\"\u003e\u003ca href=\"#\" class=\"phabricator-action-view-item\" data-sigil=\"transaction-quote\" data-meta=\"0_166\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-quote-left phabricator-action-view-icon\" data-meta=\"0_167\" aria-hidden=\"true\"\u003e\u003c\/span\u003eQuote Comment\u003c\/a\u003e\u003c\/li\u003e\u003cli id=\"UQ0_31\" class=\"phabricator-action-view phabricator-action-view-href action-has-icon\" style=\"\"\u003e\u003ca href=\"\/transactions\/raw\/PHID-XACT-TASK-repe7ewbima3gom\/\" class=\"phabricator-action-view-item\" data-sigil=\"transaction-raw\" data-meta=\"0_168\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-code phabricator-action-view-icon\" data-meta=\"0_169\" aria-hidden=\"true\"\u003e\u003c\/span\u003eView Raw Remarkup\u003c\/a\u003e\u003c\/li\u003e\u003c\/ul\u003e"},[],{"tip":"Via Web"},[],{"phid":"PHID-XACT-TASK-repe7ewbima3gom","anchor":"2464202"},{"targetID":"UQ0_1","uri":"\/transactions\/quote\/PHID-XACT-TASK-wqflttpvzcpxdmk\/","ref":"T110464#2465085"},[],{"anchor":"2465085"},[],{"items":"\u003cul class=\"phabricator-action-list-view \"\u003e\u003cli id=\"UQ0_33\" class=\"phabricator-action-view phabricator-action-view-href action-has-icon\" style=\"\"\u003e\u003ca href=\"#\" class=\"phabricator-action-view-item\" data-sigil=\"transaction-quote\" data-meta=\"0_175\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-quote-left phabricator-action-view-icon\" data-meta=\"0_176\" aria-hidden=\"true\"\u003e\u003c\/span\u003eQuote Comment\u003c\/a\u003e\u003c\/li\u003e\u003cli id=\"UQ0_35\" class=\"phabricator-action-view phabricator-action-view-href action-has-icon\" style=\"\"\u003e\u003ca href=\"\/transactions\/raw\/PHID-XACT-TASK-wqflttpvzcpxdmk\/\" class=\"phabricator-action-view-item\" data-sigil=\"transaction-raw\" data-meta=\"0_177\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-code phabricator-action-view-icon\" data-meta=\"0_178\" aria-hidden=\"true\"\u003e\u003c\/span\u003eView Raw Remarkup\u003c\/a\u003e\u003c\/li\u003e\u003c\/ul\u003e"},[],{"tip":"Via Conduit"},[],{"phid":"PHID-XACT-TASK-wqflttpvzcpxdmk","anchor":"2465085"},{"tip":"Via Conduit"},[],{"phid":"PHID-XACT-TASK-zowlg6dx4sm7wml","anchor":"2465086"},{"targetID":"UQ0_1","uri":"\/transactions\/quote\/PHID-XACT-TASK-mzyyu2z7vu5zlpv\/","ref":"T110464#2466384"},[],{"anchor":"2466384"},[],{"items":"\u003cul class=\"phabricator-action-list-view \"\u003e\u003cli id=\"UQ0_37\" class=\"phabricator-action-view phabricator-action-view-href action-has-icon\" style=\"\"\u003e\u003ca href=\"#\" class=\"phabricator-action-view-item\" data-sigil=\"transaction-quote\" data-meta=\"0_187\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-quote-left phabricator-action-view-icon\" data-meta=\"0_188\" aria-hidden=\"true\"\u003e\u003c\/span\u003eQuote Comment\u003c\/a\u003e\u003c\/li\u003e\u003cli id=\"UQ0_39\" class=\"phabricator-action-view phabricator-action-view-href action-has-icon\" style=\"\"\u003e\u003ca href=\"\/transactions\/raw\/PHID-XACT-TASK-mzyyu2z7vu5zlpv\/\" class=\"phabricator-action-view-item\" data-sigil=\"transaction-raw\" data-meta=\"0_189\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-code phabricator-action-view-icon\" data-meta=\"0_190\" aria-hidden=\"true\"\u003e\u003c\/span\u003eView Raw Remarkup\u003c\/a\u003e\u003c\/li\u003e\u003c\/ul\u003e"},[],{"tip":"Via Web"},[],{"tip":"Backport Deployer","align":"E","size":300},[],{"phid":"PHID-XACT-TASK-mzyyu2z7vu5zlpv","anchor":"2466384"},{"targetID":"UQ0_1","uri":"\/transactions\/quote\/PHID-XACT-TASK-4uxtforf2mubtmt\/","ref":"T110464#2466417"},[],{"anchor":"2466417"},[],{"items":"\u003cul class=\"phabricator-action-list-view \"\u003e\u003cli id=\"UQ0_41\" class=\"phabricator-action-view phabricator-action-view-href action-has-icon\" style=\"\"\u003e\u003ca href=\"#\" class=\"phabricator-action-view-item\" data-sigil=\"transaction-quote\" data-meta=\"0_198\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-quote-left phabricator-action-view-icon\" data-meta=\"0_199\" aria-hidden=\"true\"\u003e\u003c\/span\u003eQuote Comment\u003c\/a\u003e\u003c\/li\u003e\u003cli id=\"UQ0_43\" class=\"phabricator-action-view phabricator-action-view-href action-has-icon\" style=\"\"\u003e\u003ca href=\"\/transactions\/raw\/PHID-XACT-TASK-4uxtforf2mubtmt\/\" class=\"phabricator-action-view-item\" data-sigil=\"transaction-raw\" data-meta=\"0_200\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-code phabricator-action-view-icon\" data-meta=\"0_201\" aria-hidden=\"true\"\u003e\u003c\/span\u003eView Raw Remarkup\u003c\/a\u003e\u003c\/li\u003e\u003c\/ul\u003e"},[],{"tip":"Via Web"},[],{"phid":"PHID-XACT-TASK-4uxtforf2mubtmt","anchor":"2466417"},{"targetID":"UQ0_1","uri":"\/transactions\/quote\/PHID-XACT-TASK-4kzpjycx467dkye\/","ref":"T110464#2571565"},[],{"anchor":"2571565"},[],{"items":"\u003cul class=\"phabricator-action-list-view \"\u003e\u003cli id=\"UQ0_45\" class=\"phabricator-action-view phabricator-action-view-href action-has-icon\" style=\"\"\u003e\u003ca href=\"#\" class=\"phabricator-action-view-item\" data-sigil=\"transaction-quote\" data-meta=\"0_207\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-quote-left phabricator-action-view-icon\" data-meta=\"0_208\" aria-hidden=\"true\"\u003e\u003c\/span\u003eQuote Comment\u003c\/a\u003e\u003c\/li\u003e\u003cli id=\"UQ0_47\" class=\"phabricator-action-view phabricator-action-view-href action-has-icon\" style=\"\"\u003e\u003ca href=\"\/transactions\/raw\/PHID-XACT-TASK-4kzpjycx467dkye\/\" class=\"phabricator-action-view-item\" data-sigil=\"transaction-raw\" data-meta=\"0_209\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-code phabricator-action-view-icon\" data-meta=\"0_210\" aria-hidden=\"true\"\u003e\u003c\/span\u003eView Raw Remarkup\u003c\/a\u003e\u003c\/li\u003e\u003c\/ul\u003e"},[],{"tip":"Via Web"},[],{"phid":"PHID-XACT-TASK-4kzpjycx467dkye","anchor":"2571565"},{"targetID":"UQ0_1","uri":"\/transactions\/quote\/PHID-XACT-TASK-am4bekinyefquth\/","ref":"T110464#2572589"},[],{"anchor":"2572589"},[],{"items":"\u003cul class=\"phabricator-action-list-view \"\u003e\u003cli id=\"UQ0_49\" class=\"phabricator-action-view phabricator-action-view-href action-has-icon\" style=\"\"\u003e\u003ca href=\"#\" class=\"phabricator-action-view-item\" data-sigil=\"transaction-quote\" data-meta=\"0_216\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-quote-left phabricator-action-view-icon\" data-meta=\"0_217\" aria-hidden=\"true\"\u003e\u003c\/span\u003eQuote Comment\u003c\/a\u003e\u003c\/li\u003e\u003cli id=\"UQ0_51\" class=\"phabricator-action-view phabricator-action-view-href action-has-icon\" style=\"\"\u003e\u003ca href=\"\/transactions\/raw\/PHID-XACT-TASK-am4bekinyefquth\/\" class=\"phabricator-action-view-item\" data-sigil=\"transaction-raw\" data-meta=\"0_218\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-code phabricator-action-view-icon\" data-meta=\"0_219\" aria-hidden=\"true\"\u003e\u003c\/span\u003eView Raw Remarkup\u003c\/a\u003e\u003c\/li\u003e\u003c\/ul\u003e"},[],{"tip":"Via Web"},[],{"phid":"PHID-XACT-TASK-am4bekinyefquth","anchor":"2572589"},{"targetID":"UQ0_1","uri":"\/transactions\/quote\/PHID-XACT-TASK-y2skcebxuquahnd\/","ref":"T110464#2572745"},[],{"anchor":"2572745"},[],{"items":"\u003cul class=\"phabricator-action-list-view \"\u003e\u003cli id=\"UQ0_53\" class=\"phabricator-action-view phabricator-action-view-href action-has-icon\" style=\"\"\u003e\u003ca href=\"#\" class=\"phabricator-action-view-item\" data-sigil=\"transaction-quote\" data-meta=\"0_225\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-quote-left phabricator-action-view-icon\" data-meta=\"0_226\" aria-hidden=\"true\"\u003e\u003c\/span\u003eQuote Comment\u003c\/a\u003e\u003c\/li\u003e\u003cli id=\"UQ0_55\" class=\"phabricator-action-view phabricator-action-view-href action-has-icon\" style=\"\"\u003e\u003ca href=\"\/transactions\/raw\/PHID-XACT-TASK-y2skcebxuquahnd\/\" class=\"phabricator-action-view-item\" data-sigil=\"transaction-raw\" data-meta=\"0_227\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-code phabricator-action-view-icon\" data-meta=\"0_228\" aria-hidden=\"true\"\u003e\u003c\/span\u003eView Raw Remarkup\u003c\/a\u003e\u003c\/li\u003e\u003c\/ul\u003e"},[],{"tip":"Via Web"},[],{"tip":"Backport Deployer","align":"E","size":300},[],{"phid":"PHID-XACT-TASK-y2skcebxuquahnd","anchor":"2572745"},{"targetID":"UQ0_1","uri":"\/transactions\/quote\/PHID-XACT-TASK-kayvidlouwzfp45\/","ref":"T110464#2572826"},[],{"anchor":"2572826"},[],{"items":"\u003cul class=\"phabricator-action-list-view \"\u003e\u003cli id=\"UQ0_57\" class=\"phabricator-action-view phabricator-action-view-href action-has-icon\" style=\"\"\u003e\u003ca href=\"#\" class=\"phabricator-action-view-item\" data-sigil=\"transaction-quote\" data-meta=\"0_236\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-quote-left phabricator-action-view-icon\" data-meta=\"0_237\" aria-hidden=\"true\"\u003e\u003c\/span\u003eQuote Comment\u003c\/a\u003e\u003c\/li\u003e\u003cli id=\"UQ0_59\" class=\"phabricator-action-view phabricator-action-view-href action-has-icon\" style=\"\"\u003e\u003ca href=\"\/transactions\/raw\/PHID-XACT-TASK-kayvidlouwzfp45\/\" class=\"phabricator-action-view-item\" data-sigil=\"transaction-raw\" data-meta=\"0_238\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-code phabricator-action-view-icon\" data-meta=\"0_239\" aria-hidden=\"true\"\u003e\u003c\/span\u003eView Raw Remarkup\u003c\/a\u003e\u003c\/li\u003e\u003c\/ul\u003e"},[],{"tip":"Via Web"},[],{"phid":"PHID-XACT-TASK-kayvidlouwzfp45","anchor":"2572826"},{"targetID":"UQ0_1","uri":"\/transactions\/quote\/PHID-XACT-TASK-px4dve6bhelagmu\/","ref":"T110464#2572888"},[],{"anchor":"2572888"},[],{"items":"\u003cul class=\"phabricator-action-list-view \"\u003e\u003cli id=\"UQ0_61\" class=\"phabricator-action-view phabricator-action-view-href action-has-icon\" style=\"\"\u003e\u003ca href=\"#\" class=\"phabricator-action-view-item\" data-sigil=\"transaction-quote\" data-meta=\"0_245\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-quote-left phabricator-action-view-icon\" data-meta=\"0_246\" aria-hidden=\"true\"\u003e\u003c\/span\u003eQuote Comment\u003c\/a\u003e\u003c\/li\u003e\u003cli id=\"UQ0_63\" class=\"phabricator-action-view phabricator-action-view-href action-has-icon\" style=\"\"\u003e\u003ca href=\"\/transactions\/raw\/PHID-XACT-TASK-px4dve6bhelagmu\/\" class=\"phabricator-action-view-item\" data-sigil=\"transaction-raw\" data-meta=\"0_247\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-code phabricator-action-view-icon\" data-meta=\"0_248\" aria-hidden=\"true\"\u003e\u003c\/span\u003eView Raw Remarkup\u003c\/a\u003e\u003c\/li\u003e\u003c\/ul\u003e"},[],{"tip":"Via Web"},[],{"phid":"PHID-XACT-TASK-px4dve6bhelagmu","anchor":"2572888"},{"targetID":"UQ0_1","uri":"\/transactions\/quote\/PHID-XACT-TASK-uge2yv2qpb4xdzt\/","ref":"T110464#2572911"},[],{"anchor":"2572911"},[],{"items":"\u003cul class=\"phabricator-action-list-view \"\u003e\u003cli id=\"UQ0_65\" class=\"phabricator-action-view phabricator-action-view-href action-has-icon\" style=\"\"\u003e\u003ca href=\"#\" class=\"phabricator-action-view-item\" data-sigil=\"transaction-quote\" data-meta=\"0_254\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-quote-left phabricator-action-view-icon\" data-meta=\"0_255\" aria-hidden=\"true\"\u003e\u003c\/span\u003eQuote Comment\u003c\/a\u003e\u003c\/li\u003e\u003cli id=\"UQ0_67\" class=\"phabricator-action-view phabricator-action-view-href action-has-icon\" style=\"\"\u003e\u003ca href=\"\/transactions\/raw\/PHID-XACT-TASK-uge2yv2qpb4xdzt\/\" class=\"phabricator-action-view-item\" data-sigil=\"transaction-raw\" data-meta=\"0_256\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-code phabricator-action-view-icon\" data-meta=\"0_257\" aria-hidden=\"true\"\u003e\u003c\/span\u003eView Raw Remarkup\u003c\/a\u003e\u003c\/li\u003e\u003c\/ul\u003e"},[],{"tip":"Via Web"},[],{"phid":"PHID-XACT-TASK-uge2yv2qpb4xdzt","anchor":"2572911"},{"targetID":"UQ0_1","uri":"\/transactions\/quote\/PHID-XACT-TASK-yzqw4zn6zyepvuu\/","ref":"T110464#2572933"},[],{"anchor":"2572933"},[],{"items":"\u003cul class=\"phabricator-action-list-view \"\u003e\u003cli id=\"UQ0_69\" class=\"phabricator-action-view phabricator-action-view-href action-has-icon\" style=\"\"\u003e\u003ca href=\"#\" class=\"phabricator-action-view-item\" data-sigil=\"transaction-quote\" data-meta=\"0_263\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-quote-left phabricator-action-view-icon\" data-meta=\"0_264\" aria-hidden=\"true\"\u003e\u003c\/span\u003eQuote Comment\u003c\/a\u003e\u003c\/li\u003e\u003cli id=\"UQ0_71\" class=\"phabricator-action-view phabricator-action-view-href action-has-icon\" style=\"\"\u003e\u003ca href=\"\/transactions\/raw\/PHID-XACT-TASK-yzqw4zn6zyepvuu\/\" class=\"phabricator-action-view-item\" data-sigil=\"transaction-raw\" data-meta=\"0_265\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-code phabricator-action-view-icon\" data-meta=\"0_266\" aria-hidden=\"true\"\u003e\u003c\/span\u003eView Raw Remarkup\u003c\/a\u003e\u003c\/li\u003e\u003c\/ul\u003e"},[],{"tip":"Via Web"},[],{"phid":"PHID-XACT-TASK-yzqw4zn6zyepvuu","anchor":"2572933"},{"targetID":"UQ0_1","uri":"\/transactions\/quote\/PHID-XACT-TASK-qhyl76ls6zkd3vi\/","ref":"T110464#2573060"},[],{"anchor":"2573060"},[],{"anchor":"2573060"},[],{"items":"\u003cul class=\"phabricator-action-list-view \"\u003e\u003cli id=\"UQ0_73\" class=\"phabricator-action-view phabricator-action-view-href action-has-icon\" style=\"\"\u003e\u003ca href=\"#\" class=\"phabricator-action-view-item\" data-sigil=\"transaction-quote\" data-meta=\"0_272\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-quote-left phabricator-action-view-icon\" data-meta=\"0_273\" aria-hidden=\"true\"\u003e\u003c\/span\u003eQuote Comment\u003c\/a\u003e\u003c\/li\u003e\u003cli id=\"UQ0_75\" class=\"phabricator-action-view phabricator-action-view-href action-has-icon\" style=\"\"\u003e\u003ca href=\"\/transactions\/raw\/PHID-XACT-TASK-qhyl76ls6zkd3vi\/\" class=\"phabricator-action-view-item\" data-sigil=\"transaction-raw\" data-meta=\"0_274\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-code phabricator-action-view-icon\" data-meta=\"0_275\" aria-hidden=\"true\"\u003e\u003c\/span\u003eView Raw Remarkup\u003c\/a\u003e\u003c\/li\u003e\u003cli id=\"UQ0_77\" class=\"phabricator-action-view phabricator-action-view-href action-has-icon\" style=\"\"\u003e\u003ca href=\"\/transactions\/raw\/PHID-XACT-TASK-qhyl76ls6zkd3vi\/?email\" class=\"phabricator-action-view-item\" data-sigil=\"transaction-raw\" data-meta=\"0_276\"\u003e\u003cspan class=\"visual-only phui-icon-view phui-font-fa fa-envelope-o phabricator-action-view-icon\" data-meta=\"0_277\" aria-hidden=\"true\"\u003e\u003c\/span\u003eView Email Body\u003c\/a\u003e\u003c\/li\u003e\u003c\/ul\u003e"},[],{"tip":"Via Email"},[],{"phid":"PHID-XACT-TASK-qhyl76ls6zkd3vi","anchor":"2573060"}],"javelin_behaviors":{"phui-hovercards":[],"phabricator-watch-anchor":[],"phabricator-tooltips":[],"phui-dropdown-menu":[]},"javelin_resources":["https:\/\/phab.wmfusercontent.org\/res\/defaultX\/phabricator\/2eeda9e0\/core.pkg.js","https:\/\/phab.wmfusercontent.org\/res\/defaultX\/phabricator\/98e6504a\/rsrc\/externals\/javelin\/core\/init.js","https:\/\/phab.wmfusercontent.org\/res\/defaultX\/phabricator\/968d91ee\/core.pkg.css","https:\/\/phab.wmfusercontent.org\/res\/defaultX\/phabricator\/666e25ad\/rsrc\/css\/phui\/phui-badge.css"]}