Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-07-03 16:48:23 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-07-03 16:48:23 +0300
commit4c6095ca9375c4b88dafc35ca064ab8a21771d6c (patch)
treea1c1628d6c9a9c58e6206fc8306bba2a79e27db9
parent9b7331ec40066a8edfc3452ec6658aad89b56126 (diff)
Add latest changes from gitlab-org/gitlab@16-1-stable-ee
-rw-r--r--app/assets/javascripts/behaviors/markdown/render_sandboxed_mermaid.js11
-rw-r--r--app/assets/javascripts/lib/mermaid.js7
-rw-r--r--spec/features/markdown/sandboxed_mermaid_spec.rb5
-rw-r--r--spec/frontend/behaviors/markdown/render_sandboxed_mermaid_spec.js2
4 files changed, 18 insertions, 7 deletions
diff --git a/app/assets/javascripts/behaviors/markdown/render_sandboxed_mermaid.js b/app/assets/javascripts/behaviors/markdown/render_sandboxed_mermaid.js
index bd9e41ac0ba..22e9b2b9709 100644
--- a/app/assets/javascripts/behaviors/markdown/render_sandboxed_mermaid.js
+++ b/app/assets/javascripts/behaviors/markdown/render_sandboxed_mermaid.js
@@ -72,11 +72,14 @@ function fixElementSource(el) {
export function getSandboxFrameSrc() {
const path = joinPaths(gon.relative_url_root || '', SANDBOX_FRAME_PATH);
- if (!darkModeEnabled()) {
- return path;
+ let absoluteUrl = relativePathToAbsolute(path, getBaseURL());
+ if (darkModeEnabled()) {
+ absoluteUrl = setUrlParams({ darkMode: darkModeEnabled() }, absoluteUrl);
}
- const absoluteUrl = relativePathToAbsolute(path, getBaseURL());
- return setUrlParams({ darkMode: darkModeEnabled() }, absoluteUrl);
+ if (window.gon?.relative_url_root) {
+ absoluteUrl = setUrlParams({ relativeRootPath: window.gon.relative_url_root }, absoluteUrl);
+ }
+ return absoluteUrl;
}
function renderMermaidEl(el, source) {
diff --git a/app/assets/javascripts/lib/mermaid.js b/app/assets/javascripts/lib/mermaid.js
index bbc1d8ae1e1..5e62a023777 100644
--- a/app/assets/javascripts/lib/mermaid.js
+++ b/app/assets/javascripts/lib/mermaid.js
@@ -1,6 +1,13 @@
import mermaid from 'mermaid';
import { getParameterByName } from '~/lib/utils/url_utility';
+import { resetServiceWorkersPublicPath } from '~/lib/utils/webpack';
+const resetWebpackPublicPath = () => {
+ window.gon = { relative_url_root: getParameterByName('relativeRootPath') };
+ resetServiceWorkersPublicPath();
+};
+
+resetWebpackPublicPath();
const setIframeRenderedSize = (h, w) => {
const { origin } = window.location;
window.parent.postMessage({ h, w }, origin);
diff --git a/spec/features/markdown/sandboxed_mermaid_spec.rb b/spec/features/markdown/sandboxed_mermaid_spec.rb
index f8a535191da..87696eb82e5 100644
--- a/spec/features/markdown/sandboxed_mermaid_spec.rb
+++ b/spec/features/markdown/sandboxed_mermaid_spec.rb
@@ -16,8 +16,9 @@ RSpec.describe 'Sandboxed Mermaid rendering', :js, feature_category: :team_plann
MERMAID
end
- let_it_be(:expected) do
- %(<iframe src="/-/sandbox/mermaid" sandbox="allow-scripts allow-popups" frameborder="0" scrolling="no")
+ let(:expected) do
+ src = "http://#{Capybara.current_session.server.host}:#{Capybara.current_session.server.port}/-/sandbox/mermaid"
+ %(<iframe src="#{src}" sandbox="allow-scripts allow-popups" frameborder="0" scrolling="no")
end
context 'in an issue' do
diff --git a/spec/frontend/behaviors/markdown/render_sandboxed_mermaid_spec.js b/spec/frontend/behaviors/markdown/render_sandboxed_mermaid_spec.js
index de0e5063e49..88312a780d1 100644
--- a/spec/frontend/behaviors/markdown/render_sandboxed_mermaid_spec.js
+++ b/spec/frontend/behaviors/markdown/render_sandboxed_mermaid_spec.js
@@ -9,7 +9,7 @@ import renderMermaid, {
describe('Mermaid diagrams renderer', () => {
// Finders
- const findMermaidIframes = () => document.querySelectorAll('iframe[src="/-/sandbox/mermaid"]');
+ const findMermaidIframes = () => document.querySelectorAll('iframe[src*="/-/sandbox/mermaid"]');
const findDangerousMermaidAlert = () =>
createWrapper(document.querySelector('[data-testid="alert-warning"]'));