Commit graph

22 commits

Author SHA1 Message Date
Timo Tijhof a43a11136a PdfHandler: Set cache with clearer key group and finite expiry
* The key group should generally reflect a single logical key,
  usually a single getWithSet call, with the rest being variants
  of that key, e.g. not a namespace.

* Give it an explicit expiry. I noticed this issue by reviewing the
  remaining data stored on WMF's mainstash-redis instances.

  There were some old file-pdf:* keys there from long ago. They were
  able to survive this long due to not having an expiry set.

  Ref https://phabricator.wikimedia.org/T280586#8168908
  Ref https://phabricator.wikimedia.org/T314453#8168858

Change-Id: Ibad24c0ac7d1e7f965227f49320814b96375858e
2022-09-02 15:18:23 +02:00
Derk-Jan Hartman b846970ae2 Use the PDF cropbox for rendering
By default the mediabox is used. This is the full potential area of
pages, as also used by PDF editors and can contain areas outside of
the page.
The cropbox is also the size that is reported by pdfinfo as the
pagesize.

Bug: T167420
Change-Id: I92267a9dbe81b6e0e471b8eae1e4c2ba4e5d84e9
2022-06-15 18:39:35 +00:00
Umherirrender 42c1ee7c0a build: Remove unneeded suppression after ImageHandler::normaliseParams
Depends-On: I8d14e49340d30c56642422cd88169019dd2c4286
Change-Id: Ie4561840fe70e0ef92e8eec1c6edc335f0da6c1f
2022-04-06 21:32:32 +02:00
zoranzoki21 68b4048e0e Fix excluded PHPCS error MediaWiki.Commenting.FunctionComment.MissingDocumentationProtected
Change-Id: Iba99ebfc6e96bdfbd61f2a8151c54f1e50272d26
2022-03-06 13:23:43 +00:00
Umherirrender 44e2d41b8f build: Disable phan option scalar_implicit_cast and make pass
Change-Id: I30c11acd17334f292c7a83dba49cf59d182728f3
2021-09-26 12:18:33 +00:00
Reedy 7d6a851e1d Code tweaks
* Some better variable names
* Remove some temporary variables

Change-Id: I71ac904c43449891e34769e6dfdc271fe91ef865
2021-09-19 01:56:26 +01:00
Kunal Mehta bbb15eb87c Remove questionable PdfHandler::isEnabled() implementation
The variables are set to default values in extension.json, so
someone would have to manually set them to null values to trigger
this check. At that point, surely you'd just disable the extension.

A check like is_executable() might've made sense, however with the
introduction of Shellbox, it would be totally fine for the binaries
to not exist on the host where MediaWiki is running, but only in the
container. So just removing the check seems like the most
straightforward thing to do.

Bug: T289228
Change-Id: I5da0625959fdfa01c36c955c82320dbc591b3f23
2021-09-03 01:07:49 -07:00
Kunal Mehta 2328f802b1 Move pdfhandler.messages module to extension.json
These messages have not changed since they were originally defined
in f4f87ceb (2015). Instead of using a hook to register the module
at runtime, put it in extension.json with a note next to the warning
configuration to keep the messages in sync.

Change-Id: I135bf1a9f2cd59926a40cc565e5c8a2a6f2483c0
2021-09-03 00:59:19 -07:00
Tim Starling 989b42b8eb Use the new metadata splitting facility to improve PDF performance
* Migrate to the new metadata system: override getSizeAndMetadata()
* Use getHandlerState() instead of a custom property on the File object.
* Opt in to metadata splitting. Avoid loading the text item unless it is
  really needed.
* In getDimensionInfo(), use getHandlerState() instead of the
  WANObjectCache process cache (pcTTL). This is just a
  micro-optimisation, informed by profiling, which showed 90 calls to
  this function during an image page view.

Depends-On: I876ea5c9d3a1881e278f689d2f8a3ae20240c703
Change-Id: I30d0b0009fcb11c14d14663bd1f2c2a3dfac55d6
2021-06-11 15:56:57 +10:00
libraryupgrader d82137564f build: Updating dependencies
composer:
* mediawiki/mediawiki-codesniffer: 35.0.0 → 36.0.0
  The following sniffs now pass and were enabled:
  * MediaWiki.Commenting.PropertyDocumentation.MissingDocumentationPublic

* php-parallel-lint/php-parallel-lint: 1.2.0 → 1.3.0

npm:
* grunt: 1.3.0 → 1.4.0
* lodash: 4.17.19 → 4.17.21
  * https://npmjs.com/advisories/1673 (CVE-2021-23337)

Change-Id: I1afc4814a0d4645c4ff08f9c6845f0bbc2353900
2021-05-12 14:12:43 +00:00
Reedy f375ff3bde Code cleanup
Change-Id: I8eaba727c73560eadb11ae471853e5cedc547809
2021-02-11 20:33:34 +00:00
Reedy 5f0b70972d Namespace extension
Change-Id: I1e80a32a71e4b15d38e1e91b866dbcca848f188c
2021-02-11 04:14:37 +00:00
libraryupgrader 85b38761df build: Updating mediawiki/mediawiki-phan-config to 0.10.4
Change-Id: Id8810e6914149d0163aa28ee0eb99cd68b7752ce
2020-11-20 13:24:35 +00:00
C. Scott Ananian f0799bec7b Don't try to format pdf-specific metadata as numbers
Bug: T266677
Depends-On: I184a7976f2e63f2e70a87257d7749af688659c9d
Change-Id: I80ba13af986859f8f2d751d320a0fcfc73f1672c
2020-10-30 12:44:11 -04:00
Seb35 3182cba012 Send ghostscript errors to stderr instead of stdout
According to ghostscript developers the parameter -sstdout should
be after -sOutputFile.

Bug: T50007
Change-Id: I13fd25ada571aee9eb793cd6e195a04eb86bce63
2019-10-22 16:32:17 +02:00
Derick Alangi 51185ca9cb Avoid usage of deprecated ObjectCache::getMainWANInstance()
Replacement with services made available in 1.28 and this extension
requires 1.32. So, the replacement is good.

Change-Id: I7939726f5a1d516f17e416bec1999faab95db806
2019-07-03 14:32:32 +01:00
Kunal Mehta 16abfa4af8 Upgrade to newer phan
Bug: T216935
Change-Id: I31b3dd55ffe1d6d5532d25081ac0b2c1ce467237
2019-03-16 22:17:42 -07:00
Reedy 0affe889db Update MediaWiki namespaced AtEase global functions
Change-Id: Icf009b46a2c63ebba6ff94ddd66c5b27129a3a4f
2019-02-13 00:24:51 +00:00
Umherirrender 8a7814ba47 Add method scope visibility
Change-Id: If65af857042ee67122b2bc623176efb177cbe0bb
2018-11-01 21:44:19 +01:00
Kunal Mehta 484c07ca62 Fix PhanTypeMismatchArgumentInternal error
Change-Id: I46fa1de4fa55add4e19db15d39233ec3d73eab5e
2018-02-24 17:57:17 -08:00
Kunal Mehta 0a049abdcd Add phan configuration
This required updating ThumbnailImage constructors to the new call
signature.

Change-Id: Ia04d4dd523e1778992dcd5f45e9d3126649369c1
2018-02-24 16:43:55 -08:00
Kunal Mehta b89ddbca99 Move classes to includes/
Change-Id: I4ad03611ac644541903897276e8da37c3cfeed8b
2018-02-24 16:43:51 -08:00
Renamed from PdfHandler_body.php (Browse further)