We were executing all compacting strategies even when we have
more than enough items as candidates. If the strategy is expensive,
(performance wise) this is a problem.
In this commit, we execute them one by one and stop when we have enough
candidates.
The methods in CompactInterlanguageList class also arranged as
individual function declarations than comma seperated method list.
Change-Id: Idce6489387d139852125f4448d0e192f6a7e1353
Load jquery.uls only when the trigger is clicked.
Reduces the initial footprint by 63.9 KB (uncompressed)
Bug: T135210
Change-Id: I972cb6ea1794485917ea530f7abe68bdddc2014f
Modern browsers will use woff2, which has smaller size than woff
Updated the README in the font repository explaining how different
file formats are produced.
Bug: T128291
Change-Id: I81c5380fdbf0ff76142b67cf8fce9db20e8164fa
It re-triggers mw.uls.getFrequentLanguageList(),
getPreviousLanguages() and localstorage read.
In this patch the result was saved and reused.
Bug: T122341
Change-Id: I14839eb611cd3e995e8d8ab729ee3f714840f9ad
We don't need plugin pattern here since it is not meant for a use
in multiple contexts. Code simplified.
Change-Id: Iee86069aaa82f5a9ab3a856c19360e9ea89211ad
This was used to expose Compact language links as beta feature.
Now a days, we want it as beta feature unconditionally and this
configuration does not make sense. So removing.
Bug: T134145
Change-Id: I40d5c07064b5f407ec37837b0835e0698f3a5256
We had a browser check to blacklist all browsers older than IE 8
IE <= 7
But that is no longer required since JS support is not there for such
browsers as per https://www.mediawiki.org/wiki/Compatibility#Modern
We can support all modern browsers listed there and we don't need
additional blacklisting now. From 1.27 onwards, there is no JS loaded
for IE 8 too. So we can just use MW browser support policy.
In this commit, the code to do brower checks removed and simplified
the initialization code. Still I am not happy with the interface module,
that need further refactoring.
Change-Id: I655826c55fb2c7c5c88f16368110142d64a96eec
These changes affect anonymous users:
* Old code to restore preferences from jStorage removed
* No cookie used anymore
Bug: T100639
Change-Id: I3cfec447703d9c67cd2310ec4acc5692ad76be8e
The ext.uls.buttons style can be removed but Translate extension use that.
Once it is separated we can remove it from ULS.
Testplan:
Use ULS settings and notice the style difference of buttons, checkboxes
and radio buttons. No functionality should be affected and UI should not
be broken in any ways.
This was once attempted in Id186ece6513f154e0388bc4170c21bdabb59038a
but we had to revert because of incompleteness
Bug: T52599
Bug: T127020
Change-Id: Ibbb2068b5036537f298fad6c49169a5b986304d5
* Fix: search using API does not respect the passed language list
* Remove the reference to map block
Change-Id: Id777102a7c8e0575599b27c64839faf170dde003
The pointer arrow of the ULS was not aligned with the 'x more' trigger
and it missed shadow. This commit fixes it.
Notably, we replace the old arrow with a box rotated 45 degree so that
we can apply the shadow very easily.
Bug: T130633
Change-Id: I4d36f3ee9fcfea932e10208518a03e7b246a7abe
Removed the code to log whether map(removed long time back), search,
common languages used for selecting the language.
This logs were introduced to measure and adapt UI effectiveness.
No longer needed now.
Change-Id: I83bdd250cb6474da4fbf22aed2011071b9f9eba4
* Add left and right padding for search header of compact ULS
* Support language codes that are redirects
* Localisation updates
Change-Id: I52215676f20b2ce87178a73d071a209f0e4e323c
The default value of ULSMobileWebfontsEnabled is supposed to be false
as per I488e411232a1192.
And it is false in UniversalLanguageSelector.php. But in extension.json
it is true by mistake. Must be a mistake from c3322ba830
Bug: T113983
Change-Id: Ia817b0550ae1777417ef646939810c879e87608d
Retaining the UniversalLanguageSelector.php and Resources.php
to avoid breaking support for old MW versions. At some point,
we can validate how many old MW versions we need to support.
Bug: T87987
Change-Id: I006e968b70298b54013177aa792a4dfdf5b6aae2
This reverts commit 30d26a4fd2.
Some issues in this patch were identified, see T52599.
Reverting so that MLEB can be released and issues fixed and
tested properly after the release.
Change-Id: I35c1eb2db5ead8ca75dc2724997d789c83c69b6d
This reverts commit d546f6e71f.
Noted line height variations between WOFF and WOFF2.
Reverting till we investigate this
Similar to https://gerrit.wikimedia.org/r/#/c/174081/
Change-Id: I31e1a2dfe643fcd979953acc5cb6f93e872a2a87
This reverts commit 90519fa8db.
Noted line height variations between WOFF and WOFF2. Reverting till we investigate this
Change-Id: I706c6b552f9045a4f36dd947d6339840b6d2665c
* Use the latest versions from upstream: 6.1.1
* Meera and AnjaliOldLipi upstream URL is now http://smc.org.in
* Fonts downloaded from upstream release location
download.savannah.gnu.org/releases/smc/fonts/malayalam-fonts-6.1
* Include WOFF2 version of fonts too
* WOFF2 generated using woff2_compress tool of
https://code.google.com/p/font-compression-reference
Change-Id: I55572c462a42efe0ceabd6b5a7bc00310ea58fd3
Regression after the patch I39005ef2425c01b8623bf9df6d75c1e27f1c5bda
and I4a2542b3b745b8b749845a7e8dbb926dd5c4f0e4
Missed to rename the class in MW ULS.
Change-Id: If44d225a2e859dafa544b4a99ee554cecbfd8aca
jquery.uls renamed settings-block class to uls-settings-block.
Similarly icon-close to uls-icon-close
Change-Id: I39005ef2425c01b8623bf9df6d75c1e27f1c5bda
Introduce overridable font family option
Font stacks given in overridableFontFamilies will be overridden
as as exception to the general policy of not altering elements with
explicit font family styles
Change-Id: I579c3ccb6e0c1ad39d434651a4689e8c595e5a84
No change in functionality. Refactored the code a lot and made it as
a jquery plugin, similar to the other components of ULS
Change-Id: I69199ba37b13ec7fd4a9b7b8eba5b3aa28f0edb5
MW ULS uses its api to load the localization. Avoid the conflict with
i18n.load method. Directly use the i18n message stores load method
Bug: 61990
Change-Id: I7ea7e7fc31a0831ae2b2c4b4301fbe81109fdf9d
Preferences were saved using jStorage. The browsers which ULS supports now
have wide native support for local storage, so we removed jquery.jStorage
in I09b2bd52972.
The old local storage key was 'jStorage' as put by jquery.jStorage. We now
check if that key is present. If so we migrate the preferences and remove
the old key to save space. We are not aware of anything else using this
module.
Change-Id: I995a32c4cb7a3bc818fe255f92dbc972211cb112
This patch restores the enableWebfonts preference, stored inside
the uls-preferences blob. It existed as 'enable-webfonts' in
the past and was removed in
If735a733717596fae03042c5e277bd538bd8501f
Each wiki can be configured to load the fonts by default
using the new global variable $wgULSWebfontsEnabled.
Its default value is true (to load fonts).
This also removes the preference 'uls-enable', recently added in
I71b70d8ee7c3cad7f49b32e5dc494ef4fc1bdb2f
The initialization of ext.uls.webfonts.js is changed as well,
so that minimal webfonts JS library code is loaded,
and the rest is loaded only if a user requests it.
Bug: 60304
Change-Id: I49e812eae32266f165591c75fd67b86ca06b13f0
Adding salt won't work for IE since it uses a tofu with small width
for unassigned code points. From tests, algorithm without salt
should be enough for IE.
Change-Id: If39e6c49d272fa67f60c19f1af64f1fb71856bcd
To detect whether the client can render a given string,
use a tofu detection algorithm.
If the user has an explicit font preference, do not override it.
If the user has no preference and there is a default font for a
language, see if that language can be rendered at the user's browser
using tofu detection.
If tofu is detected, apply the font.
If the element has 'autonym' class, apply Autonym font only when
that language has tofu.
Change-Id: Ib9ee9497e6bcfa7eb86f7d264e0980d8880d6b70
So that the fontfamily values are always 'seen' by the webfonts jquery
plugin. Missing this was causing incorrect behavior -overriding the
fontfamiliy from css- in random cases.
The stylesheet ext.uls.webfonts.css define font family values for
interlanguge links and autonym class. This patch make sure that that
css values are read by jquery.webfonts while deciding which font to
apply. Autonym font is supposed to be used for them. If jquery.webfonts
does not read that these elements has a font family defined in css as
"'Autonym', sans-serif", it will attempt to apply fonts as per user
preference or default fonts based on lang attribute. That will cause
applying bigger fonts.
jquery.webfonts does not apply any fonts, if an element has explicit
font family value defined by inline css or by external style sheets.
Bug: 59958
Change-Id: I2da436caa618bc2318e20e3c0492a6bf1c03e162
$wgULSNoWebfontsSelectors had default value as '#p-lang li > a'
-the interlanguage links. It does not make sense after the class
'autonym' was added to such links. That 'autonym' css class has
fontfamily definition as Autonym, sans-serif
ie, Autonym font is applied to the interlanguage links.
So, now it make sense to have default value as .autonym to
exclude from parsing.
This also fixes the problems like Bug 58374 where in random cases
the default font for the language get applied even if it has 'autonym' class.
This issue was because the js get executed before the css for .autonym class is
ready and applied. The jquery.webfonts parser will miss to detect the explicit
fontfamily 'Autonym, sans-serif' and the default font is applied.
Bug: 58374
Change-Id: I7478a58583d3b029ae8e2d63e118917499c29c30
* Use ; for comments
* Avoid unescaped characters like = signs
* Consistency in request-url values
Change-Id: I1a94e30f1acedd934645b70f65025872e4bc7b8e
* Rename JsonMessageLoader to ULSJsonMessageLoader
* Correct the return type of mw.uls.loadLocalization
Follow up: Ic39dec1c484982fb07edd167e83794c0b5f470ee
Change-Id: I13c64a5e89ac75be8a95d951658018a78534f466
Pressing apply button is applicable to all settings module, not only
for the one that is visible. Unless we do a validation before we save
preferences, other module can cause incorrect (old) preferences to be
saved.
Bug: 56885
Change-Id: I31df2ee0bf8b600a94e8fed1a784daf529186b16
In the "interlanguage" position ULS is shown after 2 clicks,
so don't load it initially.
In the "personal" position ULS is shown immediately after
the language icon click, so load it, but conditionally.
The new RL module ext.uls.mediawiki is added for setting
jquery.uls defaults in a way that will lazy-load the language names.
Change-Id: Ic33ef034c794a523b5403867196c6098a58eb5b1
It happens when input settings are accessed directly while display
settings are not initialized. While saving the display settings
will not be rendered, causing a js error
Change-Id: I3ef1afe67a6bcdc3047b482d697bc03baab6ac47
* Avoided Amiri being default font for ar
* Avoided CharisSIL, DuolosSIL being default fonts for
cdo, nan respectively
The change is because of the bandwidth efficiency concerns. Also
Arabic being widely supported language, having defaut font is not
must.
Change-Id: I657d08ded26f25342d18483f6c5a0393f625001b
Move it to a seperate css file ext.uls.webfonts.css so that the RL
modules are more granular and clear.
Also get the @font-face css for Autonym font get ready on page load
so that the font applied automatically to any future elements on page.
Change-Id: Icb76df5baedaba8ab613d665a1be923779a6b9e7
ApiULSLocalization is still present since we have to provide live
language preview feature.
Moved the loading of json file to includes/JsonMessageLoader.php
Also moved all RL modules to includes folder.
Bug: 56509
Change-Id: Ic39dec1c484982fb07edd167e83794c0b5f470ee