Commit graph

2961 commits

Author SHA1 Message Date
Gilles Dubuc ce58597b3b Fix hash self-reaction
* Fixes bug where the mmv would react to its own hash changes
* Adds jquery.hashchange for older browser support

Change-Id: I2d23699bb444d9eb533d239e25bc47fa96c902a9
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/254
2014-02-24 19:14:45 +01:00
Zeljko Filipin 006353fd24 Cloudbees Jenkins jobs are now created using Jenkins Job Builder
All Jenkins jobs will fail until this commit is merged:

https://wmf.ci.cloudbees.com/view/mv/

Bug: 61778
Change-Id: I5fb37946bbb15cb1b70045f85aa11ba48ecd2260
2014-02-24 16:46:20 +00:00
jenkins-bot 79d72d391d Merge "Use cross-origin img attribute instead of data URI" 2014-02-24 09:46:59 +00:00
Gilles Dubuc e37c9b809c Fixes hash handling issues
* Fixes the bug where the browser hash would get nuked on
foreign anchor clicks
* Moves the hash handling back into the mmv itself
* Adds test coverage for the hash nuking bug

Change-Id: Iea57d0f4b9090f96e622418223d3f774923e8038
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/254
2014-02-24 08:45:08 +00:00
Gilles Dubuc 28b8f5095e Use cross-origin img attribute instead of data URI
After lots of experimenting with Wireshark and
current Chrome + Firefox on Ubuntu 13.10, this is my
current understanding of the caching when preloading images
with AJAX requests:

* on Chrome, the image request always comes from browser cache
* Firefox makes two separate requests by default
* Firefox with img.crossOrigin = 'anonymous' makes two separate
  requests, but the second one is a 304 (does not load the
  image twice)
* when the image has already been cached by the browser (but not in
  this session), Chrome skips both requests; Firefox skips the AJAX
  request, but sends the normal one, and it returns with 304.

"wish I knew this when I started" things:
* the Chrome DevTools has an option to disable cache. When this is
  enabled, requests in the same document context still come from
  cache (so if I load the page, fire an AJAX request, then without
  reloading the page, fire an AJAX request to the same URL, then the
  second request will be cached), but an AJAX request - image request
  pair is an exception from this.
* when using Ctrl-F5 in Firefox, requests on that page will never hit
  the cache (even AJAX request fired after user activity; even if
  two identical requests follow each other). When using clear cache
  + normal reload, this is not the case.
* if the image does not have an Allow-Origin header and is loaded
  with crossOrigin=true, Firefox will refuse to load it. Chrome will
  log an error in the console saying it refused to load it, but will
  actually load it.
* Wireshark rocks.

Pushed some tech debt (browser + domain whitelist) into other tickets:
https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/232
https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/233

Reverted commits:
    8a8d74f01d.
    63021d0b0e.

Change-Id: I84ab2f3ac0a9706926adf7fe8726ecd9e9f843e0
Bug: 61542
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/207
2014-02-24 07:56:40 +00:00
Translation updater bot 3ac44cb7c3 Localisation updates from https://translatewiki.net.
Change-Id: I56b944b6d5396acfad862e05f00943951cd4d8bf
2014-02-23 21:41:45 +00:00
Mark Holmquist 1733df8dc9 Grand Unified Documentation Patch Jr.
The GRUDP is dead, long live the GRUDPJ

Change-Id: I71a22c3aa42b2eb799ce8104159e8c7e56fe13ae
2014-02-21 00:55:43 +00:00
Gergő Tisza 8b984c5ed4 Minor documentation tweaks
Change-Id: I8b513ceab06ddeb47261949061b777105cfa7b65
2014-02-21 00:45:06 +00:00
Aaron Arcos 8a1bf00ef0 Remove fire_event("onfocus") from next/previous/exit actions, not needed
As suggested by Chrismcmahon, I confirmed that there is no need
to fire the onfocus event. We also remove the convenient functions
around this logic.

Change-Id: I00ce04c758e496f76bd5c2a43ad933c952acc5fb
2014-02-20 14:00:26 -08:00
Translation updater bot c66b57d701 Localisation updates from https://translatewiki.net.
Change-Id: Ib2c86f71eecfbc1f6ab151e35987e4e680f15c64
2014-02-20 21:03:36 +00:00
Cmcmahon d6b8f6a7a3 Merge "Improve e2e tests to check metadata content" 2014-02-20 20:44:46 +00:00
Gilles Dubuc fdeedd6a88 Fix preloadFullscreenThumnail breakage
Since there was no merge conflict and the changeset worked pre-merge, when jenkins merged the fullscreen changeset, it actually turned out to be incompatible with the new code and spews out a nasty JS error. I think from now on I'll always avoid +2ing a diff that hasn't been rebased to the latest. When looking at the diff not rebased to the latest, you just can't see the issues that might happen with the latest code merged and you certainly won't spot the potential breakage that comes with it.

