get('profiler'), $container->get('template_manager'), $container->get('renderer') ); } /** * Constructs a new WebprofilerController. * * @param \Drupal\webprofiler\Profiler\Profiler $profiler * @param \Drupal\webprofiler\Profiler\TemplateManager $templateManager * @param \Drupal\Core\Render\RendererInterface $renderer */ public function __construct(Profiler $profiler, TemplateManager $templateManager, RendererInterface $renderer) { $this->profiler = $profiler; $this->templateManager = $templateManager; $this->renderer = $renderer; } /** * Generates the toolbar. * * @param Profile $profile * * @return array */ public function toolbarAction(Profile $profile) { $this->profiler->disable(); $templates = $this->templateManager->getTemplates($profile); $rendered = ''; foreach ($templates as $name => $template) { $rendered .= $template->renderBlock('toolbar', [ 'collector' => $profile->getcollector($name), 'token' => $profile->getToken(), 'name' => $name ]); } $toolbar = [ '#theme' => 'webprofiler_toolbar', '#toolbar' => $rendered, '#token' => $profile->getToken(), ]; return new Response($this->renderer->render($toolbar)); } /** * @param \Symfony\Component\HttpKernel\Profiler\Profile $profile * @param \Symfony\Component\HttpFoundation\Request $request * * @return \Symfony\Component\HttpFoundation\JsonResponse */ public function savePerformanceTimingAction(Profile $profile, Request $request) { $this->profiler->disable(); $data = Json::decode($request->getContent()); /** @var $collector */ $collector = $profile->getCollector('performance_timing'); $collector->setData($data); $this->profiler->updateProfile($profile); return new JsonResponse(['success' => TRUE]); } }