Commit Graph

8658 Commits

Author SHA1 Message Date
Matt Panaro
31f7c3fc5d Summary: fix slowness due to layout thrashing when reloading a large … (#12661)
* Summary: fix slowness due to layout thrashing when reloading a large set of status updates

in order to limit the maximum size of a status in a list view (e.g. the home timeline), so as to avoid having to scroll all the way through an abnormally large status update (see https://github.com/tootsuite/mastodon/pull/8205), the following steps are taken:
•the element containing the status is rendered in the browser
•its height is calculated, to determine if it exceeds the maximum height threshold.
Unfortunately for performance, these steps are carried out in the componentDidMount(/Update) method, which also performs style modifications on the element.  The combination of  height request and style modification during javascript evaluation in the browser leads to layout-thrashing, where the elements are repeatedly re-laid-out (see https://developers.google.com/web/fundamentals/performance/rendering/avoid-large-complex-layouts-and-layout-thrashing & https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Performance_best_practices_for_Firefox_fe_engineers).
The solution implemented here is to memoize the collapsed state in Redux the first time the status is seen (e.g. when fetched as part of a small batch, to populate the home timeline) , so that on subsequent re-renders, the value can be queried, rather than recalculated.  This strategy is derived from https://github.com/tootsuite/mastodon/pull/4439 & https://github.com/tootsuite/mastodon/pull/4909, and should resolve https://github.com/tootsuite/mastodon/issues/12455.

Andrew Lin (https://github.com/onethreeseven) is thanked for his assistance in root cause analysis and solution brainstorming

* remove getSnapshotBeforeUpdate from status

* remove componentWillUnmount from status

* persist last-intersected status update and restore when ScrollableList is restored

e.g. when navigating from home-timeline to a status conversational  thread and <Back again

* cache currently-viewing status id to avoid calling redux with identical value

* refactor collapse toggle to pass explicit boolean
2019-12-29 05:39:48 +01:00
ThibG
1155dc0835 Fix old migrations failing because of strong_migrations update (#12692)
Fixes #12690

The `strong_migrations` update from ba2eac8824
introduced a check for `change_column_null` specific to Postgres. This rejects
old migrations.

This commit just wraps old migrations with `safety_assured` to bypass this
check. Alternatives would have been to:
- Disable that check entirely (a possibility added in that same
  `strong_migrations` version) for Mastodon, but it makes sense to write new
  migrations without such a strong lock.
- Rewrite the old migrations to do it in a way that do not require an exclusive
  lock. I thought fixing those old migrations for performance wasn't worth the
  pain. Also, if I understand correctly, the next version of
  `strong_migrations` is going to include a helper to do that. We could update
  those migrations at that point.
2019-12-29 05:39:08 +01:00
248e22cf6c style and place footer links 2019-12-28 11:19:51 +01:00
dependabot-preview[bot]
7ff7ca8c7c [Security] Bump handlebars from 4.2.0 to 4.5.3 (#12694)
Bumps [handlebars](https://github.com/wycats/handlebars.js) from 4.2.0 to 4.5.3. **This update includes a security fix.**
- [Release notes](https://github.com/wycats/handlebars.js/releases)
- [Changelog](https://github.com/wycats/handlebars.js/blob/master/release-notes.md)
- [Commits](https://github.com/wycats/handlebars.js/compare/v4.2.0...v4.5.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-27 11:41:55 +09:00
dependabot-preview[bot]
8e2cbade79 Bump @babel/runtime from 7.7.6 to 7.7.7 (#12670)
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.7.6 to 7.7.7.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.7.7/packages/babel-runtime)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-25 09:15:31 +09:00
dependabot-preview[bot]
14cca940d9 Bump enzyme from 3.10.0 to 3.11.0 (#12675)
Bumps [enzyme](https://github.com/airbnb/enzyme/tree/HEAD/packages/enzyme) from 3.10.0 to 3.11.0.
- [Release notes](https://github.com/airbnb/enzyme/releases)
- [Changelog](https://github.com/airbnb/enzyme/blob/master/CHANGELOG.md)
- [Commits](https://github.com/airbnb/enzyme/commits/enzyme@3.11.0/packages/enzyme)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-25 09:15:03 +09:00
dependabot-preview[bot]
038a1246f5 Bump object.values from 1.1.0 to 1.1.1 (#12625)
Bumps [object.values](https://github.com/es-shims/Object.values) from 1.1.0 to 1.1.1.
- [Release notes](https://github.com/es-shims/Object.values/releases)
- [Changelog](https://github.com/es-shims/Object.values/blob/master/CHANGELOG.md)
- [Commits](https://github.com/es-shims/Object.values/compare/v1.1.0...v1.1.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-25 03:15:44 +09:00
dependabot-preview[bot]
504763dd06 Bump @babel/preset-env from 7.7.6 to 7.7.7 (#12672)
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.7.6 to 7.7.7.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.7.6...v7.7.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-25 02:42:11 +09:00
dependabot-preview[bot]
530ac83cc1 Bump css-loader from 3.3.2 to 3.4.0 (#12673)
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 3.3.2 to 3.4.0.
- [Release notes](https://github.com/webpack-contrib/css-loader/releases)
- [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/css-loader/compare/v3.3.2...v3.4.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-25 02:40:58 +09:00
dependabot-preview[bot]
ec6de73001 Bump mini-css-extract-plugin from 0.8.0 to 0.9.0 (#12674)
Bumps [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin) from 0.8.0 to 0.9.0.
- [Release notes](https://github.com/webpack-contrib/mini-css-extract-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/mini-css-extract-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v0.8.0...v0.9.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-25 02:38:44 +09:00
dependabot-preview[bot]
d29655c495 Bump sass from 1.23.3 to 1.24.0 (#12676)
Bumps [sass](https://github.com/sass/dart-sass) from 1.23.3 to 1.24.0.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.23.3...1.24.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-25 02:33:12 +09:00
dependabot-preview[bot]
ea08fc7dd2 Bump rubocop from 0.77.0 to 0.78.0 (#12677)
Bumps [rubocop](https://github.com/rubocop-hq/rubocop) from 0.77.0 to 0.78.0.
- [Release notes](https://github.com/rubocop-hq/rubocop/releases)
- [Changelog](https://github.com/rubocop-hq/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop-hq/rubocop/compare/v0.77.0...v0.78.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-25 02:27:14 +09:00
dependabot-preview[bot]
41854528ee Bump array-includes from 3.1.0 to 3.1.1 (#12671)
Bumps [array-includes](https://github.com/es-shims/array-includes) from 3.1.0 to 3.1.1.
- [Release notes](https://github.com/es-shims/array-includes/releases)
- [Changelog](https://github.com/es-shims/array-includes/blob/master/CHANGELOG.md)
- [Commits](https://github.com/es-shims/array-includes/compare/v3.1.0...v3.1.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-25 02:25:51 +09:00
dependabot-preview[bot]
ab25e9e691 Bump faker from 2.8.1 to 2.9.0 (#12680)
Bumps [faker](https://github.com/faker-ruby/faker) from 2.8.1 to 2.9.0.
- [Release notes](https://github.com/faker-ruby/faker/releases)
- [Changelog](https://github.com/faker-ruby/faker/blob/master/CHANGELOG.md)
- [Commits](https://github.com/faker-ruby/faker/compare/v2.8.1...v2.9.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-25 02:25:14 +09:00
dependabot-preview[bot]
d22f38bb6e Bump strong_migrations from 0.5.0 to 0.5.1 (#12679)
Bumps [strong_migrations](https://github.com/ankane/strong_migrations) from 0.5.0 to 0.5.1.
- [Release notes](https://github.com/ankane/strong_migrations/releases)
- [Changelog](https://github.com/ankane/strong_migrations/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ankane/strong_migrations/compare/v0.5.0...v0.5.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-23 22:38:19 +01:00
dependabot-preview[bot]
e0c2ecb1d3 Bump rails from 5.2.4 to 5.2.4.1 (#12682)
Bumps [rails](https://github.com/rails/rails) from 5.2.4 to 5.2.4.1.
- [Release notes](https://github.com/rails/rails/releases)
- [Commits](https://github.com/rails/rails/compare/v5.2.4...v5.2.4.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-23 22:37:35 +01:00
dependabot-preview[bot]
cb4831a5ac Bump rack-attack from 6.2.1 to 6.2.2 (#12681)
Bumps [rack-attack](https://github.com/kickstarter/rack-attack) from 6.2.1 to 6.2.2.
- [Release notes](https://github.com/kickstarter/rack-attack/releases)
- [Changelog](https://github.com/kickstarter/rack-attack/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kickstarter/rack-attack/compare/v6.2.1...v6.2.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-23 22:36:06 +01:00
dependabot-preview[bot]
28376b319b Bump oj from 3.9.2 to 3.10.0 (#12683)
Bumps [oj](https://github.com/ohler55/oj) from 3.9.2 to 3.10.0.
- [Release notes](https://github.com/ohler55/oj/releases)
- [Changelog](https://github.com/ohler55/oj/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/ohler55/oj/compare/v3.9.2...v3.10.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-23 22:35:04 +01:00
Aries
44f88a334b Fix sample SAML_ACS_URL, SAML_ISSUER (#12669) 2019-12-23 18:12:22 +01:00
d867f9c57b Merge branch 'messaging' 2019-12-23 17:11:04 +01:00
3008f5e026 links and tags 2019-12-23 17:09:56 +01:00
5175059c24 🎨 styling timelines
Signed-off-by: Baptiste Lemoine <contact@cipherbliss.com>
2019-12-23 17:00:57 +01:00
0e3069c8d7 👽 convert direct messages to private messages
Signed-off-by: Baptiste Lemoine <contact@cipherbliss.com>
2019-12-23 16:28:07 +01:00
948e2e5e9b automatically enable snow on the 3 last weeks of the year, add links to external utilities 2019-12-23 15:04:13 +01:00
a43f67dd03 🎨 big answering buttons for conversations in direct messages 2019-12-23 12:41:49 +01:00
ff53301fdb 🎨 full width for send toot button 2019-12-23 12:24:29 +01:00
879a6ef656 factorize maxTootCharsLimit to only have one setting in the compose form 2019-12-23 12:10:55 +01:00
26002f4b67 airmail style for notifications about direct messages 2019-12-23 11:44:49 +01:00
03fd10d068 Merge branch 'master' of https://github.com/tootsuite/mastodon into messaging
 add snow effect conditionnally

# Conflicts:
#	package.json
#	yarn.lock
2019-12-23 11:01:09 +01:00
BSKY
cf4dc3ffb3 Use eslint cache (#12668) 2019-12-23 07:27:55 +01:00
trwnh
db530966f7 Update link to install docs (#12666) 2019-12-22 22:22:09 +01:00
8661eb28a4 split conversation example 2019-12-22 18:48:13 +01:00
0b5c3dba2a debug info in threads 2019-12-22 18:30:22 +01:00
Dan Hunsaker
6821b34e02 Correct the Nanobox deploy hooks for order and context (#12663)
One hook was actually duplicated incorrectly; this has been fixed. Another hook was re-ordered for better results in actual use.
2019-12-22 08:55:27 +01:00
a572fd707a 🎨 staff only link to manage trending tags and administrate user 2019-12-21 17:20:44 +01:00
9c968a0b23 refacto messaging into several components 2019-12-21 17:03:26 +01:00
d0ee3a8dad Merge branch 'messaging' of https://framagit.org/tykayn/mastodon into messaging 2019-12-21 15:16:59 +01:00
15a9f2633f stuff for messaging box 2019-12-21 15:16:13 +01:00
tykayn
e064b3eb15 🐛 fix typo in migration 2019-12-20 14:30:43 +01:00
tykayn
046b9ed6f8 link to suspend account 2019-12-20 14:30:13 +01:00
Sasha Sorokin
902c6bed5a Use different strings on exports page (#12569)
Currently the page re-uses strings from other contexts which doesn't fit
very well - strings incorrectly lowercase-d and pluralized, when they
don't need to be, because it's a table.

This commit changes page to re-use accounts.posts_tab_heading for toots,
and admin.accounts for "Following" and "Follows". This all should look
more aesthetically pleasing.
2019-12-19 12:47:55 +01:00
ThibG
dc0750abc3 Fix manual scrolling issue on Firefox/Windows (#12648)
Fixes #12607

`will-change: transform` apparently makes manual scrolling impossible on
Firefox/Windows. While this should probably be considered a Firefox bug,
`will-change: transform` seem like a very aggressive performance hint that
may possibly make the browser consume more resources than needed, especially
in multiple-column mode.

This was originally added to improve scrolling performances on mobile, but
I think this isn't necessary anymore, because of the two following reasons:
- `contain: paint` (which is implied by `contain: strict`, which we apply
  whenever the browser supports grids) should have similar effects
- in single-column mode, the scrolling container is the root element, which
  I believe is optimized in at least Chromium

Keep in mind that I have not been able to make in-depth benchmarks, and
especially not been able to try on mobile, so performances should probably
be investigated further…
2019-12-19 12:47:19 +01:00
Marcin Mikołajczak
a90258dbe9 fix multiple space (#12655) 2019-12-19 07:39:08 +09:00
dependabot-preview[bot]
4dbf0a91b2 [Security] Bump rack from 2.0.7 to 2.0.8 (#12654)
Bumps [rack](https://github.com/rack/rack) from 2.0.7 to 2.0.8. **This update includes a security fix.**
- [Release notes](https://github.com/rack/rack/releases)
- [Changelog](https://github.com/rack/rack/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rack/rack/compare/2.0.7...2.0.8)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-19 07:21:51 +09:00
Eugen Rochko
1afbe083fd
Fix unsafe column type change in migration (#12653) 2019-12-18 19:04:43 +01:00
ThibG
c0ed53b810 Fix custom emoji category creation silently erroring out on duplicate category (#12647)
Instead, just re-use the existing category if any.

Fixes #12608
2019-12-18 16:56:59 +01:00
ThibG
fb9137752a Remove unused translatable strings (#12643)
* Remove unused “salmon_url” string

* Remove more unused translatable strings

The following strings all used to be on the admin account page
but aren't used anymore: profile_url, outbox_url, followers_url, feed_url
2019-12-18 16:56:39 +01:00
ThibG
b364175e1b Fix link crawler not specifying accepted content-type (#12646)
The link crawler expects HTML documents, so set the `Accept`
header accordingly.

Fixes #12618
2019-12-18 16:56:06 +01:00
Takeshi Umeda
68070e82cc Add signature to exported status (#12649) 2019-12-18 16:55:21 +01:00
Bèr Kessels
8a347f4937 Fix typo in login feature-test. (#12651) 2019-12-18 16:54:29 +01:00