Already reported as https://phabricator.wikimedia.org/T108139

On Wed, Aug 5, 2015 at 5:10 PM, Bartosz Dziewoński <[email protected]>
wrote:

> I think this announcement is missing one important tidbit:
>
> If you have `document.write(…)` anywhere in your user JavaScript, **you
> will get a blank page** on all pages of your wiki *, including the user
> JavaScript page you'd have to edit to fix it, until you disable JavaScript
> in your browser or ask an administrator to fix it for you.
>
> If you have `document.write(…)` anywhere in the site JavaScript, **all
> users** will **get a blank page** on all pages of the wiki *, including
> anonymous readers, including all administrators who could fix it, until one
> of them disables JavaScript in their browser, and finds and fixes the
> broken script.
>
> * Except for Special:Preferences and password-related pages, where user
> and site JavaScript is disabled for security reasons.
>
>
>
> On Thu, 06 Aug 2015 01:24:03 +0200, Krinkle <[email protected]> wrote:
>
> TL:DR; Double-check your wiki's site scripts and your personal scripts
>> to ensure "document.write" is no longer used.
>>
>> Hey all,
>>
>> We have strongly discouraged for many years the use of synchronous
>> "document.write()" to inject additional HTML into the output stream.
>> Across MediaWiki core, extensions, and gadgets this hasn't worked since
>> 2012.
>> With two legacy exceptions: the 'site' and 'user' modules. We always
>> found a way
>> to continue support for those. But this is now going to be removed.
>>
>> In upcoming ResourceLoader upgrades and performance improvements, we will
>> cease support for synchronous document-write, in the site and user
>> modules.
>> Use of document-write requires MediaWiki to instruct the browser to pause
>> its
>> rendering before the browser may proceed to parse and display a page to
>> users.
>>
>> Even though most scripts don't use this feature, the mere fact that we
>> support it
>> is causing a measurable impact on page load performance.
>>
>> Starting in 1.26wmf17 (released to wikis this week), ResourceLoader will
>> be
>> fully asynchronous. This change is already live on the Beta Cluster. [1]
>> This means it is no longer possible for the site and user scripts to, with
>> document-write, pause the browser execution and insert additional HTML in
>> the initial output stream.
>>
>> Removing an API does not necessarily mean removing a capability. If you
>> encounter any issues or can't find a simple upgrade path for an existing
>> script, please reach out on the mailing list. Below is summary of a few
>> typical use cases:
>>
>> 1. Loading scripts.
>>
>> Instead of `document.write("<script src=url></script>");`
>> use `mw.loader.load(url);` instead.
>>
>> 2. Loading stylesheets.
>>
>> Instead of `document.write("<link rel=stylesheet href=url/>");`
>> use `mw.loader.load(url, "text/css");` instead.
>>
>> 3. Creating elements.
>>
>> Instead of `document.write("<div>....</div>");`, use:
>>
>>     var nodes = $.parseHTML("<div>..</div>"); $('body').append(nodes);
>>
>> Or something like:
>>
>>     $("<div>").attr({ "id": "foo" }).appendTo("body");
>>
>>
>> Please take some time to look through your wiki's site scripts
>> (MediaWiki:Common.js,
>> MediaWiki:Vector.js, etc.) and make sure document-write is no longer used.
>> You can also use the search engine. For example:
>>
>> https://nl.wikipedia.org/w/index.php?search=document.write&ns8=1
>> https://commons.wikimedia.org/w/index.php?search=document.write&ns8=1
>>
>> Search results from mwgrep on all public wikis:
>> https://phabricator.wikimedia.org/P1832
>>
>> Check out the migration page for other deprecations and common issues you
>> may encounter:
>> https://www.mediawiki.org/wiki/ResourceLoader/Migration_guide_(users)
>>
>> == Further reading ==
>>
>> The ResourceLoader improvements that led to this change are tracked under
>> https://phabricator.wikimedia.org/T107399.
>>
>> Refer to the following workboards for other tasks in this area:
>>
>> https://phabricator.wikimedia.org/tag/mediawiki-resourceloader/board/?order=priority
>>
>> https://phabricator.wikimedia.org/tag/performance-team/board/?order=priority
>>
>> Now that the site and user modules are primary citizens in the
>> ResourceLoader landscape,
>> their states can be tracked with mw.loader. This solves long-outstanding
>> issues such as
>> https://phabricator.wikimedia.org/T106736 which sometimes caused
>> malfunctions
>> in Common.js to affect user gadgets, VisualEditor, and other site tools.
>>
>> — Krinkle
>>
>> [1] http://en.wikipedia.beta.wmflabs.org/
>>
>>
>> _______________________________________________
>> Wikitech-ambassadors mailing list
>> [email protected]
>> https://lists.wikimedia.org/mailman/listinfo/wikitech-ambassadors
>>
>
>
> --
> Bartosz Dziewoński
>
>
> _______________________________________________
> Wikitech-l mailing list
> [email protected]
> https://lists.wikimedia.org/mailman/listinfo/wikitech-l
>



-- 
Best regards,
Max Semenik ([[User:MaxSem]])
_______________________________________________
Wikitech-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to