Commit graph

11264 commits

Author SHA1 Message Date
Matt Panaro
47b330df2a 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
b194caade4 Fix old migrations failing because of strong_migrations update (#12692)
Fixes #12690

The `strong_migrations` update from f673e3d120
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
ThibG
bb61c1c34f Merge pull request #1257 from ThibG/glitch-soc/merge-upstream
Merge upstream changes
2019-12-28 19:10:27 +01:00
Thibaut Girka
96d17e8437 Merge branch 'master' into glitch-soc/merge-upstream
Conflicts:
- `README.md`
- `package.json`
2019-12-28 17:48:40 +01:00
dependabot-preview[bot]
6b0a7e2437 [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]
f1ac956686 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]
876b466d3a 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]
a05c18d418 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]
16b9769e7d 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]
a61edf88f0 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]
6a61ba5331 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]
3ef1d245ae 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]
8079a99f69 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]
6f2d7abe26 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]
de2082c658 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]
1963edc90c 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]
36e2459806 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]
806ab00db8 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]
10bb570d84 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
9e6149ff63 Fix sample SAML_ACS_URL, SAML_ISSUER (#12669) 2019-12-23 18:12:22 +01:00
BSKY
e175460948 Use eslint cache (#12668) 2019-12-23 07:27:55 +01:00
trwnh
fac09492c4 Update link to install docs (#12666) 2019-12-22 22:22:09 +01:00
Dan Hunsaker
735eb6e35d 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
ThibG
2d3752adaf Merge pull request #1255 from ThibG/glitch-soc/merge-upstream
Merge upstream changes
2019-12-19 16:07:21 +01:00
ThibG
8ec56fc796 [Glitch] Fix manual scrolling issue on Firefox/Windows
Port dd8debffab to glitch-soc

Signed-off-by: Thibaut Girka <thib@sitedethib.com>
2019-12-19 14:43:47 +01:00
Thibaut Girka
7911ee0d8e Fix issue because of theming system 2019-12-19 14:42:16 +01:00
Sasha Sorokin
870a69dec0 [Glitch] Improve report page structure
Port 65b17826c9 to glitch-soc

Signed-off-by: Thibaut Girka <thib@sitedethib.com>
2019-12-19 14:37:12 +01:00
Thibaut Girka
fa4a92e340 Merge branch 'master' into glitch-soc/master
Conflicts:
- `config/locales/en.yml`
  No real conflict, upstream added a translatable string “too close” to
  one specific to glitch-soc
- `lib/mastodon/statuses_cli.rb`
  Fixes made upstream, while changed in glitch-soc to keep bookmarked statuses
- `package.json`
  No real conflict, additional dependency in glitch-soc
2019-12-19 13:52:54 +01:00
Sasha Sorokin
ecd71339db 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
dd8debffab 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
5ef07bad12 fix multiple space (#12655) 2019-12-19 07:39:08 +09:00
dependabot-preview[bot]
031093e9ca [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
62ea1bff7d Fix unsafe column type change in migration (#12653) 2019-12-18 19:04:43 +01:00
ThibG
ec3758bf82 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
069718f6d6 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
fc94f3bd12 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
b08d72ffec Add signature to exported status (#12649) 2019-12-18 16:55:21 +01:00
Bèr Kessels
19ffe5f196 Fix typo in login feature-test. (#12651) 2019-12-18 16:54:29 +01:00
Takeshi Umeda
df28debc53 Fix an error when ActivityPub::FetchRemoteStatusService url is called with nil (#12652) 2019-12-18 16:54:03 +01:00
dependabot-preview[bot]
c9bb21aed0 Bump rails from 5.2.3 to 5.2.4 (#12584)
* Bump rails from 5.2.3 to 5.2.4

Bumps [rails](https://github.com/rails/rails) from 5.2.3 to 5.2.4.
- [Release notes](https://github.com/rails/rails/releases)
- [Commits](https://github.com/rails/rails/compare/v5.2.3...v5.2.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* sprockets ~> 3.7
2019-12-18 08:58:53 +09:00
dependabot-preview[bot]
89ae3ea278 Bump json-ld-preloaded from 3.0.4 to 3.0.6 (#12361)
Bumps [json-ld-preloaded](https://github.com/ruby-rdf/json-ld-preloaded) from 3.0.4 to 3.0.6.
- [Release notes](https://github.com/ruby-rdf/json-ld-preloaded/releases)
- [Commits](https://github.com/ruby-rdf/json-ld-preloaded/compare/3.0.4...3.0.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-18 04:04:30 +09:00
dependabot-preview[bot]
99eff32701 Bump react-redux from 7.1.1 to 7.1.3 (#12626)
Bumps [react-redux](https://github.com/reduxjs/react-redux) from 7.1.1 to 7.1.3.
- [Release notes](https://github.com/reduxjs/react-redux/releases)
- [Changelog](https://github.com/reduxjs/react-redux/blob/master/CHANGELOG.md)
- [Commits](https://github.com/reduxjs/react-redux/compare/v7.1.1...v7.1.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-18 03:54:42 +09:00
dependabot-preview[bot]
74c907d29c Bump webpacker from 4.2.0 to 4.2.2 (#12632)
Bumps [webpacker](https://github.com/rails/webpacker) from 4.2.0 to 4.2.2.
- [Release notes](https://github.com/rails/webpacker/releases)
- [Changelog](https://github.com/rails/webpacker/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rails/webpacker/compare/v4.2.0...v4.2.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-18 03:53:15 +09:00
dependabot-preview[bot]
2eb2a27323 Bump eslint-plugin-import from 2.19.0 to 2.19.1 (#12622)
Bumps [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) from 2.19.0 to 2.19.1.
- [Release notes](https://github.com/benmosher/eslint-plugin-import/releases)
- [Changelog](https://github.com/benmosher/eslint-plugin-import/blob/master/CHANGELOG.md)
- [Commits](https://github.com/benmosher/eslint-plugin-import/compare/v2.19.0...v2.19.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-18 03:42:25 +09:00
dependabot-preview[bot]
449b4dbc27 Bump copy-webpack-plugin from 5.0.5 to 5.1.1 (#12621)
Bumps [copy-webpack-plugin](https://github.com/webpack-contrib/copy-webpack-plugin) from 5.0.5 to 5.1.1.
- [Release notes](https://github.com/webpack-contrib/copy-webpack-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/copy-webpack-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/copy-webpack-plugin/compare/v5.0.5...v5.1.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-18 03:42:02 +09:00
dependabot-preview[bot]
45155ede8c Bump css-loader from 3.2.0 to 3.3.2 (#12624)
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 3.2.0 to 3.3.2.
- [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.2.0...v3.3.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-18 03:41:49 +09:00
dependabot-preview[bot]
659d5f4b0c Bump array-includes from 3.0.3 to 3.1.0 (#12627)
Bumps [array-includes](https://github.com/es-shims/array-includes) from 3.0.3 to 3.1.0.
- [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.0.3...v3.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-18 03:40:34 +09:00
dependabot-preview[bot]
b547e5a3c8 Bump doorkeeper from 5.2.2 to 5.2.3 (#12630)
Bumps [doorkeeper](https://github.com/doorkeeper-gem/doorkeeper) from 5.2.2 to 5.2.3.
- [Release notes](https://github.com/doorkeeper-gem/doorkeeper/releases)
- [Changelog](https://github.com/doorkeeper-gem/doorkeeper/blob/master/CHANGELOG.md)
- [Commits](https://github.com/doorkeeper-gem/doorkeeper/compare/v5.2.2...v5.2.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-18 03:36:49 +09:00
dependabot-preview[bot]
24c87fb84b Bump stackprof from 0.2.13 to 0.2.14 (#12631)
Bumps [stackprof](https://github.com/tmm1/stackprof) from 0.2.13 to 0.2.14.
- [Release notes](https://github.com/tmm1/stackprof/releases)
- [Changelog](https://github.com/tmm1/stackprof/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tmm1/stackprof/compare/v0.2.13...v0.2.14)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-18 03:34:20 +09:00
dependabot-preview[bot]
c28e0efae4 Bump parallel_tests from 2.29.2 to 2.30.0 (#12634)
Bumps [parallel_tests](https://github.com/grosser/parallel_tests) from 2.29.2 to 2.30.0.
- [Release notes](https://github.com/grosser/parallel_tests/releases)
- [Commits](https://github.com/grosser/parallel_tests/compare/v2.29.2...v2.30.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-18 03:32:51 +09:00