1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-11 01:12:41 +01:00
phorge-phorge/src/applications
epriestley 2bdb5404c7 Implement new profile transform with amazing "error handling" feature
Summary:
Ref T7707. Ref T4406. Ref T2479. This implements the profile-style (fixed width and height) transforms in a modern way.

  - Added a "regnerate" feature to the support UI to make testing easier and surface errors.
  - Laboriously check errors from everything.
  - Fix the profile thumbnailing so it crops properly instead of leaving margins.
  - Also defuses the "gigantic white PNG" attack.

This doesn't handle the imagemagick case (for animated GIFs) yet.

Test Plan:
  - Uploaded a variety of wide/narrow/small/large files and converted them into sensible profile pictures.
  - Tried to thumbnail some text files.
  - Set the pixel-size and file-size limits artificially small and hit them.
  - Used "regenerate" a bunch while testing the rest of this stuff.
  - Verified that non-regenerate flows still produce a default/placeholder image.

Reviewers: btrahan

Reviewed By: btrahan

Subscribers: epriestley

Maniphest Tasks: T4406, T2479, T7707

Differential Revision: https://secure.phabricator.com/D12811
2015-05-13 11:38:45 -07:00
..
almanac Give typeahead browse dialogs sensible titles 2015-04-20 10:06:23 -07:00
aphlict Quicksand - make notification and message counts update as you navigate around 2015-04-21 15:46:36 -07:00
arcanist/conduit Give Conduit params/return/errors protected visibility 2015-04-13 11:58:35 -07:00
audit Remove unused DAO class 2015-04-27 21:18:30 +10:00
auth Give Conduit params/return/errors protected visibility 2015-04-13 11:58:35 -07:00
base Quicksand - fix project board page and quicksand 2015-04-28 14:51:49 -07:00
cache Fix two minor issues 2015-04-13 11:11:18 -07:00
calendar First pass at Month View 2015-05-11 18:15:27 -07:00
celerity Don't add resources to Multimeter when there's no multimeter running 2015-05-04 09:15:15 -07:00
chatlog Make buildWhereClause() a method of AphrontCursorPagedPolicyAwareQuery 2015-04-20 10:06:09 -07:00
conduit Show how to call Conduit API methods from clients 2015-05-08 12:19:52 -07:00
config Skeleton for "Multimeter", a performance sampling application 2015-05-01 13:19:43 -07:00
conpherence Conpherence - change message rendering logic to eradicate possibility of duplicates 2015-05-13 11:06:54 -07:00
console Use phutil_json_decode instead of json_decode 2015-05-05 20:48:55 +10:00
countdown Refactor most uses of AphrontFormDateControl to user AphrontFormDateControlValue 2015-05-05 19:19:20 -07:00
daemon Make buildWhereClause() a method of AphrontCursorPagedPolicyAwareQuery 2015-04-20 10:06:09 -07:00
dashboard Add some missing type hints 2015-05-05 07:33:00 +10:00
differential Implement rough content-aware inline adjustment rules for ghosts 2015-05-07 14:09:41 -07:00
diffusion Fix a bug with DiffusionMergedCommitsQueryConduitAPIMethod 2015-05-05 15:44:34 -07:00
diviner Add some missing type hints 2015-05-05 07:33:00 +10:00
doorkeeper Use phutil_json_decode instead of json_decode 2015-05-05 20:48:55 +10:00
draft/storage Fix visiblity of LiskDAO::getConfiguration() 2015-01-14 06:54:13 +11:00
drydock Make buildWhereClause() a method of AphrontCursorPagedPolicyAwareQuery 2015-04-20 10:06:09 -07:00
fact Modernize Fact a bit 2015-03-03 13:48:30 -08:00
feed Fix excessively-conservative feed story policy checks 2015-05-10 10:55:01 -07:00
files Implement new profile transform with amazing "error handling" feature 2015-05-13 11:38:45 -07:00
flag Make buildWhereClause() a method of AphrontCursorPagedPolicyAwareQuery 2015-04-20 10:06:09 -07:00
fund Expand typeahead document copy 2015-04-27 10:06:38 -07:00
harbormaster Users with no build plan capabilities should see "New Build Plan" button as greyed out and a modal dialog explaining the policy. 2015-04-26 12:45:08 -07:00
help Use phutil_json_decode instead of json_decode 2015-05-05 20:48:55 +10:00
herald Use phutil_json_decode instead of json_decode 2015-05-05 20:48:55 +10:00
home Update various hard-coded URIs 2015-04-26 07:15:25 -07:00
legalpad Fix an issue in legalpad when signing with a registered email address 2015-04-24 14:26:00 -07:00
lipsum Minor tidying of lipsum generate workflow 2015-03-01 09:41:52 +11:00
macro Don't require memes to be at the end of a line 2015-05-07 11:09:14 -07:00
mailinglists Give typeahead browse dialogs sensible titles 2015-04-20 10:06:23 -07:00
maniphest Use phutil_json_decode instead of json_decode 2015-05-05 20:48:55 +10:00
meta Give typeahead browse dialogs sensible titles 2015-04-20 10:06:23 -07:00
metamta Revert a third json_decode() which decodes possible scalars 2015-05-05 13:03:32 -07:00
multimeter Allow Multimeter samples to be grouped by ID 2015-05-04 10:06:43 -07:00
notification Make buildWhereClause() a method of AphrontCursorPagedPolicyAwareQuery 2015-04-20 10:06:09 -07:00
nuance Make buildWhereClause() a method of AphrontCursorPagedPolicyAwareQuery 2015-04-20 10:06:09 -07:00
oauthserver "Create Application" button in OAuth Server application should be greyed out if user does not have correct capabilities. 2015-04-26 12:51:01 -07:00
owners Give typeahead browse dialogs sensible titles 2015-04-20 10:06:23 -07:00
passphrase Improve passphrase.query 2015-05-05 15:59:44 -07:00
paste Add some missing type hints 2015-05-05 07:33:00 +10:00
people Translate "All Day" events into the viewer's time 2015-05-07 18:57:28 -07:00
phame Quicksand - add phame live URLs to quicksand blacklist 2015-05-12 14:44:47 -07:00
phid Make HandlePool resistant to reentrant calls 2015-05-09 13:46:42 -07:00
phlux Make buildWhereClause() a method of AphrontCursorPagedPolicyAwareQuery 2015-04-20 10:06:09 -07:00
pholio Remove unused file transforms 2015-05-13 11:38:45 -07:00
phortune Use phutil_json_decode instead of json_decode 2015-05-05 20:48:55 +10:00
phpast Use PhutilXHPASTBinary methods 2015-02-03 06:59:16 +11:00
phragment Make buildWhereClause() a method of AphrontCursorPagedPolicyAwareQuery 2015-04-20 10:06:09 -07:00
phrequent Refactor most uses of AphrontFormDateControl to user AphrontFormDateControlValue 2015-05-05 19:19:20 -07:00
phriction Add some missing type hints 2015-05-05 07:33:00 +10:00
policy Show which capability is being edited in custom policy dialog 2015-05-05 15:59:56 -07:00
ponder Expand typeahead document copy 2015-04-27 10:06:38 -07:00
project Clear project notifications when viewing workboard or project detail 2015-05-08 12:20:16 -07:00
releeph Use phutil_json_decode instead of json_decode 2015-05-05 20:48:55 +10:00
remarkup/conduit Give Conduit params/return/errors protected visibility 2015-04-13 11:58:35 -07:00
repository Fix "not(project)" in Diffusion 2015-05-07 10:16:37 -07:00
search Use phutil_json_decode instead of json_decode 2015-05-05 20:48:55 +10:00
settings Add a preference to disable ghost comments 2015-05-04 12:02:42 -07:00
slowvote Add some missing type hints 2015-05-05 07:33:00 +10:00
subscriptions Don't claim logged out users are automatically subscribed to un-owned objects 2015-05-10 10:54:48 -07:00
support/application Implement the getName method in PhabricatorApplication subclasses 2014-07-23 23:52:50 +10:00
system Fix visibility of PhutilArgumentWorkflow::didConstruct methods 2015-01-16 07:42:07 +11:00
tokens Make buildWhereClause() a method of AphrontCursorPagedPolicyAwareQuery 2015-04-20 10:06:09 -07:00
transactions Conpherence - use some handle pools for Durable column perf 2015-05-08 18:14:04 -07:00
typeahead Rename TypehaeadUserParameterizedDatasource to PeopleUserFunctionDatasource 2015-04-23 11:49:34 -07:00
uiexample Refactor most uses of AphrontFormDateControl to user AphrontFormDateControlValue 2015-05-05 19:19:20 -07:00
xhprof Use phutil_json_decode instead of json_decode 2015-05-05 20:48:55 +10:00