Tested in IE9 and Safari. It seems in Safari the mixture of jQuery
and setAttributeNS causes issues.
Bug: T138430
Change-Id: I4bc63da18d008487d0c8f7b906688e4c8c809efd
Aligning Hovercards' Less to Coding Standards and also variablize
`linkpreview-title` font-family.
Change-Id: I11f2d71ce50dcd0fe47f3c5c528779e29a81cbc6
Before this change we only used to check whether NavPopups gadget is
enabled once per page load. The premise was that we could figure out
whether the gadget was enabled easily given the module name. Since
the gadget module name can be different on diffirent wikis, that
solution would not scale.
With this change we check whether the gadget is enabled before each
hover over an eligible link. We rely on the existence of the global
`window.pg` object. The existence of the object means that the
gadget is enabled, thus we do not show Hovercards.
Bug: T135628
Change-Id: Ica154dd3bfd913202a8b558ea4b10ad177176f83
This is temporary fix to get Hovercards not to show up when
Navigation Popups gadget is enabled on huwiki. The gadget module is
named 'ext.gadget.latszer' and not 'ext.gadget.Navigation_popups'.
Also check whether the global 'pg' variable is created, which means
the Navigation Popups gadget is enabled.
Bug: T135630
Change-Id: I35e1b911967200bfdfd8f44ad4e4b8dcfd844ee7
Unlike what was previously implemented, this patch does not care whether
the user hovers over another link while dismissing the popup.
The `dismissed` action is correctly logged in these cases too.
Bug: T136649
Change-Id: I68473cb8b66bae53213bce186345ca1ce436573f
According to caniuse.com SVG support is available
from IE > 8, Firefox > 3, Safari > 3.1 and Android
> 2.3. Android 3-4.3 does not support masking.
Out of all these browsers, considering market share
and ResourceLoader support, none of these browsers
are of concern to us. In IE8 for example we do not
run JavaScript for our end users. Thus we should remove
this fallback support.
Changes
* Remove createImgThumbnail method and its test
* Groups duplicate CSS groups
* Refactor createThumbnail function
** Leave a FIXME on some curious code
Change-Id: I59ac2e320b2e07815bc4136d5942016fdc1d4340
Bug: T135554
article.surveyLink, article.SIZES and currentRequest do not need to be
globally available on mw.popups.render object. They can be local variables.
Similarly openTimer and closeTimer should not be public APIs.
Changes:
* Add an abort method for purpose of aborting existing requests.
Change-Id: Ic2add9c611990bf80e8b80ab154563f6551a77ea
Use the standardised MediaWiki storage system for the simple use
case of disabling/enabling Popups. The jStorage library is 12kb
uncompressed and cannot be justified for this usage (and if it becomes
the standardised library mw.storage will begin using it)
This means that browsers with full localStorage or no localStorage
support will not be able to disable Popups. Given the current ecosystem
of the web - localStorage is widely supported - and the fact that grade
A browsers enjoy localStorage support - this is not a problem.
See https://github.com/wikimedia/mediawiki/blob/REL1_27/resources/src/startup.js#L59
Changes:
* Stop using jStorage
* Cleanup and migrate previous values in jStorage with plan for removing this
in a month.
Bug: T136241
Change-Id: I6dac2911e84d6cb20731be34add01576cf407c46
To avoid sentence parsing bugs in other languages.
We have to artificially remove the always-added ellipsis from textextracts to
mimic previous behavior, and we'll add ellipsis via CSS afterwards.
Bug: T135824
Change-Id: Idf27f2fd18f7197e588c609eeb62ac8fc80626d7
This action was sent correctly when popups are enabled, but not when
disabled. This commit sends this event also when popups are disabled
so that we are able to compare the metric with popups enabled vs disabled.
Additional changes:
* Chain events in resources/ext.popups.targets/desktopTarget.js
* Add a separate property to the list of defaults and fix formatting.
Bug: T131315
Change-Id: I426f0a1a735b8fe6b16f3d2695d9099dd0d0469b
* Remove floats;
* Get rid of margin collapsing so that the space is easy to understand;
* Fix invalid rules.
Bug: T135629
Change-Id: I3bfaf137e4d02f0dc809c809edac9b28cb4bdc3a
Changes:
* Disable the desktop target by default
* If the user is in the experiment condition, then enable the desktop
target
* Add PopupsExperiment config var, which, if set to true, causes: the
experiment config to be added to the output as config vars, as well as
the ext.popups.desktop Resource Loader module
Bug: T132604
Change-Id: Ia71ca924c3e2ec2ee0b0191ea2573fa7ff5e8a7e
As there are an unmanageable amount of synchronous checks of
mw.popups.enabled, convert mw.popups.experiment.isUserInCondition to a
synchronous method.
Follow on I4959749.
Bug: T132604
Change-Id: Ide07e62868c77bfcd78af58dcec7303a35a72157
Breaks EventLogging as the old schema is not compatible with these
new properties. We will reapply the patch later when in a better state.
My bad for merging.
This reverts commit ca20031a0e.
Change-Id: Ia961e0f99339f9045af9d0a4653599a48518cc95
Changes:
* Add the ext.popups.experiment module
* Add the mw.popups.experiment.isUserInCondition function, which
returns a promise that resolves with true if the user is in the
experimental condition, otherwise false
* If the experiment isn't configured, i.e. wgPopupsExperimentConfig is
null or undefined, then the user isn't entered into the experiment,
providing a kill switch
Bug: T132604
Change-Id: I49597494273e3862711a32e4951c8598e6c8bf59
IE9 does support SVG if you use setAttributeNS.
Thus stop whitelisting SVG support there.
Don't worry about fallback rendering of SVG for IE < 9
- those that do not support SVG also do not
enjoy ResourceLoader JavaScript support.
Bug: T134979
Change-Id: I1d3d9c4c622e98df19a5e9dc4101b44242e07178
This change is an intermediate step in our transition
to logging a variety of events easily.
Also:
* Some events may need sendBeacon support and may not be
logged if the navigator does not support sendBeacon.
* Do not load schema code if EventLogging is not available.
Bug: T131315
Change-Id: Iff939577f65f1c6c71701dd6967939445385fb70
* The classes in ext.popups.core.less apply to the thumbnail
which reside in .mwe-popups > div > a.popups-discreet
The thumbnail is thus not a direct child of the div parent of
popups-discreet.
* The margin-top is unnecessary.
Change-Id: If91140a55baa1aef36483002de681503c2690cf6
Popups currently makes use of a render cache. Using a cache in this
way without protection causes problems (I will look at cleaning this up)
The hack below it
`mw.popups.$popup.html( mw.popups.$popup.html() );`
will lead to the html of the cached object being wiped out on IE9 meaning
future loads will show an empty popup.
Add a unit test (which previously would fail in IE9) to protect against this
in future.
Bug: T68496
Change-Id: Icef784fb389b0ab1856e2ba7464c9423ebcd62ab
Changes:
* Extract survey link element creation into
mw.popups.render.renderers.article#createSurveyLink
* Make #createSurveyLink throw an error if the URL doesn't start with
https or http
* Add unit tests that cover the new behaviour of #createSurveyLink
Bug: T129177
Change-Id: I8b61cb0e94ab4e30bc894c279bb05918ecc7719e
Changes:
* Quote the URL with double quotes when generating the background-image
rule
Bug: T129177
Change-Id: I74748c7efe67954272ce0a539455b0b00001a26a
1. Add comment for empty SPAN when there is no thumbnail
2. Use footer instead of div.timestamp-* as it also contains
the settings icon now.
Change-Id: Ia6fca32770596c980b33a9a6e58bb08b661b90d1
Test pieces that make sense, everything else is already
covered in cucumber tests. See the following commit for more
info: I55f311b6b8845e6ebf4cc5698758afd1f9042a45.
Bug: T133025
Change-Id: I474c1569494601ae5865dcfba22ea728220ff8df
API requests to fetch the hovercards data now include
`X-Analytics: preview=1` header so that HoverCard hovers are
easily distinguishable in Hive.
Bug: T129425
Change-Id: I69df51a627951c4373b3b7463ab5b2c0a129faa1
Linkpreview will try to fetch a text extract using the api and, if this
doesn't fail, show the extract as a drawer with a button "Continue to
article". If the query fails, it will redirect the user to the article
directly.
Bug: T113243
Depends-On: I6d8c5b80e70c3d8d1a92a70cc91e1b90d598cb0f
Change-Id: Idbaae9fe2decd89b73e623a25fbd39464c316fb2
Zopfli is the most efficient DEFLATE compression algorithm, trading run-time
performance for file sizes that are typically 3-8% smaller than those produced
by zlib with the maximum compression setting. Its output is Deflate-compatible,
so no specialized decoder is needed.
This change was created by running zopflipng against all the PNG files in this
repository. The exact invocation was:
git ls-files --exclude-per-directory=.gitignore -- '*.png' \|
parallel zopflipng -m -y {} {} \;
Files which zopflipng was not able to compress more efficiently were left unmodified.
Bug: T127608
Change-Id: I3ec96a8e75ea521315b5944e91ead5e60297c6df