From b89cf6f2a4ffaad4ea1727df907300bfe53ead4c Mon Sep 17 00:00:00 2001
From: mattab <matthieu.aubry@gmail.com>
Date: Wed, 17 Sep 2014 21:35:41 +1200
Subject: [PATCH] refs #6122 Adding CORS header to Overlay controller methods
 since they are meant to be loaded from other domains where the overlay takes
 place.

---
 plugins/Overlay/Controller.php | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/plugins/Overlay/Controller.php b/plugins/Overlay/Controller.php
index 26de399636..ea540c6e14 100644
--- a/plugins/Overlay/Controller.php
+++ b/plugins/Overlay/Controller.php
@@ -8,6 +8,7 @@
  */
 namespace Piwik\Plugins\Overlay;
 
+use Piwik\API\CORSHandler;
 use Piwik\API\Request;
 use Piwik\Common;
 use Piwik\Config;
@@ -44,6 +45,7 @@ class Controller extends \Piwik\Plugin\Controller
 
         $view->ssl = ProxyHttp::isHttps();
 
+        $this->outputCORSHeaders();
         return $view->render();
     }
 
@@ -117,6 +119,8 @@ class Controller extends \Piwik\Plugin\Controller
         $view->idSite = $idSite;
         $view->period = $period;
         $view->date = $date;
+
+        $this->outputCORSHeaders();
         return $view->render();
     }
 
@@ -133,6 +137,7 @@ class Controller extends \Piwik\Plugin\Controller
         $site = $sitesManager->getSiteFromId($idSite);
         $urls = $sitesManager->getSiteUrlsFromId($idSite);
 
+        $this->outputCORSHeaders();
         Common::sendHeader('Content-Type: text/html; charset=UTF-8');
         return '
 			<html><head><title></title></head><body>
@@ -218,6 +223,7 @@ class Controller extends \Piwik\Plugin\Controller
             $view->troubleshoot = htmlentities(Piwik::translate('Overlay_RedirectUrlErrorUser'));
         }
 
+        $this->outputCORSHeaders();
         return $view->render();
     }
 
@@ -232,6 +238,13 @@ class Controller extends \Piwik\Plugin\Controller
     public function notifyParentIframe()
     {
         $view = new View('@Overlay/notifyParentIframe');
+        $this->outputCORSHeaders();
         return $view->render();
     }
+
+    protected function outputCORSHeaders()
+    {
+        $corsHandler = new CORSHandler();
+        $corsHandler->handle();
+    }
 }
-- 
GitLab