@@ -30,16 +30,20 @@ module Storage
3030 module Viewer
3131 autoload :BaseViewer , "app_profiler/viewer/base_viewer"
3232 autoload :SpeedscopeViewer , "app_profiler/viewer/speedscope_viewer"
33+ autoload :BaseMiddleware , "app_profiler/viewer/base_middleware"
3334 autoload :SpeedscopeRemoteViewer , "app_profiler/viewer/speedscope_remote_viewer"
35+ autoload :FirefoxRemoteViewer , "app_profiler/viewer/firefox_remote_viewer"
3436 end
3537
36- require "app_profiler/middleware"
37- require "app_profiler/parameters"
38- require "app_profiler/request_parameters"
39- require "app_profiler/profile"
40- require "app_profiler/backend"
41- require "app_profiler/server"
42- require "app_profiler/sampler"
38+ autoload ( :Middleware , "app_profiler/middleware" )
39+ autoload ( :Parameters , "app_profiler/parameters" )
40+ autoload ( :RequestParameters , "app_profiler/request_parameters" )
41+ autoload ( :BaseProfile , "app_profiler/base_profile" )
42+ autoload :StackprofProfile , "app_profiler/stackprof_profile"
43+ autoload :VernierProfile , "app_profiler/vernier_profile"
44+ autoload ( :Backend , "app_profiler/backend" )
45+ autoload ( :Server , "app_profiler/server" )
46+ autoload ( :Sampler , "app_profiler/sampler" )
4347
4448 mattr_accessor :logger , default : Logger . new ( $stdout)
4549 mattr_accessor :root
@@ -50,11 +54,10 @@ module Viewer
5054 mattr_reader :profile_header , default : "X-Profile"
5155 mattr_accessor :profile_async_header , default : "X-Profile-Async"
5256 mattr_accessor :context , default : nil
53- mattr_reader :profile_url_formatter ,
54- default : DefaultProfileFormatter
55-
57+ mattr_reader :profile_url_formatter , default : DefaultProfileFormatter
5658 mattr_accessor :storage , default : Storage ::FileStorage
57- mattr_accessor :viewer , default : Viewer ::SpeedscopeViewer
59+ mattr_writer :stackprof_viewer , default : nil
60+ mattr_writer :vernier_viewer , default : nil
5861 mattr_accessor :middleware , default : Middleware
5962 mattr_accessor :server , default : Server
6063 mattr_accessor :upload_queue_max_length , default : 10
@@ -68,6 +71,10 @@ module Viewer
6871 mattr_accessor :profile_sampler_config
6972
7073 class << self
74+ def deprecator # :nodoc:
75+ @deprecator ||= ActiveSupport ::Deprecation . new ( "in future releases" , "app_profiler" )
76+ end
77+
7178 def run ( *args , backend : nil , **kwargs , &block )
7279 orig_backend = self . backend
7380 begin
@@ -117,6 +124,14 @@ def backend=(new_backend)
117124 @profiler_backend = new_profiler_backend
118125 end
119126
127+ def stackprof_viewer
128+ @@stackprof_viewer ||= Viewer ::SpeedscopeViewer # rubocop:disable Style/ClassVars
129+ end
130+
131+ def vernier_viewer
132+ @@vernier_viewer ||= Viewer ::FirefoxRemoteViewer # rubocop:disable Style/ClassVars
133+ end
134+
120135 def profile_sampler_enabled = ( value )
121136 if value . is_a? ( Proc )
122137 raise ArgumentError ,
@@ -207,6 +222,16 @@ def profile_url(upload)
207222 AppProfiler . profile_url_formatter . call ( upload )
208223 end
209224
225+ def viewer
226+ deprecator . warn ( "AppProfiler.viewer is deprecated, please use stackprof_viewer instead." )
227+ stackprof_viewer
228+ end
229+
230+ def viewer = ( viewer )
231+ deprecator . warn ( "AppProfiler.viewer= is deprecated, please use stackprof_viewer= instead." )
232+ self . stackprof_viewer = viewer
233+ end
234+
210235 private
211236
212237 def clear
0 commit comments