From 99f962ba731f67050a914bb5b9a245869531ebd1 Mon Sep 17 00:00:00 2001 From: ThibG Date: Wed, 3 Jan 2018 04:57:57 +0100 Subject: [PATCH] Allow HTTP caching of json view of public statuses (#6115) * Allow HTTP caching of json view of public statuses HTML views are not cached as they can contain private statuses as well * Disable session cookies for ActivityPub json rendering of public toots --- app/controllers/statuses_controller.rb | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/controllers/statuses_controller.rb b/app/controllers/statuses_controller.rb index e8a360fb5..c00b9f034 100644 --- a/app/controllers/statuses_controller.rb +++ b/app/controllers/statuses_controller.rb @@ -10,6 +10,7 @@ class StatusesController < ApplicationController before_action :set_link_headers before_action :check_account_suspension before_action :redirect_to_original, only: [:show] + before_action { response.headers['Vary'] = 'Accept' } def show respond_to do |format| @@ -25,6 +26,12 @@ class StatusesController < ApplicationController serializer: ActivityPub::NoteSerializer, adapter: ActivityPub::Adapter, content_type: 'application/activity+json' + + # Allow HTTP caching for 3 minutes if the status is public + unless @stream_entry.hidden? + request.session_options[:skip] = true + expires_in(3.minutes, public: true) + end end end end