From 4c8ac0ea0c80d7cc1baff7bf44ee96b3057306e7 Mon Sep 17 00:00:00 2001 From: diondiondion Date: Wed, 16 Sep 2026 09:45:43 +0000 Subject: [PATCH] Redesign: Fix feature flag attribute not being applied when only server-side flag is enabled (#40547) --- app/javascript/inline/theme-selection.js | 9 --------- app/javascript/mastodon/main.tsx | 10 +++++++++- spec/requests/content_security_policy_spec.rb | 2 +- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/app/javascript/inline/theme-selection.js b/app/javascript/inline/theme-selection.js index 841dbc64366..680fbb23ec2 100644 --- a/app/javascript/inline/theme-selection.js +++ b/app/javascript/inline/theme-selection.js @@ -21,13 +21,4 @@ updateColorScheme(); updateContrast(); - - const isRedesignEnabled = ( - window.localStorage.getItem('experiments')?.split(',') ?? [] - ).includes('redesign'); - - if (isRedesignEnabled) { - element.dataset.redesign = true; - } - })(document.documentElement); diff --git a/app/javascript/mastodon/main.tsx b/app/javascript/mastodon/main.tsx index c87eeb40cea..921bb9ac1a9 100644 --- a/app/javascript/mastodon/main.tsx +++ b/app/javascript/mastodon/main.tsx @@ -10,7 +10,11 @@ import { me, reduceMotion } from 'mastodon/initial_state'; import ready from 'mastodon/ready'; import { store } from 'mastodon/store'; -import { isDevelopment, isProduction } from './utils/environment'; +import { + isDevelopment, + isProduction, + isRedesignEnabled, +} from './utils/environment'; function main() { perf.start('main()'); @@ -33,6 +37,10 @@ function main() { const { initializeEmoji } = await import('./features/emoji/index'); await initializeEmoji(); + if (isRedesignEnabled()) { + document.documentElement.dataset.redesign = 'true'; + } + const root = createRoot(mountNode); root.render( diff --git a/spec/requests/content_security_policy_spec.rb b/spec/requests/content_security_policy_spec.rb index 64df49b14e6..c84c3802f24 100644 --- a/spec/requests/content_security_policy_spec.rb +++ b/spec/requests/content_security_policy_spec.rb @@ -32,7 +32,7 @@ RSpec.describe 'Content-Security-Policy' do img-src 'self' data: blob: #{local_domain} manifest-src 'self' #{local_domain} media-src 'self' data: #{local_domain} - script-src 'self' #{local_domain} 'wasm-unsafe-eval' 'sha256-OgOg5CGI7D4Syg38sNIknJKO+3DCTdpfY1ciC+Bklaw=' + script-src 'self' #{local_domain} 'wasm-unsafe-eval' 'sha256-Z5KW83D+6/pygIQS3h9XDpF52xW3l3BHc7JL9tj3uMs=' style-src 'self' #{local_domain} 'nonce-ZbA+JmE7+bK8F5qvADZHuQ==' worker-src 'self' blob: #{local_domain} CSP