From 4bc60b2b7932e5162ede7eb362033c866af8638f Mon Sep 17 00:00:00 2001 From: Mike Date: Wed, 9 Oct 2024 14:00:25 +1100 Subject: [PATCH] Keep matching mainline as much as possible --- app/controllers/auth/sessions_controller.rb | 4 --- .../well_known/webfinger_controller.rb | 1 + app/javascript/mastodon/components/column.jsx | 8 +---- app/lib/activitypub/activity/flag.rb | 4 --- app/lib/link_details_extractor.rb | 5 --- app/mailers/application_mailer.rb | 6 ---- app/models/concerns/account/interactions.rb | 4 --- app/models/user.rb | 2 -- app/services/fetch_link_card_service.rb | 5 +-- config/application.rb | 4 --- spec/lib/account_statuses_filter_spec.rb | 14 -------- spec/lib/activitypub/tag_manager_spec.rb | 8 ----- spec/lib/link_details_extractor_spec.rb | 6 ---- spec/models/user_spec.rb | 2 -- spec/services/fetch_link_card_service_spec.rb | 13 ------- spec/services/notify_service_spec.rb | 11 ------ spec/services/post_status_service_spec.rb | 34 ------------------- 17 files changed, 3 insertions(+), 128 deletions(-) diff --git a/app/controllers/auth/sessions_controller.rb b/app/controllers/auth/sessions_controller.rb index 972731bb2..ecac4c5ba 100644 --- a/app/controllers/auth/sessions_controller.rb +++ b/app/controllers/auth/sessions_controller.rb @@ -198,8 +198,4 @@ class Auth::SessionsController < Devise::SessionsController format.all { super } end end - - def second_factor_attempts_key(user) - "2fa_auth_attempts:#{user.id}:#{Time.now.utc.hour}" - end end diff --git a/app/controllers/well_known/webfinger_controller.rb b/app/controllers/well_known/webfinger_controller.rb index 2392cb82c..72f0ea890 100644 --- a/app/controllers/well_known/webfinger_controller.rb +++ b/app/controllers/well_known/webfinger_controller.rb @@ -19,6 +19,7 @@ module WellKnown def set_account username = username_from_resource + @account = begin if username == Rails.configuration.x.local_domain || username == Rails.configuration.x.web_domain Account.representative diff --git a/app/javascript/mastodon/components/column.jsx b/app/javascript/mastodon/components/column.jsx index d737bd347..abc87a57e 100644 --- a/app/javascript/mastodon/components/column.jsx +++ b/app/javascript/mastodon/components/column.jsx @@ -22,13 +22,7 @@ export default class Column extends PureComponent { scrollable = document.scrollingElement; } else { scrollable = this.node.querySelector('.scrollable'); - - // Some columns have nested `.scrollable` containers, with the outer one - // being a wrapper while the actual scrollable content is deeper. - if (scrollable.classList.contains('scrollable--flex')) { - scrollable = scrollable?.querySelector('.scrollable') || scrollable; - } - } + } if (!scrollable) { return; diff --git a/app/lib/activitypub/activity/flag.rb b/app/lib/activitypub/activity/flag.rb index 78d5398d1..b7a412485 100644 --- a/app/lib/activitypub/activity/flag.rb +++ b/app/lib/activitypub/activity/flag.rb @@ -42,8 +42,4 @@ class ActivityPub::Activity::Flag < ActivityPub::Activity def report_comment (@json['content'] || '')[0...COMMENT_SIZE_LIMIT] end - - def report_comment - (@json['content'] || '')[0...5000] - end end diff --git a/app/lib/link_details_extractor.rb b/app/lib/link_details_extractor.rb index 925f9a9fe..e4e815c38 100644 --- a/app/lib/link_details_extractor.rb +++ b/app/lib/link_details_extractor.rb @@ -302,11 +302,6 @@ class LinkDetailsExtractor nil end - def detect_encoding - guess = detector.detect(@html, @html_charset) - guess&.fetch(:confidence, 0).to_i > 60 ? guess&.fetch(:encoding, nil) : nil - end - def detector @detector ||= CharlockHolmes::EncodingDetector.new.tap do |detector| detector.strip_tags = true diff --git a/app/mailers/application_mailer.rb b/app/mailers/application_mailer.rb index 6d37f8861..9a209aa77 100644 --- a/app/mailers/application_mailer.rb +++ b/app/mailers/application_mailer.rb @@ -22,10 +22,4 @@ class ApplicationMailer < ActionMailer::Base 'X-Auto-Response-Suppress' => 'All' ) end - - def set_autoreply_headers! - headers['Precedence'] = 'list' - headers['X-Auto-Response-Suppress'] = 'All' - headers['Auto-Submitted'] = 'auto-generated' - end end diff --git a/app/models/concerns/account/interactions.rb b/app/models/concerns/account/interactions.rb index 6877a004a..536afba17 100644 --- a/app/models/concerns/account/interactions.rb +++ b/app/models/concerns/account/interactions.rb @@ -305,8 +305,4 @@ module Account::Interactions def normalized_domain(domain) TagManager.instance.normalize_domain(domain) end - - def normalized_domain(domain) - TagManager.instance.normalize_domain(domain) - end end diff --git a/app/models/user.rb b/app/models/user.rb index e72a6a2c1..c32a575ed 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -128,8 +128,6 @@ class User < ApplicationRecord scope :matches_ip, ->(value) { left_joins(:ips).where('user_ips.ip <<= ?', value).group('users.id') } before_validation :sanitize_role - before_validation :sanitize_time_zone - before_validation :sanitize_locale before_create :set_approved after_commit :send_pending_devise_notifications after_create_commit :trigger_webhooks diff --git a/app/services/fetch_link_card_service.rb b/app/services/fetch_link_card_service.rb index 52f89ae79..7662fc1f2 100644 --- a/app/services/fetch_link_card_service.rb +++ b/app/services/fetch_link_card_service.rb @@ -15,9 +15,6 @@ class FetchLinkCardService < BaseService ) }iox - # URL size limit to safely store in PosgreSQL's unique indexes - BYTESIZE_LIMIT = 2692 - def call(status) @status = status @original_url = parse_urls @@ -94,7 +91,7 @@ class FetchLinkCardService < BaseService def bad_url?(uri) # Avoid local instance URLs and invalid URLs - uri.host.blank? || TagManager.instance.local_url?(uri.to_s) || !%w(http https).include?(uri.scheme) || uri.to_s.bytesize > BYTESIZE_LIMIT + uri.host.blank? || TagManager.instance.local_url?(uri.to_s) || !%w(http https).include?(uri.scheme) end def mention_link?(anchor) diff --git a/config/application.rb b/config/application.rb index b0ea3dfcf..0013c7885 100644 --- a/config/application.rb +++ b/config/application.rb @@ -81,10 +81,6 @@ module Mastodon # config.time_zone = "Central Time (US & Canada)" # config.eager_load_paths << Rails.root.join("extras") - config.public_file_server.headers = { - 'X-Content-Type-Options' => 'nosniff', - } - # config.paths.add File.join('app', 'api'), glob: File.join('**', '*.rb') # config.autoload_paths += Dir[Rails.root.join('app', 'api', '*')] diff --git a/spec/lib/account_statuses_filter_spec.rb b/spec/lib/account_statuses_filter_spec.rb index d360e0e4a..777458512 100644 --- a/spec/lib/account_statuses_filter_spec.rb +++ b/spec/lib/account_statuses_filter_spec.rb @@ -211,20 +211,6 @@ RSpec.describe AccountStatusesFilter do end end - context 'when blocking an unrelated domain' do - let(:other_account) { Fabricate(:account, domain: nil) } - let(:reblogging_status) { Fabricate(:status, account: other_account, visibility: 'public') } - let!(:reblog) { Fabricate(:status, account: account, visibility: 'public', reblog: reblogging_status) } - - before do - current_account.block_domain!('example.com') - end - - it 'returns the reblog from the non-blocked domain' do - expect(subject.results.pluck(:id)).to include(reblog.id) - end - end - context 'when muting a reblogged account' do let(:reblog) { status_with_reblog!('public') } diff --git a/spec/lib/activitypub/tag_manager_spec.rb b/spec/lib/activitypub/tag_manager_spec.rb index 3d6196212..05d2609b0 100644 --- a/spec/lib/activitypub/tag_manager_spec.rb +++ b/spec/lib/activitypub/tag_manager_spec.rb @@ -134,14 +134,6 @@ RSpec.describe ActivityPub::TagManager do reblog = Fabricate(:status, visibility: :public, account: alice, reblog: status) expect(subject.cc(reblog)).to include(subject.uri_for(bob)) end - - it 'returns poster of reblogged post, if reblog' do - bob = Fabricate(:account, username: 'bob', domain: 'example.com', inbox_url: 'http://example.com/bob') - alice = Fabricate(:account, username: 'alice') - status = Fabricate(:status, visibility: :public, account: bob) - reblog = Fabricate(:status, visibility: :public, account: alice, reblog: status) - expect(subject.cc(reblog)).to include(subject.uri_for(bob)) - end end describe '#local_uri?' do diff --git a/spec/lib/link_details_extractor_spec.rb b/spec/lib/link_details_extractor_spec.rb index ba8c8969e..d8d9db0ad 100644 --- a/spec/lib/link_details_extractor_spec.rb +++ b/spec/lib/link_details_extractor_spec.rb @@ -100,12 +100,6 @@ RSpec.describe LinkDetailsExtractor do language: eq('en') ) end - - describe '#language' do - it 'returns the language from structured data' do - expect(subject.language).to eq 'en' - end - end end context 'when is wrapped in CDATA tags' do diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 1f0cf894f..d28e6658f 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -444,8 +444,6 @@ RSpec.describe User do let(:redis_pipeline_stub) { instance_double(Redis::Namespace, publish: nil) } - let(:redis_pipeline_stub) { instance_double(Redis::Namespace, publish: nil) } - before { stub_redis } it 'changes the password immediately and revokes related access' do diff --git a/spec/services/fetch_link_card_service_spec.rb b/spec/services/fetch_link_card_service_spec.rb index aa9bf691f..1d61e33c0 100644 --- a/spec/services/fetch_link_card_service_spec.rb +++ b/spec/services/fetch_link_card_service_spec.rb @@ -235,19 +235,6 @@ RSpec.describe FetchLinkCardService do end end - context 'with an URL too long for PostgreSQL unique indexes' do - let(:url) { "http://example.com/#{'a' * 2674}" } - let(:status) { Fabricate(:status, text: url) } - - it 'does not fetch the URL' do - expect(a_request(:get, url)).to_not have_been_made - end - - it 'does not create a preview card' do - expect(status.preview_card).to be_nil - end - end - context 'with a URL of a page with oEmbed support' do let(:html) { 'Hello world' } let(:status) { Fabricate(:status, text: 'http://example.com/html') } diff --git a/spec/services/notify_service_spec.rb b/spec/services/notify_service_spec.rb index 33ef583c5..935b94c70 100644 --- a/spec/services/notify_service_spec.rb +++ b/spec/services/notify_service_spec.rb @@ -18,17 +18,6 @@ RSpec.describe NotifyService do expect { subject }.to_not change(Notification, :count) end - context 'when the sender is a local moderator' do - let(:sender) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account } - let(:type) { :mention } - let(:activity) { Fabricate(:mention, account: recipient, status: Fabricate(:status, account: sender)) } - - it 'does notify when the sender is blocked' do - recipient.block!(sender) - expect { subject }.to change(Notification, :count).by(1) - end - end - it 'does not notify when sender is muted with hide_notifications' do recipient.mute!(sender, notifications: true) expect { subject }.to_not change(Notification, :count) diff --git a/spec/services/post_status_service_spec.rb b/spec/services/post_status_service_spec.rb index 179832abc..26db398d5 100644 --- a/spec/services/post_status_service_spec.rb +++ b/spec/services/post_status_service_spec.rb @@ -74,40 +74,6 @@ RSpec.describe PostStatusService do ) end end - - it 'returns existing status when used twice with idempotency key' do - account = Fabricate(:account) - status1 = subject.call(account, text: 'test', idempotency: 'meepmeep', scheduled_at: future) - status2 = subject.call(account, text: 'test', idempotency: 'meepmeep', scheduled_at: future) - expect(status2.id).to eq status1.id - end - - context 'when scheduled_at is less than min offset' do - let(:invalid_scheduled_time) { 4.minutes.from_now } - - it 'raises invalid record error' do - expect do - subject.call(account, text: 'Hi future!', scheduled_at: invalid_scheduled_time) - end.to raise_error(ActiveRecord::RecordInvalid) - end - end - - it 'returns existing status when used twice with idempotency key' do - account = Fabricate(:account) - status1 = subject.call(account, text: 'test', idempotency: 'meepmeep', scheduled_at: future) - status2 = subject.call(account, text: 'test', idempotency: 'meepmeep', scheduled_at: future) - expect(status2.id).to eq status1.id - end - - context 'when scheduled_at is less than min offset' do - let(:invalid_scheduled_time) { 4.minutes.from_now } - - it 'raises invalid record error' do - expect do - subject.call(account, text: 'Hi future!', scheduled_at: invalid_scheduled_time) - end.to raise_error(ActiveRecord::RecordInvalid) - end - end end it 'creates response to the original status of boost' do