diff --git a/lib/html/includes.js b/lib/html/includes.js
index 806c33cd..805c2bb1 100644
--- a/lib/html/includes.js
+++ b/lib/html/includes.js
@@ -666,7 +666,7 @@ var _MiniProfiler = (function() {
);
}
- if (typeof Turbo !== "undefined") {
+ if (options.hotwireTurboDriveSupport) {
document.addEventListener("turbo:before-visit", onTurboBeforeVisit)
document.addEventListener("turbo:load", onTurboLoad)
}
@@ -1053,6 +1053,8 @@ var _MiniProfiler = (function() {
.getAttribute("data-hidden-custom-fields")
.toLowerCase()
.split(",");
+ var hotwireTurboDriveSupport = script
+ .getAttribute('data-turbo-permanent') === "true";
return {
ids: ids,
path: path,
@@ -1071,7 +1073,8 @@ var _MiniProfiler = (function() {
collapseResults: collapseResults,
htmlContainer: htmlContainer,
cssUrl: cssUrl,
- hiddenCustomFields: hiddenCustomFields
+ hiddenCustomFields: hiddenCustomFields,
+ hotwireTurboDriveSupport: hotwireTurboDriveSupport
};
})();
diff --git a/lib/html/profile_handler.js b/lib/html/profile_handler.js
index 178f6fc2..fa183ecf 100644
--- a/lib/html/profile_handler.js
+++ b/lib/html/profile_handler.js
@@ -1 +1 @@
-
+
diff --git a/lib/mini_profiler/asset_version.rb b/lib/mini_profiler/asset_version.rb
index 1c4c346f..9d64ccd8 100644
--- a/lib/mini_profiler/asset_version.rb
+++ b/lib/mini_profiler/asset_version.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
module Rack
class MiniProfiler
- ASSET_VERSION = '40756d3425f8c8e3f901fb5e850a065a'
+ ASSET_VERSION = 'ec6d5541ecbc11a48798626c16a61342'
end
end
diff --git a/lib/mini_profiler/config.rb b/lib/mini_profiler/config.rb
index 417b22ba..ce773ef1 100644
--- a/lib/mini_profiler/config.rb
+++ b/lib/mini_profiler/config.rb
@@ -57,6 +57,7 @@ def self.default
@snapshots_transport_auth_key = nil
@snapshots_redact_sql_queries = true
@snapshots_transport_gzip_requests = false
+ @enable_hotwire_turbo_drive_support = false
self
}
@@ -69,7 +70,7 @@ def self.default
:skip_schema_queries, :storage, :storage_failure, :storage_instance,
:storage_options, :user_provider, :enable_advanced_debugging_tools,
:skip_sql_param_names, :suppress_encoding, :max_sql_param_length,
- :content_security_policy_nonce
+ :content_security_policy_nonce, :enable_hotwire_turbo_drive_support
# ui accessors
attr_accessor :collapse_results, :max_traces_to_show, :position,
diff --git a/lib/mini_profiler/profiler.rb b/lib/mini_profiler/profiler.rb
index efd52484..3485981d 100644
--- a/lib/mini_profiler/profiler.rb
+++ b/lib/mini_profiler/profiler.rb
@@ -751,6 +751,7 @@ def get_profile_script(env)
htmlContainer: @config.html_container,
hiddenCustomFields: @config.snapshot_hidden_custom_fields.join(','),
cspNonce: content_security_policy_nonce,
+ hotwireTurboDriveSupport: @config.enable_hotwire_turbo_drive_support,
}
if current && current.page_struct
diff --git a/spec/integration/mini_profiler_spec.rb b/spec/integration/mini_profiler_spec.rb
index 9b44042f..737d7cc0 100644
--- a/spec/integration/mini_profiler_spec.rb
+++ b/spec/integration/mini_profiler_spec.rb
@@ -257,6 +257,17 @@ def app
expect(last_response.status).to equal(200)
end
+ describe 'with hotwire turbo drive support enabled' do
+ before do
+ Rack::MiniProfiler.config.enable_hotwire_turbo_drive_support = true
+ end
+
+ it 'should define data-turbo-permanent as true' do
+ get '/html'
+ expect(last_response.body).to include('data-turbo-permanent="true"')
+ end
+ end
+
describe 'with caching re-enabled' do
before :each do
Rack::MiniProfiler.config.disable_caching = false