In fact I think a lot of breakages we've encountered as of late were caused by this very issue.

Change-Id: I46b7dd93c55635f34c01bd8d3eee9785140b5f35
2014-02-20 10:34:48 +01:00
Gilles Dubuc 093cfdc697 Preload fullscreen image
Change-Id: Ief72a4ab2e49538132b174fd9fcf792ddab66b3d
2014-02-20 09:43:10 +01:00
jenkins-bot 3f5323608b Merge "Get article path for foreign DB repos too" 2014-02-20 08:38:03 +00:00
Gergő Tisza f2550c0fbc Fix fileUsage test breaking behavior.
fileUsage tests were applying styles to the fixture element, which
apparently does not get cleaned between tests. This was because
fileUsage.$container had different semantics from element.$container
(widget's own container div vs. parent container div). FileUsage
now inherits from Element to make sure behavior is consistent.

Change-Id: I8fab8bcf084d8b7e480655114506d9848e9d9a49
2014-02-20 09:33:34 +01:00
Aaron Arcos bd07e7e7a6 Improve e2e tests to check metadata content
The first version of the e2e tests just checked the presence
of some DOM sections. This 2d version actually verifies the
values for most of the components in the viewer.

Change-Id: Iabfd544f05182e86a16cf6bda162bb0abc5cf260
2014-02-19 18:46:28 -08:00
jenkins-bot 6c3e73c8de Merge "Fix image provider unit test." 2014-02-19 23:54:22 +00:00
Gergő Tisza 3f326bb3bc Fix image provider unit test.
Change-Id: I3a219d7c6277b1cd8332b35f9403e4d99352af41
2014-02-19 23:52:52 +00:00
jenkins-bot b6add9a17b Merge "Hide mouse cursor when buttons are faded out in fullscreen" 2014-02-19 23:48:32 +00:00
Translation updater bot 258bdf7747 Merge "Localisation updates from https://translatewiki.net." 2014-02-19 20:24:28 +00:00
Translation updater bot de292e1215 Localisation updates from https://translatewiki.net.
Change-Id: Ic412a70ec152504830831c95749b743f75cc9054
2014-02-19 20:08:29 +00:00
Aaron Arcos 63021d0b0e Fix e2e tests to support data:URIs
We are using data:URIs to measure performace. This
change broke e2e tests that were trying to match plain urls.

Change-Id: I8220801472cde595dd6651ef2796468eba484071
2014-02-19 12:00:47 -08:00
Mark Holmquist c619a19711 Get article path for foreign DB repos too
We have had this method in all Repo subclasses for a while, but sadly
it never got used and we've unintentionally crippled foreign DB repos
for some time now.

{{fixed}}

Change-Id: I972eb739cdd56c666981d5fbc371fa53024ff359
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/217
2014-02-19 11:13:17 -08:00
Gilles Dubuc d53ca1462e GlobalUsage should utilize the right Api class
Change-Id: Ia0d0ee1d9213f98d89455f88b50616a5fbd87dcf
2014-02-19 19:18:42 +01:00
Gilles Dubuc e1e9a24a0a Missing dependency
Change-Id: I8ce510883e13401d9b1464b1583ee11d01f40df6
2014-02-19 15:41:40 +01:00
Gilles Dubuc 9a0a601278 Hide mouse cursor when buttons are faded out in fullscreen
Change-Id: Ie7bec07a9c79cb5ffde586ccd3cfdd3eac519047
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/210
2014-02-19 12:32:10 +01:00
Mark Holmquist 5df979bd65 Grand Unifying Documentation Patch
Change-Id: Id0def78beb0231270557037a9c530c770b100ce2
2014-02-18 18:27:30 -08:00
Gilles Dubuc 8a8d74f01d Avoid double requests when measuring performance of image load
Change-Id: Ib5ec4c3e4e4a410a6ee520b11bf025d7447cb542
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/207
2014-02-18 16:45:03 -08:00
Gergő Tisza 7afbc5ce92 Use provider XHR information in performance metrics + several fixes
* more robust method of obtaining URL
* decouple performance logging from providers (mostly)
* ignore fake XHR object which jQuery returns for JSONP requests
* guard for CORS requests - apparently Chrome refuses to return
  certain information even with an Allow-Origin: * response header.
* Resource Timing is limited to 150 results, which causes fake
  misses in debug mode. There is an API to increase the limit
  but it is not implemented in Chrome. I am calling it nevertheless,
  maybe IE understands it (it is present in the MSDN docs at least).

This seems to work for AJAX, CORS, JSONP, image AJAX; CORS requests
return 0 for a lot of values, per spec a Timing-Allow-Origin: *
header might help that.

Change-Id: I8353858022f51a7e70774e65513d0fa2554a5064
2014-02-19 00:38:27 +00:00
Gilles Dubuc 035afe6d36 Make metadata animation more subtle
And stop showing when the user has opened the metadata once

Change-Id: Iefce36acf1b78301584ca8c1359fac94956a9440
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/213
2014-02-18 16:17:14 -08:00
Gilles Dubuc a5cddef17a Lazy-load mmv
Also removes the index inside the location hash

Change-Id: I9429ff0101ab891f2c4c6aa2d989fbef0813252d
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/136
2014-02-18 15:55:15 -08:00
Aaron Arcos 715cab7118 Fix failing test after refactoring.
Device pixel ratio was assumed to be '1' but was not explicitly set.

Change-Id: I5ce5e2ad988f14c1c286ae4a422150749c6fdcdd
2014-02-18 14:14:47 -08:00
Gilles Dubuc c9fc2c707f Make the image and navigation buttons unselectable
Change-Id: Iec6d8a9511e2a4c508da7524c9fb0db499d1eb8a
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/214
2014-02-18 19:36:33 +00:00
Gergő Tisza 7124ece961 Switch to core's version of moment.js
Depends on core change I6aa36d34bfbe8334c87d6ca449ec19b6a8daf8e7

Change-Id: I850d318a523e51c064e57fb888c7a10c79df6f72
2014-02-18 08:37:44 +00:00
jenkins-bot 8da610aa95 Merge "Get rid of JSDuck temporary logfile" 2014-02-17 21:35:48 +00:00
Translation updater bot 1d0318f45b Localisation updates from https://translatewiki.net.
Change-Id: Ie04d41eb43b50f1ebc67b559aa9929cc02f5b82a
2014-02-17 20:47:02 +00:00
Translation updater bot a402d8b314 Localisation updates from https://translatewiki.net.
Change-Id: I1ddc06706bbaa25bba89b73d5feebc8dc75bdbb0
2014-02-16 20:20:47 +00:00
Translation updater bot fc41019607 Localisation updates from https://translatewiki.net.
Change-Id: I4f1514a8796bc63a32ed2fa79ccf6ec2cb0817de
2014-02-15 21:05:51 +00:00
Gergő Tisza bf90ce56ec Get rid of JSDuck temporary logfile
Plus make output more colorful.

Change-Id: I9413a46a668a9ea645b27b0c6845652eb924bc7c
2014-02-14 20:22:55 +00:00
Cmcmahon 3a4b659cfb Merge "Moved Ruby code that multiple repositories use to mediawiki_selenium Ruby gem" 2014-02-14 16:45:10 +00:00
jenkins-bot 3dc1b7d0e4 Merge "Big credits patch" 2014-02-14 08:14:31 +00:00
jenkins-bot ad186bafee Merge "Fix missing dependency for mmv.performance" 2014-02-14 01:52:24 +00:00
Gilles Dubuc 35690bb2f1 Get rid of lightboxHooks
Delete lightboxHooks, since most of them
haven't proven to be useful.
Replace the useful ones by jQuery events.

Change-Id: I28f99ba85666ca15979feb5c637924b98bba27a8
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/176
2014-02-13 17:47:30 -08:00
Gergő Tisza 302944352f Move jquery.throttle-debounce to core
Depends on core change I008f46cc97af10e93ad9cad35924aaf251b99aa6 (merged)

Change-Id: I0c5faa4b20274a61d95aa2067f1071d2ab462454
2014-02-13 22:54:00 +00:00
Mark Holmquist 575fd50d95 Big credits patch
Add all authors, and put the extension in the new "Beta features" credit
section in Special:Version.

Change-Id: I22b0ab0ded87191832b469bec21665ef3fd6f2e1
2014-02-13 13:38:19 -08:00
Gergő Tisza dc539cab54 Fix keydown event handling leak
Bug: 61337
Change-Id: Iee28a3e19a5a526876fb93900a12844c35b74ecc
2014-02-13 20:50:05 +00:00
Gilles Dubuc f6053bf599 Fix missing dependency for mmv.performance
Change-Id: I216f1d2f814f99b27a2611112f275801fa52811b
2014-02-13 16:52:18 +01:00
Gilles Dubuc 6e127b25e2 Preload prev/next images
When the lightbox is opened, or prev/next pressed, preloads the
previous/next N images.

Technical debt introduced:
* initialization is a mess, with the viewer and the interface
  randomly setting properties on each other in different phases of
  execution. That got in the way and I shuffled things around
  until they worked, which is obviously not the way to have a
  robust system, but hopefully it will get scrapped soon anyway
  in favor of a clean top-down dependency injection.

Change-Id: Idcb5c40de1ac0b3e482decd66e56c4de8ec71b6b
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/155
2014-02-13 10:52:40 +01:00
jenkins-bot 400ddd7b53 Merge "Add TaskQueue class" 2014-02-13 09:35:37 +00:00
jenkins-bot 52a0e16147 Merge "Fix fullscreen bug where image was replaced with self" 2014-02-13 09:14:18 +00:00