mirror of
https://git.nadeko.net/Fijxu/invidious.git
synced 2025-12-14 00:55:10 +00:00
Fix: Handle CSP header correctly
Some checks failed
Build and release container directly from master / release (docker/Dockerfile, AMD64, ubuntu-latest, linux/amd64, ) (push) Has been cancelled
Build and release container directly from master / release (docker/Dockerfile.arm64, ARM64, ubuntu-24.04-arm, linux/arm64/v8, -arm64) (push) Has been cancelled
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.12.2, true) (push) Has been cancelled
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.13.3, true) (push) Has been cancelled
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.14.1, true) (push) Has been cancelled
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.15.1, true) (push) Has been cancelled
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.16.3, true) (push) Has been cancelled
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (nightly, false) (push) Has been cancelled
Invidious CI / Test ${{ matrix.name }} Docker build (AMD64, ubuntu-latest) (push) Has been cancelled
Invidious CI / Test ${{ matrix.name }} Docker build (ARM64, ubuntu-24.04-arm) (push) Has been cancelled
Invidious CI / lint (push) Has been cancelled
Some checks failed
Build and release container directly from master / release (docker/Dockerfile, AMD64, ubuntu-latest, linux/amd64, ) (push) Has been cancelled
Build and release container directly from master / release (docker/Dockerfile.arm64, ARM64, ubuntu-24.04-arm, linux/arm64/v8, -arm64) (push) Has been cancelled
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.12.2, true) (push) Has been cancelled
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.13.3, true) (push) Has been cancelled
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.14.1, true) (push) Has been cancelled
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.15.1, true) (push) Has been cancelled
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.16.3, true) (push) Has been cancelled
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (nightly, false) (push) Has been cancelled
Invidious CI / Test ${{ matrix.name }} Docker build (AMD64, ubuntu-latest) (push) Has been cancelled
Invidious CI / Test ${{ matrix.name }} Docker build (ARM64, ubuntu-24.04-arm) (push) Has been cancelled
Invidious CI / lint (push) Has been cancelled
This commit is contained in:
@@ -37,7 +37,7 @@ module BackendInfo
|
|||||||
updated_status[index] = Status::Working.to_i
|
updated_status[index] = Status::Working.to_i
|
||||||
updated_ends.push(index)
|
updated_ends.push(index)
|
||||||
end
|
end
|
||||||
generate_csp([companion.public_url.to_s, companion.i2p_public_url.to_s], index)
|
generate_csp([companion.public_url, companion.i2p_public_url], index)
|
||||||
else
|
else
|
||||||
@@check_mutex.synchronize do
|
@@check_mutex.synchronize do
|
||||||
updated_status[index] = Status::Dead.to_i
|
updated_status[index] = Status::Dead.to_i
|
||||||
@@ -60,11 +60,12 @@ module BackendInfo
|
|||||||
@@status = updated_status
|
@@status = updated_status
|
||||||
end
|
end
|
||||||
|
|
||||||
private def generate_csp(companion_url : Array(String), index : Int32? = nil)
|
private def generate_csp(companion_url : Array(URI), index : Int32? = nil)
|
||||||
@@csp_mutex.synchronize do
|
@@csp_mutex.synchronize do
|
||||||
@@csp[index] = ""
|
@@csp[index] = ""
|
||||||
companion_url.each do |url|
|
companion_url.each do |url|
|
||||||
@@csp[index] += " #{url}"
|
fixed_url = "#{url.scheme}://#{url.host}#{url.port ? ":#{url.port}" : ""}"
|
||||||
|
@@csp[index] += " #{fixed_url}"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -210,18 +210,6 @@ module Invidious::Routes::Embed
|
|||||||
if CONFIG.invidious_companion.present?
|
if CONFIG.invidious_companion.present?
|
||||||
current_companion = env.get("current_companion").as(Int32)
|
current_companion = env.get("current_companion").as(Int32)
|
||||||
invidious_companion = CONFIG.invidious_companion[current_companion]
|
invidious_companion = CONFIG.invidious_companion[current_companion]
|
||||||
|
|
||||||
invidious_companion_urls = CONFIG.invidious_companion.reject(&.builtin_proxy).map do |companion|
|
|
||||||
uri =
|
|
||||||
"#{companion.public_url.scheme}://#{companion.public_url.host}#{companion.public_url.port ? ":#{companion.public_url.port}" : ""}"
|
|
||||||
end.join(" ")
|
|
||||||
|
|
||||||
if !invidious_companion_urls.empty?
|
|
||||||
env.response.headers["Content-Security-Policy"] =
|
|
||||||
env.response.headers["Content-Security-Policy"]
|
|
||||||
.gsub("media-src", "media-src #{invidious_companion_urls}")
|
|
||||||
.gsub("connect-src", "connect-src #{invidious_companion_urls}")
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
rendered "embed"
|
rendered "embed"
|
||||||
|
|||||||
@@ -279,18 +279,6 @@ module Invidious::Routes::Watch
|
|||||||
if CONFIG.invidious_companion.present?
|
if CONFIG.invidious_companion.present?
|
||||||
current_companion = env.get("current_companion").as(Int32)
|
current_companion = env.get("current_companion").as(Int32)
|
||||||
invidious_companion = CONFIG.invidious_companion[current_companion]
|
invidious_companion = CONFIG.invidious_companion[current_companion]
|
||||||
|
|
||||||
invidious_companion_urls = CONFIG.invidious_companion.reject(&.builtin_proxy).map do |companion|
|
|
||||||
uri =
|
|
||||||
"#{companion.public_url.scheme}://#{companion.public_url.host}#{companion.public_url.port ? ":#{companion.public_url.port}" : ""}"
|
|
||||||
end.join(" ")
|
|
||||||
|
|
||||||
if !invidious_companion_urls.empty?
|
|
||||||
env.response.headers["Content-Security-Policy"] =
|
|
||||||
env.response.headers["Content-Security-Policy"]
|
|
||||||
.gsub("media-src", "media-src #{invidious_companion_urls}")
|
|
||||||
.gsub("connect-src", "connect-src #{invidious_companion_urls}")
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
templated "watch"
|
templated "watch"
|
||||||
|
|||||||
Reference in New Issue
Block a user