From ef54aa69a3c4245d1d420c5ce3a95da1393d70b5 Mon Sep 17 00:00:00 2001
From: Robert Speicher <robert@gitlab.com>
Date: Tue, 21 Jun 2016 18:23:51 +0000
Subject: [PATCH] Merge branch 'remove-banzai-pre-process' into 'master'

Move pre_process into render_result

This MR moves `Banzai::Renderer.pre_process` into `Banzai::Renderer.render_result`.

The `pre_process` method was called even when its output would be ignored. See 11a5a4f359ee57029dbfcc9185fc6b47243ea2aa for more details.

See merge request !4830
---
 CHANGELOG                             | 1 +
 app/helpers/gitlab_markdown_helper.rb | 2 --
 lib/banzai.rb                         | 4 ----
 lib/banzai/renderer.rb                | 8 ++------
 4 files changed, 3 insertions(+), 12 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 267a463d0fd..8e334977464 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -16,6 +16,7 @@ v 8.9.0 (unreleased)
   - Fix issue with arrow keys not working in search autocomplete dropdown
   - Fix an issue where note polling stopped working if a window was in the
     background during a refresh.
+  - Pre-processing Markdown now only happens when needed
   - Make EmailsOnPushWorker use Sidekiq mailers queue
   - Redesign all Devise emails. !4297
   - Don't show 'Leave Project' to group members
diff --git a/app/helpers/gitlab_markdown_helper.rb b/app/helpers/gitlab_markdown_helper.rb
index 067a00660aa..09a429a9034 100644
--- a/app/helpers/gitlab_markdown_helper.rb
+++ b/app/helpers/gitlab_markdown_helper.rb
@@ -50,8 +50,6 @@ module GitlabMarkdownHelper
 
     context[:project] ||= @project
 
-    text = Banzai.pre_process(text, context)
-
     html = Banzai.render(text, context)
 
     context.merge!(
diff --git a/lib/banzai.rb b/lib/banzai.rb
index b467413a7dd..093382261ae 100644
--- a/lib/banzai.rb
+++ b/lib/banzai.rb
@@ -7,10 +7,6 @@ module Banzai
     Renderer.render_result(text, context)
   end
 
-  def self.pre_process(text, context)
-    Renderer.pre_process(text, context)
-  end
-
   def self.post_process(html, context)
     Renderer.post_process(html, context)
   end
diff --git a/lib/banzai/renderer.rb b/lib/banzai/renderer.rb
index c14a9c4c722..6718acdef7e 100644
--- a/lib/banzai/renderer.rb
+++ b/lib/banzai/renderer.rb
@@ -30,13 +30,9 @@ module Banzai
     end
 
     def self.render_result(text, context = {})
-      Pipeline[context[:pipeline]].call(text, context)
-    end
+      text = Pipeline[:pre_process].to_html(text, context) if text
 
-    def self.pre_process(text, context)
-      pipeline = Pipeline[:pre_process]
-
-      pipeline.to_html(text, context)
+      Pipeline[context[:pipeline]].call(text, context)
     end
 
     # Perform post-processing on an HTML String
-- 
2.30.9