11use std:: net:: SocketAddr ;
22
3- use axum:: headers:: ContentEncoding ;
3+ use axum:: headers:: { ContentEncoding , HeaderName } ;
44use axum:: http:: { HeaderValue , StatusCode } ;
55use axum:: response:: { Html , IntoResponse , Response } ;
66use axum:: routing:: { get, get_service} ;
77use axum:: { Router , TypedHeader } ;
88use tower:: ServiceBuilder ;
99use tower_http:: services:: ServeDir ;
10+ use tower_http:: set_header:: SetResponseHeaderLayer ;
1011
1112use crate :: wasm_bindgen:: WasmBindgenOutput ;
1213use crate :: Result ;
@@ -23,7 +24,16 @@ pub struct Options {
2324pub async fn run_server ( options : Options , output : WasmBindgenOutput ) -> Result < ( ) > {
2425 let WasmBindgenOutput { js, compressed_wasm } = output;
2526
26- let middleware_stack = ServiceBuilder :: new ( ) . into_inner ( ) ;
27+ let middleware_stack = ServiceBuilder :: new ( )
28+ . layer ( SetResponseHeaderLayer :: if_not_present (
29+ HeaderName :: from_static ( "cross-origin-opener-policy" ) ,
30+ HeaderValue :: from_static ( "same-origin" ) ,
31+ ) )
32+ . layer ( SetResponseHeaderLayer :: if_not_present (
33+ HeaderName :: from_static ( "cross-origin-embedder-policy" ) ,
34+ HeaderValue :: from_static ( "require-corp" ) ,
35+ ) )
36+ . into_inner ( ) ;
2737
2838 let version = generate_version ( ) ;
2939
0 commit comments