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

gitlab_script_tag_helper.rb « helpers « app - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 467f3f7305b44b5f214067ea90b59946c83957b6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# frozen_string_literal: true

module GitlabScriptTagHelper
  # Override the default ActionView `javascript_include_tag` helper to support page specific deferred loading.
  # PLEASE NOTE: `defer` is also critical so that we don't run JavaScript entrypoints before the DOM is ready.
  # Please see https://gitlab.com/groups/gitlab-org/-/epics/4538#note_432159769.
  # The helper also makes sure the `nonce` attribute is included in every script when the content security
  # policy is enabled.
  def javascript_include_tag(*sources)
    super(*sources, defer: true, nonce: true)
  end

  # The helper makes sure the `nonce` attribute is included in every script when the content security
  # policy is enabled.
  def javascript_tag(content_or_options_with_block = nil, html_options = {})
    if content_or_options_with_block.is_a?(Hash)
      content_or_options_with_block[:nonce] = true
    else
      html_options[:nonce] = true
    end

    super
  end
end